Commit 34c9ce81 authored by trumansdo's avatar trumansdo
Browse files

暂存,重新处理结果集映射

parent 404d2016
package com.ibeetl.admin.core.conf.beetl;
import cn.hutool.core.convert.Convert;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.CharsetUtil;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.ibeetl.admin.core.conf.JasonConfig;
......@@ -27,6 +29,7 @@ import com.ibeetl.starter.BeetlSqlMutipleSourceCustomize;
import com.ibeetl.starter.BeetlTemplateCustomize;
import com.ibeetl.starter.ObjectMapperJsonUtil;
import java.io.UnsupportedEncodingException;
import java.sql.JDBCType;
import java.time.ZonedDateTime;
import java.util.Date;
import java.util.List;
......@@ -37,6 +40,8 @@ import org.beetl.core.Function;
import org.beetl.core.GroupTemplate;
import org.beetl.ext.simulate.WebSimulate;
import org.beetl.sql.core.Interceptor;
import org.beetl.sql.core.InterceptorContext;
import org.beetl.sql.core.engine.SQLParameter;
import org.beetl.sql.core.engine.SQLPlaceholderST;
import org.beetl.sql.core.mapping.type.JavaSqlTypeHandler;
import org.beetl.sql.ext.DebugInterceptor;
......@@ -108,7 +113,8 @@ public class BeetlConf {
typeHandlerMap.put(ZonedDateTime.class, new ZonedDateTimeTypeHandler());
typeHandlerMap.put(DictType.class, new DictTypeHandler());
/*拦截器*/
manager.setInters(new Interceptor[] {new StarterDebugInterceptor()});
manager.setInters(
new Interceptor[] {new StarterDebugInterceptor(), new TypeHandlerInterceptor()});
};
}
......@@ -197,10 +203,31 @@ public class BeetlConf {
return false;
}
}
}
}
@Override
protected void println(String str) {
logger.info(System.lineSeparator() + str);
/**
* Class TypeHandlerInterceptor : <br>
* 描述:预计做类型处理工厂拦截器
*
* @author 一日看尽长安花 Created on 2020/2/3
*/
class TypeHandlerInterceptor implements Interceptor {
@Override
public void before(InterceptorContext ctx) {
List<SQLParameter> paras = ctx.getParas();
for (SQLParameter para : paras) {
if (para.value instanceof Date) {
para.value = ((Date) para.value).getTime();
para.setJdbcType(JDBCType.BIGINT.getVendorTypeNumber());
}
}
}
@Override
public void after(InterceptorContext ctx) {}
@Override
public void exception(InterceptorContext ctx, Exception ex) {}
}
package com.ibeetl.admin.core.conf.beetl.resultmap;
import java.sql.JDBCType;
public class DBColumnProperty {
private String columnName;
private int columnIndex;
private JDBCType jdbcType;
}
package com.ibeetl.admin.core.conf.beetl.resultmap;
import cn.hutool.core.util.ClassUtil;
public class JavaFieldProperty {
private String fieldName;
private Class fieldType;
private boolean isCollection;
}
......@@ -15,6 +15,6 @@ public interface CoreOrgDao extends BaseMapper<CoreOrg> {
List<String> queryAllOrgCode(List<Long> orgIds);
@Sql("select * from core_org where parent_org_id is null")
@Sql("select * from core_org where parent_org_id=0")
CoreOrg getRoot();
}
......@@ -2,12 +2,15 @@ package com.ibeetl.admin.core.entity;
import com.ibeetl.admin.core.annotation.ElColumn;
import com.ibeetl.admin.core.util.enums.ElColumnType;
import com.ibeetl.admin.core.util.enums.JobTypeEnum;
import com.ibeetl.admin.core.util.enums.StateTypeEnum;
import java.util.Date;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Null;
import lombok.Data;
import org.beetl.sql.core.annotatoin.AutoID;
import org.beetl.sql.core.annotatoin.SeqID;
......@@ -21,6 +24,7 @@ import com.ibeetl.admin.core.util.enums.CoreDictType;
*
*/
@Data
public class CoreUser extends BaseEntity {
@NotNull(message = "ID不能为空", groups = ValidateConfig.UPDATE.class)
......@@ -41,121 +45,27 @@ public class CoreUser extends BaseEntity {
@NotBlank(message = "用户名不能为空")
private String name;
// 组织机构id
/*机构id*/
private Long orgId;
/*机构名称*/
private String orgName;
// 密码
@JsonIgnore private String password;
@Dict(type = CoreDictType.USER_STATE)
private String state;
private StateTypeEnum state;
// 扩展例子
@Dict(type = "job_type")
private DictType jobType0;
private JobTypeEnum jobType0;
@Dict(type = "job_type")
private DictType jobType1;
private JobTypeEnum jobType1;
private Date updateTime;
/*用户的个人资料附件,保存到Core_File 表里*/
private String attachmentId;
public String getCode() {
return code;
}
public void setCode(String code) {
this.code = code;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Long getOrgId() {
return orgId;
}
public void setOrgId(Long orgId) {
this.orgId = orgId;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public Integer getDelFlag() {
return delFlag;
}
public void setDelFlag(Integer delFlag) {
this.delFlag = delFlag;
}
public Date getCreateTime() {
return createTime;
}
public void setCreateTime(Date createTime) {
this.createTime = createTime;
}
public DictType getJobType0() {
return jobType0;
}
public void setJobType0(DictType jobType0) {
this.jobType0 = jobType0;
}
public DictType getJobType1() {
return jobType1;
}
public void setJobType1(DictType jobType1) {
this.jobType1 = jobType1;
}
public String getState() {
return state;
}
public void setState(String state) {
this.state = state;
}
public Date getUpdateTime() {
return updateTime;
}
public void setUpdateTime(Date updateTime) {
this.updateTime = updateTime;
}
public String getAttachmentId() {
return attachmentId;
}
public void setAttachmentId(String attachmentId) {
this.attachmentId = attachmentId;
}
}
......@@ -7,7 +7,7 @@ import lombok.NoArgsConstructor;
@Data
@NoArgsConstructor
public class ElCascaderData {
private Long id;
private Object id;
private String label;
private String value;
private Object value;
}
......@@ -65,15 +65,12 @@ public class DefaultDataAccessFactory implements DataAccessFactory {
@Override
public OrgItem getUserOrgTree(OrgItem item) {
while (item != null) {
String orgType = item.getOrg().getType();
if (orgType.equals(COMPANY_TYPE)
|| orgType.equals(PARENT_CORP_TYPE)
|| orgType.equals(GROUP_TYPE)) {
return item;
}
String orgType = item.getOrg().getType();
if (orgType.equals(COMPANY_TYPE)
|| orgType.equals(PARENT_CORP_TYPE)
|| orgType.equals(GROUP_TYPE)) {
return item;
}
return null;
}
}
......@@ -31,8 +31,7 @@ public class CoreBaseService<T> {
@Autowired protected CoreDictService dictUtil;
@Autowired
protected SQLManagerBaseDao sqlManager;
@Autowired protected SQLManagerBaseDao sqlManager;
/**
* 根据id查询对象,如果主键ID不存在
......@@ -91,7 +90,8 @@ public class CoreBaseService<T> {
list.add(map);
}
int[] count = sqlManager.getSQLManager().updateBatchTemplateById(getCurrentEntityClassz(), list);
int[] count =
sqlManager.getSQLManager().updateBatchTemplateById(getCurrentEntityClassz(), list);
int successCount = 0;
for (int successFlag : count) {
successCount += successFlag;
......@@ -200,11 +200,11 @@ public class CoreBaseService<T> {
} while (c != TailBean.class);
}
public void processObjectsDictField(PageQuery pageQuery){
public void processObjectsDictField(PageQuery pageQuery) {
this.processObjectsDictField(pageQuery.getList());
}
public void processObjectsDictField(Collection collection){
public void processObjectsDictField(Collection collection) {
for (Object o : collection) {
this.processDictField(o);
}
......
......@@ -8,6 +8,7 @@ import java.util.Map;
import org.beetl.sql.core.mapper.internal.LambdaQueryAmi;
import org.beetl.sql.core.query.LambdaQuery;
import org.beetl.sql.core.query.Query;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
......@@ -71,14 +72,14 @@ public class CoreDictService extends CoreBaseService<CoreDict> {
if (StrUtil.isBlank(type) && parentId == null) {
return null;
}
LambdaQuery<CoreDict> lambdaQuery = dictDao.getSQLManager().lambdaQuery(CoreDict.class);
if (parentId != null) {
lambdaQuery.andEq(CoreDict::getParent, parentId);
}
if (StrUtil.isNotBlank(type)) {
lambdaQuery.andEq(CoreDict::getType, type);
}
List<CoreDict> coreDictList = lambdaQuery.orderBy(CoreDict::getSort).select();
List<CoreDict> coreDictList =
dictDao
.createLambdaQuery()
.andEq(CoreDict::getParent, Query.filterNull(parentId))
.andEq(CoreDict::getType, Query.filterEmpty(type))
.andEq(CoreDict::getDelFlag, DelFlagEnum.NORMAL)
.orderBy(CoreDict::getSort)
.select();
return coreDictList;
}
......
......@@ -155,7 +155,7 @@ public class CorePlatformService {
return menu;
}
public OrgItem getUserOrgTree() {
public OrgItem getUserOrgTree() {
if (this.isCurrentSupperAdmin()) {
OrgItem root = self.buildOrg();
return root;
......
......@@ -7,12 +7,16 @@ import com.ibeetl.admin.core.dao.SQLManagerBaseDao;
import com.ibeetl.admin.core.entity.CoreOrg;
import com.ibeetl.admin.core.entity.CoreUser;
import com.ibeetl.admin.core.rbac.UserLoginInfo;
import com.ibeetl.admin.core.service.param.CoreUserParam;
import com.ibeetl.admin.core.util.PlatformException;
import com.ibeetl.admin.core.util.enums.DelFlagEnum;
import com.ibeetl.admin.core.util.enums.GeneralStateEnum;
import com.ibeetl.admin.core.util.enums.StateTypeEnum;
import java.util.List;
import java.util.Optional;
import javax.validation.constraints.NotNull;
import org.beetl.sql.core.engine.PageQuery;
import org.beetl.sql.core.query.Query;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
......@@ -29,10 +33,6 @@ public class CoreUserService extends CoreBaseService {
@Autowired SQLManagerBaseDao sqlManagerBaseDao;
public UserLoginInfo login(String userName, String password) {
CoreUser query = new CoreUser();
query.setCode(userName);
query.setPassword(passwordEncryptService.password(password));
query.setState(GeneralStateEnum.ENABLE.getValue());
CoreUser user =
userDao
.createLambdaQuery()
......@@ -42,14 +42,14 @@ public class CoreUserService extends CoreBaseService {
if (user == null) {
throw new PlatformException("用户" + userName + "不存在或者密码错误");
}
if (!user.getState().equals(GeneralStateEnum.ENABLE.getValue())) {
if (!user.getState().equals(StateTypeEnum.S1)) {
throw new PlatformException("用户" + userName + "已经失效");
}
if (user.getDelFlag() == DelFlagEnum.DELETED.getValue()) {
throw new PlatformException("用户" + userName + "已经删除");
}
List<CoreOrg> orgs = getUserOrg(user.getId(), user.getOrgId());
Long orgId = user.getOrgId();
List<CoreOrg> orgs = getUserOrg(user.getId(), orgId);
UserLoginInfo loginInfo = new UserLoginInfo();
loginInfo.setOrgs(orgs);
loginInfo.setUser(user);
......@@ -71,12 +71,19 @@ public class CoreUserService extends CoreBaseService {
return userDao.getUserByRole(role);
}
public PageQuery<CoreUser> getAllUsers(@NotNull Integer page, @NotNull Integer limit) {
PageQuery<CoreUser> pageQuery = sqlManagerBaseDao
.getSQLManager()
.lambdaQuery(CoreUser.class)
.page(page, limit);
super.processObjectsDictField(pageQuery);
public PageQuery<CoreUser> getAllUsers(CoreUserParam coreUserParam) {
PageQuery<CoreUser> pageQuery =
sqlManagerBaseDao
.getSQLManager()
.lambdaQuery(CoreUser.class)
.andGreatEq(
CoreUser::getCreateTime, Query.filterNull(coreUserParam.getCreateTimeStart()))
.andLessEq(CoreUser::getCreateTime, Query.filterNull(coreUserParam.getCreateTimeEnd()))
.andLike(CoreUser::getName, Query.filterEmpty(coreUserParam.getName()))
.andEq(CoreUser::getJobType0, Query.filterNull(coreUserParam.getJobType0()))
.andEq(CoreUser::getJobType1, Query.filterNull(coreUserParam.getJobType1()))
.andEq(CoreUser::getState, Query.filterNull(coreUserParam.getState()))
.page(coreUserParam.getPage(), coreUserParam.getLimit());
return pageQuery;
}
......
package com.ibeetl.admin.core.service.param;
import com.ibeetl.admin.core.util.enums.JobTypeEnum;
import com.ibeetl.admin.core.util.enums.StateTypeEnum;
import com.ibeetl.admin.core.web.query.PageParam;
import java.util.Date;
import lombok.Data;
import lombok.EqualsAndHashCode;
@Data
public class CoreUserParam extends PageParam {
Date createTimeStart;
Date createTimeEnd;
String name;
String code;
Long orgId;
JobTypeEnum jobType0;
JobTypeEnum jobType1;
StateTypeEnum state;
}
package com.ibeetl.admin.core.util.enums;
import cn.hutool.core.util.EnumUtil;
/**
* Interface DictTypeEnum ... 描述:只是一个标记接口,任何一个字典枚举类都要实现该接口<br>
* 主要用于Jackson序列化处理
*
* @author Truma Created on 2020/1/12
*/
public interface DictTypeEnum {}
package com.ibeetl.admin.core.util.enums;
import org.beetl.sql.core.annotatoin.EnumMapping;
@EnumMapping("value")
public enum JobTypeEnum implements DictTypeEnum {
MANAGER("管理岗位", "JT_01", "job_type"),
TECHNOLOGY("技术岗位", "JT_02", "job_type"),
BOARD_OF_DIRECTORS("董事会", "JT_S_01", "job_sub_managment_type"),
SECRETARY("秘书", "JT_S_02", "job_sub_managment_type"),
TECHNICAL_MANAGER("技术经理", "JT_S_03", "job_dev_sub_type"),
PROGRAMMER("程序员", "JT_S_04", "job_dev_sub_type");
private String name;
private String value;
private String type;
JobTypeEnum(String name, String value, String type) {
this.name = name;
this.value = value;
this.type = type;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getValue() {
return value;
}
public void setValue(String value) {
this.value = value;
}
public String getType() {
return type;
}
public void setType(String type) {
this.type = type;
}
}
package com.ibeetl.admin.core.util.enums;
import org.beetl.sql.core.annotatoin.EnumMapping;
@EnumMapping("value")
public enum StateTypeEnum implements DictTypeEnum {
S0("禁用", "S0", "user_state"),
S1("启用", "S1", "job_type");
private String name;
private String value;
private String type;
StateTypeEnum(String name, String value, String type) {
this.name = name;
this.value = value;
this.type = type;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getValue() {
return value;
}
public void setValue(String value) {
this.value = value;
}
public String getType() {
return type;
}
public void setType(String type) {
this.type = type;
}
}
......@@ -19,6 +19,7 @@ import com.ibeetl.admin.core.web.dto.SystemMenuView;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Optional;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.springframework.beans.factory.annotation.Autowired;
......@@ -51,7 +52,8 @@ public class CoreUserController {
CoreUser user = info.getUser();
CoreOrg currentOrg = info.getOrgs().get(0);
for (CoreOrg org : info.getOrgs()) {
if (org.getId() == user.getOrgId()) {
Long orgId = user.getOrgId();
if (org.getId().equals(orgId)) {
currentOrg = org;
break;
}
......
......@@ -13,6 +13,7 @@ import com.ibeetl.admin.core.util.JoseJwtUtil;
import com.ibeetl.admin.core.util.PlatformException;
import java.util.Enumeration;
import java.util.Map;
import java.util.Optional;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
import org.springframework.beans.factory.annotation.Autowired;
......@@ -46,7 +47,8 @@ public class IndexController {
CoreUser user = info.getUser();
CoreOrg currentOrg = info.getOrgs().get(0);
for (CoreOrg org : info.getOrgs()) {
if (org.getId() == user.getOrgId()) {
Long orgId = user.getOrgId();
if (org.getId().equals(orgId)) {
currentOrg = org;
break;
}
......
......@@ -14,6 +14,7 @@ import com.ibeetl.admin.core.util.JoseJwtUtil;
import com.ibeetl.admin.core.util.PlatformException;
import java.util.List;
import java.util.Map;
import java.util.Optional;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
......@@ -55,7 +56,8 @@ public class UserLoginElController {
CoreOrg currentOrg = info.getOrgs().stream().findFirst().orElse(null);
for (CoreOrg org : info.getOrgs()) {
if (org.getId().equals(user.getOrgId())) {
Long orgId = user.getOrgId();
if (org.getId().equals(orgId)) {
currentOrg = org;
break;
}
......
......@@ -23,6 +23,14 @@ public class PageParam {
this.page = page;
}
public Integer getLimit() {
return limit;
}
public void setLimit(Integer limit) {
this.limit = limit;
}
@JsonIgnore
public PageQuery getPageQuery() {
Field[] fs = this.getClass().getDeclaredFields();
......@@ -54,11 +62,14 @@ public class PageParam {
return query;
}
public Integer getLimit() {
return limit;
}
public void setLimit(Integer limit) {
this.limit = limit;
@JsonIgnore
public PageQuery createPageQuery() {
PageQuery query = new PageQuery();
query.setParas(this);
if (page != null) {
query.setPageNumber(page);
query.setPageSize(limit);
}
return query;
}
}
......@@ -18,8 +18,9 @@ if(isEmpty(text)&&isNotEmpty(value)){
}
-->
<div class="${style!'layui-input-inline'}">
<input type="text" name="${name}Text" id="${id}Text" disabled autocomplete="off" class="layui-input" value="${text}">
<input type="text" name="${name}Text" id="${id}Text" disabled autocomplete="off"
class="layui-input" value="${text}">
</div>
<span id="${name}Search">选择</span>
<div style="display:none;"><input type="text" name='${name}' id="${id}" value="${value!}"></div>
......@@ -27,15 +28,9 @@ if(isEmpty(text)&&isNotEmpty(value)){
</div>
<script>
$(document).ready(function(){
$("#${name}Search").click(function(){
Lib.loadOrgPanel($("#${name}TreeDemoContainer"),$("#${id}Text"),$("#${id}"));
})
});
$(document).ready(function () {
$("#${name}Search").click(function () {
Lib.loadOrgPanel($("#${name}TreeDemoContainer"), $("#${id}Text"), $("#${id}"));
})
});
</script>
\ No newline at end of file
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