|
|
@@ -3,6 +3,7 @@ package com.cyksj.service.distribute.impl;
|
|
|
import cn.hutool.core.collection.CollUtil;
|
|
|
import cn.hutool.core.date.DateTime;
|
|
|
import cn.hutool.core.lang.Assert;
|
|
|
+import cn.hutool.core.util.ObjectUtil;
|
|
|
import cn.hutool.core.util.StrUtil;
|
|
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
|
|
import com.cyksj.common.constant.Constant;
|
|
|
@@ -295,7 +296,7 @@ public class DistributeServiceImpl implements DistributeService {
|
|
|
*/
|
|
|
public void handlerDistributeOtherFunc(UserDistribute userDistribute, UserDistributeReq userDistributeReq) {
|
|
|
//处理优惠券关联
|
|
|
- handlerDistributeCouponRelate(userDistribute.getId(), userDistributeReq.getCouponRelates());
|
|
|
+ handlerDistributeCouponRelate(userDistribute.getId(), userDistribute.getUserId(), userDistributeReq.getCouponRelates());
|
|
|
|
|
|
//渠道目标额配置
|
|
|
handlerDistributeTargetAlert(userDistribute.getId(), userDistributeReq.getTargets());
|
|
|
@@ -428,7 +429,7 @@ public class DistributeServiceImpl implements DistributeService {
|
|
|
});
|
|
|
}
|
|
|
|
|
|
- private void handlerDistributeCouponRelate(Long distributeId, List<CouponDistributePopularize> couponRelates) {
|
|
|
+ private void handlerDistributeCouponRelate(Long distributeId, Long userId, List<CouponDistributePopularize> couponRelates) {
|
|
|
Map<Long, CouponDistributePopularize> map = new ConcurrentHashMap<>();
|
|
|
couponRelates.forEach(data -> {
|
|
|
data.setDistributeId(distributeId);
|
|
|
@@ -443,12 +444,21 @@ public class DistributeServiceImpl implements DistributeService {
|
|
|
if (StrUtil.isEmpty(exCode)) {
|
|
|
throw BusinessRuntimeException.getInstance("优惠码为空");
|
|
|
}
|
|
|
- Integer count = couponDistributePopularizeMapper.selectCount(Wrappers.lambdaQuery(CouponDistributePopularize.class).ne(data.getId() != null, CouponDistributePopularize::getId, data.getId())
|
|
|
+ List<CouponDistributePopularize> popularizeList = couponDistributePopularizeMapper.selectList(Wrappers.lambdaQuery(CouponDistributePopularize.class)
|
|
|
.eq(CouponDistributePopularize::getDeleted, 1)
|
|
|
.eq(CouponDistributePopularize::getExCode, exCode));
|
|
|
- if (count == 0) {
|
|
|
- count = couponMapper.selectCount(Wrappers.lambdaQuery(Coupon.class).eq(Coupon::getExCode, exCode).eq(Coupon::getDeleted, true));
|
|
|
+ //个人渠道
|
|
|
+ for (CouponDistributePopularize couponDistributePopularize : popularizeList) {
|
|
|
+ Long disId = couponDistributePopularize.getDistributeId();
|
|
|
+ if (disId != null && !ObjectUtil.equal(disId, distributeId)) {
|
|
|
+ throw BusinessRuntimeException.getInstance("优惠码:{0}已存在", exCode);
|
|
|
+ }
|
|
|
+ Long uid = couponDistributePopularize.getUserId();
|
|
|
+ if (uid != null && !ObjectUtil.equal(uid, userId)) {
|
|
|
+ throw BusinessRuntimeException.getInstance("优惠码:{0}已存在", exCode);
|
|
|
+ }
|
|
|
}
|
|
|
+ Integer count = couponMapper.selectCount(Wrappers.lambdaQuery(Coupon.class).eq(Coupon::getExCode, exCode).eq(Coupon::getDeleted, true));
|
|
|
if (count > 0) {
|
|
|
throw BusinessRuntimeException.getInstance("优惠码:{0}已存在", exCode);
|
|
|
}
|