diff --git a/nflg-wms-admin/src/main/java/com/nflg/wms/admin/controller/LDAPController.java b/nflg-wms-admin/src/main/java/com/nflg/wms/admin/controller/LDAPController.java index c291aea2..b74515d4 100644 --- a/nflg-wms-admin/src/main/java/com/nflg/wms/admin/controller/LDAPController.java +++ b/nflg-wms-admin/src/main/java/com/nflg/wms/admin/controller/LDAPController.java @@ -1,5 +1,6 @@ package com.nflg.wms.admin.controller; +import com.nflg.wms.admin.pojo.dto.LdapDepartmentDTO; import com.nflg.wms.admin.service.LDAPControllerService; import com.nflg.wms.common.pojo.ApiResult; import com.nflg.wms.common.pojo.PageData; @@ -90,7 +91,7 @@ public class LDAPController extends BaseController { } /** - * 同步ad域用户 + * 同步ad域部门和用户 * @param id ad域id */ @GetMapping("sync") @@ -107,4 +108,13 @@ public class LDAPController extends BaseController { public ApiResult> search(@Valid @RequestBody PageQO request){ return ApiResult.success(ldapControllerService.search(request)); } + + /** + * 搜索ad域中的部门并返回基本信息 + * @param id ad域id + */ + @GetMapping("searchAdSimple") + public ApiResult searchAdSimple(@Valid @RequestParam @NotNull Long id) { + return ApiResult.success(ldapControllerService.searchAdSimple(id)); + } } diff --git a/nflg-wms-admin/src/main/java/com/nflg/wms/admin/controller/SupplierController.java b/nflg-wms-admin/src/main/java/com/nflg/wms/admin/controller/SupplierController.java index a13509fd..c7aa8da5 100644 --- a/nflg-wms-admin/src/main/java/com/nflg/wms/admin/controller/SupplierController.java +++ b/nflg-wms-admin/src/main/java/com/nflg/wms/admin/controller/SupplierController.java @@ -111,6 +111,15 @@ public class SupplierController extends BaseController { return ApiResult.success(); } + /** + * 批量开通账号 + */ + @PostMapping("enableLoginBatch") + public ApiResult enableLoginBatch(@Valid @RequestBody SupplierLoginBatchQO request) { + userControllerService.enableSupplierLoginBatch(request); + return ApiResult.success(); + } + /** * 搜索供应商 * @param request 请求参数 diff --git a/nflg-wms-admin/src/main/java/com/nflg/wms/admin/service/LDAPControllerService.java b/nflg-wms-admin/src/main/java/com/nflg/wms/admin/service/LDAPControllerService.java index 7451f9fe..2b094bbc 100644 --- a/nflg-wms-admin/src/main/java/com/nflg/wms/admin/service/LDAPControllerService.java +++ b/nflg-wms-admin/src/main/java/com/nflg/wms/admin/service/LDAPControllerService.java @@ -2,6 +2,7 @@ package com.nflg.wms.admin.service; import cn.hutool.core.convert.Convert; import com.baomidou.mybatisplus.core.metadata.IPage; +import com.nflg.wms.admin.pojo.dto.LdapDepartmentDTO; import com.nflg.wms.common.pojo.dto.AdDTO; import com.nflg.wms.common.pojo.qo.EnableQO; import com.nflg.wms.common.pojo.qo.LDAPAddQO; @@ -17,6 +18,7 @@ import jakarta.annotation.Resource; import jakarta.validation.Valid; import jakarta.validation.constraints.NotNull; import org.springframework.stereotype.Component; +import org.springframework.transaction.annotation.Transactional; import java.time.LocalDateTime; import java.util.Objects; @@ -33,6 +35,9 @@ public class LDAPControllerService { @Resource private DepartmentControllerService departmentControllerService; + @Resource + private UserControllerService userControllerService; + public void add(@Valid LDAPAddQO request) { Ad ad = Convert.convert(Ad.class, request); ad.setCreateBy(UserUtil.getUserName()); @@ -63,10 +68,12 @@ public class LDAPControllerService { adSyncService.save(request); } + @Transactional public void sync(@Valid @NotNull Long id) { AdDTO ad = adService.getInfo(id); VUtil.trueThrowBusinessError(Objects.isNull(ad)).throwMessage("数据不存在"); departmentControllerService.syncFromLdap(ad); + userControllerService.syncFromLdap(ad); } public IPage search(@Valid PageQO request) { @@ -78,4 +85,12 @@ public class LDAPControllerService { ldapService.init(request.getServer(), request.getPort(), request.getUserName(), request.getUserPwd(), request.getOu(), request.getTimeout()); return ldapService.check(); } + + public LdapDepartmentDTO searchAdSimple(@Valid @NotNull Long id) { + AdDTO ad = adService.getInfo(id); + VUtil.trueThrowBusinessError(Objects.isNull(ad)).throwMessage("数据不存在"); + LdapService ldapService = new LdapService(); + ldapService.init(ad.getServer(), ad.getPort(), ad.getUserName(), ad.getUserPwd(), ad.getOu(), ad.getTimeout()); + return ldapService.getDepartmentTree("",true); + } } diff --git a/nflg-wms-admin/src/main/java/com/nflg/wms/admin/service/UserControllerService.java b/nflg-wms-admin/src/main/java/com/nflg/wms/admin/service/UserControllerService.java index 26e99c0c..97a22b53 100644 --- a/nflg-wms-admin/src/main/java/com/nflg/wms/admin/service/UserControllerService.java +++ b/nflg-wms-admin/src/main/java/com/nflg/wms/admin/service/UserControllerService.java @@ -395,9 +395,16 @@ public class UserControllerService { @Transactional public void enableSupplierLogin(@Valid SupplierLoginQO request) { + if (StrUtil.isBlank(request.getPassword())) { + request.setPassword(RandomUtil.randomString(6)); + } + request.setPassword(PASSWORDENCODER.encode(request.getPassword())); + User user = uService.getById(request.getId()); uService.update(new User() .setId(request.getId()) .setUserCode(request.getLoginName()) + .setPassword(request.getPassword()) + .setMustResetPwd(user.getEnableMustResetPwd()) .setUpdateBy(UserUtil.getUserName()) .setUpdateTime(LocalDateTime.now())); userRoleMapService.authorize(request.getId(), request.getRoleIds()); @@ -536,4 +543,25 @@ public class UserControllerService { VUser vUser=vUserService.getById(UserUtil.getUserId()); return Convert.convert(UserDTO.class,vUser); } + + @Transactional + public void enableSupplierLoginBatch(@Valid SupplierLoginBatchQO request) { + if (StrUtil.isBlank(request.getPassword())) { + request.setPassword(RandomUtil.randomString(6)); + } + request.setPassword(PASSWORDENCODER.encode(request.getPassword())); + for (Long id : request.getIds()) { + UserSupplier userSupplier = userSupplierService.getByUserId(id); + User user = uService.getById(id); + if (Objects.nonNull(userSupplier) && Objects.nonNull(user)) { + user.setUserCode(userSupplier.getSupplierCode()); + user.setPassword(request.getPassword()); + user.setMustResetPwd(user.getEnableMustResetPwd()); + user.setUpdateBy(UserUtil.getUserName()); + user.setUpdateTime(LocalDateTime.now()); + uService.updateById(user); + userRoleMapService.authorize(id, request.getRoleIds()); + } + } + } } diff --git a/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/qo/LDAPAddQO.java b/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/qo/LDAPAddQO.java index 001d37c5..d017bbe8 100644 --- a/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/qo/LDAPAddQO.java +++ b/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/qo/LDAPAddQO.java @@ -53,4 +53,9 @@ public class LDAPAddQO { */ @NotBlank private String ou; + + /** + * 备注 + */ + private String remark; } diff --git a/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/qo/SupplierLoginBatchQO.java b/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/qo/SupplierLoginBatchQO.java new file mode 100644 index 00000000..b1d0f3e6 --- /dev/null +++ b/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/qo/SupplierLoginBatchQO.java @@ -0,0 +1,27 @@ +package com.nflg.wms.common.pojo.qo; + +import jakarta.validation.constraints.NotEmpty; +import lombok.Data; + +import java.util.List; + +@Data +public class SupplierLoginBatchQO { + + /** + * 用户id列表 + */ + @NotEmpty + private List ids; + + /** + * 角色ID列表 + */ + @NotEmpty + private List roleIds; + + /** + * 密码 + */ + private String password; +} diff --git a/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/qo/SupplierLoginQO.java b/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/qo/SupplierLoginQO.java index cbfc1c67..5946a9ab 100644 --- a/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/qo/SupplierLoginQO.java +++ b/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/qo/SupplierLoginQO.java @@ -22,4 +22,9 @@ public class SupplierLoginQO { */ @NotEmpty private List roleIds; + + /** + * 密码 + */ + private String password; } diff --git a/nflg-wms-repository/src/main/java/com/nflg/wms/repository/entity/Ad.java b/nflg-wms-repository/src/main/java/com/nflg/wms/repository/entity/Ad.java index ba4b6347..77a14c3a 100644 --- a/nflg-wms-repository/src/main/java/com/nflg/wms/repository/entity/Ad.java +++ b/nflg-wms-repository/src/main/java/com/nflg/wms/repository/entity/Ad.java @@ -88,4 +88,9 @@ public class Ad implements Serializable { * 根节点 */ private String ou; + + /** + * 备注 + */ + private String remark; } diff --git a/nflg-wms-repository/src/main/java/com/nflg/wms/repository/service/IUserSupplierService.java b/nflg-wms-repository/src/main/java/com/nflg/wms/repository/service/IUserSupplierService.java index e622ee30..18b3181a 100644 --- a/nflg-wms-repository/src/main/java/com/nflg/wms/repository/service/IUserSupplierService.java +++ b/nflg-wms-repository/src/main/java/com/nflg/wms/repository/service/IUserSupplierService.java @@ -22,4 +22,6 @@ public interface IUserSupplierService extends IService { void update(UserSupplier userSupplier); IPage search(@Valid UserSupplierSearchQO request); + + UserSupplier getByUserId(Long id); } diff --git a/nflg-wms-repository/src/main/java/com/nflg/wms/repository/service/impl/UserSupplierServiceImpl.java b/nflg-wms-repository/src/main/java/com/nflg/wms/repository/service/impl/UserSupplierServiceImpl.java index d6bf0738..06b19dba 100644 --- a/nflg-wms-repository/src/main/java/com/nflg/wms/repository/service/impl/UserSupplierServiceImpl.java +++ b/nflg-wms-repository/src/main/java/com/nflg/wms/repository/service/impl/UserSupplierServiceImpl.java @@ -55,4 +55,9 @@ public class UserSupplierServiceImpl extends ServiceImpl search(UserSupplierSearchQO request) { return baseMapper.search(request, new Page<>(request.getPage(), request.getPageSize())); } + + @Override + public UserSupplier getByUserId(Long id) { + return lambdaQuery().eq(UserSupplier::getUserId, id).one(); + } }