Преглед изворни кода

feat(customer): 优化供应商联系人服务实现

- 修改RemoteUserService接口方法返回值从Boolean改为Long,返回用户ID
- 在SupplierContact实体类中新增userId字段存储关联用户信息
- 实现供应商联系人增改时同步创建或更新系统用户
- 添加事务注解确保数据一致性
- 集成密码加密和登录辅助工具进行用户管理
- 完善数据库映射关系支持用户关联查询
肖路 пре 2 месеци
родитељ
комит
d2de391d0e

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

@@ -192,12 +192,12 @@ public interface RemoteUserService {
     /**
      * 新增用户
      */
-    Boolean addUser(RemoteUserBo remoteUserBo);
+    Long addUser(RemoteUserBo remoteUserBo);
 
     /**
     * 编辑用户
     * */
-    Boolean editUser(RemoteUserBo remoteUserBo);
+    Long editUser(RemoteUserBo remoteUserBo);
 
 
 

+ 5 - 0
ruoyi-modules/ruoyi-customer/src/main/java/org/dromara/customer/domain/SupplierContact.java

@@ -27,6 +27,11 @@ public class SupplierContact extends TenantEntity {
     @TableId(value = "id")
     private Long id;
 
+    /**
+     * userId
+     */
+    private Long userId;
+
     /**
      * 供应商编号
      */

+ 4 - 0
ruoyi-modules/ruoyi-customer/src/main/java/org/dromara/customer/domain/bo/SupplierContactBo.java

@@ -24,6 +24,10 @@ public class SupplierContactBo extends BaseEntity {
 
     private Long id;
 
+    /**
+     * userId
+     */
+    private Long userId;
     /**
      * 供应商编号
      */

+ 5 - 0
ruoyi-modules/ruoyi-customer/src/main/java/org/dromara/customer/domain/vo/SupplierContactVo.java

@@ -29,6 +29,11 @@ public class SupplierContactVo implements Serializable {
     private static final long serialVersionUID = 1L;
 
     private Long id;
+
+    /**
+     * userId
+     */
+    private Long userId;
     /**
      * 供应商编号
      */

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

@@ -1,5 +1,7 @@
 package org.dromara.customer.service.impl;
 
+import cn.hutool.core.util.ObjectUtil;
+import cn.hutool.crypto.digest.BCrypt;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import org.apache.dubbo.config.annotation.DubboReference;
 import org.dromara.common.core.utils.MapstructUtils;
@@ -11,6 +13,7 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
+import org.dromara.common.satoken.utils.LoginHelper;
 import org.dromara.customer.controller.SupplierInfoController;
 import org.dromara.customer.domain.SupplierInfo;
 import org.dromara.customer.domain.vo.SupplierInformationVo;
@@ -23,6 +26,7 @@ import org.dromara.customer.domain.vo.SupplierContactVo;
 import org.dromara.customer.domain.SupplierContact;
 import org.dromara.customer.mapper.SupplierContactMapper;
 import org.dromara.customer.service.ISupplierContactService;
+import org.springframework.transaction.annotation.Transactional;
 
 import java.util.List;
 import java.util.Map;
@@ -158,9 +162,18 @@ public class SupplierContactServiceImpl  extends ServiceImpl<SupplierContactMapp
      * @return 是否新增成功
      */
     @Override
+    @Transactional(rollbackFor = Exception.class)
     public Boolean insertByBo(SupplierContactBo bo) {
         SupplierContact add = MapstructUtils.convert(bo, SupplierContact.class);
         validEntityBeforeSave(add);
+        RemoteUserBo remoteUserBo = new RemoteUserBo();
+        remoteUserBo.setNickName(bo.getUserName());
+        remoteUserBo.setUserName(bo.getPhone());
+        String password = ObjectUtil.isNotEmpty(bo.getPassword()) ? bo.getPassword() : "123456";
+        remoteUserBo.setPassword(BCrypt.hashpw(password));
+        remoteUserBo.setUserSonType("1");
+        remoteUserBo.setTenantId(LoginHelper.getTenantId());
+        Long userId = remoteUserService.addUser(remoteUserBo);
 
         // 查询最大的用户编号
         LambdaQueryWrapper<SupplierContact> lqw = Wrappers.lambdaQuery();
@@ -171,6 +184,7 @@ public class SupplierContactServiceImpl  extends ServiceImpl<SupplierContactMapp
         String maxUserNo = maxContact.getUserNo();
         long l = Long.parseLong(maxUserNo) + 1;
         add.setUserNo(String.valueOf(l));
+        add.setUserId(userId);
         boolean flag = baseMapper.insert(add) > 0;
         return flag;
     }
@@ -182,9 +196,18 @@ public class SupplierContactServiceImpl  extends ServiceImpl<SupplierContactMapp
      * @return 是否修改成功
      */
     @Override
+    @Transactional(rollbackFor = Exception.class)
     public Boolean updateByBo(SupplierContactBo bo) {
         SupplierContact update = MapstructUtils.convert(bo, SupplierContact.class);
         validEntityBeforeSave(update);
+        RemoteUserBo remoteUserBo = new RemoteUserBo();
+        remoteUserBo.setNickName(bo.getUserName());
+        remoteUserBo.setUserName(bo.getPhone());
+        String password = ObjectUtil.isNotEmpty(bo.getPassword()) ? bo.getPassword() : "123456";
+        remoteUserBo.setPassword(BCrypt.hashpw(password));
+        remoteUserBo.setUserSonType("1");
+        remoteUserBo.setTenantId(LoginHelper.getTenantId());
+        Long userId = remoteUserService.editUser(remoteUserBo);
         return baseMapper.updateById(update) > 0;
     }
 

+ 6 - 4
ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/dubbo/RemoteUserServiceImpl.java

@@ -479,7 +479,7 @@ public class RemoteUserServiceImpl implements RemoteUserService {
      * @param remoteUserBo
      */
     @Override
-    public Boolean addUser(RemoteUserBo remoteUserBo) {
+    public Long addUser(RemoteUserBo remoteUserBo) {
 
         SysUserBo sysUserBo = MapstructUtils.convert(remoteUserBo, SysUserBo.class);
         String username = sysUserBo.getUserName();
@@ -488,7 +488,8 @@ public class RemoteUserServiceImpl implements RemoteUserService {
         if (exist) {
             throw new RuntimeException("账号已经存在:"+ username);
         }
-        return userService.insertUser(sysUserBo)>0;
+        userService.insertUser(sysUserBo);
+        return sysUserBo.getUserId();
     }
 
     /**
@@ -497,7 +498,7 @@ public class RemoteUserServiceImpl implements RemoteUserService {
      * @param remoteUserBo
      */
     @Override
-    public Boolean editUser(RemoteUserBo remoteUserBo) {
+    public Long editUser(RemoteUserBo remoteUserBo) {
 
         SysUserBo sysUserBo = MapstructUtils.convert(remoteUserBo, SysUserBo.class);
         String username = sysUserBo.getUserName();
@@ -509,6 +510,7 @@ public class RemoteUserServiceImpl implements RemoteUserService {
         if (exist) {
             throw new RuntimeException("账号已经存在:"+ username);
         }
-        return userService.updateUser(sysUserBo)>0;
+        userService.updateUser(sysUserBo);
+        return sysUserBo.getUserId();
     }
 }