From 80a51493b3020e3fc4bd182fbd826a6b5b074347 Mon Sep 17 00:00:00 2001 From: lhc Date: Fri, 5 Feb 2021 16:55:30 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B01.2.0=E7=89=88=E6=9C=AC,?= =?UTF-8?q?=E6=96=B0=E5=A2=9E=E7=99=BB=E5=BD=95=E6=8E=A5=E5=8F=A3=E5=92=8C?= =?UTF-8?q?=E8=8F=9C=E5=8D=95=E7=94=9F=E6=88=90=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pom.xml | 2 +- .../common/base/common/utils/ObjectUtil.java | 70 +++++- .../common/base/common/utils/StringUtils.java | 3 +- .../module/auth/constants/AuthConstants.java | 94 ++++++++ .../controller/AuthFunctionController.java | 44 ++++ .../auth/controller/FtUserController.java | 58 +++++ .../base/module/auth/dao/FtUserDao.java | 14 ++ .../base/module/auth/dao/OsSysMenuDao.java | 17 ++ .../base/module/auth/entity/FtUser.java | 74 +++++++ .../base/module/auth/entity/OsSysMenu.java | 114 ++++++++++ .../auth/service/AuthFunctionService.java | 5 + .../module/auth/service/FtUserService.java | 18 ++ .../base/module/auth/service/MenuService.java | 16 ++ .../service/impl/AuthFunctionServiceImpl.java | 11 + .../auth/service/impl/FtUserServiceImpl.java | 85 ++++++++ .../auth/service/impl/MenuServiceImpl.java | 206 ++++++++++++++++++ .../common/base/module/auth/vo/MetaVo.java | 59 +++++ .../common/base/module/auth/vo/RouterVo.java | 55 +++++ .../module/data/annotation/DataIgnore.java | 18 ++ .../base/module/data/module/BaseMapper.java | 73 ++++--- .../module/data/module/BaseMapperImpl.java | 82 +++++-- .../base/module/data/module/DataMap.java | 32 ++- .../com/common/base/module/shiro/FtToken.java | 4 + .../service/impl/TableConfigServiceImpl.java | 7 +- 24 files changed, 1082 insertions(+), 79 deletions(-) create mode 100644 src/main/java/com/common/base/module/auth/constants/AuthConstants.java create mode 100644 src/main/java/com/common/base/module/auth/controller/AuthFunctionController.java create mode 100644 src/main/java/com/common/base/module/auth/controller/FtUserController.java create mode 100644 src/main/java/com/common/base/module/auth/dao/FtUserDao.java create mode 100644 src/main/java/com/common/base/module/auth/dao/OsSysMenuDao.java create mode 100644 src/main/java/com/common/base/module/auth/entity/FtUser.java create mode 100644 src/main/java/com/common/base/module/auth/entity/OsSysMenu.java create mode 100644 src/main/java/com/common/base/module/auth/service/AuthFunctionService.java create mode 100644 src/main/java/com/common/base/module/auth/service/FtUserService.java create mode 100644 src/main/java/com/common/base/module/auth/service/MenuService.java create mode 100644 src/main/java/com/common/base/module/auth/service/impl/AuthFunctionServiceImpl.java create mode 100644 src/main/java/com/common/base/module/auth/service/impl/FtUserServiceImpl.java create mode 100644 src/main/java/com/common/base/module/auth/service/impl/MenuServiceImpl.java create mode 100644 src/main/java/com/common/base/module/auth/vo/MetaVo.java create mode 100644 src/main/java/com/common/base/module/auth/vo/RouterVo.java create mode 100644 src/main/java/com/common/base/module/data/annotation/DataIgnore.java diff --git a/pom.xml b/pom.xml index eea7a7d..ff9db2d 100644 --- a/pom.xml +++ b/pom.xml @@ -10,7 +10,7 @@ com.common.base base - 1.1.0-beta1 + 1.2.0-beta1 jar common-base 基础包 diff --git a/src/main/java/com/common/base/common/utils/ObjectUtil.java b/src/main/java/com/common/base/common/utils/ObjectUtil.java index d603579..4de1d44 100644 --- a/src/main/java/com/common/base/common/utils/ObjectUtil.java +++ b/src/main/java/com/common/base/common/utils/ObjectUtil.java @@ -1,18 +1,25 @@ package com.common.base.common.utils; +import com.common.base.common.ServiceException; +import com.common.base.module.data.annotation.DataIgnore; import com.common.base.module.data.module.DataMap; import org.springframework.util.StringUtils; import javax.persistence.Id; import javax.persistence.Table; import java.lang.reflect.Field; +import java.util.ArrayList; import java.util.HashMap; +import java.util.List; import java.util.Map; public class ObjectUtil { private static final String SERIAL_VERSION_UID = "serialVersionUID"; + private static final String STRING = "class java.lang.String"; + private static final String INTEGER = "class java.lang.Integer"; + private static final String LONG = "class java.lang.LONG"; public static Map objToMap(Object obj) { Map map = new HashMap(); @@ -32,9 +39,10 @@ public class ObjectUtil { return map; } - public static void objToSqlMap(Object obj, DataMap dataMap) { - Map map = new HashMap(); + public static void objToSqlMap(Object obj, DataMap dataMap) { Class clazz = obj.getClass(); + Map map = new HashMap(clazz.getDeclaredFields().length); + List fieldList = new ArrayList<>(); if (clazz.getAnnotation(Table.class) != null) { Table table = clazz.getAnnotation(Table.class); dataMap = dataMap.toBuilder().tableName(table.name()).build(); @@ -46,20 +54,26 @@ public class ObjectUtil { dataMap = dataMap.toBuilder().pkName(com.common.base.common.utils.StringUtils.toUnderScoreUpperCase(fieldName)).build(); } try { - if (!StringUtils.isEmpty(field.get(obj)) && !fieldName.equals(SERIAL_VERSION_UID)) { - Object value = field.get(obj); - map.put(com.common.base.common.utils.StringUtils.toUnderScoreUpperCase(fieldName), value); + if (!fieldName.equals(SERIAL_VERSION_UID)) { + if (!StringUtils.isEmpty(field.get(obj))) { + Object value = field.get(obj); + map.put(com.common.base.common.utils.StringUtils.toUnderScoreUpperCase(fieldName), value); + } + if (field.getAnnotation(DataIgnore.class) == null) { + fieldList.add(com.common.base.common.utils.StringUtils.toUnderScoreUpperCase(fieldName)); + } } } catch (IllegalAccessException e) { e.printStackTrace(); } } - dataMap = dataMap.toBuilder().data(map).build(); + dataMap.toBuilder().data(map).fieldList(fieldList).build(); } - public static void objToSqlMap(Object obj, DataMap.DataMapBuilder dataMap) { - Map map = new HashMap(); + public static void objToSqlMap(Object obj, DataMap.DataMapBuilder dataMap) { Class clazz = obj.getClass(); + Map map = new HashMap(clazz.getDeclaredFields().length); + List fieldList = new ArrayList<>(); if (clazz.getAnnotation(Table.class) != null) { Table table = clazz.getAnnotation(Table.class); dataMap = dataMap.tableName(table.name()); @@ -71,14 +85,46 @@ public class ObjectUtil { dataMap = dataMap.pkName(com.common.base.common.utils.StringUtils.toUnderScoreUpperCase(fieldName)); } try { - if (!StringUtils.isEmpty(field.get(obj)) && !fieldName.equals(SERIAL_VERSION_UID)) { - Object value = field.get(obj); - map.put(com.common.base.common.utils.StringUtils.toUnderScoreUpperCase(fieldName), value); + if (!fieldName.equals(SERIAL_VERSION_UID)) { + if (!StringUtils.isEmpty(field.get(obj))) { + Object value = field.get(obj); + map.put(com.common.base.common.utils.StringUtils.toUnderScoreUpperCase(fieldName), value); + } + if (field.getAnnotation(DataIgnore.class) == null) { + fieldList.add(com.common.base.common.utils.StringUtils.toUnderScoreUpperCase(fieldName)); + } } + } catch (IllegalAccessException e) { e.printStackTrace(); } } - dataMap.data(map); + dataMap.data(map).fieldList(fieldList); } + + public static void setField(Object obj, String key, Object value) { + Class clazz = obj.getClass(); + try { + Field field = clazz.getDeclaredField(key); + field.setAccessible(true); + String str = field.getGenericType().toString(); + if (STRING.equals(str)) { + value = value.toString(); + } + if (INTEGER.equals(str)) { + value = Integer.valueOf(value.toString()); + } + if (LONG.equals(str)) { + value = Long.valueOf(value.toString()); + } + try { + field.set(obj, value); + } catch (IllegalAccessException e) { + throw new ServiceException("字段类型不匹配", e); + } + } catch (NoSuchFieldException e) { + throw new ServiceException("无法找到相应的字段", e); + } + } + } diff --git a/src/main/java/com/common/base/common/utils/StringUtils.java b/src/main/java/com/common/base/common/utils/StringUtils.java index 2af082d..3812384 100644 --- a/src/main/java/com/common/base/common/utils/StringUtils.java +++ b/src/main/java/com/common/base/common/utils/StringUtils.java @@ -411,6 +411,7 @@ public class StringUtils extends org.apache.commons.lang3.StringUtils { } public static void main(String[] args) { - System.out.println(toUnderScoreUpperCase("userId")); + Long l = 1l; + System.out.println(l.toString()); } } diff --git a/src/main/java/com/common/base/module/auth/constants/AuthConstants.java b/src/main/java/com/common/base/module/auth/constants/AuthConstants.java new file mode 100644 index 0000000..60df06c --- /dev/null +++ b/src/main/java/com/common/base/module/auth/constants/AuthConstants.java @@ -0,0 +1,94 @@ +package com.common.base.module.auth.constants; + +/** + * @author lhc + * @date 2020-12-10 + * @decription 权限常亮信息 + */ +public class AuthConstants { + /** + * 平台内系统用户的唯一标志 + */ + public static final String SYS_USER = "SYS_USER"; + + /** + * 正常状态 + */ + public static final String NORMAL = "0"; + + /** + * 异常状态 + */ + public static final String EXCEPTION = "1"; + + /** + * 用户封禁状态 + */ + public static final String USER_DISABLE = "1"; + + /** + * 角色封禁状态 + */ + public static final String ROLE_DISABLE = "1"; + + /** + * 部门正常状态 + */ + public static final String DEPT_NORMAL = "0"; + + /** + * 部门停用状态 + */ + public static final String DEPT_DISABLE = "1"; + + /** + * 字典正常状态 + */ + public static final String DICT_NORMAL = "0"; + + /** + * 是否为系统默认(是) + */ + public static final String YES = "Y"; + + /** + * 是否菜单外链(是) + */ + public static final String YES_FRAME = "1"; + + /** + * 是否菜单外链(否) + */ + public static final String NO_FRAME = "0"; + + /** + * 菜单类型(目录) + */ + public static final String TYPE_DIR = "M"; + + /** + * 菜单类型(菜单) + */ + public static final String TYPE_MENU = "C"; + + /** + * 菜单类型(按钮) + */ + public static final String TYPE_BUTTON = "F"; + + /** + * Layout组件标识 + */ + public final static String LAYOUT = "Layout"; + + /** + * 非Layout菜单组件标识 + */ + public final static String UN_LAYOUT = "un-layout/index.vue"; + + /** + * 校验返回结果码 + */ + public final static String UNIQUE = "0"; + public final static String NOT_UNIQUE = "1"; +} diff --git a/src/main/java/com/common/base/module/auth/controller/AuthFunctionController.java b/src/main/java/com/common/base/module/auth/controller/AuthFunctionController.java new file mode 100644 index 0000000..1b3f990 --- /dev/null +++ b/src/main/java/com/common/base/module/auth/controller/AuthFunctionController.java @@ -0,0 +1,44 @@ +package com.common.base.module.auth.controller; + +import com.common.base.common.ResultVO; +import com.common.base.module.auth.entity.OsSysMenu; +import com.common.base.module.auth.service.AuthFunctionService; +import com.common.base.module.auth.service.MenuService; +import io.swagger.annotations.Api; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import java.util.List; + +/** + * @author lhc + * @date 2020-12-09 + * @decription 权限接口 + */ +@RestController +@Api(tags = "权限管理") +@RequestMapping("auth/function") +public class AuthFunctionController { + + @Autowired + AuthFunctionService authService; + + @Autowired + MenuService menuService; + + + @GetMapping("menu") + public ResultVO getMenuResult() { + List menus = menuService.getMenuResult(); + return ResultVO.getSuccess(menuService.formatMenu(menus)); + } + + @PostMapping("menu") + public ResultVO addAuthResult(OsSysMenu osSysMenu) { + return ResultVO.getSuccess(menuService.add(osSysMenu)); + } + +} diff --git a/src/main/java/com/common/base/module/auth/controller/FtUserController.java b/src/main/java/com/common/base/module/auth/controller/FtUserController.java new file mode 100644 index 0000000..52987c4 --- /dev/null +++ b/src/main/java/com/common/base/module/auth/controller/FtUserController.java @@ -0,0 +1,58 @@ +package com.common.base.module.auth.controller; + +import com.common.base.common.ResultVO; +import com.common.base.module.auth.service.FtUserService; +import com.common.base.module.log.annotation.LogAnno; +import com.common.base.module.shiro.service.ShiroService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiImplicitParam; +import io.swagger.annotations.ApiImplicitParams; +import io.swagger.annotations.ApiOperation; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import javax.servlet.http.HttpServletRequest; + +/** + * (FtUser)表控制层 + * + * @author lhc + * @since 2020-02-11 19:29:10 + */ +@RestController +@Api(tags = "用户相关接口") +@RequestMapping("ftUser") +public class FtUserController { + /** + * 服务对象 + */ + @Autowired + private FtUserService ftUserService; + + @Autowired + ShiroService shiroService; + + @ApiOperation(value = "用户登陆") + @ApiImplicitParams({ + @ApiImplicitParam(name = "username", value = "用户名", required = true), + @ApiImplicitParam(name = "password", value = "密码", required = true), + }) + //@LogAnno(operateType = "用户登录") + @PostMapping("login") + public ResultVO login(HttpServletRequest request, String username, String password) { + return ftUserService.login(request, username, password); + } + + @LogAnno(operateType = "用户登出", isBefore = true) + @ApiOperation(value = "用户登出") + @PostMapping("/logout") + public ResultVO logOut(HttpServletRequest request) { + String token = request.getHeader("X-Access-Token"); + shiroService.logout(token); + return ResultVO.getSuccess(); + } + + +} diff --git a/src/main/java/com/common/base/module/auth/dao/FtUserDao.java b/src/main/java/com/common/base/module/auth/dao/FtUserDao.java new file mode 100644 index 0000000..d850f78 --- /dev/null +++ b/src/main/java/com/common/base/module/auth/dao/FtUserDao.java @@ -0,0 +1,14 @@ +package com.common.base.module.auth.dao; + +import com.common.base.common.Mapper; +import com.common.base.module.auth.entity.FtUser; + +/** + * (FtUser)表数据库访问层 + * + * @author lhc + * @since 2020-02-11 19:29:10 + */ +public interface FtUserDao extends Mapper { + +} diff --git a/src/main/java/com/common/base/module/auth/dao/OsSysMenuDao.java b/src/main/java/com/common/base/module/auth/dao/OsSysMenuDao.java new file mode 100644 index 0000000..a2d173f --- /dev/null +++ b/src/main/java/com/common/base/module/auth/dao/OsSysMenuDao.java @@ -0,0 +1,17 @@ +package com.common.base.module.auth.dao; + +import com.common.base.common.Mapper; +import com.common.base.module.auth.entity.OsSysMenu; + +import java.util.List; + +/** + * 菜单权限表(OsSysMenu)表数据库访问层 + * + * @author makejava + * @since 2020-12-09 09:57:20 + */ +public interface OsSysMenuDao extends Mapper { + + List selectMenu(); +} diff --git a/src/main/java/com/common/base/module/auth/entity/FtUser.java b/src/main/java/com/common/base/module/auth/entity/FtUser.java new file mode 100644 index 0000000..18d7860 --- /dev/null +++ b/src/main/java/com/common/base/module/auth/entity/FtUser.java @@ -0,0 +1,74 @@ +package com.common.base.module.auth.entity; + +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; +import org.springframework.format.annotation.DateTimeFormat; + +import javax.persistence.GeneratedValue; +import javax.persistence.Id; +import javax.persistence.Table; +import java.io.Serializable; +import java.util.Date; + +/** + * (FtUser)实体类 + * + * @author lhc + * @since 2020-09-23 13:49:30 + */ +@NoArgsConstructor +@AllArgsConstructor +@Builder(toBuilder = true) +@Data +@Table(name = "FT_USER") +public class FtUser implements Serializable { + private static final long serialVersionUID = -44415286580890701L; + /** + * 主键ID + */ + @Id + @GeneratedValue(generator="JDBC") + private Integer userId; + /** + * 用户名 + */ + private String username; + /** + * 密码 + */ + private String password; + /** + * 手机号 + */ + private String phone; + /** + * 用户类型,0未验证用户,1外部,2内部,3企业 + */ + private Integer userType; + /** + * 启用/禁用 + */ + private Integer enabled; + /** + * 用户信息主键 + */ + private Integer userInfoId; + /** + * 创建时间 + */ + @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Date createTime; + /** + * 修改时间 + */ + @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Date updateTime; + + private Integer orgId; + +} diff --git a/src/main/java/com/common/base/module/auth/entity/OsSysMenu.java b/src/main/java/com/common/base/module/auth/entity/OsSysMenu.java new file mode 100644 index 0000000..ab85044 --- /dev/null +++ b/src/main/java/com/common/base/module/auth/entity/OsSysMenu.java @@ -0,0 +1,114 @@ +package com.common.base.module.auth.entity; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import javax.persistence.Table; +import java.io.Serializable; +import java.util.Date; +import java.util.List; + +/** + * 菜单权限表(OsSysMenu)实体类 + * + * @author makejava + * @since 2020-12-09 09:57:20 + */ +@NoArgsConstructor +@AllArgsConstructor +@Builder(toBuilder = true) +@Data +@Table(name = "OS_SYS_MENU") +public class OsSysMenu implements Serializable { + private static final long serialVersionUID = -36592644935215591L; + + public static final String M = "M"; + public static final String C = "C"; + public static final String F = "F"; + public static final String I = "I"; + + + /** + * 菜单ID + */ + private Long menuId; + /** + * 菜单名称 + */ + private String menuName; + /** + * 父菜单ID + */ + private Long parentId; + /** + * 显示顺序 + */ + private Integer orderNum; + /** + * 路由地址 + */ + private String path; + /** + * 组件路径 + */ + private String component; + /** + * 是否为外链(0是 1否) + */ + private String isFrame; + /** + * 是否缓存(0缓存 1不缓存) + */ + private String isCache; + /** + * 菜单类型(M目录 C菜单 F按钮) + */ + private String menuType; + /** + * 菜单状态(0显示 1隐藏) + */ + private String visible; + /** + * 菜单状态(0正常 1停用) + */ + private String status; + /** + * 权限标识 + */ + private String perms; + /** + * 菜单图标 + */ + private String icon; + /** + * 创建时间 + */ + private Date createTime; + /** + * 更新时间 + */ + private Date updateTime; + /** + * 备注 + */ + private String remark; + /** + * if true, will always show the root menu (default is false) + * if false, hide the root menu when has less or equal than one children route + */ + private String alwaysShow; + + /** + * if false, the item will be hidden in breadcrumb (default is true) + */ + private String breadcrumb; + /** + * if true, the tag will affix in the tags-view + */ + private String affix; + + private List children; + +} diff --git a/src/main/java/com/common/base/module/auth/service/AuthFunctionService.java b/src/main/java/com/common/base/module/auth/service/AuthFunctionService.java new file mode 100644 index 0000000..a8b4775 --- /dev/null +++ b/src/main/java/com/common/base/module/auth/service/AuthFunctionService.java @@ -0,0 +1,5 @@ +package com.common.base.module.auth.service; + +public interface AuthFunctionService { + +} diff --git a/src/main/java/com/common/base/module/auth/service/FtUserService.java b/src/main/java/com/common/base/module/auth/service/FtUserService.java new file mode 100644 index 0000000..c1859a7 --- /dev/null +++ b/src/main/java/com/common/base/module/auth/service/FtUserService.java @@ -0,0 +1,18 @@ +package com.common.base.module.auth.service; + + +import com.common.base.common.ResultVO; + +import javax.servlet.http.HttpServletRequest; + +/** + * (FtUser)表服务接口 + * + * @author lhc + * @since 2020-02-11 19:29:10 + */ +public interface FtUserService { + + ResultVO login(HttpServletRequest request, String username, String password); + +} diff --git a/src/main/java/com/common/base/module/auth/service/MenuService.java b/src/main/java/com/common/base/module/auth/service/MenuService.java new file mode 100644 index 0000000..c3972ae --- /dev/null +++ b/src/main/java/com/common/base/module/auth/service/MenuService.java @@ -0,0 +1,16 @@ +package com.common.base.module.auth.service; + + +import com.common.base.module.auth.entity.OsSysMenu; +import com.common.base.module.auth.vo.RouterVo; + +import java.util.List; + +public interface MenuService { + + List getMenuResult(); + + List formatMenu(List menus); + + Object add(OsSysMenu osSysMenu); +} diff --git a/src/main/java/com/common/base/module/auth/service/impl/AuthFunctionServiceImpl.java b/src/main/java/com/common/base/module/auth/service/impl/AuthFunctionServiceImpl.java new file mode 100644 index 0000000..80d2577 --- /dev/null +++ b/src/main/java/com/common/base/module/auth/service/impl/AuthFunctionServiceImpl.java @@ -0,0 +1,11 @@ +package com.common.base.module.auth.service.impl; + +import com.common.base.module.auth.service.AuthFunctionService; +import org.springframework.stereotype.Service; + + +@Service +public class AuthFunctionServiceImpl implements AuthFunctionService { + + +} diff --git a/src/main/java/com/common/base/module/auth/service/impl/FtUserServiceImpl.java b/src/main/java/com/common/base/module/auth/service/impl/FtUserServiceImpl.java new file mode 100644 index 0000000..a205eb4 --- /dev/null +++ b/src/main/java/com/common/base/module/auth/service/impl/FtUserServiceImpl.java @@ -0,0 +1,85 @@ +package com.common.base.module.auth.service.impl; + +import com.common.base.common.ResultVO; +import com.common.base.common.ServiceException; +import com.common.base.common.config.FrameConfig; +import com.common.base.common.utils.MD5Util; +import com.common.base.common.utils.TokenProccessor; +import com.common.base.module.auth.dao.FtUserDao; +import com.common.base.module.auth.entity.FtUser; +import com.common.base.module.auth.service.FtUserService; +import com.common.base.module.shiro.dao.FtTokenDao; +import com.common.base.module.shiro.service.ShiroService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import javax.servlet.http.HttpServletRequest; +import java.util.Date; +import java.util.Map; + +/** + * (FtUser)表服务实现类 + * + * @author lhc + * @since 2020-02-11 19:29:10 + */ +@Service("ftUserService") +public class FtUserServiceImpl implements FtUserService { + + + /** + * 用户失效时间 + */ + private static int EXPIRE; + + private final FtTokenDao ftTokenDao; + private final FtUserDao ftUserDao; + + + final + ShiroService shiroService; + + + + public FtUserServiceImpl(FtUserDao ftUserDao, ShiroService shiroService, FtTokenDao ftTokenDao) { + this.ftUserDao = ftUserDao; + this.shiroService = shiroService; + this.ftTokenDao = ftTokenDao; + } + + @Autowired + public void setHost(FrameConfig config) { + FtUserServiceImpl.EXPIRE = config.getLoginTimeout() * 3600 * 1000; + } + + + + @Override + @Transactional + public ResultVO login(HttpServletRequest request, String username, String password) { + FtUser ftUser = FtUser.builder().username(username).build(); + ftUser = ftUserDao.selectOne(ftUser); + if (ftUser == null) { + throw new ServiceException("用户名不存在"); + } + if (ftUser.getEnabled() != 2) { + if (MD5Util.isEqual(password, ftUser.getPassword())) { + TokenProccessor tokenProccessor = TokenProccessor.getInstance(); + //生成一个token + String token = tokenProccessor.makeToken(); + //过期时间 + Date now = new Date(); + Date expireTime = new Date(now.getTime() + EXPIRE); + ResultVO resultVO = shiroService.createToken(String.valueOf(ftUser.getUserId()),token,expireTime); + Map map = (Map) resultVO.getData(); + return ResultVO.getSuccess(map); + } else { + throw new ServiceException("用户名或密码错误!"); + } + } else { + throw new ServiceException("用户已被禁用,请联系管理员"); + } + } + +} diff --git a/src/main/java/com/common/base/module/auth/service/impl/MenuServiceImpl.java b/src/main/java/com/common/base/module/auth/service/impl/MenuServiceImpl.java new file mode 100644 index 0000000..f123201 --- /dev/null +++ b/src/main/java/com/common/base/module/auth/service/impl/MenuServiceImpl.java @@ -0,0 +1,206 @@ +package com.common.base.module.auth.service.impl; + +import com.common.base.common.utils.StringUtils; +import com.common.base.module.auth.constants.AuthConstants; +import com.common.base.module.auth.dao.OsSysMenuDao; +import com.common.base.module.auth.entity.OsSysMenu; +import com.common.base.module.auth.service.MenuService; +import com.common.base.module.auth.vo.MetaVo; +import com.common.base.module.auth.vo.RouterVo; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.ArrayList; +import java.util.Iterator; +import java.util.LinkedList; +import java.util.List; + +@Service +public class MenuServiceImpl implements MenuService { + + @Autowired + OsSysMenuDao osSysMenuDao; + + @Override + public List getMenuResult() { + List osSysMenus = osSysMenuDao.selectMenu(); + return getChildPerms(osSysMenus, 0); + } + + /** + * 根据父节点的ID获取所有子节点 + * + * @param list 分类表 + * @param parentId 传入的父节点ID + * @return String + */ + public List getChildPerms(List list, int parentId) { + List returnList = new ArrayList(); + for (Iterator iterator = list.iterator(); iterator.hasNext(); ) { + OsSysMenu t = iterator.next(); + // 一、根据传入的某个父节点ID,遍历该父节点的所有子节点 + if (t.getParentId() == parentId) { + recursionFn(list, t); + returnList.add(t); + } + } + return returnList; + } + + /** + * 递归列表 + * + * @param list + * @param t + */ + private void recursionFn(List list, OsSysMenu t) { + // 得到子节点列表 + List childList = getChildList(list, t); + t.setChildren(childList); + for (OsSysMenu tChild : childList) { + if (hasChild(list, tChild)) { + recursionFn(list, tChild); + } + } + } + + /** + * 得到子节点列表 + */ + private List getChildList(List list, OsSysMenu t) { + List tlist = new ArrayList(); + Iterator it = list.iterator(); + while (it.hasNext()) { + OsSysMenu n = it.next(); + if (n.getParentId().longValue() == t.getMenuId().longValue()) { + tlist.add(n); + } + } + return tlist; + } + + /** + * 判断是否有子节点 + */ + private boolean hasChild(List list, OsSysMenu t) { + return getChildList(list, t).size() > 0; + } + + @Override + public List formatMenu(List menus) { + List routers = new LinkedList(); + for (OsSysMenu menu : menus) { + RouterVo router = new RouterVo(); + router.setName(getRouteName(menu)); + router.setPath(getRouterPath(menu)); + router.setComponent(getComponent(menu)); + MetaVo metaVo = MetaVo + .builder() + .title(menu.getMenuName()) + .icon(menu.getIcon()) + .noCache(StringUtils.equals("0", menu.getIsCache())) + .hidden("0".equals(menu.getVisible())) + .breadcrumb("1".equals(menu.getBreadcrumb())) + .affix("1".equals(menu.getAffix())) + .alwaysShow("1".equals(menu.getAlwaysShow())) + .build(); + List cMenus = menu.getChildren(); + if (cMenus != null && !cMenus.isEmpty() && AuthConstants.TYPE_DIR.equals(menu.getMenuType())) { + router.setRedirect("noredirect"); + router.setChildren(formatMenu(cMenus)); + } else if (isMeunFrame(menu)) { + List childrenList = new ArrayList(); + RouterVo children = new RouterVo(); + children.setPath(menu.getPath()); + children.setComponent(menu.getComponent()); + children.setName(StringUtils.capitalize(menu.getPath())); + metaVo = metaVo.toBuilder() + .title(menu.getMenuName()) + .icon(menu.getIcon()) + .noCache(StringUtils.equals("0", menu.getIsCache())) + .alwaysShow("1".equals(menu.getAlwaysShow())) + .build(); + childrenList.add(children); + router.setChildren(childrenList); + } else if (cMenus == null || cMenus.isEmpty()) { + metaVo.setAlwaysShow(false); + } + router.setMeta(metaVo); + routers.add(router); + } + return routers; + } + + @Override + public Object add(OsSysMenu osSysMenu) { + return null; + } + + /** + * 获取路由名称 + * + * @param menu 菜单信息 + * @return 路由名称 + */ + public String getRouteName(OsSysMenu menu) { + String routerName = StringUtils.capitalize(menu.getPath()); + // 非外链并且是一级目录(类型为目录) + if (isMeunFrame(menu)) { + routerName = StringUtils.EMPTY; + } + return routerName; + } + + /** + * 获取路由地址 + * + * @param menu 菜单信息 + * @return 路由地址 + */ + public String getRouterPath(OsSysMenu menu) { + String routerPath = menu.getPath(); + // 非外链并且是一级目录(类型为目录) + if (0 == menu.getParentId().intValue() && AuthConstants.TYPE_DIR.equals(menu.getMenuType()) + && AuthConstants.NO_FRAME.equals(menu.getIsFrame())) { + routerPath = "/" + menu.getPath(); + } + // 非外链并且是一级目录(类型为菜单) + else if (isMeunFrame(menu)) { + routerPath = "/"; + } + return routerPath; + } + + /** + * 获取组件信息 + * + * @param menu 菜单信息 + * @return 组件信息 + */ + public String getComponent(OsSysMenu menu) { + String component = AuthConstants.LAYOUT; + if (StringUtils.isNotEmpty(menu.getComponent()) && !isMeunFrame(menu)) { + component = menu.getComponent(); + } + if (StringUtils.isEmpty(menu.getComponent())&&isNotParentMenuFrame(menu)) { + component = AuthConstants.UN_LAYOUT; + } + return component; + } + + /** + * 是否为菜单内部跳转 + * + * @param menu 菜单信息 + * @return 结果 + */ + public boolean isMeunFrame(OsSysMenu menu) { + return menu.getParentId().intValue() == 0 && AuthConstants.TYPE_MENU.equals(menu.getMenuType()) + && menu.getIsFrame().equals(AuthConstants.NO_FRAME); + } + + public boolean isNotParentMenuFrame(OsSysMenu menu) { + return menu.getParentId().intValue() != 0 && AuthConstants.TYPE_DIR.equals(menu.getMenuType()) + && menu.getIsFrame().equals(AuthConstants.NO_FRAME); + } +} diff --git a/src/main/java/com/common/base/module/auth/vo/MetaVo.java b/src/main/java/com/common/base/module/auth/vo/MetaVo.java new file mode 100644 index 0000000..111401e --- /dev/null +++ b/src/main/java/com/common/base/module/auth/vo/MetaVo.java @@ -0,0 +1,59 @@ +/**/ +package com.common.base.module.auth.vo; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.io.Serializable; + +/** + * 路由显示信息 + * + * @author ruoyi + */ +@NoArgsConstructor +@AllArgsConstructor +@Builder(toBuilder = true) +@Data +public class MetaVo implements Serializable { + private static final long serialVersionUID = -4261993881269135509L; + /** + * 设置该路由在侧边栏和面包屑中展示的名字 + */ + private String title; + + /** + * 设置该路由的图标,对应路径src/assets/icons/svg + */ + private String icon; + + /** + * 设置为true,则不会被 缓存 + */ + private boolean noCache; + + /** + * 设置为是否隐藏,true为隐藏 + */ + private boolean hidden; + + /** + * if true, will always show the root menu (default is false) + * if false, hide the root menu when has less or equal than one children route + */ + private boolean alwaysShow; + + /** + * if false, the item will be hidden in breadcrumb (default is true) + */ + private boolean breadcrumb; + /** + * if true, the tag will affix in the tags-view + */ + private boolean affix; + + + +} diff --git a/src/main/java/com/common/base/module/auth/vo/RouterVo.java b/src/main/java/com/common/base/module/auth/vo/RouterVo.java new file mode 100644 index 0000000..1a414b4 --- /dev/null +++ b/src/main/java/com/common/base/module/auth/vo/RouterVo.java @@ -0,0 +1,55 @@ +package com.common.base.module.auth.vo; + +import com.fasterxml.jackson.annotation.JsonInclude; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.io.Serializable; +import java.util.List; + +/** + * 路由配置信息 + * + * @author ruoyi + */ +@JsonInclude(JsonInclude.Include.NON_EMPTY) +@NoArgsConstructor +@AllArgsConstructor +@Builder(toBuilder = true) +@Data +public class RouterVo implements Serializable { + + private static final long serialVersionUID = 8361861823516461515L; + /** + * 路由名字 + */ + private String name; + + /** + * 路由地址 + */ + private String path; + + /** + * 重定向地址,当设置 noRedirect 的时候该路由在面包屑导航中不可被点击 + */ + private String redirect; + + /** + * 组件地址 + */ + private String component; + + /** + * 其他元素 + */ + private MetaVo meta; + + /** + * 子路由 + */ + private List children; + +} diff --git a/src/main/java/com/common/base/module/data/annotation/DataIgnore.java b/src/main/java/com/common/base/module/data/annotation/DataIgnore.java new file mode 100644 index 0000000..ffbf655 --- /dev/null +++ b/src/main/java/com/common/base/module/data/annotation/DataIgnore.java @@ -0,0 +1,18 @@ +package com.common.base.module.data.annotation; + +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +/** + * 忽略字段 + * + * @author lhc + */ +// 方法注解 +@Target(ElementType.FIELD) +// 运行时可见 +@Retention(RetentionPolicy.RUNTIME) +public @interface DataIgnore { +} diff --git a/src/main/java/com/common/base/module/data/module/BaseMapper.java b/src/main/java/com/common/base/module/data/module/BaseMapper.java index ccf5622..f1499df 100644 --- a/src/main/java/com/common/base/module/data/module/BaseMapper.java +++ b/src/main/java/com/common/base/module/data/module/BaseMapper.java @@ -7,89 +7,98 @@ import com.github.pagehelper.PageInfo; import java.util.List; import java.util.Map; +/** + * @author lhc + */ public interface BaseMapper { - int save(DataMap dataMap); + int save(DataMap dataMap); - int save(String tableName,String pkName , Map data); + int save(String tableName, String pkName, Map data); - int updateByPk(DataMap dataMap); + int save(E e); - int updateByPk(String tableName, String pkName, Object pkValue, Map data); + int updateByPk(DataMap dataMap); - int updateByPk(OsSysTable osSysTable, Object pkValue, Map data); + int updateByPk(String tableName, String pkName, Map data); - int updateInPk(DataMap dataMap); + int updateByPk(OsSysTable osSysTable, Map data); + + int updateByPk(E e); + + int updateInPk(DataMap dataMap); + + int updateInPk(E e, List ids); int updateInPk(String tableName, String pkName, List ids, Map data); int updateInPk(OsSysTable osSysTable, List ids, Map data); - int updateByCondition(DataMap dataMap, Condition condition); + int updateByCondition(DataMap dataMap, Condition condition); - int updateByCondition(String tableName,Map data, Condition condition); + int updateByCondition(String tableName, Map data, Condition condition); - int deleteByPk(DataMap dataMap); + int deleteByPk(DataMap dataMap); - int deleteByPk(String tableName, String pkName,Object pkValue); + int deleteByPk(String tableName, String pkName, Object pkValue); - int deleteByPk(OsSysTable osSysTable,Object pkValue); + int deleteByPk(OsSysTable osSysTable, Object pkValue); - int deleteInPk(String tableName, String pkName,List ids); + int deleteInPk(String tableName, String pkName, List ids); - int deleteInPk(DataMap dataMap); + int deleteInPk(DataMap dataMap); - int deleteInPk(OsSysTable osSysTable,List ids); + int deleteInPk(OsSysTable osSysTable, List ids); - int deleteByCondition(DataMap dataMap, Condition condition); + int deleteByCondition(DataMap dataMap, Condition condition); int deleteByCondition(String tableName, Condition condition); List> selectAll(String tableName); - List> selectByEqual(DataMap dataMap, Map map); + List> selectByEqual(DataMap dataMap, Map map); - List> selectByEqual(String tableName, Map map); + List> selectByEqual(String tableName, Map map); - PageInfo> selectByEqual(DataMap dataMap, Map map, WebPageInfo webPageInfo); + PageInfo> selectByEqual(DataMap dataMap, Map map, WebPageInfo webPageInfo); - PageInfo> selectByEqual(String tableName, Map map, WebPageInfo webPageInfo); + PageInfo> selectByEqual(String tableName, Map map, WebPageInfo webPageInfo); - Map selectOneByEqual(DataMap dataMap,Map map); + Map selectOneByEqual(DataMap dataMap, Map map); - Map selectByPk(DataMap dataMap); + Map selectByPk(DataMap dataMap); - Map selectByPk(OsSysTable osSysTable,Object pkValue); + Map selectByPk(OsSysTable osSysTable, Object pkValue); - Map selectByPk(String tableName,String pkName,Object pkValue); + Map selectByPk(String tableName, String pkName, Object pkValue); List> selectByCondition(Condition condition); - List> selectByCondition(DataMap dataMap, Condition condition); + List> selectByCondition(DataMap dataMap, Condition condition); List> selectByCondition(String tableName, Condition condition); - List> selectByCondition(String tableName,List fieldList, Condition condition); + List> selectByCondition(String tableName, List fieldList, Condition condition); - List> selectByCondition(String tableName,String fieldList, Condition condition); + List> selectByCondition(String tableName, String fieldList, Condition condition); PageInfo> selectByCondition(Condition condition, WebPageInfo webPageInfo); - PageInfo> selectByCondition(DataMap dataMap, Condition condition, WebPageInfo webPageInfo); + PageInfo> selectByCondition(DataMap dataMap, Condition condition, WebPageInfo webPageInfo); PageInfo> selectByCondition(String tableName, Condition condition, WebPageInfo webPageInfo); - PageInfo> selectByCondition(String tableName,List fieldList, Condition condition, WebPageInfo webPageInfo); + PageInfo> selectByCondition(String tableName, List fieldList, Condition condition, WebPageInfo webPageInfo); - PageInfo> selectByCondition(String tableName,String fieldList, Condition condition, WebPageInfo webPageInfo); + PageInfo> selectByCondition(String tableName, String fieldList, Condition condition, WebPageInfo webPageInfo); - Map selectOneByCondition(DataMap dataMap, Condition condition); + Map selectOneByCondition(DataMap dataMap, Condition condition); Map selectOneByCondition(String tableName, Condition condition); - Map selectOneByCondition(String tableName,List fieldList, Condition condition); + Map selectOneByCondition(String tableName, List fieldList, Condition condition); - Map selectOneByCondition(String tableName,String fieldList, Condition condition); + Map selectOneByCondition(String tableName, String fieldList, Condition condition); Map selectOneByCondition(Condition condition); diff --git a/src/main/java/com/common/base/module/data/module/BaseMapperImpl.java b/src/main/java/com/common/base/module/data/module/BaseMapperImpl.java index 91b36ba..c2508a2 100644 --- a/src/main/java/com/common/base/module/data/module/BaseMapperImpl.java +++ b/src/main/java/com/common/base/module/data/module/BaseMapperImpl.java @@ -23,6 +23,8 @@ import java.util.Map; @Qualifier("base") public class BaseMapperImpl implements BaseMapper { + + public static final String BASE = "base"; final TableMapper tableMapper; @@ -33,7 +35,7 @@ public class BaseMapperImpl implements BaseMapper { @Override @Transactional - public int save(DataMap dataMap) { + public int save(DataMap dataMap) { String key; key = DBContextHolder.getDataSource(); DatasourceConfig datasourceConfig = DataSourceUtil.get(key); @@ -45,12 +47,16 @@ public class BaseMapperImpl implements BaseMapper { int i; if (datasourceConfig.getCommonType().equals(DataUnit.ORACLE)||datasourceConfig.getCommonType().equals(DataUnit.DAMENG)) { if (org.springframework.util.StringUtils.isEmpty(dataMap.get(dataMap.getPkName()))) { - dataMap.toBuilder().add(dataMap.getPkName(), getSequence(dataMap.getTableName(), dataMap.getPkName())); + Object id = getSequence(dataMap.getTableName(), dataMap.getPkName()); + dataMap.toBuilder().add(dataMap.getPkName(), id); + dataMap.setPkValue(id); } i = tableMapper.saveInfoWithOracle(dataMap.getData(), dataMap.getTableName()); } else { i = tableMapper.saveInfoWithNull(dataMap.getData(), dataMap.getTableName()); - dataMap.toBuilder().add(dataMap.getPkName(), dataMap.getData().get("id")).build(); + Object id = dataMap.getData().get("id"); + dataMap.toBuilder().add(dataMap.getPkName(), id).build(); + dataMap.setPkValue(id); } SqlException.base(i, "保存失败"); dataMap.toBuilder().remove("id"); @@ -82,9 +88,19 @@ public class BaseMapperImpl implements BaseMapper { return i; } + @Override + public int save(E e) { + DataMap dataMap = DataMap.builder().obj(e).build(); + int i = save(dataMap); + dataMap.set(StringUtils.toCamelCase(dataMap.getPkName()),dataMap.getPkValue()); + OsSysTable sysTable = (OsSysTable) dataMap.getObj(); + System.out.println(sysTable.getTableId()+"++++++++++++"); + return i; + } + @Override - public int updateByPk(DataMap dataMap) { + public int updateByPk(DataMap dataMap) { JudgesNull(dataMap.getData(), "data can not be null!"); JudgesNull(dataMap.getTableName(), "tableName can not be null!"); JudgesNull(dataMap.getPkName(), "pkName can not be null!"); @@ -98,36 +114,53 @@ public class BaseMapperImpl implements BaseMapper { } @Override - public int updateByPk(String tableName, String pkName, Object pkValue, Map data) { + public int updateByPk(String tableName, String pkName, Map data) { JudgesNull(data, "data can not be null!"); JudgesNull(tableName, "tableName can not be null!"); JudgesNull(pkName, "pkName can not be null!"); - JudgesNull(pkValue, "pkValue can not be null!"); + JudgesNull(data.get(pkName), "pkValue can not be null!"); Condition condition = Condition.creatCriteria() - .andEqual(pkName, pkValue) + .andEqual(pkName, data.get(pkName)) .build(); + data.remove(pkName); int i = tableMapper.updateByWhere(data, tableName, condition.getSql()); SqlException.base(i, "更新失败"); return i; } @Override - public int updateByPk(OsSysTable osSysTable, Object pkValue, Map data) { + public int updateByPk(OsSysTable osSysTable, Map data) { JudgesNull(data, "data can not be null!"); JudgesNull(osSysTable.getTableName(), "tableName can not be null!"); JudgesNull(osSysTable.getTablePk(), "pkName can not be null!"); - JudgesNull(pkValue, "pkValue can not be null!"); + JudgesNull(data.get(osSysTable.getTablePk()), "pkValue can not be null!"); Condition condition = Condition.creatCriteria() - .andEqual(osSysTable.getTablePk(), pkValue) + .andEqual(osSysTable.getTablePk(), data.get(osSysTable.getTablePk())) .build(); int i = tableMapper.updateByWhere(data, osSysTable.getTableName(), condition.getSql()); SqlException.base(i, "更新失败"); return i; } + @Override + public int updateByPk(E e) { + return updateByPk(DataMap.builder().obj(e).build()); + } @Override - public int updateInPk(DataMap dataMap) { + public int updateInPk(E e, List ids) { + DataMap dataMap = DataMap.builder().obj(e).build(); + Condition condition = Condition.creatCriteria() + .andIn(dataMap.getPkName(), ids) + .build(); + int i = tableMapper.updateByWhere(dataMap.getData(), dataMap.getTableName(), condition.getSql()); + SqlException.base(i, "更新失败"); + return i; + } + + + @Override + public int updateInPk(DataMap dataMap) { JudgesNull(dataMap.getData(), "data can not be null!"); JudgesNull(dataMap.getTableName(), "tableName can not be null!"); JudgesNull(dataMap.getPkName(), "pkName can not be null!"); @@ -170,7 +203,7 @@ public class BaseMapperImpl implements BaseMapper { @Override - public int updateByCondition(DataMap dataMap, Condition condition) { + public int updateByCondition(DataMap dataMap, Condition condition) { JudgesNull(dataMap.getData(), "data can not be null!"); JudgesNull(dataMap.getTableName(), "tableName can not be null!"); int i = tableMapper.updateByWhere(dataMap.getData(), dataMap.getTableName(), condition.getSql()); @@ -188,7 +221,7 @@ public class BaseMapperImpl implements BaseMapper { } @Override - public int deleteByPk(DataMap dataMap) { + public int deleteByPk(DataMap dataMap) { JudgesNull(dataMap.getPkValue(), "pkValue can not be null!"); JudgesNull(dataMap.getPkName(), "pkName can not be null!"); JudgesNull(dataMap.getTableName(), "tableName can not be null!"); @@ -240,7 +273,7 @@ public class BaseMapperImpl implements BaseMapper { } @Override - public int deleteInPk(DataMap dataMap) { + public int deleteInPk(DataMap dataMap) { JudgesNull(dataMap.getTableName(), "tableName can not be null!"); JudgesNull(dataMap.getPkName(), "pkName can not be null!"); JudgesNull(dataMap.getIds(), "ids can not be null!"); @@ -266,7 +299,7 @@ public class BaseMapperImpl implements BaseMapper { } @Override - public int deleteByCondition(DataMap dataMap, Condition condition) { + public int deleteByCondition(DataMap dataMap, Condition condition) { JudgesNull(dataMap.getTableName(), "tableName can not be null!"); int i = tableMapper.deleteByWhere(dataMap.getTableName(), condition.getSql()); SqlException.base(i, "删除失败"); @@ -288,7 +321,7 @@ public class BaseMapperImpl implements BaseMapper { } @Override - public List> selectByEqual(DataMap dataMap, Map map) { + public List> selectByEqual(DataMap dataMap, Map map) { JudgesNull(dataMap.getTableName(), "tableName can not be null!"); Condition condition = equal(dataMap, map); return tableMapper.useSql(condition.getSql()); @@ -301,7 +334,8 @@ public class BaseMapperImpl implements BaseMapper { return tableMapper.useSql(condition.getSql()); } - private Condition equal(DataMap dataMap, Map map) { + + private Condition equal(DataMap dataMap, Map map) { Condition condition = Condition.creatCriteria(dataMap).build(); if (map != null && !map.isEmpty()) { for (Map.Entry entry : map.entrySet()) { @@ -315,7 +349,7 @@ public class BaseMapperImpl implements BaseMapper { } @Override - public PageInfo> selectByEqual(DataMap dataMap, Map map, WebPageInfo webPageInfo) { + public PageInfo> selectByEqual(DataMap dataMap, Map map, WebPageInfo webPageInfo) { JudgesNull(dataMap.getTableName(), "tableName can not be null!"); MyPageHelper.start(webPageInfo); Condition condition = equal(dataMap, map); @@ -331,14 +365,14 @@ public class BaseMapperImpl implements BaseMapper { } @Override - public Map selectOneByEqual(DataMap dataMap, Map map) { + public Map selectOneByEqual(DataMap dataMap, Map map) { JudgesNull(dataMap.getTableName(), "tableName can not be null!"); Condition condition = equal(dataMap, map); return tableMapper.userSqlByOne(condition.getSql()); } @Override - public Map selectByPk(DataMap dataMap) { + public Map selectByPk(DataMap dataMap) { JudgesNull(dataMap.getTableName(), "tableName can not be null!"); JudgesNull(dataMap.getPkName(), "pkName can not be null!"); JudgesNull(dataMap.getPkValue(), "pkValue can not be null!"); @@ -373,7 +407,7 @@ public class BaseMapperImpl implements BaseMapper { } @Override - public List> selectByCondition(DataMap dataMap, Condition condition) { + public List> selectByCondition(DataMap dataMap, Condition condition) { JudgesNull(dataMap.getTableName(), "tableName can not be null!"); return tableMapper.useSql(condition.toCreatCriteria(dataMap).build().getSql()); } @@ -409,7 +443,7 @@ public class BaseMapperImpl implements BaseMapper { } @Override - public PageInfo> selectByCondition(DataMap dataMap, Condition condition, WebPageInfo webPageInfo) { + public PageInfo> selectByCondition(DataMap dataMap, Condition condition, WebPageInfo webPageInfo) { JudgesNull(dataMap.getTableName(), "tableName can not be null!"); MyPageHelper.start(webPageInfo); condition = condition.toCreatCriteria(dataMap).build(); @@ -441,7 +475,7 @@ public class BaseMapperImpl implements BaseMapper { } @Override - public Map selectOneByCondition(DataMap dataMap, Condition condition) { + public Map selectOneByCondition(DataMap dataMap, Condition condition) { JudgesNull(dataMap.getTableName(), "tableName can not be null!"); return tableMapper.userSqlByOne(condition.toCreatCriteria(dataMap).build().getSql()); } @@ -556,7 +590,7 @@ public class BaseMapperImpl implements BaseMapper { id = tableMapper.getSequence(tableName); } catch (Exception e) { MyPageHelper.start(WebPageInfo.builder().pageNum(1).pageSize(1).order(WebPageInfo.DESC).sortField(pkName).build()); - DataMap dataMap = DataMap.builder().tableName(tableName).pkName(pkName).fields(pkName).build(); + DataMap dataMap = DataMap.builder().tableName(tableName).pkName(pkName).fields(pkName).build(); Condition condition = Condition.creatCriteria(dataMap).build(); Map map = selectOneByCondition(condition); tableMapper.createSequence(tableName, map.get(pkName)); diff --git a/src/main/java/com/common/base/module/data/module/DataMap.java b/src/main/java/com/common/base/module/data/module/DataMap.java index b902c7e..4c3707d 100644 --- a/src/main/java/com/common/base/module/data/module/DataMap.java +++ b/src/main/java/com/common/base/module/data/module/DataMap.java @@ -1,9 +1,13 @@ package com.common.base.module.data.module; +import com.common.base.common.ServiceException; import com.common.base.common.utils.ObjectUtil; +import com.common.base.module.shiro.FtToken; import com.common.base.module.tableconfig.entity.OsSysTable; import java.io.Serializable; +import java.lang.reflect.Field; +import java.lang.reflect.Type; import java.util.Arrays; import java.util.HashMap; import java.util.List; @@ -34,9 +38,13 @@ public class DataMap implements Serializable { return obj; } + public void set(String key, Object value) { + ObjectUtil.setField(this.obj, key, value); + } + public void setObj(T obj) { this.obj = obj; - ObjectUtil.objToSqlMap(obj,this); + ObjectUtil.objToSqlMap(obj, this); } public DataMap(OsSysTable osSysTable) { @@ -244,7 +252,7 @@ public class DataMap implements Serializable { public DataMap() { } - public DataMap(final Map data, final String ids, final List idList, final String tableName, final String pkName, final Object pkValue, final String fields, final List fieldList, final String subData, final String selectSql, final SelectCondition selectCondition,final T obj) { + public DataMap(final Map data, final String ids, final List idList, final String tableName, final String pkName, final Object pkValue, final String fields, final List fieldList, final String subData, final String selectSql, final SelectCondition selectCondition, final T obj) { this.data = data; this.ids = ids; this.idList = idList; @@ -349,9 +357,14 @@ public class DataMap implements Serializable { DataMapBuilder() { } - public DataMapBuilder obj(Object object) { - this.obj = obj; - ObjectUtil.objToSqlMap(object,this); + public DataMapBuilder obj(T object) { + this.obj = object; + ObjectUtil.objToSqlMap(object, this); + return this; + } + + public DataMapBuilder set(String key, Object value) { + ObjectUtil.setField(this.obj, key, value); return this; } @@ -436,8 +449,15 @@ public class DataMap implements Serializable { } public DataMap build() { - return new DataMap<>(this.data, this.ids, this.idList, this.tableName, this.pkName, this.pkValue, this.fields, this.fieldList, this.subData, this.selectSql, this.selectCondition,this.obj); + return new DataMap<>(this.data, this.ids, this.idList, this.tableName, this.pkName, this.pkValue, this.fields, this.fieldList, this.subData, this.selectSql, this.selectCondition, this.obj); } } + + public static void main(String[] args) { + Long l = 1L; + FtToken ftToken = new FtToken(); + DataMap dataMap = DataMap.builder().obj(ftToken).build(); + System.out.println(dataMap.getSelectSql()); + } } diff --git a/src/main/java/com/common/base/module/shiro/FtToken.java b/src/main/java/com/common/base/module/shiro/FtToken.java index 7d8ffd6..b6c2409 100644 --- a/src/main/java/com/common/base/module/shiro/FtToken.java +++ b/src/main/java/com/common/base/module/shiro/FtToken.java @@ -1,5 +1,6 @@ package com.common.base.module.shiro; +import com.common.base.module.data.annotation.DataIgnore; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; @@ -35,4 +36,7 @@ public class FtToken implements Serializable { private Date expireTime; + @DataIgnore + private String test; + } diff --git a/src/main/java/com/common/base/module/tableconfig/service/impl/TableConfigServiceImpl.java b/src/main/java/com/common/base/module/tableconfig/service/impl/TableConfigServiceImpl.java index 865884e..3bf162e 100644 --- a/src/main/java/com/common/base/module/tableconfig/service/impl/TableConfigServiceImpl.java +++ b/src/main/java/com/common/base/module/tableconfig/service/impl/TableConfigServiceImpl.java @@ -77,10 +77,11 @@ public class TableConfigServiceImpl implements TableConfigService { if (list != null && list.size() > 0) { return ResultVO.getFailed("表别名重复,请修改后提交!"); } - DataMap dataMap = DataMap.builder().obj(osSysTable).build(); - baseMapper.save(dataMap); +// DataMap dataMap = DataMap.builder().obj(osSysTable).build(); +// baseMapper.save(dataMap); + baseMapper.save(osSysTable); tableCache.save(CacheType.tableCache, osSysTable.getTableAlias(), osSysTable, OsSysTable.class); - return ResultVO.getSuccess(); + return ResultVO.getSuccess(osSysTable); }