yujian
2019-08-20 df300df7832cc3d24f1b09297998e8bee8cfd126
fanli/src/main/java/com/yeshi/fanli/service/impl/order/CommonOrderServiceImpl.java
@@ -330,7 +330,7 @@
      // 是否存在奖励券
      boolean hasRewardCoupon = userSystemCouponService.hasRewardCoupon(uid);
      // 2019.8.1开始返回维权信息
      Date august = null;
      try {
@@ -390,7 +390,7 @@
         if (hongBao == null) {
            hongBao = new BigDecimal(0);
         }
         if (CommonOrder.STATE_FK == orderState) {
            orderStateContent = "已付款";
         } else if (CommonOrder.STATE_JS == orderState) {
@@ -422,7 +422,7 @@
                     isPart = true;
                  }
               }
               if (!VersionUtil.greaterThan_1_6_0(acceptData.getPlatform(), acceptData.getVersion())) {
                  if (isPart) {
                     hongBaoState = HongBaoV2.STATE_BUFENSHIXIAO; // 部分失效
@@ -438,11 +438,14 @@
                     if (isPart) {
                        // 维权失效金额=维权的金额*获得的红包/结算金额
                        BigDecimal settlement = order.getSettlement();
                        BigDecimal wqHongbao = MoneyBigDecimalUtil.div(MoneyBigDecimalUtil.mul(hongBao, settlement), settlement);
                        weiQuanInfo.setWqHongBao("维权:-¥" + wqHongbao.setScale(2, BigDecimal.ROUND_DOWN).toString());
                        BigDecimal wqHongbao = MoneyBigDecimalUtil
                              .div(MoneyBigDecimalUtil.mul(hongBao, settlement), settlement);
                        weiQuanInfo.setWqHongBao(
                              "维权:-¥" + wqHongbao.setScale(2, BigDecimal.ROUND_DOWN).toString());
                        hongBao = MoneyBigDecimalUtil.sub(hongBao, wqHongbao);
                     } else {
                        weiQuanInfo.setWqHongBao("维权:-¥" + hongBao.setScale(2, BigDecimal.ROUND_DOWN).toString());
                        weiQuanInfo
                              .setWqHongBao("维权:-¥" + hongBao.setScale(2, BigDecimal.ROUND_DOWN).toString());
                        hongBao = new BigDecimal(0);
                     }
                     order.setWeiQuanInfo(weiQuanInfo);
@@ -533,7 +536,6 @@
         hongbaoInfo = hongBaoState_Str + hongbaoInfo;
         Map<String, String> hongBaoMap = new HashMap<String, String>();
         hongBaoMap.put("content", hongbaoInfo + " ¥" + hongBao.setScale(2, BigDecimal.ROUND_DOWN).toString());
         hongBaoMap.put("fontColor", hongbaoInfoFontColor);
@@ -546,13 +548,13 @@
         } else {
            // 奖励订单、免单 使用记录
            if (sourceType == null) {
               setSystemCouponRecord(order, hasRewardCoupon, hongBaoState, hongBaoType, null, signList);
               setSystemCouponRecord(order, hasRewardCoupon, hongBaoState, hongBaoType, null, signList, acceptData);
            } else if (sourceType == Constant.SOURCE_TYPE_TAOBAO) {
               setSystemCouponRecord(order, hasRewardCoupon, hongBaoState, hongBaoType, listRecordTB, signList);
               setSystemCouponRecord(order, hasRewardCoupon, hongBaoState, hongBaoType, listRecordTB, signList, acceptData);
            } else if (sourceType == Constant.SOURCE_TYPE_JD) {
               setSystemCouponRecord(order, hasRewardCoupon, hongBaoState, hongBaoType, listRecordJD, signList);
               setSystemCouponRecord(order, hasRewardCoupon, hongBaoState, hongBaoType, listRecordJD, signList, acceptData);
            } else if (sourceType == Constant.SOURCE_TYPE_PDD) {
               setSystemCouponRecord(order, hasRewardCoupon, hongBaoState, hongBaoType, listRecordPDD, signList);
               setSystemCouponRecord(order, hasRewardCoupon, hongBaoState, hongBaoType, listRecordPDD, signList, acceptData);
            }
         }
@@ -575,7 +577,7 @@
    * @param signList
    */
   public void setSystemCouponRecord(CommonOrderVO order, boolean hasRewardCoupon, Integer hongBaoState,
         Integer hongBaoType, List<UserSystemCouponRecord> list, List<String> signList) {
         Integer hongBaoType, List<UserSystemCouponRecord> list, List<String> signList, AcceptData acceptData) {
      // 是否免单商品
      boolean freeOrder = false;
@@ -643,6 +645,9 @@
         Map<String, Object> jumpLink = new HashMap<String, Object>();
         jumpLink.put("orderNo", order.getOrderNo());
         if (VersionUtil.greaterThan_1_6_0(acceptData.getPlatform(), acceptData.getVersion())) {
            jumpLink.put("goodsType", order.getSourceType());
         }
         Map<String, Object> jump = new HashMap<String, Object>();
         jump.put("type", type);
@@ -665,6 +670,9 @@
         Map<String, Object> jumpLink = new HashMap<String, Object>();
         jumpLink.put("orderNo", order.getOrderNo());
         if (VersionUtil.greaterThan_1_6_0(acceptData.getPlatform(), acceptData.getVersion())) {
            jumpLink.put("goodsType", order.getSourceType());
         }
         Map<String, Object> jump = new HashMap<String, Object>();
         jump.put("type", 1); // 页面跳转
@@ -836,9 +844,17 @@
               goods = JDUtil.getGoodsFromWeb(itemOrder.getSkuId());
            }
            if (goods == null) {
               goods = new JDGoods();
               goods.setSkuName(itemOrder.getSkuName());
               goods.setPrice(itemOrder.getPrice());
               goods.setSkuId(itemOrder.getSkuId());
            }
            if (goods != null) {
               cog = CommonOrderGoodsFactory.create(goods);
            }
            cog.setCreateTime(new Date());
            cog.setUpdateTime(new Date());
            commonOrderGoodsMapper.insertSelective(cog);
@@ -890,10 +906,9 @@
      if (!StringUtil.isNullOrEmpty(commonOrder.getTradeId()))
         oldCommonOrder = commonOrderMapper.selectBySourceTypeAndTradeId(commonOrder.getSourceType(),
               commonOrder.getTradeId());
      else
         oldCommonOrder = commonOrderMapper.selectByOrderNoAndOrderTypeAndOrderBy(commonOrder.getOrderNo(),
               commonOrder.getSourceType(), commonOrder.getOrderBy());
      else {
         throw new CommonOrderException(10, "交易ID为空");
      }
      if (oldCommonOrder == null)// 新增
      {
         commonOrder.setCreateTime(new Date());
@@ -905,6 +920,7 @@
      } else {// 修改
         // 已经结算,已经失效,状态未改变的订单不处理
         if (oldCommonOrder.getState() == CommonOrder.STATE_JS || oldCommonOrder.getState() == CommonOrder.STATE_SX
               || oldCommonOrder.getState() == CommonOrder.STATE_WQ
               || (oldCommonOrder.getState().intValue() == commonOrder.getState())) {
            return oldCommonOrder;
         }
@@ -1020,8 +1036,14 @@
         Integer type, Integer orderState, String startTime, String endTime, Integer source)
         throws CommonOrderException {
      List<CommonOrderVO> list = commonOrderMapper.listQuery(start, count, keyType, key, state, type, orderState,
            startTime, endTime, source);
      List<CommonOrderVO> list = null;
      if (StringUtil.isNullOrEmpty(key) || keyType == 1) {// 搜索框无值或者按订单号搜索时都只搜索主订单
         list = commonOrderMapper.listQueryWithNoChild(start, count, keyType, key, state, type, orderState,
               startTime, endTime, source);
      } else
         list = commonOrderMapper.listQuery(start, count, keyType, key, state, type, orderState, startTime, endTime,
               source);
      if (list == null) {
         list = new ArrayList<CommonOrderVO>();
@@ -1152,6 +1174,8 @@
                        || CouponTypeEnum.welfareFreeCoupon.name().equals(systemCouponType)) {
                     if (UserSystemCouponRecord.STATE_SUCCESS == couponState) {
                        // 免单成功
                        order.setOtherState(2);
                     } else if (UserSystemCouponRecord.STATE_FREE_ON == couponState) {
                        order.setOtherState(1);
                     }
                  }
@@ -1167,6 +1191,8 @@
                        || CouponTypeEnum.welfareFreeCoupon.name().equals(systemCouponType)) {
                     if (UserSystemCouponRecord.STATE_SUCCESS == couponState) {
                        // 免单成功
                        order.setOtherState(2);
                     } else if (UserSystemCouponRecord.STATE_FREE_ON == couponState) {
                        order.setOtherState(1);
                     }
                  }
@@ -1182,6 +1208,8 @@
                        || CouponTypeEnum.welfareFreeCoupon.name().equals(systemCouponType)) {
                     if (UserSystemCouponRecord.STATE_SUCCESS == couponState) {
                        // 免单成功
                        order.setOtherState(2);
                     } else if (UserSystemCouponRecord.STATE_FREE_ON == couponState) {
                        order.setOtherState(1);
                     }
                  }
@@ -1198,7 +1226,11 @@
   @Override
   public long countQuery(Integer keyType, String key, Integer state, Integer type, Integer orderState,
         String startTime, String endTime, Integer source) throws CommonOrderException {
      return commonOrderMapper.countQuery(keyType, key, state, type, orderState, startTime, endTime, source);
      if (StringUtil.isNullOrEmpty(key) || keyType == 1) {// 搜索框无值或者按订单号搜索时都只搜索主订单
         return commonOrderMapper.countQueryWithNoChild(keyType, key, state, type, orderState, startTime, endTime,
               source);
      } else
         return commonOrderMapper.countQuery(keyType, key, state, type, orderState, startTime, endTime, source);
   }
   @Override
@@ -1376,5 +1408,4 @@
      return commonOrderMapper.listBySourceTypeAndStateAndThirdCrateTime(sourceType, state, minTime, maxTime,
            (page - 1) * pageSize, pageSize);
   }
}