package cn.stylefeng.guns.modular.business.controller; import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.lang.Assert; import cn.hutool.core.util.StrUtil; import cn.stylefeng.guns.modular.business.dto.SysUserEditPostTipDTO; import cn.stylefeng.guns.modular.business.dto.request.SysUserEditPwdRequest; import cn.stylefeng.guns.modular.business.dto.request.SysUserResetPwdByIdRequest; import cn.stylefeng.guns.modular.business.dto.request.SysUserResetPwdRequest; import cn.stylefeng.guns.modular.business.entity.CounsellingInfo; import cn.stylefeng.guns.modular.business.entity.CounsellingSetMeal; import cn.stylefeng.guns.modular.business.entity.MentalAnalysisTimeConfig; import cn.stylefeng.guns.modular.business.service.ICounsellingInfoService; import cn.stylefeng.guns.modular.business.service.ICounsellingSetMealService; import cn.stylefeng.guns.modular.business.service.IMentalAnalysisTimeConfigService; import cn.stylefeng.guns.modular.business.service.ISysUserBusinessService; import cn.stylefeng.guns.utils.GeneralUtil; import cn.stylefeng.roses.kernel.auth.api.context.LoginContext; import cn.stylefeng.roses.kernel.auth.api.password.PasswordStoredEncryptApi; import cn.stylefeng.roses.kernel.auth.api.pojo.login.LoginUser; import cn.stylefeng.roses.kernel.customer.modular.entity.Customer; import cn.stylefeng.roses.kernel.customer.modular.request.CustomerRequest; import cn.stylefeng.roses.kernel.customer.modular.service.CustomerService; import cn.stylefeng.roses.kernel.db.api.pojo.page.PageResult; import cn.stylefeng.roses.kernel.rule.annotation.BusinessLog; import cn.stylefeng.roses.kernel.rule.constants.RuleConstants; import cn.stylefeng.roses.kernel.rule.enums.*; import cn.stylefeng.roses.kernel.rule.pojo.dict.SimpleDict; import cn.stylefeng.roses.kernel.rule.pojo.request.BaseRequest; import cn.stylefeng.roses.kernel.rule.pojo.response.ErrorResponseData; import cn.stylefeng.roses.kernel.rule.pojo.response.ResponseData; import cn.stylefeng.roses.kernel.rule.pojo.response.SuccessResponseData; import cn.stylefeng.roses.kernel.scanner.api.annotation.ApiResource; import cn.stylefeng.roses.kernel.scanner.api.annotation.GetResource; import cn.stylefeng.roses.kernel.scanner.api.annotation.PostResource; import cn.stylefeng.roses.kernel.sms.modular.service.SysSmsInfoService; import cn.stylefeng.roses.kernel.system.api.exception.SystemModularException; import cn.stylefeng.roses.kernel.system.api.exception.enums.user.SysUserExceptionEnum; import cn.stylefeng.roses.kernel.system.api.expander.SystemConfigExpander; import cn.stylefeng.roses.kernel.system.api.pojo.role.dto.SysRoleDTO; import cn.stylefeng.roses.kernel.system.api.pojo.user.SysUserDTO; import cn.stylefeng.roses.kernel.system.api.pojo.user.UserSelectTreeNode; import cn.stylefeng.roses.kernel.system.api.pojo.user.request.*; import cn.stylefeng.roses.kernel.system.modular.role.service.SysRoleService; import cn.stylefeng.roses.kernel.system.modular.user.entity.SysUser; import cn.stylefeng.roses.kernel.system.modular.user.entity.SysUserRole; import cn.stylefeng.roses.kernel.system.modular.user.service.SysUserRoleService; import cn.stylefeng.roses.kernel.system.modular.user.service.SysUserService; import cn.stylefeng.roses.kernel.system.modular.user.wrapper.UserExpandWrapper; import cn.stylefeng.roses.kernel.wrapper.api.annotation.Wrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import io.swagger.annotations.Api; import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParams; import io.swagger.annotations.ApiOperation; import lombok.SneakyThrows; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import javax.annotation.Resource; import javax.servlet.http.HttpServletResponse; import java.util.Arrays; import java.util.List; import java.util.stream.Collectors; /** * 用户管理控制器 * * @author luojie * @date 2020/11/6 09:47 */ @Api(tags = "员工管理") @RestController @ApiResource(name = "员工管理", resBizType = ResBizTypeEnum.SYSTEM) @RequestMapping("/sysUserBusiness") public class SysUserBusinessController { @Resource private SysUserService sysUserService; @Resource private SysSmsInfoService sysSmsInfoService; @Resource private SysUserRoleService sysUserRoleService; @Resource private SysRoleService sysRoleService; @Resource private CustomerService customerService; @Resource private ISysUserBusinessService sysUserBusinessService; @Resource private PasswordStoredEncryptApi passwordStoredEncryptApi; @Resource private ICounsellingInfoService counsellingInfoService; @Resource private IMentalAnalysisTimeConfigService mentalAnalysisTimeConfigService; @Resource private ICounsellingSetMealService counsellingSetMealService; /** * 增加用户 * * @author luojie * @date 2020/11/6 13:50 */ @ApiOperation("工作人员_增加") @PostResource(name = "工作人员_增加", path = "/sysUser/add") @BusinessLog public ResponseData add(@RequestBody @Validated(BaseRequest.add.class) SysUserAddUpdateRequest req) { long userCount = sysUserService.count( Wrappers.lambdaQuery() .eq(SysUser::getAccount, req.getAccount()) .eq(SysUser::getDelFlag, YesOrNotEnum.N.getCode()) ); Assert.isTrue(userCount == 0, "账号已存在"); long customerCount = customerService.count( Wrappers.lambdaQuery() .eq(Customer::getAccount, req.getAccount()) .eq(Customer::getUserType, CustomerUserTypeEnum.WORKER.getCode()) ); Assert.isTrue(customerCount == 0, "C端账号已存在"); SysUserRequest sysUserRequest = BeanUtil.toBean(req, SysUserRequest.class); String password; if (sysUserRequest.getAccount().length() >= 6) { // 密码设置为手机号后六位 password = StrUtil.sub(sysUserRequest.getAccount(), -6, sysUserRequest.getAccount().length()); } else { // 默认密码 password = SystemConfigExpander.getDefaultPassWord(); } sysUserRequest.setPassword(password); // 统一的工作人员昵称 String nickName = GeneralUtil.getUnifyNickName(req.getNickName(), req.getRealName()); sysUserRequest.setNickName(nickName); sysUserRequest.setRealName(nickName); SysUser sysUser = sysUserService.add(sysUserRequest); sysUserRequest.setUserId(sysUser.getUserId()); // 注册C端用户信息 regCustomer(sysUserRequest, req.getPostTypes(), req.getPostIds()); // 工作人员_授权角色 this.grantRole(sysUserRequest); return new SuccessResponseData<>(); } public void regCustomer(SysUserRequest sysUserRequest, String postTypes, String postIds) { CustomerRequest regRequest = new CustomerRequest(); regRequest.setAccount(sysUserRequest.getAccount()); regRequest.setEmail(GeneralUtil.generateEmail(sysUserRequest.getPhone())); regRequest.setPassword(sysUserRequest.getPassword()); regRequest.setUserType(CustomerUserTypeEnum.WORKER.getCode()); regRequest.setSysUserId(sysUserRequest.getUserId()); while (true) { // 六位数字员工号,唯一 String workerNo = GeneralUtil.generateWorkNo(); long count = customerService.count(Wrappers.lambdaQuery().eq(Customer::getWorkerNo, workerNo)); if (count == 0) { regRequest.setWorkerNo(workerNo); break; } } // 统一的工作人员昵称 String nickName = GeneralUtil.getUnifyNickName(sysUserRequest.getNickName(), sysUserRequest.getRealName()); regRequest.setNickName(nickName); regRequest.setRealName(nickName); // 员工信息 regRequest.setAvatar(sysUserRequest.getAvatar()); regRequest.setTelephone(sysUserRequest.getPhone()); regRequest.setPostTypes(postTypes); regRequest.setPostIds(postIds); // C端用户注册 customerService.reg(regRequest); } /** * 删除工作人员 * * @author luojie * @date 2020/11/6 13:50 */ @ApiOperation("删除工作人员") @PostResource(name = "工作人员_删除", path = "/sysUser/delete") @BusinessLog public ResponseData delete(@RequestBody @Validated(SysUserRequest.delete.class) SysUserDeleteRequest req) { List list = counsellingInfoService.list(Wrappers.lambdaQuery(CounsellingInfo.class).eq(CounsellingInfo::getListingStatus, 1).eq(CounsellingInfo::getIsDelete, 0)); if (!list.isEmpty()){ throw new SystemModularException(SysUserExceptionEnum.USER_CAN_NOT_DELETE_INFO); } SysUserRequest sysUserRequest = BeanUtil.toBean(req, SysUserRequest.class); boolean del = sysUserService.del(sysUserRequest); if (del) { // 更新C端用户为删除 Customer user = customerService.getOne( Wrappers.lambdaQuery().eq(Customer::getSysUserId, sysUserRequest.getUserId()) ); Customer customer = new Customer(); customer.setCustomerId(user.getCustomerId()); customer.setAccount("DD_" + user.getAccount()); customer.setTelephone("DD_" + user.getTelephone()); customer.setStatusFlag(StatusEnum.DISABLE.getCode()); customerService.updateCustomerRemoveCache(customer); } return new SuccessResponseData<>(); } /** * 批量删除工作人员 * * @author fengshuonan * @date 2021/4/7 16:12 */ @ApiOperation("批量删除工作人员") @PostResource(name = "工作人员_批量删除工作人员", path = "/sysUser/batchDelete") @BusinessLog public ResponseData batchDelete(@RequestBody @Validated(SysUserRequest.batchDelete.class) SysUserDeleteRequest req) { SysUserRequest sysUserRequest = BeanUtil.toBean(req, SysUserRequest.class); sysUserService.batchDelete(sysUserRequest); for (Long userId : sysUserRequest.getUserIds()) { // 更新C端用户为删除 Customer user = customerService.getOne( Wrappers.lambdaQuery().eq(Customer::getSysUserId, userId) ); Customer customer = new Customer(); customer.setCustomerId(user.getCustomerId()); customer.setAccount("DD_" + user.getAccount()); customer.setTelephone("DD_" + user.getTelephone()); customer.setStatusFlag(StatusEnum.DISABLE.getCode()); customerService.updateCustomerRemoveCache(customer); } return new SuccessResponseData<>(); } @ApiOperation("工作人员_编辑岗位提示") @GetResource(name = "工作人员_编辑岗位提示", path = "/sysUser/editPostTip") public ResponseData sysUserEditPostTip(Long customerId) { SysUserEditPostTipDTO dto = new SysUserEditPostTipDTO(); // 咨询师-是否配置 CounsellingInfo counsellingInfo = counsellingInfoService.getOne(Wrappers.lambdaQuery().eq(CounsellingInfo::getUserId, customerId).last("LIMIT 1")); long setPo22Count = counsellingSetMealService.count( Wrappers.lambdaQuery() .eq(CounsellingSetMeal::getIsDelete, DeleteEnum.NOT_DELETE.getCode()) .eq(CounsellingSetMeal::getCounsellingInfoId, counsellingInfo != null ? counsellingInfo.getId() : 0) ); dto.setSetPo22(setPo22Count > 0); // 性格分析时间配置 long setPo31Count = mentalAnalysisTimeConfigService.count( Wrappers.lambdaQuery() .eq(MentalAnalysisTimeConfig::getIsDelete, DeleteEnum.NOT_DELETE.getCode()) .eq(MentalAnalysisTimeConfig::getCounsellingInfoId, customerId) ); dto.setSetPo31(setPo31Count > 0); return new SuccessResponseData<>(dto); } /** * 编辑工作人员 * * @author luojie * @date 2020/11/6 13:50 */ @ApiOperation("工作人员_编辑") @PostResource(name = "工作人员_编辑", path = "/sysUser/edit") @BusinessLog public ResponseData edit(@RequestBody @Validated(SysUserRequest.edit.class) SysUserAddUpdateRequest req) { SysUserRequest sysUserRequest = BeanUtil.toBean(req, SysUserRequest.class); // 统一的工作人员昵称 String nickName = GeneralUtil.getUnifyNickName(req.getNickName(), req.getRealName()); sysUserRequest.setNickName(nickName); sysUserRequest.setRealName(nickName); sysUserService.edit(sysUserRequest); // C端用户更新 Customer user = customerService.getOne(Wrappers.lambdaQuery().eq(Customer::getSysUserId, sysUserRequest.getUserId()).last("LIMIT 1")); Customer customer = new Customer(); customer.setCustomerId(user.getCustomerId()); // 员工信息 customer.setNickName(nickName); customer.setRealName(nickName); customer.setAvatar(sysUserRequest.getAvatar()); if (!user.getAccount().equals(sysUserRequest.getPhone())) { // 修改手机号,强一致更新账号 customer.setTelephone(sysUserRequest.getPhone()); sysUserService.changeSysUserPhone(req.getUserId(), sysUserRequest.getPhone()); customerService.changeCustomerPhone(req.getUserId(), sysUserRequest.getPhone()); } customer.setPostTypes(req.getPostTypes()); // 岗位类型选”其他“,岗位ID置"" if (StrUtil.isNotBlank(req.getPostTypes()) && PostTypeEnum.OTHER.getCode().toString().equals(req.getPostTypes())) { req.setPostIds(""); } customer.setPostIds(req.getPostIds()); // 性格分析师上下架状态:1上架,2下架,3无岗位 Integer customerMentalAnalysisStatus = customerService.getCustomerMentalAnalysisStatus(req.getUserId(), user.getPostIds(), req.getPostIds()); customer.setMentalAnalysisStatus(customerMentalAnalysisStatus); Integer workStatus = null; if (customerMentalAnalysisStatus != null && customerMentalAnalysisStatus.equals(CustomerMentalAnalysisStatusEnum.OFF_WORK.getCode())) { // 更改了性格分析师岗位,下班 workStatus = 2; } // 更改了咨询师岗位 if ((StrUtil.isBlank(req.getPostIds()) || (StrUtil.isNotBlank(req.getPostIds()) && req.getPostIds().indexOf(PostIdEnum.PO_22.getCode().toString()) == -1)) && (StrUtil.isNotBlank(user.getPostIds()) && user.getPostIds().indexOf(PostIdEnum.PO_22.getCode().toString()) != -1)) { this.counsellingInfoService.update(new LambdaUpdateWrapper().eq(CounsellingInfo::getUserId, customer.getCustomerId()).set(CounsellingInfo::getListingStatus, 2)); // 更改了咨询师岗位,下班 workStatus = 2; } if (StrUtil.isNotBlank(req.getPostIds())) { String targetCode = PostIdEnum.PO_22.getCode().toString(); boolean existP22 = Arrays.stream(req.getPostIds().split(",")).anyMatch(pid -> targetCode.equals(pid)); if (existP22) { // 存在咨询师岗位,下班 workStatus = 2; } } customer.setWorkStatus(workStatus); customerService.updateCustomerRemoveCache(customer); this.grantRole(sysUserRequest); return new SuccessResponseData<>(); } /** * 修改状态 * * @author luojie * @date 2020/11/6 13:50 */ @ApiOperation("工作人员_修改状态") @PostResource(name = "工作人员_修改状态", path = "/sysUser/changeStatus") @BusinessLog public ResponseData changeStatus(@RequestBody @Validated(SysUserRequest.changeStatus.class) SysUserRequest sysUserRequest) { sysUserService.editStatus(sysUserRequest); Customer customer = new Customer(); customer.setCustomerId(sysUserRequest.getUserId()); customer.setStatusFlag(sysUserRequest.getStatusFlag()); customerService.updateCustomerRemoveCache(customer); return new SuccessResponseData<>(); } @ApiOperation("工作人员_修改上下班状态") @PostResource(name = "工作人员_修改上下班状态", path = "/sysUser/changeWorkStatus") @BusinessLog public ResponseData changeWorkStatus(@RequestBody SysUserWorkStatusRequest sysUserRequest) { // C端用户更新 Customer user = customerService.getOne(Wrappers.lambdaQuery().eq(Customer::getSysUserId, sysUserRequest.getUserId()).last("LIMIT 1")); Customer customer = new Customer(); customer.setCustomerId(user.getCustomerId()); customer.setWorkStatus(sysUserRequest.getWorkStatus()); customerService.updateCustomerRemoveCache(customer); return new SuccessResponseData<>(); } /** * 重置密码 */ @ApiOperation("工作人员_重置密码") @PostResource(name = "工作人员_重置密码", path = RuleConstants.NOT_LOGIN + "/sysUser/resetPwd", requiredPermission = false) @BusinessLog public ResponseData resetPwd(@RequestBody SysUserResetPwdRequest req) { return sysUserBusinessService.resetPwd(req); } @ApiOperation("工作人员_ID重置密码") @PostResource(name = "工作人员_ID重置密码", path = "/sysUser/resetPwdById", requiredPermission = false) @BusinessLog public ResponseData resetPwdById(@RequestBody SysUserResetPwdByIdRequest req) { return sysUserBusinessService.resetPwdById(req); } /** * 修改密码 */ @SneakyThrows @ApiOperation("工作人员_修改密码") @PostResource(name = "工作人员_修改密码", path = "/sysUser/updatePwd", requiredPermission = false) @BusinessLog public ResponseData updatePwd(@RequestBody SysUserEditPwdRequest req) { // 验证码通过 sysSmsInfoService.validateSmsInfo(req); SysUser sysUser = sysUserService.getOne( Wrappers.lambdaQuery() .and(w -> w.eq(SysUser::getAccount, req.getPhone()) .or().eq(SysUser::getPhone, req.getPhone()) ) .eq(SysUser::getStatusFlag, StatusEnum.ENABLE.getCode()) .eq(SysUser::getDelFlag, DeleteEnum.NOT_DELETE.getCode()) .last("LIMIT 1") ); if (sysUser == null || (!req.getPhone().equals(sysUser.getAccount()) && !req.getPhone().equals(sysUser.getPhone()))) { return new ErrorResponseData<>("手机号验证错误"); } SysUserRequest sysUserRequest = BeanUtil.toBean(req, SysUserRequest.class); sysUserService.editPassword(sysUserRequest); // C端用户更新 Customer user = customerService.getOne(Wrappers.lambdaQuery().eq(Customer::getSysUserId, sysUserRequest.getUserId()).last("LIMIT 1")); Customer customer = new Customer(); customer.setCustomerId(user.getCustomerId()); String password = req.getNewPassword(); customer.setPassword(passwordStoredEncryptApi.encrypt(password)); customerService.updateCustomerRemoveCache(customer); return new SuccessResponseData<>(); } /** * 授权角色 * * @author luojie * @date 2020/11/6 13:50 */ @ApiOperation("工作人员_授权角色") @PostResource(name = "工作人员_授权角色", path = "/sysUser/grantRole") @BusinessLog public ResponseData grantRole(@RequestBody @Validated(SysUserRequest.grantRole.class) SysUserRequest sysUserRequest) { sysUserService.grantRole(sysUserRequest); return new SuccessResponseData<>(); } /** * 授权数据 * * @author luojie * @date 2020/11/6 13:50 */ //@ApiOperation("工作人员_授权数据") @PostResource(name = "工作人员_授权数据", path = "/sysUser/grantData") @BusinessLog public ResponseData grantData(@RequestBody @Validated(SysUserRequest.grantData.class) SysUserRequest sysUserRequest) { sysUserService.grantData(sysUserRequest); return new SuccessResponseData<>(); } /** * 查看工作人员 * * @author luojie * @date 2020/11/6 13:50 */ @ApiOperation("工作人员_详情") @GetResource(name = "工作人员_详情", path = "/sysUser/detail") public ResponseData detail(Long userId) { SysUserDTO sysUserDTO = sysUserService.getWorkerDetail(userId); List sysUserRoleList = this.sysUserRoleService.findRoleIdsByUserId(sysUserDTO.getUserId()); if (CollectionUtil.isNotEmpty(sysUserRoleList)){ sysUserDTO.setGrantRoleIdList(sysUserRoleList); List sysRoles = this.sysRoleService.getRolesByIds(sysUserRoleList); sysUserDTO.setRoleNames(sysRoles.stream().map(SysRoleDTO::getRoleName).collect(Collectors.joining())); } if (StrUtil.isNotBlank(sysUserDTO.getPostTypes())) { sysUserDTO.setPostTypeStr(Arrays.stream(sysUserDTO.getPostTypes().split(",")) .map(o -> PostTypeEnum.codeToName(Integer.valueOf(o))) .collect(Collectors.joining(",")) ); } if (StrUtil.isNotBlank(sysUserDTO.getPostIds())) { sysUserDTO.setPostIdStr(Arrays.stream(sysUserDTO.getPostIds().split(",")) .map(o -> PostIdEnum.codeToName(Integer.valueOf(o))) .collect(Collectors.joining(",")) ); } return new SuccessResponseData<>(sysUserDTO); } /** * 获取当前登录用户的信息 * * @author fengshuonan * @date 2021/1/1 19:01 */ @ApiOperation("获取当前登录用户的信息") @GetResource(name = "获取当前登录用户的信息", path = "/sysUser/currentUserInfo", requiredPermission = false) public ResponseData currentUserInfo() { LoginUser loginUser = LoginContext.me().getLoginUser(); SysUserRequest sysUserRequest = new SysUserRequest(); sysUserRequest.setUserId(loginUser.getUserId()); return new SuccessResponseData<>(sysUserService.detail(sysUserRequest)); } @ApiOperation("工作人员_分页查询") @GetResource(name = "工作人员_分页查询", path = "/sysUser/page") @Wrapper(UserExpandWrapper.class) public ResponseData> page(SysUserPageRequest req) { PageResult userDTOPageResult = sysUserService.getWorkerPage(req); if (CollectionUtil.isNotEmpty(userDTOPageResult.getRows())){ userDTOPageResult.getRows().forEach(sysUserDTO -> { List sysUserRoleList = this.sysUserRoleService.findRoleIdsByUserId(sysUserDTO.getUserId()); if (CollectionUtil.isNotEmpty(sysUserRoleList)){ sysUserDTO.setGrantRoleIdList(sysUserRoleList); try { List sysRoles = this.sysRoleService.getRolesByIds(sysUserRoleList); sysUserDTO.setRoleNames(sysRoles.stream().map(SysRoleDTO::getRoleName).collect(Collectors.joining())); } catch (Exception e) {} } if (StrUtil.isNotBlank(sysUserDTO.getPostTypes())) { sysUserDTO.setPostTypeStr(Arrays.stream(sysUserDTO.getPostTypes().split(",")) .map(o -> PostTypeEnum.codeToName(Integer.valueOf(o))) .collect(Collectors.joining(",")) ); } if (StrUtil.isNotBlank(sysUserDTO.getPostIds())) { sysUserDTO.setPostIdStr(Arrays.stream(sysUserDTO.getPostIds().split(",")) .map(o -> PostIdEnum.codeToName(Integer.valueOf(o))) .collect(Collectors.joining(",")) ); } }); } return new SuccessResponseData<>(userDTOPageResult); } @ApiOperation("工作人员_选择") @GetResource(name = "工作人员_选择", path = "/sysUser/getWorkerList") @ApiImplicitParams({ @ApiImplicitParam(name = "nickName", value = "昵称", dataTypeClass = String.class), @ApiImplicitParam(name = "realName", value = "姓名", dataTypeClass = String.class), @ApiImplicitParam(name = "postTypes", value = "岗位类型(逗号拼接)", dataTypeClass = String.class), @ApiImplicitParam(name = "postIds", value = "岗位(逗号拼接)", dataTypeClass = String.class), }) public ResponseData> getWorkerList(String nickName, String realName, String postTypes, String postIds) { List list = customerService.list( Wrappers.lambdaQuery() .select(Customer::getCustomerId, Customer::getNickName, Customer::getRealName, Customer::getPostTypes, Customer::getPostIds) .eq(Customer::getUserType, CustomerUserTypeEnum.WORKER.getCode()) .eq(Customer::getStatusFlag, StatusEnum.ENABLE.getCode()) .eq(StrUtil.isNotEmpty(nickName), Customer::getNickName, nickName) .eq(StrUtil.isNotEmpty(realName), Customer::getRealName, realName) ).stream() .filter(o -> { boolean postTypeFlag = true; if (StrUtil.isNotEmpty(postTypes)) { postTypeFlag = false; if (StrUtil.isNotEmpty(o.getPostTypes())) { String[] array1 = o.getPostTypes().split(","); String[] array2 = postTypes.split(","); // 判断2个数组是否有交集 postTypeFlag = CollUtil.containsAny(CollUtil.newArrayList(array1), CollUtil.newArrayList(array2)); } } boolean postIdFlag = true; if (StrUtil.isNotEmpty(postIds)) { postIdFlag = false; if (StrUtil.isNotEmpty(o.getPostIds())) { String[] array1 = o.getPostIds().split(","); String[] array2 = postIds.split(","); // 判断2个数组是否有交集 postIdFlag = CollUtil.containsAny(CollUtil.newArrayList(array1), CollUtil.newArrayList(array2)); } } if (postTypeFlag && postIdFlag) { return true; } else { return false; } }) .map(o -> { SimpleDict vo = new SimpleDict(); vo.setId(o.getCustomerId()); vo.setName(o.getNickName()); return vo; }).collect(Collectors.toList()); return new SuccessResponseData<>(list); } /** * 导出用户 * * @author luojie * @date 2020/11/6 13:57 */ //@ApiOperation("工作人员_导出") @GetResource(name = "工作人员_导出", path = "/sysUser/export") @BusinessLog public void export(HttpServletResponse response) { sysUserService.export(response); } /** * 获取用户选择树数据(用在系统通知,选择发送人的时候) * * @author liuhanqing * @date 2021/1/15 8:28 */ //@ApiOperation("获取用户选择树数据(用在系统通知,选择发送人的时候)") @GetResource(name = "获取用户选择树数据(用在系统通知,选择发送人的时候)", path = "/sysUser/getUserSelectTree") public ResponseData> getUserTree() { return new SuccessResponseData<>(this.sysUserService.userSelectTree(new SysUserRequest())); } /** * 获取用户数据范围列表 * * @author luojie * @date 2020/11/6 13:51 */ //@ApiOperation("工作人员_获取用户数据范围列表") @GetResource(name = "工作人员_获取用户数据范围列表", path = "/sysUser/getUserDataScope") public ResponseData> ownData(@Validated(SysUserRequest.detail.class) SysUserRequest sysUserRequest) { List userBindDataScope = sysUserService.getUserBindDataScope(sysUserRequest.getUserId()); return new SuccessResponseData<>(userBindDataScope); } /** * 获取用户的角色列表 * * @author luojie * @date 2020/11/6 13:50 */ @ApiOperation("工作人员_获取用户的角色列表") @GetResource(name = "工作人员_获取用户的角色列表", path = "/sysUser/getUserRoles") public ResponseData> ownRole(@Validated(SysUserRequest.detail.class) SysUserRequest sysUserRequest) { Long userId = sysUserRequest.getUserId(); return new SuccessResponseData<>(sysUserRoleService.findListByUserId(userId)); } /** * 用户下拉列表,可以根据姓名搜索 *

* 本接口不查询超级管理员 * * @param sysUserRequest 请求参数:name 姓名(可选) * @return 返回除超级管理员外的用户列表 * @author luojie * @date 2020/11/6 09:49 */ //@ApiOperation("工作人员_选择器") @GetResource(name = "工作人员_选择器", path = "/sysUser/selector") public ResponseData> selector(SysUserRequest sysUserRequest) { return new SuccessResponseData<>(sysUserService.selector(sysUserRequest)); } /** * 用户下拉列表,用户权限下用户 *

* 本接口不查询超级管理员 * * @param sysUserRequest 请求参数:name 姓名(可选) * @return 返回除超级管理员外的用户列表 * @author yx * @date 2023/02/21 09:49 */ //@ApiOperation("工作人员_选择器(权限)") @GetResource(name = "工作人员_选择器(权限)", path = "/sysUser/selectorByAuthority", requiredPermission = false) public ResponseData> selectorByAuthority(SysUserRequest sysUserRequest) { return new SuccessResponseData<>(sysUserService.selectorByAuthority(sysUserRequest)); } /** * 用户下拉列表,可以根据姓名搜索 *

* 本接口可查询到超级管理员,包含所有用户 * * @param sysUserRequest 请求参数:name 姓名(可选) * @return 返回除超级管理员外的用户列表 * @author luojie * @date 2020/11/6 09:49 */ //@ApiOperation("工作人员_选择器") @GetResource(name = "工作人员_选择器", path = "/sysUser/selectorAll") public ResponseData> selectorAll(SysUserRequest sysUserRequest) { return new SuccessResponseData<>(sysUserService.selectorWithAdmin(sysUserRequest)); } /** * 获取所有用户ID和名称列表 * * @author majianguo * @date 2022/1/17 14:24 **/ //@ApiOperation("获取所有用户ID和名称列表") @GetResource(name = "获取所有用户ID和名称列表", path = "/sysUser/getAllUserIdList") public ResponseData> getAllUserIdList() { return new SuccessResponseData<>(sysUserService.getAllUserIdList()); } /** * 运维平台接口检测 * * @author majianguo * @date 2022/1/27 14:29 **/ @GetResource(name = "运维平台接口检测", path = "/sysUser/devopsApiCheck", requiredLogin = false, requiredPermission = false) public ResponseData devopsApiCheck(SysUserRequest sysUserRequest) { return new SuccessResponseData<>(sysUserService.devopsApiCheck(sysUserRequest)); } /** * 根据用户主键获取用户对应的token * * @author majianguo * @date 2022/1/17 14:24 **/ @ApiOperation("根据用户主键获取用户对应的token") @GetResource(name = "根据用户主键获取用户对应的token", path = "/sysUser/getTokenByUserId") public ResponseData getTokenByUserId(Long userId) { return new SuccessResponseData<>(sysUserService.getTokenByUserId(userId)); } /** * 根据条件筛选用户 * * @author fengshuonan * @date 2022/6/17 14:46 */ //@ApiOperation("根据条件筛选用户") @GetResource(name = "根据条件筛选用户", path = "/sysUser/getUserListByConditions") public ResponseData> getUserListByConditions(SysUserRequest sysUserRequest) { return new SuccessResponseData<>(sysUserService.getUserListByConditions(sysUserRequest)); } /** * 获取用户列表,通过用户id集合 * * @author fengshuonan * @date 2022/9/25 10:27 */ //@ApiOperation("获取用户列表,通过用户id集合") @PostResource(name = "获取用户列表,通过用户id集合", path = "/sysUser/getUsersByUserIds") public ResponseData> getUsersByUserIds(@RequestBody @Validated(SysUserRequest.getUserList.class) SysUserRequest sysUserRequest) { return new SuccessResponseData<>(sysUserService.getUserInfoList(sysUserRequest.getUserIds())); } }