喻健
2018-12-10 feee16c2fe842ef452823d3f8ed95a39ad191ee6
fanli/src/main/java/com/yeshi/fanli/service/impl/order/PidOrderServiceImpl.java
@@ -89,6 +89,9 @@
   @Resource
   private RedisManager redisManager;
   // @Resource
   // private LostOrderService lostOrderService;
   @Override
   @Transactional
   public void addPidOrderFromTaoBao(Map<String, List<PidOrder>> map) {
@@ -201,11 +204,13 @@
      while (its.hasNext()) {
         String orderId = its.next();
         // 订单锁定
//         if (isRedisLockOrder(orderId))
//            continue;
//         redisLockOrder(orderId);
         // if (isRedisLockOrder(orderId))
         // continue;
         // redisLockOrder(orderId);
         doPidOrder(orderId);
//         redisUnlockOrder(orderId);
         // 处理订单找回
         // lostOrderService.processSuceess(orderId);
         // redisUnlockOrder(orderId);
      }
   }
@@ -247,16 +252,17 @@
   @Override
   @Transactional
   public void doPidOrder(String orderId) {
      Map<String, String> convertMap = hongBaoManageService.convertMap();
      BigDecimal rate = new BigDecimal(convertMap.get("hongbao_goods_proportion")).divide(new BigDecimal(100));
      List<PidOrder> orders = pidOrderMapper.getPidOrderListByOrderId(orderId);
      // 只看有用户Id的情况
      if (orders.get(0).getUserInfo() != null) {
         // 根据第一个的订单创建时间来确定返利比例
         BigDecimal rate = hongBaoManageService.getShareRate(orders.get(0).getOrderCreateTime().getTime());
         List<HongBao> hbList = hongBaoMapper.selectByOrderId(orderId);
         if (hbList.size() <= 0) {// 还没有加入红包
            // 加入红包
            for (PidOrder order : orders) {
               // 防止同一订单号来源于不同的PID
               if (order.getUserInfo() == null)
                  continue;
@@ -267,7 +273,10 @@
                        HongBao.TYPE_SHARE_GOODS, HongBao.STATE_BUKELINGQU, new Date().getTime(),
                        new Date().getTime(), 0, "192.168.1.1", "系统添加");
                  hongBao.setOrderId(order.getOrderId());
                  hongBao.setPayMoney(order.getPayMoney());
                  if ("订单结算".equalsIgnoreCase(order.getState()))
                     hongBao.setPayMoney(order.getFinalMoney());
                  else
                     hongBao.setPayMoney(order.getPayMoney());
                  if (order.getBalanceTime() != null)
                     hongBao.setBalanceTime(order.getBalanceTime());