From f0f950f2719f0ca4faefe5393abaa11ae0306946 Mon Sep 17 00:00:00 2001 From: yqy Date: Wed, 27 Dec 2023 18:32:05 +0800 Subject: [PATCH] =?UTF-8?q?=E8=A7=A3=E5=86=B3=E9=87=8D=E5=A4=8D=E5=88=86?= =?UTF-8?q?=E5=8F=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/CustomServiceImpl.java | 33 +++++++++++++------ 1 file changed, 23 insertions(+), 10 deletions(-) diff --git a/admin/src/main/java/com/baiye/modules/distribute/service/impl/CustomServiceImpl.java b/admin/src/main/java/com/baiye/modules/distribute/service/impl/CustomServiceImpl.java index 0e31eca..19fbf54 100644 --- a/admin/src/main/java/com/baiye/modules/distribute/service/impl/CustomServiceImpl.java +++ b/admin/src/main/java/com/baiye/modules/distribute/service/impl/CustomServiceImpl.java @@ -33,6 +33,7 @@ import com.baiye.system.model.entity.SysUser; import com.baiye.system.service.SysUserRoleService; import com.baiye.system.service.SysUserService; import com.baiye.util.AESUtils; +import com.baiye.util.RedisUtils; import com.baiye.utils.SerialCode; import com.baomidou.mybatisplus.extension.toolkit.SqlHelper; import com.google.common.collect.Lists; @@ -43,6 +44,8 @@ import org.apache.commons.lang3.StringUtils; import org.ballcat.security.properties.SecurityProperties; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Value; +import org.springframework.data.redis.core.RedisTemplate; +import org.springframework.data.redis.core.ValueOperations; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -50,6 +53,8 @@ import java.time.LocalDateTime; import java.util.ArrayList; import java.util.List; import java.util.Map; +import java.util.Objects; +import java.util.concurrent.TimeUnit; import java.util.stream.Collectors; @Slf4j @@ -71,6 +76,8 @@ public class CustomServiceImpl extends ExtendServiceImpl redisTemplate; + @Value("${snowflake.workerId}") private int workerId; @@ -80,7 +87,7 @@ public class CustomServiceImpl extends ExtendServiceImpl queryPage(PageParam pageParam, CustomQo qo) { - if (qo.getSalesmanType() == DefaultNumberConstants.TWO_NUMBER && qo.getSalesmanUserId() != null){ + if (qo.getSalesmanType() == DefaultNumberConstants.TWO_NUMBER && qo.getSalesmanUserId() != null) { List customIdList = clueService.findCustomId(qo.getSalesmanUserId(), SecurityUtils.getCurrentUserId()); qo.setCustomIds(customIdList); } @@ -95,7 +102,7 @@ public class CustomServiceImpl extends ExtendServiceImpl customStoreEntities = customDTO.getCustomStoreEntities(); - if (CollUtil.isNotEmpty(customStoreEntities)){ + if (CollUtil.isNotEmpty(customStoreEntities)) { customStoreEntities.forEach(c -> c.setCustomId(customEntity.getCustomId())); customStoreService.saveBatch(customStoreEntities); } @@ -117,13 +124,13 @@ public class CustomServiceImpl extends ExtendServiceImpl clueVOS = clueService.queryList(clueQo); - if (CollUtil.isNotEmpty(clueVOS)){ + if (CollUtil.isNotEmpty(clueVOS)) { customVO.setUserNameList(clueVOS.stream().map(ClueVO::getAssignedName).collect(Collectors.toList())); } } @@ -162,13 +169,18 @@ public class CustomServiceImpl extends ExtendServiceImpl valueOperations = redisTemplate.opsForValue(); + String key = "custom::audit:" + dto.getCustomId(); + Long currentUserId = SecurityUtils.getCurrentUserId(); + // 加锁 + Boolean ifAbsent = valueOperations.setIfAbsent(key, currentUserId, 10, TimeUnit.SECONDS); + if ((null == ifAbsent) || (!ifAbsent)) throw new BadRequestException("10秒内不能重复分发同一客户"); Integer status = dto.getStatus(); List salesmanUserIdList = dto.getSalesmanUserId(); - Long currentUserId = SecurityUtils.getCurrentUserId(); List list = Lists.newArrayList(); CustomEntity customEntity = baseMapper.selectById(dto.getCustomId()); - if (ObjectUtil.isNotNull(customEntity)) { + if (ObjectUtil.isNotNull(customEntity) || customEntity.getEnrollStatus() != DefaultNumberConstants.TWO_NUMBER) { String phone = AESUtils.encrypt(customEntity.getCustomNid(), securityProperties.getPasswordSecretKey()); Long companyId = customEntity.getCompanyId(); if (status == 0) { @@ -189,7 +201,7 @@ public class CustomServiceImpl extends ExtendServiceImpl