Ver Fonte

/organization/user/page 用户列表(分页) 没有部门也需要限制用户类型

phoenix há 1 ano atrás
pai
commit
538b0a5856

+ 33 - 55
src/main/java/com/xjrsoft/module/organization/controller/UserController.java

@@ -7,7 +7,6 @@ import cn.hutool.core.bean.BeanUtil;
 import cn.hutool.core.lang.TypeReference;
 import cn.hutool.core.util.ObjectUtil;
 import cn.hutool.core.util.StrUtil;
-import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.toolkit.StringPool;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
@@ -25,54 +24,16 @@ import com.xjrsoft.common.utils.RedisUtil;
 import com.xjrsoft.common.utils.VoToColumnUtil;
 import com.xjrsoft.config.CommonPropertiesConfig;
 import com.xjrsoft.module.base.service.IBaseClassService;
-import com.xjrsoft.module.organization.dto.AddUserDto;
-import com.xjrsoft.module.organization.dto.BindOpenidDto;
-import com.xjrsoft.module.organization.dto.LoginResetPasswordDto;
-import com.xjrsoft.module.organization.dto.RegisterDto;
-import com.xjrsoft.module.organization.dto.ResetPasswordDto;
-import com.xjrsoft.module.organization.dto.UpdateInfoDto;
-import com.xjrsoft.module.organization.dto.UpdatePasswordDto;
-import com.xjrsoft.module.organization.dto.UpdateUserDto;
-import com.xjrsoft.module.organization.dto.UserPageDto;
-import com.xjrsoft.module.organization.dto.UserStudentAddDto;
-import com.xjrsoft.module.organization.dto.UserStudentBindDto;
-import com.xjrsoft.module.organization.dto.UserStudentDeleteDto;
-import com.xjrsoft.module.organization.entity.Department;
-import com.xjrsoft.module.organization.entity.Post;
-import com.xjrsoft.module.organization.entity.Role;
-import com.xjrsoft.module.organization.entity.User;
-import com.xjrsoft.module.organization.entity.UserDeptRelation;
-import com.xjrsoft.module.organization.entity.UserPostRelation;
-import com.xjrsoft.module.organization.entity.UserRoleRelation;
-import com.xjrsoft.module.organization.service.IDepartmentService;
-import com.xjrsoft.module.organization.service.IPostService;
-import com.xjrsoft.module.organization.service.IRoleService;
-import com.xjrsoft.module.organization.service.IUserDeptRelationService;
-import com.xjrsoft.module.organization.service.IUserPostRelationService;
-import com.xjrsoft.module.organization.service.IUserRoleRelationService;
-import com.xjrsoft.module.organization.service.IUserService;
-import com.xjrsoft.module.organization.service.IUserStudentService;
+import com.xjrsoft.module.organization.dto.*;
+import com.xjrsoft.module.organization.entity.*;
+import com.xjrsoft.module.organization.service.*;
 import com.xjrsoft.module.organization.utils.OrganizationUtil;
-import com.xjrsoft.module.organization.vo.UserDeptVo;
-import com.xjrsoft.module.organization.vo.UserInfoVo;
-import com.xjrsoft.module.organization.vo.UserListVo;
-import com.xjrsoft.module.organization.vo.UserPageVo;
-import com.xjrsoft.module.organization.vo.UserPostVo;
-import com.xjrsoft.module.organization.vo.UserRoleVo;
-import com.xjrsoft.module.organization.vo.UserStudentVo;
-import com.xjrsoft.module.organization.vo.UserVo;
+import com.xjrsoft.module.organization.vo.*;
 import com.xjrsoft.module.oss.factory.OssFactory;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import lombok.AllArgsConstructor;
-import org.springframework.web.bind.annotation.DeleteMapping;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.PutMapping;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RequestParam;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.bind.annotation.*;
 import org.springframework.web.multipart.MultipartFile;
 
 import javax.validation.Valid;
