Browse Source

根据角色查询用户

master
liwenxuan 2 months ago
parent
commit
ee950bee2a
  1. 79
      src/main/java/com/hxgk/lowcode/controller/ManContController.java
  2. 4
      src/main/java/com/hxgk/lowcode/mapper/UserMapper.java
  3. 83
      src/main/java/com/hxgk/lowcode/model/entity/ManContShort.java
  4. 5
      src/main/java/com/hxgk/lowcode/service/UserService.java
  5. 12
      src/main/java/com/hxgk/lowcode/service/impl/UserServiceImpl.java
  6. 2
      src/main/resources/mapper/SystemRoleMapper.xml
  7. 30
      src/main/resources/mapper/UserMapper.xml

79
src/main/java/com/hxgk/lowcode/controller/ManContController.java

@ -1,18 +1,27 @@
package com.hxgk.lowcode.controller;
import com.alibaba.fastjson2.JSON;
import com.github.pagehelper.PageInfo;
import com.hxgk.lowcode.model.entity.ManCont;
import com.hxgk.lowcode.model.entity.ManContShort;
import com.hxgk.lowcode.model.entity.SystemRole;
import com.hxgk.lowcode.model.entity.Tree;
import com.hxgk.lowcode.service.HrService;
import com.hxgk.lowcode.service.SystemRoleService;
import com.hxgk.lowcode.service.UserService;
import com.hxgk.lowcode.utils.JsonData;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestHeader;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.concurrent.TimeUnit;
@RestController
@RequestMapping("/lowCode/manCont")
@ -20,6 +29,16 @@ public class ManContController {
@Autowired
UserService userService;
@Autowired
HrService hrService;
@Autowired
SystemRoleService systemRoleService;
@Autowired
private StringRedisTemplate redisTemplate;
/*根据主表id拿到表单字段信息*/
@RequestMapping(value = "getParentOrgsByDeviceNo")
public JsonData getParentOrgsByDeviceNo(@RequestBody Map<String,String> requestBody) {
@ -60,4 +79,64 @@ public class ManContController {
}
@RequestMapping(value = "getAllRole")
public JsonData getAllRole(@RequestHeader(value = "User-Key") String key,
@RequestHeader(value = "User-Token") String token
) {
if(!StringUtils.isBlank(key)&&!StringUtils.isBlank(token)){
ArrayList<SystemRole> result = new ArrayList<>();
if(redisTemplate.hasKey("allRole")){
String orgTreeStr = redisTemplate.opsForValue().get("allRole").toString();
List<ManCont> o = JSON.parseObject(orgTreeStr, List.class);
return JsonData.buildSuccess(o);
}else{
ArrayList<SystemRole> allRole = systemRoleService.getAllRole();
for(int i = 0; i < allRole.size(); i ++){
String roleId = allRole.get(i).getId();
PageInfo<ManContShort> list = userService.getPersonByRoleId(1,10,roleId,"","");
if(list.getSize()>0){
result.add(allRole.get(i));
}
}
String allRole_Json= JSON.toJSONString(result);
redisTemplate.opsForValue().set("allRole", allRole_Json, 1, TimeUnit.DAYS);
return JsonData.buildSuccess(result);
}
}else{
return JsonData.buildError("请先登录");
}
}
@RequestMapping(value = "getPersonByRoleId")
public JsonData getPersonByRoleId(@RequestHeader(value = "User-Key") String key,
@RequestHeader(value = "User-Token") String token,@RequestBody Map<String,String> requestBody
) {
if(!StringUtils.isBlank(key)&&!StringUtils.isBlank(token)){
String roleId = requestBody.get("id");
int pageNum = Integer.parseInt(requestBody.get("pageNum"));
int pageSize = Integer.parseInt(requestBody.get("pageSize"));
String number = requestBody.get("number");
String name = requestBody.get("name");
//List<ManContShort> list = userService.getPersonByRoleId(roleId);
PageInfo<ManContShort> pageInfo = userService.getPersonByRoleId(pageNum,pageSize,roleId,number,name);
return JsonData.buildSuccess(pageInfo);
}else{
return JsonData.buildError("请先登录");
}
}
}

4
src/main/java/com/hxgk/lowcode/mapper/UserMapper.java

@ -3,10 +3,12 @@ package com.hxgk.lowcode.mapper;
import com.baomidou.dynamic.datasource.annotation.DS;
import com.hxgk.lowcode.model.entity.ManCont;
import com.hxgk.lowcode.model.entity.ManContShort;
import com.hxgk.lowcode.model.entity.Tree;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.ArrayList;
import java.util.List;
@Mapper
@DS("hrnew")
@ -19,4 +21,6 @@ public interface UserMapper {
ManCont getManContByKey(@Param("key") String key);
ManCont getManContByDeviceNo(@Param("deviceNo") String deviceNo);
List<ManContShort> getPersonByRoleId(@Param("role") String roleId,@Param("number") String number,@Param("name") String name);
}

83
src/main/java/com/hxgk/lowcode/model/entity/ManContShort.java

@ -0,0 +1,83 @@
package com.hxgk.lowcode.model.entity;
import org.springframework.stereotype.Repository;
@Repository
public class ManContShort {
//person_archives.id
private Long id;
//工号
private String number;
//姓名
private String name;
//头像
private String icon;
private Byte empType;
private Long key;
private String role;
private String deparment;
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getNumber() {
return number;
}
public void setNumber(String number) {
this.number = number;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getIcon() {
return icon;
}
public void setIcon(String icon) {
this.icon = icon;
}
public Byte getEmpType() {
return empType;
}
public void setEmpType(Byte empType) {
this.empType = empType;
}
public Long getKey() {
return key;
}
public void setKey(Long key) {
this.key = key;
}
public String getRole() {
return role;
}
public void setRole(String role) {
this.role = role;
}
public String getDeparment() {
return deparment;
}
public void setDeparment(String deparment) {
this.deparment = deparment;
}
}

5
src/main/java/com/hxgk/lowcode/service/UserService.java

@ -1,9 +1,12 @@
package com.hxgk.lowcode.service;
import com.github.pagehelper.PageInfo;
import com.hxgk.lowcode.model.entity.ManCont;
import com.hxgk.lowcode.model.entity.ManContShort;
import com.hxgk.lowcode.model.entity.Tree;
import com.hxgk.lowcode.model.entity.UserDetail;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
@ -23,4 +26,6 @@ public interface UserService {
ManCont getManContByDeviceNo(String paramType,String paramValue);
List<String> getAllParentOrgForEmp(ManCont manCont);
PageInfo<ManContShort> getPersonByRoleId(int pageNum,int pageSize,String roleId,String number,String name);
}

12
src/main/java/com/hxgk/lowcode/service/impl/UserServiceImpl.java

@ -1,8 +1,11 @@
package com.hxgk.lowcode.service.impl;
import com.baomidou.dynamic.datasource.annotation.DS;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.hxgk.lowcode.mapper.UserMapper;
import com.hxgk.lowcode.model.entity.ManCont;
import com.hxgk.lowcode.model.entity.ManContShort;
import com.hxgk.lowcode.model.entity.Tree;
import com.hxgk.lowcode.model.entity.UserDetail;
import com.hxgk.lowcode.service.HrService;
@ -14,6 +17,7 @@ import org.springframework.data.redis.core.HashOperations;
import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
@ -171,7 +175,15 @@ public class UserServiceImpl implements UserService {
}
@Override
public PageInfo<ManContShort> getPersonByRoleId(int pageNum,int pageSize,String roleId,String number,String name) {
// 开始分页
PageHelper.startPage(pageNum, pageSize);
List<ManContShort> personByRoleId = userMapper.getPersonByRoleId(roleId,number,name);
//System.out.println("MyBatis原始返回数量:" + personByRoleId.size()); // 关键验证
return new PageInfo<>(personByRoleId);
}
}

2
src/main/resources/mapper/SystemRoleMapper.xml

@ -7,7 +7,7 @@
<select id="getAllRole" resultType="com.hxgk.lowcode.model.entity.SystemRole">
select * from system_role where state = 1
select * from system_role where state = 1 order by sort
</select>

30
src/main/resources/mapper/UserMapper.xml

@ -16,7 +16,7 @@
<select id="getManContListByAdminOrg" resultType="com.hxgk.lowcode.model.entity.Tree">
select `key` as id,admin_org as parentId,name as label from man_cont where admin_org=#{adminOrg} and state = 1
select `key` as id,admin_org as parentId,name as label,number as value from man_cont where admin_org=#{adminOrg} and state = 1
<![CDATA[
and emp_type < 9
]]>
@ -38,4 +38,32 @@
</select>
<select id="getPersonByRoleId" resultType="com.hxgk.lowcode.model.entity.ManContShort">
SELECT
a.id,a.number,a.name,a.emp_type,a.`key`,a.role,o.name as deparment
/*,a.icon*/
FROM
man_cont a
left join org_cont o on
a.admin_org = o.id
WHERE
FIND_IN_SET(#{role}, a.role) > 0
AND a.state = 1
<if test="name!= null and name!= ''">
AND a.name like CONCAT('%', #{name}, '%')
</if>
<if test="number!= null and number!= ''">
AND a.number like CONCAT('%', #{name}, '%')
</if>
<![CDATA[
and a.emp_type < 9
]]>
order by id
</select>
</mapper>
Loading…
Cancel
Save