|
@@ -22,10 +22,7 @@ import com.kmall.admin.dao.vip.Mall2MemberPointsDao;
|
|
|
import com.kmall.admin.dao.vip.Mall2PointsRulesDao;
|
|
|
import com.kmall.admin.dto.*;
|
|
|
import com.kmall.admin.entity.*;
|
|
|
-import com.kmall.admin.entity.haikong.HaiKongMemberOrderSyncResendEntity;
|
|
|
-import com.kmall.admin.entity.haikong.HaiKongMemberScoreChangeDetailRecordEntity;
|
|
|
-import com.kmall.admin.entity.haikong.HaiKongMemberScoreChangeRecordEntity;
|
|
|
-import com.kmall.admin.entity.haikong.IntegralGoBackEntity;
|
|
|
+import com.kmall.admin.entity.haikong.*;
|
|
|
import com.kmall.admin.entity.mk.MkActivitiesEntity;
|
|
|
import com.kmall.admin.entity.mk.MkActivitiesScoreEntity;
|
|
|
import com.kmall.admin.entity.mk.store.MkStorePromOrderRealEntity;
|
|
@@ -45,9 +42,7 @@ import com.kmall.admin.haikong.client.VmcShopTemplate;
|
|
|
import com.kmall.admin.haikong.config.HaiKongProperties;
|
|
|
import com.kmall.admin.haikong.utils.Response;
|
|
|
import com.kmall.admin.service.*;
|
|
|
-import com.kmall.admin.service.haikong.HaiKongMemberOrderSyncResendService;
|
|
|
-import com.kmall.admin.service.haikong.HaiKongMemberScoreChangeDetailRecordService;
|
|
|
-import com.kmall.admin.service.haikong.HaiKongMemberScoreChangeRecordService;
|
|
|
+import com.kmall.admin.service.haikong.*;
|
|
|
import com.kmall.admin.service.mk.MkActivitiesScoreService;
|
|
|
import com.kmall.admin.service.mk.MkActivitiesService;
|
|
|
import com.kmall.admin.service.mk.store.MkStoreCampMinusService;
|
|
@@ -304,6 +299,12 @@ public class OrderServiceImpl implements OrderService {
|
|
|
@Autowired
|
|
|
private AliCusDeclareBiz aliCusDeclareBiz;
|
|
|
|
|
|
+ @Autowired
|
|
|
+ private HaiKongSendOrderInfoRecordService haiKongSendOrderInfoRecordService;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private HaiKongSendOrderInfoDetailRecordService haiKongSendOrderInfoDetailRecordService;
|
|
|
+
|
|
|
@Override
|
|
|
public OrderEntity queryObject(Long id) {
|
|
|
return orderDao.queryObject(id);
|
|
@@ -2173,7 +2174,7 @@ public class OrderServiceImpl implements OrderService {
|
|
|
Map resultObj = Maps.newHashMap();
|
|
|
// 海控需求,下单流程修改,收银端接收会员码,付款码,用户信息,订单数据
|
|
|
// 1. 校验库存:保税仓库存 + 展销店库存 - 出区数 >= 购买数
|
|
|
- // TODO 获取保税仓库存,测试时注释
|
|
|
+ /* -----------------↓--------------生产请打开注释-------------------↓------------ */
|
|
|
/*WareQueryStockParamDTO wareQueryStockParamDTO = new WareQueryStockParamDTO();
|
|
|
List<Criteria> criteriaList = new ArrayList<>();
|
|
|
goodsList.forEach(goods -> {
|
|
@@ -2216,8 +2217,9 @@ public class OrderServiceImpl implements OrderService {
|
|
|
stockMap.put(itemCode, quantity);
|
|
|
}
|
|
|
});*/
|
|
|
+ /* -----------------↑--------------生产请打开注释------------------↑------------- */
|
|
|
|
|
|
- // TODO 上生产时注释,模拟仓库系统(sku最大库存为3)返回
|
|
|
+ /* -----------------↓--------------测试数据,生产请注释-------------------↓------------ */
|
|
|
Map<String, Integer> stockMap = new HashMap<>(16);
|
|
|
goodsList.forEach(goods -> {
|
|
|
String sku = (String) goods.get("goodsSn");
|
|
@@ -2228,6 +2230,7 @@ public class OrderServiceImpl implements OrderService {
|
|
|
stockMap.put(sku, 3);
|
|
|
}
|
|
|
});
|
|
|
+ /* -----------------↑--------------测试数据,生产请注释------------------↑------------- */
|
|
|
|
|
|
try {
|
|
|
if (user == null) {
|
|
@@ -2757,6 +2760,9 @@ public class OrderServiceImpl implements OrderService {
|
|
|
sendOrderToVmcShopDTO.setSeaportInfo(seaportInfoDTO);
|
|
|
sendOrderToVmcShopDTO.setPayInfo(payInfoDTO);
|
|
|
|
|
|
+ HaiKongSendOrderInfoRecordEntity haiKongSendOrderInfoRecordEntity = wrapSendOrderInfoRecord(sendOrderToVmcShopDTO);
|
|
|
+ List<HaiKongSendOrderInfoDetailRecordEntity> detailRecordEntities = wrapSendOrderInfoDetailRecord(orderInfoItemDTOList);
|
|
|
+
|
|
|
String body = JacksonUtil.toJson(sendOrderToVmcShopDTO);
|
|
|
|
|
|
String orderSn = order.getOrder_sn();
|
|
@@ -2768,15 +2774,49 @@ public class OrderServiceImpl implements OrderService {
|
|
|
|
|
|
if (Objects.nonNull(r) && r.getCode() == 0) {
|
|
|
pickUpCodeService.updatePickUpCodeStatusByOrderSn(orderSn, Dict.PickUpCodeStatusEnum.item_0.getStatus());
|
|
|
+ haiKongSendOrderInfoRecordEntity.setResendStatus(HaiKongMemberOrderResendStatusEnum.NON_RESEND.getStatus());
|
|
|
LOGGER.info("推送订单到免税mall成功!响应结果:{}", response);
|
|
|
} else {
|
|
|
pickUpCodeService.updatePickUpCodeStatusByOrderSn(orderSn, Dict.PickUpCodeStatusEnum.item_6.getStatus());
|
|
|
+ haiKongSendOrderInfoRecordEntity.setResendStatus(HaiKongMemberOrderResendStatusEnum.WAIT_RESEND.getStatus());
|
|
|
LOGGER.error("推送订单到免税mall失败!响应结果:{}", response);
|
|
|
}
|
|
|
} catch (Exception e) {
|
|
|
pickUpCodeService.updatePickUpCodeStatusByOrderSn(orderSn, Dict.PickUpCodeStatusEnum.item_6.getStatus());
|
|
|
+ haiKongSendOrderInfoRecordEntity.setResendStatus(HaiKongMemberOrderResendStatusEnum.WAIT_RESEND.getStatus());
|
|
|
LOGGER.error("推送订单到免税mall失败!出现异常!", e);
|
|
|
}
|
|
|
+
|
|
|
+ haiKongSendOrderInfoRecordService.save(haiKongSendOrderInfoRecordEntity);
|
|
|
+ haiKongSendOrderInfoDetailRecordService.saveBatch(detailRecordEntities);
|
|
|
+ }
|
|
|
+
|
|
|
+ private List<HaiKongSendOrderInfoDetailRecordEntity> wrapSendOrderInfoDetailRecord(List<OrderInfoItemDTO> orderInfoItemDTOList) {
|
|
|
+ return orderInfoItemDTOList.stream().map(orderInfoItemDTO -> {
|
|
|
+ HaiKongSendOrderInfoDetailRecordEntity entity = new HaiKongSendOrderInfoDetailRecordEntity();
|
|
|
+ BeanUtils.copyProperties(orderInfoItemDTO, entity);
|
|
|
+ entity.setIsTax(orderInfoItemDTO.getTax().toString());
|
|
|
+ return entity;
|
|
|
+ }).collect(Collectors.toList());
|
|
|
+ }
|
|
|
+
|
|
|
+ private HaiKongSendOrderInfoRecordEntity wrapSendOrderInfoRecord(SendOrderToVmcShopDTO sendOrderToVmcShopDTO) {
|
|
|
+ HaiKongSendOrderInfoRecordEntity entity = new HaiKongSendOrderInfoRecordEntity();
|
|
|
+ OrderInfoDTO orderInfo = sendOrderToVmcShopDTO.getOrderInfo();
|
|
|
+ PayInfoDTO payInfo = sendOrderToVmcShopDTO.getPayInfo();
|
|
|
+ SeaportInfoDTO seaportInfo = sendOrderToVmcShopDTO.getSeaportInfo();
|
|
|
+
|
|
|
+ BeanUtils.copyProperties(orderInfo, entity);
|
|
|
+ BeanUtils.copyProperties(payInfo, entity);
|
|
|
+
|
|
|
+ entity.setSeaportCode(seaportInfo.getSeaportCode());
|
|
|
+ entity.setSeaportPlatform(seaportInfo.getPlatform());
|
|
|
+ entity.setIdentityCard(seaportInfo.getIdentityCard());
|
|
|
+ entity.setIdentityMobile(seaportInfo.getIdentityMobile());
|
|
|
+ entity.setIdentityName(seaportInfo.getIdentityName());
|
|
|
+ entity.setOrderProductInfo(JacksonUtil.toJson(seaportInfo.getOrderProductInfoList()));
|
|
|
+
|
|
|
+ return entity;
|
|
|
}
|
|
|
|
|
|
/**
|
|
@@ -3488,7 +3528,6 @@ public class OrderServiceImpl implements OrderService {
|
|
|
List<IntegralGoBackEntity> changeRecordEntityList = haiKongMemberScoreChangeRecordService.queryIntegralGoBack(order.getOrderSn());
|
|
|
for(IntegralGoBackEntity integralGoBackEntity:changeRecordEntityList) {
|
|
|
String integralGoBackEntityMsg = JSON.toJSONString(integralGoBackEntity);
|
|
|
- Date dateResend = new Date();
|
|
|
String responseMsg = haiKongMemberTemplate.rollbackMemberScore(integralGoBackEntityMsg);
|
|
|
Map<String, Object> res = JSON.parseObject(responseMsg, Map.class);
|
|
|
LOGGER.info("=======> [vipIntegralGoBack-----调用会员系统积分全量回退接口数据]" + responseMsg);
|
|
@@ -3516,19 +3555,16 @@ public class OrderServiceImpl implements OrderService {
|
|
|
* @param order
|
|
|
*/
|
|
|
private void vmcShopMall(OrderEntity order) {
|
|
|
- LOGGER.info("=======> [vmcShopMall-----调用VMCShop接口开始发送退款订单数据]"+order.getOrderSn());
|
|
|
- String body = JacksonUtil.toJson(order.getOrderSn());
|
|
|
- InterfaceSendLogEntity interfaceSendLogEntity = new InterfaceSendLogEntity();
|
|
|
- interfaceSendLogEntity.setRequestDate(new Date());
|
|
|
- interfaceSendLogEntity.setSysType(Dict.sendLog.item_mall.getItemName());
|
|
|
+ LOGGER.info("=======> [vmcShopMall-----调用VMCShop接口开始发送退款订单数据]"+JSON.toJSONString(order));
|
|
|
+ Map<String,String> map = new HashMap<>();
|
|
|
+ map.put("outer_order_no",order.getOrderSn());
|
|
|
+ String body = JacksonUtil.toJson(map);
|
|
|
String response = vmcShopTemplate.refundOrder(body);
|
|
|
- Date dateResend = new Date();
|
|
|
//解析响应数据
|
|
|
LOGGER.info("=======> [vmcShopMall------发送退款订单数据成功,开始处理后续流程]"+response);
|
|
|
Map<String,String> res = JSON.parseObject(response,Map.class);
|
|
|
- interfaceSendLogEntity.setMsgStatus(res.get("code"));
|
|
|
|
|
|
- LOGGER.info(order.getOrderSn()+"[发送退款订单数据]"+JSON.toJSONString(order));
|
|
|
+ LOGGER.info(order.getOrderSn()+"[解析响应数据]"+JSON.toJSONString(res));
|
|
|
|
|
|
}
|
|
|
|
|
@@ -4653,6 +4689,16 @@ public class OrderServiceImpl implements OrderService {
|
|
|
) {
|
|
|
return R.error(500,"无法重发订单,请检查订单状态");
|
|
|
}
|
|
|
+ OrderProcessRecordEntity orderProcessRecordEntity = orderProcessRecordDao.queryObjectByOrderSn(orderEntity.getOrderSn());
|
|
|
+ if(null==orderProcessRecordEntity.getIsCustomsSend()){
|
|
|
+ return R.error(500,"订单尚未发送至下游系统,无法重发订单");
|
|
|
+ }else{
|
|
|
+ if(Dict.orderCustomsStatus.item_1.getItem().equals(orderProcessRecordEntity.getIsCustomsSend())||
|
|
|
+ Dict.orderCustomsStatus.item_2.getItem().equals(orderProcessRecordEntity.getIsCustomsSend())){
|
|
|
+ return R.error(500,"订单处于清关放行状态或查验状态,无需重发订单");
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
|
|
|
LOGGER.info("=======> [调用VMCShop接口开始发送退款订单数据]"+orderSn);
|
|
|
Map<String,String> map = new HashMap<>();
|
|
@@ -4661,8 +4707,8 @@ public class OrderServiceImpl implements OrderService {
|
|
|
String response = vmcShopTemplate.resendOrder(body);
|
|
|
//解析响应数据
|
|
|
LOGGER.info("=======> [resendOrderHkMall---重发订单数据成功,开始处理后续流程]"+response);
|
|
|
- Map<String,String> res = JSON.parseObject(response,Map.class);
|
|
|
- if("0".equals(res.get("code"))){
|
|
|
+ Map<String,Object> res = JSON.parseObject(response,Map.class);
|
|
|
+ if("0".equals(res.get("code").toString())){
|
|
|
pickUpCodeService.updatePickUpCodeStatusByOrderSn(orderSn, Dict.PickUpCodeStatusEnum.item_0.getStatus());
|
|
|
return R.ok();
|
|
|
}else{
|