|
@@ -1,6 +1,10 @@
|
|
|
package com.kmall.admin.service.impl;
|
|
|
|
|
|
+import cn.hutool.core.lang.Snowflake;
|
|
|
import cn.hutool.core.lang.UUID;
|
|
|
+import cn.hutool.core.lang.generator.SnowflakeGenerator;
|
|
|
+import cn.hutool.core.util.IdUtil;
|
|
|
+import cn.hutool.core.util.XmlUtil;
|
|
|
import cn.hutool.json.JSONUtil;
|
|
|
import com.alibaba.fastjson.JSON;
|
|
|
import com.alibaba.fastjson.JSONObject;
|
|
@@ -11,6 +15,8 @@ import com.google.gson.Gson;
|
|
|
import com.google.gson.internal.LinkedTreeMap;
|
|
|
import com.kmall.admin.cuspay.biz.ali.AliCusDeclareBiz;
|
|
|
import com.kmall.admin.cuspay.biz.wx.WxCusDeclareBiz;
|
|
|
+import com.kmall.admin.cuspay.manager.snow.SnowflakeIdWorker;
|
|
|
+import com.kmall.admin.cuspay.manager.snow.SnowflakeUtil;
|
|
|
import com.kmall.admin.dao.*;
|
|
|
import com.kmall.admin.dao.alarm.Mall2LowPriceWarningDao;
|
|
|
import com.kmall.admin.dao.mk.Mk2GoodsTopicPriceDao;
|
|
@@ -35,7 +41,9 @@ import com.kmall.admin.fromcomm.dao.SysConfigDao;
|
|
|
import com.kmall.admin.fromcomm.entity.SysUserEntity;
|
|
|
import com.kmall.admin.haikong.constant.*;
|
|
|
import com.kmall.admin.haikong.dto.*;
|
|
|
+import com.kmall.admin.haikong.utils.DeepCopyUtils;
|
|
|
import com.kmall.admin.haikong.utils.ListUtils;
|
|
|
+import com.kmall.admin.haikong.utils.XmlUtils;
|
|
|
import com.kmall.admin.haikong.vo.*;
|
|
|
import com.kmall.admin.haikong.client.HaiKongMemberTemplate;
|
|
|
import com.kmall.admin.haikong.client.HaiKongWarehouseTemplate;
|
|
@@ -2211,63 +2219,69 @@ public class OrderServiceImpl implements OrderService {
|
|
|
Map resultObj = Maps.newHashMap();
|
|
|
// 海控需求,下单流程修改,收银端接收会员码,付款码,用户信息,订单数据
|
|
|
// 1. 校验库存:保税仓库存 + 展销店库存 - 出区数 >= 购买数
|
|
|
- /* -----------------↓--------------生产请打开注释-------------------↓------------ */
|
|
|
- /*WareQueryStockParamDTO wareQueryStockParamDTO = new WareQueryStockParamDTO();
|
|
|
- List<Criteria> criteriaList = new ArrayList<>();
|
|
|
- goodsList.forEach(goods -> {
|
|
|
- Criteria criteria = new Criteria();
|
|
|
- String sku = (String) goods.get("goodsSn");
|
|
|
- criteria.setItemCode(sku);
|
|
|
- GoodsEntity goodsEntity = goodsEntityMap.get(sku);
|
|
|
- criteria.setItemId(goodsEntity.getWarehousSysGoodId());
|
|
|
- criteria.setWarehouseCode(goodsEntity.getWarehouseSn());
|
|
|
- criteria.setOwnerCode(goodsEntity.getConsignorSn());
|
|
|
- criteria.setInventoryType(Constants.InventoryType.ZP.getType());
|
|
|
- criteriaList.add(criteria);
|
|
|
- });
|
|
|
- wareQueryStockParamDTO.setCriteriaList(criteriaList);
|
|
|
- String queryWarehouseStockResponse = null;
|
|
|
- try {
|
|
|
- queryWarehouseStockResponse = haiKongWarehouseTemplate.queryWarehouseStock(wareQueryStockParamDTO);
|
|
|
- } catch (Exception e) {
|
|
|
- LOGGER.error("下单调用海控仓库系统查询库存出现异常!", e);
|
|
|
- throw new ServiceException(String.format("下单调用海控仓库系统查询库存出现异常!"));
|
|
|
- }
|
|
|
- if (org.springframework.util.StringUtils.isEmpty(queryWarehouseStockResponse)) {
|
|
|
- LOGGER.error("调用库存系统接口出现错误!返回结果为空!");
|
|
|
- throw new ServiceException("调用库存系统接口出现错误!");
|
|
|
- }
|
|
|
- WareQueryStockResponseDTO wareQueryStockResponseDTO = JacksonUtil.fromStringJson(queryWarehouseStockResponse, WareQueryStockResponseDTO.class);
|
|
|
- if (Objects.isNull(wareQueryStockResponseDTO)) {
|
|
|
- throw new ServiceException("解析一步达库存系统响应数据出现错误!");
|
|
|
- }
|
|
|
- List<WareQueryStockResponseDTO.WareQueryStockResponseItemDTO> items = wareQueryStockResponseDTO.getItems();
|
|
|
- // 解析xml,组装成map key=>sku value=>库存
|
|
|
- Map<String, Integer> stockMap = new HashMap<>(16);
|
|
|
- items.forEach(item -> {
|
|
|
- String itemCode = item.getItemCode();
|
|
|
- Integer quantity = item.getQuantity();
|
|
|
- if (stockMap.containsKey(itemCode)) {
|
|
|
- // 避免出现sku相同情况
|
|
|
- stockMap.put(itemCode, stockMap.get(itemCode) + quantity);
|
|
|
- } else {
|
|
|
- stockMap.put(itemCode, quantity);
|
|
|
+ Map<String, Integer> stockMap = null;
|
|
|
+
|
|
|
+ String env = environment.getProperty("haikong.env");
|
|
|
+ if (Constants.PROD.equals(env)) {
|
|
|
+ WareQueryStockParamDTO wareQueryStockParamDTO = new WareQueryStockParamDTO();
|
|
|
+ List<Criteria> criteriaList = new ArrayList<>();
|
|
|
+ goodsList.forEach(goods -> {
|
|
|
+ Criteria criteria = new Criteria();
|
|
|
+ String sku = (String) goods.get("goodsSn");
|
|
|
+ criteria.setItemCode(sku);
|
|
|
+ GoodsEntity goodsEntity = goodsEntityMap.get(sku);
|
|
|
+ criteria.setItemId(goodsEntity.getWarehousSysGoodId());
|
|
|
+ criteria.setWarehouseCode(goodsEntity.getWarehouseSn());
|
|
|
+ criteria.setOwnerCode(haiKongProperties.getWareCompanyCode());
|
|
|
+ criteria.setInventoryType(Constants.InventoryType.ZP.getType());
|
|
|
+ criteriaList.add(criteria);
|
|
|
+ });
|
|
|
+ wareQueryStockParamDTO.setCriteriaList(criteriaList);
|
|
|
+ String queryWarehouseStockResponse = null;
|
|
|
+ try {
|
|
|
+ queryWarehouseStockResponse = haiKongWarehouseTemplate.queryWarehouseStock(wareQueryStockParamDTO);
|
|
|
+ } catch (Exception e) {
|
|
|
+ LOGGER.error("下单调用海控仓库系统查询库存出现异常!", e);
|
|
|
+ throw new ServiceException(String.format("下单调用海控仓库系统查询库存出现异常!"));
|
|
|
}
|
|
|
- });*/
|
|
|
- /* -----------------↑--------------生产请打开注释------------------↑------------- */
|
|
|
-
|
|
|
- /* -----------------↓--------------测试数据,生产请注释-------------------↓------------ */
|
|
|
- Map<String, Integer> stockMap = new HashMap<>(16);
|
|
|
- goodsList.forEach(goods -> {
|
|
|
- String sku = (String) goods.get("goodsSn");
|
|
|
- if (stockMap.containsKey(sku)) {
|
|
|
- // 避免出现sku相同情况
|
|
|
- stockMap.put(sku, stockMap.get(sku) + 3);
|
|
|
- } else {
|
|
|
- stockMap.put(sku, 3);
|
|
|
+ if (org.springframework.util.StringUtils.isEmpty(queryWarehouseStockResponse)) {
|
|
|
+ LOGGER.error("调用库存系统接口出现错误!返回结果为空!");
|
|
|
+ throw new ServiceException("调用库存系统接口出现错误!");
|
|
|
}
|
|
|
- });
|
|
|
- /* -----------------↑--------------测试数据,生产请注释------------------↑------------- */
|
|
|
+ WareQueryStockResponseDTO wareQueryStockResponseDTO = null;
|
|
|
+ try {
|
|
|
+ wareQueryStockResponseDTO = (WareQueryStockResponseDTO) XmlUtils.toObject(queryWarehouseStockResponse, WareQueryStockResponseDTO.class);
|
|
|
+ } catch (Exception e) {
|
|
|
+ LOGGER.error("解析一步达库存系统响应数据出现错误!", e);
|
|
|
+ }
|
|
|
+ if (Objects.isNull(wareQueryStockResponseDTO)) {
|
|
|
+ throw new ServiceException("解析一步达库存系统响应数据出现错误!");
|
|
|
+ }
|
|
|
+ List<WareQueryStockResponseDTO.WareQueryStockResponseItemDTO> items = wareQueryStockResponseDTO.getItems();
|
|
|
+ // 解析xml,组装成map key=>sku value=>库存
|
|
|
+ stockMap = new HashMap<>(16);
|
|
|
+ for (WareQueryStockResponseDTO.WareQueryStockResponseItemDTO item : items) {
|
|
|
+ String itemCode = item.getItemCode();
|
|
|
+ Integer quantity = item.getQuantity();
|
|
|
+ if (stockMap.containsKey(itemCode)) {
|
|
|
+ // 避免出现sku相同情况
|
|
|
+ stockMap.put(itemCode, stockMap.get(itemCode) + quantity);
|
|
|
+ } else {
|
|
|
+ stockMap.put(itemCode, quantity);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ stockMap = new HashMap<>(16);
|
|
|
+ for (LinkedHashMap goods : goodsList) {
|
|
|
+ String sku = (String) goods.get("goodsSn");
|
|
|
+ if (stockMap.containsKey(sku)) {
|
|
|
+ // 避免出现sku相同情况
|
|
|
+ stockMap.put(sku, stockMap.get(sku) + 3);
|
|
|
+ } else {
|
|
|
+ stockMap.put(sku, 3);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
|
|
|
try {
|
|
|
if (user == null) {
|
|
@@ -2297,7 +2311,9 @@ public class OrderServiceImpl implements OrderService {
|
|
|
|
|
|
//生成商户订单号
|
|
|
SimpleDateFormat format = new SimpleDateFormat("yyyyMMdd");
|
|
|
- String orderSn = "ZMHK" + format.format(new Date()) + CommonUtil.generateOrderNumber();
|
|
|
+// String orderSn = "ZMHK" + format.format(new Date()) + CommonUtil.generateOrderNumber();
|
|
|
+ Snowflake snowflake = IdUtil.createSnowflake(14, 14);
|
|
|
+ String orderSn = "8" + snowflake.nextIdStr().substring(6);
|
|
|
// 检查库存和更新库存
|
|
|
for (QueryGoodsVO goodsDto : queryGoodsVOList) {
|
|
|
// 要购买的数量
|
|
@@ -2417,7 +2433,7 @@ public class OrderServiceImpl implements OrderService {
|
|
|
|
|
|
String openId = (String) param.get("openId");
|
|
|
String memberCode = (String) param.get("memberCode");
|
|
|
- UserEntity userEntity = userDao.queryByMobile((String) userInfo.get("customPhone"));
|
|
|
+ UserEntity userEntity = userDao.queryByOpenId((String) userInfo.get("customPhone"));
|
|
|
if (userEntity == null) {
|
|
|
// 保存用户信息
|
|
|
userEntity = new UserEntity();
|
|
@@ -2429,7 +2445,7 @@ public class OrderServiceImpl implements OrderService {
|
|
|
userEntity.setRegisterTime(new Date());
|
|
|
userEntity.setLastLoginTime(new Date());
|
|
|
userEntity.setIdNo((String) userInfo.get("customIDCard"));
|
|
|
- userEntity.setOpenId(openId);
|
|
|
+ userEntity.setOpenId(userEntity.getMobile());
|
|
|
userEntity.setMemberCode(memberCode);
|
|
|
userDao.save(userEntity);
|
|
|
|
|
@@ -2444,12 +2460,8 @@ public class OrderServiceImpl implements OrderService {
|
|
|
userEntity.setUsername((String) userInfo.get("customName"));
|
|
|
userEntity.setIdNo((String) userInfo.get("customIDCard"));
|
|
|
userEntity.setMobile((String) userInfo.get("customPhone"));
|
|
|
- if (!org.springframework.util.StringUtils.isEmpty(openId)) {
|
|
|
- userEntity.setOpenId(openId);
|
|
|
- }
|
|
|
- if (!org.springframework.util.StringUtils.isEmpty(memberCode)) {
|
|
|
- userEntity.setMemberCode(memberCode);
|
|
|
- }
|
|
|
+ userEntity.setOpenId(userEntity.getMobile());
|
|
|
+ userEntity.setMemberCode(memberCode);
|
|
|
userDao.update(userEntity);
|
|
|
}
|
|
|
|
|
@@ -2515,8 +2527,6 @@ public class OrderServiceImpl implements OrderService {
|
|
|
StoreEntity store = storeService.queryObject(order.getStore_id().intValue());
|
|
|
|
|
|
processRecordEntity.setPaymentStartTime(new Date());
|
|
|
-
|
|
|
- String env = environment.getProperty("haikong.env");
|
|
|
// 判断是微信的支付码还是支付宝的支付码
|
|
|
|
|
|
if (!org.springframework.util.StringUtils.isEmpty(env) && Constants.PROD.equals(env)) {
|
|
@@ -2625,8 +2635,9 @@ public class OrderServiceImpl implements OrderService {
|
|
|
|
|
|
}
|
|
|
if (pointsType.equals(Constants.MemberScoreRulesEnum.ONE.getCode())) {
|
|
|
- Collection<GoodsEntity> goodsEntityCollection = goodsDataMap.values();
|
|
|
- goodsEntityCollection.forEach(goodsEntity -> {
|
|
|
+ Collection<GoodsEntity> values = goodsDataMap.values();
|
|
|
+ Collection<GoodsEntity> entityCollection = DeepCopyUtils.depCopyHashSet(new HashSet<>(values));
|
|
|
+ entityCollection.forEach(goodsEntity -> {
|
|
|
// 商品类别
|
|
|
Integer categoryId = goodsEntity.getCategoryId();
|
|
|
String sku = goodsEntity.getSku();
|
|
@@ -2812,29 +2823,35 @@ public class OrderServiceImpl implements OrderService {
|
|
|
HaiKongSendOrderInfoRecordEntity haiKongSendOrderInfoRecordEntity = wrapSendOrderInfoRecord(sendOrderToVmcShopDTO);
|
|
|
List<HaiKongSendOrderInfoDetailRecordEntity> detailRecordEntities = wrapSendOrderInfoDetailRecord(orderInfoItemDTOList);
|
|
|
|
|
|
- // 不要用自带的工具类,处理XML字符串时有bug
|
|
|
- cn.hutool.json.JSON json = JSONUtil.parse(sendOrderToVmcShopDTO);
|
|
|
- String body = JSONUtil.toJsonPrettyStr(json);
|
|
|
|
|
|
String orderSn = order.getOrder_sn();
|
|
|
try {
|
|
|
-
|
|
|
+ String body = JacksonUtil.getObjectMapper().writeValueAsString(sendOrderToVmcShopDTO);
|
|
|
+ LOGGER.info("请求免税mall创建订单接口!请求体:{}", body);
|
|
|
String response = vmcShopTemplate.sendOrder(body);
|
|
|
|
|
|
Response<String> r = JacksonUtil.fromListJson(response, new TypeReference<Response<String>>() {});
|
|
|
|
|
|
- if (Objects.nonNull(r) && !"failure".equals(r.getResult())) {
|
|
|
+ if (Objects.nonNull(r) && ErrorCodeConstants.VmcShopSysErrorCodeEnum.CODE_0.getCode().equals(r.getCode())) {
|
|
|
pickUpCodeService.updatePickUpCodeStatusByOrderSn(orderSn, Dict.PickUpCodeStatusEnum.item_0.getStatus());
|
|
|
- haiKongSendOrderInfoRecordEntity.setResendStatus(HaiKongMemberOrderResendStatusEnum.NON_RESEND.getStatus());
|
|
|
+ haiKongSendOrderInfoRecordEntity.setResendStatus(HaiKongMemberOrderResendStatusEnum.RESEND_SUCCESS.getStatus());
|
|
|
LOGGER.info("推送订单到免税mall成功!响应结果:{}", response);
|
|
|
- } else {
|
|
|
+ } else if (Objects.nonNull(r) && ErrorCodeConstants.VmcShopSysErrorCodeEnum.CODE_10500.getCode().equals(r.getCode())) {
|
|
|
+ pickUpCodeService.updatePickUpCodeStatusByOrderSn(orderSn, Dict.PickUpCodeStatusEnum.item_6.getStatus());
|
|
|
+ haiKongSendOrderInfoRecordEntity.setResendStatus(HaiKongMemberOrderResendStatusEnum.NON_RESEND.getStatus());
|
|
|
+ LOGGER.error("推送订单到免税mall失败!响应结果:{}", response);
|
|
|
+ } else if (Objects.isNull(r)) {
|
|
|
pickUpCodeService.updatePickUpCodeStatusByOrderSn(orderSn, Dict.PickUpCodeStatusEnum.item_6.getStatus());
|
|
|
haiKongSendOrderInfoRecordEntity.setResendStatus(HaiKongMemberOrderResendStatusEnum.WAIT_RESEND.getStatus());
|
|
|
LOGGER.error("推送订单到免税mall失败!响应结果:{}", response);
|
|
|
+ } else {
|
|
|
+ pickUpCodeService.updatePickUpCodeStatusByOrderSn(orderSn, Dict.PickUpCodeStatusEnum.item_6.getStatus());
|
|
|
+ haiKongSendOrderInfoRecordEntity.setResendStatus(HaiKongMemberOrderResendStatusEnum.NON_RESEND.getStatus());
|
|
|
+ LOGGER.error("推送订单到免税mall失败!响应结果:{}", response);
|
|
|
}
|
|
|
} catch (Exception e) {
|
|
|
pickUpCodeService.updatePickUpCodeStatusByOrderSn(orderSn, Dict.PickUpCodeStatusEnum.item_6.getStatus());
|
|
|
- haiKongSendOrderInfoRecordEntity.setResendStatus(HaiKongMemberOrderResendStatusEnum.WAIT_RESEND.getStatus());
|
|
|
+ haiKongSendOrderInfoRecordEntity.setResendStatus(HaiKongMemberOrderResendStatusEnum.NON_RESEND.getStatus());
|
|
|
LOGGER.error("推送订单到免税mall失败!出现异常!", e);
|
|
|
}
|
|
|
|
|
@@ -2899,7 +2916,9 @@ public class OrderServiceImpl implements OrderService {
|
|
|
payInfoDTO.setMoney(order.getActual_price());
|
|
|
payInfoDTO.setPayMode("offline");
|
|
|
payInfoDTO.setRequest(order.getRequest());
|
|
|
- payInfoDTO.setResponse(order.getResponse());
|
|
|
+ String response = order.getResponse();
|
|
|
+ response = response.replaceAll("\r|\n", "");
|
|
|
+ payInfoDTO.setResponse(response);
|
|
|
payInfoDTO.setOutTradeNo(order.getAliTradeNo());
|
|
|
return payInfoDTO;
|
|
|
}
|
|
@@ -2920,6 +2939,7 @@ public class OrderServiceImpl implements OrderService {
|
|
|
orderInfoItemDTO.setPrice(orderGoodsVo.getRetail_price());
|
|
|
orderInfoItemDTO.setItemcode(orderGoodsVo.getSku());
|
|
|
orderInfoItemDTO.setAmount(orderGoodsVo.getActualPaymentAmount());
|
|
|
+ orderInfoItemDTO.setBuyPrice(orderGoodsVo.getActualPaymentAmount());
|
|
|
orderInfoItemDTO.setNums(orderGoodsVo.getNumber());
|
|
|
orderInfoItemDTO.setTax("true");
|
|
|
orderInfoItemDTO.setTaxPrice(orderGoodsVo.getTaxPrice());
|
|
@@ -2947,6 +2967,7 @@ public class OrderServiceImpl implements OrderService {
|
|
|
orderInfoDTO.setConsigneeMobile(order.getMobile());
|
|
|
orderInfoDTO.setQuantity(order.getNumber());
|
|
|
orderInfoDTO.setOrderTotal(order.getActual_price());
|
|
|
+ orderInfoDTO.setFinallyCartAmount(order.getActual_price());
|
|
|
orderInfoDTO.setPlatform("store");
|
|
|
|
|
|
return orderInfoDTO;
|
|
@@ -3234,8 +3255,8 @@ public class OrderServiceImpl implements OrderService {
|
|
|
private void syncMemberConsumeRecord(String memberPhone, OrderVo order, Integer deductionScore) {
|
|
|
HaiKongMemberOrderSyncResendEntity haiKongMemberOrderSyncResendEntity = new HaiKongMemberOrderSyncResendEntity();
|
|
|
MemberOrderInfoSyncDTO memberOrderInfoSyncDTO = new MemberOrderInfoSyncDTO();
|
|
|
- memberOrderInfoSyncDTO.setPhone(memberPhone);
|
|
|
memberOrderInfoSyncDTO.setOrderNo(order.getOrder_sn());
|
|
|
+ memberOrderInfoSyncDTO.setOpenId(memberPhone);
|
|
|
memberOrderInfoSyncDTO.setConsumeDate(new Date());
|
|
|
memberOrderInfoSyncDTO.setOrderAmount(order.getActual_price());
|
|
|
memberOrderInfoSyncDTO.setOrderScore(deductionScore);
|
|
@@ -3243,6 +3264,7 @@ public class OrderServiceImpl implements OrderService {
|
|
|
Date date = new Date();
|
|
|
haiKongMemberOrderSyncResendEntity.setCreateTime(date);
|
|
|
haiKongMemberOrderSyncResendEntity.setLastResendTime(date);
|
|
|
+ haiKongMemberOrderSyncResendEntity.setPhone(memberPhone);
|
|
|
try {
|
|
|
String body = JacksonUtil.toJson(memberOrderInfoSyncDTO);
|
|
|
LOGGER.info("请求会员系统同步消费订单接口!请求体:{}", body);
|
|
@@ -3250,18 +3272,20 @@ public class OrderServiceImpl implements OrderService {
|
|
|
String memberOrderSyncResponseJson = haiKongMemberTemplate.memberOrderSync(body);
|
|
|
LOGGER.info("请求会员系统同步消费订单接口!响应:{}", memberOrderSyncResponseJson);
|
|
|
Response<String> response = JacksonUtil.fromListJson(memberOrderSyncResponseJson, new TypeReference<Response<String>>() {});
|
|
|
- if (Objects.nonNull(response) && response.getSuccess()) {
|
|
|
+ if (Objects.nonNull(response) && ErrorCodeConstants.MemberSysErrorCodeEnum.CODE_0.getCode().equals(response.getCode())) {
|
|
|
haiKongMemberOrderSyncResendEntity.setMemberSysOrderId(response.getData());
|
|
|
- haiKongMemberOrderSyncResendEntity.setResendStatus(HaiKongMemberOrderResendStatusEnum.NON_RESEND.getStatus());
|
|
|
- } else {
|
|
|
+ haiKongMemberOrderSyncResendEntity.setResendStatus(HaiKongMemberOrderResendStatusEnum.RESEND_SUCCESS.getStatus());
|
|
|
+ } else if (Objects.nonNull(response) && ErrorCodeConstants.MemberSysErrorCodeEnum.CODE_500.getCode().equals(response.getCode())) {
|
|
|
haiKongMemberOrderSyncResendEntity.setResendStatus(HaiKongMemberOrderResendStatusEnum.WAIT_RESEND.getStatus());
|
|
|
+ } else {
|
|
|
+ haiKongMemberOrderSyncResendEntity.setResendStatus(HaiKongMemberOrderResendStatusEnum.NON_RESEND.getStatus());
|
|
|
}
|
|
|
haiKongMemberOrderSyncResendService.save(haiKongMemberOrderSyncResendEntity);
|
|
|
LOGGER.info("请求会员系统同步消费订单接口成功!");
|
|
|
} catch (Exception e) {
|
|
|
LOGGER.error("请求会员系统同步消费订单接口出现异常!准备新增发送失败记录,等待重发!异常信息:", e);
|
|
|
// 没有请求成功,写表,重发
|
|
|
- haiKongMemberOrderSyncResendEntity.setResendStatus(HaiKongMemberOrderResendStatusEnum.WAIT_RESEND.getStatus());
|
|
|
+ haiKongMemberOrderSyncResendEntity.setResendStatus(HaiKongMemberOrderResendStatusEnum.NON_RESEND.getStatus());
|
|
|
haiKongMemberOrderSyncResendService.save(haiKongMemberOrderSyncResendEntity);
|
|
|
}
|
|
|
}
|
|
@@ -3302,19 +3326,21 @@ public class OrderServiceImpl implements OrderService {
|
|
|
String changeMemberScoreResponseJson = haiKongMemberTemplate.changeMemberScore(body);
|
|
|
LOGGER.info("请求会员系统积分变动接口!响应数据:{}", changeMemberScoreResponseJson);
|
|
|
Response<MemberScoreChangeResponseDTO> response = JacksonUtil.fromListJson(changeMemberScoreResponseJson, new TypeReference<Response<MemberScoreChangeResponseDTO>>() {});
|
|
|
- if (Objects.nonNull(response) && response.getSuccess()) {
|
|
|
+ if (Objects.nonNull(response) && ErrorCodeConstants.MemberSysErrorCodeEnum.CODE_0.getCode().equals(response.getCode())) {
|
|
|
MemberScoreChangeResponseDTO responseData = response.getData();
|
|
|
haiKongMemberScoreChangeRecordEntity.setStatementId(responseData.getStatementId());
|
|
|
- haiKongMemberScoreChangeRecordEntity.setResendStatus(HaiKongMemberOrderResendStatusEnum.NON_RESEND.getStatus());
|
|
|
- } else {
|
|
|
+ haiKongMemberScoreChangeRecordEntity.setResendStatus(HaiKongMemberOrderResendStatusEnum.RESEND_SUCCESS.getStatus());
|
|
|
+ } else if (Objects.nonNull(response) && ErrorCodeConstants.MemberSysErrorCodeEnum.CODE_500.getCode().equals(response.getCode())) {
|
|
|
haiKongMemberScoreChangeRecordEntity.setResendStatus(HaiKongMemberOrderResendStatusEnum.WAIT_RESEND.getStatus());
|
|
|
+ } else {
|
|
|
+ haiKongMemberScoreChangeRecordEntity.setResendStatus(HaiKongMemberOrderResendStatusEnum.NON_RESEND.getStatus());
|
|
|
}
|
|
|
haiKongMemberScoreChangeRecordService.save(haiKongMemberScoreChangeRecordEntity);
|
|
|
LOGGER.info("请求会员系统积分变动接口成功!");
|
|
|
} catch (Exception e) {
|
|
|
LOGGER.error("请求会员系统积分变动接口出现异常!准备新增发送失败记录,等待重发!异常信息:", e);
|
|
|
// 失败重发
|
|
|
- haiKongMemberScoreChangeRecordEntity.setResendStatus(HaiKongMemberOrderResendStatusEnum.WAIT_RESEND.getStatus());
|
|
|
+ haiKongMemberScoreChangeRecordEntity.setResendStatus(HaiKongMemberOrderResendStatusEnum.NON_RESEND.getStatus());
|
|
|
haiKongMemberScoreChangeRecordService.save(haiKongMemberScoreChangeRecordEntity);
|
|
|
}
|
|
|
LOGGER.info("保存会员系统积分变动详情记录中......");
|
|
@@ -4618,6 +4644,10 @@ public class OrderServiceImpl implements OrderService {
|
|
|
userEntity.setOpenId(memberInfoDTO.getOpenId());
|
|
|
userEntity.setMemberCode(memberCode);
|
|
|
userService.save(userEntity);
|
|
|
+ } else {
|
|
|
+ userEntity.setOpenId(memberInfoDTO.getOpenId());
|
|
|
+ userEntity.setMemberCode(memberCode);
|
|
|
+ userService.update(userEntity);
|
|
|
}
|
|
|
Integer score = memberInfoDTO.getScore();
|
|
|
if (Objects.nonNull(score) && score > 0) {
|
|
@@ -5297,8 +5327,15 @@ public class OrderServiceImpl implements OrderService {
|
|
|
LOGGER.info("=======> [integralTask-----重推退款积分]" + responseMsg);
|
|
|
|
|
|
//解析数据
|
|
|
- if ("true".equals(res.get("success").toString())) {
|
|
|
+ if (!CollectionUtils.isEmpty(res) && ErrorCodeConstants.MemberSysErrorCodeEnum.CODE_0.getCode().equals(res.get("code"))) {
|
|
|
+ HaiKongResendMsgEntity haiKongResendMsgEntity = new HaiKongResendMsgEntity();
|
|
|
+ haiKongResendMsgEntity.setResponseMsg(responseMsg);
|
|
|
+ haiKongResendMsgEntity.setResendNum(haiKongResendMsg.getResendNum()+1);
|
|
|
+ haiKongResendMsgEntity.setResendTime(date);
|
|
|
+ haiKongResendMsgEntity.setId(haiKongResendMsg.getId());
|
|
|
+ haiKongResendMsgEntity.setIsValid(2);
|
|
|
LOGGER.info("=======> [integralTask-----重推退款积分]" + responseMsg);
|
|
|
+ haiKongResendMsgDao.updateResendMsg(haiKongResendMsgEntity);
|
|
|
} else {
|
|
|
LOGGER.error("=======> [integralTask-----重推退款积分]" + responseMsg);
|
|
|
HaiKongResendMsgEntity haiKongResendMsgEntity = new HaiKongResendMsgEntity();
|
|
@@ -5308,7 +5345,6 @@ public class OrderServiceImpl implements OrderService {
|
|
|
haiKongResendMsgEntity.setId(haiKongResendMsg.getId());
|
|
|
haiKongResendMsgDao.updateResendMsg(haiKongResendMsgEntity);
|
|
|
}
|
|
|
-
|
|
|
}
|
|
|
}
|
|
|
|