|  | @@ -31,6 +31,7 @@ import com.kmall.admin.entity.vip.Mall2PointsRulesEntity;
 | 
	
		
			
				|  |  |  import com.kmall.admin.fromcomm.dao.SysConfigDao;
 | 
	
		
			
				|  |  |  import com.kmall.admin.fromcomm.entity.SysUserEntity;
 | 
	
		
			
				|  |  |  import com.kmall.admin.haikong.constant.Constants;
 | 
	
		
			
				|  |  | +import com.kmall.admin.haikong.constant.VmcconnectUrlEnum;
 | 
	
		
			
				|  |  |  import com.kmall.admin.haikong.dto.WareQueryStockResponseDTO;
 | 
	
		
			
				|  |  |  import com.kmall.admin.haikong.utils.ListUtils;
 | 
	
		
			
				|  |  |  import com.kmall.admin.haikong.vo.QueryGoodsVo;
 | 
	
	
		
			
				|  | @@ -210,10 +211,6 @@ public class OrderServiceImpl implements OrderService {
 | 
	
		
			
				|  |  |      @Autowired
 | 
	
		
			
				|  |  |      private AddressInfoService addressInfoService;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -    @Autowired
 | 
	
		
			
				|  |  | -    private KtoEccsService ktoEccsService;
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  |      @Autowired
 | 
	
		
			
				|  |  |      private CustomsClearanceTimeliness customsClearanceTimeliness;
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -225,7 +222,9 @@ public class OrderServiceImpl implements OrderService {
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      @Autowired
 | 
	
		
			
				|  |  |      private HaiKongProperties haiKongProperties;
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | +    /**
 | 
	
		
			
				|  |  | +     * 免税mall接口工具类
 | 
	
		
			
				|  |  | +     */
 | 
	
		
			
				|  |  |      @Autowired
 | 
	
		
			
				|  |  |      private VmcShopTemplate vmcShopTemplate;
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -249,6 +248,11 @@ public class OrderServiceImpl implements OrderService {
 | 
	
		
			
				|  |  |       */
 | 
	
		
			
				|  |  |      @Autowired
 | 
	
		
			
				|  |  |      private MkActivitiesPromotionService mkActivitiesPromotionService;
 | 
	
		
			
				|  |  | +    /**
 | 
	
		
			
				|  |  | +     * 免税mall日志记录
 | 
	
		
			
				|  |  | +     */
 | 
	
		
			
				|  |  | +    @Autowired
 | 
	
		
			
				|  |  | +    private MallVmcSendLogDao mallVmcSendLogDao;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -1008,6 +1012,44 @@ public class OrderServiceImpl implements OrderService {
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      /**
 | 
	
		
			
				|  |  | +     * 海控还原门店商品库存
 | 
	
		
			
				|  |  | +     * @param stockNum
 | 
	
		
			
				|  |  | +     * @param storeRelaEntity
 | 
	
		
			
				|  |  | +     * @param orderGoodsEntity
 | 
	
		
			
				|  |  | +     * @param sellVolume
 | 
	
		
			
				|  |  | +     * @param user
 | 
	
		
			
				|  |  | +     */
 | 
	
		
			
				|  |  | +    private void resetStoreGoodsStockMall(Integer stockNum, ProductStoreRelaEntity storeRelaEntity,
 | 
	
		
			
				|  |  | +                                      OrderGoodsEntity orderGoodsEntity, BigDecimal sellVolume,SysUserEntity user) {
 | 
	
		
			
				|  |  | +        storeRelaEntity.setSellVolume(Integer.parseInt(sellVolume.toString())); // 减退库存
 | 
	
		
			
				|  |  | +        //库存数量 + 商品数量
 | 
	
		
			
				|  |  | +        storeRelaEntity.setStockNum(stockNum + orderGoodsEntity.getNumber());//库存数量
 | 
	
		
			
				|  |  | +        //待退款数量 - 商品数量
 | 
	
		
			
				|  |  | +        storeRelaEntity.setToBeRestored(storeRelaEntity.getToBeRestored() - orderGoodsEntity.getNumber());
 | 
	
		
			
				|  |  | +        productStoreRelaDao.update(storeRelaEntity);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        String username = "system";
 | 
	
		
			
				|  |  | +        if (user != null) {
 | 
	
		
			
				|  |  | +            username = user.getUsername();
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +        StoreMngChangeEntity storeMngChangeEntity = new StoreMngChangeEntity();
 | 
	
		
			
				|  |  | +        storeMngChangeEntity.setChangeType(Dict.changeType.item_0.getItem());
 | 
	
		
			
				|  |  | +        storeMngChangeEntity.setChangeReason("前端退款");
 | 
	
		
			
				|  |  | +        storeMngChangeEntity.setGoodsId(storeRelaEntity.getGoodsId().intValue());
 | 
	
		
			
				|  |  | +        storeMngChangeEntity.setStoreId(storeRelaEntity.getStoreId().intValue());
 | 
	
		
			
				|  |  | +        storeMngChangeEntity.setMerchSn(storeRelaEntity.getMerchSn());
 | 
	
		
			
				|  |  | +        storeMngChangeEntity.setStoreChangeNum(orderGoodsEntity.getNumber());
 | 
	
		
			
				|  |  | +        storeMngChangeEntity.setStoreOriginalNum(stockNum);
 | 
	
		
			
				|  |  | +        storeMngChangeEntity.setStoreValidNum(stockNum + orderGoodsEntity.getNumber());
 | 
	
		
			
				|  |  | +        storeMngChangeEntity.setCreateTime(new Date());
 | 
	
		
			
				|  |  | +        storeMngChangeEntity.setModTime(new Date());
 | 
	
		
			
				|  |  | +        storeMngChangeEntity.setCreaterSn(username);
 | 
	
		
			
				|  |  | +        storeMngChangeEntity.setModerSn(username);
 | 
	
		
			
				|  |  | +        storeMngChangeEntity.setIsValid(0);
 | 
	
		
			
				|  |  | +        storeMngChangeDao.save(storeMngChangeEntity);
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    /**
 | 
	
		
			
				|  |  |       * 查询该退款订单编号是否是推广渠道订单,是则修改渠道定时扫描状态
 | 
	
		
			
				|  |  |       *
 | 
	
		
			
				|  |  |       * @param orderInfo
 | 
	
	
		
			
				|  | @@ -3245,7 +3287,6 @@ public class OrderServiceImpl implements OrderService {
 | 
	
		
			
				|  |  |                  orderInfo.getOrderStatus() == Integer.parseInt(Dict.orderStatus.item_402.getItem())) {
 | 
	
		
			
				|  |  |              return R.error("订单已退款");
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  |          if (orderInfo.getOrderStatus() == Integer.parseInt(Dict.orderStatus.item_0.getItem())) {
 | 
	
		
			
				|  |  |              return R.error("订单正在准备,请稍等!");
 | 
	
		
			
				|  |  |          }
 | 
	
	
		
			
				|  | @@ -3260,12 +3301,10 @@ public class OrderServiceImpl implements OrderService {
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |          String payFlag = order.getPayFlag();
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  |          String key  = "kmall_order_refund_" + order.getOrderSn();
 | 
	
		
			
				|  |  |          if (JedisUtil.exists(key)) {
 | 
	
		
			
				|  |  |              return R.error("订单退款操作过快,请等待!");
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  |          JedisUtil.set(key, System.currentTimeMillis() + "", 3);
 | 
	
		
			
				|  |  |          if (orderInfo.getPayStatus() == Integer.parseInt(Dict.payStatus.item_3.getItem())) {
 | 
	
		
			
				|  |  |              return R.error("订单正在退款中,请勿重复退款");
 | 
	
	
		
			
				|  | @@ -3281,32 +3320,14 @@ public class OrderServiceImpl implements OrderService {
 | 
	
		
			
				|  |  |          cdl.await();
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |          if (Dict.payFlag.item_weixin.getItem().equals(payFlag)) {
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  |              Double totalActualPrice = orderDao.getTotalActualPrice(orderInfo.getMerchOrderSn());
 | 
	
		
			
				|  |  |              if (totalActualPrice == null) {
 | 
	
		
			
				|  |  |                  totalActualPrice = 0d;
 | 
	
		
			
				|  |  |              }
 | 
	
		
			
				|  |  |              if (orderInfo.getOrderStatus() != Integer.parseInt(Dict.orderStatus.item_0.getItem())) {
 | 
	
		
			
				|  |  | -                LOGGER.info("微信退款开始");
 | 
	
		
			
				|  |  | +                LOGGER.info("[微信退款开始--------orderRefund]"+order.getOrderSn());
 | 
	
		
			
				|  |  |                  WechatRefundApiResult result = WechatUtil.wxRefund(orderInfo.getOrderSn(), totalActualPrice,
 | 
	
		
			
				|  |  |                          orderInfo.getActualPrice().doubleValue());
 | 
	
		
			
				|  |  | -                OrderRefundEntity orderRefund = new OrderRefundEntity();
 | 
	
		
			
				|  |  | -                orderRefund.setRefundId(result.getRefund_id());
 | 
	
		
			
				|  |  | -                orderRefund.setOutRefundNo(result.getOut_trade_no());
 | 
	
		
			
				|  |  | -                orderRefund.setRefundMoney(BigDecimal.valueOf(Long.valueOf(result.getRefund_fee())).divide(Constant.ONE_HUNDRED));
 | 
	
		
			
				|  |  | -                orderRefund.setRefundStatus(Integer.parseInt(Dict.RefundStatus.item_2.getItem()));//退款处理中
 | 
	
		
			
				|  |  | -                orderRefund.setModTime(new Date());
 | 
	
		
			
				|  |  | -                orderRefund.setRefundTime(new Date());
 | 
	
		
			
				|  |  | -                orderRefund.setOrderId(Integer.parseInt(order.getId() + ""));
 | 
	
		
			
				|  |  | -                orderRefund.setUserId(user.getUserId().intValue());
 | 
	
		
			
				|  |  | -                orderRefund.setRefundId(order.getUserId() + "");
 | 
	
		
			
				|  |  | -                orderRefund.setCreateTime(new Date());
 | 
	
		
			
				|  |  | -                List<OrderEntity> list = orderDao.queryObjectByMerchOrderSn(order.getMerchOrderSn());
 | 
	
		
			
				|  |  | -                if (list.size() > 1) {//多条订单
 | 
	
		
			
				|  |  | -                    orderRefund.setRefundType(Integer.parseInt(Dict.RefundType.item_2.getItem()));//部分退款
 | 
	
		
			
				|  |  | -                } else {
 | 
	
		
			
				|  |  | -                    orderRefund.setRefundType(Integer.parseInt(Dict.RefundType.item_1.getItem()));//用户全额退款
 | 
	
		
			
				|  |  | -                }
 | 
	
		
			
				|  |  |                  order.setPayStatus(Integer.parseInt(Dict.payStatus.item_5.getItem()));
 | 
	
		
			
				|  |  |                  order.setOrderStatus(Integer.parseInt(Dict.orderStatus.item_401.getItem()));
 | 
	
		
			
				|  |  |                  //修改为退款成功
 | 
	
	
		
			
				|  | @@ -3315,16 +3336,16 @@ public class OrderServiceImpl implements OrderService {
 | 
	
		
			
				|  |  |                  PickUpCodeEntity pickUpCodeEntity = pickUpCodeService.queryObject(order.getOrderSn());
 | 
	
		
			
				|  |  |                  pickUpCodeEntity.setPickUpCodeStatus("3");
 | 
	
		
			
				|  |  |                  pickUpCodeService.update(pickUpCodeEntity);
 | 
	
		
			
				|  |  | +                //还原库存,调用免税mall接口退款
 | 
	
		
			
				|  |  | +                restoreInventoryMsMall(order);
 | 
	
		
			
				|  |  |                  //新增退款记录
 | 
	
		
			
				|  |  | -                orderRefund.setRestore(1);
 | 
	
		
			
				|  |  | +                OrderRefundEntity orderRefund = orderRefundLog(result.getRefund_id(),result.getOut_trade_no(),result.getRefund_fee(),order.getId(),user.getUserId(),order.getMerchOrderSn());
 | 
	
		
			
				|  |  |                  orderRefundDao.save(orderRefund);
 | 
	
		
			
				|  |  | -                //调用免税mall接口退款
 | 
	
		
			
				|  |  | -                restoreInventoryMsMall(order);
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |              }
 | 
	
		
			
				|  |  |              // 支付宝的退款代码
 | 
	
		
			
				|  |  |          } else if (Dict.payFlag.item_alipay.getItem().equals(payFlag)) {
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | +            LOGGER.info("[支付宝退款开始--------orderRefund]"+order.getOrderSn());
 | 
	
		
			
				|  |  |              AliPayMicropayApiResult userRefund = AliPayUtil.aliTradeRefund(order.getOrderSn(), order.getActualPrice().toString(),
 | 
	
		
			
				|  |  |                      "用户退款", order.getStoreId() + "");
 | 
	
		
			
				|  |  |              // 是否已退款校验
 | 
	
	
		
			
				|  | @@ -3337,45 +3358,57 @@ public class OrderServiceImpl implements OrderService {
 | 
	
		
			
				|  |  |                  LOGGER.error("[支付宝退款校验出错]",e.getMessage());
 | 
	
		
			
				|  |  |              }
 | 
	
		
			
				|  |  |              LOGGER.info(userRefund.getSubMsg());
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -            OrderRefundEntity orderRefund = new OrderRefundEntity();
 | 
	
		
			
				|  |  | -            orderRefund.setRefundId(userRefund.getTradeNo());
 | 
	
		
			
				|  |  | -            orderRefund.setOutRefundNo(userRefund.getOutTradeNo());
 | 
	
		
			
				|  |  | -            orderRefund.setRefundMoney(new BigDecimal(userRefund.getRefundFee()));
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -            orderRefund.setRefundStatus(Integer.parseInt(Dict.RefundStatus.item_2.getItem()));//退款成功
 | 
	
		
			
				|  |  | -            orderRefund.setModTime(new Date());
 | 
	
		
			
				|  |  | -            orderRefund.setRefundTime(new Date());
 | 
	
		
			
				|  |  | -            orderRefund.setOrderId(Integer.parseInt(order.getId() + ""));
 | 
	
		
			
				|  |  | -            orderRefund.setUserId(user.getUserId().intValue());
 | 
	
		
			
				|  |  | -            orderRefund.setRefundId(order.getUserId() + "");
 | 
	
		
			
				|  |  | -            orderRefund.setCreateTime(new Date());
 | 
	
		
			
				|  |  | -            List<OrderEntity> list = orderDao.queryObjectByMerchOrderSn(order.getMerchOrderSn());
 | 
	
		
			
				|  |  | -            if (list.size() > 1) {//多条订单
 | 
	
		
			
				|  |  | -                orderRefund.setRefundType(Integer.parseInt(Dict.RefundType.item_2.getItem()));//部分退款
 | 
	
		
			
				|  |  | -            } else {
 | 
	
		
			
				|  |  | -                orderRefund.setRefundType(Integer.parseInt(Dict.RefundType.item_1.getItem()));//用户全额退款
 | 
	
		
			
				|  |  | -            }
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  |              order.setPayStatus(Integer.parseInt(Dict.payStatus.item_5.getItem()));
 | 
	
		
			
				|  |  |              order.setOrderStatus(Integer.parseInt(Dict.orderStatus.item_401.getItem()));
 | 
	
		
			
				|  |  | -            orderDao.update(order);//修改为退款成功
 | 
	
		
			
				|  |  | +            //修改为退款成功
 | 
	
		
			
				|  |  | +            orderDao.update(order);
 | 
	
		
			
				|  |  |              // 修改小票码
 | 
	
		
			
				|  |  |              PickUpCodeEntity pickUpCodeEntity = pickUpCodeService.queryObject(order.getOrderSn());
 | 
	
		
			
				|  |  |              pickUpCodeEntity.setPickUpCodeStatus("3");
 | 
	
		
			
				|  |  |              pickUpCodeService.update(pickUpCodeEntity);
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -            //调用免税mall接口退款
 | 
	
		
			
				|  |  | +            //还原库存,调用免税mall接口退款
 | 
	
		
			
				|  |  |              restoreInventoryMsMall(order);
 | 
	
		
			
				|  |  | -            orderRefund.setRestore(1);
 | 
	
		
			
				|  |  | -            orderRefundDao.save(orderRefund);//退款记录
 | 
	
		
			
				|  |  | +            //新增退款记录
 | 
	
		
			
				|  |  | +            OrderRefundEntity orderRefund = orderRefundLog(userRefund.getTradeNo(),userRefund.getOutTradeNo(),userRefund.getRefundFee(),order.getId(),user.getUserId(),order.getMerchOrderSn());
 | 
	
		
			
				|  |  | +            orderRefundDao.save(orderRefund);
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |          return R.ok("退款成功");
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    /**
 | 
	
		
			
				|  |  | +     * 新增退款记录
 | 
	
		
			
				|  |  | +     * @param refundId
 | 
	
		
			
				|  |  | +     * @param OutTradeNo
 | 
	
		
			
				|  |  | +     * @param refundFee
 | 
	
		
			
				|  |  | +     * @param orderId
 | 
	
		
			
				|  |  | +     * @param userId
 | 
	
		
			
				|  |  | +     * @param merchOrderSn
 | 
	
		
			
				|  |  | +     * @return
 | 
	
		
			
				|  |  | +     */
 | 
	
		
			
				|  |  | +    private OrderRefundEntity orderRefundLog(String refundId,String OutTradeNo,String refundFee,Long orderId,Long userId,String merchOrderSn){
 | 
	
		
			
				|  |  | +        OrderRefundEntity orderRefund = new OrderRefundEntity();
 | 
	
		
			
				|  |  | +        orderRefund.setRefundId(refundId);
 | 
	
		
			
				|  |  | +        orderRefund.setOutRefundNo(OutTradeNo);
 | 
	
		
			
				|  |  | +        orderRefund.setRefundMoney(BigDecimal.valueOf(Long.valueOf(refundFee)).divide(Constant.ONE_HUNDRED));
 | 
	
		
			
				|  |  | +        orderRefund.setRefundStatus(Integer.parseInt(Dict.RefundStatus.item_2.getItem()));//退款处理中
 | 
	
		
			
				|  |  | +        orderRefund.setModTime(new Date());
 | 
	
		
			
				|  |  | +        orderRefund.setRefundTime(new Date());
 | 
	
		
			
				|  |  | +        orderRefund.setOrderId(orderId.intValue());
 | 
	
		
			
				|  |  | +        orderRefund.setUserId(userId.intValue());
 | 
	
		
			
				|  |  | +        orderRefund.setRefundId(userId + "");
 | 
	
		
			
				|  |  | +        orderRefund.setCreateTime(new Date());
 | 
	
		
			
				|  |  | +        Integer sum = orderDao.queryObjectByMerchOrderSnHkMall(merchOrderSn);
 | 
	
		
			
				|  |  | +        if (sum > 1) {//多条订单
 | 
	
		
			
				|  |  | +            orderRefund.setRefundType(Integer.parseInt(Dict.RefundType.item_2.getItem()));//部分退款
 | 
	
		
			
				|  |  | +        } else {
 | 
	
		
			
				|  |  | +            orderRefund.setRefundType(Integer.parseInt(Dict.RefundType.item_1.getItem()));//用户全额退款
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +        orderRefund.setRestore(1);
 | 
	
		
			
				|  |  | +        return orderRefund;
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |      /**
 | 
	
		
			
				|  |  |       * 海控订单退款
 | 
	
		
			
				|  |  |       * @param order
 | 
	
	
		
			
				|  | @@ -3384,36 +3417,47 @@ public class OrderServiceImpl implements OrderService {
 | 
	
		
			
				|  |  |          Map<String, Object> map = new HashMap();
 | 
	
		
			
				|  |  |          SysUserEntity user = ShiroUtils.getUserEntity();
 | 
	
		
			
				|  |  |          map.put("orderId", order.getId());
 | 
	
		
			
				|  |  | -        List<OrderGoodsEntity> orderGoodsVoList = orderGoodsDao.queryList(map);
 | 
	
		
			
				|  |  | +        //mall_order_goodsd,订单明细
 | 
	
		
			
				|  |  | +        List<OrderGoodsEntity> orderGoodsVoList = orderGoodsDao.queryListHkMall(map);
 | 
	
		
			
				|  |  |          for (OrderGoodsEntity orderGoodsEntity : orderGoodsVoList) {
 | 
	
		
			
				|  |  |              ProductStoreRelaEntity storeRelaEntity = productStoreRelaDao
 | 
	
		
			
				|  |  | -                    .queryByGoodsIdAndStoreId(order.getStoreId().longValue(), orderGoodsEntity.getGoodsId().longValue());
 | 
	
		
			
				|  |  | +                    .queryByGoodsIdAndStoreIdHkMall(order.getStoreId().longValue(), orderGoodsEntity.getGoodsId().longValue());
 | 
	
		
			
				|  |  |              if (null == storeRelaEntity || null == storeRelaEntity.getSellVolume()) {
 | 
	
		
			
				|  |  |                  storeRelaEntity.setSellVolume(0);
 | 
	
		
			
				|  |  |              }
 | 
	
		
			
				|  |  | +            //销售量 - 商品数量
 | 
	
		
			
				|  |  |              BigDecimal sellVolume = new BigDecimal(storeRelaEntity.getSellVolume() - orderGoodsEntity.getNumber());//销售量
 | 
	
		
			
				|  |  |              if (sellVolume.compareTo(Constant.ZERO) < 0) {
 | 
	
		
			
				|  |  |                  sellVolume = Constant.ZERO;
 | 
	
		
			
				|  |  |              }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |              //还原门店库存
 | 
	
		
			
				|  |  |              if (null != storeRelaEntity.getStockNum()) {
 | 
	
		
			
				|  |  | -                Integer stockNum = storeRelaEntity.getStockNum();
 | 
	
		
			
				|  |  | -                resetStoreGoodsStock(stockNum, storeRelaEntity, orderGoodsEntity, sellVolume, "0", user);
 | 
	
		
			
				|  |  | +                resetStoreGoodsStockMall(storeRelaEntity.getStockNum(), storeRelaEntity, orderGoodsEntity, sellVolume, user);
 | 
	
		
			
				|  |  |              }
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  | -        LOGGER.info("=======> 调用VMCShop接口开始发送退款订单数据......");
 | 
	
		
			
				|  |  | -        String response = vmcShopTemplate.refundOrder(JacksonUtil.toJson(order.getOrderSn()));
 | 
	
		
			
				|  |  | -        // 3. 解析响应数据
 | 
	
		
			
				|  |  | +        //调用免税mall接口
 | 
	
		
			
				|  |  | +        vmcShopMall(order);
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    /**
 | 
	
		
			
				|  |  | +     *海控免税mall接口
 | 
	
		
			
				|  |  | +     * @param order
 | 
	
		
			
				|  |  | +     */
 | 
	
		
			
				|  |  | +    private void vmcShopMall(OrderEntity order) {
 | 
	
		
			
				|  |  | +        LOGGER.info("=======> [调用VMCShop接口开始发送退款订单数据]"+order.getOrderSn());
 | 
	
		
			
				|  |  | +        String body = JacksonUtil.toJson(order.getOrderSn());
 | 
	
		
			
				|  |  | +        String response = vmcShopTemplate.refundOrder(body);
 | 
	
		
			
				|  |  | +        //解析响应数据
 | 
	
		
			
				|  |  |          LOGGER.info("=======> [发送退款订单数据成功,开始处理后续流程]"+response);
 | 
	
		
			
				|  |  | -        Map<String,String> res = JSON.parseObject(response,Map.class);
 | 
	
		
			
				|  |  | -        if("0".equals(res.get("code"))){
 | 
	
		
			
				|  |  | +        //Map<String,String> res = JSON.parseObject(response,Map.class);
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +        saveVmcSend(order.getOrderSn(),VmcconnectUrlEnum.ORDERS_CANCEL_ORDER.getMethod(),body,response);
 | 
	
		
			
				|  |  | +        LOGGER.info(order.getOrderSn()+"[发送退款订单数据]"+JSON.toJSONString(order));
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -        }else{
 | 
	
		
			
				|  |  | -            LOGGER.error(order.getOrderSn()+"[该订单退款失败]"+JSON.toJSONString(order));
 | 
	
		
			
				|  |  | -        }
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |      @Transactional
 | 
	
		
			
				|  |  |      public void toBeRestoreInventory(OrderEntity order) {
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -4245,6 +4289,43 @@ public class OrderServiceImpl implements OrderService {
 | 
	
		
			
				|  |  |          return goodsDetailsDtos;
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +    /**
 | 
	
		
			
				|  |  | +     * 重发订单
 | 
	
		
			
				|  |  | +     * @param orderSn
 | 
	
		
			
				|  |  | +     * @return
 | 
	
		
			
				|  |  | +     */
 | 
	
		
			
				|  |  | +    @Override
 | 
	
		
			
				|  |  | +    public R resendOrderHkMall(String orderSn) {
 | 
	
		
			
				|  |  | +        LOGGER.info("=======> [调用VMCShop接口开始发送退款订单数据]"+orderSn);
 | 
	
		
			
				|  |  | +        String body = JacksonUtil.toJson(orderSn);
 | 
	
		
			
				|  |  | +        String response = vmcShopTemplate.resendOrder(body);
 | 
	
		
			
				|  |  | +        //解析响应数据
 | 
	
		
			
				|  |  | +        LOGGER.info("=======> [resendOrderHkMall---重发订单数据成功,开始处理后续流程]"+response);
 | 
	
		
			
				|  |  | +        //记录发送至免税Mall日志
 | 
	
		
			
				|  |  | +        saveVmcSend(orderSn,VmcconnectUrlEnum.ORDERS_RETRY_ORDER.getMethod(),body,response);
 | 
	
		
			
				|  |  | +        Map<String,String> res = JSON.parseObject(response,Map.class);
 | 
	
		
			
				|  |  | +        if("0".equals(res.get("code"))){
 | 
	
		
			
				|  |  | +            return R.ok();
 | 
	
		
			
				|  |  | +        }else{
 | 
	
		
			
				|  |  | +            return R.error(500,"重发订单失败");
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    /**
 | 
	
		
			
				|  |  | +     * 记录发送至免税Mall日志
 | 
	
		
			
				|  |  | +     * @param orderSn
 | 
	
		
			
				|  |  | +     * @param body
 | 
	
		
			
				|  |  | +     * @param response
 | 
	
		
			
				|  |  | +     */
 | 
	
		
			
				|  |  | +    private void saveVmcSend(String orderSn,String urlType,String body,String response){
 | 
	
		
			
				|  |  | +        MallVmcSendlogEntity mallVmcSendlogEntity = new MallVmcSendlogEntity();
 | 
	
		
			
				|  |  | +        mallVmcSendlogEntity.setOrderSn(orderSn);
 | 
	
		
			
				|  |  | +        mallVmcSendlogEntity.setVmcType(urlType);
 | 
	
		
			
				|  |  | +        mallVmcSendlogEntity.setRequestMsg(body);
 | 
	
		
			
				|  |  | +        mallVmcSendlogEntity.setResponseMsg(response);
 | 
	
		
			
				|  |  | +        mallVmcSendLogDao.saveVmcSend(mallVmcSendlogEntity);
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      /**
 | 
	
		
			
				|  |  |       * 设置订单数据
 |