浏览代码

增加用户角色关系管理的后台逻辑和用户新增关系

hbjzws 2 年之前
父节点
当前提交
7d7a6c6b51

+ 24 - 0
src/main/java/com/hb/proj/model/UserRolePO.java

@@ -0,0 +1,24 @@
+package com.hb.proj.model;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+
+import java.util.Date;
+
+@Data
+public class UserRolePO {
+	/**
+	 * 主键ID
+	 */
+	private String midId;
+	/**
+	 * 角色ID
+	 */
+	private String roleId;
+	/**
+	 * 用户ID
+	 */
+	private String userId;
+
+	
+}

+ 5 - 0
src/main/java/com/hb/proj/model/UserVO.java

@@ -1,5 +1,10 @@
 package com.hb.proj.model;
 
+import lombok.Data;
+
+
+@Data
 public class UserVO extends User {
+    private  String roleName;
 
 }

+ 21 - 1
src/main/java/com/hb/proj/sys/controller/RoleController.java

@@ -3,6 +3,7 @@ package com.hb.proj.sys.controller;
 import com.hb.proj.allconfig.AccessToken;
 import com.hb.proj.allconfig.SysLog;
 import com.hb.proj.model.RoleVO;
+import com.hb.proj.model.SortCodeVO;
 import com.hb.proj.model.User;
 import com.hb.proj.model.UserVO;
 import com.hb.proj.sys.service.RoleService;
@@ -18,6 +19,9 @@ import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RequestParam;
 import org.springframework.web.bind.annotation.RestController;
 
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
 import java.util.Map;
 
 /**
@@ -30,7 +34,23 @@ public class RoleController {
 
 	@Autowired
 	private RoleService roleService;
-	
+	/**
+	 * 获取所有角色记录
+	 * @return
+	 */
+	@RequestMapping("/loadAll")
+	public RespVO<List<Map<String,String>>> loadAll(){
+		List<Map<String,String>> listM = new ArrayList<Map<String,String>>();
+		List<RoleVO> list =roleService.loadAll();
+
+		for(RoleVO vo: list){
+			Map<String,String> map = new HashMap<String,String>();
+			map.put("label",vo.getRoleName());
+			map.put("value",vo.getRoleId());
+			listM.add(map);
+		}
+		return RespVOBuilder.ok(listM);
+	}
 	/**
 	 * 查询角色列表
 	 * @apiNote 查询角色列表

+ 57 - 9
src/main/java/com/hb/proj/sys/controller/UserController.java

@@ -1,7 +1,14 @@
 package com.hb.proj.sys.controller;
 
+import java.util.ArrayList;
+import java.util.List;
 import java.util.Map;
 
+import cn.hutool.core.util.IdUtil;
+import com.hb.proj.model.UserRolePO;
+import com.hb.proj.sys.service.UserRoleService;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.RequestMapping;
@@ -27,7 +34,16 @@ public class UserController {
 
 	@Autowired
 	private UserService  userService;
-	
+	@Autowired
+	private UserRoleService userRoleService;
+
+	/**
+	 * 根据用户ID查询所在的角色
+	 */
+	@RequestMapping("/queryByRoleUserId")
+	public RespVO<List<String>> queryByRoleUserId(String userId){
+		return RespVOBuilder.ok(userRoleService.queryByUserId(userId));
+	}
 	/**
 	 * 查询用户列表
 	 * @apiNote 查询用户列表
@@ -38,7 +54,17 @@ public class UserController {
 	 */
 	@RequestMapping("/query")
 	public RespVO<PageModel<Map<String,Object>>> query(RequestParams params,@RequestParam(value="page",defaultValue="1") Integer pageNum,@RequestParam(value="limit",defaultValue="20") Integer pageSize){
-		return RespVOBuilder.ok(userService.query(params.getObjectMap(),pageNum, pageSize));
+		//PageModel<Map<String,Object>> p = new PageModel<Map<String,Object>>();
+		PageModel<Map<String,Object>> pOrg = userService.query(params.getObjectMap(),pageNum, pageSize);
+		List<Map<String,Object>> listt=pOrg.getData();
+		List<Map<String,Object>> listZH=new ArrayList<Map<String,Object>>();
+		for(Map<String,Object> map: listt){
+			String userId = map.get("userId").toString();
+			map.put("roleName",userRoleService.queryRoleByUserId(userId));
+			listZH.add(map);
+		}
+		pOrg.setData(listZH);
+		return RespVOBuilder.ok(pOrg);
 	}
 	
 	
