Commit 5c2723c7bfd26d1b431cdc669e77f1647a0e5a90

Authored by puhui999
1 parent de828e3d

fix: 修复合并差异

Showing 12 changed files with 107 additions and 364 deletions
yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/api/bargain/BargainRecordApiImpl.java 0 → 100644
  1 +package cn.iocoder.yudao.module.promotion.api.bargain;
  2 +
  3 +import cn.iocoder.yudao.module.promotion.api.bargain.dto.BargainRecordCreateReqDTO;
  4 +import org.springframework.stereotype.Service;
  5 +
  6 +/**
  7 + * 砍价活动 API 实现类 TODO @puhui999
  8 + *
  9 + * @author HUIHUI
  10 + */
  11 +@Service
  12 +public class BargainRecordApiImpl implements BargainRecordApi {
  13 +
  14 + @Override
  15 + public void createRecord(BargainRecordCreateReqDTO reqDTO) {
  16 +
  17 + }
  18 +
  19 + @Override
  20 + public boolean validateRecordSuccess(Long userId, Long orderId) {
  21 + return false;
  22 + }
  23 +
  24 +}
yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/admin/bargain/BargainActivityController.java
@@ -4,12 +4,12 @@ import cn.hutool.core.collection.CollUtil; @@ -4,12 +4,12 @@ import cn.hutool.core.collection.CollUtil;
4 import cn.iocoder.yudao.framework.common.pojo.CommonResult; 4 import cn.iocoder.yudao.framework.common.pojo.CommonResult;
5 import cn.iocoder.yudao.framework.common.pojo.PageResult; 5 import cn.iocoder.yudao.framework.common.pojo.PageResult;
6 import cn.iocoder.yudao.module.product.api.spu.ProductSpuApi; 6 import cn.iocoder.yudao.module.product.api.spu.ProductSpuApi;
7 -import cn.iocoder.yudao.module.product.api.spu.dto.ProductSpuRespDTO;  
8 -import cn.iocoder.yudao.module.promotion.controller.admin.bargain.vo.activity.BargainActivityCreateReqVO;  
9 -import cn.iocoder.yudao.module.promotion.controller.admin.bargain.vo.activity.BargainActivityPageReqVO;  
10 -import cn.iocoder.yudao.module.promotion.controller.admin.bargain.vo.activity.BargainActivityRespVO;  
11 -import cn.iocoder.yudao.module.promotion.controller.admin.bargain.vo.activity.BargainActivityUpdateReqVO; 7 +import cn.iocoder.yudao.module.promotion.controller.admin.bargain.vo.BargainActivityBaseVO;
  8 +import cn.iocoder.yudao.module.promotion.controller.admin.bargain.vo.BargainActivityPageReqVO;
  9 +import cn.iocoder.yudao.module.promotion.controller.admin.bargain.vo.BargainActivityRespVO;
  10 +import cn.iocoder.yudao.module.promotion.controller.admin.bargain.vo.BargainActivityUpdateReqVO;
12 import cn.iocoder.yudao.module.promotion.convert.bargain.BargainActivityConvert; 11 import cn.iocoder.yudao.module.promotion.convert.bargain.BargainActivityConvert;
  12 +import cn.iocoder.yudao.module.promotion.dal.dataobject.bargain.BargainActivityDO;
