Преглед на файлове

用户管理调整,增加密码修改接口

chenwen преди 2 години
родител
ревизия
3c8ca67c38

+ 1 - 1
src/main/java/com/hb/proj/auth/controller/LoginController.java

@@ -103,7 +103,7 @@ public class LoginController {
 		if(!oldpwd.equals(us.getPwd())) {
 			return RespVOBuilder.error("原密码输入错误");
 		}
-		userService.modifypwd(token.getTokenId(), newpwd);
+		userService.updatePwd(token.getTokenId(), newpwd);
 		return RespVOBuilder.ok();
 	}
 

+ 2 - 0
src/main/java/com/hb/proj/model/User.java

@@ -60,5 +60,7 @@ public class User{
 	private Boolean delIf;
 	
 
+	private Boolean disabledIf;
 	
+	private String note;
 }

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

@@ -7,7 +7,7 @@ public class UserRolePO {
 	/**
 	 * 主键ID
 	 */
-	private String midId;
+	private String urId;
 	/**
 	 * 角色ID
 	 */

+ 6 - 1
src/main/java/com/hb/proj/model/UserVO.java

@@ -7,6 +7,11 @@ import lombok.EqualsAndHashCode;
 @Data
 @EqualsAndHashCode(callSuper = false)
 public class UserVO extends User {
-    private  String roleName;
+
+	private  String roleIds;
+	
+	private  String roleNames;
+	
+	private  String orgName;
 
 }

+ 4 - 0
src/main/java/com/hb/proj/sys/controller/OrgController.java

@@ -27,6 +27,10 @@ public class OrgController {
 	@Autowired
 	private OrgService  service;
 	
+	/**
+	 * 加载整个组织机构
+	 * @return
+	 */
 	@RequestMapping("/loadOrgTree")
 	public RespVO<List<SideTreeNode>> loadOrgTree(){
 		return RespVOBuilder.ok(service.loadWholeOrgTree());

+ 52 - 59
src/main/java/com/hb/proj/sys/controller/UserController.java

@@ -1,11 +1,10 @@
 package com.hb.proj.sys.controller;
 
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Map;
+import java.util.Arrays;
+import java.util.HashSet;
+import java.util.Set;
 
 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;
@@ -13,9 +12,7 @@ import org.springframework.web.bind.annotation.RequestParam;
 import org.springframework.web.bind.annotation.RestController;
 
 import com.hb.proj.allconfig.AccessToken;
-import com.hb.proj.allconfig.SysLog;
 import com.hb.proj.model.User;
-import com.hb.proj.model.UserRolePO;
 import com.hb.proj.model.UserVO;
 import com.hb.proj.sys.service.UserRoleService;
 import com.hb.proj.sys.service.UserService;
@@ -36,13 +33,7 @@ public class UserController {
 	@Autowired
 	private UserRoleService userRoleService;
 
-	/**
-	 * 根据用户ID查询所在的角色
-	 */
-	@RequestMapping("/queryByRoleUserId")
-	public RespVO<List<String>> queryByRoleUserId(String userId){
-		return RespVOBuilder.ok(userRoleService.queryByUserId(userId));
-	}
+	
 	/**
 	 * 查询用户列表
 	 * @apiNote 查询用户列表
@@ -52,18 +43,10 @@ public class UserController {
 	 * @return
 	 */
 	@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){
-		//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);
+	public RespVO<PageModel<UserVO>> query(RequestParams params,@RequestParam(value="currentPage",defaultValue="1") Integer pageNum,@RequestParam(value="pageSize",defaultValue="20") Integer pageSize){
+		PageModel<UserVO> pagedData = userService.query(params.getObjectMap(),pageNum, pageSize);
+		
+		return RespVOBuilder.ok(pagedData);
 	}
 	
 	
@@ -74,7 +57,13 @@ public class UserController {
 	 */
 	@RequestMapping("/get")
 	public RespVO<UserVO> get(@NotBlank(message = "缺少用户记录号") String userId){
-		return RespVOBuilder.ok(userService.get(userId));
+		UserVO  user=userService.get(userId);
+		Set<String> roles=userRoleService.loadByUserId(userId);
+		if(roles!=null) {
+			user.setRoleIds(StringUtils.join(roles,","));
+		}
+		
+		return RespVOBuilder.ok(user);
 	}
 	
 	
@@ -84,7 +73,6 @@ public class UserController {
 	 * @return
 	 */
 	@RequestMapping("/delete")
-	@SysLog("删除用户:{arg0}")
 	public RespVO<Object> delete(String userId){
 		userService.delete(userId);
 		userRoleService.deleteByUserId(userId);
@@ -95,42 +83,31 @@ public class UserController {
 	/**
 	 * 增加新用户
 	 * @param user  用户实体类
+	 * @param roleIds
+	 * @param token
 	 * @return
 	 */
 	@RequestMapping("/add")
-	@SysLog("新增用户:{arg0.loginId}")
-	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());
-		User userPo = new User();
-		BeanUtils.copyProperties(user,userPo);
-		 String userId= userService.add(userPo);
-		userRoleDeal(user, userId);
-		return RespVOBuilder.ok();
+	public RespVO<String> add(@Validated User user,String roleIds,AccessToken token){
+		User dbUser=userService.getByLoginId(user.getLoginId());
+		if(dbUser!=null) {
+			return RespVOBuilder.error("该账号已被注册过,请更换");
+		}
+		user.setCreateBy(token.getTokenId());
+		user.setModifyBy(token.getTokenId());
+		userService.add(user);
+		
+		bindRole(user.getUserId(),roleIds);
+		
+		return RespVOBuilder.ok(user.getUserId());
 
 
 	}
 
-	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(UserVO user,AccessToken token){
+	public RespVO<Object> update(@Validated User user,String roleIds,AccessToken token){
 		User dbUser=userService.get(user.getUserId());
 		if(dbUser==null) {
 			 return RespVOBuilder.error("用户已不存在");
@@ -147,13 +124,29 @@ public class UserController {
 		user.setCreateBy(dbUser.getCreateBy());
 		user.setCreateTime(dbUser.getCreateTime());
 		user.setModifyBy(token.getTokenId());
-		User userPo = new User();
-		BeanUtils.copyProperties(user,userPo);
-		userService.update(userPo);
-		userRoleService.deleteByUserId(user.getUserId());
-		userRoleDeal(user, user.getUserId());
+		userService.update(user);
+		
+		bindRole(user.getUserId(),roleIds);
+		
 		return RespVOBuilder.ok();
 	  
 		
 	}
+	
+	
+	private void bindRole(String userId,String roleIds) {
+		if(StringUtils.isBlank(roleIds)) {
+			return;
+		}
+		Set<String> roleSet=new HashSet<>(Arrays.asList(roleIds.split(",")));
+		
+		userRoleService.add(userId, roleSet);
+	}
+	
+	
+	@RequestMapping("/setpwd")
+	public RespVO<Object> setpwd(@NotBlank(message="用户记录编号不能为空") String userId,@NotBlank(message="密码不能为空") String pwd){
+		userService.updatepwd(userId,pwd);
+		return RespVOBuilder.ok();
+	}
 }

+ 30 - 11
src/main/java/com/hb/proj/sys/service/UserService.java

@@ -21,23 +21,37 @@ public class UserService {
 	@Autowired
 	private SpringJdbcDAO  dao;
 	
-	public PageModel<Map<String,Object>> query(Map<String,Object> args,int pageNo,int pageSize){
+	public PageModel<UserVO> query(Map<String,Object> args,int pageNo,int pageSize){
 		List<Object> sqlParams=new ArrayList<Object>();
-		StringBuilder sql=new StringBuilder(100);
-		sql.append("select * ");
-		sql.append(" from tsys_user u ");
-		sql.append(" where del_if=false ");
+		
+		String sql="""
+				  select u.*,role_ids,role_names,
+				  
+				  (select  group_concat(distinct g2.org_name order by g2.assist_code separator '-') from tsys_org g2 
+				  where g2.del_if=false and length(g2.assist_code)>4  and g.assist_code like  concat(g2.assist_code,'%') group by '1') org_name
+				  
+				  from tsys_user u
+				  left join tsys_org g on u.org_id=g.org_id and g.del_if=false
+				  left join (
+				  	select ur.user_id,group_concat(ur.role_id) role_ids,group_concat(r.role_name) role_names from tsys_user_role ur
+				  	inner join tsys_role r on ur.role_id=r.role_id and r.del_if=false group by ur.user_id
+				  ) rtab  on u.user_id=rtab.user_id
+				  
+				  where u.del_if=false
+				  
+				""";
 		
 		if(args!=null&&StringUtils.isNotBlank((String)args.get("realName"))) {
-			sql.append(" and (real_name like ? or login_id like ?)");
-			sqlParams.add("%"+args.get("userName")+"%");
-			sqlParams.add("%"+args.get("userName")+"%");
+			sql+=" and (real_name like ? or login_id like ?)";
+			sqlParams.add("%"+args.get("realName")+"%");
+			sqlParams.add("%"+args.get("realName")+"%");
 		}
 		
-		sql.append(" order by create_time desc");
+		sql+=" order by create_time desc";
+		
 		
 		Object[] sqlArgs=sqlParams.size()>0?sqlParams.toArray():null;
-		return dao.queryForPagedData(sql.toString(),pageNo, pageSize,sqlArgs);
+		return dao.queryForPagedData(sql.toString(),pageNo, pageSize,UserVO.class, sqlArgs);
 	}
 	
 	public String add(User user) {
@@ -70,7 +84,7 @@ public class UserService {
 		return dao.update(user,"tsys_user", "user_id")>0;
 	}
 	
-	public boolean modifypwd(String userId,String pwd) {
+	public boolean updatePwd(String userId,String pwd) {
 		return dao.exeUpdate("update tsys_user set modify_time=now(),pwd=? where user_id=?",pwd,userId)>0;
 	}
 	
@@ -82,4 +96,9 @@ public class UserService {
 		Integer num=dao.queryForObject("select count(1) from tsys_user where del_if=false and  login_id=? and user_id!=?", Integer.class, loginId,userId);
 		return num!=null&&num.intValue()>0;
 	}
+	
+	public boolean updatepwd(String userId,String pwd) {
+		dao.exeUpdate("update tsys_user set pwd=? where user_id=?", pwd,userId);
+		return true;
+	}
 }