diff --git a/nladmin-system/nlsso-server/src/main/java/org/nl/common/domain/query/BaseQuery.java b/nladmin-system/nlsso-server/src/main/java/org/nl/common/domain/query/BaseQuery.java index 5a6cfd8..a621661 100644 --- a/nladmin-system/nlsso-server/src/main/java/org/nl/common/domain/query/BaseQuery.java +++ b/nladmin-system/nlsso-server/src/main/java/org/nl/common/domain/query/BaseQuery.java @@ -2,16 +2,21 @@ package org.nl.common.domain.query; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.LambdaUtils; +import com.baomidou.mybatisplus.core.toolkit.support.ColumnCache; import lombok.Data; import org.nl.common.enums.QueryTEnum; import org.nl.modules.tools.MapOf; +import sun.reflect.generics.reflectiveObjects.ParameterizedTypeImpl; +import java.lang.reflect.Type; import java.util.Date; import java.util.Map; /* * @author ZZQ * @Date 2022/12/14 6:33 下午 + * 泛型必须为数据tb对应do:由mybatis管理 */ @Data public class BaseQuery { @@ -32,12 +37,13 @@ public class BaseQuery { /** * 字段映射Map:指定字段对应QueryWrapper的查询类型 + * 字段与数据库字段对应,不支持驼峰 * @see org.nl.common.enums.QueryTEnum * 通过buid构建 */ public Map doP = MapOf.of("blurry", QParam.builder().k(new String[]{"name"}).type(QueryTEnum.LK).build() - ,"startTime", QParam.builder().k(new String[]{"createTime"}).type(QueryTEnum.LT).build() - ,"endTime", QParam.builder().k(new String[]{"createTime"}).type(QueryTEnum.LE).build() + ,"startTime", QParam.builder().k(new String[]{"create_time"}).type(QueryTEnum.LT).build() + ,"endTime", QParam.builder().k(new String[]{"create_time"}).type(QueryTEnum.LE).build() ,"sort", QParam.builder().k(new String[]{"sort"}).type(QueryTEnum.BY).build() ); @@ -45,13 +51,18 @@ public class BaseQuery { this.paramMapping(); QueryWrapper wrapper = new QueryWrapper<>(); JSONObject json = (JSONObject)JSONObject.toJSON(this); + Type[] types = ((ParameterizedTypeImpl) this.getClass().getGenericSuperclass()).getActualTypeArguments(); + Map columnMap = LambdaUtils.getColumnMap((Class) types[0]); json.forEach((key, vel) -> { if (vel != null && !key.equals("doP")){ QParam qParam = doP.get(key); if (qParam != null){ QueryTEnum.build(qParam.type,wrapper,qParam.k,vel); }else { - wrapper.eq(key,vel); + ColumnCache columnCache = columnMap.get(LambdaUtils.formatKey(key)); + if (columnCache!=null){ + wrapper.eq(columnCache.getColumn(),vel); + } } } }); diff --git a/nladmin-system/nlsso-server/src/main/java/org/nl/modules/system/domain/vo/DeptVo.java b/nladmin-system/nlsso-server/src/main/java/org/nl/modules/system/domain/vo/DeptVo.java index 46be8d6..121b616 100644 --- a/nladmin-system/nlsso-server/src/main/java/org/nl/modules/system/domain/vo/DeptVo.java +++ b/nladmin-system/nlsso-server/src/main/java/org/nl/modules/system/domain/vo/DeptVo.java @@ -37,7 +37,7 @@ import java.util.List; public class DeptVo extends BaseDTO implements Serializable { - private Long deptId; + private String deptId; private String code; @@ -54,7 +54,7 @@ public class DeptVo extends BaseDTO implements Serializable { @NotNull @ApiModelProperty(value = "是否启用") - private String isUsed; + private Boolean isUsed; @ApiModelProperty(value = "上级部门") private Long pid; diff --git a/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/dept/ISysDeptService.java b/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/dept/ISysDeptService.java index 60d7957..5fe8ee0 100644 --- a/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/dept/ISysDeptService.java +++ b/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/dept/ISysDeptService.java @@ -2,6 +2,7 @@ package org.nl.system.service.dept; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.IService; +import org.apache.poi.ss.formula.functions.T; import org.nl.common.domain.query.PageQuery; import org.nl.system.service.dept.dao.SysDept; import org.nl.system.service.dept.dto.DeptQuery; diff --git a/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/dept/dao/SysDept.java b/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/dept/dao/SysDept.java index 1467961..19bf21d 100644 --- a/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/dept/dao/SysDept.java +++ b/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/dept/dao/SysDept.java @@ -1,12 +1,15 @@ package org.nl.system.service.dept.dao; +import com.alibaba.fastjson.annotation.JSONField; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; +import com.fasterxml.jackson.annotation.JsonFormat; import lombok.Data; import lombok.EqualsAndHashCode; import java.io.Serializable; +import java.util.Date; /** *

@@ -52,7 +55,7 @@ public class SysDept implements Serializable { /** * 状态 */ - private String isUsed; + private Boolean isUsed; private String createId; @@ -71,12 +74,14 @@ public class SysDept implements Serializable { /** * 创建日期 */ - private String createTime; + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Date createTime; /** * 更新时间 */ - private String updateTime; + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Date updateTime; /** * 部门编号 diff --git a/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/dept/impl/SysDeptServiceImpl.java b/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/dept/impl/SysDeptServiceImpl.java index 0549f4b..d8fbb82 100644 --- a/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/dept/impl/SysDeptServiceImpl.java +++ b/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/dept/impl/SysDeptServiceImpl.java @@ -1,6 +1,10 @@ package org.nl.system.service.dept.impl; import cn.hutool.core.collection.CollectionUtil; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.support.SFunction; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.apache.commons.lang3.StringUtils; @@ -15,7 +19,6 @@ import org.nl.system.service.dept.dto.DeptQuery; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.util.CollectionUtils; - import java.util.*; import java.util.stream.Collectors; @@ -83,7 +86,8 @@ public class SysDeptServiceImpl extends ServiceImpl impl query.setPidIsNull(true); } } - Page page = this.page(pageQuery.build(), query.build()); + Page page = this.page(pageQuery.build(SysDept.class), query.build()); + page.setRecords(CopyUtil.copyList(page.getRecords(), DeptVo.class)); if (StringUtils.isNotEmpty(query.getName())){ page.getRecords().forEach(a->((DeptVo)a).setHasChildren(false) ); diff --git a/nladmin-ui/src/views/system/dept/dept.js b/nladmin-ui/src/views/system/dept/dept.js new file mode 100644 index 0000000..145887a --- /dev/null +++ b/nladmin-ui/src/views/system/dept/dept.js @@ -0,0 +1,60 @@ +import request from '@/utils/request' + +export function getDepts(params) { + return request({ + url: 'api/dept', + method: 'get', + params + }) +} + +export function getDeptTree(params) { + return request({ + url: '/api/dept/allTree', + method: 'get', + params + }) +} + +export function getDeptSuperior(ids) { + const data = ids.length || ids.length === 0 ? ids : Array.of(ids) + return request({ + url: 'api/dept/superior', + method: 'post', + data + }) +} + +export function getDeptvo(params) { + return request({ + url: 'api/dept/vo', + method: 'get', + params + }) +} + +export function add(data) { + return request({ + url: 'api/dept', + method: 'post', + data + }) +} + +export function del(ids) { + return request({ + url: 'api/dept', + method: 'delete', + data: ids + }) +} + +export function edit(data) { + return request({ + url: 'api/dept', + method: 'put', + data + }) +} + +export default { add, edit, del, getDepts, getDeptSuperior, getDeptvo, getDeptTree }