13 import cn.iocoder.yudao.module.promotion.service.bargain.BargainActivityService; 13 import cn.iocoder.yudao.module.promotion.service.bargain.BargainActivityService;
14 import io.swagger.v3.oas.annotations.Operation; 14 import io.swagger.v3.oas.annotations.Operation;
15 import io.swagger.v3.oas.annotations.Parameter; 15 import io.swagger.v3.oas.annotations.Parameter;
@@ -20,8 +20,6 @@ import org.springframework.web.bind.annotation.*; @@ -20,8 +20,6 @@ import org.springframework.web.bind.annotation.*;
20 20
21 import javax.annotation.Resource; 21 import javax.annotation.Resource;
22 import javax.validation.Valid; 22 import javax.validation.Valid;
23 -import java.util.Collections;  
24 -import java.util.List;  
25 23
26 import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; 24 import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
27 25
@@ -40,7 +38,7 @@ public class BargainActivityController { @@ -40,7 +38,7 @@ public class BargainActivityController {
40 @PostMapping("/create") 38 @PostMapping("/create")
41 @Operation(summary = "创建砍价活动") 39 @Operation(summary = "创建砍价活动")
42 @PreAuthorize("@ss.hasPermission('promotion:bargain-activity:create')") 40 @PreAuthorize("@ss.hasPermission('promotion:bargain-activity:create')")
43 - public CommonResult<Long> createBargainActivity(@Valid @RequestBody BargainActivityCreateReqVO createReqVO) { 41 + public CommonResult<Long> createBargainActivity(@Valid @RequestBody BargainActivityBaseVO createReqVO) {
44 return success(activityService.createBargainActivity(createReqVO)); 42 return success(activityService.createBargainActivity(createReqVO));
45 } 43 }
46 44
@@ -79,14 +77,6 @@ public class BargainActivityController { @@ -79,14 +77,6 @@ public class BargainActivityController {
79 if (CollUtil.isEmpty(pageResult.getList())) { 77 if (CollUtil.isEmpty(pageResult.getList())) {
80 return success(PageResult.empty(pageResult.getTotal())); 78 return success(PageResult.empty(pageResult.getTotal()));
81 } 79 }
82 -  
83 - // 拼接数据  
84 -// List<BargainProductDO> products = activityService.getBargainProductsByActivityIds(  
85 -// convertSet(pageResult.getList(), BargainActivityDO::getId));  
86 - List<BargainProductDO> products = Collections.emptyList();  
87 - List<ProductSpuRespDTO> spus = productSpuApi.getSpuList(  
88 - convertSet(pageResult.getList(), BargainActivityDO::getSpuId));  
89 - return success(BargainActivityConvert.INSTANCE.convertPage(pageResult, products, spus));  
90 return success(BargainActivityConvert.INSTANCE.convertPage(activityService.getBargainActivityPage(pageVO))); 80 return success(BargainActivityConvert.INSTANCE.convertPage(activityService.getBargainActivityPage(pageVO)));
91 } 81 }
92 82
yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/convert/bargain/BargainActivityConvert.java
1 package cn.iocoder.yudao.module.promotion.convert.bargain; 1 package cn.iocoder.yudao.module.promotion.convert.bargain;
2 2
3 import cn.iocoder.yudao.framework.common.pojo.PageResult; 3 import cn.iocoder.yudao.framework.common.pojo.PageResult;
4 -import cn.iocoder.yudao.module.promotion.controller.admin.bargain.vo.BargainActivityCreateReqVO; 4 +import cn.iocoder.yudao.module.promotion.controller.admin.bargain.vo.BargainActivityBaseVO;
5 import cn.iocoder.yudao.module.promotion.controller.admin.bargain.vo.BargainActivityRespVO; 5 import cn.iocoder.yudao.module.promotion.controller.admin.bargain.vo.BargainActivityRespVO;
6 import cn.iocoder.yudao.module.promotion.controller.admin.bargain.vo.BargainActivityUpdateReqVO; 6 import cn.iocoder.yudao.module.promotion.controller.admin.bargain.vo.BargainActivityUpdateReqVO;
7 import cn.iocoder.yudao.module.promotion.dal.dataobject.bargain.BargainActivityDO; 7 import cn.iocoder.yudao.module.promotion.dal.dataobject.bargain.BargainActivityDO;
@@ -20,7 +20,7 @@ public interface BargainActivityConvert { @@ -20,7 +20,7 @@ public interface BargainActivityConvert {
20 20
21 BargainActivityConvert INSTANCE = Mappers.getMapper(BargainActivityConvert.class); 21 BargainActivityConvert INSTANCE = Mappers.getMapper(BargainActivityConvert.class);
22 22
23 - BargainActivityDO convert(BargainActivityCreateReqVO bean); 23 + BargainActivityDO convert(BargainActivityBaseVO bean);
24 24
25 BargainActivityDO convert(BargainActivityUpdateReqVO bean); 25 BargainActivityDO convert(BargainActivityUpdateReqVO bean);
26 26
yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/convert/combination/CombinationActivityConvert.java
@@ -11,7 +11,6 @@ import cn.iocoder.yudao.module.promotion.controller.admin.combination.vo.activit @@ -11,7 +11,6 @@ import cn.iocoder.yudao.module.promotion.controller.admin.combination.vo.activit
11 import cn.iocoder.yudao.module.promotion.controller.admin.combination.vo.activity.CombinationActivityUpdateReqVO; 11 import cn.iocoder.yudao.module.promotion.controller.admin.combination.vo.activity.CombinationActivityUpdateReqVO;
12 import cn.iocoder.yudao.module.promotion.controller.admin.combination.vo.product.CombinationProductBaseVO; 12 import cn.iocoder.yudao.module.promotion.controller.admin.combination.vo.product.CombinationProductBaseVO;
13 import cn.iocoder.yudao.module.promotion.controller.admin.combination.vo.product.CombinationProductRespVO; 13 import cn.iocoder.yudao.module.promotion.controller.admin.combination.vo.product.CombinationProductRespVO;
14 -import cn.iocoder.yudao.module.promotion.controller.admin.combination.vo.product.CombinationProductUpdateReqVO;  
15 import cn.iocoder.yudao.module.promotion.dal.dataobject.combination.CombinationActivityDO; 14 import cn.iocoder.yudao.module.promotion.dal.dataobject.combination.CombinationActivityDO;
16 import cn.iocoder.yudao.module.promotion.dal.dataobject.combination.CombinationProductDO; 15 import cn.iocoder.yudao.module.promotion.dal.dataobject.combination.CombinationProductDO;
17 import cn.iocoder.yudao.module.promotion.dal.dataobject.combination.CombinationRecordDO; 16 import cn.iocoder.yudao.module.promotion.dal.dataobject.combination.CombinationRecordDO;
@@ -73,7 +72,7 @@ public interface CombinationActivityConvert { @@ -73,7 +72,7 @@ public interface CombinationActivityConvert {
73 @Mapping(target = "activityId", source = "activity.id"), 72 @Mapping(target = "activityId", source = "activity.id"),
74 @Mapping(target = "spuId", source = "activity.spuId"), 73 @Mapping(target = "spuId", source = "activity.spuId"),
75 @Mapping(target = "skuId", source = "product.skuId"), 74 @Mapping(target = "skuId", source = "product.skuId"),
76 - @Mapping(target = "activePrice", source = "product.activePrice"), 75 + @Mapping(target = "combinationPrice", source = "product.combinationPrice"),
77 @Mapping(target = "activityStartTime", source = "activity.startTime"), 76 @Mapping(target = "activityStartTime", source = "activity.startTime"),
78 @Mapping(target = "activityEndTime", source = "activity.endTime") 77 @Mapping(target = "activityEndTime", source = "activity.endTime")
79 }) 78 })
@@ -83,7 +82,7 @@ public interface CombinationActivityConvert { @@ -83,7 +82,7 @@ public interface CombinationActivityConvert {
83 return CollectionUtils.convertList(products, item -> convert(activity, item).setActivityStatus(activity.getStatus())); 82 return CollectionUtils.convertList(products, item -> convert(activity, item).setActivityStatus(activity.getStatus()));
84 } 83 }
85 84
86 - default List<CombinationProductDO> convertList(List<CombinationProductUpdateReqVO> updateProductVOs, 85 + default List<CombinationProductDO> convertList(List<CombinationProductBaseVO> updateProductVOs,
87 List<CombinationProductDO> products, CombinationActivityDO activity) { 86 List<CombinationProductDO> products, CombinationActivityDO activity) {
88 Map<Long, Long> productMap = convertMap(products, CombinationProductDO::getSkuId, CombinationProductDO::getId); 87 Map<Long, Long> productMap = convertMap(products, CombinationProductDO::getSkuId, CombinationProductDO::getId);
89 return CollectionUtils.convertList(updateProductVOs, updateProductVO -> convert(activity, updateProductVO) 88 return CollectionUtils.convertList(updateProductVOs, updateProductVO -> convert(activity, updateProductVO)
yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/convert/seckill/seckillactivity/SeckillActivityConvert.java
@@ -2,6 +2,7 @@ package cn.iocoder.yudao.module.promotion.convert.seckill.seckillactivity; @@ -2,6 +2,7 @@ package cn.iocoder.yudao.module.promotion.convert.seckill.seckillactivity;
2 2
3 import cn.iocoder.yudao.framework.common.pojo.PageResult; 3 import cn.iocoder.yudao.framework.common.pojo.PageResult;
4 import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils; 4 import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils;
  5 +import cn.iocoder.yudao.framework.common.util.collection.MapUtils;
5 import cn.iocoder.yudao.module.product.api.spu.dto.ProductSpuRespDTO; 6 import cn.iocoder.yudao.module.product.api.spu.dto.ProductSpuRespDTO;
6 import cn.iocoder.yudao.module.promotion.controller.admin.seckill.vo.activity.SeckillActivityCreateReqVO; 7 import cn.iocoder.yudao.module.promotion.controller.admin.seckill.vo.activity.SeckillActivityCreateReqVO;
7 import cn.iocoder.yudao.module.promotion.controller.admin.seckill.vo.activity.SeckillActivityDetailRespVO; 8 import cn.iocoder.yudao.module.promotion.controller.admin.seckill.vo.activity.SeckillActivityDetailRespVO;
@@ -40,11 +41,14 @@ public interface SeckillActivityConvert { @@ -40,11 +41,14 @@ public interface SeckillActivityConvert {
40 PageResult<SeckillActivityRespVO> convertPage(PageResult<SeckillActivityDO> page); 41 PageResult<SeckillActivityRespVO> convertPage(PageResult<SeckillActivityDO> page);
41 42
42 default PageResult<SeckillActivityRespVO> convertPage(PageResult<SeckillActivityDO> page, List<SeckillProductDO> seckillProducts, List<ProductSpuRespDTO> spuList) { 43 default PageResult<SeckillActivityRespVO> convertPage(PageResult<SeckillActivityDO> page, List<SeckillProductDO> seckillProducts, List<ProductSpuRespDTO> spuList) {
43 - Map<Long, ProductSpuRespDTO> spuMap = CollectionUtils.convertMap(spuList, ProductSpuRespDTO::getId, c -> c); 44 + Map<Long, ProductSpuRespDTO> spuMap = CollectionUtils.convertMap(spuList, ProductSpuRespDTO::getId);
44 PageResult<SeckillActivityRespVO> pageResult = convertPage(page); 45 PageResult<SeckillActivityRespVO> pageResult = convertPage(page);
45 pageResult.getList().forEach(item -> { 46 pageResult.getList().forEach(item -> {
46 - item.setSpuName(spuMap.get(item.getSpuId()).getName());  
47 - item.setPicUrl(spuMap.get(item.getSpuId()).getPicUrl()); 47 + MapUtils.findAndThen(spuMap, item.getSpuId(), spu -> {
  48 + item.setSpuName(spu.getName());
  49 + item.setPicUrl(spu.getPicUrl());
  50 + });
  51 +
48 item.setProducts(convertList2(seckillProducts)); 52 item.setProducts(convertList2(seckillProducts));
49 }); 53 });
50 return pageResult; 54 return pageResult;
yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/service/bargain/BargainActivityService.java
1 package cn.iocoder.yudao.module.promotion.service.bargain; 1 package cn.iocoder.yudao.module.promotion.service.bargain;
2 2
3 import cn.iocoder.yudao.framework.common.pojo.PageResult; 3 import cn.iocoder.yudao.framework.common.pojo.PageResult;
4 -import cn.iocoder.yudao.module.promotion.controller.admin.bargain.vo.BargainActivityCreateReqVO; 4 +import cn.iocoder.yudao.module.promotion.controller.admin.bargain.vo.BargainActivityBaseVO;
5 import cn.iocoder.yudao.module.promotion.controller.admin.bargain.vo.BargainActivityPageReqVO; 5 import cn.iocoder.yudao.module.promotion.controller.admin.bargain.vo.BargainActivityPageReqVO;
6 import cn.iocoder.yudao.module.promotion.controller.admin.bargain.vo.BargainActivityUpdateReqVO; 6 import cn.iocoder.yudao.module.promotion.controller.admin.bargain.vo.BargainActivityUpdateReqVO;
7 import cn.iocoder.yudao.module.promotion.dal.dataobject.bargain.BargainActivityDO; 7 import cn.iocoder.yudao.module.promotion.dal.dataobject.bargain.BargainActivityDO;
@@ -21,7 +21,7 @@ public interface BargainActivityService { @@ -21,7 +21,7 @@ public interface BargainActivityService {
21 * @param createReqVO 创建信息 21 * @param createReqVO 创建信息
22 * @return 编号 22 * @return 编号
23 */ 23 */
24 - Long createBargainActivity(@Valid BargainActivityCreateReqVO createReqVO); 24 + Long createBargainActivity(@Valid BargainActivityBaseVO createReqVO);
25 25
26 /** 26 /**
27 * 更新砍价活动 27 * 更新砍价活动
yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/service/bargain/BargainActivityServiceImpl.java
@@ -10,7 +10,7 @@ import cn.iocoder.yudao.module.product.api.sku.ProductSkuApi; @@ -10,7 +10,7 @@ import cn.iocoder.yudao.module.product.api.sku.ProductSkuApi;
10 import cn.iocoder.yudao.module.product.api.sku.dto.ProductSkuRespDTO; 10 import cn.iocoder.yudao.module.product.api.sku.dto.ProductSkuRespDTO;
11 import cn.iocoder.yudao.module.product.api.spu.ProductSpuApi; 11 import cn.iocoder.yudao.module.product.api.spu.ProductSpuApi;
12 import cn.iocoder.yudao.module.product.api.spu.dto.ProductSpuRespDTO; 12 import cn.iocoder.yudao.module.product.api.spu.dto.ProductSpuRespDTO;
13 -import cn.iocoder.yudao.module.promotion.controller.admin.bargain.vo.BargainActivityCreateReqVO; 13 +import cn.iocoder.yudao.module.promotion.controller.admin.bargain.vo.BargainActivityBaseVO;
14 import cn.iocoder.yudao.module.promotion.controller.admin.bargain.vo.BargainActivityPageReqVO; 14 import cn.iocoder.yudao.module.promotion.controller.admin.bargain.vo.BargainActivityPageReqVO;
15 import cn.iocoder.yudao.module.promotion.controller.admin.bargain.vo.BargainActivityUpdateReqVO; 15 import cn.iocoder.yudao.module.promotion.controller.admin.bargain.vo.BargainActivityUpdateReqVO;
16 import cn.iocoder.yudao.module.promotion.convert.bargain.BargainActivityConvert; 16 import cn.iocoder.yudao.module.promotion.convert.bargain.BargainActivityConvert;
@@ -37,7 +37,8 @@ import static cn.iocoder.yudao.module.promotion.enums.ErrorCodeConstants.*; @@ -37,7 +37,8 @@ import static cn.iocoder.yudao.module.promotion.enums.ErrorCodeConstants.*;
37 */ 37 */
38 @Service 38 @Service
39 @Validated 39 @Validated
40 -public class BargainServiceImpl implements BargainActivityService, BargainRecordService { 40 +public class BargainActivityServiceImpl implements BargainActivityService {
  41 +
41 42
42 @Resource 43 @Resource
43 private BargainActivityMapper bargainActivityMapper; 44 private BargainActivityMapper bargainActivityMapper;
@@ -57,7 +58,7 @@ public class BargainServiceImpl implements BargainActivityService, BargainRecord @@ -57,7 +58,7 @@ public class BargainServiceImpl implements BargainActivityService, BargainRecord
57 58
58 @Override 59 @Override
59 @Transactional(rollbackFor = Exception.class) 60 @Transactional(rollbackFor = Exception.class)
60 - public Long createBargainActivity(BargainActivityCreateReqVO createReqVO) { 61 + public Long createBargainActivity(BargainActivityBaseVO createReqVO) {
61 // 校验商品 SPU 是否存在是否参加的别的活动 62 // 校验商品 SPU 是否存在是否参加的别的活动
62 validateBargainConflict(createReqVO.getSpuId(), null); 63 validateBargainConflict(createReqVO.getSpuId(), null);
63 // 获取所选 spu下的所有 sku 64 // 获取所选 spu下的所有 sku
yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/service/bargain/BargainRecordService.java
@@ -2,7 +2,7 @@ package cn.iocoder.yudao.module.promotion.service.bargain; @@ -2,7 +2,7 @@ package cn.iocoder.yudao.module.promotion.service.bargain;
2 2
3 3
4 /** 4 /**
5 - * 商品活动记录 service 5 + * 砍价记录 service 接口
6 * 6 *
7 * @author HUIHUI 7 * @author HUIHUI
8 */ 8 */
yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/service/bargain/BargainRecordServiceImpl.java 0 → 100644
  1 +package cn.iocoder.yudao.module.promotion.service.bargain;
  2 +
  3 +import org.springframework.stereotype.Service;
  4 +import org.springframework.validation.annotation.Validated;
  5 +
  6 +/**
  7 + * 砍价记录 Service 实现类
  8 + *
  9 + * @author HUIHUI
  10 + */
  11 +@Service
  12 +@Validated
  13 +public class BargainRecordServiceImpl implements BargainRecordService {
  14 +}
yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/service/combination/CombinationRecordServiceImpl.java
@@ -14,11 +14,11 @@ import org.springframework.transaction.annotation.Transactional; @@ -14,11 +14,11 @@ import org.springframework.transaction.annotation.Transactional;
14 import org.springframework.validation.annotation.Validated; 14 import org.springframework.validation.annotation.Validated;
15 15
16 import javax.annotation.Resource; 16 import javax.annotation.Resource;
  17 +import java.time.LocalDateTime;
17 import java.util.List; 18 import java.util.List;
18 19
19 import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; 20 import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
20 import static cn.iocoder.yudao.module.promotion.enums.ErrorCodeConstants.*; 21 import static cn.iocoder.yudao.module.promotion.enums.ErrorCodeConstants.*;
21 -import static cn.iocoder.yudao.module.promotion.enums.ErrorCodeConstants.COMBINATION_RECORD_USER_FULL;  
22 22
23 // TODO 芋艿:等拼团记录做完,完整 review 下 23 // TODO 芋艿:等拼团记录做完,完整 review 下
24 /** 24 /**
@@ -37,6 +37,7 @@ public class CombinationRecordServiceImpl implements CombinationRecordService { @@ -37,6 +37,7 @@ public class CombinationRecordServiceImpl implements CombinationRecordService {
37 private CombinationRecordMapper recordMapper; 37 private CombinationRecordMapper recordMapper;
38 38
39 @Override 39 @Override
  40 + @Transactional(rollbackFor = Exception.class)
40 public void updateCombinationRecordStatusByUserIdAndOrderId(CombinationRecordUpdateStatusReqDTO reqDTO) { 41 public void updateCombinationRecordStatusByUserIdAndOrderId(CombinationRecordUpdateStatusReqDTO reqDTO) {
41 // 校验拼团是否存在 42 // 校验拼团是否存在
42 CombinationRecordDO recordDO = validateCombinationRecord(reqDTO.getUserId(), reqDTO.getOrderId()); 43 CombinationRecordDO recordDO = validateCombinationRecord(reqDTO.getUserId(), reqDTO.getOrderId());
@@ -80,6 +81,7 @@ public class CombinationRecordServiceImpl implements CombinationRecordService { @@ -80,6 +81,7 @@ public class CombinationRecordServiceImpl implements CombinationRecordService {
80 } 81 }
81 82
82 @Override 83 @Override
  84 + @Transactional(rollbackFor = Exception.class)
83 public void createCombinationRecord(CombinationRecordCreateReqDTO reqDTO) { 85 public void createCombinationRecord(CombinationRecordCreateReqDTO reqDTO) {
84 // 1.1 校验拼团活动 86 // 1.1 校验拼团活动
85 CombinationActivityDO activity = combinationActivityService.validateCombinationActivityExists(reqDTO.getActivityId()); 87 CombinationActivityDO activity = combinationActivityService.validateCombinationActivityExists(reqDTO.getActivityId());
@@ -88,9 +90,19 @@ public class CombinationRecordServiceImpl implements CombinationRecordService { @@ -88,9 +90,19 @@ public class CombinationRecordServiceImpl implements CombinationRecordService {
88 if (recordDO != null) { 90 if (recordDO != null) {
89 throw exception(COMBINATION_RECORD_EXISTS); 91 throw exception(COMBINATION_RECORD_EXISTS);
90 } 92 }
91 - // 1.3 父拼团是否存在,是否已经满了 93 + // 1.3 校验用户是否参加了其它拼团
  94 + List<CombinationRecordDO> recordDOList = recordMapper.selectListByUserIdAndStatus(reqDTO.getUserId(), CombinationRecordStatusEnum.IN_PROGRESS.getStatus());
  95 + if (CollUtil.isNotEmpty(recordDOList)) {
  96 + throw exception(COMBINATION_RECORD_FAILED_HAVE_JOINED);
  97 + }
  98 + // 1.4 校验当前活动是否过期
  99 + if (LocalDateTime.now().isAfter(activity.getEndTime())) {
  100 + throw exception(COMBINATION_RECORD_FAILED_TIME_END);
  101 + }
  102 + // 1.5 父拼团是否存在,是否已经满了
92 if (reqDTO.getHeadId() != null) { 103 if (reqDTO.getHeadId() != null) {
93 - CombinationRecordDO recordDO1 = recordMapper.selectRecordByHeadId(reqDTO.getHeadId(), reqDTO.getActivityId(), CombinationRecordStatusEnum.IN_PROGRESS.getStatus()); 104 + // 查询进行中的父拼团
  105 + CombinationRecordDO recordDO1 = recordMapper.selectOneByHeadId(reqDTO.getHeadId(), CombinationRecordStatusEnum.IN_PROGRESS.getStatus());
94 if (recordDO1 == null) { 106 if (recordDO1 == null) {
95 throw exception(COMBINATION_RECORD_HEAD_NOT_EXISTS); 107 throw exception(COMBINATION_RECORD_HEAD_NOT_EXISTS);
96 } 108 }
@@ -99,7 +111,6 @@ public class CombinationRecordServiceImpl implements CombinationRecordService { @@ -99,7 +111,6 @@ public class CombinationRecordServiceImpl implements CombinationRecordService {
99 throw exception(COMBINATION_RECORD_USER_FULL); 111 throw exception(COMBINATION_RECORD_USER_FULL);
100 } 112 }
101 } 113 }
102 - // TODO @puhui999:应该还有一些校验,后续补噶;例如说,一个团,自己已经参与进去了,不能再参与进去;  
103 114
104 // 2. 创建拼团记录 115 // 2. 创建拼团记录
105 CombinationRecordDO record = CombinationActivityConvert.INSTANCE.convert(reqDTO); 116 CombinationRecordDO record = CombinationActivityConvert.INSTANCE.convert(reqDTO);
@@ -115,6 +126,25 @@ public class CombinationRecordServiceImpl implements CombinationRecordService { @@ -115,6 +126,25 @@ public class CombinationRecordServiceImpl implements CombinationRecordService {
115 return validateCombinationRecord(userId, orderId); 126 return validateCombinationRecord(userId, orderId);
116 } 127 }
117 128
  129 + @Override
  130 + public List<CombinationRecordDO> getRecordListByUserIdAndActivityId(Long userId, Long activityId) {
  131 + return recordMapper.selectListByUserIdAndActivityId(userId, activityId);
  132 + }
  133 +
  134 + @Override
  135 + public void validateCombinationLimitCount(Long activityId, Integer count, Integer sumCount) {
  136 + // 1.1 校验拼团活动
  137 + CombinationActivityDO activity = combinationActivityService.validateCombinationActivityExists(activityId);
  138 + // 校验是否达到限购总限购标准
  139 + if ((sumCount + count) > activity.getTotalLimitCount()) {
  140 + throw exception(COMBINATION_RECORD_FAILED_TOTAL_LIMIT_COUNT_EXCEED);
  141 + }
  142 + // 单次购买是否达到限购标准
  143 + if (count > activity.getSingleLimitCount()) {
  144 + throw exception(COMBINATION_RECORD_FAILED_SINGLE_LIMIT_COUNT_EXCEED);
  145 + }
  146 + }
  147 +
118 /** 148 /**
119 * APP 端获取开团记录 149 * APP 端获取开团记录
120 * 150 *
yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/service/combination/CombinationServiceImpl.java deleted
1 -package cn.iocoder.yudao.module.promotion.service.combination;  
2 -  
3 -import cn.hutool.core.collection.CollUtil;  
4 -import cn.hutool.core.collection.CollectionUtil;  
5 -import cn.hutool.core.util.ObjectUtil;  
6 -import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;  
7 -import cn.iocoder.yudao.framework.common.pojo.PageResult;  
8 -import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils;  
9 -import cn.iocoder.yudao.module.product.api.sku.ProductSkuApi;  
10 -import cn.iocoder.yudao.module.product.api.sku.dto.ProductSkuRespDTO;  
11 -import cn.iocoder.yudao.module.product.api.spu.ProductSpuApi;  
12 -import cn.iocoder.yudao.module.product.api.spu.dto.ProductSpuRespDTO;  
13 -import cn.iocoder.yudao.module.promotion.api.combination.dto.CombinationRecordCreateReqDTO;  
14 -import cn.iocoder.yudao.module.promotion.api.combination.dto.CombinationRecordUpdateStatusReqDTO;  
15 -import cn.iocoder.yudao.module.promotion.controller.admin.combination.vo.activity.CombinationActivityCreateReqVO;  
16 -import cn.iocoder.yudao.module.promotion.controller.admin.combination.vo.activity.CombinationActivityPageReqVO;  
17 -import cn.iocoder.yudao.module.promotion.controller.admin.combination.vo.activity.CombinationActivityUpdateReqVO;  
18 -import cn.iocoder.yudao.module.promotion.controller.admin.combination.vo.product.CombinationProductCreateReqVO;  
19 -import cn.iocoder.yudao.module.promotion.controller.admin.combination.vo.product.CombinationProductUpdateReqVO;  
20 -import cn.iocoder.yudao.module.promotion.convert.combination.CombinationActivityConvert;  
21 -import cn.iocoder.yudao.module.promotion.dal.dataobject.combination.CombinationActivityDO;  
22 -import cn.iocoder.yudao.module.promotion.dal.dataobject.combination.CombinationProductDO;  
23 -import cn.iocoder.yudao.module.promotion.dal.dataobject.combination.CombinationRecordDO;  
24 -import cn.iocoder.yudao.module.promotion.dal.mysql.combination.CombinationActivityMapper;  
25 -import cn.iocoder.yudao.module.promotion.dal.mysql.combination.CombinationProductMapper;  
26 -import cn.iocoder.yudao.module.promotion.dal.mysql.combination.CombinationRecordMapper;  
27 -import cn.iocoder.yudao.module.promotion.enums.combination.CombinationRecordStatusEnum;  
28 -import org.springframework.stereotype.Service;  
29 -import org.springframework.transaction.annotation.Transactional;  
30 -import org.springframework.validation.annotation.Validated;  
31 -  
32 -import javax.annotation.Resource;  
33 -import java.time.LocalDateTime;  
34 -import java.util.Collection;  
35 -import java.util.List;  
36 -  
37 -import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;  
38 -import static cn.iocoder.yudao.module.product.enums.ErrorCodeConstants.SPU_NOT_EXISTS;  
39 -import static cn.iocoder.yudao.module.promotion.enums.ErrorCodeConstants.*;  
40 -import static cn.iocoder.yudao.module.promotion.util.PromotionUtils.validateProductSkuAllExists;  
41 -  
42 -/**  
43 - * 拼团活动 Service 实现类  
44 - *  
45 - * @author HUIHUI  
46 - */  
47 -@Service  
48 -@Validated  
49 -public class CombinationServiceImpl implements CombinationActivityService, CombinationRecordService {  
50 -  
51 - @Resource  
52 - private CombinationActivityMapper combinationActivityMapper;  
53 - @Resource  
54 - private CombinationRecordMapper recordMapper;  
55 - @Resource  
56 - private CombinationProductMapper combinationProductMapper;  
57 - @Resource  
58 - private ProductSpuApi productSpuApi;  
59 - @Resource  
60 - private ProductSkuApi productSkuApi;  
61 -  
62 - @Override  
63 - @Transactional(rollbackFor = Exception.class)  
64 - public Long createCombinationActivity(CombinationActivityCreateReqVO createReqVO) {  
65 - // 校验商品 SPU 是否存在是否参加的别的活动  
66 - validateProductCombinationConflict(createReqVO.getSpuId(), null);  
67 - // 获取所选 spu下的所有 sku  
68 - List<ProductSkuRespDTO> skus = productSkuApi.getSkuListBySpuId(CollectionUtil.newArrayList(createReqVO.getSpuId()));  
69 - // 校验商品 sku 是否存在  
70 - validateProductSkuAllExists(skus, createReqVO.getProducts(), CombinationProductCreateReqVO::getSkuId);  
71 -  
72 - // 插入拼团活动  
73 - CombinationActivityDO activityDO = CombinationActivityConvert.INSTANCE.convert(createReqVO);  
74 - // TODO 营销相关属性初始化 拼团成功更新相关属性  
75 - activityDO.setTotalNum(0);  
76 - activityDO.setSuccessNum(0);  
77 - activityDO.setOrderUserCount(0);  
78 - activityDO.setVirtualGroup(0);  
79 - activityDO.setStatus(CommonStatusEnum.ENABLE.getStatus());  
80 - combinationActivityMapper.insert(activityDO);  
81 - // 插入商品  
82 - List<CombinationProductDO> productDOs = CombinationActivityConvert.INSTANCE.convertList(createReqVO.getProducts(), activityDO);  
83 - combinationProductMapper.insertBatch(productDOs);  
84 - // 返回  
85 - return activityDO.getId();  
86 - }  
87 -  
88 - private void validateProductCombinationConflict(Long spuId, Long activityId) {  
89 - // 校验商品 spu 是否存在  
90 - List<ProductSpuRespDTO> spuList = productSpuApi.getSpuList(CollUtil.newArrayList(spuId));  
91 - if (CollUtil.isEmpty(spuList)) {  
92 - throw exception(SPU_NOT_EXISTS);  
93 - }  
94 - // 查询所有开启的拼团活动  
95 - List<CombinationActivityDO> activityDOs = combinationActivityMapper.selectListByStatus(CommonStatusEnum.ENABLE.getStatus());  
96 - // 更新时排除自己  
97 - if (activityId != null) {  
98 - activityDOs.removeIf(item -> ObjectUtil.equal(item.getId(), activityId));  
99 - }  
100 - // 过滤出所有 spuIds 有交集的活动  
101 - List<CombinationActivityDO> doList = CollectionUtils.convertList(activityDOs, c -> c, s -> ObjectUtil.equal(s.getId(), spuId));  
102 - if (CollUtil.isNotEmpty(doList)) {  
103 - throw exception(COMBINATION_ACTIVITY_SPU_CONFLICTS);  
104 - }  
105 - }  
106 -  
107 - @Override  
108 - @Transactional(rollbackFor = Exception.class)  
109 - public void updateCombinationActivity(CombinationActivityUpdateReqVO updateReqVO) {  
110 - // 校验存在  
111 - CombinationActivityDO activityDO = validateCombinationActivityExists(updateReqVO.getId());  
112 - // 校验状态  
113 - if (ObjectUtil.equal(activityDO.getStatus(), CommonStatusEnum.DISABLE.getStatus())) {  
114 - throw exception(COMBINATION_ACTIVITY_STATUS_DISABLE);  
115 - }  
116 - // 校验商品冲突  
117 - validateProductCombinationConflict(updateReqVO.getSpuId(), updateReqVO.getId());  
118 - // 获取所选 spu下的所有 sku  
119 - List<ProductSkuRespDTO> skus = productSkuApi.getSkuListBySpuId(CollectionUtil.newArrayList(updateReqVO.getSpuId()));  
120 - // 校验商品 sku 是否存在  
121 - validateProductSkuAllExists(skus, updateReqVO.getProducts(), CombinationProductUpdateReqVO::getSkuId);  
122 -  
123 - // 更新  
124 - CombinationActivityDO updateObj = CombinationActivityConvert.INSTANCE.convert(updateReqVO);  
125 - combinationActivityMapper.updateById(updateObj);  
126 - // 更新商品  
127 - updateCombinationProduct(updateObj, updateReqVO.getProducts());  
128 - }  
129 -  
130 - /**  
131 - * 更新拼团商品  
132 - *  
133 - * @param activity 拼团活动  
134 - * @param products 该活动的最新商品配置  
135 - */  
136 - private void updateCombinationProduct(CombinationActivityDO activity, List<CombinationProductUpdateReqVO> products) {  
137 - // 第一步,对比新老数据,获得添加、修改、删除的列表  
138 - List<CombinationProductDO> newList = CombinationActivityConvert.INSTANCE.convertList(products, activity);  
139 - List<CombinationProductDO> oldList = combinationProductMapper.selectListByActivityIds(CollUtil.newArrayList(activity.getId()));  
140 - List<List<CombinationProductDO>> diffList = CollectionUtils.diffList(oldList, newList, (oldVal, newVal) -> {  
141 - boolean same = ObjectUtil.equal(oldVal.getSkuId(), newVal.getSkuId());  
142 - if (same) {  
143 - newVal.setId(oldVal.getId());  
144 - }  
145 - return same;  
146 - });  
147 -  
148 - // 第二步,批量添加、修改、删除  
149 - if (CollUtil.isNotEmpty(diffList.get(0))) {  
150 - combinationProductMapper.insertBatch(diffList.get(0));  
151 - }  
152 - if (CollUtil.isNotEmpty(diffList.get(1))) {  
153 - combinationProductMapper.updateBatch(diffList.get(1));  
154 - }  
155 - if (CollUtil.isNotEmpty(diffList.get(2))) {  
156 - combinationProductMapper.deleteBatchIds(CollectionUtils.convertList(diffList.get(2), CombinationProductDO::getId));  
157 - }  
158 - }  
159 -  
160 - @Override  
161 - @Transactional(rollbackFor = Exception.class)  
162 - public void deleteCombinationActivity(Long id) {  
163 - // 校验存在  
164 - CombinationActivityDO activityDO = validateCombinationActivityExists(id);  
165 - // 校验状态  
166 - if (ObjectUtil.equal(activityDO.getStatus(), CommonStatusEnum.ENABLE.getStatus())) {  
167 - throw exception(COMBINATION_ACTIVITY_DELETE_FAIL_STATUS_NOT_CLOSED_OR_END);  
168 - }  
169 -  
170 - // 删除  
171 - combinationActivityMapper.deleteById(id);  
172 - }  
173 -  
174 - private CombinationActivityDO validateCombinationActivityExists(Long id) {  
175 - CombinationActivityDO activityDO = combinationActivityMapper.selectById(id);  
176 - if (activityDO == null) {  
177 - throw exception(COMBINATION_ACTIVITY_NOT_EXISTS);  
178 - }  
179 - return activityDO;  
180 - }  
181 -  
182 - @Override  
183 - public CombinationActivityDO getCombinationActivity(Long id) {  
184 - return validateCombinationActivityExists(id);  
185 - }  
186 -  
187 - @Override  
188 - public List<CombinationActivityDO> getCombinationActivityList(Collection<Long> ids) {  
189 - return combinationActivityMapper.selectBatchIds(ids);  
190 - }  
191 -  
192 - @Override  
193 - public PageResult<CombinationActivityDO> getCombinationActivityPage(CombinationActivityPageReqVO pageReqVO) {  
194 - return combinationActivityMapper.selectPage(pageReqVO);  
195 - }  
196 -  
197 - @Override  
198 - public List<CombinationProductDO> getCombinationProductsByActivityIds(Collection<Long> ids) {  
199 - return combinationProductMapper.selectListByActivityIds(ids);  
200 - }  
201 -  
202 - @Override  
203 - @Transactional(rollbackFor = Exception.class)  
204 - public void updateCombinationRecordStatusByUserIdAndOrderId(CombinationRecordUpdateStatusReqDTO reqDTO) {  
205 - // 校验拼团是否存在  
206 - CombinationRecordDO recordDO = validateCombinationRecord(reqDTO.getUserId(), reqDTO.getOrderId());  
207 -  
208 - // 更新状态  
209 - recordDO.setStatus(reqDTO.getStatus());  
210 - recordMapper.updateById(recordDO);  
211 - }  
212 -  
213 - @Override  
214 - @Transactional(rollbackFor = Exception.class)  
215 - public void updateCombinationRecordStatusAndStartTimeByUserIdAndOrderId(CombinationRecordUpdateStatusReqDTO reqDTO) {  
216 - CombinationRecordDO recordDO = validateCombinationRecord(reqDTO.getUserId(), reqDTO.getOrderId());  
217 - // 更新状态  
218 - recordDO.setStatus(reqDTO.getStatus());  
219 - // 更新开始时间  
220 - recordDO.setStartTime(reqDTO.getStartTime());  
221 - recordMapper.updateById(recordDO);  
222 -  
223 - // 更新拼团参入人数  
224 - List<CombinationRecordDO> recordDOs = recordMapper.selectListByHeadIdAndStatus(recordDO.getHeadId(), reqDTO.getStatus());  
225 - if (CollUtil.isNotEmpty(recordDOs)) {  
226 - recordDOs.forEach(item -> {  
227 - item.setUserCount(recordDOs.size());  
228 - // 校验拼团是否满足要求  
229 - if (ObjectUtil.equal(recordDOs.size(), recordDO.getUserSize())) {  
230 - item.setStatus(CombinationRecordStatusEnum.SUCCESS.getStatus());  
231 - }  
232 - });  
233 - }  
234 - recordMapper.updateBatch(recordDOs);  
235 - }  
236 -  
237 - private CombinationRecordDO validateCombinationRecord(Long userId, Long orderId) {  
238 - // 校验拼团是否存在  
239 - CombinationRecordDO recordDO = recordMapper.selectByUserIdAndOrderId(userId, orderId);  
240 - if (recordDO == null) {  
241 - throw exception(COMBINATION_RECORD_NOT_EXISTS);  
242 - }  
243 - return recordDO;  
244 - }  
245 -  
246 - @Override  
247 - @Transactional(rollbackFor = Exception.class)  
248 - public void createCombinationRecord(CombinationRecordCreateReqDTO reqDTO) {  
249 - // 1.1 校验拼团活动  
250 - CombinationActivityDO activity = validateCombinationActivityExists(reqDTO.getActivityId());  
251 - // 1.2 需要校验下,他当前是不是已经参加了该拼团;  
252 - CombinationRecordDO recordDO = recordMapper.selectByUserIdAndOrderId(reqDTO.getUserId(), reqDTO.getOrderId());  
253 - if (recordDO != null) {  
254 - throw exception(COMBINATION_RECORD_EXISTS);  
255 - }  
256 - // 1.3 校验用户是否参加了其它拼团  
257 - List<CombinationRecordDO> recordDOList = recordMapper.selectListByUserIdAndStatus(reqDTO.getUserId(), CombinationRecordStatusEnum.IN_PROGRESS.getStatus());  
258 - if (CollUtil.isNotEmpty(recordDOList)) {  
259 - throw exception(COMBINATION_RECORD_FAILED_HAVE_JOINED);  
260 - }  
261 - // 1.4 校验当前活动是否过期  
262 - if (LocalDateTime.now().isAfter(activity.getEndTime())) {  
263 - throw exception(COMBINATION_RECORD_FAILED_TIME_END);  
264 - }  
265 - // 1.5 父拼团是否存在,是否已经满了  
266 - if (reqDTO.getHeadId() != null) {  
267 - // 查询进行中的父拼团  
268 - CombinationRecordDO recordDO1 = recordMapper.selectOneByHeadId(reqDTO.getHeadId(), CombinationRecordStatusEnum.IN_PROGRESS.getStatus());  
269 - if (recordDO1 == null) {  
270 - throw exception(COMBINATION_RECORD_HEAD_NOT_EXISTS);  
271 - }  
272 - // 校验拼团是否满足要求  
273 - if (ObjectUtil.equal(recordDO1.getUserCount(), recordDO1.getUserSize())) {  
274 - throw exception(COMBINATION_RECORD_USER_FULL);  
275 - }  
276 - }  
277 -  
278 - // 2. 创建拼团记录  
279 - CombinationRecordDO record = CombinationActivityConvert.INSTANCE.convert(reqDTO);  
280 - record.setVirtualGroup(false);  
281 - // TODO @puhui999:过期时间,应该是 Date 哈;  
282 - record.setExpireTime(activity.getLimitDuration());  
283 - record.setUserSize(activity.getUserSize());  
284 - recordMapper.insert(record);  
285 - }  
286 -  
287 - @Override  
288 - public CombinationRecordDO getCombinationRecord(Long userId, Long orderId) {  
289 - return validateCombinationRecord(userId, orderId);  
290 - }  
291 -  
292 - /**  
293 - * APP 端获取开团记录  
294 - *  
295 - * @return 开团记录  
296 - */  
297 - public List<CombinationRecordDO> getRecordListByStatus(Integer status) {  
298 - return recordMapper.selectListByStatus(status);  
299 - }  
300 -  
301 - public List<CombinationRecordDO> getRecordListByUserIdAndActivityId(Long userId, Long activityId) {  
302 - return recordMapper.selectListByUserIdAndActivityId(userId, activityId);  
303 - }  
304 -  
305 - @Override  
306 - public void validateCombinationLimitCount(Long activityId, Integer count, Integer sumCount) {  
307 - // 1.1 校验拼团活动  
308 - CombinationActivityDO activity = validateCombinationActivityExists(activityId);  
309 - // 校验是否达到限购总限购标准  
310 - if ((sumCount + count) > activity.getTotalLimitCount()) {  
311 - throw exception(COMBINATION_RECORD_FAILED_TOTAL_LIMIT_COUNT_EXCEED);  
312 - }  
313 - // 单次购买是否达到限购标准  
314 - if (count > activity.getSingleLimitCount()) {  
315 - throw exception(COMBINATION_RECORD_FAILED_SINGLE_LIMIT_COUNT_EXCEED);  
316 - }  
317 - }  
318 -  
319 -}  
yudao-module-mall/yudao-module-promotion-biz/src/test/java/cn/iocoder/yudao/module/promotion/service/combination/CombinationActivityServiceImplTest.java
@@ -23,15 +23,15 @@ import static org.junit.jupiter.api.Assertions.*; @@ -23,15 +23,15 @@ import static org.junit.jupiter.api.Assertions.*;
23 23
24 // TODO 芋艿:等完成后,在补全单测 24 // TODO 芋艿:等完成后,在补全单测
25 /** 25 /**
26 - * {@link CombinationServiceImpl} 的单元测试类 26 + * {@link CombinationActivityServiceImpl} 的单元测试类
27 * 27 *
28 * @author HUIHUI 28 * @author HUIHUI
29 */ 29 */
30 -@Import(CombinationServiceImpl.class) 30 +@Import(CombinationActivityServiceImpl.class)
31 public class CombinationActivityServiceImplTest extends BaseDbUnitTest { 31 public class CombinationActivityServiceImplTest extends BaseDbUnitTest {
32 32
33 @Resource 33 @Resource
34 - private CombinationServiceImpl combinationActivityService; 34 + private CombinationActivityServiceImpl combinationActivityService;
35 35
36 @Resource 36 @Resource
37 private CombinationActivityMapper combinationActivityMapper; 37 private CombinationActivityMapper combinationActivityMapper;
@@ -111,8 +111,8 @@ public class CombinationActivityServiceImplTest extends BaseDbUnitTest { @@ -111,8 +111,8 @@ public class CombinationActivityServiceImplTest extends BaseDbUnitTest {
111 o.setStartTime(null); 111 o.setStartTime(null);
112 o.setEndTime(null); 112 o.setEndTime(null);
113 o.setUserSize(null); 113 o.setUserSize(null);
114 - o.setTotalNum(null);  
115 - o.setSuccessNum(null); 114 + o.setTotalCount(null);
  115 + o.setSuccessCount(null);
116 o.setOrderUserCount(null); 116 o.setOrderUserCount(null);
117 o.setVirtualGroup(null); 117 o.setVirtualGroup(null);
118 o.setStatus(null); 118 o.setStatus(null);
@@ -135,9 +135,9 @@ public class CombinationActivityServiceImplTest extends BaseDbUnitTest { @@ -135,9 +135,9 @@ public class CombinationActivityServiceImplTest extends BaseDbUnitTest {
135 // 测试 userSize 不匹配 135 // 测试 userSize 不匹配
136 combinationActivityMapper.insert(cloneIgnoreId(dbCombinationActivity, o -> o.setUserSize(null))); 136 combinationActivityMapper.insert(cloneIgnoreId(dbCombinationActivity, o -> o.setUserSize(null)));
137 // 测试 totalNum 不匹配 137 // 测试 totalNum 不匹配
138 - combinationActivityMapper.insert(cloneIgnoreId(dbCombinationActivity, o -> o.setTotalNum(null))); 138 + combinationActivityMapper.insert(cloneIgnoreId(dbCombinationActivity, o -> o.setTotalCount(null)));
139 // 测试 successNum 不匹配 139 // 测试 successNum 不匹配
140 - combinationActivityMapper.insert(cloneIgnoreId(dbCombinationActivity, o -> o.setSuccessNum(null))); 140 + combinationActivityMapper.insert(cloneIgnoreId(dbCombinationActivity, o -> o.setSuccessCount(null)));
141 // 测试 orderUserCount 不匹配 141 // 测试 orderUserCount 不匹配
142 combinationActivityMapper.insert(cloneIgnoreId(dbCombinationActivity, o -> o.setOrderUserCount(null))); 142 combinationActivityMapper.insert(cloneIgnoreId(dbCombinationActivity, o -> o.setOrderUserCount(null)));
143 // 测试 virtualGroup 不匹配 143 // 测试 virtualGroup 不匹配
@@ -173,8 +173,8 @@ public class CombinationActivityServiceImplTest extends BaseDbUnitTest { @@ -173,8 +173,8 @@ public class CombinationActivityServiceImplTest extends BaseDbUnitTest {
173 o.setStartTime(null); 173 o.setStartTime(null);
174 o.setEndTime(null); 174 o.setEndTime(null);
175 o.setUserSize(null); 175 o.setUserSize(null);
176 - o.setTotalNum(null);  
177 - o.setSuccessNum(null); 176 + o.setTotalCount(null);
  177 + o.setSuccessCount(null);
178 o.setOrderUserCount(null); 178 o.setOrderUserCount(null);
179 o.setVirtualGroup(null); 179 o.setVirtualGroup(null);
180 o.setStatus(null); 180 o.setStatus(null);
@@ -197,9 +197,9 @@ public class CombinationActivityServiceImplTest extends BaseDbUnitTest { @@ -197,9 +197,9 @@ public class CombinationActivityServiceImplTest extends BaseDbUnitTest {
197 // 测试 userSize 不匹配 197 // 测试 userSize 不匹配
198 combinationActivityMapper.insert(cloneIgnoreId(dbCombinationActivity, o -> o.setUserSize(null))); 198 combinationActivityMapper.insert(cloneIgnoreId(dbCombinationActivity, o -> o.setUserSize(null)));
199 // 测试 totalNum 不匹配 199 // 测试 totalNum 不匹配
200 - combinationActivityMapper.insert(cloneIgnoreId(dbCombinationActivity, o -> o.setTotalNum(null))); 200 + combinationActivityMapper.insert(cloneIgnoreId(dbCombinationActivity, o -> o.setTotalCount(null)));
201 // 测试 successNum 不匹配 201 // 测试 successNum 不匹配
202 - combinationActivityMapper.insert(cloneIgnoreId(dbCombinationActivity, o -> o.setSuccessNum(null))); 202 + combinationActivityMapper.insert(cloneIgnoreId(dbCombinationActivity, o -> o.setSuccessCount(null)));
203 // 测试 orderUserCount 不匹配 203 // 测试 orderUserCount 不匹配
204 combinationActivityMapper.insert(cloneIgnoreId(dbCombinationActivity, o -> o.setOrderUserCount(null))); 204 combinationActivityMapper.insert(cloneIgnoreId(dbCombinationActivity, o -> o.setOrderUserCount(null)));
205 // 测试 virtualGroup 不匹配 205 // 测试 virtualGroup 不匹配