优化代码以后提交代码,功能完善
This commit is contained in:
parent
fcbd1b3905
commit
974c306ba3
@ -6,6 +6,7 @@ import io.gisbi.application.system.domain.Menu;
|
||||
import io.gisbi.application.system.service.IMenuService;
|
||||
import io.gisbi.config.ResponseResult;
|
||||
import io.gisbi.utils.AuthUtils;
|
||||
import io.micrometer.common.util.StringUtils;
|
||||
import jakarta.annotation.Resource;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
@ -29,54 +30,10 @@ public class MenuController {
|
||||
@Resource
|
||||
private IMenuService menuService;
|
||||
|
||||
|
||||
/***********************************
|
||||
* 用途说明:获取菜单结构树(含按钮)
|
||||
* 参数说明
|
||||
* appId 应用ID 关联应用系统
|
||||
* name 名称
|
||||
* isdisplay 是否显示
|
||||
* 返回值说明: 菜单结构树集合
|
||||
***********************************/
|
||||
@PostMapping("/getMenuButtonTree")
|
||||
@ResponseBody
|
||||
public List<Map<String, Object>> getMenuButtonTree(String appId,String name,String isdisplay) {
|
||||
return menuService.getMenuButtonTree(appId, name, isdisplay);
|
||||
}
|
||||
|
||||
/***********************************
|
||||
* 用途说明:获取菜单结构树(不含按钮)
|
||||
* 参数说明
|
||||
* appId 应用ID 关联应用系统
|
||||
* name 名称
|
||||
* isdisplay 是否显示
|
||||
* 返回值说明: 菜单结构树集合
|
||||
***********************************/
|
||||
@PostMapping("/getMenuTreegetMenuTree")
|
||||
@ResponseBody
|
||||
public List<Map<String, Object>> getMenuTree(String appId,
|
||||
String name,
|
||||
String isdisplay) {
|
||||
return menuService.getMenuTree(appId, name, isdisplay);
|
||||
}
|
||||
|
||||
/***********************************
|
||||
* 用途说明:根据id查询菜单或按钮详情
|
||||
* 参数说明
|
||||
* id 菜单或按钮表id
|
||||
* 返回值说明: 菜单或按钮表对象
|
||||
***********************************/
|
||||
@PostMapping("/getMenuById")
|
||||
@ResponseBody
|
||||
public ResponseResult getMenuById(String id) {
|
||||
Menu menu = menuService.getById(id);
|
||||
return ResponseResult.successData(menu);
|
||||
}
|
||||
|
||||
/***********************************
|
||||
* 用途说明:新增菜单及按钮
|
||||
* 参数说明
|
||||
* sysMenu 菜单或按钮表对象
|
||||
* sysMenu 菜单表对象
|
||||
* 返回值说明: 是否添加成功提示
|
||||
***********************************/
|
||||
@PostMapping("/addMenu")
|
||||
@ -99,6 +56,9 @@ public class MenuController {
|
||||
@PostMapping("/updateMenuById")
|
||||
@ResponseBody
|
||||
public ResponseResult updateById(@RequestBody Menu menu) {
|
||||
if (StringUtils.isEmpty(menu.getId())) {
|
||||
return ResponseResult.error("没有菜单ID");
|
||||
}
|
||||
//填写 当前用户名称
|
||||
menu.setLastmodifier(AuthUtils.getUser().getUserId().toString());
|
||||
//填写 当前日期
|
||||
@ -111,6 +71,37 @@ public class MenuController {
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/***********************************
|
||||
* 用途说明:获取菜单结构树(含按钮)
|
||||
* 参数说明
|
||||
* appId 应用ID 关联应用系统
|
||||
* name 名称
|
||||
* isdisplay 是否显示
|
||||
* 返回值说明: 菜单结构树集合
|
||||
***********************************/
|
||||
@PostMapping("/getMenuTree")
|
||||
@ResponseBody
|
||||
public List<Map<String, Object>> getMenuTree(String appId, String name, String isdisplay) {
|
||||
return menuService.getMenuTree(appId, name, isdisplay);
|
||||
}
|
||||
|
||||
|
||||
/***********************************
|
||||
* 用途说明:根据id查询菜单
|
||||
* 参数说明
|
||||
* id 菜单或按钮表id
|
||||
* 返回值说明: 菜单表对象
|
||||
***********************************/
|
||||
@PostMapping("/getMenuById")
|
||||
@ResponseBody
|
||||
public ResponseResult getMenuById(String id) {
|
||||
Menu menu = menuService.getById(id);
|
||||
return ResponseResult.successData(menu);
|
||||
}
|
||||
|
||||
|
||||
|
||||
/***********************************
|
||||
* 用途说明:根据id删除菜单或按钮
|
||||
* 参数说明
|
||||
@ -119,8 +110,8 @@ public class MenuController {
|
||||
***********************************/
|
||||
@PostMapping("/deleteMenuById")
|
||||
@ResponseBody
|
||||
public ResponseResult deleteById(@RequestParam String id) {
|
||||
boolean ok = menuService.deleteById(id);
|
||||
public ResponseResult deleteMenuById(@RequestParam String id) {
|
||||
boolean ok = menuService.deleteMenuById(id);
|
||||
if (ok) {
|
||||
return ResponseResult.success();
|
||||
} else {
|
||||
@ -142,8 +133,32 @@ public class MenuController {
|
||||
//根据id 修改是否显示 ,最近修改人,最近修改时间
|
||||
updateWrapper.eq("id", id)
|
||||
.set("isdisplay", isdisplay)
|
||||
.set( "lastmodifier", AuthUtils.getUser().getUserId().toString())
|
||||
.set("lastmodifydate",new Timestamp(System.currentTimeMillis()));
|
||||
.set("lastmodifier", AuthUtils.getUser().getUserId().toString())
|
||||
.set("lastmodifydate", new Timestamp(System.currentTimeMillis()));
|
||||
boolean ok = menuService.update(updateWrapper);
|
||||
if (ok) {
|
||||
return ResponseResult.success();
|
||||
} else {
|
||||
return ResponseResult.error();
|
||||
}
|
||||
}
|
||||
|
||||
/***********************************
|
||||
* 用途说明:更新关联模块ID
|
||||
* 参数说明
|
||||
* id 菜单及按钮表id
|
||||
* moduleId 关联模块ID
|
||||
* 返回值说明: 是否更新成功
|
||||
***********************************/
|
||||
@PostMapping("/setModuleId")
|
||||
@ResponseBody
|
||||
public ResponseResult setModuleId(String id, String moduleId) {
|
||||
UpdateWrapper<Menu> updateWrapper = new UpdateWrapper<>();
|
||||
//根据id 修改关联模块ID ,最近修改人,最近修改时间
|
||||
updateWrapper.eq("id", id)
|
||||
.set("module_id", moduleId)
|
||||
.set("lastmodifier", AuthUtils.getUser().getUserId().toString())
|
||||
.set("lastmodifydate", new Timestamp(System.currentTimeMillis()));
|
||||
boolean ok = menuService.update(updateWrapper);
|
||||
if (ok) {
|
||||
return ResponseResult.success();
|
||||
|
@ -1,8 +1,8 @@
|
||||
package io.gisbi.application.system.controller;
|
||||
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
|
||||
import com.github.xiaoymin.knife4j.core.util.StrUtil;
|
||||
import io.gisbi.application.system.domain.Organization;
|
||||
import io.gisbi.application.system.service.IOrganizationService;
|
||||
import io.gisbi.utils.AuthUtils;
|
||||
@ -31,37 +31,6 @@ public class OrganizationController {
|
||||
private IOrganizationService organizationService;
|
||||
|
||||
|
||||
/***********************************
|
||||
* 用途说明:获取企业列表
|
||||
* 参数说明
|
||||
* id 企业id
|
||||
* orgName 部门名称
|
||||
* 返回值说明: 企业列表集合
|
||||
***********************************/
|
||||
@PostMapping("/getOrganizations")
|
||||
@ResponseBody
|
||||
public List<Map<String, Object>> getOrganizations(String appId, String orgtype, String parentid, String orgName) {
|
||||
return organizationService.getOrganizations(appId,orgtype, parentid, orgName);
|
||||
}
|
||||
|
||||
/***********************************
|
||||
* 用途说明:根据企业ID查询部门信息
|
||||
* 参数说明
|
||||
* id 企业id
|
||||
* orgName 部门名称
|
||||
* 返回值说明: 系统部门框架对象
|
||||
***********************************/
|
||||
@PostMapping("/getOrganizationById")
|
||||
@ResponseBody
|
||||
public ResponseResult getOrganizationById(String id, String orgName) {
|
||||
if (StrUtil.isBlank(id)) {
|
||||
return ResponseResult.error("查询失败!");
|
||||
}
|
||||
Organization Organization = organizationService.getOrganizationById(id);
|
||||
return ResponseResult.successData(Organization);
|
||||
}
|
||||
|
||||
|
||||
/***********************************
|
||||
* 用途说明:新增系统组织框架
|
||||
* 参数说明
|
||||
@ -92,6 +61,10 @@ public class OrganizationController {
|
||||
@PostMapping("/updateOrganizationById")
|
||||
@ResponseBody
|
||||
public ResponseResult updateOrganizationById(@RequestBody Organization organization) {
|
||||
if (StrUtil.isEmpty(organization.getId())) {
|
||||
return ResponseResult.error("组织信息id不能为空");
|
||||
}
|
||||
|
||||
if (organization == null) {
|
||||
return ResponseResult.error("组织信息不能为空");
|
||||
}
|
||||
@ -108,6 +81,42 @@ public class OrganizationController {
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/***********************************
|
||||
* 用途说明:获取企业列表
|
||||
* 参数说明
|
||||
* id 企业id
|
||||
* orgName 部门名称
|
||||
* orgtype 组织类型:01-公司 02-部门
|
||||
* parentid 上级ID
|
||||
* 返回值说明: 企业列表集合
|
||||
***********************************/
|
||||
@PostMapping("/getOrganizations")
|
||||
@ResponseBody
|
||||
public List<Map<String, Object>> getOrganizations(String appId, String orgtype, String parentid, String orgName) {
|
||||
return organizationService.getOrganizations(appId,orgtype, parentid, orgName);
|
||||
}
|
||||
|
||||
/***********************************
|
||||
* 用途说明:根据ID查询信息
|
||||
* 参数说明
|
||||
* id 企业id
|
||||
* orgName 部门名称
|
||||
* 返回值说明: 系统部门框架对象
|
||||
***********************************/
|
||||
@PostMapping("/getOrganizationById")
|
||||
@ResponseBody
|
||||
public ResponseResult getOrganizationById(String id) {
|
||||
if (StrUtil.isBlank(id)) {
|
||||
return ResponseResult.error("查询失败!");
|
||||
}
|
||||
Organization Organization = organizationService.getOrganizationById(id);
|
||||
return ResponseResult.successData(Organization);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
/***********************************
|
||||
* 用途说明:设置组织是否有效
|
||||
* 参数说明
|
||||
@ -153,10 +162,12 @@ public class OrganizationController {
|
||||
LambdaQueryWrapper<Organization> queryWrapper = new LambdaQueryWrapper<>();
|
||||
List<Organization> list = organizationService.list(queryWrapper.eq(Organization::getParentid, orgId));
|
||||
List<String> ids = list.stream().map(Organization::getId).collect(Collectors.toList());
|
||||
//删除当前id及其子节点
|
||||
boolean isOk = organizationService.removeById(orgId);
|
||||
if (!isOk) {
|
||||
continue;
|
||||
}
|
||||
//删除节点
|
||||
for (String oid : ids) {
|
||||
organizationService.removeById(oid);
|
||||
}
|
||||
|
@ -7,6 +7,7 @@ import io.gisbi.application.system.service.IRoleService;
|
||||
import io.gisbi.application.system.service.IUserService;
|
||||
import io.gisbi.config.ResponseResult;
|
||||
import io.gisbi.utils.AuthUtils;
|
||||
import io.micrometer.common.util.StringUtils;
|
||||
import jakarta.annotation.Resource;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
@ -32,32 +33,6 @@ public class RoleController {
|
||||
@Resource
|
||||
private IUserService userService;
|
||||
|
||||
|
||||
/***********************************
|
||||
* 用途说明:查询所有角色
|
||||
* 参数说明
|
||||
* rolename 角色名称
|
||||
* 返回值说明: 查询都有角色
|
||||
***********************************/
|
||||
@PostMapping("/listRole")
|
||||
@ResponseBody
|
||||
public List<Role> listRole(String appId, String rolename) {
|
||||
return roleService.listRole(appId,rolename);
|
||||
}
|
||||
|
||||
/***********************************
|
||||
* 用途说明:根据Id获取当个角色
|
||||
* 参数说明
|
||||
* id 角色表id
|
||||
* 返回值说明: 根据id查询到角色详情
|
||||
***********************************/
|
||||
@PostMapping("/getRoleById")
|
||||
@ResponseBody
|
||||
public ResponseResult getRoleById(String id) {
|
||||
Role role = roleService.getById(id);
|
||||
return ResponseResult.successData(role);
|
||||
}
|
||||
|
||||
/***********************************
|
||||
* 用途说明:新增角色
|
||||
* 参数说明
|
||||
@ -100,6 +75,33 @@ public class RoleController {
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/***********************************
|
||||
* 用途说明:查询所有角色
|
||||
* 参数说明
|
||||
* rolename 角色名称
|
||||
* 返回值说明: 查询都有角色
|
||||
***********************************/
|
||||
@PostMapping("/listRole")
|
||||
@ResponseBody
|
||||
public List<Role> listRole(String appId, String rolename) {
|
||||
return roleService.listRole(appId,rolename);
|
||||
}
|
||||
|
||||
/***********************************
|
||||
* 用途说明:根据Id获取单个角色
|
||||
* 参数说明
|
||||
* id 角色表id
|
||||
* 返回值说明: 根据id查询到角色详情
|
||||
***********************************/
|
||||
@PostMapping("/getRoleById")
|
||||
@ResponseBody
|
||||
public ResponseResult getRoleById(String id) {
|
||||
Role role = roleService.getById(id);
|
||||
return ResponseResult.successData(role);
|
||||
}
|
||||
|
||||
|
||||
/***********************************
|
||||
* 用途说明:根据id删除角色
|
||||
* 参数说明
|
||||
@ -109,10 +111,33 @@ public class RoleController {
|
||||
@PostMapping("/deleteRoleById")
|
||||
@ResponseBody
|
||||
public ResponseResult deleteRoleById(@RequestParam String id) {
|
||||
roleService.deleteById(id);
|
||||
boolean result = roleService.deleteById(id);
|
||||
if (!result) {
|
||||
return ResponseResult.error("删除角色失败,可能角色不存在");
|
||||
}
|
||||
return ResponseResult.success();
|
||||
}
|
||||
|
||||
/***********************************
|
||||
* 用途说明:根据ID批量删除角色
|
||||
* 参数说明
|
||||
*ids 用户id集合
|
||||
* 返回值说明: 判断是否删除成功
|
||||
************************************/
|
||||
@PostMapping("/deleteRoleByIds")
|
||||
@ResponseBody
|
||||
public ResponseResult deleteRoleByIds(String ids) {
|
||||
if (StringUtils.isBlank(ids)) {
|
||||
return ResponseResult.error("参数为空");
|
||||
}
|
||||
boolean ok = roleService.deleteRoleByIds(ids);
|
||||
if (ok) {
|
||||
return ResponseResult.success();
|
||||
} else {
|
||||
return ResponseResult.error();
|
||||
}
|
||||
}
|
||||
|
||||
/***********************************
|
||||
* 用途说明:设置角色是否有效
|
||||
* 参数说明
|
||||
@ -137,6 +162,32 @@ public class RoleController {
|
||||
}
|
||||
}
|
||||
|
||||
/***********************************
|
||||
* 用途说明:角色菜单权限
|
||||
* 参数说明
|
||||
* id 角色id
|
||||
* menuIds 权限id字符串
|
||||
* 返回值说明: 是否分配成功
|
||||
***********************************/
|
||||
@PostMapping("/setMenuByRoleId")
|
||||
@ResponseBody
|
||||
public ResponseResult setMenuByRoleId(String id, String menuIds) {
|
||||
if (StrUtil.isBlank(id)) {
|
||||
return ResponseResult.error("参数为空");
|
||||
}
|
||||
if (StrUtil.isBlank(menuIds)) {
|
||||
return ResponseResult.success();
|
||||
}
|
||||
boolean ok = roleService.setMenuByRoleId(id, menuIds);
|
||||
if (ok) {
|
||||
return ResponseResult.success();
|
||||
} else {
|
||||
return ResponseResult.error();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
/***********************************
|
||||
* 用途说明:角色添加用户
|
||||
* 参数说明
|
||||
|
@ -9,10 +9,8 @@ import io.micrometer.common.util.StringUtils;
|
||||
import jakarta.annotation.Resource;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import java.sql.Timestamp;
|
||||
import java.util.Map;
|
||||
|
||||
import static org.bouncycastle.asn1.x500.style.RFC4519Style.cn;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
|
@ -2,7 +2,7 @@ package io.gisbi.application.system.mapper;
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import io.gisbi.application.system.domain.Role;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
import org.apache.ibatis.annotations.*;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@ -13,14 +13,16 @@ public interface RoleMapper extends BaseMapper<Role> {
|
||||
* 参数说明 id 角色id
|
||||
* 返回值说明: void
|
||||
***********************************/
|
||||
List<Role> getRoleByUserId(String id);
|
||||
@Select("SELECT r.id,r.rolename,r.rolecode FROM app_role_users ru INNER JOIN app_role r ON ru.roleid = r.id WHERE ru.userid = #{id}")
|
||||
List<Role> getRoleByUserId( @Param("id") String id);
|
||||
|
||||
/**********************************
|
||||
* 用途说明: 根据用户id获取角色id
|
||||
* 参数说明 userid 用户id
|
||||
* 返回值说明: void
|
||||
***********************************/
|
||||
List<String> getRoleUsers(String userid, String appId);
|
||||
@Select("SELECT roleid FROM app_role_users WHERE userid = #{userid} AND app_id = #{appId}")
|
||||
List<String> getRoleUsers(@Param("userid") String userid, @Param("appId") String appId);
|
||||
|
||||
/***********************************
|
||||
* 用途说明:根据角色id删除角色菜单关联
|
||||
@ -28,7 +30,8 @@ public interface RoleMapper extends BaseMapper<Role> {
|
||||
*id 角色id
|
||||
* 返回值说明: 是否删除成功
|
||||
***********************************/
|
||||
void deleteRoleMenus(String roleId);
|
||||
@Delete("DELETE FROM app_role_menu WHERE roleid= #{id}")
|
||||
void deleteRoleMenus( @Param("id") String id);
|
||||
|
||||
/***********************************
|
||||
* 用途说明:根据角色id删除角色用户关联
|
||||
@ -36,7 +39,8 @@ public interface RoleMapper extends BaseMapper<Role> {
|
||||
*id 角色id
|
||||
* 返回值说明: 是否删除成功
|
||||
***********************************/
|
||||
void deleteRoleUser(String roleId);
|
||||
@Delete(" DELETE FROM app_role_users WHERE roleid= #{id}")
|
||||
void deleteRoleUser( @Param("id")String id);
|
||||
|
||||
/***********************************
|
||||
* 用途说明:根据 角色id和用户id 删除 (admin除外)
|
||||
@ -45,5 +49,33 @@ public interface RoleMapper extends BaseMapper<Role> {
|
||||
* urserid 用户id
|
||||
* 返回值说明: 是否删除成功
|
||||
***********************************/
|
||||
@Delete("delete from app_role_users where userid !=(select u.id from app_user u where u.account=\"admin\") and roleid=#{roleid} and userid=#{urserid}\n")
|
||||
boolean deleteRoleUsers(String roleid, String urserid);
|
||||
|
||||
@Insert("<script>" +
|
||||
"INSERT INTO app_role_menu " +
|
||||
"<trim prefix=\"(\" suffix=\")\" suffixOverrides=\",\">" +
|
||||
" <if test=\"id != null and id != ''\">id,</if>" +
|
||||
" <if test=\"appid != null and appid != ''\">app_id,</if>" + // 字段名 app_id 对应参数 appid
|
||||
" <if test=\"roleid != null and roleid != ''\">roleid,</if>" +
|
||||
" <if test=\"menuid != null and menuid != ''\">menuid</if>" +
|
||||
"</trim>" +
|
||||
" VALUES " +
|
||||
"<trim prefix=\"(\" suffix=\")\" suffixOverrides=\",\">" +
|
||||
" <if test=\"id != null and id != ''\">#{id},</if>" +
|
||||
" <if test=\"appid != null and appid != ''\">#{appid},</if>" +
|
||||
" <if test=\"roleid != null and roleid != ''\">#{roleid},</if>" +
|
||||
" <if test=\"menuid != null and menuid != ''\">#{menuid}</if>" +
|
||||
"</trim>" +
|
||||
"</script>")
|
||||
void addRoleMenu(@Param("id") String id, @Param("appid") String appid, @Param("roleid") String roleid, @Param("menuid") String menuid);
|
||||
|
||||
/***********************************
|
||||
* 用途说明:根据菜单id删除角色菜单关联
|
||||
* 参数说明
|
||||
*id 菜单id
|
||||
* 返回值说明: 是否删除成功
|
||||
***********************************/
|
||||
@Delete("DELETE FROM app_role_menu WHERE menuid= #{id}")
|
||||
void deleteRoleMenusByMenuId(@Param("id") String id);
|
||||
}
|
||||
|
@ -3,8 +3,7 @@ package io.gisbi.application.system.mapper;
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import io.gisbi.application.system.domain.User;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
import org.apache.ibatis.annotations.*;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
@ -20,7 +19,8 @@ public interface UserMapper extends BaseMapper<User> {
|
||||
* userid 用户id
|
||||
* 返回值说明:
|
||||
************************************/
|
||||
boolean addUserRoles(@Param("id") String id, @Param("appid") String appid, @Param("roleid") String roleid,@Param("userid") String userid);
|
||||
@Insert("INSERT INTO app_role_users(id, app_id, roleid, userid) VALUES (#{id}, #{appid}, #{roleid}, #{userid})")
|
||||
boolean addUserRoles(@Param("id") String id, @Param("appid") String appid, @Param("roleid") String roleid, @Param("userid") String userid);
|
||||
|
||||
/***********************************
|
||||
* 用途说明:根据用户表id查询角色表所有角色id
|
||||
@ -28,16 +28,9 @@ public interface UserMapper extends BaseMapper<User> {
|
||||
* userid 用户id
|
||||
* 返回值说明:
|
||||
************************************/
|
||||
@Select(" SELECT roleid FROM app_role_users WHERE userid = #{userid} ")
|
||||
List<String> getRoleid(@Param("userid") String id);
|
||||
|
||||
/***********************************
|
||||
* 用途说明:根据用户id删除所分配的不包含角色
|
||||
* 参数说明
|
||||
* userid 用户id
|
||||
* roleids 多个角色id
|
||||
* 返回值说明:
|
||||
************************************/
|
||||
void delInRoleUsersByUserid(@Param("userid") String userid,@Param("roleids")String[] roleids);
|
||||
|
||||
/***********************************
|
||||
* 用途说明:根据用户id删除所分配的角色
|
||||
@ -45,6 +38,7 @@ public interface UserMapper extends BaseMapper<User> {
|
||||
* userid 用户id
|
||||
* 返回值说明:
|
||||
************************************/
|
||||
@Delete("delete from app_role_users where userid=#{userid}")
|
||||
boolean delRoleUsersByUserid( @Param("userid") String id);
|
||||
|
||||
/***********************************
|
||||
@ -55,7 +49,30 @@ public interface UserMapper extends BaseMapper<User> {
|
||||
* page 分页条件
|
||||
* 返回值说明:
|
||||
************************************/
|
||||
Page<Map<String, Object>> queryUsers(String orgid,String appId, String nickname, Page<User> page);
|
||||
@Select("<script>" +
|
||||
"SELECT DISTINCT\n" +
|
||||
" u.id, u.usertype, u.username, u.nickname,\n" +
|
||||
" u.email, u.phone, u.avatar, u.orgid,\n" +
|
||||
" u.status, u.lastmodifier, u.lastmodifydate\n" +
|
||||
"FROM app_user u\n" +
|
||||
"WHERE u.usertype != 0\n" +
|
||||
"<if test='orgid != null'>\n" +
|
||||
" AND u.orgid = #{orgid}\n" +
|
||||
"</if>\n" +
|
||||
"<if test='appId != null'>\n" +
|
||||
" AND u.app_id = #{appId}\n" +
|
||||
"</if>\n" +
|
||||
"<if test='nickname != null'>\n" +
|
||||
" AND u.nickname LIKE CONCAT('%', #{nickname}, '%')\n" +
|
||||
"</if>\n" +
|
||||
"ORDER BY u.lastmodifydate DESC" +
|
||||
"</script>")
|
||||
Page<Map<String, Object>> queryUsers(
|
||||
@Param("orgid") String orgid,
|
||||
@Param("appId") String appId,
|
||||
@Param("nickname") String nickname,
|
||||
Page<?> page
|
||||
);
|
||||
|
||||
|
||||
/***********************************
|
||||
@ -64,6 +81,10 @@ public interface UserMapper extends BaseMapper<User> {
|
||||
* idList 用户id集合
|
||||
* 返回值说明:
|
||||
************************************/
|
||||
@Delete("<script>" +
|
||||
"DELETE FROM app_role_users WHERE userid IN " +
|
||||
"<foreach collection='idList' item='id' open='(' separator=',' close=')'>#{id}</foreach>" +
|
||||
"</script>")
|
||||
void delRoleUsersByUserIds(List<String> idList);
|
||||
|
||||
/***********************************
|
||||
@ -73,6 +94,6 @@ public interface UserMapper extends BaseMapper<User> {
|
||||
* roleid 角色id
|
||||
* 返回值说明:
|
||||
************************************/
|
||||
|
||||
@Select(" select id, app_id, roleid, userid from app_role_users where roleid = #{roleid} and userid = #{userid} ")
|
||||
List<Map> getRoleUsersByid(@Param("roleid") String roleid,@Param("userid") String userid);
|
||||
}
|
||||
|
@ -0,0 +1,5 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="io.gisbi.application.system.mapper.RoleMapper">
|
||||
|
||||
</mapper>
|
@ -0,0 +1,5 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="io.gisbi.application.system.mapper.UserMapper">
|
||||
|
||||
</mapper>
|
@ -22,18 +22,9 @@ public interface IMenuService extends IService<Menu> {
|
||||
* isdisplay 是否显示
|
||||
* 返回值说明: 菜单结构树集合
|
||||
***********************************/
|
||||
List<Map<String, Object>> getMenuButtonTree(String appId, String name, String isdisplay);
|
||||
|
||||
/***********************************
|
||||
* 用途说明:获取菜单结构树(不含按钮)
|
||||
* 参数说明
|
||||
* appId 应用ID 关联应用系统
|
||||
* name 名称
|
||||
* isdisplay 是否显示
|
||||
* 返回值说明: 菜单结构树集合
|
||||
***********************************/
|
||||
List<Map<String, Object>> getMenuTree(String appId, String name, String isdisplay);
|
||||
|
||||
|
||||
/***********************************
|
||||
* 用途说明:新增菜单及按钮
|
||||
* 参数说明
|
||||
@ -48,5 +39,5 @@ public interface IMenuService extends IService<Menu> {
|
||||
* id 删除列的id
|
||||
* 返回值说明: 是否删除成功
|
||||
***********************************/
|
||||
boolean deleteById(String id);
|
||||
boolean deleteMenuById(String id);
|
||||
}
|
||||
|
@ -18,14 +18,19 @@ public interface IOrganizationService extends IService<Organization> {
|
||||
/***********************************
|
||||
* 用途说明:获取企业列表
|
||||
* 参数说明
|
||||
* id 企业id
|
||||
* orgName 部门名称
|
||||
* orgtype 组织类型:01-公司 02-部门
|
||||
* parentid 上级ID
|
||||
* 返回值说明: 企业列表集合
|
||||
***********************************/
|
||||
List<Map<String, Object>> getOrganizations(String appId, String orgtype, String parentid, String orgname);
|
||||
|
||||
/***********************************
|
||||
* 用途说明:根据企业ID查询部门信息
|
||||
* 用途说明:根据ID查询信息
|
||||
* 参数说明
|
||||
* id 企业id
|
||||
* id 企业id
|
||||
* orgName 部门名称
|
||||
* 返回值说明: 系统部门框架对象
|
||||
***********************************/
|
||||
Organization getOrganizationById(String id);
|
||||
|
@ -38,7 +38,13 @@ public interface IRoleService extends IService<Role> {
|
||||
***********************************/
|
||||
List<Role> listRole(String appId, String rolename);
|
||||
|
||||
void deleteById(String id);
|
||||
/***********************************
|
||||
* 用途说明:根据id删除角色
|
||||
* 参数说明
|
||||
* id 角色id
|
||||
* 返回值说明: 是否删除成功
|
||||
***********************************/
|
||||
Boolean deleteById(String id);
|
||||
|
||||
/***********************************
|
||||
* 用途说明:删除角色用户
|
||||
@ -47,4 +53,21 @@ public interface IRoleService extends IService<Role> {
|
||||
* 返回值说明: 是否新增成功
|
||||
***********************************/
|
||||
boolean deleteRoleUsers(String roleid, String userids);
|
||||
|
||||
/***********************************
|
||||
* 用途说明:根据ID批量删除角色
|
||||
* 参数说明
|
||||
*ids 用户id集合
|
||||
* 返回值说明: 判断是否删除成功
|
||||
************************************/
|
||||
boolean deleteRoleByIds(String ids);
|
||||
|
||||
/***********************************
|
||||
* 用途说明:角色菜单权限
|
||||
* 参数说明
|
||||
* id 角色id
|
||||
* menuIds 权限id字符串
|
||||
* 返回值说明: 是否分配成功
|
||||
***********************************/
|
||||
boolean setMenuByRoleId(String id, String menuIds);
|
||||
}
|
||||
|
@ -5,15 +5,14 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import io.gisbi.application.system.domain.Menu;
|
||||
import io.gisbi.application.system.mapper.MenuMapper;
|
||||
import io.gisbi.application.system.mapper.RoleMapper;
|
||||
import io.gisbi.application.system.service.IMenuService;
|
||||
import io.gisbi.utils.AuthUtils;
|
||||
import io.micrometer.common.util.StringUtils;
|
||||
import jakarta.annotation.Resource;
|
||||
import org.springframework.beans.factory.annotation.Value;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import java.io.File;
|
||||
import java.sql.Timestamp;
|
||||
import java.text.DecimalFormat;
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.ArrayList;
|
||||
@ -34,12 +33,11 @@ public class MenuServiceImpl extends ServiceImpl<MenuMapper, Menu> implements IM
|
||||
@Resource
|
||||
private MenuMapper menuMapper;
|
||||
|
||||
//菜单图片路径
|
||||
@Value("${file-space.system}")
|
||||
private String sysetmPath;
|
||||
@Resource
|
||||
private RoleMapper roleMapper;
|
||||
|
||||
@Override
|
||||
public List<Map<String, Object>> getMenuButtonTree(String appId, String name, String isdisplay) {
|
||||
public List<Map<String, Object>> getMenuTree(String appId, String name, String isdisplay) {
|
||||
List<Map<String, Object>> listMap = null;
|
||||
//不带名称查询,返回树结构
|
||||
if (StringUtils.isEmpty(name)) {
|
||||
@ -61,28 +59,12 @@ public class MenuServiceImpl extends ServiceImpl<MenuMapper, Menu> implements IM
|
||||
return listMap;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<Map<String, Object>> getMenuTree(String appId, String name, String isdisplay) {
|
||||
|
||||
QueryWrapper<Menu> queryWrapper = new QueryWrapper<>();
|
||||
if (StringUtils.isNotEmpty(isdisplay)) {
|
||||
queryWrapper.eq("isdisplay", isdisplay);
|
||||
} else {
|
||||
queryWrapper.eq("isdisplay", 1);
|
||||
}
|
||||
|
||||
//根据系统 ,类型不为2 显示,序号 正序排序
|
||||
queryWrapper.eq("parentid", "0").eq("systemcode", appId).ne(
|
||||
"type", "02").orderByAsc("orderno");
|
||||
List<Map<String, Object>> listMap = this.listMaps(queryWrapper);
|
||||
for (int i = 0; i < listMap.size(); i++) {
|
||||
List<Map<String, Object>> childList = child(listMap.get(i).get(
|
||||
"id").toString(), appId, name, isdisplay, "02");//查询下一子集
|
||||
listMap.get(i).put("children", childList); //添加新列 子集
|
||||
}
|
||||
return listMap;
|
||||
}
|
||||
|
||||
/***********************************
|
||||
* 用途说明:新增菜单及按钮
|
||||
* 参数说明
|
||||
* sysMenu 菜单或按钮表对象
|
||||
* 返回值说明: 是否添加成功提示
|
||||
***********************************/
|
||||
@Override
|
||||
public boolean addMenu(Menu menu) {
|
||||
String parentId = menu.getParentid();
|
||||
@ -151,38 +133,50 @@ public class MenuServiceImpl extends ServiceImpl<MenuMapper, Menu> implements IM
|
||||
return this.save(menu);
|
||||
}
|
||||
|
||||
|
||||
/***********************************
|
||||
* 用途说明:根据id删除菜单或按钮
|
||||
* 参数说明
|
||||
* id 删除列的id
|
||||
* 返回值说明: 是否删除成功
|
||||
***********************************/
|
||||
@Override
|
||||
public boolean deleteById(String id) {
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public boolean deleteMenuById(String id) {
|
||||
//根据id查询
|
||||
Menu menu = this.getById(id);
|
||||
//图片路径
|
||||
String iconname = sysetmPath + "menu" + File.separator + menu.getIcon();
|
||||
//删除图标
|
||||
new File(iconname).delete();
|
||||
//根据id删除
|
||||
|
||||
// 根据id删除主菜单
|
||||
boolean isOk = this.removeById(id);
|
||||
//删除成功同步更新表数据
|
||||
if (isOk) {
|
||||
//1 创建list集合,用于封装所有删除目录或菜单id值
|
||||
List<String> idList = new ArrayList<>();
|
||||
this.selectPermissionChildById(id, idList);
|
||||
if (idList.size() > 0) {
|
||||
menuMapper.deleteBatchIds(idList);
|
||||
}
|
||||
QueryWrapper<Menu> queryWrapper = new QueryWrapper<>();
|
||||
//根据上级id 查询 根据 orderno 正序排序
|
||||
queryWrapper.eq("parentid", menu.getParentid()).orderByAsc(
|
||||
"orderno");
|
||||
List<Menu> list = this.list(queryWrapper);
|
||||
for (int i = 0; i < list.size(); i++) {
|
||||
Menu menuData = list.get(i);
|
||||
//更新序列号
|
||||
menuData.setOrderno(i + 1);
|
||||
}
|
||||
//更新表数据
|
||||
this.updateBatchById(list);
|
||||
if (!isOk) {
|
||||
return false;
|
||||
}
|
||||
// 通过ID 删除角色菜单关联信息
|
||||
roleMapper.deleteRoleMenusByMenuId(id);
|
||||
|
||||
//1 创建list集合,用于封装所有删除目录或菜单id值 如果下面有子项 都删除
|
||||
List<String> idList = new ArrayList<>();
|
||||
this.selectPermissionChildById(id, idList);
|
||||
|
||||
if (!idList.isEmpty()) {
|
||||
menuMapper.deleteBatchIds(idList);
|
||||
//通过ID集合 删除角色菜单关联信息
|
||||
for (String menuId : idList) {
|
||||
roleMapper.deleteRoleMenusByMenuId(menuId);
|
||||
}
|
||||
}
|
||||
QueryWrapper<Menu> queryWrapper = new QueryWrapper<>();
|
||||
//根据上级id 查询 根据 orderno 正序排序
|
||||
queryWrapper.eq("parentid", menu.getParentid()).orderByAsc(
|
||||
"orderno");
|
||||
List<Menu> list = this.list(queryWrapper);
|
||||
for (int i = 0; i < list.size(); i++) {
|
||||
Menu menuData = list.get(i);
|
||||
//更新序列号
|
||||
menuData.setOrderno(i + 1);
|
||||
}
|
||||
//更新表数据
|
||||
this.updateBatchById(list);
|
||||
|
||||
return isOk;
|
||||
}
|
||||
|
||||
@ -204,12 +198,12 @@ public class MenuServiceImpl extends ServiceImpl<MenuMapper, Menu> implements IM
|
||||
|
||||
|
||||
/***********************************
|
||||
* 用途说明:查询菜单及按钮树状图
|
||||
* 用途说明:查询菜单
|
||||
* 参数说明
|
||||
* parentid 上级id
|
||||
*systemcode 系统
|
||||
* isdisplay 是否显示
|
||||
* type 按钮
|
||||
* type 菜单类型
|
||||
* 返回值说明: 菜单结构树集合
|
||||
***********************************/
|
||||
private List<Map<String, Object>> child(String parentid,
|
||||
|
@ -1,11 +1,9 @@
|
||||
package io.gisbi.application.system.service.impl;
|
||||
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.github.xiaoymin.knife4j.core.util.StrUtil;
|
||||
import io.gisbi.application.system.domain.Organization;
|
||||
import io.gisbi.application.system.domain.User;
|
||||
import io.gisbi.application.system.mapper.OrganizationMapper;
|
||||
import io.gisbi.application.system.service.IOrganizationService;
|
||||
import io.gisbi.application.system.service.IUserService;
|
||||
@ -43,6 +41,10 @@ public class OrganizationServiceImpl extends ServiceImpl<OrganizationMapper, Org
|
||||
/***********************************
|
||||
* 用途说明:获取企业列表
|
||||
* 参数说明
|
||||
* id 企业id
|
||||
* orgName 部门名称
|
||||
* orgtype 组织类型:01-公司 02-部门
|
||||
* parentid 上级ID
|
||||
* 返回值说明: 企业列表集合
|
||||
***********************************/
|
||||
@Override
|
||||
@ -87,8 +89,8 @@ public class OrganizationServiceImpl extends ServiceImpl<OrganizationMapper, Org
|
||||
|
||||
LambdaQueryWrapper<Organization> queryWrapper = new LambdaQueryWrapper<>();
|
||||
//根据上级id 查询
|
||||
queryWrapper.eq(StringUtils.isNotBlank(parentid), Organization::getParentid, parentid);
|
||||
queryWrapper.eq(StringUtils.isNotBlank(appId), Organization::getAppId, appId);
|
||||
queryWrapper.eq(Organization::getParentid, parentid);
|
||||
queryWrapper.eq(Organization::getAppId, appId);
|
||||
//根据部门名称查询
|
||||
queryWrapper.like(StringUtils.isNotBlank(orgname), Organization::getOrgname, orgname);
|
||||
|
||||
@ -107,9 +109,10 @@ public class OrganizationServiceImpl extends ServiceImpl<OrganizationMapper, Org
|
||||
}
|
||||
|
||||
/***********************************
|
||||
* 用途说明:根据企业ID查询部门信息
|
||||
* 用途说明:根据ID查询信息
|
||||
* 参数说明
|
||||
* id 企业id
|
||||
* id 企业id
|
||||
* orgName 部门名称
|
||||
* 返回值说明: 系统部门框架对象
|
||||
***********************************/
|
||||
@Override
|
||||
|
@ -1,21 +1,27 @@
|
||||
package io.gisbi.application.system.service.impl;
|
||||
|
||||
import cn.hutool.core.text.CharSequenceUtil;
|
||||
import cn.hutool.core.util.IdUtil;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import io.gisbi.application.system.domain.Role;
|
||||
import io.gisbi.application.system.domain.User;
|
||||
import io.gisbi.application.system.mapper.RoleMapper;
|
||||
import io.gisbi.application.system.service.IRoleService;
|
||||
import io.gisbi.utils.AuthUtils;
|
||||
import io.netty.channel.ChannelInboundHandlerAdapter;
|
||||
import jakarta.annotation.Resource;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import java.sql.Timestamp;
|
||||
import java.text.DecimalFormat;
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
@ -28,6 +34,9 @@ import java.util.List;
|
||||
@Service
|
||||
public class RoleServiceImpl extends ServiceImpl<RoleMapper, Role> implements IRoleService {
|
||||
|
||||
private static final Logger LOGGER = LoggerFactory.getLogger(ChannelInboundHandlerAdapter.class);
|
||||
|
||||
|
||||
@Resource
|
||||
private RoleMapper roleMapper;
|
||||
|
||||
@ -104,13 +113,87 @@ public class RoleServiceImpl extends ServiceImpl<RoleMapper, Role> implements IR
|
||||
* 返回值说明: 是否删除成功
|
||||
***********************************/
|
||||
@Override
|
||||
public void deleteById(String id) {
|
||||
//根据id删除 角色
|
||||
boolean isOk = this.removeById(id);
|
||||
//删除角色菜单关联
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public Boolean deleteById(String id) {
|
||||
|
||||
try {
|
||||
// 根据id删除角色
|
||||
boolean isOk = this.removeById(id);
|
||||
if (!isOk) {
|
||||
return false;
|
||||
}
|
||||
// 删除角色菜单关联
|
||||
roleMapper.deleteRoleMenus(id);
|
||||
|
||||
// 删除角色用户关联
|
||||
roleMapper.deleteRoleUser(id);
|
||||
|
||||
return true;
|
||||
} catch (Exception e) {
|
||||
// 可结合日志记录异常信息
|
||||
LOGGER.error("删除角色失败,ID: {}", id, e);
|
||||
throw e; // 抛出异常以便事务回滚
|
||||
}
|
||||
}
|
||||
/***********************************
|
||||
* 用途说明:根据ID批量删除角色
|
||||
* 参数说明
|
||||
*ids 用户id集合
|
||||
* 返回值说明: 判断是否删除成功
|
||||
************************************/
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public boolean deleteRoleByIds(String ids) {
|
||||
if (StringUtils.isBlank(ids)) {
|
||||
// 参数为空,直接返回失败
|
||||
return false;
|
||||
}
|
||||
final String SEPARATOR = ",";
|
||||
List<String> idList = Arrays.asList(ids.split(SEPARATOR));
|
||||
boolean allSuccess = true;
|
||||
|
||||
for (String id : idList) {
|
||||
if (StringUtils.isBlank(id)) {
|
||||
// 跳过非法空ID
|
||||
continue;
|
||||
}
|
||||
|
||||
// 删除角色信息
|
||||
if (!this.removeById(id)) {
|
||||
allSuccess = false;
|
||||
break;
|
||||
}
|
||||
|
||||
// 删除角色菜单关联
|
||||
roleMapper.deleteRoleMenus(id);
|
||||
|
||||
// 删除角色用户关联
|
||||
roleMapper.deleteRoleUser(id);
|
||||
}
|
||||
|
||||
return allSuccess;
|
||||
}
|
||||
|
||||
/***********************************
|
||||
* 用途说明:角色菜单权限
|
||||
* 参数说明
|
||||
* id 角色id
|
||||
* menuIds 权限id字符串
|
||||
* 返回值说明: 是否分配成功
|
||||
***********************************/
|
||||
@Override
|
||||
public boolean setMenuByRoleId(String id, String menuIds) {
|
||||
Role role = roleMapper.selectById(id);
|
||||
|
||||
// 删除角色所对应的权限
|
||||
roleMapper.deleteRoleMenus(id);
|
||||
//删除角色用户关联
|
||||
roleMapper.deleteRoleUser(id);
|
||||
// 重新赋予权限
|
||||
String[] ids = menuIds.split(",");
|
||||
for (String menuId : ids) {
|
||||
String uuid = IdUtil.fastSimpleUUID();
|
||||
roleMapper.addRoleMenu(uuid, role.getAppId(), id, menuId);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
/***********************************
|
||||
@ -130,4 +213,6 @@ public class RoleServiceImpl extends ServiceImpl<RoleMapper, Role> implements IR
|
||||
}
|
||||
return ok;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
@ -10,7 +10,6 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import io.gisbi.application.system.domain.Role;
|
||||
import io.gisbi.application.system.domain.User;
|
||||
import io.gisbi.application.system.mapper.OrganizationMapper;
|
||||
import io.gisbi.application.system.mapper.RoleMapper;
|
||||
import io.gisbi.application.system.mapper.UserMapper;
|
||||
import io.gisbi.application.system.service.IUserService;
|
||||
@ -23,8 +22,6 @@ import org.slf4j.LoggerFactory;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import java.io.File;
|
||||
import java.sql.Timestamp;
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.*;
|
||||
import java.util.stream.Collectors;
|
||||
@ -124,22 +121,20 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements IU
|
||||
//修改用户信息
|
||||
boolean ok = this.updateById(user);
|
||||
if (ok) {
|
||||
//判断角色id是否为空 如果不为空 先删除 后增加 如果为空删除用户下所有角色信息
|
||||
if (StringUtils.isNotEmpty(roleids)) {
|
||||
String[] roles = roleids.split(",");
|
||||
Set<String> roleSet = new HashSet<>(Arrays.asList(roles));
|
||||
List<String> existingRoles = userMapper.getRoleid(user.getId());
|
||||
|
||||
//首先根绝用户ID,删除用户角色关联表中的数据
|
||||
ok = ok && userMapper.delRoleUsersByUserid(user.getId());
|
||||
|
||||
// 添加新角色
|
||||
for (String role : roles) {
|
||||
if (!existingRoles.contains(role)) {
|
||||
//系统生成id
|
||||
String id = IdUtil.fastSimpleUUID();
|
||||
ok = ok && userMapper.addUserRoles(id, user.getAppId(), role, user.getId());
|
||||
}
|
||||
//系统生成id
|
||||
String id = IdUtil.fastSimpleUUID();
|
||||
ok = ok && userMapper.addUserRoles(id, user.getAppId(), role, user.getId());
|
||||
}
|
||||
|
||||
// 删除不在 roleids 中的角色
|
||||
userMapper.delInRoleUsersByUserid(user.getId(), roles);
|
||||
} else {
|
||||
// 删除所有关联角色
|
||||
ok = ok && userMapper.delRoleUsersByUserid(user.getId());
|
||||
@ -183,7 +178,7 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements IU
|
||||
}
|
||||
|
||||
List<Map<String, Object>> list = new ArrayList<>(records.size());
|
||||
|
||||
//根据用户ID获取对应的角色信息
|
||||
for (Map<String, Object> record : records) {
|
||||
|
||||
Object idObj = record.get("id");
|
||||
@ -218,23 +213,17 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements IU
|
||||
public Boolean deleteUserById(String id) {
|
||||
//根据id查询
|
||||
User user = this.getById(id);
|
||||
//账号头像存储地址
|
||||
//String imgName = systempath + File.separator + "user" + File.separator + user.getAvatar();
|
||||
String imgName = File.separator + "user" + File.separator + user.getAvatar();
|
||||
//如果是管理员不能删除
|
||||
if ("admin".equals(user.getUsername())) {
|
||||
return false;
|
||||
} else {
|
||||
//删除用户及对应的橘色信息
|
||||
boolean isOk = this.removeById(id);
|
||||
//判断是否删除成功
|
||||
if (isOk) {
|
||||
//根据用户id 删除该用户角色关联
|
||||
userMapper.delRoleUsersByUserid(id);
|
||||
//判断是否存在 账号头像 存在删除
|
||||
if (StringUtils.isNotEmpty(user.getAvatar())) {
|
||||
// FileUtil.del(imgName);
|
||||
}
|
||||
return false;
|
||||
return true;
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
@ -248,6 +237,7 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements IU
|
||||
* 返回值说明: 判断是否删除成功
|
||||
************************************/
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public boolean deleteUserByIds(String ids) {
|
||||
|
||||
List<String> idList = Arrays.asList(ids.split(","));
|
||||
@ -260,21 +250,13 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements IU
|
||||
if (names.contains("admin")) {
|
||||
return false;
|
||||
} else {
|
||||
//批量删除用户
|
||||
int result = userMapper.deleteBatchIds(idList);
|
||||
if (result <= 0) {
|
||||
return false;
|
||||
}
|
||||
// 根据ID删除用户与角色的关联信息
|
||||
userMapper.delRoleUsersByUserIds(idList);
|
||||
List<String> avatars =
|
||||
sysUsers.stream().map(User::getAvatar).collect(Collectors.toList());
|
||||
if (avatars.size() > 0) {
|
||||
for (String avatar : avatars) {
|
||||
//账号头像存储地址
|
||||
// String imgName =systempath + File.separator + "user" + File.separator + avatar;
|
||||
// FileUtil.del(imgName);
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
}
|
||||
@ -310,10 +292,6 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements IU
|
||||
@Override
|
||||
public boolean setStatus(String id, String status) {
|
||||
boolean isOk = false;
|
||||
// //根据当前用户id 查询角色表的级别 currentUser.getUser() 获取当前用户id
|
||||
// String level = userMapper.getMaxLevel(id);
|
||||
// //判断当前用户级别 管理员及以上权限
|
||||
// if (Integer.parseInt(level) <= 2) {
|
||||
UpdateWrapper<User> updateWrapper = new UpdateWrapper<>();
|
||||
//根据id修改用户状态,最近修改人,最近修改时间
|
||||
updateWrapper.eq("id", id)
|
||||
@ -322,10 +300,11 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements IU
|
||||
.set("lastmodifier", AuthUtils.getUser().getUserId().toString());
|
||||
//是否修改成功
|
||||
isOk = this.update(updateWrapper);
|
||||
//}
|
||||
return isOk;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/***********************************
|
||||
* 用途说明:角色添加用户
|
||||
* 参数说明
|
||||
@ -334,7 +313,7 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements IU
|
||||
* 返回值说明: 是否新增成功
|
||||
***********************************/
|
||||
@Override
|
||||
public boolean addUserRole(String roleid, String userid) {
|
||||
public boolean addUserRoles(String roleid, String userid) {
|
||||
boolean isOk = true;
|
||||
if (StringUtils.isEmpty(roleid) || StringUtils.isEmpty(userid)) {
|
||||
return false;
|
||||
@ -359,7 +338,7 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements IU
|
||||
* account 登录名称
|
||||
* 返回值说明: 重复返回 false 否则返回 true
|
||||
************************************/
|
||||
private boolean isExistAccount(String appid,String username) {
|
||||
private boolean isExistAccount(String appid, String username) {
|
||||
QueryWrapper<User> queryWrapper = new QueryWrapper<>();
|
||||
if (this.list(queryWrapper.eq("app_id", appid).eq("username", username)).size() > 0) {
|
||||
//判断 查询登录账号 结果集是否为null 重复返回 false 否则返回 tree
|
||||
|
@ -1,39 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="io.gisbi.application.system.mapper.RoleMapper">
|
||||
|
||||
<!--根据用户id获取角色信息-->
|
||||
|
||||
<select id="getRoleByUserId">
|
||||
SELECT r.id,
|
||||
r.rolename,
|
||||
r.rolecode
|
||||
FROM app_role_users ru
|
||||
INNER JOIN app_role r ON ru.roleid = r.id
|
||||
WHERE ru.userid = #{id}
|
||||
</select>
|
||||
|
||||
|
||||
<!--根据用户id获取角色id-->
|
||||
<select id="getRoleUsers" resultType="java.lang.String">
|
||||
SELECT roleid
|
||||
FROM app_role_users
|
||||
WHERE userid = #{userid}
|
||||
AND app_id = #{appId}
|
||||
</select>
|
||||
|
||||
<!--根据角色ID删除菜单与角色关联信息-->
|
||||
<delete id="deleteRoleMenus">
|
||||
DELETE FROM app_role_menu WHERE roleid= #{id}
|
||||
</delete>
|
||||
|
||||
<!--根据角色ID删除用户与角色关联信息-->
|
||||
<delete id="deleteRoleUser">
|
||||
DELETE FROM app_role_users WHERE roleid= #{id}
|
||||
</delete>
|
||||
|
||||
<!--根据 角色id和用户id 删除系统角色用户对照 -->
|
||||
<delete id="deleteRoleUsers">
|
||||
delete from app_role_users where userid !=(select u.id from app_user u where u.account="admin") and roleid=#{roleid} and userid=#{urserid}
|
||||
</delete>
|
||||
</mapper>
|
@ -1,84 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="io.gisbi.application.system.mapper.UserMapper">
|
||||
|
||||
|
||||
<!--用户分配角色 系统角色用户对照新增数据-->
|
||||
<insert id="addUserRoles">
|
||||
INSERT INTO app_role_users(id, app_id, roleid, userid)
|
||||
VALUES (#{id}, #{appid}, #{roleid}, #{userid});
|
||||
</insert>
|
||||
|
||||
<!--根据用户表id查询角色表所有角色id-->
|
||||
<select id="getRoleid" resultType="String">
|
||||
SELECT roleid
|
||||
FROM app_role_users
|
||||
WHERE userid = #{userid}
|
||||
</select>
|
||||
|
||||
<!--根据用户id删除所分配的不包含角色-->
|
||||
<delete id="delInRoleUsersByUserid">
|
||||
delete from app_role_users
|
||||
where
|
||||
userid=#{userid}
|
||||
and roleid not in
|
||||
<foreach collection="roleids" item="roleids" open="(" separator=","
|
||||
close=")">
|
||||
#{roleids}
|
||||
</foreach>
|
||||
</delete>
|
||||
|
||||
<!--根据用户id删除所分配的角色-->
|
||||
<delete id="delRoleUsersByUserid">
|
||||
delete from sys_role_users where userid=#{userid}
|
||||
</delete>
|
||||
|
||||
<!--根据条件分页查询用户信息-->
|
||||
<select id="queryUsers" resultType="java.util.Map">
|
||||
SELECT DISTINCT
|
||||
u.id,
|
||||
u.usertype,
|
||||
u.username,
|
||||
u.nickname,
|
||||
u.email,
|
||||
u.phone,
|
||||
u.avatar,
|
||||
u.orgid,
|
||||
u.status,
|
||||
u.lastmodifier,
|
||||
u.lastmodifydate
|
||||
FROM
|
||||
app_user u
|
||||
WHERE
|
||||
1 = 1
|
||||
AND u.usertype != 0
|
||||
<if test="orgid != null">
|
||||
AND u.orgid = #{orgid}
|
||||
</if>
|
||||
<if test="appId != null">
|
||||
AND u.app_id = #{appId}
|
||||
</if>
|
||||
<if test="nickname != null">
|
||||
AND u.nickname LIKE CONCAT('%',#{nickname},'%')
|
||||
</if>
|
||||
ORDER BY
|
||||
u.lastmodifydate DESC
|
||||
</select>
|
||||
|
||||
<!--根据ID删除用户与角色的关联信息-->
|
||||
<delete id="delRoleUsersByUserIds">
|
||||
DELETE FROM app_role_users WHERE userid IN
|
||||
<foreach collection="idList" item="id" open="(" separator=","
|
||||
close=")">
|
||||
#{id}
|
||||
</foreach>
|
||||
</delete>
|
||||
|
||||
<!--根据用户id 和角色id 查询 系统角色用户对照表-->
|
||||
<select id="getRoleUsersByid" resultType="java.util.Map">
|
||||
select id, app_id, roleid, userid
|
||||
from app_role_users
|
||||
where roleid = #{roleid}
|
||||
and userid = #{userid}
|
||||
</select>
|
||||
</mapper>
|
Loading…
Reference in New Issue
Block a user