Authored by tanling

订单

... ... @@ -29,4 +29,30 @@ public class AddressUtil {
return -1;
}
/**
* 加密地址
* @param str
* @return
*/
public static String getEncryptStr(String str){
String encryptStr = str;
try{
encryptStr = AES.encrypt(DynamicPropertyFactory.getInstance().getStringProperty("password.aes.key", "yoho9646yoho9646").get(), str);
}catch (Exception e){
logger.error("getEncryptStr failed. str is {}, e is {}", str, e);
}
logger.info("getEncryptStr, str is {}, encryptStr is {}", str, encryptStr);
return encryptStr;
}
public static void main(String[] args){
System.out.println(getEncryptStr("2395724"));
}
}
... ...
... ... @@ -22,7 +22,7 @@ public interface OrderConstant {
String MONEY_SIGN = "¥";
String PLUS_SIGN = "+";
String PLUS_SIGN = "+ ";
String DAMAGES_DESC = "如卖家原因导致交易失败,您将获得赔偿金";
... ...
... ... @@ -40,7 +40,7 @@ public class ShoppingController {
@RequestParam(name = "skup") int skup,
@RequestParam(name = "channelNo") String channelNo,
@RequestParam(name = "addressId") String addressId,
@RequestParam(name = "clientType") String clientType){
@RequestParam(name = "clientType", required = false) String clientType){
ShoppingRequest request = ShoppingRequest.builder().uid(uid).skup(skup).channelNo(channelNo).clientType(clientType).addressId(addressId).build();
OrderSubmitResponse paymentResponse = buyerOrderService.submit(request);
... ...
... ... @@ -56,7 +56,7 @@ public class PaymentResponse {
private String deliveryWayName;
private int deliveryWayCost;
private String deliveryWayCost;
}
... ...
... ... @@ -8,5 +8,5 @@ public interface IOrdeCreationService {
* 创建订单
* @param orderBuilder
*/
public void create(OrderBuilder orderBuilder);
public void doSumbitOrder(OrderBuilder orderBuilder);
}
... ...
... ... @@ -45,30 +45,38 @@ public class OrdeCreationServiceImpl implements IOrdeCreationService {
private UfoServiceCaller serviceCaller;
public void doSumbitOrder(OrderBuilder orderBuilder){
// 减库存
descreaseStorage(orderBuilder);
// 创建订单
createOrder(orderBuilder);
}
public void descreaseStorage(OrderBuilder orderBuilder){
ApiResponse apiResponse = serviceCaller.call("ufo.product.saleSkup",
ApiResponse.class, orderBuilder.getProductId(), orderBuilder.getSkup());
// 减库存失败
if (apiResponse.getCode() != 200){
logger.warn("submit create order, decrease storage faile, orderCode is {}, uid is {}, skup is {}, productId is {}",
orderBuilder.getOrderCode(), orderBuilder.getUid(), orderBuilder.getSkup(), orderBuilder.getProductId());
throw new ServiceException(ServiceError.ORDER_SKUP_CANNOT_SELL);
}
}
/**
* 创建订单
* @param orderBuilder
*/
@Transactional
public void create(OrderBuilder orderBuilder){
public void createOrder(OrderBuilder orderBuilder){
boolean increaseNeed = false;
try{
// 扣减库存
// 入口参数:skup, product_id
ApiResponse apiResponse = serviceCaller.call("ufo.product.saleSkup",
ApiResponse.class, orderBuilder.getProductId(), orderBuilder.getSkup());
// 减库存失败
if (apiResponse.getCode() != 200){
logger.warn("submit create order, decrease storage faile, orderCode is {}, uid is {}, skup is {}, productId is {}",
orderBuilder.getOrderCode(), orderBuilder.getUid(), orderBuilder.getSkup(), orderBuilder.getProductId());
throw new ServiceException(ServiceError.ORDER_SKUP_CANNOT_SELL);
}
// product处减库存失败
increaseNeed = true;
/**
* 1.更新 表seller_order_goods skup的状态为不可售
* 2.更新 表seller_order 状态为已经售出
... ... @@ -95,16 +103,13 @@ public class OrdeCreationServiceImpl implements IOrdeCreationService {
}catch (Exception ex){
if (increaseNeed){
// order处 更新状态失败,需要补库存
ApiResponse apiResponse = serviceCaller.call("ufo.product.cancelSaleSkup",ApiResponse.class, orderBuilder.getSkup());
// 补库存失败,需要报警手动补库存 TODO
if (apiResponse.getCode() != 200){
// order处 更新状态失败,需要补库存
ApiResponse apiResponse = serviceCaller.call("ufo.product.cancelSaleSkup",ApiResponse.class, orderBuilder.getSkup());
// 补库存失败,需要报警手动补库存 TODO
if (apiResponse.getCode() != 200){
}
}
if (!(ex instanceof ServiceException)) {
//上报告警事件
// EventBusPublisher.publishEvent(new SmsAlarmEvent(OrderHanders.submit, "submit", "订单(" + order.getOrderCode() + ")创建失败"));
... ...
... ... @@ -144,7 +144,7 @@ public class ShoppingServiceImpl implements IShoppingService {
.addressInfo(addressInfo)
.build();
ordeCreationService.create(orderBuilder);
ordeCreationService.doSumbitOrder(orderBuilder);
// 返回结果
... ...
... ... @@ -35,7 +35,7 @@ public class ShoppingSupport {
// 快递方式
PaymentResponse.DeliveryWay deliveryWay = new PaymentResponse.DeliveryWay();
deliveryWay.setDeliveryWayId(OrderConstant.DELIVERY_WAY_SF);
deliveryWay.setDeliveryWayCost(OrderConstant.DELIVERY_WAY_SF_COST);
deliveryWay.setDeliveryWayCost(OrderConstant.MONEY_SIGN + OrderConstant.DELIVERY_WAY_SF_COST);
deliveryWay.setDeliveryWayName(OrderConstant.DELIVERY_WAY_SF_NAME);
return deliveryWay;
}
... ... @@ -48,6 +48,7 @@ public class ShoppingSupport {
*/
public GoodsInfo getGoodsInfo(SellerOrderGoods skup) {
GoodsInfo goods = new GoodsInfo();
goods.setSkup(skup.getId());
goods.setProductName(skup.getProductName());
goods.setColorId(skup.getColorId() == null ? 0 : skup.getColorId());
goods.setColorName(skup.getColorName());
... ...