Browse Source

根据key数组查询用户

master
liwenxuan 2 months ago
parent
commit
a2e13415d1
  1. 17
      src/main/java/com/hxgk/lowcode/controller/ManContController.java
  2. 2
      src/main/java/com/hxgk/lowcode/mapper/UserMapper.java
  3. 18
      src/main/java/com/hxgk/lowcode/model/entity/ManContShort.java
  4. 2
      src/main/java/com/hxgk/lowcode/service/UserService.java
  5. 34
      src/main/java/com/hxgk/lowcode/service/impl/UserServiceImpl.java
  6. 2
      src/main/resources/application-dev.yml
  7. 29
      src/main/resources/mapper/UserMapper.xml

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

@ -18,6 +18,7 @@ import org.springframework.web.bind.annotation.RequestHeader;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
import java.lang.reflect.Array;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
@ -139,4 +140,20 @@ public class ManContController {
} }
} }
@RequestMapping(value = "getManContsByKeys")
public JsonData getManContsByKeys(@RequestHeader(value = "User-Key") String key,
@RequestHeader(value = "User-Token") String token,@RequestBody Map<String, List<String>> requestBody
) {
if(!StringUtils.isBlank(key)&&!StringUtils.isBlank(token)){
List<String> keys = requestBody.get("keys");
List<ManContShort> list = userService.getManContsByKeys(keys);
return JsonData.buildSuccess(list);
}else{
return JsonData.buildError("请先登录");
}
}
} }

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

@ -23,4 +23,6 @@ public interface UserMapper {
ManCont getManContByDeviceNo(@Param("deviceNo") String deviceNo); ManCont getManContByDeviceNo(@Param("deviceNo") String deviceNo);
List<ManContShort> getPersonByRoleId(@Param("role") String roleId,@Param("number") String number,@Param("name") String name); List<ManContShort> getPersonByRoleId(@Param("role") String roleId,@Param("number") String number,@Param("name") String name);
List<ManContShort> getManContsByKeys(@Param("keys")List<String> subList);
} }

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

@ -13,7 +13,7 @@ public class ManContShort {
//头像 //头像
private String icon; private String icon;
private Byte empType; private Byte empType;
private Long key; private String key;
private String role; private String role;
private String deparment; private String deparment;
@ -57,14 +57,6 @@ public class ManContShort {
this.empType = empType; this.empType = empType;
} }
public Long getKey() {
return key;
}
public void setKey(Long key) {
this.key = key;
}
public String getRole() { public String getRole() {
return role; return role;
} }
@ -80,4 +72,12 @@ public class ManContShort {
public void setDeparment(String deparment) { public void setDeparment(String deparment) {
this.deparment = deparment; this.deparment = deparment;
} }
public String getKey() {
return key;
}
public void setKey(String key) {
this.key = key;
}
} }

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

@ -28,4 +28,6 @@ public interface UserService {
List<String> getAllParentOrgForEmp(ManCont manCont); List<String> getAllParentOrgForEmp(ManCont manCont);
PageInfo<ManContShort> getPersonByRoleId(int pageNum,int pageSize,String roleId,String number,String name); PageInfo<ManContShort> getPersonByRoleId(int pageNum,int pageSize,String roleId,String number,String name);
List<ManContShort> getManContsByKeys(List<String> keys);
} }

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

@ -185,5 +185,39 @@ public class UserServiceImpl implements UserService {
return new PageInfo<>(personByRoleId); return new PageInfo<>(personByRoleId);
} }
@Override
public List<ManContShort> getManContsByKeys(List<String> keys) {
int BATCH_SIZE = 500;
List<ManContShort> resultList = new ArrayList<>();
if(keys.size()==0){
return userMapper.getManContsByKeys(keys);
}else{
// 计算需要分多少批
int batchCount = (keys.size() + BATCH_SIZE - 1) / BATCH_SIZE;
for (int i = 0; i < batchCount; i++) {
// 计算每批的起始索引和结束索引
int startIndex = i * BATCH_SIZE;
int endIndex = Math.min(startIndex + BATCH_SIZE, keys.size());
// 截取子列表
List<String> subList = keys.subList(startIndex, endIndex);
// 每批查询并添加到结果集
List<ManContShort> batchResult = userMapper.getManContsByKeys(subList);
if (batchResult.size()>0) {
resultList.addAll(batchResult);
}
}
return resultList;
}
}
} }

2
src/main/resources/application-dev.yml

@ -2,7 +2,7 @@
mybatis: mybatis:
configuration: configuration:
#开启控制台打印sql #开启控制台打印sql
#log-impl: org.apache.ibatis.logging.stdout.StdOutImpl log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
# mybatis 下划线转驼峰配置,两者都可以 # mybatis 下划线转驼峰配置,两者都可以
map-underscore-to-camel-case: true map-underscore-to-camel-case: true
#配置扫描 #配置扫描

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

@ -62,7 +62,34 @@
<![CDATA[ <![CDATA[
and a.emp_type < 9 and a.emp_type < 9
]]> ]]>
order by id order by a.id
</select>
<select id="getManContsByKeys" 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 a.state = 1
<![CDATA[
and a.emp_type < 9
]]>
<if test="keys != null and keys.size() > 0">
and a.`key` IN
<foreach collection="keys" item="key" open="(" separator="," close=")">
#{key}
</foreach>
</if>
<if test="keys == null or keys.size() == 0">
and a.company = 309
</if>
order by a.id
</select> </select>

Loading…
Cancel
Save