diff --git a/cf-framework/cf-spring-boot-starter-mybatis/src/main/java/com/cf/imes/framework/mybatis/core/query/LambdaQueryWrapperX.java b/cf-framework/cf-spring-boot-starter-mybatis/src/main/java/com/cf/imes/framework/mybatis/core/query/LambdaQueryWrapperX.java index 1c92714f9..0e14081f1 100644 --- a/cf-framework/cf-spring-boot-starter-mybatis/src/main/java/com/cf/imes/framework/mybatis/core/query/LambdaQueryWrapperX.java +++ b/cf-framework/cf-spring-boot-starter-mybatis/src/main/java/com/cf/imes/framework/mybatis/core/query/LambdaQueryWrapperX.java @@ -132,4 +132,16 @@ public class LambdaQueryWrapperX extends LambdaQueryWrapper { return this; } + @Override + public LambdaQueryWrapperX or(boolean condition) { + super.or(condition); + return this; + } + + @Override + public LambdaQueryWrapperX or() { + super.or(); + return this; + } + } diff --git a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/controller/admin/organ/vo/organ/OrganPageReqVO.java b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/controller/admin/organ/vo/organ/OrganPageReqVO.java index 13a2e1cd7..c4dfa956a 100644 --- a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/controller/admin/organ/vo/organ/OrganPageReqVO.java +++ b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/controller/admin/organ/vo/organ/OrganPageReqVO.java @@ -33,4 +33,13 @@ public class OrganPageReqVO extends PageParam { @Schema(description = "创建时间") private LocalDateTime[] createTime; + /** + * 拼音首字母 + */ + private String pyFirstChar; + /** + * 全拼 + */ + private String pyAll; + } diff --git a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/controller/admin/user/UserController.java b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/controller/admin/user/UserController.java index b9dfcdf6b..25f039023 100644 --- a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/controller/admin/user/UserController.java +++ b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/controller/admin/user/UserController.java @@ -59,7 +59,6 @@ public class UserController { @Operation(summary = "新增用户") @PreAuthorize("@ss.hasPermission('system:user:create')") public CommonResult createUser(@Valid @RequestBody UserSaveReqVO reqVO) { - System.out.println(reqVO); Long id = userService.createUser(reqVO); return success(id); } diff --git a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/controller/admin/user/vo/user/UserPageReqVO.java b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/controller/admin/user/vo/user/UserPageReqVO.java index ca026c464..341e52ed4 100644 --- a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/controller/admin/user/vo/user/UserPageReqVO.java +++ b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/controller/admin/user/vo/user/UserPageReqVO.java @@ -19,6 +19,9 @@ import static com.cf.imes.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH @EqualsAndHashCode(callSuper = true) public class UserPageReqVO extends PageParam { + @Schema(description = "用户昵称") + private String nickname; + @Schema(description = "用户账号,模糊匹配", example = "chenfeng") private String username; @@ -35,4 +38,13 @@ public class UserPageReqVO extends PageParam { @Schema(description = "部门编号,同时筛选子部门", example = "1024") private Long deptId; + /** + * 拼音首字母 + */ + private String pyFirstChar; + /** + * 全拼 + */ + private String pyAll; + } diff --git a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/dal/dataobject/user/AdminUserDO.java b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/dal/dataobject/user/AdminUserDO.java index 1b7f70e46..c54d2c4de 100644 --- a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/dal/dataobject/user/AdminUserDO.java +++ b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/dal/dataobject/user/AdminUserDO.java @@ -93,4 +93,13 @@ public class AdminUserDO extends OrganBaseDO { */ private LocalDateTime loginDate; + /** + * 拼音首字母 + */ + private String pinyinInitial; + /** + * 全拼 + */ + private String pinyinFull; + } diff --git a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/dal/mysql/organ/OrganMapper.java b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/dal/mysql/organ/OrganMapper.java index 63709a92c..43c1acb19 100644 --- a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/dal/mysql/organ/OrganMapper.java +++ b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/dal/mysql/organ/OrganMapper.java @@ -1,5 +1,6 @@ package com.cf.imes.module.system.dal.mysql.organ; +import cn.hutool.core.util.StrUtil; import com.cf.imes.framework.common.pojo.PageResult; import com.cf.imes.framework.mybatis.core.mapper.BaseMapperX; import com.cf.imes.framework.mybatis.core.query.LambdaQueryWrapperX; @@ -19,11 +20,15 @@ public interface OrganMapper extends BaseMapperX { default PageResult selectPage(OrganPageReqVO reqVO) { return selectPage(reqVO, new LambdaQueryWrapperX() - .likeIfPresent(OrganizationDO::getName, reqVO.getName()) .likeIfPresent(OrganizationDO::getContactName, reqVO.getContactName()) .likeIfPresent(OrganizationDO::getContactMobile, reqVO.getContactMobile()) .eqIfPresent(OrganizationDO::getStatus, reqVO.getStatus()) .betweenIfPresent(OrganizationDO::getCreateTime, reqVO.getCreateTime()) + .likeIfPresent(OrganizationDO::getName, reqVO.getName()) + .or(StrUtil.isNotBlank(reqVO.getName())) + .likeIfPresent(OrganizationDO::getPinyinFull, reqVO.getPyAll()) + .or(StrUtil.isNotBlank(reqVO.getName())) + .likeIfPresent(OrganizationDO::getPinyinInitial, reqVO.getPyFirstChar()) .orderByDesc(OrganizationDO::getId)); } diff --git a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/dal/mysql/user/AdminUserMapper.java b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/dal/mysql/user/AdminUserMapper.java index ee17e7bb7..f7816d935 100644 --- a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/dal/mysql/user/AdminUserMapper.java +++ b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/dal/mysql/user/AdminUserMapper.java @@ -1,5 +1,6 @@ package com.cf.imes.module.system.dal.mysql.user; +import cn.hutool.core.util.StrUtil; import com.cf.imes.framework.common.pojo.PageResult; import com.cf.imes.framework.mybatis.core.mapper.BaseMapperX; import com.cf.imes.framework.mybatis.core.query.LambdaQueryWrapperX; @@ -38,6 +39,11 @@ public interface AdminUserMapper extends BaseMapperX { .eqIfPresent(AdminUserDO::getStatus, reqVO.getStatus()) .betweenIfPresent(AdminUserDO::getCreateTime, reqVO.getCreateTime()) .inIfPresent(AdminUserDO::getDeptId, deptIds) + .likeIfPresent(AdminUserDO::getNickname, reqVO.getNickname()) + .or(StrUtil.isNotBlank(reqVO.getNickname())) + .likeIfPresent(AdminUserDO::getPinyinFull, reqVO.getPyAll()) + .or(StrUtil.isNotBlank(reqVO.getNickname())) + .likeIfPresent(AdminUserDO::getPinyinInitial, reqVO.getPyFirstChar()) .orderByDesc(AdminUserDO::getId)); } diff --git a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/service/organ/OrganServiceImpl.java b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/service/organ/OrganServiceImpl.java index 3660367c7..bf31015eb 100644 --- a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/service/organ/OrganServiceImpl.java +++ b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/service/organ/OrganServiceImpl.java @@ -109,6 +109,9 @@ public class OrganServiceImpl implements OrganService { // 创建组织 OrganizationDO tenant = BeanUtils.toBean(createReqVO, OrganizationDO.class); String pinyinFull = PinYinUtils.convertToPinyin(tenant.getName()); + if(StrUtil.isNotBlank(pinyinFull)) { + pinyinFull = pinyinFull.replaceAll(" ", ""); + } tenant.setPinyinFull(pinyinFull); tenant.setCode(StrUtil.isBlank(createReqVO.getCode())? pinyinFull : createReqVO.getCode()); tenant.setLarge(createReqVO.getLarge() == null ? Boolean.FALSE : createReqVO.getLarge()); @@ -164,7 +167,14 @@ public class OrganServiceImpl implements OrganService { validTenantWebsiteDuplicate(updateReqVO.getWebsite(), updateReqVO.getId()); // 校验套餐被禁用 TenantPackageDO tenantPackage = tenantPackageService.validTenantPackage(updateReqVO.getPackageId()); - + if(!Objects.equals(tenant.getName(), updateReqVO.getName())) { + String pinyinFull = PinYinUtils.convertToPinyin(tenant.getName()); + if(StrUtil.isNotBlank(pinyinFull)) { + pinyinFull = pinyinFull.replaceAll(" ", ""); + } + tenant.setPinyinFull(pinyinFull); + tenant.setPinyinInitial(PinYinUtils.convertFirstChar(tenant.getName())); + } // 更新组织 OrganizationDO updateObj = BeanUtils.toBean(updateReqVO, OrganizationDO.class); organMapper.updateById(updateObj); @@ -257,6 +267,10 @@ public class OrganServiceImpl implements OrganService { @Override public PageResult getOrganPage(OrganPageReqVO pageReqVO) { + if(StrUtil.isNotBlank(pageReqVO.getName())) { + pageReqVO.setPyFirstChar(PinYinUtils.convertFirstChar(pageReqVO.getName())); + pageReqVO.setPyAll(PinYinUtils.convertToPinyin(pageReqVO.getName()).replaceAll(" ", "")); + } return organMapper.selectPage(pageReqVO); } diff --git a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/service/user/AdminUserServiceImpl.java b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/service/user/AdminUserServiceImpl.java index 6db72259c..989d11c53 100644 --- a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/service/user/AdminUserServiceImpl.java +++ b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/service/user/AdminUserServiceImpl.java @@ -10,6 +10,7 @@ import com.cf.imes.framework.common.exception.util.ServiceExceptionUtil; import com.cf.imes.framework.common.pojo.PageResult; import com.cf.imes.framework.common.util.collection.CollectionUtils; import com.cf.imes.framework.common.util.object.BeanUtils; +import com.cf.imes.framework.common.util.pinyin.PinYinUtils; import com.cf.imes.framework.datapermission.core.util.DataPermissionUtils; import com.cf.imes.framework.security.core.util.SecurityFrameworkUtils; import com.cf.imes.module.infra.api.file.FileApi; @@ -96,6 +97,13 @@ public class AdminUserServiceImpl implements AdminUserService { AdminUserDO user = BeanUtils.toBean(createReqVO, AdminUserDO.class); user.setStatus(CommonStatusEnum.ENABLE.getStatus()); // 默认开启 user.setPassword(encodePassword(createReqVO.getPassword())); // 加密密码 + + String pinyinFull = PinYinUtils.convertToPinyin(user.getNickname()); + if (StrUtil.isNotBlank(pinyinFull)) { + pinyinFull = pinyinFull.replaceAll(" ", ""); + } + user.setPinyinFull(pinyinFull); + user.setPinyinInitial(PinYinUtils.convertFirstChar(user.getNickname())); userMapper.insert(user); // 插入关联岗位 if (CollectionUtil.isNotEmpty(user.getPostIds())) { @@ -114,6 +122,17 @@ public class AdminUserServiceImpl implements AdminUserService { updateReqVO.getMobile(), updateReqVO.getEmail(), updateReqVO.getDeptId(), updateReqVO.getPostIds(), updateReqVO.getOrganId()); // 更新用户 AdminUserDO updateObj = BeanUtils.toBean(updateReqVO, AdminUserDO.class); + + if(!Objects.isNull(updateReqVO.getNickname())) { + + String pinyinFull = PinYinUtils.convertToPinyin(updateReqVO.getNickname()); + if (StrUtil.isNotBlank(pinyinFull)) { + pinyinFull = pinyinFull.replaceAll(" ", ""); + } + updateObj.setPinyinFull(pinyinFull); + updateObj.setPinyinInitial(PinYinUtils.convertFirstChar(updateReqVO.getNickname())); + } + userMapper.updateById(updateObj); // 更新岗位 updateUserPost(updateReqVO, updateObj); @@ -221,7 +240,14 @@ public class AdminUserServiceImpl implements AdminUserService { @Override public PageResult getUserPage(UserPageReqVO reqVO) { - return userMapper.selectPage(reqVO, getDeptCondition(reqVO.getDeptId())); + if (StrUtil.isNotBlank(reqVO.getNickname())) { + reqVO.setPyFirstChar(PinYinUtils.convertFirstChar(reqVO.getNickname())); + reqVO.setPyAll(PinYinUtils.convertToPinyin(reqVO.getNickname()).replaceAll(" ", "")); + } + + PageResult adminUserDOPageResult = userMapper.selectPage(reqVO, getDeptCondition(reqVO.getDeptId())); + + return adminUserDOPageResult; } @Override @@ -284,6 +310,7 @@ public class AdminUserServiceImpl implements AdminUserService { /** * 获得部门条件:查询指定部门的子部门编号们,包括自身 + * * @param deptId 部门编号 * @return 部门编号集合 */ @@ -383,6 +410,7 @@ public class AdminUserServiceImpl implements AdminUserService { /** * 校验旧密码 + * * @param id 用户 id * @param oldPassword 旧密码 */