Forráskód Böngészése

fix 重复插入推广者

zoujiajian 2 éve
szülő
commit
2ff42d9cf8

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

@@ -87,8 +87,8 @@ public class DistributeServiceImpl implements DistributeService {
 	@Override
 	@Transactional(rollbackFor = Throwable.class)
 	public void insertDistribute(UserDistributeReq userDistributeReq) {
-		if (!redisService.setNx(RedisService.key.USER_DISTRIBUTE_ADD_KEY.getNameFormat(userDistributeReq.getUserId()), userDistributeReq.getUserId(), 2 * 60l)) {
-			throw BusinessRuntimeException.getInstance("请勿重复点击");
+		if (!redisService.setNx(RedisService.key.USER_DISTRIBUTE_ADD_KEY.getNameFormat(userDistributeReq.getUserId()), userDistributeReq.getUserId(), 2 * 5l)) {
+			return;
 		}
 		UserDistribute exists = userDistributeMapper.selectOne(Wrappers.lambdaQuery(UserDistribute.class).eq(UserDistribute::getUserId, userDistributeReq.getUserId()).eq(UserDistribute::getDeleted, true).last("limit 1"));
 		if (exists != null) {
@@ -427,7 +427,7 @@ public class DistributeServiceImpl implements DistributeService {
 			}
 			Integer exists = couponMapper.selectCount(Wrappers.lambdaQuery(Coupon.class).eq(Coupon::getId, data.getCouponId()).eq(Coupon::getDeleted, 1));
 			if (exists == 0) {
-				throw BusinessRuntimeException.getInstance("id为{}的优惠券不存在", data.getCouponId());
+				throw BusinessRuntimeException.getInstance("id为{0}的优惠券不存在", data.getCouponId());
 			}
 			String exCode = data.getExCode();
 			if (StrUtil.isEmpty(exCode)) {
@@ -441,7 +441,7 @@ public class DistributeServiceImpl implements DistributeService {
 				count = couponMapper.selectCount(Wrappers.lambdaQuery(Coupon.class).eq(Coupon::getExCode, exCode).eq(Coupon::getDeleted, true));
 			}
 			if (count > 0) {
-				throw BusinessRuntimeException.getInstance("优惠码:{}已存在", exCode);
+				throw BusinessRuntimeException.getInstance("优惠码:{0}已存在", exCode);
 			}
 			if (data.getId() != null) {
 				couponDistributePopularizeMapper.updateById(data);

+ 6 - 2
netflix-web/src/main/java/com/cyksj/web/controller/manage/distribute/DistributeController.java

@@ -131,7 +131,6 @@ public class DistributeController {
 	@PostMapping
 	@SaCheckPermission("distribute:add")
 	@Log(module = "分销管理/增加推广者", businessType = BusinessType.POST, isSaveRequestData = true)
-	@Transactional(rollbackFor = Throwable.class)
 	public Result<String> saveDistributes(@RequestBody @NotNull UserDistributeReq userDistributeReq) {
 		try {
 			distributeService.insertDistribute(userDistributeReq);
@@ -142,7 +141,7 @@ public class DistributeController {
 			couponDistributePopularizeMapper.delete(Wrappers.lambdaQuery(CouponDistributePopularize.class)
 					.eq(CouponDistributePopularize::getUserId, userDistributeReq.getUserId())
 					.eq(CouponDistributePopularize::getIsGeneral, true));
-		} finally {
+		} catch (Exception e) {
 			String cacheKey = RedisService.key.USER_DISTRIBUTE_ADD_KEY.getNameFormat(userDistributeReq.getUserId());
 			if (redisService.hasKey(cacheKey)) {
 				redisService.del(cacheKey);
@@ -164,6 +163,11 @@ public class DistributeController {
 		userDistributeMapper.deleteById(id);
 		userDistributeEquipmentMapper.delete(Wrappers.lambdaQuery(UserDistributeEquipment.class)
 				.eq(UserDistributeEquipment::getDistributeId, id));
+		//删除对应的优惠码关联
+		couponDistributePopularizeMapper.update(null, Wrappers.lambdaUpdate(CouponDistributePopularize.class)
+				.set(CouponDistributePopularize::getDeleted, 0)
+				.eq(CouponDistributePopularize::getDistributeId, id)
+				.eq(CouponDistributePopularize::getDeleted, 1));
 		return GatewayResponse.SUCCESS.newBuilder().toResult("删除成功");
 	}