From 39e5e4c4c5c6cef6900cda57f6d2ef8b0395cd75 Mon Sep 17 00:00:00 2001 From: root <8964602+zxylbj@user.noreply.gitee.com> Date: Tue, 29 Jun 2021 16:34:02 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BA=BA=E5=91=98=E9=85=8D=E7=BD=AE=E6=9C=BA?= =?UTF-8?q?=E6=9E=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/resources/application-dev.properties | 4 +- .../sarMenu/controller/SarMenuController.java | 30 ++++++- .../adc/da/slrs/sarMenu/entity/SarMenu.java | 13 ++- .../slrs/sarMenu/service/ISarMenuService.java | 27 ++++++ .../service/impl/SarMenuServiceImpl.java | 88 +++++++++++++++++++ .../controller/TsPositionController.java | 12 +++ .../slrs/sarPosition/dao/TsPositionDao.java | 7 ++ .../slrs/sarPosition/entity/TsPosition.java | 10 +++ .../service/ITsPositionService.java | 14 +++ .../service/impl/TsPositionServiceImpl.java | 42 +++++++-- .../sarRole/controller/TsRoleController.java | 8 ++ .../adc/da/slrs/sarRole/dao/TsRoleDao.java | 3 + .../slrs/sarRole/service/ITsRoleService.java | 7 ++ .../service/impl/TsRoleServiceImpl.java | 23 ++++- .../sarUser/controller/TsUserController.java | 16 +++- .../adc/da/slrs/sarUser/dao/TsUserDao.java | 31 +++++++ .../adc/da/slrs/sarUser/entity/TsUser.java | 8 ++ .../slrs/sarUser/entity/UserPositionVO.java | 14 +++ .../slrs/sarUser/service/ITsUserService.java | 8 ++ .../service/impl/TsUserServiceImpl.java | 37 +++++++- .../mapper/sarPosition/TsPositionMapper.xml | 26 ++++++ .../mybatis/mapper/sarUser/TsUserMapper.xml | 34 +++++++ 22 files changed, 439 insertions(+), 23 deletions(-) create mode 100644 adc-da-slrs/src/main/java/com/adc/da/slrs/sarUser/entity/UserPositionVO.java diff --git a/adc-da-main/src/main/resources/application-dev.properties b/adc-da-main/src/main/resources/application-dev.properties index b0d8ffe2..26b9ad9b 100644 --- a/adc-da-main/src/main/resources/application-dev.properties +++ b/adc-da-main/src/main/resources/application-dev.properties @@ -3,9 +3,9 @@ # 数据库配置 #============================================= spring.datasource.driverClassName = com.mysql.cj.jdbc.Driver -spring.datasource.url = jdbc:mysql:/101.36.227.22:33050/foton_slrs_test?useUnicode=true&characterEncoding=utf8&serverTimezone=UTC&useSSL=false +spring.datasource.url = jdbc:mysql://localhost:3306/foton_slrs_test?useUnicode=true&characterEncoding=utf8&serverTimezone=UTC&useSSL=false spring.datasource.username = root -spring.datasource.password = 1q2w3e4r +spring.datasource.password = Zxy20010202 #============================================== # 应用设置 spring.application.name=FotonLAWSSystem diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarMenu/controller/SarMenuController.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarMenu/controller/SarMenuController.java index 35fab456..765bf2c4 100644 --- a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarMenu/controller/SarMenuController.java +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarMenu/controller/SarMenuController.java @@ -9,11 +9,10 @@ import com.adc.da.sys.common.SelectionResult; import com.adc.da.sys.service.IDicTypeEOService; import io.swagger.annotations.ApiOperation; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; import com.adc.da.slrs.sarMenu.entity.SarMenu; import io.swagger.annotations.Api; -import org.springframework.web.bind.annotation.RestController; import com.adc.da.base.web.BaseController; import java.util.ArrayList; @@ -78,4 +77,29 @@ public class SarMenuController extends BaseController { resultList.addAll(listDic); return Result.success(resultList); } + + @ApiOperation("查询所有菜单") + @GetMapping + public ResponseMessage> getAll(){ + List sarMenus=sarMenuEOService.getAll(); + return Result.success(sarMenus); + } + + @ApiOperation("添加菜单") + @PostMapping("/add") + public ResponseMessage addMenu(@RequestBody SarMenu sarMenu){ + return sarMenuEOService.addMenu(sarMenu); + } + + @ApiOperation("编辑菜单") + @PutMapping + public ResponseMessage updateMenu(@Validated(SarMenu.update.class) @RequestBody SarMenu sarMenu){ + return sarMenuEOService.updateMenu(sarMenu); + } + + @ApiOperation("删除菜单") + @DeleteMapping + public ResponseMessage delMenu(@RequestParam Integer menuId){ + return sarMenuEOService.delMenu(menuId); + } } diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarMenu/entity/SarMenu.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarMenu/entity/SarMenu.java index cc551c85..97433f7b 100644 --- a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarMenu/entity/SarMenu.java +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarMenu/entity/SarMenu.java @@ -4,6 +4,7 @@ import com.adc.da.base.entity.BaseEntity; import com.adc.da.utils.treetool.annotation.TreeNodeId; import com.adc.da.utils.treetool.annotation.TreeNodeName; import com.adc.da.utils.treetool.annotation.TreeNodeParentId; +import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableId; import java.time.LocalDateTime; import java.util.Date; @@ -17,6 +18,8 @@ import lombok.EqualsAndHashCode; import lombok.experimental.Accessors; import org.springframework.data.annotation.Transient; +import javax.validation.constraints.NotNull; + /** *

