Commit e24b97ee authored by trumansdo's avatar trumansdo
Browse files

no message

parent 6f9e819b
......@@ -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;
import cn.hutool.core.annotation.AnnotationUtil;
import cn.hutool.core.map.MapBuilder;
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.util.Map;
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=
#\u51FD\u6570\u6CE8\u518C
FN.isEmpty=org.beetl.ext.fn.EmptyExpressionFunction
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
* 查询用户所有权限
select
ur.*, u.code as user_code,
u.name as user_name,
org.name as org_name, role.name as role_name
from core_user_role ur
left join core_org org on org.id = ur.org_id
left join core_user u on u.id = ur.user_id
left join core_role role on role.id = ur.role_id
where u.id=#id#
@if(isNotEmpty(orgId)){
and org.id=#orgId#
@}
@if(isNotEmpty(roleId)){
and role.id=#roleId#
@}
```sql
select
ur.*, u.code as user_code,
u.name as user_name,
org.name as org_name, role.name as role_name
from core_user_role ur
left join core_org org on org.id = ur.org_id
left join core_user u on u.id = ur.user_id
left join core_role role on role.id = ur.role_id
where u.id=#id#
@if(isNotEmpty(orgId)){
and org.id=#orgId#
@}
@if(isNotEmpty(roleId)){
and role.id=#roleId#
@}
```
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.entity.CoreRoute;
import java.util.List;
......@@ -23,7 +21,5 @@ public class CustomBeanProcessorTest {
}
@Test
public void test() {
VOUtil.resolveElColumn(Table.class);
}
public void test() {}
}
package com.ibeetl.admin.console.annotation;
package com.ibeetl.admin.core.annotation;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
......@@ -32,8 +32,15 @@ public @interface ElColumn {
* */
boolean sortable() default false;
/** @return */
/**
* 是否在前端页面可见,本质是在后端过滤掉注解的字段
* @return
* */
boolean visible() default true;
/**
* 是否在表单中是必填。暂时没做规则的生成功能,暂定没有
* @return
* */
boolean required() default false;
}
package com.ibeetl.admin.core.conf;
package com.ibeetl.admin.core.conf.beetl;
import cn.hutool.core.util.CharsetUtil;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.ibeetl.admin.core.conf.handler.DateTypeHandler;
import com.ibeetl.admin.core.conf.handler.ZonedDateTimeTypeHandler;
import com.ibeetl.admin.core.conf.processor.JsonBeanProcessor;
import com.ibeetl.admin.core.conf.JasonConfig;
import com.ibeetl.admin.core.conf.beetl.handler.DateTypeHandler;
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.DataAccessFactory;
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.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.util.ObjectUtil;
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 java.io.StringWriter;
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.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.collection.CollUtil;
......@@ -6,10 +6,10 @@ import cn.hutool.core.map.MapUtil;
import cn.hutool.core.util.ClassUtil;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil;
import com.ibeetl.admin.core.conf.resultmap.GridColumn;
import com.ibeetl.admin.core.conf.resultmap.GridHeader;
import com.ibeetl.admin.core.conf.resultmap.GridMapping;
import com.ibeetl.admin.core.conf.resultmap.GridRow;
import com.ibeetl.admin.core.conf.beetl.resultmap.GridColumn;
import com.ibeetl.admin.core.conf.beetl.resultmap.GridHeader;
import com.ibeetl.admin.core.conf.beetl.resultmap.GridMapping;
import com.ibeetl.admin.core.conf.beetl.resultmap.GridRow;
import com.ibeetl.admin.core.util.CacheUtil;
import java.beans.IntrospectionException;
import java.beans.PropertyDescriptor;
......@@ -277,8 +277,8 @@ public class JsonBeanProcessor extends BeanProcessor {
*/
private Map<String, Object> extractMapFromRs(String sqlId, ResultSet resultSet, GridHeader header)
throws SQLException {
/*TODO 待处理TypeParameter和映射类型的注解的处理*/
Map<String, Object> tempBeanMap = MapUtil.newHashMap();
/*保存着结果集的列标签与索引的映射关系*/
Map<String, Integer> columnLableToIndexMap = MapUtil.newHashMap();
ResultSetMetaData metaData = resultSet.getMetaData();
for (int i = 1; i <= metaData.getColumnCount(); i++) {
......@@ -292,6 +292,7 @@ public class JsonBeanProcessor extends BeanProcessor {
}
columnLableToIndexMap.putIfAbsent(key, i);
}
/*处理每个头部映射的bean类型与结果集的列的类型转换*/
String resultType = header.getResultType();
Class objectClass =
StrUtil.isNotBlank(resultType) ? ClassUtil.loadClass(resultType, false) : null;
......@@ -308,6 +309,7 @@ public class JsonBeanProcessor extends BeanProcessor {
Field declaredField = ClassUtil.getDeclaredField(objectClass, entry.getKey());
Class fieldType = declaredField != null ? declaredField.getType() : null;
/*忽视列标签的大小写问题*/
Integer columnIndex = columnLableToIndexMap.getOrDefault(entry.getValue(), -1);
columnIndex =
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.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.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 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.util.ObjectUtil;
......
package com.ibeetl.admin.core.entity;
import com.ibeetl.admin.core.annotation.ElColumn;
import java.util.Date;
import javax.validation.constraints.NotBlank;
......@@ -23,21 +24,24 @@ public class CoreUser extends BaseEntity {
@NotNull(message = "ID不能为空", groups = ValidateConfig.UPDATE.class)
@SeqID(name = ORACLE_CORE_SEQ_NAME)
@ElColumn(name = "ID", type = "string")
@AutoID
protected Long id;
// 删除标识
@JsonIgnore protected Integer delFlag = 0;
// 创建时间
@ElColumn(name = "创建时间", type = "date")
protected Date createTime;
// 登录名,编号
@NotBlank(message = "用户编号不能为空", groups = ValidateConfig.ADD.class)
@Null(message = "用户编号不能为空", groups = ValidateConfig.UPDATE.class)
@ElColumn(name = "用户名", type = "string")
private String code;
// 用户姓名
@NotBlank(message = "用户名不能为空")
@ElColumn(name = "姓名", type = "string")
private String name;
// 组织机构id
......@@ -48,13 +52,16 @@ public class CoreUser extends BaseEntity {
@JsonIgnore private String password;
@Dict(type = CoreDictType.USER_STATE)
@ElColumn(name = "状态", type = "string")
private String state;
// 扩展例子
@Dict(type = "job_type")
@ElColumn(name = "职位", type = "string")
private String jobType0;
@Dict(type = "job_type")
@ElColumn(name = "职位", type = "string")
private String jobType1;
private Date updateTime;
......
......@@ -68,9 +68,14 @@ public class CoreUserService {
}
public List<CoreUser> getAllUsersByRole(String 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) {
CoreUser user = new CoreUser();
user.setCode(userName);
......
......@@ -21,7 +21,7 @@ import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class UserElController {
public class CoreUserElController {
@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