From 2ef02b2cdea42f84e98718ade950ea5ae9c87bdd Mon Sep 17 00:00:00 2001 From: yqy Date: Wed, 11 Oct 2023 16:29:34 +0800 Subject: [PATCH] =?UTF-8?q?=E7=94=A8=E6=88=B7=E6=95=B0=E9=87=8F=E4=BD=99?= =?UTF-8?q?=E9=A2=9D+=E5=BD=95=E5=85=A5=E7=B1=BB=E5=9E=8B=E4=BB=A3?= =?UTF-8?q?=E7=A0=81=E6=8F=90=E4=BA=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/baiye/result/BaseResultCode.java | 3 +- .../baiye/system/service/SysUserService.java | 14 +- .../service/impl/SysUserServiceImpl.java | 44 ++++-- .../main/resources/mapper/SysUserMapper.xml | 4 +- .../baiye/system/model/dto/SysUserDTO.java | 6 + .../baiye/system/model/entity/SysUser.java | 6 + .../baiye/system/model/vo/SysUserPageVO.java | 6 + .../modules/distribute/dto/CustomDTO.java | 15 +- .../distribute/entity/CustomEntity.java | 3 + .../distribute/entity/CustomStoreEntity.java | 7 +- .../service/impl/CustomServiceImpl.java | 20 +++ .../service/impl/CustomStoreServiceImpl.java | 8 +- .../impl/DistributeTaskServiceImpl.java | 147 ++++++------------ .../baiye/modules/distribute/vo/CustomVO.java | 8 +- admin/src/main/resources/application-prod.yml | 2 +- .../main/resources/mapper/CustomMapper.xml | 8 +- 16 files changed, 164 insertions(+), 137 deletions(-) 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