|
@@ -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)) {
|
|
@@ -2609,7 +2619,7 @@ public class OrderServiceImpl implements OrderService {
|
|
|
orderGiftScoreRulesVo.setGenerateType(Constants.MemberScoreRulesEnum.TWO.getCode());
|
|
|
if (ratio.compareTo(BigDecimal.ZERO) > 0) {
|
|
|
// 算出所积的分
|
|
|
- int giftScore = money.multiply(ratio).add(new BigDecimal(memberScore.get())).intValue();
|
|
|
+ int giftScore = money.multiply(ratio).setScale(0, BigDecimal.ROUND_FLOOR).add(new BigDecimal(memberScore.get())).intValue();
|
|
|
memberScore.set(giftScore);
|
|
|
orderGiftScoreRulesVo.setGiftScore(giftScore);
|
|
|
orderGiftScoreRulesVo.setGenerateRatio(ratio);
|
|
@@ -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();
|
|
@@ -2638,7 +2649,7 @@ public class OrderServiceImpl implements OrderService {
|
|
|
BigDecimal money = goodsMap.get(sku);
|
|
|
if (ratio.compareTo(BigDecimal.ZERO) > 0) {
|
|
|
// 算出所积的分
|
|
|
- int giftScore = money.multiply(ratio).add(new BigDecimal(memberScore.get())).intValue();
|
|
|
+ int giftScore = money.multiply(ratio).setScale(0, BigDecimal.ROUND_FLOOR).add(new BigDecimal(memberScore.get())).intValue();
|
|
|
memberScore.set(giftScore);
|
|
|
orderGiftScoreRulesVo.setGiftScore(giftScore);
|
|
|
orderGiftScoreRulesVo.setGenerateRatio(ratio);
|
|
@@ -2667,7 +2678,7 @@ public class OrderServiceImpl implements OrderService {
|
|
|
BigDecimal money = goodsMap.get(sku);
|
|
|
if (ratio.compareTo(BigDecimal.ZERO) != 0) {
|
|
|
// 算出所积的分
|
|
|
- int giftScore = money.multiply(ratio).add(new BigDecimal(memberScore.get())).intValue();
|
|
|
+ int giftScore = money.multiply(ratio).setScale(0, BigDecimal.ROUND_FLOOR).add(new BigDecimal(memberScore.get())).intValue();
|
|
|
memberScore.set(giftScore);
|
|
|
orderGiftScoreRulesVo.setGiftScore(giftScore);
|
|
|
orderGiftScoreRulesVo.setGenerateRatio(ratio);
|
|
@@ -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;
|
|
@@ -3195,21 +3216,28 @@ public class OrderServiceImpl implements OrderService {
|
|
|
|
|
|
if (atomicBoolean.get()) {
|
|
|
// 推送支付单
|
|
|
- sendWxPayInfo(order, store);
|
|
|
+ sendWxPayInfo(order, store, wechatMicropayApiResult);
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
- private void sendWxPayInfo(OrderVo order, StoreEntity store) {
|
|
|
+ private void sendWxPayInfo(OrderVo order, StoreEntity store, WechatMicropayApiResult wechatMicropayApiResult) {
|
|
|
// 组装支付单信息
|
|
|
+ String payTransactionId = "";
|
|
|
+ if (Objects.nonNull(wechatMicropayApiResult)) {
|
|
|
+ payTransactionId = wechatMicropayApiResult.getTransaction_id();
|
|
|
+ } else {
|
|
|
+ payTransactionId = order.getPayTransactionId();
|
|
|
+ }
|
|
|
+
|
|
|
Map<String, Object> orderSendCusParams = new HashMap<>();
|
|
|
orderSendCusParams.put("merchSn", order.getMerchSn());
|
|
|
orderSendCusParams.put("orderSn", order.getOrder_sn());
|
|
|
orderSendCusParams.put("merchName", order.getMerchName());
|
|
|
orderSendCusParams.put("thirdPartyMerchCode", store.getThirdPartyMerchCode());
|
|
|
orderSendCusParams.put("thirdPartyMerchName", store.getThirdPartyMerchName());
|
|
|
- orderSendCusParams.put("outTradeNo", order.getMerchOrderSn());
|
|
|
- orderSendCusParams.put("transactionId", order.getPayTransactionId());
|
|
|
+ orderSendCusParams.put("outTradeNo", order.getOrder_sn());
|
|
|
+ orderSendCusParams.put("transactionId", payTransactionId);
|
|
|
orderSendCusParams.put("subOrderId", ""); // ccnet原逻辑没有对该字段赋值
|
|
|
orderSendCusParams.put("subOrderNo", order.getOrder_sn());
|
|
|
orderSendCusParams.put("feeType", order.getFeeType());
|
|
@@ -3234,8 +3262,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 +3271,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);
|
|
@@ -3252,16 +3281,18 @@ public class OrderServiceImpl implements OrderService {
|
|
|
Response<String> response = JacksonUtil.fromListJson(memberOrderSyncResponseJson, new TypeReference<Response<String>>() {});
|
|
|
if (Objects.nonNull(response) && response.getSuccess()) {
|
|
|
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,23 +3333,25 @@ 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("保存会员系统积分变动详情记录中......");
|
|
|
- List<HaiKongMemberScoreChangeDetailRecordEntity> recordEntityList = goodsList.stream().map(goodsEntity -> {
|
|
|
+ List<HaiKongMemberScoreChangeDetailRecordEntity> recordEntityList = goodsList.stream().distinct().map(goodsEntity -> {
|
|
|
HaiKongMemberScoreChangeDetailRecordEntity entity = new HaiKongMemberScoreChangeDetailRecordEntity();
|
|
|
String sku = goodsEntity.getSku();
|
|
|
OrderGiftScoreRulesVo orderGiftScoreRulesVo = giftGoodsScoreDetailMap.get(sku);
|
|
@@ -4256,7 +4289,7 @@ public class OrderServiceImpl implements OrderService {
|
|
|
if (Objects.nonNull(activity)) {
|
|
|
good.setActivity(null);
|
|
|
}
|
|
|
- BigDecimal actualPaymentAmount = good.getActualPaymentAmount();
|
|
|
+ BigDecimal actualPaymentAmount = good.getActualPaymentAmount().multiply(BigDecimal.valueOf(good.getSellVolume()));
|
|
|
good.setActualPaymentAmount(good.getRetailPrice());
|
|
|
|
|
|
QueryGoodsVO queryGoodsVo = new QueryGoodsVO();
|
|
@@ -4265,7 +4298,7 @@ public class OrderServiceImpl implements OrderService {
|
|
|
queryGoodsVo.setStoreId(Long.parseLong(storeId));
|
|
|
queryGoodsVo.setDisCountedPrice(BigDecimal.ZERO);
|
|
|
queryGoodsVo.setTotalPrice(actualPaymentAmount);
|
|
|
- orderTotalPrice = orderTotalPrice.add(good.getRetailPrice());
|
|
|
+ orderTotalPrice = orderTotalPrice.add(good.getRetailPrice().multiply(BigDecimal.valueOf(good.getSellVolume())));
|
|
|
goodsVos.add(queryGoodsVo);
|
|
|
}
|
|
|
calculateOrderDiscountPriceResponseVO.setOrderTotalPrice(orderTotalPrice);
|
|
@@ -4279,7 +4312,7 @@ public class OrderServiceImpl implements OrderService {
|
|
|
* 2.查询当前时间,该门店是否有活动,如果有活动,查询开启了哪些营销方式
|
|
|
* 参数: 当前时间 门店id
|
|
|
*/
|
|
|
- List<MkActivitiesEntity> mkActivitiesEntityList = mkActivitiesService.queryByNow(storeId, DateUtils.format(new Date(), "yyyy-MM-dd"));
|
|
|
+ List<MkActivitiesEntity> mkActivitiesEntityList = mkActivitiesService.queryByNow(storeId, DateUtils.format(new Date(), "yyyy-MM-dd HH:mm:ss"));
|
|
|
// 活动优先级判定,特价>打折>满减/满赠>优惠券>积分抵扣;
|
|
|
// List<Constants.ActivityTopicEnum> activityTopicEnums = Arrays.asList(Constants.ActivityTopicEnum.values());
|
|
|
// for (MkActivitiesEntity mkActivitiesEntity : mkActivitiesEntityList) {
|
|
@@ -4582,13 +4615,15 @@ public class OrderServiceImpl implements OrderService {
|
|
|
queryGoodsVo.setSku(good.getGoodsSn());
|
|
|
queryGoodsVo.setStoreId(Long.parseLong(storeId));
|
|
|
queryGoodsVo.setDisCountedPrice(BigDecimal.ZERO);
|
|
|
- queryGoodsVo.setTotalPrice(good.getActualPaymentAmount());
|
|
|
- orderTotalPrice = orderTotalPrice.add(good.getActualPaymentAmount());
|
|
|
+ queryGoodsVo.setTotalPrice(good.getActualPaymentAmount().multiply(BigDecimal.valueOf(good.getSellVolume())));
|
|
|
+ orderTotalPrice = orderTotalPrice.add(good.getActualPaymentAmount().multiply(BigDecimal.valueOf(good.getSellVolume())));
|
|
|
goodsVos.add(queryGoodsVo);
|
|
|
}
|
|
|
calculateOrderDiscountPriceResponseVO.setOrderTotalPrice(orderTotalPrice);
|
|
|
calculateOrderDiscountPriceResponseVO.setGoodsDetailsDtos(goodsDetailsDtos);
|
|
|
-
|
|
|
+ calculateOrderDiscountPriceResponseVO.setLevelName("无");
|
|
|
+ calculateOrderDiscountPriceResponseVO.setMemberCurrentAvailableScore(0);
|
|
|
+ calculateOrderDiscountPriceResponseVO.setDeductionScore(0);
|
|
|
|
|
|
// 计算完活动优惠后,计算积分抵扣。(活动与积分抵扣不互斥)
|
|
|
if (!org.springframework.util.StringUtils.isEmpty(memberCode)) {
|
|
@@ -4596,11 +4631,19 @@ public class OrderServiceImpl implements OrderService {
|
|
|
Response<Object> response;
|
|
|
try {
|
|
|
// 查询会员信息
|
|
|
- memberInfoByCodeResponseJson = haiKongMemberTemplate.getMemberInfoByPhone("{\"phone\":" + memberCode + "}");
|
|
|
+ if (memberCode.trim().length() == 11) {
|
|
|
+ memberInfoByCodeResponseJson = haiKongMemberTemplate.getMemberInfoByPhone("{\"phone\":\"" + memberCode + "\"}");
|
|
|
+ } else {
|
|
|
+ memberInfoByCodeResponseJson = haiKongMemberTemplate.getMemberInfoByCode("{\"code\":\"" + memberCode + "\"}");
|
|
|
+ }
|
|
|
response = JacksonUtil.fromListJson(memberInfoByCodeResponseJson, new TypeReference<Response<Object>>() {
|
|
|
});
|
|
|
- if (Objects.isNull(response) || Objects.nonNull(response.getErrorCode())) {
|
|
|
+ if (Objects.isNull(response)) {
|
|
|
LOGGER.error("请求会员系统出现异常!error:{}", memberInfoByCodeResponseJson);
|
|
|
+ if (ErrorCodeConstants.MemberSysErrorCodeEnum.CODE_401.getCode().equals(response.getCode())) {
|
|
|
+ JedisUtil.del(Constants.MEMBER_SYS_ACCESS_TOKEN_REDIS_KEY);
|
|
|
+ throw new ServiceException(String.format("请求会员系统出现异常!会员码:%s,error:%s", memberCode, ErrorCodeConstants.MemberSysErrorCodeEnum.CODE_401.getDesc()));
|
|
|
+ }
|
|
|
throw new ServiceException(String.format("请求会员系统出现异常!会员码:%s,error:%s", memberCode, memberInfoByCodeResponseJson));
|
|
|
}
|
|
|
} catch (Exception e) {
|
|
@@ -4612,28 +4655,37 @@ public class OrderServiceImpl implements OrderService {
|
|
|
MemberInfoDTO memberInfoDTO = JacksonUtil.fromStringJson(JacksonUtil.toJson(response.getData()), MemberInfoDTO.class);
|
|
|
assert memberInfoDTO != null : String.format("会员码:【%s】会员信息错误!%s", memberCode, JacksonUtil.toJson(response));
|
|
|
// 查询会员表
|
|
|
+ calculateOrderDiscountPriceResponseVO.setOpenId(memberInfoDTO.getOpenId());
|
|
|
+ calculateOrderDiscountPriceResponseVO.setMemberPhone(memberInfoDTO.getPhone());
|
|
|
+ calculateOrderDiscountPriceResponseVO.setMemberCurrentAvailableScore(memberInfoDTO.getScore());
|
|
|
+ calculateOrderDiscountPriceResponseVO.setLevelName(memberInfoDTO.getLevelName());
|
|
|
UserEntity userEntity = userService.queryByOpenId(memberInfoDTO.getOpenId());
|
|
|
+ String openId = memberInfoDTO.getOpenId();
|
|
|
if (Objects.isNull(userEntity)) {
|
|
|
userEntity = new UserEntity();
|
|
|
- userEntity.setOpenId(memberInfoDTO.getOpenId());
|
|
|
+ userEntity.setOpenId(openId);
|
|
|
userEntity.setMemberCode(memberCode);
|
|
|
+ userEntity.setMobile(openId);
|
|
|
userService.save(userEntity);
|
|
|
+ } else {
|
|
|
+ userEntity.setOpenId(openId);
|
|
|
+ userEntity.setMobile(openId);
|
|
|
+ userEntity.setMemberCode(memberCode);
|
|
|
+ userService.update(userEntity);
|
|
|
}
|
|
|
Integer score = memberInfoDTO.getScore();
|
|
|
if (Objects.nonNull(score) && score > 0) {
|
|
|
// 有积分
|
|
|
- afterDiscountPrice = calculatePreferentialPrice(orderTotalPrice, score, memberCode, calculateOrderDiscountPriceResponseVO, goodsDetailsDtos, promotionSkuList, mkActivitiesEntityList);
|
|
|
- LOGGER.info("会员【{}】,当前积分:{},积分抵扣后的订单金额:{},积分抵扣前的订单金额:{}", memberCode, score, afterDiscountPrice, orderTotalPrice);
|
|
|
+ afterDiscountPrice = calculatePreferentialPrice(orderTotalPrice, score, memberCode, openId, calculateOrderDiscountPriceResponseVO, goodsDetailsDtos, promotionSkuList, mkActivitiesEntityList);
|
|
|
+ LOGGER.info("会员【{}】,当前积分:{},积分抵扣后的订单金额:{},积分抵扣前的订单金额:{}", openId, score, afterDiscountPrice, orderTotalPrice);
|
|
|
calculateOrderDiscountPriceResponseVO.setOrderTotalPrice(afterDiscountPrice);
|
|
|
calculateOrderDiscountPriceResponseVO.setGoodsDetailsDtos(goodsDetailsDtos);
|
|
|
calculateOrderDiscountPriceResponseVO.setBeforeScore(score);
|
|
|
- calculateOrderDiscountPriceResponseVO.setOpenId(memberInfoDTO.getOpenId());
|
|
|
- calculateOrderDiscountPriceResponseVO.setMemberPhone(memberInfoDTO.getPhone());
|
|
|
// 订单完成后再添加积分消费记录,以及同步积分信息
|
|
|
return calculateOrderDiscountPriceResponseVO;
|
|
|
} else {
|
|
|
- LOGGER.error("会员【{}】积分为0,积分抵扣失败!", memberCode);
|
|
|
- throw new ServiceException(String.format("会员【%s】积分为0,积分抵扣失败!", memberCode));
|
|
|
+ LOGGER.error("会员【{}】积分为0,积分抵扣失败!", openId);
|
|
|
+ return calculateOrderDiscountPriceResponseVO;
|
|
|
}
|
|
|
} else {
|
|
|
LOGGER.error("查询会员信息失败!响应结果:{}", memberInfoByCodeResponseJson);
|
|
@@ -4654,15 +4706,18 @@ public class OrderServiceImpl implements OrderService {
|
|
|
* @param orderTotalPrice 订单商品总价
|
|
|
* @param score 积分
|
|
|
* @param memberCode 会员码
|
|
|
+ * @param openId 会员open_id:手机号
|
|
|
* @param goodsDetailsDtos 订单商品详情
|
|
|
* @param calculateOrderDiscountPriceResponseVO 响应数据
|
|
|
* @param promotionSkuList 参与了限时特价活动并且与积分抵扣互斥的sku集合
|
|
|
+ * @param mkActivitiesEntityList 根据优先级排序后的活动集合
|
|
|
*
|
|
|
* @return 积分抵扣后的订单总金额
|
|
|
*/
|
|
|
private BigDecimal calculatePreferentialPrice(BigDecimal orderTotalPrice,
|
|
|
Integer score,
|
|
|
String memberCode,
|
|
|
+ String openId,
|
|
|
CalculateOrderDiscountPriceResponseVO calculateOrderDiscountPriceResponseVO,
|
|
|
List<GoodsDetailsDto> goodsDetailsDtos,
|
|
|
List<String> promotionSkuList,
|
|
@@ -4717,7 +4772,8 @@ public class OrderServiceImpl implements OrderService {
|
|
|
if (!promotionSkuList.contains(sku)) {
|
|
|
if (!CollectionUtils.isEmpty(scoreDeductionAllowSkuList) && CollectionUtils.isEmpty(scoreDeductionRejectSkuList)) {
|
|
|
if (scoreDeductionAllowSkuList.contains(sku)) {
|
|
|
- BigDecimal skuActualPaymentAmount = goodsDetailsDto.getActualPaymentAmount();
|
|
|
+ BigDecimal skuActualPaymentAmount = goodsDetailsDto.getActualPaymentAmount()
|
|
|
+ .multiply(BigDecimal.valueOf(goodsDetailsDto.getSellVolume()));
|
|
|
skuTotalPrice = skuTotalPrice.add(skuActualPaymentAmount);
|
|
|
}
|
|
|
}
|
|
@@ -4733,9 +4789,10 @@ public class OrderServiceImpl implements OrderService {
|
|
|
}
|
|
|
Integer scoreLimit = Integer.parseInt(scoreLimitStr);
|
|
|
if (score < scoreLimit) {
|
|
|
- LOGGER.error("用户【{}】的积分数量为:{},最低需要{}积分才能抵扣!", memberCode, score, scoreLimit);
|
|
|
+ LOGGER.error("会员码【{}】用户【{}】的积分数量为:{},最低需要{}积分才能抵扣!", memberCode, openId, score, scoreLimit);
|
|
|
calculateOrderDiscountPriceResponseVO.setAfterScore(score);
|
|
|
- throw new ServiceException(String.format("用户【%s】的积分数量为:%s,最低需要%s积分才能抵扣!", memberCode, score, scoreLimit));
|
|
|
+ return orderTotalPrice;
|
|
|
+// throw new ServiceException(String.format("用户【%s】的积分数量为:%s,最低需要%s积分才能抵扣!", openId, score, scoreLimit));
|
|
|
} else {
|
|
|
// 积分取整
|
|
|
int scoreInteger = score % scoreLimit == 0 ? score : score - (score % scoreLimit);
|
|
@@ -4790,10 +4847,10 @@ public class OrderServiceImpl implements OrderService {
|
|
|
String sku = goodsDetailsDto.getGoodsSn();
|
|
|
String prodBarcode = goodsDetailsDto.getProdBarcode();
|
|
|
// 此字段 = 零售价 - 其他活动优惠金额
|
|
|
- BigDecimal actualPaymentAmount = goodsDetailsDto.getActualPaymentAmount();
|
|
|
+ BigDecimal actualPaymentAmount = goodsDetailsDto.getActualPaymentAmount()
|
|
|
+ .multiply(BigDecimal.valueOf(goodsDetailsDto.getSellVolume()));
|
|
|
// 当前商品最大支持抵扣的金额
|
|
|
- BigDecimal currentSkuMaxDeductionPrice = actualPaymentAmount.multiply(BigDecimal.valueOf(goodsDetailsDto.getSellVolume()))
|
|
|
- .multiply(scoreRatio).setScale(0, BigDecimal.ROUND_FLOOR);
|
|
|
+ BigDecimal currentSkuMaxDeductionPrice = actualPaymentAmount.multiply(scoreRatio).setScale(0, BigDecimal.ROUND_FLOOR);
|
|
|
// 其他活动优惠金额
|
|
|
BigDecimal otherDiscountedPrice = Objects.isNull(goodsDetailsDto.getDiscountedPrice()) ? BigDecimal.ZERO : goodsDetailsDto.getDiscountedPrice();
|
|
|
|
|
@@ -4857,10 +4914,10 @@ public class OrderServiceImpl implements OrderService {
|
|
|
calculateOrderDiscountPriceResponseVO.setOrderTotalPrice(orderTotalPrice);
|
|
|
// 积分抵扣的总金额
|
|
|
calculateOrderDiscountPriceResponseVO.setScoreDeductionPrice(goodsDetailScoreDeductionPrice);
|
|
|
- LOGGER.info("会员【{}】,当前积分:{},抵扣订单金额后剩余积分:{}", memberCode, score, afterScore);
|
|
|
+ LOGGER.info("会员【{}】会员码【{}】,当前积分:{},抵扣订单金额后剩余积分:{}", openId, memberCode, score, afterScore);
|
|
|
}
|
|
|
} else {
|
|
|
- LOGGER.info("会员【{}】的积分小于积分抵扣最低值,不参加积分抵扣!", memberCode);
|
|
|
+ LOGGER.info("会员【{}】会员码【{}】的积分小于积分抵扣最低值,不参加积分抵扣!", openId, memberCode);
|
|
|
}
|
|
|
return orderTotalPrice;
|
|
|
}
|
|
@@ -5201,7 +5258,7 @@ public class OrderServiceImpl implements OrderService {
|
|
|
/*GoodsEntity goodsEntity = goodsService.queryObject(goodsDto.getId().intValue());
|
|
|
BigDecimal goodsTax = CalculateTax.calculateFinalTax(goodsEntity, goodsDto.getStoreRetailPrice(), goodsService).setScale(3, RoundingMode.HALF_UP);
|
|
|
goodsTax = goodsTax.multiply(number).setScale(2, RoundingMode.HALF_UP);*/
|
|
|
- orderGoodsVo.setTaxPrice(goodsDto.getGoodsTaxes());
|
|
|
+ orderGoodsVo.setTaxPrice(goodsDto.getGoodsTaxes().divide(BigDecimal.valueOf(goodsDto.getSellVolume()), 3, BigDecimal.ROUND_HALF_UP));
|
|
|
|
|
|
return orderGoodsVo;
|
|
|
}
|
|
@@ -5297,8 +5354,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 +5372,6 @@ public class OrderServiceImpl implements OrderService {
|
|
|
haiKongResendMsgEntity.setId(haiKongResendMsg.getId());
|
|
|
haiKongResendMsgDao.updateResendMsg(haiKongResendMsgEntity);
|
|
|
}
|
|
|
-
|
|
|
}
|
|
|
}
|
|
|
|