人员配置机构

This commit is contained in:
root
2021-06-29 16:34:02 +08:00
parent 4533960ef9
commit 39e5e4c4c5
22 changed files with 439 additions and 23 deletions
@@ -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
@@ -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<SarMenu> {
resultList.addAll(listDic);
return Result.success(resultList);
}
@ApiOperation("查询所有菜单")
@GetMapping
public ResponseMessage<List<SarMenu>> getAll(){
List<SarMenu> sarMenus=sarMenuEOService.getAll();
return Result.success(sarMenus);
}
@ApiOperation("添加菜单")
@PostMapping("/add")
public ResponseMessage<Object> addMenu(@RequestBody SarMenu sarMenu){
return sarMenuEOService.addMenu(sarMenu);
}
@ApiOperation("编辑菜单")
@PutMapping
public ResponseMessage<Object> updateMenu(@Validated(SarMenu.update.class) @RequestBody SarMenu sarMenu){
return sarMenuEOService.updateMenu(sarMenu);
}
@ApiOperation("删除菜单")
@DeleteMapping
public ResponseMessage<Object> delMenu(@RequestParam Integer menuId){
return sarMenuEOService.delMenu(menuId);
}
}
@@ -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;
/**
* <p>
*
@@ -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<SarMenu> children;
@TableField(exist=false)
private List<String> roleIds;
@@ -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<SarMenu> {
* @return List<SarMenu>
*/
List<SarMenu> getMenusByIds(List<String> menuIds);
/**
* 查询所有菜单
*/
List<SarMenu> getAll();
/**
* 添加菜单
* @param sarMenu:菜单信息
* @return ResponseMessage<Object>
*/
ResponseMessage<Object> addMenu(SarMenu sarMenu);
/**
* 编辑菜单
* @param sarMenu:菜单信息
* @return ResponseMessage<Object>
*/
ResponseMessage<Object> updateMenu(SarMenu sarMenu);
/**
* 删除菜单
* @param menuId:菜单ID
* @return ResponseMessage<Object>
*/
ResponseMessage<Object> delMenu(Integer menuId);
}
@@ -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<SarMenuDao, SarMenu> impleme
menuQueryWrapper.in("id",menuIds);
return dao.selectList(menuQueryWrapper);
}
/**
* 查询所有菜单
*/
@Override
public List<SarMenu> getAll() {
QueryWrapper<SarMenu> sarMenuQueryWrapper=new QueryWrapper<>();
sarMenuQueryWrapper.orderByAsc("DISPLAY_SEQ");
sarMenuQueryWrapper.isNull("PARENT_ID");
List<SarMenu> sarMenus=dao.selectList(sarMenuQueryWrapper);
for(SarMenu sarMenu:sarMenus){
sarMenu.setChildren(recursionGetChildren((sarMenu)));
}
return sarMenus;
}
/**
* 添加菜单
* @param sarMenu:菜单信息
* @return ResponseMessage<Object>
*/
@Override
public ResponseMessage<Object> 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<Object>
*/
@Override
public ResponseMessage<Object> 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<Object>
*/
@Override
public ResponseMessage<Object> delMenu(Integer menuId) {
QueryWrapper<SarMenu> sarMenuQueryWrapper=new QueryWrapper<>();
sarMenuQueryWrapper.eq("parent_id",menuId);
List<SarMenu> children=dao.selectList(sarMenuQueryWrapper);
if(children!=null&&children.size()>0){
return Result.error("该菜单有子节点,无法删除");
}
dao.deleteById(menuId);
return Result.success();
}
/**
* 递归调用获取子节点
* @param parent:父节点
* @return List<SarMenu>
*/
private List<SarMenu> recursionGetChildren(SarMenu parent){
QueryWrapper<SarMenu> sarMenuQueryWrapper=new QueryWrapper<>();
sarMenuQueryWrapper.orderByAsc("DISPLAY_SEQ");
sarMenuQueryWrapper.eq("PARENT_ID",parent.getId());
List<SarMenu> children=dao.selectList(sarMenuQueryWrapper);
for(SarMenu sarMenu:children){
sarMenu.setChildren(recursionGetChildren((sarMenu)));
}
return children;
}
}
@@ -61,4 +61,16 @@ public class TsPositionController extends BaseController<TsPosition> {
List<TsRole> roles=tsPositionService.getRole(positionId);
return Result.success(roles);
}
@ApiOperation("编辑岗位")
@PutMapping
public ResponseMessage<Object> updatePosition(@Validated(TsPosition.update.class) TsPosition tsPosition){
return tsPositionService.updatePosition(tsPosition);
}
@ApiOperation("删除岗位")
@DeleteMapping
public ResponseMessage<Object> deletePosition(@RequestParam String positionId){
return tsPositionService.deletePosition(positionId);
}
}
@@ -49,4 +49,11 @@ public interface TsPositionDao extends BaseMapper<TsPosition> {
* @return List<TsRole>
*/
List<TsRole> getRole(String positionId);
/**
* 查询岗位以及绑定的角色信息
* @param tsPosition:岗位信息
* @return List<TsPosition>
*/
List<TsPosition> selectPositionAndRole(TsPosition tsPosition);
}
@@ -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<TsRole> roles;
@ApiModelProperty(value = "创建时间")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@@ -45,4 +45,18 @@ public interface ITsPositionService extends IService<TsPosition> {
* @return ResponseMessage<Object>
*/
ResponseMessage<Object> addPosition(TsPosition tsPosition);
/**
* 修改岗位
* @param tsPosition:岗位信息
* @return ResponseMessage<Object>
*/
ResponseMessage<Object> updatePosition(TsPosition tsPosition);
/**
* 删除岗位
* @param positionId:岗位ID
* @return ResponseMessage<Object>
*/
ResponseMessage<Object> deletePosition(String positionId);
}
@@ -38,11 +38,7 @@ public class TsPositionServiceImpl extends ServiceImpl<TsPositionDao, TsPosition
*/
@Override
public List<TsPosition> getPosition(TsPosition tsPosition) {
QueryWrapper<TsPosition> 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<TsPositionDao, TsPosition
tsPositionDao.insert(tsPosition);
return Result.success();
}
/**
* 修改岗位
* @param tsPosition:岗位信息
* @return ResponseMessage<Object>
*/
@Override
public ResponseMessage<Object> 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<Object>
*/
@Override
public ResponseMessage<Object> 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();
}
}
@@ -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 tsRole=tsRoleService.getById(roleId);
return Result.success(tsRole);
}
@ApiOperation("查询角色权限")
@GetMapping("/menu")
public ResponseMessage<List<String>> getMenu(@RequestParam String roleId){
List<String> menuIds=tsRoleService.getMenu(roleId);
return Result.success(menuIds);
}
}
@@ -49,4 +49,7 @@ public interface TsRoleDao extends BaseMapper<TsRole> {
*/
@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<String> getMenuIdByRoleId(String roleId);
}
@@ -57,4 +57,11 @@ public interface ITsRoleService extends IService<TsRole> {
* @return ResponseMessage<Object>
*/
ResponseMessage<Object> setMenu(TsRoleMenuVO tsRoleMenuVO);
/**
* 查询角色权限
* @param roleId:角色ID
* @return List<String>
*/
List<String> getMenu(String roleId);
}
@@ -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<TsRoleDao, TsRole> implements
Map<String,List<String>> updateMenuIds= ListUtil.difList(tsRoleMenuVO.getMenuIds(),oldMenuIds);
List<String> insertIds=updateMenuIds.get("insert");
List<String> 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<SarMenu> menus=sarMenuService.getMenusByIds(tsRoleMenuVO.getMenuIds());
return Result.success();
}
/**
* 查询角色权限
* @param roleId:角色ID
* @return List<String>
*/
@Override
public List<String> getMenu(String roleId) {
return tsRoleDao.getMenuIdByRoleId(roleId);
}
}
@@ -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;
/**
* <p>
* 前端控制器
@@ -40,4 +40,12 @@ public class TsUserController extends BaseController<TsUser> {
return tsUserService.disable(tsUser);
}
@ApiOperation("配置岗位")
@PostMapping("/position")
public ResponseMessage<Object> setPosition(@Valid @RequestBody UserPositionVO userPositionVO){
return tsUserService.setPosition(userPositionVO);
}
}
@@ -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;
/**
* <p>
@@ -13,4 +17,31 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
*/
public interface TsUserDao extends BaseMapper<TsUser> {
/**
* 查询用户已经绑定的岗位ID
*/
@Select("select position_id from ts_user_position where user_id=#{userId}")
List<String> 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<TsUser>
*/
List<TsUser> getUserAndPosition(String institutionId);
}
@@ -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<TsPosition> positions;
}
@@ -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<String> positionIds;
}
@@ -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<TsUser> {
* @return ResponseMessage<Object>
*/
ResponseMessage<Object> disable(TsUser tsUser);
/**
* 配置岗位
* @param userPositionVO :用户、岗位ID
* @return ResponseMessage<Object>
*/
ResponseMessage<Object> setPosition(UserPositionVO userPositionVO);
}
@@ -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;
/**
* <p>
@@ -32,9 +36,7 @@ public class TsUserServiceImpl extends ServiceImpl<TsUserDao, TsUser> implements
*/
@Override
public List<TsUser> getUserByInstitutionId(String institutionId) {
QueryWrapper<TsUser> 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<TsUserDao, TsUser> implements
tsUserDao.updateById(user);
return Result.success();
}
/**
* 配置岗位
* @param userPositionVO :用户、岗位ID
* @return ResponseMessage<Object>
*/
@Override
@Transactional
public ResponseMessage<Object> setPosition(UserPositionVO userPositionVO) {
TsUser tsUser=tsUserDao.selectById(userPositionVO.getUserId());
if(tsUser==null){
return Result.error("该用户不存在");
}
List<String> oldPositionIds=tsUserDao.selectPositionIds(userPositionVO.getUserId());
Map<String,List<String>> ids= ListUtil.difList(userPositionVO.getPositionIds(),oldPositionIds);
List<String> insertIds=ids.get("insert");
List<String> 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();
}
}
@@ -1,10 +1,36 @@
<?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="com.adc.da.slrs.sarPosition.dao.TsPositionDao">
<resultMap id="PositionAndRole" type="com.adc.da.slrs.sarPosition.entity.TsPosition">
<id property="id" column="id"/>
<result property="operateTime" column="operate_time"/>
<result property="operator" column="operator"/>
<result property="name" column="name"/>
<result property="createDeptId" column="create_dept_id"/>
<result property="createById" column="create_by_id"/>
<result property="type" column="type"/>
<collection property="roles" ofType="com.adc.da.slrs.sarRole.entity.TsRole">
<result property="id" column="rid"/>
<result property="name" column="r_name"/>
</collection>
</resultMap>
<select id="getRole" resultType="com.adc.da.slrs.sarRole.entity.TsRole">
select * from ts_role r
left join ts_position_role ps
on r.id=ps.role_id
where ps.position_id=#{positionId}
</select>
<select id="selectPositionAndRole" resultMap="PositionAndRole">
select p.*,r.id rid,r.name r_name from ts_position p
left join ts_position_role pr
on p.id=pr.position_id
left join ts_role r
on pr.role_id=r.id
<where>
<if test="name!=null">
p.name like concat(concat('%',#{name}),'%')
</if>
</where>
</select>
</mapper>
@@ -1,5 +1,39 @@
<?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="com.adc.da.slrs.sarUser.dao.TsUserDao">
<resultMap id="UserPosition" type="com.adc.da.slrs.sarUser.entity.TsUser">
<id property="userId" column="usid"/>
<result property="account" column="account"/>
<result property="uname" column="uname"/>
<result property="sex" column="sex"/>
<result property="userSource" column="user_source"/>
<result property="phone" column="phone"/>
<result property="state" column="state"/>
<result property="email" column="email"/>
<result property="institutionName" column="institution_name"/>
<result property="institutionId" column="institution_id"/>
<result property="workNum" column="work_num"/>
<result property="extInfo" column="ext_info"/>
<result property="operUser" column="oper_user"/>
<result property="creationTime" column="creation_time"/>
<result property="modifyTime" column="modify_time"/>
<result property="validFlag" column="valid_flag"/>
<result property="disableFlag" column="disable_flag"/>
<result property="unlockFlag" column="unlock_flag"/>
<result property="userType" column="user_type"/>
<result property="ssoId" column="sso_id"/>
<collection property="positions" ofType="com.adc.da.slrs.sarPosition.entity.TsPosition">
<result property="id" column="p_id"/>
<result property="name" column="p_name"/>
</collection>
</resultMap>
<select id="getUserAndPosition" resultMap="UserPosition">
select u.*,p.id p_id,p.name p_name from ts_user u
left join ts_user_position up
on u.usid=up.user_id
left join ts_position p
on up.position_id=p.id
where u.institution_id=#{institutionId}
</select>
</mapper>