فهرست منبع

Merge branch 'fix_distribute'

zoujiajian 3 سال پیش
والد
کامیت
55338a95ef

+ 13 - 0
netflix-dao/src/main/java/com/cyksj/mapper/UserDistributeSpecialMapper.java

@@ -0,0 +1,13 @@
+package com.cyksj.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.cyksj.model.entity.UserDistributeSpecial;
+
+/*
+ *项目名: netflix
+ *文件名: UserDistributeSpecialMapper
+ *创建者: JavaZou
+ *创建时间:2023/6/21 15:27
+ */
+public interface UserDistributeSpecialMapper extends BaseMapper<UserDistributeSpecial> {
+}

+ 26 - 0
netflix-dao/src/main/java/com/cyksj/model/entity/UserDistributeSpecial.java

@@ -0,0 +1,26 @@
+package com.cyksj.model.entity;
+
+import lombok.Getter;
+import lombok.Setter;
+
+/*
+ *项目名: netflix
+ *文件名: UserDistributeSpecial
+ *创建者: JavaZou
+ *创建时间:2023/6/21 15:26
+ */
+@Getter
+@Setter
+public class UserDistributeSpecial extends BaseEntity{
+	private Long sharedId;
+
+	private Long goodsId;
+
+	private Long skuId;
+
+	private Long businessId;
+
+	private Integer firstRate;
+
+	private Integer renewRate;
+}

+ 7 - 0
netflix-service/src/main/java/com/cyksj/service/distribute/impl/DistributeServiceImpl.java

@@ -9,6 +9,7 @@ import com.cyksj.mapper.manage.distribute.*;
 import com.cyksj.mapper.market.task.TaskTypeMapper;
 import com.cyksj.model.entity.*;
 import com.cyksj.model.request.UserDistributeReq;
+import com.cyksj.redis.RedisService;
 import com.cyksj.service.distribute.DistributeService;
 import com.cyksj.service.market.task.TaskService;
 import lombok.RequiredArgsConstructor;
@@ -43,9 +44,14 @@ public class DistributeServiceImpl implements DistributeService {
 
 	private final UserBusinessDefaultRateConfigMapper defaultRateConfigMapper;
 
+	private final RedisService redisService;
+
 	@Override
 	@Transactional(rollbackFor = Throwable.class)
 	public void insertDistribute(UserDistributeReq userDistributeReq) {
+		if (!redisService.setNx(String.valueOf(userDistributeReq.getUserId()), userDistributeReq.getUserId(), 30l)) {
+			throw BusinessRuntimeException.getInstance("请勿重复点击");
+		}
 		UserDistribute exists = userDistributeMapper.selectOne(Wrappers.lambdaQuery(UserDistribute.class).eq(UserDistribute::getUserId, userDistributeReq.getUserId()).eq(UserDistribute::getDeleted, true).last("limit 1"));
 		if (exists != null) {
 			throw BusinessRuntimeException.getInstance("该推广者已添加");
@@ -74,6 +80,7 @@ public class DistributeServiceImpl implements DistributeService {
 			rate.setDistributeId(userDistribute.getId());
 			userPlatDistributeRateMapper.insert(rate);
 		}
+		redisService.del(String.valueOf(userDistributeReq.getUserId()));
 	}
 
 	@Override

+ 13 - 0
netflix-service/src/main/java/com/cyksj/service/distribute/impl/UserBusinessFrontServiceImpl.java

@@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.cyksj.common.constant.Constant;
 import com.cyksj.mapper.OrderDonMapper;
 import com.cyksj.mapper.UserRenewChangeTicketRecordMapper;
+import com.cyksj.mapper.UserDistributeSpecialMapper;
 import com.cyksj.mapper.manage.distribute.UserBusinessDefaultRateConfigMapper;
 import com.cyksj.mapper.manage.distribute.UserDistributeBusinessOrderDonRecordMapper;
 import com.cyksj.mapper.manage.distribute.UserDistributeBusinessRateMapper;
@@ -43,6 +44,8 @@ public class UserBusinessFrontServiceImpl implements UserBusinessFrontService {
 
 	private final UserBusinessDefaultRateConfigMapper defaultRateConfigMapper;
 
+	private final UserDistributeSpecialMapper UserDistributeSpecialMapper;
+
 	@Override
 	public void taskDistributeRateBenefits(Long sharedId, Long businessId, Integer goodsType, OrderDon order, Integer distributeRate) {
 		LambdaQueryWrapper<UserDistributeBusinessRate> wrapper = Wrappers.lambdaQuery(UserDistributeBusinessRate.class)
@@ -53,6 +56,16 @@ public class UserBusinessFrontServiceImpl implements UserBusinessFrontService {
 			wrapper.eq(UserDistributeBusinessRate::getSkuId, order.getSkuId());
 		}
 		UserDistributeBusinessRate businessRate = userDistributeBusinessRateMapper.selectOne(wrapper);
+		//06-21 奈飞平台商务比例特殊处理
+		UserDistributeSpecial userDistributeSpecial = UserDistributeSpecialMapper.selectOne(Wrappers.lambdaQuery(UserDistributeSpecial.class)
+				.eq(UserDistributeSpecial::getSkuId, order.getSkuId())
+				.eq(UserDistributeSpecial::getSharedId, sharedId)
+				.eq(UserDistributeSpecial::getBusinessId, businessId)
+				.last("limit 1"));
+		if (userDistributeSpecial != null) {
+			businessRate.setFirstOrderRate(userDistributeSpecial.getFirstRate());
+			businessRate.setRenewOrderRate(userDistributeSpecial.getRenewRate());
+		}
 		if (businessRate != null) {
 			if (order.getOrderType() == 1) {
 				//实物商务分销提成 无首单