|
@@ -36,6 +36,7 @@ import com.kmall.admin.haikong.utils.ListUtils;
|
|
|
import com.kmall.admin.haikong.vo.QueryGoodsVo;
|
|
|
import com.kmall.admin.haikong.client.HaiKongMemberTemplate;
|
|
|
import com.kmall.admin.haikong.client.HaiKongWarehouseTemplate;
|
|
|
+import com.kmall.admin.haikong.client.VmcShopTemplate;
|
|
|
import com.kmall.admin.haikong.config.HaiKongProperties;
|
|
|
import com.kmall.admin.haikong.dto.MemberInfoDTO;
|
|
|
import com.kmall.admin.haikong.utils.Response;
|
|
@@ -226,6 +227,9 @@ public class OrderServiceImpl implements OrderService {
|
|
|
private HaiKongProperties haiKongProperties;
|
|
|
|
|
|
@Autowired
|
|
|
+ private VmcShopTemplate vmcShopTemplate;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
private MkActivitiesService mkActivitiesService;
|
|
|
|
|
|
/**
|
|
@@ -246,6 +250,8 @@ public class OrderServiceImpl implements OrderService {
|
|
|
@Autowired
|
|
|
private MkActivitiesPromotionService mkActivitiesPromotionService;
|
|
|
|
|
|
+
|
|
|
+
|
|
|
@Override
|
|
|
public OrderEntity queryObject(Long id) {
|
|
|
return orderDao.queryObject(id);
|
|
@@ -3280,11 +3286,9 @@ public class OrderServiceImpl implements OrderService {
|
|
|
if (totalActualPrice == null) {
|
|
|
totalActualPrice = 0d;
|
|
|
}
|
|
|
- String refundResult = "";
|
|
|
if (orderInfo.getOrderStatus() != Integer.parseInt(Dict.orderStatus.item_0.getItem())) {
|
|
|
LOGGER.info("微信退款开始");
|
|
|
-
|
|
|
- WechatRefundApiResult result = WechatUtil.wxRefund(orderInfo.getOrderSn().toString(), totalActualPrice,
|
|
|
+ WechatRefundApiResult result = WechatUtil.wxRefund(orderInfo.getOrderSn(), totalActualPrice,
|
|
|
orderInfo.getActualPrice().doubleValue());
|
|
|
OrderRefundEntity orderRefund = new OrderRefundEntity();
|
|
|
orderRefund.setRefundId(result.getRefund_id());
|
|
@@ -3303,24 +3307,20 @@ public class OrderServiceImpl implements OrderService {
|
|
|
} 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()));
|
|
|
- LOGGER.info("微信退款");
|
|
|
-
|
|
|
- orderDao.update(order);//修改为退款成功
|
|
|
+ //修改为退款成功
|
|
|
+ orderDao.update(order);
|
|
|
// 修改小票码
|
|
|
PickUpCodeEntity pickUpCodeEntity = pickUpCodeService.queryObject(order.getOrderSn());
|
|
|
pickUpCodeEntity.setPickUpCodeStatus("3");
|
|
|
pickUpCodeService.update(pickUpCodeEntity);
|
|
|
-
|
|
|
+ //新增退款记录
|
|
|
+ orderRefund.setRestore(1);
|
|
|
+ orderRefundDao.save(orderRefund);
|
|
|
//调用免税mall接口退款
|
|
|
- //HttpUtil.doPostJson()
|
|
|
restoreInventoryMsMall(order);
|
|
|
- orderRefund.setRestore(1);
|
|
|
|
|
|
- orderRefundDao.save(orderRefund);//退款记录
|
|
|
}
|
|
|
// 支付宝的退款代码
|
|
|
} else if (Dict.payFlag.item_alipay.getItem().equals(payFlag)) {
|
|
@@ -3381,32 +3381,34 @@ public class OrderServiceImpl implements OrderService {
|
|
|
* @param order
|
|
|
*/
|
|
|
private void restoreInventoryMsMall(OrderEntity order) {
|
|
|
- //调用CCNET接口
|
|
|
- String msg = OkHttpUtils.post(JSON.toJSONString(order),OmsMerchPropertiesBuilder.instance().getWxOrderResendUrl() + "/refundOrder",JSON.toJSONString(order),"SSL");
|
|
|
- ResponseData responseData = JacksonUtils.fromStringJson(msg, ResponseData.class);
|
|
|
- if(responseData.getCode().equalsIgnoreCase("0")) {
|
|
|
-
|
|
|
- Map<String, Object> map = new HashMap();
|
|
|
- SysUserEntity user = ShiroUtils.getUserEntity();
|
|
|
- map.put("orderId", order.getId());
|
|
|
- List<OrderGoodsEntity> orderGoodsVoList = orderGoodsDao.queryList(map);
|
|
|
-
|
|
|
- for (OrderGoodsEntity orderGoodsEntity : orderGoodsVoList) {
|
|
|
- ProductStoreRelaEntity storeRelaEntity = productStoreRelaDao
|
|
|
- .queryByGoodsIdAndStoreId(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, responseData.getCode(), user);
|
|
|
- }
|
|
|
+ Map<String, Object> map = new HashMap();
|
|
|
+ SysUserEntity user = ShiroUtils.getUserEntity();
|
|
|
+ map.put("orderId", order.getId());
|
|
|
+ List<OrderGoodsEntity> orderGoodsVoList = orderGoodsDao.queryList(map);
|
|
|
+ for (OrderGoodsEntity orderGoodsEntity : orderGoodsVoList) {
|
|
|
+ ProductStoreRelaEntity storeRelaEntity = productStoreRelaDao
|
|
|
+ .queryByGoodsIdAndStoreId(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);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ LOGGER.info("=======> 调用VMCShop接口开始发送退款订单数据......");
|
|
|
+ String response = vmcShopTemplate.refundOrder(JacksonUtil.toJson(order.getOrderSn()));
|
|
|
+ // 3. 解析响应数据
|
|
|
+ LOGGER.info("=======> [发送退款订单数据成功,开始处理后续流程]"+response);
|
|
|
+ Map<String,String> res = JSON.parseObject(response,Map.class);
|
|
|
+ if("0".equals(res.get("code"))){
|
|
|
+
|
|
|
+
|
|
|
}else{
|
|
|
LOGGER.error(order.getOrderSn()+"[该订单退款失败]"+JSON.toJSONString(order));
|
|
|
}
|