yujian
2019-04-22 b6c37e4bc38db88a360d0f2c6099183f9bb75bdc
fanli/src/main/java/com/yeshi/fanli/service/impl/order/OrderProcessServiceImpl.java
@@ -62,8 +62,10 @@
import com.yeshi.fanli.util.CMQManager;
import com.yeshi.fanli.util.RedisManager;
import com.yeshi.fanli.util.StringUtil;
import com.yeshi.fanli.util.TaoBaoConstant;
import com.yeshi.fanli.util.TimeUtil;
import com.yeshi.fanli.util.factory.UserMoneyDetailFactory;
import com.yeshi.fanli.util.taobao.TaoKeOrderApiUtil;
@Service
public class OrderProcessServiceImpl implements OrderProcessService {
@@ -141,6 +143,7 @@
      Map<String, List<TaoBaoOrder>> shareOrderMap = new HashMap<>();
      while (its.hasNext()) {
         String orderId = its.next();
         if (orders.get(orderId) != null && orders.get(orderId).size() > 0) {
            List<TaoBaoOrder> list = orders.get(orderId);
@@ -448,9 +451,9 @@
         UserMoneyDetail userMoneyDetail = null;
         // 插入新版资金明细
         try {
            // 此处不用订单号做唯一性索引
            userMoneyDetail = UserMoneyDetailFactory.createFanLi(uid, hongBaoOrder.getCommonOrder().getOrderNo(),
                  hongBaoOrder.getCommonOrder().getSourceType(), null, money);
         } catch (UserMoneyDetailException e1) {
            try {
               LogHelper.errorDetailInfo(e1, "订单号:" + hongBaoOrder.getCommonOrder().getOrderNo(), "");
@@ -459,7 +462,7 @@
            }
         }
         userMoneyDetailMapper.insert(userMoneyDetail);
         userMoneyDetailMapper.insertSelective(userMoneyDetail);
         // 添加资金明细与红包的映射关系
         for (HongBaoV2 v2 : userHongBao.get(uid)) {
            accountDetailsHongBaoMapService.saveAccountDetailsHongBaoMap(v2.getId(), userMoneyDetail.getId());
@@ -494,7 +497,40 @@
      // 维权扣款(2018-08-05后开始实行)
      if (hongBaoOrder.getCommonOrder().getSettleTime() != null && hongBaoOrder.getCommonOrder().getSettleTime()
            .getTime() >= TimeUtil.convertToTimeTemp("2018-08-05", "yyyy-MM-dd")) {
         taoBaoWeiQuanDrawBackService.doWeiQuanFanli(hongBaoOrder.getCommonOrder().getOrderNo());
         try {
            taoBaoWeiQuanDrawBackService.doWeiQuanFanli(hongBaoOrder.getCommonOrder().getOrderNo());
         } catch (TaoBaoWeiQuanException e) {
            if (e.getCode() == TaoBaoWeiQuanException.CODE_NEDD_UPDATE_ORDER) {
               List<TaoBaoOrder> olist = taoBaoOrderService
                     .getTaoBaoOrderByOrderId(hongBaoOrder.getCommonOrder().getOrderNo());
               if (olist != null && olist.size() > 0) {
                  long time = TimeUtil.convertToTimeTemp(olist.get(0).getCreateTime(), "yyyy-MM-dd HH:mm:ss");
                  olist = TaoKeOrderApiUtil.getTaoBaoAllOrder(TimeUtil.getGernalTime(time, "yyyy-MM-dd HH:mm:ss"),
                        TaoBaoConstant.TAOBAO_AUTH_APPKEY, TaoBaoConstant.TAOBAO_AUTH_APPSECRET);
                  List<TaoBaoOrder> thirdOList = TaoKeOrderApiUtil.getTaoBaoThirdAllOrder(
                        TimeUtil.getGernalTime(time, "yyyy-MM-dd HH:mm:ss"), 30, 1,
                        TaoBaoConstant.TAOBAO_AUTH_APPKEY, TaoBaoConstant.TAOBAO_AUTH_APPSECRET);
                  if (thirdOList != null && thirdOList.size() > 0)
                     olist.addAll(thirdOList);
                  if (olist != null && olist.size() > 0) {
                     for (int i = 0; i < olist.size(); i++) {
                        if (!olist.get(i).getOrderId()
                              .equalsIgnoreCase(hongBaoOrder.getCommonOrder().getOrderNo())) {// 删除无关订单
                           olist.remove(i);
                           i--;
                        }
                     }
                     taoBaoOrderService.addTaoBaoOrderList(olist);
                  }
               }
            } else
               throw new TaoBaoWeiQuanException(e.getCode(), e.getMsg());
         }
      }
   }
@@ -521,6 +557,8 @@
      if (order.getJieSuanTime().getTime() >= TimeUtil.convertToTimeTemp("2018-08-05", "yyyy-MM-dd")) {
         return;
      }
      // TODO 处理维权成功但是已到账的订单
   }
   @Override
@@ -817,6 +855,11 @@
   @Override
   public void processShopingFanliOrderNew(String orderId, List<TaoBaoOrder> orderList)
         throws HongBaoException, OrderItemException {
      LogHelper.test(String.format("订单处理:订单号-%s  订单数量-%s", orderId, orderList.size() + ""));
      if (orderList.size() == 1)
         LogHelper.test("订单排序值:" + orderList.get(0).getOrderBy());
      List<TaoBaoUnionConfig> configList = taoBaoUnionConfigService.getConfigByTypeCache(PidUser.TYPE_FANLI_ANDROID);
      if (orderList != null && orderList.size() > 0) {
@@ -943,7 +986,6 @@
            e1.printStackTrace();
         }
      }
   }
}