|
|
@@ -2,10 +2,16 @@ package com.cyksj.service.distribute.impl;
|
|
|
|
|
|
import cn.hutool.core.date.DateTime;
|
|
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
|
|
+import com.cyksj.common.constant.Constant;
|
|
|
import com.cyksj.common.constant.TaskTypeEnum;
|
|
|
import com.cyksj.common.exception.BusinessRuntimeException;
|
|
|
import com.cyksj.mapper.GoodsDonMapper;
|
|
|
-import com.cyksj.mapper.manage.distribute.*;
|
|
|
+import com.cyksj.mapper.manage.coupon.CouponDistributePopularizeMapper;
|
|
|
+import com.cyksj.mapper.manage.coupon.CouponMapper;
|
|
|
+import com.cyksj.mapper.manage.distribute.UserBusinessDefaultRateConfigMapper;
|
|
|
+import com.cyksj.mapper.manage.distribute.UserDistributeMapper;
|
|
|
+import com.cyksj.mapper.manage.distribute.UserDistributeSharedMapper;
|
|
|
+import com.cyksj.mapper.manage.distribute.UserPlatDistributeRateMapper;
|
|
|
import com.cyksj.mapper.market.task.TaskTypeMapper;
|
|
|
import com.cyksj.model.entity.*;
|
|
|
import com.cyksj.model.request.UserDistributeReq;
|
|
|
@@ -46,6 +52,10 @@ public class DistributeServiceImpl implements DistributeService {
|
|
|
|
|
|
private final RedisService redisService;
|
|
|
|
|
|
+ private final CouponMapper couponMapper;
|
|
|
+
|
|
|
+ private final CouponDistributePopularizeMapper couponDistributePopularizeMapper;
|
|
|
+
|
|
|
@Override
|
|
|
@Transactional(rollbackFor = Throwable.class)
|
|
|
public void insertDistribute(UserDistributeReq userDistributeReq) {
|
|
|
@@ -148,6 +158,41 @@ public class DistributeServiceImpl implements DistributeService {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ @Override
|
|
|
+ @Transactional(rollbackFor = Throwable.class)
|
|
|
+ public void bindPopularizeCode(Long userId, String code) {
|
|
|
+ Coupon coupon = couponMapper.getCouponById(Constant.GENERAL_POPULARIZE_COUPON_ID);
|
|
|
+ if (!redisService.setNx(RedisService.key.GENERAL_POPULARIZE_CODE.getName() + code, userId, RedisService.key.GENERAL_POPULARIZE_CODE.getTimeout())) {
|
|
|
+ throw BusinessRuntimeException.getInstance("该专属推广优惠码已被设置");
|
|
|
+ }
|
|
|
+ CouponDistributePopularize is_exists = couponDistributePopularizeMapper.selectOne(Wrappers.lambdaQuery(CouponDistributePopularize.class).eq(CouponDistributePopularize::getUserId, userId).last("limit 1"));
|
|
|
+ if (is_exists != null) throw BusinessRuntimeException.getInstance("你已设置专属推广优惠码");
|
|
|
+ CouponDistributePopularize couponDistributePopularize = new CouponDistributePopularize();
|
|
|
+ couponDistributePopularize.setCouponId(coupon.getId());
|
|
|
+ couponDistributePopularize.setUserId(userId);
|
|
|
+ couponDistributePopularize.setIsGeneral(true);
|
|
|
+ CouponDistributePopularize exists = couponDistributePopularizeMapper.selectOne(Wrappers.lambdaQuery(CouponDistributePopularize.class)
|
|
|
+ .eq(CouponDistributePopularize::getExCode, code)
|
|
|
+ .eq(CouponDistributePopularize::getDeleted, true)
|
|
|
+ .ne(CouponDistributePopularize::getUserId, userId)
|
|
|
+ .select(CouponDistributePopularize::getId)
|
|
|
+ .last("limit 1"));
|
|
|
+ if (exists != null) {
|
|
|
+ throw BusinessRuntimeException.getInstance("该专属推广优惠码已被设置");
|
|
|
+ } else {
|
|
|
+ Coupon existsCoupon = couponMapper.selectOne(Wrappers.lambdaQuery(Coupon.class)
|
|
|
+ .eq(Coupon::getExCode, couponDistributePopularize.getExCode())
|
|
|
+ .eq(Coupon::getDeleted, true)
|
|
|
+ .select(Coupon::getId)
|
|
|
+ .last("limit 1"));
|
|
|
+ if (existsCoupon != null) {
|
|
|
+ throw BusinessRuntimeException.getInstance("该专属推广优惠码已被设置");
|
|
|
+ }
|
|
|
+ }
|
|
|
+ couponDistributePopularize.setExCode(code);
|
|
|
+ couponDistributePopularizeMapper.insert(couponDistributePopularize);
|
|
|
+ }
|
|
|
+
|
|
|
public void checkDistributorAndBusinessRate(Integer distributeGoodsRate, Long goodsId, String goodsName) {
|
|
|
UserBusinessDefaultRateConfig defaultGoodsRateConfig = defaultRateConfigMapper.selectOne(Wrappers.lambdaQuery(UserBusinessDefaultRateConfig.class)
|
|
|
.eq(UserBusinessDefaultRateConfig::getGoodsId, goodsId)
|