diff --git a/ad-distribute-common/common-model/src/main/java/com/baiye/result/BaseResultCode.java b/ad-distribute-common/common-model/src/main/java/com/baiye/result/BaseResultCode.java index fd0fefc..814e70e 100644 --- a/ad-distribute-common/common-model/src/main/java/com/baiye/result/BaseResultCode.java +++ b/ad-distribute-common/common-model/src/main/java/com/baiye/result/BaseResultCode.java @@ -20,7 +20,8 @@ public enum BaseResultCode implements ResultCode { /** * 通用的逻辑校验异常 */ - LOGIC_CHECK_ERROR(90004, "Logic Check Error"), + LOGIC_CHECK_ERROR(400, "Logic Check Error"), +// LOGIC_CHECK_ERROR(90004, "Logic Check Error"), /** * 恶意请求 diff --git a/ad-distribute-system/system-biz/src/main/java/com/baiye/system/service/SysUserService.java b/ad-distribute-system/system-biz/src/main/java/com/baiye/system/service/SysUserService.java index f08a2e0..57229c3 100644 --- a/ad-distribute-system/system-biz/src/main/java/com/baiye/system/service/SysUserService.java +++ b/ad-distribute-system/system-biz/src/main/java/com/baiye/system/service/SysUserService.java @@ -16,6 +16,7 @@ import org.springframework.web.multipart.MultipartFile; import java.io.IOException; import java.util.Collection; import java.util.List; +import java.util.Map; /** * 系统用户表 @@ -207,9 +208,16 @@ public interface SysUserService extends ExtendService { SysUser findById(Long id); /** - * 修改用户分发总量 + * 余额数量检测-扣减 总分发量计数 + * @param map 用户分发数量 + * @param bool 是否是admin + * @return true余额充足 false余额不足 */ - void updateDistributeNum(List updateSysUserList); - + boolean detectionAvailableNumUpdate(Map map, boolean bool); + /** + * 余额数量检测 + * @return nickname:余额不足的用户昵称 null:查询用户都有余额 + */ + String detectionAvailableNum(List userIds); } diff --git a/ad-distribute-system/system-biz/src/main/java/com/baiye/system/service/impl/SysUserServiceImpl.java b/ad-distribute-system/system-biz/src/main/java/com/baiye/system/service/impl/SysUserServiceImpl.java index 35ed28c..a7166ad 100644 --- a/ad-distribute-system/system-biz/src/main/java/com/baiye/system/service/impl/SysUserServiceImpl.java +++ b/ad-distribute-system/system-biz/src/main/java/com/baiye/system/service/impl/SysUserServiceImpl.java @@ -5,6 +5,7 @@ import cn.hutool.core.convert.Convert; import cn.hutool.core.lang.Assert; import cn.hutool.core.util.StrUtil; import com.baiye.enums.SalesManEnum; +import com.baiye.exception.BadRequestException; import com.baiye.system.checker.AdminUserChecker; import com.baiye.system.converter.SysUserConverter; import com.baiye.system.event.UserCreatedEvent; @@ -192,6 +193,8 @@ public class SysUserServiceImpl extends ExtendServiceImpl { log.error("[addSysUser] 数据插入系统用户表失败,user:{}", sysUserDto); @@ -463,17 +466,40 @@ public class SysUserServiceImpl extends ExtendServiceImpl updateSysUserList) { - if (CollUtil.isNotEmpty(updateSysUserList)) { - List updateList = new ArrayList<>(); - for (SysUser sysUser : updateSysUserList) { - SysUser updateUser = new SysUser(); - updateUser.setUserId(sysUser.getUserId()); - updateUser.setDistributeNum(sysUser.getDistributeNum()); - updateList.add(updateUser); + @Transactional(rollbackFor = Exception.class) + public boolean detectionAvailableNumUpdate(Map map, boolean bool) { + if (CollUtil.isNotEmpty(map)) throw new BadRequestException("用户不能为空"); + List sysUserList = this.listByIds(map.keySet()); + Long whichUserId = sysUserList.get(0).getWhichUserId(); + + SysUser sysUser = baseMapper.selectById(whichUserId); + for (SysUser user : sysUserList) { + Integer clueNum = map.get(user.getUserId()); + // 非admin下发时 并且 公司管理员账号开启了计费模式(检测余额数量是否充足) + if (!bool && sysUser.getChargingStatus() == 1) { + Integer residueClueNum = user.getResidueClueNum(); + if (residueClueNum < clueNum) throw new BadRequestException(user.getNickname() + "用户余额不足!!"); + user.setResidueClueNum(residueClueNum - clueNum); + } + user.setDistributeNum(user.getDistributeNum() + clueNum); + } + this.updateBatchById(sysUserList); + return true; + } + + @Override + public String detectionAvailableNum(List userIds) { + if (CollUtil.isNotEmpty(userIds)) throw new BadRequestException("用户不能为空"); + List sysUsers = this.listByUserIds(userIds); + Long whichUserId = sysUsers.get(0).getWhichUserId(); + if (whichUserId != 1) { + SysUser whichUser = baseMapper.selectById(whichUserId); + for (SysUser sysUser : sysUsers) { + if (whichUser.getChargingStatus() == 1 && sysUser.getResidueClueNum() <= 0) + return sysUser.getNickname(); } - this.updateBatchById(updateList); } + return null; } } diff --git a/ad-distribute-system/system-biz/src/main/resources/mapper/SysUserMapper.xml b/ad-distribute-system/system-biz/src/main/resources/mapper/SysUserMapper.xml index b208fec..f342026 100644 --- a/ad-distribute-system/system-biz/src/main/resources/mapper/SysUserMapper.xml +++ b/ad-distribute-system/system-biz/src/main/resources/mapper/SysUserMapper.xml @@ -19,7 +19,9 @@ su.create_time, su.update_time, su.which_user_id, - su.distribute_num + su.distribute_num, + su.charging_status, + su.residue_clue_num