jaikuai 3 éve
szülő
commit
e13183ca26

+ 11 - 2
src/main/java/cn/fastfun/controller/api/ApiSysUserController.java

@@ -1,5 +1,6 @@
 package cn.fastfun.controller.api;
 
+import cn.fastfun.service.SysService;
 import cn.fastfun.service.entity.SysUser;
 import cn.fastfun.service.entity.SysUserRole;
 import com.bridge.dto.*;
@@ -8,6 +9,7 @@ import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import io.swagger.annotations.ApiParam;
 import org.springframework.util.DigestUtils;
+import org.springframework.util.StringUtils;
 import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RequestMethod;
@@ -32,14 +34,21 @@ public class ApiSysUserController {
     @Resource(name = "sysUserRoleService")
     JpaService<SysUserRole, String> sysUserRoleService;
 
+
+    @Resource
+    SysService sysService;
+
     /**
      * 数据保存
      */
     @ApiOperation(value = "保存信息")
     @RequestMapping(value = "save", method = RequestMethod.POST)
     public ApiDTO save(@RequestBody @ApiParam(name = "系统账号对象", value = "传入json格式", required = true) SysUser entity) {
-        if (null != entity) entity.setUserPass(DigestUtils.md5DigestAsHex(entity.getUserPass().getBytes()));
-        return ApiDTO.ok("保存成功", sysUserService.save(entity));
+        if (!StringUtils.isEmpty(entity.getUserPass())) {
+            if (null != entity) entity.setUserPass(DigestUtils.md5DigestAsHex(entity.getUserPass().getBytes()));
+        }
+        sysService.saveUserRole(entity);
+        return ApiDTO.ok("保存成功");
     }
 
     @ApiOperation(value = "查询信息")

+ 5 - 0
src/main/java/cn/fastfun/service/SysService.java

@@ -1,11 +1,16 @@
 package cn.fastfun.service;
 
 import cn.fastfun.controller.param.RoleTree;
+import cn.fastfun.service.entity.SysUser;
 
 /**
  * 系统服务
  */
 public interface SysService {
 
+    // 报错角色菜单
     void saveRoleMenu(RoleTree param);
+
+    // 报错用户和角色
+    void saveUserRole(SysUser param);
 }

+ 4 - 0
src/main/java/cn/fastfun/service/entity/SysUserRole.java

@@ -3,7 +3,9 @@ package cn.fastfun.service.entity;
 
 import com.bridge.entity.IdEntity;
 import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
 import lombok.Getter;
+import lombok.NoArgsConstructor;
 import lombok.Setter;
 
 import javax.persistence.Column;
@@ -15,6 +17,8 @@ import javax.persistence.Table;
 @Table(name = "sys_user_role")
 @Setter
 @Getter
+@NoArgsConstructor
+@AllArgsConstructor
 public class SysUserRole extends IdEntity {
 
     private static final long serialVersionUID = 1L;

+ 20 - 0
src/main/java/cn/fastfun/service/impl/SysServiceImpl.java

@@ -5,11 +5,13 @@ import cn.fastfun.service.SysService;
 import cn.fastfun.service.UtilService;
 import cn.fastfun.service.entity.SysRole;
 import cn.fastfun.service.entity.SysRoleComponent;
+import cn.fastfun.service.entity.SysUser;
 import cn.fastfun.service.entity.SysUserRole;
 import com.bridge.dto.QueryParamExp;
 import com.bridge.service.JpaService;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.stereotype.Service;
+import org.springframework.util.CollectionUtils;
 
 import javax.annotation.Resource;
 import javax.transaction.Transactional;
@@ -22,6 +24,10 @@ public class SysServiceImpl implements SysService {
     @Resource
     UtilService utilService;
 
+    //业务类
+    @Resource(name = "sysUserService")
+    JpaService<SysUser, String> sysUserService;
+
     //业务类
     @Resource(name = "sysUserRoleService")
     JpaService<SysUserRole, String> sysUserRoleService;
@@ -47,4 +53,18 @@ public class SysServiceImpl implements SysService {
         List<SysUserRole> sysUserRoles = sysUserRoleService.findAll(QueryParamExp.eq("roleCode", param.getRoleCode()));
         sysUserRoles.forEach(p -> utilService.clearLoginUser(p.getUserId()));
     }
+
+    @Override
+    @Transactional
+    public void saveUserRole(SysUser param) {
+
+        List<SysUserRole> userRoles = sysUserRoleService.findAll(QueryParamExp.eq("userId", param.getId()));
+        userRoles.forEach(p -> sysUserRoleService.delete(p));
+
+        if (!CollectionUtils.isEmpty(param.getRoleIds())) {
+            param.getRoleIds().forEach(p-> sysUserRoleService.save(new SysUserRole(param.getId(), p)));
+        }
+
+        sysUserService.save(param);
+    }
 }