@@ -62,6 +88,7 @@ public class UserController {
 	@SysLog("删除用户:{arg0}")
 	public RespVO<Object> delete(String userId){
 		userService.delete(userId);
+		userRoleService.deleteByUserId(userId);
 		return RespVOBuilder.ok();
 	}
 	
@@ -73,20 +100,38 @@ public class UserController {
 	 */
 	@RequestMapping("/add")
 	@SysLog("新增用户:{arg0.loginId}")
-	public RespVO<String> add(User user,AccessToken token){
+	public RespVO<String> add(UserVO user,AccessToken token){
 		 User dbUser=userService.getByLoginId(user.getLoginId());
 		 if(dbUser!=null) {
 			 return RespVOBuilder.error("该账号已被注册过,请更换");
 		 }
 		 user.setCreateBy(token.getTokenId());
 		 user.setModifyBy(token.getTokenId());
-		 return RespVOBuilder.ok(userService.add(user));
-		
+		User userPo = new User();
+		BeanUtils.copyProperties(user,userPo);
+		 String userId= userService.add(userPo);
+		userRoleDeal(user, userId);
+		return RespVOBuilder.ok();
+
+
 	}
-	
+
+	private void userRoleDeal(UserVO user, String userId) {
+		String roleName= user.getRoleName();
+		if(StringUtils.isNotEmpty(roleName)){
+			String[] allRoleStr=roleName.split(",");
+			for(String subRoleStr: allRoleStr){
+				UserRolePO uro=new UserRolePO();
+				uro.setUserId(userId);
+				uro.setRoleId(subRoleStr);
+				userRoleService.add(uro);
+			}
+		}
+	}
+
 	@RequestMapping("/update")
 	@SysLog("更新用户:{arg0.loginId}")
-	public RespVO<Object> update(User user,AccessToken token){
+	public RespVO<Object> update(UserVO user,AccessToken token){
 		User dbUser=userService.get(user.getUserId());
 		if(dbUser==null) {
 			 return RespVOBuilder.error("用户已不存在");
@@ -103,8 +148,11 @@ public class UserController {
 		user.setCreateBy(dbUser.getCreateBy());
 		user.setCreateTime(dbUser.getCreateTime());
 		user.setModifyBy(token.getTokenId());
-		userService.update(user);
-		
+		User userPo = new User();
+		BeanUtils.copyProperties(user,userPo);
+		userService.update(userPo);
+		userRoleService.deleteByUserId(user.getUserId());
+		userRoleDeal(user, user.getUserId());
 		return RespVOBuilder.ok();
 	  
 		

+ 5 - 5
src/main/java/com/hb/proj/sys/service/RoleService.java

@@ -1,9 +1,6 @@
 package com.hb.proj.sys.service;
 
-import com.hb.proj.model.RolePO;
-import com.hb.proj.model.RoleVO;
-import com.hb.proj.model.User;
-import com.hb.proj.model.UserVO;
+import com.hb.proj.model.*;
 import com.hb.xframework.dao.core.SpringJdbcDAO;
 import com.hb.xframework.dao.util.PageModel;
 import com.hb.xframework.dao.util.UUIDHexGenerator;
@@ -21,7 +18,9 @@ public class RoleService {
 
 	@Autowired
 	private SpringJdbcDAO  dao;
-	
+	public List<RoleVO>  loadAll(){
+		return dao.queryForList("select * from tsys_role where del_if=false",RoleVO.class);
+	}
 	public PageModel<Map<String,Object>> query(Map<String,Object> args,int pageNo,int pageSize){
 		List<Object> sqlParams=new ArrayList<Object>();
 		StringBuilder sql=new StringBuilder(100);
@@ -64,6 +63,7 @@ public class RoleService {
 		rolePO.setModifyTime(new Date());
 		return dao.update(rolePO, "tsys_role", "role_id")>0;
 	}
+
 	
 	/*public boolean updateByUsId(Map<String, Object> role){
 		role.put("modifyTime", new Date());

+ 58 - 0
src/main/java/com/hb/proj/sys/service/UserRoleService.java

@@ -0,0 +1,58 @@
+package com.hb.proj.sys.service;
+
+import com.hb.proj.model.RolePO;
+import com.hb.proj.model.RoleVO;
+import com.hb.proj.model.UserRolePO;
+import com.hb.xframework.dao.core.SpringJdbcDAO;
+import com.hb.xframework.dao.util.PageModel;
+import com.hb.xframework.dao.util.UUIDHexGenerator;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+import java.util.Map;
+
+@Service
+public class UserRoleService {
+
+	@Autowired
+	private SpringJdbcDAO  dao;
+	@Autowired
+	private RoleService roleService;
+	public List<String> queryByUserId(String userId) {
+		List<UserRolePO> list =dao.queryForList("select * from tsys_user_role where user_id=?",UserRolePO.class,userId);
+		List<String> listS = new ArrayList<String>();
+		for(UserRolePO po:list){
+			listS.add(po.getRoleId());
+		}
+		return listS;
+	}
+	public String queryRoleByUserId(String userId) {
+		List<UserRolePO> list =dao.queryForList("select * from tsys_user_role where user_id=?",UserRolePO.class,userId);
+		List<String> listS = new ArrayList<String>();
+		for(UserRolePO po:list){
+			listS.add(roleService.get(po.getRoleId()).getRoleName());
+		}
+		return String.join(",",listS);
+	}
+	public String add(UserRolePO userRolePO) {
+		UUIDHexGenerator uuid=UUIDHexGenerator.getInstance();
+		userRolePO.setMidId(uuid.generate());
+		dao.insert(userRolePO,"tsys_user_role");
+		return userRolePO.getMidId();
+	}
+	
+	public boolean delete(String midId) {
+		String sql="delete from tsys_user_role  where mid_id=?";
+		dao.exeUpdate(sql,midId);
+		return true;
+	}
+	public boolean deleteByUserId(String userId) {
+		String sql="delete from tsys_user_role  where user_id=?";
+		dao.exeUpdate(sql,userId);
+		return true;
+	}
+}