Commit e24b97ee authored by trumansdo's avatar trumansdo
Browse files

no message

parent 6f9e819b
...@@ -2,4 +2,9 @@ ...@@ -2,4 +2,9 @@
以集团为一个最大组织,可切换集团。 以集团为一个最大组织,可切换集团。
以功能点为核心,菜单和请求构成可分配功能。 以功能点为核心,菜单和请求构成可分配功能。
数据权限以组织为基准进行访问限制 数据权限以组织为基准进行访问限制
\ No newline at end of file
# 开发规范
- controller以ElController结尾
- 以El开始的注解是前端视图类注解
- 所有的字典类型都从数据库中加载进缓存中,任何字典类型都应该以常量访问,任何的字典名称和值都应该以枚举访问。
package com.ibeetl.admin.console.model.vo;
import com.ibeetl.admin.console.annotation.ElColumn;
public class Table {
@ElColumn(name = "ID", type = "string", visible = false)
private String id;
@ElColumn(name = "名字", type = "string")
private String name;
@ElColumn(name = "地址", type = "string")
private String address;
@ElColumn(name = "日期", type = "date")
private String date;
@ElColumn(name = "网址", type = "string")
private String url;
}
...@@ -3,7 +3,7 @@ package com.ibeetl.admin.console.util; ...@@ -3,7 +3,7 @@ package com.ibeetl.admin.console.util;
import cn.hutool.core.annotation.AnnotationUtil; import cn.hutool.core.annotation.AnnotationUtil;
import cn.hutool.core.map.MapBuilder; import cn.hutool.core.map.MapBuilder;
import cn.hutool.core.map.MapUtil; import cn.hutool.core.map.MapUtil;
import com.ibeetl.admin.console.annotation.ElColumn; import com.ibeetl.admin.core.annotation.ElColumn;
import java.lang.reflect.Field; import java.lang.reflect.Field;
import java.util.Map; import java.util.Map;
import java.util.Optional; import java.util.Optional;
......
package com.ibeetl.admin.console.web;
import com.ibeetl.admin.console.util.VOUtil;
import com.ibeetl.admin.core.entity.CoreRoute;
import com.ibeetl.admin.core.entity.CoreUser;
import com.ibeetl.admin.core.service.CoreUserService;
import com.ibeetl.admin.core.web.JsonResult;
import java.util.List;
import java.util.Map;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class UserElController {
@Autowired private CoreUserService coreUserService;
@GetMapping("/users/metedata")
public JsonResult<Map> usersMetedata() {
return JsonResult.success(VOUtil.resolveElColumn(CoreUser.class));
}
@GetMapping("/users")
public JsonResult<List<CoreUser>> users(Integer page, Integer limit) {
List<CoreUser> allUsers = coreUserService.getAllUsers(page, limit);
return JsonResult.success(allUsers);
}
}
...@@ -5,4 +5,4 @@ DELIMITER_STATEMENT_END= ...@@ -5,4 +5,4 @@ DELIMITER_STATEMENT_END=
#\u51FD\u6570\u6CE8\u518C #\u51FD\u6570\u6CE8\u518C
FN.isEmpty=org.beetl.ext.fn.EmptyExpressionFunction FN.isEmpty=org.beetl.ext.fn.EmptyExpressionFunction
FN.isNotEmpty=org.beetl.ext.fn.IsNotEmptyExpressionFunction FN.isNotEmpty=org.beetl.ext.fn.IsNotEmptyExpressionFunction
FN.mapping=com.ibeetl.admin.core.conf.handler.MappingFunction FN.mapping=com.ibeetl.admin.core.conf.beetl.handler.MappingFunction
...@@ -52,18 +52,20 @@ queryUserRole ...@@ -52,18 +52,20 @@ queryUserRole
* 查询用户所有权限 * 查询用户所有权限
select ```sql
ur.*, u.code as user_code, select
u.name as user_name, ur.*, u.code as user_code,
org.name as org_name, role.name as role_name u.name as user_name,
from core_user_role ur org.name as org_name, role.name as role_name
left join core_org org on org.id = ur.org_id from core_user_role ur
left join core_user u on u.id = ur.user_id left join core_org org on org.id = ur.org_id
left join core_role role on role.id = ur.role_id left join core_user u on u.id = ur.user_id
where u.id=#id# left join core_role role on role.id = ur.role_id
@if(isNotEmpty(orgId)){ where u.id=#id#
and org.id=#orgId# @if(isNotEmpty(orgId)){
@} and org.id=#orgId#
@if(isNotEmpty(roleId)){ @}
and role.id=#roleId# @if(isNotEmpty(roleId)){
@} and role.id=#roleId#
@}
```
import com.ibeetl.admin.ConsoleApplication; import com.ibeetl.admin.ConsoleApplication;
import com.ibeetl.admin.console.model.vo.Table;
import com.ibeetl.admin.console.util.VOUtil;
import com.ibeetl.admin.core.dao.CoreFunctionDao; import com.ibeetl.admin.core.dao.CoreFunctionDao;
import com.ibeetl.admin.core.entity.CoreRoute; import com.ibeetl.admin.core.entity.CoreRoute;
import java.util.List; import java.util.List;
...@@ -23,7 +21,5 @@ public class CustomBeanProcessorTest { ...@@ -23,7 +21,5 @@ public class CustomBeanProcessorTest {
} }
@Test @Test
public void test() { public void test() {}
VOUtil.resolveElColumn(Table.class);
}
} }
package com.ibeetl.admin.console.annotation; package com.ibeetl.admin.core.annotation;
import java.lang.annotation.ElementType; import java.lang.annotation.ElementType;
import java.lang.annotation.Retention; import java.lang.annotation.Retention;
...@@ -32,8 +32,15 @@ public @interface ElColumn { ...@@ -32,8 +32,15 @@ public @interface ElColumn {
* */ * */
boolean sortable() default false; boolean sortable() default false;
/** @return */ /**
* 是否在前端页面可见,本质是在后端过滤掉注解的字段
* @return
* */
boolean visible() default true; boolean visible() default true;
/**
* 是否在表单中是必填。暂时没做规则的生成功能,暂定没有
* @return
* */
boolean required() default false; boolean required() default false;
} }
package com.ibeetl.admin.core.conf; package com.ibeetl.admin.core.conf.beetl;
import cn.hutool.core.util.CharsetUtil; import cn.hutool.core.util.CharsetUtil;
import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.ObjectMapper;
import com.ibeetl.admin.core.conf.handler.DateTypeHandler; import com.ibeetl.admin.core.conf.JasonConfig;
import com.ibeetl.admin.core.conf.handler.ZonedDateTimeTypeHandler; import com.ibeetl.admin.core.conf.beetl.handler.DateTypeHandler;
import com.ibeetl.admin.core.conf.processor.JsonBeanProcessor; import com.ibeetl.admin.core.conf.beetl.handler.ZonedDateTimeTypeHandler;
import com.ibeetl.admin.core.conf.beetl.processor.JsonBeanProcessor;
import com.ibeetl.admin.core.rbac.DataAccess; import com.ibeetl.admin.core.rbac.DataAccess;
import com.ibeetl.admin.core.rbac.DataAccessFactory; import com.ibeetl.admin.core.rbac.DataAccessFactory;
import com.ibeetl.admin.core.service.CorePlatformService; import com.ibeetl.admin.core.service.CorePlatformService;
......
package com.ibeetl.admin.core.conf.handler; package com.ibeetl.admin.core.conf.beetl.handler;
import cn.hutool.core.convert.Convert; import cn.hutool.core.convert.Convert;
import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.ObjectUtil;
......
package com.ibeetl.admin.core.conf.handler; package com.ibeetl.admin.core.conf.beetl.handler;
import cn.hutool.core.map.MapUtil; import cn.hutool.core.map.MapUtil;
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.ibeetl.admin.core.conf.resultmap.GridMapping; import com.ibeetl.admin.core.conf.beetl.resultmap.GridMapping;
import com.ibeetl.admin.core.util.CacheUtil; import com.ibeetl.admin.core.util.CacheUtil;
import java.io.StringWriter; import java.io.StringWriter;
import java.util.List; import java.util.List;
......
package com.ibeetl.admin.core.conf.handler; package com.ibeetl.admin.core.conf.beetl.handler;
import cn.hutool.core.convert.Convert; import cn.hutool.core.convert.Convert;
import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.ObjectUtil;
......
package com.ibeetl.admin.core.conf.processor; package com.ibeetl.admin.core.conf.beetl.processor;
import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.collection.CollUtil; import cn.hutool.core.collection.CollUtil;
...@@ -6,10 +6,10 @@ import cn.hutool.core.map.MapUtil; ...@@ -6,10 +6,10 @@ import cn.hutool.core.map.MapUtil;
import cn.hutool.core.util.ClassUtil; import cn.hutool.core.util.ClassUtil;
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.ibeetl.admin.core.conf.resultmap.GridColumn; import com.ibeetl.admin.core.conf.beetl.resultmap.GridColumn;
import com.ibeetl.admin.core.conf.resultmap.GridHeader; import com.ibeetl.admin.core.conf.beetl.resultmap.GridHeader;
import com.ibeetl.admin.core.conf.resultmap.GridMapping; import com.ibeetl.admin.core.conf.beetl.resultmap.GridMapping;
import com.ibeetl.admin.core.conf.resultmap.GridRow; import com.ibeetl.admin.core.conf.beetl.resultmap.GridRow;
import com.ibeetl.admin.core.util.CacheUtil; import com.ibeetl.admin.core.util.CacheUtil;
import java.beans.IntrospectionException; import java.beans.IntrospectionException;
import java.beans.PropertyDescriptor; import java.beans.PropertyDescriptor;
...@@ -277,8 +277,8 @@ public class JsonBeanProcessor extends BeanProcessor { ...@@ -277,8 +277,8 @@ public class JsonBeanProcessor extends BeanProcessor {
*/ */
private Map<String, Object> extractMapFromRs(String sqlId, ResultSet resultSet, GridHeader header) private Map<String, Object> extractMapFromRs(String sqlId, ResultSet resultSet, GridHeader header)
throws SQLException { throws SQLException {
/*TODO 待处理TypeParameter和映射类型的注解的处理*/
Map<String, Object> tempBeanMap = MapUtil.newHashMap(); Map<String, Object> tempBeanMap = MapUtil.newHashMap();
/*保存着结果集的列标签与索引的映射关系*/
Map<String, Integer> columnLableToIndexMap = MapUtil.newHashMap(); Map<String, Integer> columnLableToIndexMap = MapUtil.newHashMap();
ResultSetMetaData metaData = resultSet.getMetaData(); ResultSetMetaData metaData = resultSet.getMetaData();
for (int i = 1; i <= metaData.getColumnCount(); i++) { for (int i = 1; i <= metaData.getColumnCount(); i++) {
...@@ -292,6 +292,7 @@ public class JsonBeanProcessor extends BeanProcessor { ...@@ -292,6 +292,7 @@ public class JsonBeanProcessor extends BeanProcessor {
} }
columnLableToIndexMap.putIfAbsent(key, i); columnLableToIndexMap.putIfAbsent(key, i);
} }
/*处理每个头部映射的bean类型与结果集的列的类型转换*/
String resultType = header.getResultType(); String resultType = header.getResultType();
Class objectClass = Class objectClass =
StrUtil.isNotBlank(resultType) ? ClassUtil.loadClass(resultType, false) : null; StrUtil.isNotBlank(resultType) ? ClassUtil.loadClass(resultType, false) : null;
...@@ -308,6 +309,7 @@ public class JsonBeanProcessor extends BeanProcessor { ...@@ -308,6 +309,7 @@ public class JsonBeanProcessor extends BeanProcessor {
Field declaredField = ClassUtil.getDeclaredField(objectClass, entry.getKey()); Field declaredField = ClassUtil.getDeclaredField(objectClass, entry.getKey());
Class fieldType = declaredField != null ? declaredField.getType() : null; Class fieldType = declaredField != null ? declaredField.getType() : null;
/*忽视列标签的大小写问题*/
Integer columnIndex = columnLableToIndexMap.getOrDefault(entry.getValue(), -1); Integer columnIndex = columnLableToIndexMap.getOrDefault(entry.getValue(), -1);
columnIndex = columnIndex =
columnIndex != -1 columnIndex != -1
......
package com.ibeetl.admin.core.conf.resultmap; package com.ibeetl.admin.core.conf.beetl.resultmap;
import cn.hutool.core.collection.CollUtil; import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.map.MapUtil; import cn.hutool.core.map.MapUtil;
......
package com.ibeetl.admin.core.conf.resultmap; package com.ibeetl.admin.core.conf.beetl.resultmap;
import static cn.hutool.core.util.StrUtil.EMPTY; import static cn.hutool.core.util.StrUtil.EMPTY;
import static cn.hutool.core.util.StrUtil.isNotBlank; import static cn.hutool.core.util.StrUtil.isNotBlank;
......
package com.ibeetl.admin.core.conf.resultmap; package com.ibeetl.admin.core.conf.beetl.resultmap;
import static cn.hutool.core.util.StrUtil.EMPTY; import static cn.hutool.core.util.StrUtil.EMPTY;
import static java.util.Optional.ofNullable; import static java.util.Optional.ofNullable;
......
package com.ibeetl.admin.core.conf.resultmap; package com.ibeetl.admin.core.conf.beetl.resultmap;
import cn.hutool.core.collection.CollUtil; import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.ObjectUtil;
......
package com.ibeetl.admin.core.entity; package com.ibeetl.admin.core.entity;
import com.ibeetl.admin.core.annotation.ElColumn;
import java.util.Date; import java.util.Date;
import javax.validation.constraints.NotBlank; import javax.validation.constraints.NotBlank;
...@@ -23,21 +24,24 @@ public class CoreUser extends BaseEntity { ...@@ -23,21 +24,24 @@ public class CoreUser extends BaseEntity {
@NotNull(message = "ID不能为空", groups = ValidateConfig.UPDATE.class) @NotNull(message = "ID不能为空", groups = ValidateConfig.UPDATE.class)
@SeqID(name = ORACLE_CORE_SEQ_NAME) @SeqID(name = ORACLE_CORE_SEQ_NAME)
@ElColumn(name = "ID", type = "string")
@AutoID @AutoID
protected Long id; protected Long id;
// 删除标识 // 删除标识
@JsonIgnore protected Integer delFlag = 0; @JsonIgnore protected Integer delFlag = 0;
// 创建时间 // 创建时间
@ElColumn(name = "创建时间", type = "date")
protected Date createTime; protected Date createTime;
// 登录名,编号 // 登录名,编号
@NotBlank(message = "用户编号不能为空", groups = ValidateConfig.ADD.class) @NotBlank(message = "用户编号不能为空", groups = ValidateConfig.ADD.class)
@Null(message = "用户编号不能为空", groups = ValidateConfig.UPDATE.class) @Null(message = "用户编号不能为空", groups = ValidateConfig.UPDATE.class)
@ElColumn(name = "用户名", type = "string")
private String code; private String code;
// 用户姓名 // 用户姓名
@NotBlank(message = "用户名不能为空") @NotBlank(message = "用户名不能为空")
@ElColumn(name = "姓名", type = "string")
private String name; private String name;
// 组织机构id // 组织机构id
...@@ -48,13 +52,16 @@ public class CoreUser extends BaseEntity { ...@@ -48,13 +52,16 @@ public class CoreUser extends BaseEntity {
@JsonIgnore private String password; @JsonIgnore private String password;
@Dict(type = CoreDictType.USER_STATE) @Dict(type = CoreDictType.USER_STATE)
@ElColumn(name = "状态", type = "string")
private String state; private String state;
// 扩展例子 // 扩展例子
@Dict(type = "job_type") @Dict(type = "job_type")
@ElColumn(name = "职位", type = "string")
private String jobType0; private String jobType0;
@Dict(type = "job_type") @Dict(type = "job_type")
@ElColumn(name = "职位", type = "string")
private String jobType1; private String jobType1;
private Date updateTime; private Date updateTime;
......
...@@ -68,9 +68,14 @@ public class CoreUserService { ...@@ -68,9 +68,14 @@ public class CoreUserService {
} }
public List<CoreUser> getAllUsersByRole(String role) { public List<CoreUser> getAllUsersByRole(String role) {
return userDao.getUserByRole(role); return userDao.getUserByRole(role);
} }
public List<CoreUser> getAllUsers(Integer page, Integer limit) {
return sqlManager.lambdaQuery(CoreUser.class).page(page, limit).getList();
}
public CoreUser getUserByCode(String userName) { public CoreUser getUserByCode(String userName) {
CoreUser user = new CoreUser(); CoreUser user = new CoreUser();
user.setCode(userName); user.setCode(userName);
......
...@@ -21,7 +21,7 @@ import org.springframework.web.bind.annotation.PostMapping; ...@@ -21,7 +21,7 @@ import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
@RestController @RestController
public class UserElController { public class CoreUserElController {
@Autowired private RoleRoutesElService roleRoutesService; @Autowired private RoleRoutesElService roleRoutesService;
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment