user
This commit is contained in:
@@ -1,110 +0,0 @@
|
|||||||
package org.nl.common.domain;
|
|
||||||
|
|
||||||
import cn.hutool.core.collection.CollUtil;
|
|
||||||
import cn.hutool.core.util.ObjectUtil;
|
|
||||||
import com.baomidou.mybatisplus.core.metadata.OrderItem;
|
|
||||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
||||||
import lombok.Data;
|
|
||||||
import net.dreamlu.mica.core.exception.ServiceException;
|
|
||||||
import org.nl.common.utils.StringUtils;
|
|
||||||
import org.nl.common.utils.sql.SqlUtil;
|
|
||||||
|
|
||||||
import java.io.Serializable;
|
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 分页参数
|
|
||||||
*/
|
|
||||||
@Data
|
|
||||||
public class PageQuery implements Serializable {
|
|
||||||
|
|
||||||
private static final long serialVersionUID = 1L;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 分页大小
|
|
||||||
*/
|
|
||||||
private Integer pageSize;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 当前页数
|
|
||||||
*/
|
|
||||||
private Integer pageNum;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 排序列
|
|
||||||
*/
|
|
||||||
private String orderByColumn;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 排序的方向desc或者asc
|
|
||||||
*/
|
|
||||||
private String isAsc;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 当前记录起始索引 默认值
|
|
||||||
*/
|
|
||||||
public static final int DEFAULT_PAGE_NUM = 1;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 每页显示记录数 默认值 默认查全部
|
|
||||||
*/
|
|
||||||
public static final int DEFAULT_PAGE_SIZE = Integer.MAX_VALUE;
|
|
||||||
|
|
||||||
public <T> Page<T> build() {
|
|
||||||
Integer pageNum = ObjectUtil.defaultIfNull(getPageNum(), DEFAULT_PAGE_NUM);
|
|
||||||
Integer pageSize = ObjectUtil.defaultIfNull(getPageSize(), DEFAULT_PAGE_SIZE);
|
|
||||||
if (pageNum <= 0) {
|
|
||||||
pageNum = DEFAULT_PAGE_NUM;
|
|
||||||
}
|
|
||||||
Page<T> page = new Page<>(pageNum, pageSize);
|
|
||||||
List<OrderItem> orderItems = buildOrderItem();
|
|
||||||
if (CollUtil.isNotEmpty(orderItems)) {
|
|
||||||
page.addOrder(orderItems);
|
|
||||||
}
|
|
||||||
return page;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 构建排序
|
|
||||||
*
|
|
||||||
* 支持的用法如下:
|
|
||||||
* {isAsc:"asc",orderByColumn:"id"} order by id asc
|
|
||||||
* {isAsc:"asc",orderByColumn:"id,createTime"} order by id asc,create_time asc
|
|
||||||
* {isAsc:"desc",orderByColumn:"id,createTime"} order by id desc,create_time desc
|
|
||||||
* {isAsc:"asc,desc",orderByColumn:"id,createTime"} order by id asc,create_time desc
|
|
||||||
*/
|
|
||||||
private List<OrderItem> buildOrderItem() {
|
|
||||||
if (StringUtils.isBlank(orderByColumn) || StringUtils.isBlank(isAsc)) {
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
String orderBy = SqlUtil.escapeOrderBySql(orderByColumn);
|
|
||||||
orderBy = StringUtils.toUnderScoreCase(orderBy);
|
|
||||||
|
|
||||||
// 兼容前端排序类型
|
|
||||||
isAsc = StringUtils.replaceEach(isAsc, new String[]{"ascending", "descending"}, new String[]{"asc", "desc"});
|
|
||||||
|
|
||||||
String[] orderByArr = orderBy.split(",");
|
|
||||||
String[] isAscArr = isAsc.split(",");
|
|
||||||
if (isAscArr.length != 1 && isAscArr.length != orderByArr.length) {
|
|
||||||
throw new ServiceException("排序参数有误");
|
|
||||||
}
|
|
||||||
|
|
||||||
List<OrderItem> list = new ArrayList<>();
|
|
||||||
// 每个字段各自排序
|
|
||||||
for (int i = 0; i < orderByArr.length; i++) {
|
|
||||||
String orderByStr = orderByArr[i];
|
|
||||||
String isAscStr = isAscArr.length == 1 ? isAscArr[0] : isAscArr[i];
|
|
||||||
if ("asc".equals(isAscStr)) {
|
|
||||||
list.add(OrderItem.asc(orderByStr));
|
|
||||||
} else if ("desc".equals(isAscStr)) {
|
|
||||||
list.add(OrderItem.desc(orderByStr));
|
|
||||||
} else {
|
|
||||||
throw new ServiceException("排序参数有误");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return list;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
@@ -1,17 +1,13 @@
|
|||||||
package org.nl.common.domain;
|
package org.nl.common.domain.query;
|
||||||
|
|
||||||
import com.alibaba.fastjson.JSONObject;
|
import com.alibaba.fastjson.JSONObject;
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||||
import lombok.Builder;
|
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
import org.nl.common.enums.QueryTEnum;
|
||||||
import org.nl.modules.tools.MapOf;
|
import org.nl.modules.tools.MapOf;
|
||||||
|
|
||||||
import java.util.Collection;
|
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
import java.util.List;
|
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.function.BiConsumer;
|
|
||||||
import java.util.stream.Collectors;
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* @author ZZQ
|
* @author ZZQ
|
||||||
@@ -20,10 +16,10 @@ import java.util.stream.Collectors;
|
|||||||
@Data
|
@Data
|
||||||
public class BaseQuery<T> {
|
public class BaseQuery<T> {
|
||||||
|
|
||||||
public Map<String,QParam> doP = MapOf.of("blurry",QParam.builder().k(new String[]{"name"}).type(QueryType.LK)
|
public Map<String, QParam> doP = MapOf.of("blurry", QParam.builder().k(new String[]{"name"}).type(QueryTEnum.LK)
|
||||||
,"startTime",QParam.builder().k(new String[]{"createTime"}).type(QueryType.LT)
|
,"startTime", QParam.builder().k(new String[]{"createTime"}).type(QueryTEnum.LT)
|
||||||
,"endTime",QParam.builder().k(new String[]{"createTime"}).type(QueryType.LE)
|
,"endTime", QParam.builder().k(new String[]{"createTime"}).type(QueryTEnum.LE)
|
||||||
,"sort",QParam.builder().k(new String[]{"sort"}).type(QueryType.BY)
|
,"sort", QParam.builder().k(new String[]{"sort"}).type(QueryTEnum.BY)
|
||||||
);
|
);
|
||||||
|
|
||||||
private String blurry;
|
private String blurry;
|
||||||
@@ -37,14 +33,14 @@ public class BaseQuery<T> {
|
|||||||
private String sort;
|
private String sort;
|
||||||
|
|
||||||
public QueryWrapper<T> build(){
|
public QueryWrapper<T> build(){
|
||||||
List<String> collect = doP.keySet().stream().collect(Collectors.toList());
|
this.paramMapping();
|
||||||
QueryWrapper<T> wrapper = new QueryWrapper<>();
|
QueryWrapper<T> wrapper = new QueryWrapper<>();
|
||||||
JSONObject json = (JSONObject)JSONObject.toJSON(this);
|
JSONObject json = (JSONObject)JSONObject.toJSON(this);
|
||||||
json.forEach((key, vel) -> {
|
json.forEach((key, vel) -> {
|
||||||
if (vel != null){
|
if (vel != null){
|
||||||
QParam qParam = doP.get(key);
|
QParam qParam = doP.get(key);
|
||||||
if (qParam != null){
|
if (qParam != null){
|
||||||
QueryType.build(qParam.type,wrapper,qParam.k,vel);
|
QueryTEnum.build(qParam.type,wrapper,qParam.k,vel);
|
||||||
}else {
|
}else {
|
||||||
wrapper.eq(key,vel);
|
wrapper.eq(key,vel);
|
||||||
}
|
}
|
||||||
@@ -52,10 +48,6 @@ public class BaseQuery<T> {
|
|||||||
});
|
});
|
||||||
return wrapper;
|
return wrapper;
|
||||||
}
|
}
|
||||||
}
|
|
||||||
@Builder
|
public void paramMapping(){};
|
||||||
@Data
|
|
||||||
class QParam{
|
|
||||||
public String[] k;
|
|
||||||
public QueryType type;
|
|
||||||
}
|
}
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package org.nl.common.domain;
|
package org.nl.common.domain.query;
|
||||||
|
|
||||||
import java.util.Objects;
|
import java.util.Objects;
|
||||||
|
|
||||||
@@ -0,0 +1,64 @@
|
|||||||
|
package org.nl.common.domain.query;
|
||||||
|
|
||||||
|
import cn.hutool.core.util.ObjectUtil;
|
||||||
|
import com.baomidou.mybatisplus.core.metadata.OrderItem;
|
||||||
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
import java.io.Serializable;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 分页参数
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
public class PageQuery implements Serializable {
|
||||||
|
|
||||||
|
private static final long serialVersionUID = 1L;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 分页大小
|
||||||
|
*/
|
||||||
|
private Integer pageSize;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 当前页数
|
||||||
|
*/
|
||||||
|
private Integer pageNum;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 排序列
|
||||||
|
*/
|
||||||
|
private String sort;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 排序的方向desc或者asc
|
||||||
|
*/
|
||||||
|
private Boolean isAsc;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 当前记录起始索引 默认值
|
||||||
|
*/
|
||||||
|
public static final int DEFAULT_PAGE_NUM = 1;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 每页显示记录数 默认值 默认查全部
|
||||||
|
*/
|
||||||
|
public static final int DEFAULT_PAGE_SIZE = Integer.MAX_VALUE;
|
||||||
|
|
||||||
|
public <T> Page<T> build() {
|
||||||
|
Integer pageNum = ObjectUtil.defaultIfNull(getPageNum(), DEFAULT_PAGE_NUM);
|
||||||
|
Integer pageSize = ObjectUtil.defaultIfNull(getPageSize(), DEFAULT_PAGE_SIZE);
|
||||||
|
if (pageNum <= 0) {
|
||||||
|
pageNum = DEFAULT_PAGE_NUM;
|
||||||
|
}
|
||||||
|
Page<T> page = new Page<>(pageNum, pageSize);
|
||||||
|
OrderItem item = new OrderItem();
|
||||||
|
item.setColumn(sort);
|
||||||
|
item.setAsc(isAsc);
|
||||||
|
page.addOrder(item);
|
||||||
|
return page;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,14 @@
|
|||||||
|
package org.nl.common.domain.query;
|
||||||
|
|
||||||
|
import lombok.Builder;
|
||||||
|
import org.nl.common.enums.QueryTEnum;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* @author ZZQ
|
||||||
|
* @Date 2022/12/15 1:41 下午
|
||||||
|
*/
|
||||||
|
@Builder
|
||||||
|
public class QParam {
|
||||||
|
public String[] k;
|
||||||
|
public QueryTEnum type;
|
||||||
|
}
|
||||||
@@ -1,19 +1,17 @@
|
|||||||
package org.nl.common.domain;
|
package org.nl.common.enums;
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||||
import lombok.Data;
|
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
import lombok.Setter;
|
import org.nl.common.domain.query.LConsumer;
|
||||||
|
|
||||||
import java.util.Collection;
|
import java.util.Collection;
|
||||||
import java.util.Map;
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* @author ZZQ
|
* @author ZZQ
|
||||||
* @Date 2022/12/14 8:26 下午
|
* @Date 2022/12/14 8:26 下午
|
||||||
*/
|
*/
|
||||||
@Getter
|
@Getter
|
||||||
public enum QueryType {
|
public enum QueryTEnum {
|
||||||
//
|
//
|
||||||
EQ((q, k, v) -> { q.eq(k[0],v); }),
|
EQ((q, k, v) -> { q.eq(k[0],v); }),
|
||||||
IN((q, key, o) -> { if (o instanceof Collection){ q.in(key[0],(Collection) o); } }),
|
IN((q, key, o) -> { if (o instanceof Collection){ q.in(key[0],(Collection) o); } }),
|
||||||
@@ -24,11 +22,11 @@ public enum QueryType {
|
|||||||
|
|
||||||
private LConsumer<QueryWrapper,String[], Object> doP;
|
private LConsumer<QueryWrapper,String[], Object> doP;
|
||||||
|
|
||||||
QueryType(LConsumer<QueryWrapper,String[], Object> doP) {
|
QueryTEnum(LConsumer<QueryWrapper,String[], Object> doP) {
|
||||||
this.doP = doP;
|
this.doP = doP;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void build(QueryType type, QueryWrapper q,String[] k ,Object v){
|
public static void build(QueryTEnum type, QueryWrapper q, String[] k , Object v){
|
||||||
type.getDoP().accept(q,k,v);
|
type.getDoP().accept(q,k,v);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -22,7 +22,6 @@ import cn.hutool.core.util.IdUtil;
|
|||||||
import cn.hutool.core.util.ObjectUtil;
|
import cn.hutool.core.util.ObjectUtil;
|
||||||
import cn.hutool.core.util.StrUtil;
|
import cn.hutool.core.util.StrUtil;
|
||||||
import com.alibaba.fastjson.JSONObject;
|
import com.alibaba.fastjson.JSONObject;
|
||||||
import com.google.common.collect.Lists;
|
|
||||||
import com.wf.captcha.base.Captcha;
|
import com.wf.captcha.base.Captcha;
|
||||||
import io.swagger.annotations.Api;
|
import io.swagger.annotations.Api;
|
||||||
import io.swagger.annotations.ApiOperation;
|
import io.swagger.annotations.ApiOperation;
|
||||||
@@ -41,7 +40,7 @@ import org.nl.modules.security.service.dto.AuthUserDto;
|
|||||||
import org.nl.modules.system.service.RoleService;
|
import org.nl.modules.system.service.RoleService;
|
||||||
import org.nl.modules.system.service.dto.UserDto;
|
import org.nl.modules.system.service.dto.UserDto;
|
||||||
import org.nl.modules.wql.core.bean.WQLObject;
|
import org.nl.modules.wql.core.bean.WQLObject;
|
||||||
import org.nl.system.service.user.UserService;
|
import org.nl.system.service.user.ISysUserService;
|
||||||
import org.springframework.http.HttpEntity;
|
import org.springframework.http.HttpEntity;
|
||||||
import org.springframework.http.HttpStatus;
|
import org.springframework.http.HttpStatus;
|
||||||
import org.springframework.http.ResponseEntity;
|
import org.springframework.http.ResponseEntity;
|
||||||
@@ -69,7 +68,7 @@ import java.util.concurrent.TimeUnit;
|
|||||||
public class AuthorizationController {
|
public class AuthorizationController {
|
||||||
private final RedisUtils redisUtils;
|
private final RedisUtils redisUtils;
|
||||||
private final OnlineUserService onlineUserService;
|
private final OnlineUserService onlineUserService;
|
||||||
private final UserService userService;
|
private final ISysUserService userService;
|
||||||
private final RoleService roleService;
|
private final RoleService roleService;
|
||||||
|
|
||||||
@Resource
|
@Resource
|
||||||
|
|||||||
@@ -18,7 +18,7 @@ package org.nl.modules.system.domain;
|
|||||||
import io.swagger.annotations.ApiModelProperty;
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
import lombok.Setter;
|
import lombok.Setter;
|
||||||
import org.nl.system.service.user.dao.User;
|
import org.nl.system.service.user.dao.SysUser;
|
||||||
|
|
||||||
import javax.validation.constraints.NotBlank;
|
import javax.validation.constraints.NotBlank;
|
||||||
import java.io.Serializable;
|
import java.io.Serializable;
|
||||||
@@ -38,7 +38,7 @@ public class Role implements Serializable {
|
|||||||
@ApiModelProperty(value = "ID", hidden = true)
|
@ApiModelProperty(value = "ID", hidden = true)
|
||||||
private Long id;
|
private Long id;
|
||||||
|
|
||||||
private Set<User> users;
|
private Set<SysUser> users;
|
||||||
|
|
||||||
@ApiModelProperty(value = "菜单", hidden = true)
|
@ApiModelProperty(value = "菜单", hidden = true)
|
||||||
private Set<Menu> menus;
|
private Set<Menu> menus;
|
||||||
|
|||||||
@@ -16,7 +16,7 @@
|
|||||||
package org.nl.modules.system.service;
|
package org.nl.modules.system.service;
|
||||||
|
|
||||||
import org.nl.modules.system.service.dto.UserDto;
|
import org.nl.modules.system.service.dto.UserDto;
|
||||||
import org.nl.system.service.user.dao.User;
|
import org.nl.system.service.user.dao.SysUser;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
@@ -32,5 +32,5 @@ public interface DataService {
|
|||||||
* @param user /
|
* @param user /
|
||||||
* @return /
|
* @return /
|
||||||
*/
|
*/
|
||||||
List<Long> getDeptIds(User user);
|
List<Long> getDeptIds(SysUser user);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -20,7 +20,7 @@ import org.nl.modules.system.service.DataService;
|
|||||||
import org.nl.modules.system.service.DeptService;
|
import org.nl.modules.system.service.DeptService;
|
||||||
import org.nl.modules.system.service.RoleService;
|
import org.nl.modules.system.service.RoleService;
|
||||||
import org.nl.modules.system.service.dto.RoleSmallDto;
|
import org.nl.modules.system.service.dto.RoleSmallDto;
|
||||||
import org.nl.system.service.user.dao.User;
|
import org.nl.system.service.user.dao.SysUser;
|
||||||
import org.springframework.cache.annotation.CacheConfig;
|
import org.springframework.cache.annotation.CacheConfig;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
@@ -48,7 +48,7 @@ public class DataServiceImpl implements DataService {
|
|||||||
* @return /
|
* @return /
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public List<Long> getDeptIds(User user) {
|
public List<Long> getDeptIds(SysUser user) {
|
||||||
// 用于存储部门id
|
// 用于存储部门id
|
||||||
Set<Long> deptIds = new HashSet<>();
|
Set<Long> deptIds = new HashSet<>();
|
||||||
// 查询用户角色
|
// 查询用户角色
|
||||||
|
|||||||
@@ -15,6 +15,7 @@ import java.util.Map;
|
|||||||
* @since 2022-12-15
|
* @since 2022-12-15
|
||||||
*/
|
*/
|
||||||
public interface ISysUserService extends IService<SysUser> {
|
public interface ISysUserService extends IService<SysUser> {
|
||||||
|
|
||||||
Map<String, String> updateAvatar(MultipartFile avatar);
|
Map<String, String> updateAvatar(MultipartFile avatar);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,7 +1,9 @@
|
|||||||
package org.nl.system.service.user.dto;
|
package org.nl.system.service.user.dto;
|
||||||
|
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import org.nl.common.domain.BaseQuery;
|
import org.nl.common.domain.query.BaseQuery;
|
||||||
|
import org.nl.common.domain.query.QParam;
|
||||||
|
import org.nl.common.enums.QueryTEnum;
|
||||||
import org.nl.system.service.user.dao.SysUser;
|
import org.nl.system.service.user.dao.SysUser;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@@ -11,6 +13,10 @@ import org.nl.system.service.user.dao.SysUser;
|
|||||||
@Data
|
@Data
|
||||||
public class UserQuery extends BaseQuery<SysUser> {
|
public class UserQuery extends BaseQuery<SysUser> {
|
||||||
|
|
||||||
private Long DeptId;
|
private Long deptId;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void paramMapping() {
|
||||||
|
this.doP.put("deptId", QParam.builder().k(new String[]{"deptId"}).type(QueryTEnum.LK).build());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -4,8 +4,8 @@ import com.alibaba.fastjson.JSON;
|
|||||||
import org.junit.jupiter.api.Test;
|
import org.junit.jupiter.api.Test;
|
||||||
import org.nl.AppRun;
|
import org.nl.AppRun;
|
||||||
|
|
||||||
import org.nl.system.service.user.UserService;
|
import org.nl.system.service.user.ISysUserService;
|
||||||
import org.nl.system.service.user.dao.User;
|
import org.nl.system.service.user.dao.SysUser;
|
||||||
import org.springframework.boot.test.context.SpringBootTest;
|
import org.springframework.boot.test.context.SpringBootTest;
|
||||||
|
|
||||||
import javax.annotation.Resource;
|
import javax.annotation.Resource;
|
||||||
@@ -20,10 +20,10 @@ import java.util.List;
|
|||||||
public class MybatisTest {
|
public class MybatisTest {
|
||||||
|
|
||||||
@Resource
|
@Resource
|
||||||
UserService sysUserService;
|
ISysUserService sysUserService;
|
||||||
@Test
|
@Test
|
||||||
public void mybatisTest(){
|
public void mybatisTest(){
|
||||||
List<User> list = sysUserService.list();
|
List<SysUser> list = sysUserService.list();
|
||||||
System.out.println(JSON.toJSONString(list));
|
System.out.println(JSON.toJSONString(list));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user