Bladeren bron

feat(user): 添加用户子类型字段和远程用户管理功能

- 在 RemoteUserBo、SysUser、SysUserBo、SysUserVo 中添加 userSonType 字段
- 定义用户子类型枚举值:0=平台用户,1=供应商,2=伙伴商,3=商城用户
- 在 RemoteUserService 接口中新增 addUser 和 editUser 方法
- 实现 RemoteUserServiceImpl 中的用户新增和编辑功能
- 添加用户名重复校验逻辑
- 在 SupplierContactServiceImpl 中引入远程用户服务依赖
肖路 2 maanden geleden
bovenliggende
commit
88ecd96299

+ 12 - 0
ruoyi-api/ruoyi-api-system/src/main/java/org/dromara/system/api/RemoteUserService.java

@@ -189,4 +189,16 @@ public interface RemoteUserService {
      */
     Map<Long, String> selectPostNamesByIds(List<Long> postIds);
 
+    /**
+     * 新增用户
+     */
+    Boolean addUser(RemoteUserBo remoteUserBo);
+
+    /**
+    * 编辑用户
+    * */
+    Boolean editUser(RemoteUserBo remoteUserBo);
+
+
+
 }

+ 5 - 0
ruoyi-api/ruoyi-api-system/src/main/java/org/dromara/system/api/domain/bo/RemoteUserBo.java

@@ -113,6 +113,11 @@ public class RemoteUserBo implements Serializable {
      */
     private Long roleId;
 
+    /**
+     * 用户子类型 用户子类型(0=平台用户,1=供应商,2=伙伴商,3=商城用户)
+     * */
+    private String userSonType;
+
     public RemoteUserBo(Long userId) {
         this.userId = userId;
     }

+ 6 - 0
ruoyi-modules/ruoyi-customer/src/main/java/org/dromara/customer/service/impl/SupplierContactServiceImpl.java

@@ -1,6 +1,7 @@
 package org.dromara.customer.service.impl;
 
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.apache.dubbo.config.annotation.DubboReference;
 import org.dromara.common.core.utils.MapstructUtils;
 import org.dromara.common.core.utils.StringUtils;
 import org.dromara.common.mybatis.core.page.TableDataInfo;
@@ -13,6 +14,8 @@ import lombok.extern.slf4j.Slf4j;
 import org.dromara.customer.controller.SupplierInfoController;
 import org.dromara.customer.domain.SupplierInfo;
 import org.dromara.customer.service.ISupplierInfoService;
+import org.dromara.system.api.RemoteUserService;
+import org.dromara.system.api.domain.bo.RemoteUserBo;
 import org.springframework.stereotype.Service;
 import org.dromara.customer.domain.bo.SupplierContactBo;
 import org.dromara.customer.domain.vo.SupplierContactVo;
@@ -41,6 +44,9 @@ public class SupplierContactServiceImpl  extends ServiceImpl<SupplierContactMapp
 
     private final ISupplierInfoService supplierInfoService;
 
+    @DubboReference
+    private RemoteUserService remoteUserService;
+
     /**
      * 查询联系人
      *

+ 5 - 0
ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/SysUser.java

@@ -103,6 +103,11 @@ public class SysUser extends TenantEntity {
      */
     private String remark;
 
+    /**
+     * 用户子类型 用户子类型(0=平台用户,1=供应商,2=伙伴商,3=商城用户)
+     * */
+    private String userSonType;
+
     /**
      * 插入时自动填充 platformCode
      */

+ 5 - 0
ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/bo/SysUserBo.java

@@ -87,6 +87,11 @@ public class SysUserBo extends BaseEntity {
      */
     private String remark;
 
+    /**
+    * 用户子类型 用户子类型(0=平台用户,1=供应商,2=伙伴商,3=商城用户)
+    * */
+    private String userSonType;
+
     /**
      * 角色组
      */

+ 5 - 0
ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/vo/SysUserVo.java

@@ -108,6 +108,11 @@ public class SysUserVo implements Serializable {
      */
     private String remark;
 
+    /**
+     * 用户子类型 用户子类型(0=平台用户,1=供应商,2=伙伴商,3=商城用户)
+     * */
+    private String userSonType;
+
     /**
      * 创建时间
      */

+ 38 - 0
ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/dubbo/RemoteUserServiceImpl.java

@@ -473,4 +473,42 @@ public class RemoteUserServiceImpl implements RemoteUserService {
             .collect(Collectors.toMap(SysPost::getPostId, SysPost::getPostName));
     }
 
+    /**
+     * 新增用户
+     *
+     * @param remoteUserBo
+     */
+    @Override
+    public Boolean addUser(RemoteUserBo remoteUserBo) {
+
+        SysUserBo sysUserBo = MapstructUtils.convert(remoteUserBo, SysUserBo.class);
+        String username = sysUserBo.getUserName();
+        boolean exist = userMapper.exists(new LambdaQueryWrapper<SysUser>()
+            .eq(SysUser::getUserName, sysUserBo.getUserName()));
+        if (exist) {
+            throw new RuntimeException("账号已经存在:"+ username);
+        }
+        return userService.insertUser(sysUserBo)>0;
+    }
+
+    /**
+     * 编辑用户
+     *
+     * @param remoteUserBo
+     */
+    @Override
+    public Boolean editUser(RemoteUserBo remoteUserBo) {
+
+        SysUserBo sysUserBo = MapstructUtils.convert(remoteUserBo, SysUserBo.class);
+        String username = sysUserBo.getUserName();
+        boolean exist = userMapper.exists(new LambdaQueryWrapper<SysUser>()
+            .eq(SysUser::getUserName, sysUserBo.getUserName())
+            .ne(SysUser::getUserId, sysUserBo.getUserId())
+
+        );
+        if (exist) {
+            throw new RuntimeException("账号已经存在:"+ username);
+        }
+        return userService.updateUser(sysUserBo)>0;
+    }
 }