初始化

This commit is contained in:
曹鹏飞 2025-06-26 10:48:54 +08:00
parent 6760c1c30b
commit e54b6ec6ba
12 changed files with 66 additions and 43 deletions

View File

@ -85,7 +85,6 @@ public class DepartmentController extends BaseController {
/** /**
* 搜索部门返回基本信息 * 搜索部门返回基本信息
*
* @param key 部门名称或代码 * @param key 部门名称或代码
*/ */
@GetMapping("searchSimple") @GetMapping("searchSimple")

View File

@ -55,7 +55,6 @@ public class PositionController extends BaseController {
/** /**
* 启用/禁用职位 * 启用/禁用职位
*
* @param request 请求参数 * @param request 请求参数
*/ */
@PostMapping("enable") @PostMapping("enable")
@ -66,7 +65,6 @@ public class PositionController extends BaseController {
/** /**
* 搜索职位列表 * 搜索职位列表
*
* @param request 请求参数 * @param request 请求参数
*/ */
@PostMapping("search") @PostMapping("search")

View File

@ -53,7 +53,6 @@ public class UserController extends BaseController {
/** /**
* 启用/禁用用户 * 启用/禁用用户
*
* @param request 请求参数 * @param request 请求参数
*/ */
@PostMapping("enable") @PostMapping("enable")
@ -74,7 +73,6 @@ public class UserController extends BaseController {
/** /**
* 获取已授权角色 * 获取已授权角色
*
* @param userId 用户ID * @param userId 用户ID
*/ */
@GetMapping("getAuthorizeRole") @GetMapping("getAuthorizeRole")
@ -84,7 +82,6 @@ public class UserController extends BaseController {
/** /**
* 搜索用户 * 搜索用户
*
* @param request 请求参数 * @param request 请求参数
*/ */
@PostMapping("search") @PostMapping("search")

View File

@ -85,7 +85,7 @@ public class DepartmentControllerService {
public void syncFromLdap(AdDTO ad) { public void syncFromLdap(AdDTO ad) {
if (ad.getType() != 3) { if (ad.getType() != 3) {
LdapService ldapService = new LdapService(); LdapService ldapService = new LdapService();
ldapService.init(ad.getServer(), ad.getPort(), ad.getUserName(), ad.getUserPwd(), ad.getOu()); ldapService.init(ad.getServer(), ad.getPort(), ad.getUserName(), ad.getUserPwd(), ad.getOu(), ad.getTimeout());
LdapDepartmentDTO department = ldapService.getDepartmentTree(ad.getMapFrom(), ad.getType() == 1); LdapDepartmentDTO department = ldapService.getDepartmentTree(ad.getMapFrom(), ad.getType() == 1);
if (Objects.nonNull(department)) { if (Objects.nonNull(department)) {
save(department, Optional.ofNullable(ad.getMapTo()).orElse(0L)); save(department, Optional.ofNullable(ad.getMapTo()).orElse(0L));

View File

@ -12,10 +12,7 @@ import org.springframework.ldap.query.LdapQuery;
import org.springframework.ldap.query.LdapQueryBuilder; import org.springframework.ldap.query.LdapQueryBuilder;
import org.springframework.ldap.query.SearchScope; import org.springframework.ldap.query.SearchScope;
import java.util.Comparator; import java.util.*;
import java.util.List;
import java.util.Objects;
import java.util.UUID;
@Slf4j @Slf4j
public class LdapService { public class LdapService {
@ -24,7 +21,7 @@ public class LdapService {
private String baseDn; private String baseDn;
public void init(String server, int port, String username, String password, String baseDn) { public void init(String server, int port, String username, String password, String baseDn, int timeout) {
this.baseDn = baseDn; this.baseDn = baseDn;
LdapContextSource contextSource = new LdapContextSource(); LdapContextSource contextSource = new LdapContextSource();
contextSource.setUrl("ldap://" + server + ":" + port); contextSource.setUrl("ldap://" + server + ":" + port);
@ -34,6 +31,11 @@ public class LdapService {
contextSource.setAnonymousReadOnly(false); contextSource.setAnonymousReadOnly(false);
contextSource.setPooled(false); // 启用连接池 contextSource.setPooled(false); // 启用连接池
contextSource.setReferral("follow"); // 处理引用 contextSource.setReferral("follow"); // 处理引用
Map<String, Object> env = new HashMap<>();
// 全局读取超时所有操作
env.put("com.sun.jndi.ldap.connect.timeout", String.valueOf(timeout * 1000));
env.put("com.sun.jndi.ldap.read.timeout", String.valueOf(timeout * 1000 * 5));
contextSource.setBaseEnvironmentProperties(env);
contextSource.afterPropertiesSet(); contextSource.afterPropertiesSet();
ldapTemplate = new LdapTemplate(contextSource); ldapTemplate = new LdapTemplate(contextSource);
ldapTemplate.setIgnorePartialResultException(true); ldapTemplate.setIgnorePartialResultException(true);
@ -77,7 +79,7 @@ public class LdapService {
.setName(attributes.get("name").get().toString()) .setName(attributes.get("name").get().toString())
.setDistinguishedName(attributes.get("distinguishedName").get().toString()) .setDistinguishedName(attributes.get("distinguishedName").get().toString())
); );
log.info("开始获取部门父级信息完成"); log.info("获取部门父级信息完成");
if (CollectionUtil.isNotEmpty(departments)) { if (CollectionUtil.isNotEmpty(departments)) {
LdapDepartmentDTO parent = departments.get(0); LdapDepartmentDTO parent = departments.get(0);
parent.getChildren().add(dto); parent.getChildren().add(dto);

View File

@ -39,6 +39,7 @@ public class PositionControllerService {
.throwMessage("职位已存在"); .throwMessage("职位已存在");
positionService.save(new Position() positionService.save(new Position()
.setName(request.getName()) .setName(request.getName())
.setEnable(request.getEnable())
.setRemark(request.getRemark()) .setRemark(request.getRemark())
.setCreateBy(UserUtil.getUserName()) .setCreateBy(UserUtil.getUserName())
.setCreateTime(LocalDateTime.now())); .setCreateTime(LocalDateTime.now()));
@ -53,6 +54,7 @@ public class PositionControllerService {
positionService.updateById(new Position() positionService.updateById(new Position()
.setId(request.getId()) .setId(request.getId())
.setName(request.getName()) .setName(request.getName())
.setEnable(request.getEnable())
.setRemark(request.getRemark()) .setRemark(request.getRemark())
.setUpdateBy(UserUtil.getUserName()) .setUpdateBy(UserUtil.getUserName())
.setUpdateTime(LocalDateTime.now())); .setUpdateTime(LocalDateTime.now()));

View File

@ -129,7 +129,7 @@ public class UserControllerService {
@Transactional @Transactional
public void syncFromLdap(AdDTO ad) { public void syncFromLdap(AdDTO ad) {
LdapService ldapService = new LdapService(); LdapService ldapService = new LdapService();
ldapService.init(ad.getServer(), ad.getPort(), ad.getUserName(), ad.getUserPwd(), ad.getOu()); ldapService.init(ad.getServer(), ad.getPort(), ad.getUserName(), ad.getUserPwd(), ad.getOu(), ad.getTimeout());
List<LdapUserDTO> users = ldapService.getUsers(ad.getMapFrom()); List<LdapUserDTO> users = ldapService.getUsers(ad.getMapFrom());
List<User> forAdd = new ArrayList<>(); List<User> forAdd = new ArrayList<>();
List<User> forUpdate = new ArrayList<>(); List<User> forUpdate = new ArrayList<>();

View File

@ -1,14 +1,10 @@
package com.nflg.wms.auth.controller; package com.nflg.wms.auth.controller;
import cn.dev33.satoken.context.SaHolder;
import cn.dev33.satoken.sso.config.SaSsoServerConfig; import cn.dev33.satoken.sso.config.SaSsoServerConfig;
import cn.dev33.satoken.sso.processor.SaSsoServerProcessor; import cn.dev33.satoken.sso.processor.SaSsoServerProcessor;
import cn.dev33.satoken.stp.SaLoginConfig;
import cn.dev33.satoken.stp.SaTokenInfo; import cn.dev33.satoken.stp.SaTokenInfo;
import cn.dev33.satoken.stp.StpUtil; import cn.dev33.satoken.stp.StpUtil;
import cn.dev33.satoken.stp.parameter.SaLoginParameter; import cn.dev33.satoken.stp.parameter.SaLoginParameter;
import cn.dev33.satoken.util.SaResult;
import cn.hutool.core.util.StrUtil;
import com.nflg.wms.common.constant.Constant; import com.nflg.wms.common.constant.Constant;
import com.nflg.wms.common.pojo.ApiResult; import com.nflg.wms.common.pojo.ApiResult;
import com.nflg.wms.common.pojo.vo.RoleVO; import com.nflg.wms.common.pojo.vo.RoleVO;
@ -87,6 +83,8 @@ public class SsoServerController {
.setUserId(user.getId()) .setUserId(user.getId())
.setToken(tokenInfo.getTokenValue()) .setToken(tokenInfo.getTokenValue())
.setExpire(tokenInfo.getTokenTimeout()) .setExpire(tokenInfo.getTokenTimeout())
.setMustResetPwd(user.getMustResetPwd())
.setEmail(user.getEmail())
.setRoles(roleCodes.stream().map(RoleVO::getName).collect(Collectors.toList()))); .setRoles(roleCodes.stream().map(RoleVO::getName).collect(Collectors.toList())));
}; };
} }

View File

@ -24,4 +24,9 @@ public class DepartmentAddQO {
*/ */
@NotBlank @NotBlank
private String no; private String no;
/**
* 是否启用
*/
private Boolean enable = true;
} }

View File

@ -27,31 +27,6 @@ public class DepartmentVO {
private Integer source; private Integer source;
private String sourceDesc; private String sourceDesc;
/**
* 编号
*/
private String sourceId;
/**
* 是否启用
*/
private Boolean enable;
/**
* 创建人
*/
private String createBy;
/**
* 创建时间
*/
private LocalDateTime createTime;
/**
* 最后更新人
*/
private String updateBy;
/**
* 最后更新时间
*/
private LocalDateTime updateTime;
private List<DepartmentVO> children = new ArrayList<>();
public String getSourceDesc() { public String getSourceDesc() {
return switch (source) { return switch (source) {
@ -60,4 +35,36 @@ public class DepartmentVO {
default -> "未知"; default -> "未知";
}; };
} }
/**
* 编号
*/
private String sourceId;
/**
* 是否启用
*/
private Boolean enable;
/**
* 创建人
*/
private String createBy;
/**
* 创建时间
*/
private LocalDateTime createTime;
/**
* 最后更新人
*/
private String updateBy;
/**
* 最后更新时间
*/
private LocalDateTime updateTime;
private List<DepartmentVO> children = new ArrayList<>();
} }

View File

@ -15,5 +15,15 @@ public class UserLoginVO {
private Long expire; private Long expire;
/**
* 是否必须要重新设置密码
*/
private Boolean mustResetPwd;
/**
* 邮箱
*/
private String email;
private List<String> roles; private List<String> roles;
} }

View File

@ -108,4 +108,9 @@ public class User implements Serializable {
* 备注 * 备注
*/ */
private String remark; private String remark;
/**
* 登录后是否必须重设密码
*/
private Boolean mustResetPwd;
} }