Authored by tanling

Merge branch 'master' of http://git.yoho.cn/ufo/yohoufo-fore

@@ -94,7 +94,7 @@ public class ControllerCacheAop implements ApplicationContextAware{ @@ -94,7 +94,7 @@ public class ControllerCacheAop implements ApplicationContextAware{
94 try { 94 try {
95 Object level1_obj = this.cacheClient.get(level1_cache_key, returnType); 95 Object level1_obj = this.cacheClient.get(level1_cache_key, returnType);
96 if (level1_obj != null) { 96 if (level1_obj != null) {
97 - logger.debug("Cache1 hit for method:{} at key:{}.", methodName, level1_cache_key); 97 + logger.info("Cache1 hit for method:{} at key:{}.", methodName, level1_cache_key);
98 return level1_obj; 98 return level1_obj;
99 } 99 }
100 } catch (Exception e) { 100 } catch (Exception e) {
  1 +package com.yohoufo.order.convert;
  2 +
  3 +import com.yoho.service.model.response.UserAddressRspBO;
  4 +import com.yohoufo.order.model.AddressInfo;
  5 +
  6 +import java.util.Objects;
  7 +
  8 +/**
  9 + * Created by chenchao on 2018/9/21.
  10 + */
  11 +public class AddressInfoConvertor {
  12 +
  13 +
  14 + public static AddressInfo userAddressRsp2AddressInfo(UserAddressRspBO resp){
  15 + if (Objects.isNull(resp)){
  16 + return null;
  17 + }
  18 + AddressInfo addressInfo = new AddressInfo();
  19 + addressInfo.setAddress_id(Integer.valueOf(resp.getId()));
  20 + addressInfo.setAddress(resp.getAddress());
  21 + addressInfo.setConsignee(resp.getAddresseeName());
  22 + addressInfo.setPhone(resp.getPhone());
  23 + addressInfo.setZipCode(resp.getZipCode());
  24 + return addressInfo;
  25 + }
  26 +}
1 package com.yohoufo.order.service.impl; 1 package com.yohoufo.order.service.impl;
2 2
  3 +import com.alibaba.fastjson.JSONObject;
3 import com.yoho.error.ServiceError; 4 import com.yoho.error.ServiceError;
4 import com.yoho.error.exception.ServiceException; 5 import com.yoho.error.exception.ServiceException;
  6 +import com.yoho.service.model.response.UserAddressRspBO;
5 import com.yohoufo.common.utils.DateUtil; 7 import com.yohoufo.common.utils.DateUtil;
6 import com.yohoufo.dal.order.model.BuyerOrder; 8 import com.yohoufo.dal.order.model.BuyerOrder;
7 import com.yohoufo.dal.order.model.BuyerOrderGoods; 9 import com.yohoufo.dal.order.model.BuyerOrderGoods;
@@ -12,11 +14,13 @@ import com.yohoufo.order.common.Payment; @@ -12,11 +14,13 @@ import com.yohoufo.order.common.Payment;
12 import com.yohoufo.order.common.TabType; 14 import com.yohoufo.order.common.TabType;
13 import com.yohoufo.order.constants.MetaKey; 15 import com.yohoufo.order.constants.MetaKey;
14 import com.yohoufo.order.constants.OrderConstant; 16 import com.yohoufo.order.constants.OrderConstant;
  17 +import com.yohoufo.order.convert.AddressInfoConvertor;
15 import com.yohoufo.order.model.AddressInfo; 18 import com.yohoufo.order.model.AddressInfo;
16 import com.yohoufo.order.model.request.OrderRequest; 19 import com.yohoufo.order.model.request.OrderRequest;
17 import com.yohoufo.order.model.response.GoodsInfo; 20 import com.yohoufo.order.model.response.GoodsInfo;
18 import com.yohoufo.order.model.response.OrderDetailInfo; 21 import com.yohoufo.order.model.response.OrderDetailInfo;
19 import com.yohoufo.order.service.IOrderDetailService; 22 import com.yohoufo.order.service.IOrderDetailService;
  23 +import org.apache.commons.lang3.StringUtils;
20 import org.slf4j.Logger; 24 import org.slf4j.Logger;
21 import org.slf4j.LoggerFactory; 25 import org.slf4j.LoggerFactory;
22 26
@@ -51,11 +55,7 @@ public abstract class AbsOrderDetailService implements IOrderDetailService{ @@ -51,11 +55,7 @@ public abstract class AbsOrderDetailService implements IOrderDetailService{
51 } 55 }
52 56
53 TabType actor = orderRequest.getActor(); 57 TabType actor = orderRequest.getActor();
54 - if (actor == null){  
55 - logger.warn("getOrderDetail tabType invalidate, uid is {}, orderCode is {}",  
56 - orderRequest.getUid(), orderRequest.getOrderCode());  
57 - throw new ServiceException(ServiceError.ORDER_REQUEST_PARM_IS_EMPTY);  
58 - } 58 + boolean isBuyer = actor.equals(TabType.BUY);
59 59
60 // 查询订单状态 60 // 查询订单状态
61 BuyerOrder buyerOrder = getBuyerOrder(orderRequest.getUid(), orderRequest.getOrderCode()); 61 BuyerOrder buyerOrder = getBuyerOrder(orderRequest.getUid(), orderRequest.getOrderCode());
@@ -74,9 +74,7 @@ public abstract class AbsOrderDetailService implements IOrderDetailService{ @@ -74,9 +74,7 @@ public abstract class AbsOrderDetailService implements IOrderDetailService{
74 throw new ServiceException(ServiceError.ORDER_STATUS_INVALIDATE); 74 throw new ServiceException(ServiceError.ORDER_STATUS_INVALIDATE);
75 } 75 }
76 76
77 - // 收货地址 and 用户信息 TODO  
78 - BuyerOrderMeta buyerOrderMeta = getBuyerOrderMeta(buyerUid,  
79 - orderRequest.getOrderCode(), MetaKey.BUYER_DELIVERY_ADDRESS); 77 +
80 78
81 BuyerOrderGoods buyerOrderGoods = getBuyerOrderGoods(buyerUid, orderRequest.getOrderCode()); 79 BuyerOrderGoods buyerOrderGoods = getBuyerOrderGoods(buyerUid, orderRequest.getOrderCode());
82 if (buyerOrderGoods == null){ 80 if (buyerOrderGoods == null){
@@ -91,16 +89,24 @@ public abstract class AbsOrderDetailService implements IOrderDetailService{ @@ -91,16 +89,24 @@ public abstract class AbsOrderDetailService implements IOrderDetailService{
91 orderRequest.getUid(), orderRequest.getOrderCode(), buyerOrderGoods.getSkup()); 89 orderRequest.getUid(), orderRequest.getOrderCode(), buyerOrderGoods.getSkup());
92 throw new ServiceException(ServiceError.ORDER_ORDERS_GOODS_IS_EMPTY); 90 throw new ServiceException(ServiceError.ORDER_ORDERS_GOODS_IS_EMPTY);
93 } 91 }
94 -  
95 - OrderDetailInfo orderDetailInfo = buildOrderDetail(buyerOrder, orderStatus, buyerOrderGoods, sellerOrderGoods, actor); 92 + // 收货地址 and 用户信息
  93 + BuyerOrderMeta buyerOrderMeta = getBuyerOrderMeta(buyerUid,
  94 + orderRequest.getOrderCode(), MetaKey.BUYER_DELIVERY_ADDRESS);
  95 + AddressInfo userAddress = null;
  96 + if (isBuyer && null != buyerOrderMeta && StringUtils.isNotBlank(buyerOrderMeta.getMetaValue())){
  97 + UserAddressRspBO addressRsp = JSONObject.parseObject(buyerOrderMeta.getMetaValue(), UserAddressRspBO.class);
  98 + userAddress = AddressInfoConvertor.userAddressRsp2AddressInfo(addressRsp);
  99 + }
  100 + OrderDetailInfo orderDetailInfo = buildOrderDetail(buyerOrder, orderStatus, buyerOrderGoods, sellerOrderGoods,
  101 + userAddress, actor);
96 102
97 return orderDetailInfo; 103 return orderDetailInfo;
98 104
99 } 105 }
100 106
101 OrderDetailInfo buildOrderDetail(BuyerOrder buyerOrder, OrderStatus orderStatus, 107 OrderDetailInfo buildOrderDetail(BuyerOrder buyerOrder, OrderStatus orderStatus,
102 - BuyerOrderGoods buyerOrderGoods, SellerOrderGoods sellerOrderGoods,  
103 - TabType tabType) { 108 + BuyerOrderGoods buyerOrderGoods, SellerOrderGoods sellerOrderGoods,
  109 + AddressInfo userAddress, TabType tabType) {
104 OrderDetailInfo orderDetailInfo = new OrderDetailInfo(); 110 OrderDetailInfo orderDetailInfo = new OrderDetailInfo();
105 orderDetailInfo.setUid(buyerOrder.getUid()); 111 orderDetailInfo.setUid(buyerOrder.getUid());
106 orderDetailInfo.setOrderCode(buyerOrder.getOrderCode()); 112 orderDetailInfo.setOrderCode(buyerOrder.getOrderCode());
@@ -108,9 +114,12 @@ public abstract class AbsOrderDetailService implements IOrderDetailService{ @@ -108,9 +114,12 @@ public abstract class AbsOrderDetailService implements IOrderDetailService{
108 orderDetailInfo.setButtons(orderStatus.getDetailButtons(tabType)); 114 orderDetailInfo.setButtons(orderStatus.getDetailButtons(tabType));
109 OrderDetailInfo.StatusDetail statusDetail = getStatusDetail(buyerOrder, orderStatus, tabType); 115 OrderDetailInfo.StatusDetail statusDetail = getStatusDetail(buyerOrder, orderStatus, tabType);
110 orderDetailInfo.setStatusDetail(statusDetail); 116 orderDetailInfo.setStatusDetail(statusDetail);
  117 + //good info
111 GoodsInfo goodsInfo = getGoodsInfo(sellerOrderGoods); 118 GoodsInfo goodsInfo = getGoodsInfo(sellerOrderGoods);
112 orderDetailInfo.setGoodsInfo(goodsInfo); 119 orderDetailInfo.setGoodsInfo(goodsInfo);
113 - 120 + //user address
  121 + orderDetailInfo.setUserAddress(userAddress);
  122 + //priceInfo
114 OrderDetailInfo.PriceInfo priceInfo = OrderDetailInfo.PriceInfo.builder() 123 OrderDetailInfo.PriceInfo priceInfo = OrderDetailInfo.PriceInfo.builder()
115 .goodPrice(buyerOrderGoods.getGoodsPrice() == null ? "0" : buyerOrderGoods.getGoodsPrice().toPlainString() ) 124 .goodPrice(buyerOrderGoods.getGoodsPrice() == null ? "0" : buyerOrderGoods.getGoodsPrice().toPlainString() )
116 .feePrice(buyerOrder.getShipFee() == null ? "0" : buyerOrder.getShipFee().toPlainString()) 125 .feePrice(buyerOrder.getShipFee() == null ? "0" : buyerOrder.getShipFee().toPlainString())
@@ -9,6 +9,7 @@ import com.yohoufo.common.caller.UfoServiceCaller; @@ -9,6 +9,7 @@ import com.yohoufo.common.caller.UfoServiceCaller;
9 import com.yohoufo.common.exception.GatewayException; 9 import com.yohoufo.common.exception.GatewayException;
10 import com.yohoufo.dal.order.SellerOrderMapper; 10 import com.yohoufo.dal.order.SellerOrderMapper;
11 import com.yohoufo.order.common.OrderCodeType; 11 import com.yohoufo.order.common.OrderCodeType;
  12 +import com.yohoufo.order.convert.AddressInfoConvertor;
12 import com.yohoufo.order.convert.SellerOrderConvertor; 13 import com.yohoufo.order.convert.SellerOrderConvertor;
13 import com.yohoufo.order.model.AddressInfo; 14 import com.yohoufo.order.model.AddressInfo;
14 import com.yohoufo.order.model.GoodsInfo; 15 import com.yohoufo.order.model.GoodsInfo;
@@ -207,15 +208,9 @@ public class SellerOrderService implements IOrderListService, IOrderDetailServi @@ -207,15 +208,9 @@ public class SellerOrderService implements IOrderListService, IOrderDetailServi
207 } 208 }
208 209
209 //the address of send back 2 seller 210 //the address of send back 2 seller
210 - AddressInfo backAddress = new AddressInfo();  
211 - backAddress.setAddress_id(req.getAddressId());  
212 -  
213 // 211 //
214 UserAddressRspBO addressRspBO = userProxyService.getAddressInfo(uid, req.getAddressId()); 212 UserAddressRspBO addressRspBO = userProxyService.getAddressInfo(uid, req.getAddressId());
215 - backAddress.setAddress(addressRspBO.getAddress());  
216 - backAddress.setConsignee(addressRspBO.getAddresseeName());  
217 - backAddress.setPhone(addressRspBO.getPhone());  
218 - backAddress.setZipCode(addressRspBO.getZipCode()); 213 + AddressInfo backAddress = AddressInfoConvertor.userAddressRsp2AddressInfo(addressRspBO);
219 214
220 // 215 //
221 SellerOrderContext context = new SellerOrderContext(); 216 SellerOrderContext context = new SellerOrderContext();
@@ -248,11 +248,16 @@ public class ProductServiceImpl implements ProductService{ @@ -248,11 +248,16 @@ public class ProductServiceImpl implements ProductService{
248 StoragePrice sp = storagePriceMapper.selectBySkup(skup); 248 StoragePrice sp = storagePriceMapper.selectBySkup(skup);
249 storageId = sp.getStorageId(); 249 storageId = sp.getStorageId();
250 if (sp == null || (storageId = sp.getStorageId()) == null) { 250 if (sp == null || (storageId = sp.getStorageId()) == null) {
251 - LOGGER.error("addStorageNum skup={}, storageId={}, num={}, find storageId is null", skup, storageId,  
252 - num); 251 + LOGGER.error("修改库存:StoragePrice表无数据或者StorageId为空, skup={}, storageId={}, num={}, find storageId is null",
  252 + skup, storageId, num);
  253 + return;
253 } 254 }
254 } 255 }
255 - storageMapper.addStorageNum(storageId, num); 256 + try {
  257 + storageMapper.addStorageNum(storageId, num);
  258 + } catch (Exception e) {
  259 + LOGGER.error("修改库存出错: skup=" + skup + ", storageId=" + storageId + ", num=" + num + ", find storageId is null", e);
  260 + }
256 } 261 }
257 262
258 private StoragePrice checkSkupCanSale(Integer skup) { 263 private StoragePrice checkSkupCanSale(Integer skup) {