Commit 474eebd8c9e91e6f271d5cbb4ea3c01e0a0073ce
1 parent
f732e7a7
拼团活动:更改创建拼团记录的校验方式
Showing
1 changed file
with
4 additions
and
16 deletions
yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/service/combination/CombinationRecordServiceImpl.java
| ... | ... | @@ -164,22 +164,10 @@ public class CombinationRecordServiceImpl implements CombinationRecordService { |
| 164 | 164 | @Transactional(rollbackFor = Exception.class) |
| 165 | 165 | public void createCombinationRecord(CombinationRecordCreateReqDTO reqDTO) { |
| 166 | 166 | // 1.1、 校验拼团活动 |
| 167 | - CombinationActivityDO activity = combinationActivityService.validateCombinationActivityExists(reqDTO.getActivityId()); | |
| 168 | - // 1.2 校验是否超出单次限购数量 | |
| 169 | - if (reqDTO.getCount() > activity.getSingleLimitCount()) { | |
| 170 | - throw exception(COMBINATION_RECORD_FAILED_SINGLE_LIMIT_COUNT_EXCEED); | |
| 171 | - } | |
| 172 | - // 1.3、校验是否有拼团记录 | |
| 173 | - List<CombinationRecordDO> records = getRecordListByUserIdAndActivityId(reqDTO.getUserId(), reqDTO.getActivityId()); | |
| 174 | - if (CollUtil.isEmpty(records)) { | |
| 175 | - return; | |
| 176 | - } | |
| 177 | - // 1.4、校验是否超出总限购数量 | |
| 178 | - Integer sumValue = getSumValue(convertList(records, CombinationRecordDO::getCount, | |
| 179 | - item -> ObjectUtil.equals(item.getStatus(), CombinationRecordStatusEnum.SUCCESS.getStatus())), i -> i, Integer::sum); | |
| 180 | - if ((sumValue + reqDTO.getCount()) > activity.getTotalLimitCount()) { | |
| 181 | - throw exception(COMBINATION_RECORD_FAILED_TOTAL_LIMIT_COUNT_EXCEED); | |
| 182 | - } | |
| 167 | + KeyValue<CombinationActivityDO, CombinationProductDO> keyValue = validateCombinationRecord( | |
| 168 | + reqDTO.getActivityId(), reqDTO.getUserId(), reqDTO.getSkuId(), reqDTO.getCount()); | |
| 169 | + CombinationActivityDO activity = keyValue.getKey(); | |
| 170 | + | |
| 183 | 171 | // 2、 校验用户是否参加了其它拼团 |
| 184 | 172 | List<CombinationRecordDO> recordDOList = recordMapper.selectListByUserIdAndStatus(reqDTO.getUserId(), CombinationRecordStatusEnum.IN_PROGRESS.getStatus()); |
| 185 | 173 | if (CollUtil.isNotEmpty(recordDOList)) { | ... | ... |