@@ -177,17 +138,34 @@ public class UserController {
 
             return R.ok(pageOutput);
         }else {
-            LambdaQueryWrapper<User> queryWrapper = new LambdaQueryWrapper<>();
-            queryWrapper.like(StrUtil.isNotBlank(dto.getKeyword()), User::getName, dto.getKeyword())
-                    .or(StrUtil.isNotBlank(dto.getKeyword()), x -> x.like(StrUtil.isNotBlank(dto.getKeyword()), User::getCode, dto.getKeyword()))
-                    .like(StrUtil.isNotBlank(dto.getUserName()), User::getUserName, dto.getUserName())
-                    .like(StrUtil.isNotBlank(dto.getCode()), User::getCode, dto.getCode())
-                    .like(StrUtil.isNotBlank(dto.getName()), User::getName, dto.getName())
-                    .like(StrUtil.isNotBlank(dto.getMobile()), User::getMobile, dto.getMobile())
-                    .orderByDesc(User::getCreateDate)
-                    .select(User.class, x -> VoToColumnUtil.fieldsToColumns(UserPageVo.class).contains(x.getProperty()));
-
-            IPage<User> page = userService.page(ConventPage.getPage(dto),queryWrapper);
+//            LambdaQueryWrapper<User> queryWrapper = new LambdaQueryWrapper<>();
+//            queryWrapper.like(StrUtil.isNotBlank(dto.getKeyword()), User::getName, dto.getKeyword())
+//                    .or(StrUtil.isNotBlank(dto.getKeyword()), x -> x.like(StrUtil.isNotBlank(dto.getKeyword()), User::getCode, dto.getKeyword()))
+//                    .like(StrUtil.isNotBlank(dto.getUserName()), User::getUserName, dto.getUserName())
+//                    .like(StrUtil.isNotBlank(dto.getCode()), User::getCode, dto.getCode())
+//                    .like(StrUtil.isNotBlank(dto.getName()), User::getName, dto.getName())
+//                    .like(StrUtil.isNotBlank(dto.getMobile()), User::getMobile, dto.getMobile())
+//                    .orderByDesc(User::getCreateDate)
+//                    .select(User.class, x -> VoToColumnUtil.fieldsToColumns(UserPageVo.class).contains(x.getProperty()));
+//
+//            IPage<User> page = userService.page(ConventPage.getPage(dto),queryWrapper);
+
+            IPage<UserPageVo> page = userService.selectJoinListPage(ConventPage.getPage(dto), UserPageVo.class,
+                    MPJWrappers.<User>lambdaJoin()
+                            .disableSubLogicDel()
+                            .distinct()
+                            .like(StrUtil.isNotBlank(dto.getKeyword()), User::getName, dto.getKeyword())
+                            .or(StrUtil.isNotBlank(dto.getKeyword()), x -> x.like(StrUtil.isNotBlank(dto.getKeyword()), User::getCode, dto.getKeyword()))
+                            .like(StrUtil.isNotBlank(dto.getUserName()), User::getUserName, dto.getUserName())
+                            .like(StrUtil.isNotBlank(dto.getCode()), User::getCode, dto.getCode())
+                            .like(StrUtil.isNotBlank(dto.getName()), User::getName, dto.getName())
+                            .like(StrUtil.isNotBlank(dto.getMobile()), User::getMobile, dto.getMobile())
+                            .eq(ObjectUtil.isNotNull(dto.getUserType()), Role::getId, dto.getUserType())
+                            .orderByDesc(User::getCreateDate)
+                            .select(User::getId)
+                            .select(User.class, x -> VoToColumnUtil.fieldsToColumns(UserPageVo.class).contains(x.getProperty()))
+                            .leftJoin(UserRoleRelation.class, UserRoleRelation::getUserId, User::getId)
+                            .leftJoin(Role.class, Role::getId, UserRoleRelation::getRoleId));
             PageOutput<UserPageVo> pageOutput = ConventPage.getPageOutput(page, UserPageVo.class);
             return R.ok(pageOutput);
         }