组织分页、用户分页接口添加名称拼音模糊查询

This commit is contained in:
yangsb
2024-03-15 15:58:31 +08:00
parent 9df3afcc73
commit c235cb07f3
9 changed files with 98 additions and 4 deletions
@@ -132,4 +132,16 @@ public class LambdaQueryWrapperX<T> extends LambdaQueryWrapper<T> {
return this;
}
@Override
public LambdaQueryWrapperX<T> or(boolean condition) {
super.or(condition);
return this;
}
@Override
public LambdaQueryWrapperX<T> or() {
super.or();
return this;
}
}
@@ -33,4 +33,13 @@ public class OrganPageReqVO extends PageParam {
@Schema(description = "创建时间")
private LocalDateTime[] createTime;
/**
* 拼音首字母
*/
private String pyFirstChar;
/**
* 全拼
*/
private String pyAll;
}
@@ -59,7 +59,6 @@ public class UserController {
@Operation(summary = "新增用户")
@PreAuthorize("@ss.hasPermission('system:user:create')")
public CommonResult<Long> createUser(@Valid @RequestBody UserSaveReqVO reqVO) {
System.out.println(reqVO);
Long id = userService.createUser(reqVO);
return success(id);
}
@@ -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;
}
@@ -93,4 +93,13 @@ public class AdminUserDO extends OrganBaseDO {
*/
private LocalDateTime loginDate;
/**
* 拼音首字母
*/
private String pinyinInitial;
/**
* 全拼
*/
private String pinyinFull;
}
@@ -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<OrganizationDO> {
default PageResult<OrganizationDO> selectPage(OrganPageReqVO reqVO) {
return selectPage(reqVO, new LambdaQueryWrapperX<OrganizationDO>()
.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));
}
@@ -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<AdminUserDO> {
.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));
}
@@ -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<OrganizationDO> 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);
}
@@ -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<AdminUserDO> 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<AdminUserDO> 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 旧密码
*/