diff --git a/yudao-module-basic/yudao-module-basic-biz/src/main/java/cn/iocoder/yudao/module/basic/service/goodsinfo/GoodsInfoServiceImpl.java b/yudao-module-basic/yudao-module-basic-biz/src/main/java/cn/iocoder/yudao/module/basic/service/goodsinfo/GoodsInfoServiceImpl.java index 774c030..418a5fd 100644 --- a/yudao-module-basic/yudao-module-basic-biz/src/main/java/cn/iocoder/yudao/module/basic/service/goodsinfo/GoodsInfoServiceImpl.java +++ b/yudao-module-basic/yudao-module-basic-biz/src/main/java/cn/iocoder/yudao/module/basic/service/goodsinfo/GoodsInfoServiceImpl.java @@ -17,6 +17,7 @@ import cn.iocoder.yudao.module.basic.service.businessinfo.BusinessInfoServiceImp import cn.iocoder.yudao.module.product.api.harvestbatch.HarvestBatchApi; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import org.springframework.stereotype.Service; @@ -88,6 +89,7 @@ public class GoodsInfoServiceImpl implements GoodsInfoService { * @param updateReqVO 更新信息 */ @Override + @Transactional(rollbackFor = {Exception.class, RuntimeException.class}) public void updateGoodsInfo(GoodsInfoUpdateReqVO updateReqVO) { //校验所属商户是否存在 businessInfoService.validateBusinessInfoExists(updateReqVO.getBelongBusinessId()); @@ -101,6 +103,14 @@ public class GoodsInfoServiceImpl implements GoodsInfoService { //商品名称发生变化,进行唯一校验 validateGoodsNameExists(updateReqVO.getGoodsName()); } + //检查商品所属商户是否发生变化 + if (!Objects.equals(originalGoodsInfo.getBelongBusinessId(), updateReqVO.getBelongBusinessId())) { + //商品所属商户发生变化,删除原所属商户关联的经销商所绑定的该商品(经销商品) + dealerGoodsMapper.delete(new QueryWrapperX() + .eq("goods_id", originalGoodsInfo.getGoodsId()) + .eq("belong_business_id", originalGoodsInfo.getBelongBusinessId()) + ); + } // 更新记录 GoodsInfoDO newGoodsInfo = GoodsInfoConvert.INSTANCE.convert(updateReqVO); try { diff --git a/yudao-module-system/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/enums/ErrorCodeConstants.java b/yudao-module-system/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/enums/ErrorCodeConstants.java index 9949171..9eda654 100644 --- a/yudao-module-system/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/enums/ErrorCodeConstants.java +++ b/yudao-module-system/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/enums/ErrorCodeConstants.java @@ -43,7 +43,7 @@ public interface ErrorCodeConstants { ErrorCode USER_IMPORT_LIST_IS_EMPTY = new ErrorCode(1002003004, "导入用户数据不能为空!"); ErrorCode USER_PASSWORD_FAILED = new ErrorCode(1002003005, "用户密码校验失败"); ErrorCode USER_IS_DISABLE = new ErrorCode(1002003006, "名字为【{}】的用户已被禁用"); - ErrorCode USER_COUNT_MAX = new ErrorCode(1002003008, "创建用户失败,原因:超过租户最大租户配额({})!"); + ErrorCode USER_COUNT_MAX = new ErrorCode(1002003008, "创建用户失败,原因:当前租户用户数量已达上限(当前上限为{})!"); // ========== 部门模块 1002004000 ========== ErrorCode DEPT_NAME_DUPLICATE = new ErrorCode(1002004000, "已经存在该名字的部门"); diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/user/UserController.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/user/UserController.java index ae2516a..48fc1a1 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/user/UserController.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/user/UserController.java @@ -6,6 +6,7 @@ import cn.iocoder.yudao.framework.common.pojo.CommonResult; import cn.iocoder.yudao.framework.common.pojo.PageResult; import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils; import cn.iocoder.yudao.framework.operatelog.core.annotations.OperateLog; +import cn.iocoder.yudao.framework.tenant.core.context.TenantContextHolder; import cn.iocoder.yudao.module.system.controller.admin.user.vo.user.*; import cn.iocoder.yudao.module.system.convert.user.UserConvert; import cn.iocoder.yudao.module.system.dal.dataobject.user.AdminUserDO; @@ -117,6 +118,13 @@ public class UserController { return success(UserConvert.INSTANCE.convert(userService.getUser(id))); } + @GetMapping("/get/maxNum") + @ApiOperation("获得当前登录用户,所属租户可创建用户数量") + @PreAuthorize("@ss.hasPermission('system:user:query')") + public CommonResult getUserMaxNum() { + return success(userService.getUserMaxNum(TenantContextHolder.getRequiredTenantId())); + } + @GetMapping("/export") @ApiOperation("导出用户") @PreAuthorize("@ss.hasPermission('system:user:export')") diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/user/AdminUserService.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/user/AdminUserService.java index 22f0b59..c9e4285 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/user/AdminUserService.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/user/AdminUserService.java @@ -121,7 +121,13 @@ public interface AdminUserService { */ AdminUserDO getUser(Long id); - + /** + * 通过登录用户租户id 查询用户所属租户可创建用户数量 + * + * @param tenantId 登录用户租户id + * @return 用户所属租户可创建用户数量 + */ + Integer getUserMaxNum(Long tenantId); /** * 获得用户列表 diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/user/AdminUserServiceImpl.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/user/AdminUserServiceImpl.java index 2395feb..8aec740 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/user/AdminUserServiceImpl.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/user/AdminUserServiceImpl.java @@ -187,6 +187,10 @@ public class AdminUserServiceImpl implements AdminUserService { return userMapper.selectById(id); } + @Override + public Integer getUserMaxNum(Long tenantId) { + return tenantService.getTenant(tenantId).getAccountCount(); + } @Override