* @@ -30,13 +33,15 @@ import org.springframework.data.annotation.Transient; @Accessors(chain = true) @ApiModel(value="SarMenu对象", description="") public class SarMenu extends BaseEntity { + public interface update{ + } private static final long serialVersionUID = 1L; - @TreeNodeId + @NotNull(message = "id不能为空",groups = {update.class}) @ApiModelProperty(value = "主键") - @TableId("ID") + @TableId(value = "ID",type = IdType.UUID) private String id; @ApiModelProperty(value = "标准法规划分") @@ -81,6 +86,10 @@ public class SarMenu extends BaseEntity { @TableField("REMARKS") private String remarks; + @ApiModelProperty(value = "子菜单") + @TableField(exist = false) + private List children; + @TableField(exist=false) private List roleIds; diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarMenu/service/ISarMenuService.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarMenu/service/ISarMenuService.java index e2251a29..7921d379 100644 --- a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarMenu/service/ISarMenuService.java +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarMenu/service/ISarMenuService.java @@ -1,5 +1,6 @@ package com.adc.da.slrs.sarMenu.service; +import com.adc.da.http.ResponseMessage; import com.adc.da.slrs.sarMenu.entity.SarMenu; import com.baomidou.mybatisplus.extension.service.IService; @@ -31,4 +32,30 @@ public interface ISarMenuService extends IService { * @return List */ List getMenusByIds(List menuIds); + + /** + * 查询所有菜单 + */ + List getAll(); + + /** + * 添加菜单 + * @param sarMenu:菜单信息 + * @return ResponseMessage + */ + ResponseMessage addMenu(SarMenu sarMenu); + + /** + * 编辑菜单 + * @param sarMenu:菜单信息 + * @return ResponseMessage + */ + ResponseMessage updateMenu(SarMenu sarMenu); + + /** + * 删除菜单 + * @param menuId:菜单ID + * @return ResponseMessage + */ + ResponseMessage delMenu(Integer menuId); } diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarMenu/service/impl/SarMenuServiceImpl.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarMenu/service/impl/SarMenuServiceImpl.java index 334d5cfc..d407cc1c 100644 --- a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarMenu/service/impl/SarMenuServiceImpl.java +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarMenu/service/impl/SarMenuServiceImpl.java @@ -1,5 +1,7 @@ package com.adc.da.slrs.sarMenu.service.impl; +import com.adc.da.http.ResponseMessage; +import com.adc.da.http.Result; import com.adc.da.login.util.UserUtils; import com.adc.da.slrs.sarMenu.entity.SarMenu; import com.adc.da.slrs.sarMenu.dao.SarMenuDao; @@ -164,4 +166,90 @@ public class SarMenuServiceImpl extends ServiceImpl impleme menuQueryWrapper.in("id",menuIds); return dao.selectList(menuQueryWrapper); } + + /** + * 查询所有菜单 + */ + @Override + public List getAll() { + QueryWrapper sarMenuQueryWrapper=new QueryWrapper<>(); + sarMenuQueryWrapper.orderByAsc("DISPLAY_SEQ"); + sarMenuQueryWrapper.isNull("PARENT_ID"); + List sarMenus=dao.selectList(sarMenuQueryWrapper); + for(SarMenu sarMenu:sarMenus){ + sarMenu.setChildren(recursionGetChildren((sarMenu))); + } + return sarMenus; + } + + /** + * 添加菜单 + * @param sarMenu:菜单信息 + * @return ResponseMessage + */ + @Override + public ResponseMessage addMenu(SarMenu sarMenu) { + if(sarMenu.getParentId()!=null){ + SarMenu parent=dao.selectById(sarMenu.getParentId()); + if(parent==null){ + return Result.error("该父菜单不存在"); + } + } + dao.insert(sarMenu); + return Result.success(); + } + + /** + * 编辑菜单 + * @param sarMenu:菜单信息 + * @return ResponseMessage + */ + @Override + public ResponseMessage updateMenu(SarMenu sarMenu) { + SarMenu oldMenu=dao.selectById(sarMenu.getId()); + if(oldMenu==null){ + return Result.error("该菜单不存在"); + } + if(sarMenu.getParentId()!=null){ + SarMenu parent=dao.selectById(sarMenu.getParentId()); + if(parent==null){ + return Result.error("父节点不存在"); + } + } + dao.updateById(sarMenu); + return Result.success(); + } + + /** + * 删除菜单 + * @param menuId:菜单ID + * @return ResponseMessage + */ + @Override + public ResponseMessage delMenu(Integer menuId) { + QueryWrapper sarMenuQueryWrapper=new QueryWrapper<>(); + sarMenuQueryWrapper.eq("parent_id",menuId); + List children=dao.selectList(sarMenuQueryWrapper); + if(children!=null&&children.size()>0){ + return Result.error("该菜单有子节点,无法删除"); + } + dao.deleteById(menuId); + return Result.success(); + } + + /** + * 递归调用获取子节点 + * @param parent:父节点 + * @return List + */ + private List recursionGetChildren(SarMenu parent){ + QueryWrapper sarMenuQueryWrapper=new QueryWrapper<>(); + sarMenuQueryWrapper.orderByAsc("DISPLAY_SEQ"); + sarMenuQueryWrapper.eq("PARENT_ID",parent.getId()); + List children=dao.selectList(sarMenuQueryWrapper); + for(SarMenu sarMenu:children){ + sarMenu.setChildren(recursionGetChildren((sarMenu))); + } + return children; + } } diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarPosition/controller/TsPositionController.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarPosition/controller/TsPositionController.java index cf26d4df..9f08a298 100644 --- a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarPosition/controller/TsPositionController.java +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarPosition/controller/TsPositionController.java @@ -61,4 +61,16 @@ public class TsPositionController extends BaseController { List roles=tsPositionService.getRole(positionId); return Result.success(roles); } + + @ApiOperation("编辑岗位") + @PutMapping + public ResponseMessage updatePosition(@Validated(TsPosition.update.class) TsPosition tsPosition){ + return tsPositionService.updatePosition(tsPosition); + } + + @ApiOperation("删除岗位") + @DeleteMapping + public ResponseMessage deletePosition(@RequestParam String positionId){ + return tsPositionService.deletePosition(positionId); + } } diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarPosition/dao/TsPositionDao.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarPosition/dao/TsPositionDao.java index 7f56cde4..0d4fed01 100644 --- a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarPosition/dao/TsPositionDao.java +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarPosition/dao/TsPositionDao.java @@ -49,4 +49,11 @@ public interface TsPositionDao extends BaseMapper { * @return List */ List getRole(String positionId); + + /** + * 查询岗位以及绑定的角色信息 + * @param tsPosition:岗位信息 + * @return List + */ + List selectPositionAndRole(TsPosition tsPosition); } diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarPosition/entity/TsPosition.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarPosition/entity/TsPosition.java index ca677eef..f6f7bab0 100644 --- a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarPosition/entity/TsPosition.java +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarPosition/entity/TsPosition.java @@ -4,7 +4,9 @@ import com.adc.da.base.entity.BaseEntity; import java.sql.Timestamp; import java.time.LocalDateTime; +import java.util.List; +import com.adc.da.slrs.sarRole.entity.TsRole; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; @@ -33,9 +35,12 @@ import javax.validation.constraints.NotNull; public class TsPosition extends BaseEntity { public interface insert{ } + public interface update{ + } private static final long serialVersionUID = 1L; + @ApiModelProperty(value = "操作时间") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") @@ -57,10 +62,15 @@ public class TsPosition extends BaseEntity { @ApiModelProperty(value = "类型(1为导入,2为新建)") private String type; + @NotNull(message = "id不能为空",groups = {update.class}) @ApiModelProperty(value = "ID") @TableId(value = "id",type = IdType.UUID) private String id; + @ApiModelProperty(value = "绑定角色") + @TableField(exist = false) + private List roles; + @ApiModelProperty(value = "创建时间") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarPosition/service/ITsPositionService.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarPosition/service/ITsPositionService.java index ce5426da..923655ed 100644 --- a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarPosition/service/ITsPositionService.java +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarPosition/service/ITsPositionService.java @@ -45,4 +45,18 @@ public interface ITsPositionService extends IService { * @return ResponseMessage */ ResponseMessage addPosition(TsPosition tsPosition); + + /** + * 修改岗位 + * @param tsPosition:岗位信息 + * @return ResponseMessage + */ + ResponseMessage updatePosition(TsPosition tsPosition); + + /** + * 删除岗位 + * @param positionId:岗位ID + * @return ResponseMessage + */ + ResponseMessage deletePosition(String positionId); } diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarPosition/service/impl/TsPositionServiceImpl.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarPosition/service/impl/TsPositionServiceImpl.java index dad3905e..f17e5f81 100644 --- a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarPosition/service/impl/TsPositionServiceImpl.java +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarPosition/service/impl/TsPositionServiceImpl.java @@ -38,11 +38,7 @@ public class TsPositionServiceImpl extends ServiceImpl getPosition(TsPosition tsPosition) { - QueryWrapper positionQueryWrapper=new QueryWrapper<>(); - if(tsPosition.getName()!=null){ - positionQueryWrapper.like("name","%"+tsPosition.getName()+"%"); - } - return tsPositionDao.selectList(positionQueryWrapper); + return tsPositionDao.selectPositionAndRole(tsPosition); } /** @@ -98,4 +94,40 @@ public class TsPositionServiceImpl extends ServiceImpl + */ + @Override + public ResponseMessage updatePosition(TsPosition tsPosition) { + TsPosition oldPosition=tsPositionDao.selectById(tsPosition.getId()); + if(oldPosition==null){ + return Result.error("该岗位不存在"); + } + if(!oldPosition.getType().equals("2")){ + return Result.error("该岗位不可修改"); + } + tsPositionDao.updateById(tsPosition); + return Result.success(); + } + + /** + * 删除岗位 + * @param positionId:岗位ID + * @return ResponseMessage + */ + @Override + public ResponseMessage deletePosition(String positionId) { + TsPosition oldPosition=tsPositionDao.selectById(positionId); + if(oldPosition==null){ + return Result.error("该岗位不存在"); + } + if(!oldPosition.getType().equals("2")){ + return Result.error("该岗位不可修改"); + } + tsPositionDao.deleteById(positionId); + return Result.success(); + } } diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarRole/controller/TsRoleController.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarRole/controller/TsRoleController.java index c65cb8fa..aa22930a 100644 --- a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarRole/controller/TsRoleController.java +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarRole/controller/TsRoleController.java @@ -4,6 +4,7 @@ package com.adc.da.slrs.sarRole.controller; import com.adc.da.http.ResponseMessage; import com.adc.da.http.Result; import com.adc.da.login.util.UserUtils; +import com.adc.da.slrs.sarMenu.entity.SarMenu; import com.adc.da.slrs.sarRole.entity.TsRoleMenuVO; import com.adc.da.slrs.sarRole.service.ITsRoleService; import com.adc.da.sys.entity.UserEO; @@ -84,4 +85,11 @@ public class TsRoleController extends BaseController { TsRole tsRole=tsRoleService.getById(roleId); return Result.success(tsRole); } + + @ApiOperation("查询角色权限") + @GetMapping("/menu") + public ResponseMessage> getMenu(@RequestParam String roleId){ + List menuIds=tsRoleService.getMenu(roleId); + return Result.success(menuIds); + } } diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarRole/dao/TsRoleDao.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarRole/dao/TsRoleDao.java index 4023d41a..cda28f5a 100644 --- a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarRole/dao/TsRoleDao.java +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarRole/dao/TsRoleDao.java @@ -49,4 +49,7 @@ public interface TsRoleDao extends BaseMapper { */ @Delete("delete from ts_role_menu where role_id=#{roleId} and menu_id=#{menuId}") void delMenu(String roleId, String menuId); + + @Select("select menu_id from ts_role_menu where role_id=#{roleId}") + List getMenuIdByRoleId(String roleId); } diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarRole/service/ITsRoleService.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarRole/service/ITsRoleService.java index a2f17288..c06513c1 100644 --- a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarRole/service/ITsRoleService.java +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarRole/service/ITsRoleService.java @@ -57,4 +57,11 @@ public interface ITsRoleService extends IService { * @return ResponseMessage */ ResponseMessage setMenu(TsRoleMenuVO tsRoleMenuVO); + + /** + * 查询角色权限 + * @param roleId:角色ID + * @return List + */ + List getMenu(String roleId); } diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarRole/service/impl/TsRoleServiceImpl.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarRole/service/impl/TsRoleServiceImpl.java index 3837f208..476ddbaf 100644 --- a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarRole/service/impl/TsRoleServiceImpl.java +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarRole/service/impl/TsRoleServiceImpl.java @@ -2,6 +2,7 @@ package com.adc.da.slrs.sarRole.service.impl; import com.adc.da.http.ResponseMessage; import com.adc.da.http.Result; +import com.adc.da.slrs.sarMenu.dao.SarMenuDao; import com.adc.da.slrs.sarMenu.entity.SarMenu; import com.adc.da.slrs.sarMenu.service.ISarMenuService; import com.adc.da.slrs.sarRole.entity.TsRole; @@ -158,16 +159,30 @@ public class TsRoleServiceImpl extends ServiceImpl implements Map> updateMenuIds= ListUtil.difList(tsRoleMenuVO.getMenuIds(),oldMenuIds); List insertIds=updateMenuIds.get("insert"); List deleteIds=updateMenuIds.get("update"); - for(String menuId:insertIds){ - tsRoleDao.addMenu(tsRoleMenuVO.getRoleId(),menuId); + if(insertIds!=null&&insertIds.size()>1){ + for(String menuId:insertIds){ + tsRoleDao.addMenu(tsRoleMenuVO.getRoleId(),menuId); + } } - for(String menuId:deleteIds){ - tsRoleDao.delMenu(tsRoleMenuVO.getRoleId(),menuId); + if(deleteIds!=null&&deleteIds.size()>1){ + for(String menuId:deleteIds){ + tsRoleDao.delMenu(tsRoleMenuVO.getRoleId(),menuId); + } } //修改首页自定义目录 // List menus=sarMenuService.getMenusByIds(tsRoleMenuVO.getMenuIds()); return Result.success(); } + /** + * 查询角色权限 + * @param roleId:角色ID + * @return List + */ + @Override + public List getMenu(String roleId) { + return tsRoleDao.getMenuIdByRoleId(roleId); + } + } diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarUser/controller/TsUserController.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarUser/controller/TsUserController.java index 465d6f38..0d99a269 100644 --- a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarUser/controller/TsUserController.java +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarUser/controller/TsUserController.java @@ -3,18 +3,18 @@ package com.adc.da.slrs.sarUser.controller; import com.adc.da.http.ResponseMessage; import com.adc.da.http.Result; +import com.adc.da.slrs.sarUser.entity.UserPositionVO; import com.adc.da.slrs.sarUser.service.ITsUserService; import io.swagger.annotations.ApiOperation; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.validation.annotation.Validated; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.*; import com.adc.da.slrs.sarUser.entity.TsUser; import io.swagger.annotations.Api; -import org.springframework.web.bind.annotation.RestController; import com.adc.da.base.web.BaseController; +import javax.validation.Valid; + /** *

* 前端控制器 @@ -40,4 +40,12 @@ public class TsUserController extends BaseController { return tsUserService.disable(tsUser); } + @ApiOperation("配置岗位") + @PostMapping("/position") + public ResponseMessage setPosition(@Valid @RequestBody UserPositionVO userPositionVO){ + return tsUserService.setPosition(userPositionVO); + } + + + } diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarUser/dao/TsUserDao.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarUser/dao/TsUserDao.java index d3a95719..d7434d30 100644 --- a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarUser/dao/TsUserDao.java +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarUser/dao/TsUserDao.java @@ -2,6 +2,10 @@ package com.adc.da.slrs.sarUser.dao; import com.adc.da.slrs.sarUser.entity.TsUser; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.apache.ibatis.annotations.Insert; +import org.apache.ibatis.annotations.Select; + +import java.util.List; /** *

@@ -13,4 +17,31 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; */ public interface TsUserDao extends BaseMapper { + /** + * 查询用户已经绑定的岗位ID + */ + @Select("select position_id from ts_user_position where user_id=#{userId}") + List selectPositionIds(String userId); + + /** + * 添加岗位 + * @param userId:用户ID + * @param positionId:岗位ID + */ + @Insert("insert into ts_user_position (user_id,position_id) values (#{userId},#{positionId})") + void addPosition(String userId, String positionId); + + /** + * 解绑岗位 + * @param userId:用户ID + * @param positionId:岗位ID + */ + void delPosition(String userId, String positionId); + + /** + * 通过岗位ID查询用户及其岗位 + * @param institutionId:岗位ID + * @return List + */ + List getUserAndPosition(String institutionId); } diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarUser/entity/TsUser.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarUser/entity/TsUser.java index 6fc4ce3b..1a68858c 100644 --- a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarUser/entity/TsUser.java +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarUser/entity/TsUser.java @@ -2,10 +2,14 @@ package com.adc.da.slrs.sarUser.entity; import com.adc.da.base.entity.BaseEntity; import java.math.BigDecimal; + +import com.adc.da.slrs.sarPosition.entity.TsPosition; import com.baomidou.mybatisplus.annotation.TableId; import java.sql.Timestamp; import java.time.LocalDateTime; +import java.util.List; + import com.baomidou.mybatisplus.annotation.TableField; import com.fasterxml.jackson.annotation.JsonFormat; import io.swagger.annotations.ApiModel; @@ -133,5 +137,9 @@ public class TsUser extends BaseEntity { @TableField("SSO_ID") private String ssoId; + @ApiModelProperty(value = "岗位") + @TableField(exist = false) + private List positions; + } diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarUser/entity/UserPositionVO.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarUser/entity/UserPositionVO.java new file mode 100644 index 00000000..f07fbfbb --- /dev/null +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarUser/entity/UserPositionVO.java @@ -0,0 +1,14 @@ +package com.adc.da.slrs.sarUser.entity; + +import lombok.Data; + +import javax.validation.constraints.NotNull; +import java.util.List; + +@Data +public class UserPositionVO { + @NotNull(message = "userId不能为空") + private String userId; + @NotNull(message = "positionIds不能为空") + private List positionIds; +} diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarUser/service/ITsUserService.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarUser/service/ITsUserService.java index 0b806011..deb6dd93 100644 --- a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarUser/service/ITsUserService.java +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarUser/service/ITsUserService.java @@ -2,6 +2,7 @@ package com.adc.da.slrs.sarUser.service; import com.adc.da.http.ResponseMessage; import com.adc.da.slrs.sarUser.entity.TsUser; +import com.adc.da.slrs.sarUser.entity.UserPositionVO; import com.baomidou.mybatisplus.extension.service.IService; import java.util.List; @@ -30,4 +31,11 @@ public interface ITsUserService extends IService { * @return ResponseMessage */ ResponseMessage disable(TsUser tsUser); + + /** + * 配置岗位 + * @param userPositionVO :用户、岗位ID + * @return ResponseMessage + */ + ResponseMessage setPosition(UserPositionVO userPositionVO); } diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarUser/service/impl/TsUserServiceImpl.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarUser/service/impl/TsUserServiceImpl.java index 4d9f56cc..7f6d1789 100644 --- a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarUser/service/impl/TsUserServiceImpl.java +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarUser/service/impl/TsUserServiceImpl.java @@ -4,13 +4,17 @@ import com.adc.da.http.ResponseMessage; import com.adc.da.http.Result; import com.adc.da.slrs.sarUser.entity.TsUser; import com.adc.da.slrs.sarUser.dao.TsUserDao; +import com.adc.da.slrs.sarUser.entity.UserPositionVO; import com.adc.da.slrs.sarUser.service.ITsUserService; +import com.adc.da.utils.util.ListUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; import java.util.List; +import java.util.Map; /** *

@@ -32,9 +36,7 @@ public class TsUserServiceImpl extends ServiceImpl implements */ @Override public List getUserByInstitutionId(String institutionId) { - QueryWrapper userQueryWrapper=new QueryWrapper<>(); - userQueryWrapper.eq("institution_id",institutionId); - return tsUserDao.selectList(userQueryWrapper); + return tsUserDao.getUserAndPosition(institutionId); } /** @@ -64,4 +66,33 @@ public class TsUserServiceImpl extends ServiceImpl implements tsUserDao.updateById(user); return Result.success(); } + + /** + * 配置岗位 + * @param userPositionVO :用户、岗位ID + * @return ResponseMessage + */ + @Override + @Transactional + public ResponseMessage setPosition(UserPositionVO userPositionVO) { + TsUser tsUser=tsUserDao.selectById(userPositionVO.getUserId()); + if(tsUser==null){ + return Result.error("该用户不存在"); + } + List oldPositionIds=tsUserDao.selectPositionIds(userPositionVO.getUserId()); + Map> ids= ListUtil.difList(userPositionVO.getPositionIds(),oldPositionIds); + List insertIds=ids.get("insert"); + List deleteIds=ids.get("delete"); + if(insertIds!=null&&insertIds.size()>0){ + for(String positionId:insertIds){ + tsUserDao.addPosition(userPositionVO.getUserId(),positionId); + } + } + if(deleteIds!=null&&deleteIds.size()>0){ + for(String positionId:deleteIds){ + tsUserDao.delPosition(userPositionVO.getUserId(),positionId); + } + } + return Result.success(); + } } diff --git a/adc-da-slrs/src/main/resources/mybatis/mapper/sarPosition/TsPositionMapper.xml b/adc-da-slrs/src/main/resources/mybatis/mapper/sarPosition/TsPositionMapper.xml index 6188a7bb..33c56c03 100644 --- a/adc-da-slrs/src/main/resources/mybatis/mapper/sarPosition/TsPositionMapper.xml +++ b/adc-da-slrs/src/main/resources/mybatis/mapper/sarPosition/TsPositionMapper.xml @@ -1,10 +1,36 @@ + + + + + + + + + + + + + + + diff --git a/adc-da-slrs/src/main/resources/mybatis/mapper/sarUser/TsUserMapper.xml b/adc-da-slrs/src/main/resources/mybatis/mapper/sarUser/TsUserMapper.xml index 26150f18..67b94fdc 100644 --- a/adc-da-slrs/src/main/resources/mybatis/mapper/sarUser/TsUserMapper.xml +++ b/adc-da-slrs/src/main/resources/mybatis/mapper/sarUser/TsUserMapper.xml @@ -1,5 +1,39 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + +