|
@@ -23,6 +23,7 @@ import com.kmall.admin.dao.vip.Mall2PointsRulesDao;
|
|
import com.kmall.admin.dto.*;
|
|
import com.kmall.admin.dto.*;
|
|
import com.kmall.admin.entity.*;
|
|
import com.kmall.admin.entity.*;
|
|
import com.kmall.admin.entity.haikong.HaiKongMemberOrderSyncResendEntity;
|
|
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.HaiKongMemberScoreChangeRecordEntity;
|
|
import com.kmall.admin.entity.haikong.IntegralGoBackEntity;
|
|
import com.kmall.admin.entity.haikong.IntegralGoBackEntity;
|
|
import com.kmall.admin.entity.mk.MkActivitiesEntity;
|
|
import com.kmall.admin.entity.mk.MkActivitiesEntity;
|
|
@@ -47,6 +48,7 @@ import com.kmall.admin.haikong.config.HaiKongProperties;
|
|
import com.kmall.admin.haikong.utils.Response;
|
|
import com.kmall.admin.haikong.utils.Response;
|
|
import com.kmall.admin.service.*;
|
|
import com.kmall.admin.service.*;
|
|
import com.kmall.admin.service.haikong.HaiKongMemberOrderSyncResendService;
|
|
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.HaiKongMemberScoreChangeRecordService;
|
|
import com.kmall.admin.service.mk.MkActivitiesScoreService;
|
|
import com.kmall.admin.service.mk.MkActivitiesScoreService;
|
|
import com.kmall.admin.service.mk.MkActivitiesService;
|
|
import com.kmall.admin.service.mk.MkActivitiesService;
|
|
@@ -252,6 +254,7 @@ public class OrderServiceImpl implements OrderService {
|
|
*/
|
|
*/
|
|
@Autowired
|
|
@Autowired
|
|
private MkActivitiesPromotionService mkActivitiesPromotionService;
|
|
private MkActivitiesPromotionService mkActivitiesPromotionService;
|
|
|
|
+
|
|
/**
|
|
/**
|
|
* 日志记录
|
|
* 日志记录
|
|
*/
|
|
*/
|
|
@@ -269,6 +272,13 @@ public class OrderServiceImpl implements OrderService {
|
|
*/
|
|
*/
|
|
@Autowired
|
|
@Autowired
|
|
private HaiKongMemberScoreChangeRecordService haiKongMemberScoreChangeRecordService;
|
|
private HaiKongMemberScoreChangeRecordService haiKongMemberScoreChangeRecordService;
|
|
|
|
+
|
|
|
|
+ /**
|
|
|
|
+ * 会员积分变动商品详情
|
|
|
|
+ */
|
|
|
|
+ @Autowired
|
|
|
|
+ private HaiKongMemberScoreChangeDetailRecordService haiKongMemberScoreChangeDetailRecordService;
|
|
|
|
+
|
|
/**
|
|
/**
|
|
* 接口重发信息
|
|
* 接口重发信息
|
|
*/
|
|
*/
|
|
@@ -2209,6 +2219,7 @@ public class OrderServiceImpl implements OrderService {
|
|
queryGoodsVo.setDisCountedPrice(new BigDecimal(String.valueOf(map.get("discountedPrice"))));
|
|
queryGoodsVo.setDisCountedPrice(new BigDecimal(String.valueOf(map.get("discountedPrice"))));
|
|
queryGoodsVo.setTotalPrice(new BigDecimal(String.valueOf(map.get("actualPaymentAmount"))));
|
|
queryGoodsVo.setTotalPrice(new BigDecimal(String.valueOf(map.get("actualPaymentAmount"))));
|
|
queryGoodsVo.setActivity((String) map.get("activity"));
|
|
queryGoodsVo.setActivity((String) map.get("activity"));
|
|
|
|
+ queryGoodsVo.setDeductionScore((Integer) map.get("deductionScore"));
|
|
queryGoodsVOList.add(queryGoodsVo);
|
|
queryGoodsVOList.add(queryGoodsVo);
|
|
});
|
|
});
|
|
// 将在循环中查询数据库改为一次性查询
|
|
// 将在循环中查询数据库改为一次性查询
|
|
@@ -2610,10 +2621,10 @@ public class OrderServiceImpl implements OrderService {
|
|
if (!org.springframework.util.StringUtils.isEmpty(memberCode)) {
|
|
if (!org.springframework.util.StringUtils.isEmpty(memberCode)) {
|
|
// 同步会员订单消费记录
|
|
// 同步会员订单消费记录
|
|
syncMemberConsumeRecord(memberPhone, order, deductionScore);
|
|
syncMemberConsumeRecord(memberPhone, order, deductionScore);
|
|
- syncMemberScoreChangeRecord(openId, order, deductionScore, "下单扣减", HaiKongMemberScoreChangeEventEnum.SUBTRACT.getEvent());
|
|
|
|
|
|
+ syncMemberScoreChangeRecord(openId, order, deductionScore, "下单扣减", queryGoodsVOList, HaiKongMemberScoreChangeEventEnum.SUBTRACT.getEvent());
|
|
// 积分变动接口,下单扣减
|
|
// 积分变动接口,下单扣减
|
|
Integer score = memberScore.get();
|
|
Integer score = memberScore.get();
|
|
- syncMemberScoreChangeRecord(openId, order, score, "下单赠送", HaiKongMemberScoreChangeEventEnum.ADD.getEvent());
|
|
|
|
|
|
+ syncMemberScoreChangeRecord(openId, order, score, "下单赠送", queryGoodsVOList, HaiKongMemberScoreChangeEventEnum.ADD.getEvent());
|
|
}
|
|
}
|
|
|
|
|
|
// 生成取票码
|
|
// 生成取票码
|
|
@@ -3031,9 +3042,12 @@ public class OrderServiceImpl implements OrderService {
|
|
* 同步会员积分变动记录
|
|
* 同步会员积分变动记录
|
|
* @param openId 会员openid
|
|
* @param openId 会员openid
|
|
* @param order 订单信息
|
|
* @param order 订单信息
|
|
|
|
+ * @param changeEvent 变动事件
|
|
|
|
+ * @param changeReason 变动原因
|
|
|
|
+ * @param goodsList 商品详情
|
|
* @param score 变动积分
|
|
* @param score 变动积分
|
|
*/
|
|
*/
|
|
- private void syncMemberScoreChangeRecord(String openId, OrderVo order, Integer score, String changeReason, String changeEvent) {
|
|
|
|
|
|
+ private void syncMemberScoreChangeRecord(String openId, OrderVo order, Integer score, String changeReason, List<QueryGoodsVO> goodsList, String changeEvent) {
|
|
HaiKongMemberScoreChangeRecordEntity haiKongMemberScoreChangeRecordEntity = new HaiKongMemberScoreChangeRecordEntity();
|
|
HaiKongMemberScoreChangeRecordEntity haiKongMemberScoreChangeRecordEntity = new HaiKongMemberScoreChangeRecordEntity();
|
|
MemberScoreChangeDTO memberScoreChangeDTO = new MemberScoreChangeDTO();
|
|
MemberScoreChangeDTO memberScoreChangeDTO = new MemberScoreChangeDTO();
|
|
String changeId = UUID.randomUUID(true).toString();
|
|
String changeId = UUID.randomUUID(true).toString();
|
|
@@ -3067,6 +3081,18 @@ public class OrderServiceImpl implements OrderService {
|
|
haiKongMemberScoreChangeRecordEntity.setResendStatus(HaiKongMemberOrderResendStatusEnum.WAIT_RESEND.getStatus());
|
|
haiKongMemberScoreChangeRecordEntity.setResendStatus(HaiKongMemberOrderResendStatusEnum.WAIT_RESEND.getStatus());
|
|
haiKongMemberScoreChangeRecordService.save(haiKongMemberScoreChangeRecordEntity);
|
|
haiKongMemberScoreChangeRecordService.save(haiKongMemberScoreChangeRecordEntity);
|
|
}
|
|
}
|
|
|
|
+ List<HaiKongMemberScoreChangeDetailRecordEntity> recordEntityList = goodsList.stream().map(goodsEntity -> {
|
|
|
|
+ HaiKongMemberScoreChangeDetailRecordEntity entity = new HaiKongMemberScoreChangeDetailRecordEntity();
|
|
|
|
+ entity.setOrderSn(order.getOrder_sn());
|
|
|
|
+ entity.setRetailPrice(goodsEntity.getRetailPrice());
|
|
|
|
+ entity.setActualPrice(goodsEntity.getTotalPrice());
|
|
|
|
+ entity.setProductBarcode(goodsEntity.getProdBarcode());
|
|
|
|
+ entity.setSellVolume(goodsEntity.getSellVolume());
|
|
|
|
+ entity.setSku(goodsEntity.getSku());
|
|
|
|
+ entity.setDeductionScore(goodsEntity.getDeductionScore());
|
|
|
|
+ return entity;
|
|
|
|
+ }).collect(Collectors.toList());
|
|
|
|
+ haiKongMemberScoreChangeDetailRecordService.saveBatch(recordEntityList);
|
|
}
|
|
}
|
|
|
|
|
|
private boolean orderQuery(OrderVo order, OrderProcessRecordEntity processRecordEntity) {
|
|
private boolean orderQuery(OrderVo order, OrderProcessRecordEntity processRecordEntity) {
|
|
@@ -4026,7 +4052,16 @@ public class OrderServiceImpl implements OrderService {
|
|
// 与积分抵扣互斥的sku
|
|
// 与积分抵扣互斥的sku
|
|
List<String> promotionSkuList = new ArrayList<>();
|
|
List<String> promotionSkuList = new ArrayList<>();
|
|
// 判断活动类型并排序,再确定购物栏中商品是否满足活动条件
|
|
// 判断活动类型并排序,再确定购物栏中商品是否满足活动条件
|
|
- mkActivitiesEntityList.stream().sorted().forEach(mkActivitiesEntity -> {
|
|
|
|
|
|
+ mkActivitiesEntityList.stream().filter(mkActivitiesEntity -> {
|
|
|
|
+ if (!Constants.ActivityTopicEnum.JFDK.getTopicCode().equals(mkActivitiesEntity.getMkaTopic())) {
|
|
|
|
+ return true;
|
|
|
|
+ }
|
|
|
|
+ if (Objects.isNull(mkActivitiesEntity.getPriority())) {
|
|
|
|
+ LOGGER.error("活动:【{}】,活动ID:【{}】未设置优先级!请先设置优先级!", mkActivitiesEntity.getMkaTopic(), mkActivitiesEntity.getMkaId());
|
|
|
|
+ throw new ServiceException(String.format("活动:【%s】,活动ID:【%s】未设置优先级!请先设置优先级!", mkActivitiesEntity.getMkaTopic(), mkActivitiesEntity.getMkaId()));
|
|
|
|
+ }
|
|
|
|
+ return false;
|
|
|
|
+ }).sorted().forEach(mkActivitiesEntity -> {
|
|
String mkaStoreId = mkActivitiesEntity.getMkaStoreId();
|
|
String mkaStoreId = mkActivitiesEntity.getMkaStoreId();
|
|
Long mkaId = mkActivitiesEntity.getMkaId();
|
|
Long mkaId = mkActivitiesEntity.getMkaId();
|
|
String mkaTopic = mkActivitiesEntity.getMkaTopic();
|
|
String mkaTopic = mkActivitiesEntity.getMkaTopic();
|