相关代码优化

v1.4.1
hiparker 5 years ago
parent b6dfdc9326
commit f0b4a172b7

@ -44,7 +44,9 @@ import org.opsli.api.wrapper.gentest.carinfo.TestCarModel;
public interface TestCarRestApi {
/** 标题 */
String TITLE = "汽车信息";
String TITLE = "汽车信息管理";
/** 子标题 */
String SUB_TITLE = "汽车信息";
/**
*

@ -44,7 +44,9 @@ import org.opsli.api.wrapper.gentest.user.TestUserModel;
public interface TestUserRestApi {
/** 标题 */
String TITLE = "用户";
String TITLE = "测试某系统用户管理";
/** 子标题 */
String SUB_TITLE = "测试用户";
/**
*

@ -44,7 +44,9 @@ import javax.servlet.http.HttpServletResponse;
public interface SysAreaRestApi {
/** 标题 */
String TITLE = "地域";
String TITLE = "地域管理";
/** 子标题 */
String SUB_TITLE = "地域";
/**
*

@ -44,7 +44,9 @@ import javax.servlet.http.HttpServletResponse;
public interface DictApi {
/** 标题 */
String TITLE = "数据字典";
String TITLE = "数据字典管理";
/** 子标题 */
String SUB_TITLE = "数据字典";
/**
*

@ -44,7 +44,10 @@ import java.util.List;
*/
public interface DictDetailApi {
String TITLE = "数据字典明细";
/** 标题 */
String TITLE = "数据字典明细管理";
/** 子标题 */
String SUB_TITLE = "数据字典明细";
/**
*

@ -43,7 +43,9 @@ import javax.servlet.http.HttpServletRequest;
public interface LogsApi {
/** 标题 */
String TITLE = "日志";
String TITLE = "日志管理";
/** 子标题 */
String SUB_TITLE = "日志";
/**
*

@ -45,7 +45,9 @@ import java.util.List;
public interface MenuApi {
/** 标题 */
String TITLE = "菜单";
String TITLE = "菜单管理";
/** 子标题 */
String SUB_TITLE = "菜单";
/**

@ -52,7 +52,10 @@ import java.util.Map;
public interface OptionsApi {
/** 标题 */
String TITLE = "系统参数";
String TITLE = "系统参数管理";
/** 子标题 */
String SUB_TITLE = "系统参数";
/**
*

@ -44,7 +44,9 @@ import org.opsli.api.wrapper.system.org.SysOrgModel;
public interface SysOrgRestApi {
/** 标题 */
String TITLE = "组织机构";
String TITLE = "组织机构管理";
/** 子标题 */
String SUB_TITLE = "组织机构";
@GetMapping("/findTreeLazyByUser")

@ -44,7 +44,9 @@ import javax.servlet.http.HttpServletResponse;
public interface RoleApi {
/** 标题 */
String TITLE = "角色";
String TITLE = "角色管理";
/** 子标题 */
String SUB_TITLE = "角色";
/**
*

@ -45,7 +45,9 @@ import javax.servlet.http.HttpServletResponse;
public interface RoleMenuRefApi {
/** 标题 */
String TITLE = "角色权限";
String TITLE = "角色权限管理";
/** 子标题 */
String SUB_TITLE = "角色权限";
/**
*

@ -44,7 +44,9 @@ import javax.servlet.http.HttpServletResponse;
public interface TenantApi {
/** 标题 */
String TITLE = "租户";
String TITLE = "租户管理";
/** 子标题 */
String SUB_TITLE = "租户";
/**
*

@ -49,7 +49,9 @@ import java.util.List;
public interface UserApi {
/** 标题 */
String TITLE = "用户信息";
String TITLE = "用户管理";
/** 子标题 */
String SUB_TITLE = "用户";
/**
*

@ -38,7 +38,9 @@ import org.springframework.web.bind.annotation.RequestBody;
public interface UserOrgRefApi {
/** 标题 */
String TITLE = "组织机构";
String TITLE = "用户组织管理";
/** 子标题 */
String SUB_TITLE = "用户组织";
/**

@ -40,7 +40,9 @@ import org.springframework.web.bind.annotation.RequestBody;
public interface UserRoleRefApi {
/** 标题 */
String TITLE = "用户角色";
String TITLE = "用户角色管理";
/** 子标题 */
String SUB_TITLE = "用户角色";
/**

@ -44,7 +44,9 @@ import javax.servlet.http.HttpServletResponse;
public interface TestRestApi {
/** 标题 */
String TITLE = "测试";
String TITLE = "测试类管理";
/** 子标题 */
String SUB_TITLE = "测试类";
/**
*

@ -15,7 +15,6 @@
*/
package org.opsli.api.wrapper.system.org;
import java.util.Date;
import com.alibaba.excel.annotation.ExcelIgnore;
import com.alibaba.excel.annotation.ExcelProperty;
@ -27,8 +26,6 @@ import org.opsli.common.annotation.validation.ValidationArgs;
import org.opsli.common.annotation.validation.ValidationArgsLenMax;
import org.opsli.common.enums.ValiArgsType;
import org.opsli.plugins.excel.annotation.ExcelInfo;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.springframework.format.annotation.DateTimeFormat;
/**
* @BelongsProject: opsli-boot

@ -43,7 +43,9 @@ import javax.servlet.http.HttpServletResponse;
public interface CreaterLogsApi {
/** 标题 */
String TITLE = "代码生成器 - 生成记录";
String TITLE = "代码生成器-日志";
/** 子标题 */
String SUB_TITLE = "代码生成器-日志";
/**
*

@ -37,7 +37,7 @@ import javax.servlet.http.HttpServletResponse;
* @CreateTime: 2020-09-13 17:40
* @Description:
*/
@Api(tags = "代码生成器-日志")
@Api(tags = CreaterLogsApi.TITLE)
@Slf4j
@ApiRestController("/creater/logs")
public class CreaterLogsRestController extends BaseRestController<CreaterLogs, CreaterLogsModel, ICreateLogsService>

@ -46,7 +46,9 @@ import javax.servlet.http.HttpServletResponse;
public interface TableApi {
/** 标题 */
String TITLE = "代码生成器 - 表";
String TITLE = "代码生成器-表";
/** 子标题 */
String SUB_TITLE = "代码生成器-表";
/**
*

@ -53,7 +53,7 @@ import java.util.List;
* @CreateTime: 2020-09-13 17:40
* @Description: -
*/
@Api(tags = "代码生成器-表")
@Api(tags = TableApi.TITLE)
@Slf4j
@ApiRestController("/creater/table")
public class TableRestController extends BaseRestController<CreaterTable, CreaterTableModel, ITableService>

@ -56,7 +56,9 @@ import #(apiPath).wrapper.#(data.moduleName).#(data.model.tableName)Model;
public interface #(data.model.tableName)RestApi {
/** 标题 */
String TITLE = "#(data.codeTitleBrief)";
String TITLE = "#(data.codeTitle)";
/** 子标题 */
String SUB_TITLE = "#(data.codeTitleBrief)";
/**
* #(data.codeTitle)

@ -62,7 +62,7 @@ import #(apiPath).web.#(data.moduleName).#(data.model.tableName)RestApi;
* @CreateTime: #(currTime)
* @Description: #(data.codeTitle) Controller
*/
@Api(tags = "#(data.codeTitle)")
@Api(tags = #(data.model.tableName)RestApi.TITLE)
@Slf4j
#if(data.subModuleName != null && data.subModuleName != "")
@ApiRestController("/#(data.moduleName)/#(data.subModuleName)")
@ -220,7 +220,7 @@ public class #(data.model.tableName)RestController extends BaseRestController<#(
// 当前方法
Method method = ReflectUtil.getMethodByName(this.getClass(), "exportExcel");
QueryBuilder<#(data.model.tableName)> queryBuilder = new WebQueryBuilder<>(entityClazz, request.getParameterMap());
super.excelExport(#(data.model.tableName)RestApi.TITLE, queryBuilder.build(), response, method);
super.excelExport(#(data.model.tableName)RestApi.SUB_TITLE, queryBuilder.build(), response, method);
}
/**
@ -256,7 +256,7 @@ public class #(data.model.tableName)RestController extends BaseRestController<#(
public void importTemplate(HttpServletResponse response) {
// 当前方法
Method method = ReflectUtil.getMethodByName(this.getClass(), "importTemplate");
super.importTemplate(#(data.model.tableName)RestApi.TITLE, response, method);
super.importTemplate(#(data.model.tableName)RestApi.SUB_TITLE, response, method);
}
}

@ -15,6 +15,7 @@
*/
package org.opsli.modulars.system.area.web;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.convert.Convert;
import cn.hutool.core.io.IoUtil;
@ -48,6 +49,7 @@ import org.opsli.core.base.entity.HasChildren;
import org.opsli.core.persistence.querybuilder.GenQueryBuilder;
import org.opsli.core.persistence.querybuilder.QueryBuilder;
import org.opsli.core.persistence.querybuilder.WebQueryBuilder;
import org.opsli.core.utils.TreeBuildUtil;
import org.opsli.modulars.system.area.entity.SysArea;
import org.opsli.modulars.system.area.service.ISysAreaService;
import org.springframework.core.io.ClassPathResource;
@ -69,12 +71,16 @@ import java.util.Set;
* @CreateTime: 2020-11-28 18:59:59
* @Description: Controller
*/
@Api(tags = "地域管理")
@Api(tags = SysAreaRestApi.TITLE)
@Slf4j
@ApiRestController("/sys/area")
public class SysAreaRestController extends BaseRestController<SysArea, SysAreaModel, ISysAreaService>
implements SysAreaRestApi {
/** 是否包含子集 */
private static final String HAS_CHILDREN = "hasChildren";
/** 排序字段 */
private static final String SORT_FIELD = "sortNo";
/**
*
@ -101,64 +107,25 @@ public class SysAreaRestController extends BaseRestController<SysArea, SysAreaMo
@Override
public ResultVo<?> findTree(String parentId) {
QueryBuilder<SysArea> queryBuilder = new GenQueryBuilder<>();
QueryWrapper<SysArea> wrapper = queryBuilder.build();
QueryWrapper<SysArea> wrapper = new QueryWrapper<>();
wrapper.eq(HumpUtil.humpToUnderline(MyBatisConstants.FIELD_PARENT_ID), parentId);
List<SysArea> dataList = IService.findList(wrapper);
// 获得用户 对应地域
List<SysArea> dataList = IService.findList(wrapper);
// 获得BeanMapList
List<Map<String, Object>> beanMapList = this.getBeanMapList(dataList);
//配置
TreeNodeConfig treeNodeConfig = new TreeNodeConfig();
// 自定义属性名 都要默认值的
treeNodeConfig.setWeightKey("sortNo");
treeNodeConfig.setNameKey("areaName");
// 最大递归深度 最多支持4层菜单
treeNodeConfig.setWeightKey(SORT_FIELD);
// 最大递归深度 最多支持1层
treeNodeConfig.setDeep(1);
List<Tree<String>> treeNodes = TreeUtil.build(dataList, parentId, treeNodeConfig,
(treeNode, tree) -> {
//转换器
List<Tree<Object>> treeNodes = TreeBuildUtil.INSTANCE.build(beanMapList, parentId, treeNodeConfig);
String areaCode = treeNode.getAreaCode();
int sort = 0;
if(StringUtils.isNotEmpty(areaCode)){
try {
sort = Integer.parseInt(areaCode);
}catch (Exception ignored){}
}
tree.setId(treeNode.getId());
tree.setParentId(treeNode.getParentId());
tree.setWeight(sort);
tree.setName(treeNode.getAreaName());
// 扩展属性 ...
// 不是外链 则处理组件
tree.putExtra("areaCode", areaCode);
tree.putExtra("version", treeNode.getVersion());
});
Set<String> parentIds = Sets.newHashSet();
for (Tree<String> treeNode : treeNodes) {
parentIds.add(treeNode.getId());
}
// 数据排查是否存在下级
List<HasChildren> hasChildrenList = IService.hasChildren(parentIds);
if(CollUtil.isNotEmpty(hasChildrenList)){
Map<String, Boolean> tmp = Maps.newHashMap();
for (HasChildren hasChildren : hasChildrenList) {
if(hasChildren.getCount() != null && hasChildren.getCount() > 0){
tmp.put(hasChildren.getParentId(), true);
}
}
for (Tree<String> treeNode : treeNodes) {
Boolean tmpFlag = tmp.get(treeNode.getId());
if(tmpFlag != null && tmpFlag){
treeNode.putExtra("hasChildren", true);
}
}
}
// 处理是否包含子集
this.handleTreeHasChildren(treeNodes);
return ResultVo.success(treeNodes);
}
@ -178,58 +145,21 @@ public class SysAreaRestController extends BaseRestController<SysArea, SysAreaMo
List<SysArea> dataList = IService.findList(new QueryWrapper<>());
// 获得BeanMapList
List<Map<String, Object>> beanMapList = this.getBeanMapList(dataList);
//配置
TreeNodeConfig treeNodeConfig = new TreeNodeConfig();
// 自定义属性名 都要默认值的
treeNodeConfig.setWeightKey("sortNo");
treeNodeConfig.setNameKey("areaName");
// 最大递归深度
treeNodeConfig.setWeightKey(SORT_FIELD);
// 最大递归深度 最多支持1层
treeNodeConfig.setDeep(deep);
List<Tree<String>> treeNodes = TreeUtil.build(dataList, "0", treeNodeConfig,
(treeNode, tree) -> {
//转换器
List<Tree<Object>> treeNodes = TreeBuildUtil.INSTANCE.build(beanMapList, treeNodeConfig);
String areaCode = treeNode.getAreaCode();
int sort = 0;
if(StringUtils.isNotEmpty(areaCode)){
try {
sort = Integer.parseInt(areaCode);
}catch (Exception ignored){}
}
tree.setId(treeNode.getId());
tree.setParentId(treeNode.getParentId());
tree.setWeight(sort);
tree.setName(treeNode.getAreaName());
// 扩展属性 ...
// 不是外链 则处理组件
tree.putExtra("areaCode", areaCode);
tree.putExtra("version", treeNode.getVersion());
});
Set<String> parentIds = Sets.newHashSet();
for (Tree<String> treeNode : treeNodes) {
parentIds.add(treeNode.getId());
}
// 数据排查是否存在下级
List<HasChildren> hasChildrenList = IService.hasChildren(parentIds);
if(CollUtil.isNotEmpty(hasChildrenList)){
Map<String, Boolean> tmp = Maps.newHashMap();
for (HasChildren hasChildren : hasChildrenList) {
if(hasChildren.getCount() != null && hasChildren.getCount() > 0){
tmp.put(hasChildren.getParentId(), true);
}
}
for (Tree<String> treeNode : treeNodes) {
Boolean tmpFlag = tmp.get(treeNode.getId());
if(tmpFlag != null && tmpFlag){
treeNode.putExtra("hasChildren", true);
}
}
}
// 处理是否包含子集
this.handleTreeHasChildren(treeNodes);
return ResultVo.success(treeNodes);
}
@ -322,7 +252,7 @@ public class SysAreaRestController extends BaseRestController<SysArea, SysAreaMo
// 当前方法
Method method = ReflectUtil.getMethodByName(this.getClass(), "exportExcel");
QueryBuilder<SysArea> queryBuilder = new WebQueryBuilder<>(entityClazz, request.getParameterMap());
super.excelExport(SysAreaRestApi.TITLE, queryBuilder.build(), response, method);
super.excelExport(SysAreaRestApi.SUB_TITLE, queryBuilder.build(), response, method);
}
/**
@ -349,9 +279,75 @@ public class SysAreaRestController extends BaseRestController<SysArea, SysAreaMo
public void importTemplate(HttpServletResponse response) {
// 当前方法
Method method = ReflectUtil.getMethodByName(this.getClass(), "importTemplate");
super.importTemplate(SysAreaRestApi.TITLE, response, method);
super.importTemplate(SysAreaRestApi.SUB_TITLE, response, method);
}
// ==============================
/**
* BeanMap
* @param dataList
* @return List
*/
private List<Map<String, Object>> getBeanMapList(List<SysArea> dataList) {
List<Map<String, Object>> beanMapList = Lists.newArrayList();
if(CollUtil.isEmpty(dataList)){
return beanMapList;
}
// 转化为 BeanMap 处理数据
for (SysArea sysArea : dataList) {
Map<String, Object> beanToMap = BeanUtil.beanToMap(sysArea);
// 获得排序
String areaCode = sysArea.getAreaCode();
int sort = 0;
if(StringUtils.isNotEmpty(areaCode)){
try {
sort = Integer.parseInt(areaCode);
}catch (Exception ignored){}
}
beanToMap.put(SORT_FIELD, sort);
beanMapList.add(beanToMap);
}
return beanMapList;
}
/**
*
* @param treeNodes
*/
private void handleTreeHasChildren(List<Tree<Object>> treeNodes) {
if(CollUtil.isEmpty(treeNodes)){
return;
}
Set<String> parentIds = Sets.newHashSet();
for (Tree<Object> treeNode : treeNodes) {
parentIds.add(Convert.toStr(treeNode.getId()));
}
// 数据排查是否存在下级
List<HasChildren> hasChildrenList = IService.hasChildren(parentIds);
if (CollUtil.isNotEmpty(hasChildrenList)) {
Map<String, Boolean> tmp = Maps.newHashMap();
for (HasChildren hasChildren : hasChildrenList) {
if (hasChildren.getCount() != null && hasChildren.getCount() > 0) {
tmp.put(hasChildren.getParentId(), true);
}
}
for (Tree<Object> treeNode : treeNodes) {
Boolean tmpFlag = tmp.get(Convert.toStr(treeNode.getId()));
if (tmpFlag != null && tmpFlag) {
treeNode.putExtra(HAS_CHILDREN, true);
}
}
}
}
/**
*
*/

@ -56,7 +56,7 @@ import java.util.List;
* @CreateTime: 2020-09-13 17:40
* @Description:
*/
@Api(tags = "数据字典明细")
@Api(tags = DictDetailApi.TITLE)
@Slf4j
@ApiRestController("/sys/dict/detail")
public class DictDetailRestController extends BaseRestController<SysDictDetail, DictDetailModel, IDictDetailService>
@ -218,7 +218,7 @@ public class DictDetailRestController extends BaseRestController<SysDictDetail,
// 当前方法
Method method = ReflectUtil.getMethodByName(this.getClass(), "exportExcel");
QueryBuilder<SysDictDetail> queryBuilder = new WebQueryBuilder<>(entityClazz, request.getParameterMap());
super.excelExport(DictDetailApi.TITLE, queryBuilder.build(), response, method);
super.excelExport(DictDetailApi.SUB_TITLE, queryBuilder.build(), response, method);
}
/**
@ -245,7 +245,7 @@ public class DictDetailRestController extends BaseRestController<SysDictDetail,
public void importTemplate(HttpServletResponse response) {
// 当前方法
Method method = ReflectUtil.getMethodByName(this.getClass(), "importTemplate");
super.importTemplate(DictDetailApi.TITLE, response, method);
super.importTemplate(DictDetailApi.SUB_TITLE, response, method);
}
/**

@ -58,7 +58,7 @@ import java.util.List;
* @CreateTime: 2020-09-13 17:40
* @Description:
*/
@Api(tags = "数据字典")
@Api(tags = DictApi.TITLE)
@Slf4j
@ApiRestController("/sys/dict")
public class DictRestController extends BaseRestController<SysDict, DictModel, IDictService>
@ -219,7 +219,7 @@ public class DictRestController extends BaseRestController<SysDict, DictModel, I
// 当前方法
Method method = ReflectUtil.getMethodByName(this.getClass(), "exportExcel");
QueryBuilder<SysDict> queryBuilder = new WebQueryBuilder<>(entityClazz, request.getParameterMap());
super.excelExport(DictApi.TITLE, queryBuilder.build(), response, method);
super.excelExport(DictApi.SUB_TITLE, queryBuilder.build(), response, method);
}
/**
@ -246,7 +246,7 @@ public class DictRestController extends BaseRestController<SysDict, DictModel, I
public void importTemplate(HttpServletResponse response) {
// 当前方法
Method method = ReflectUtil.getMethodByName(this.getClass(), "importTemplate");
super.importTemplate(DictApi.TITLE, response, method);
super.importTemplate(DictApi.SUB_TITLE, response, method);
}
/**

@ -41,7 +41,7 @@ import javax.servlet.http.HttpServletRequest;
* @CreateTime: 2020-09-13 17:40
* @Description:
*/
@Api(tags = "系统日志")
@Api(tags = LogsApi.TITLE)
@Slf4j
@ApiRestController("/sys/logs")
public class LogsRestController extends BaseRestController<SysLogs, LogsModel, ILogsService>

@ -15,13 +15,16 @@
*/
package org.opsli.modulars.system.menu.web;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.collection.ListUtil;
import cn.hutool.core.convert.Convert;
import cn.hutool.core.lang.tree.Tree;
import cn.hutool.core.lang.tree.TreeNodeConfig;
import cn.hutool.core.lang.tree.TreeUtil;
import cn.hutool.core.util.ReflectUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.google.common.collect.Lists;
import com.google.common.collect.Maps;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
@ -44,6 +47,7 @@ import org.opsli.core.persistence.Page;
import org.opsli.core.persistence.querybuilder.GenQueryBuilder;
import org.opsli.core.persistence.querybuilder.QueryBuilder;
import org.opsli.core.persistence.querybuilder.WebQueryBuilder;
import org.opsli.core.utils.TreeBuildUtil;
import org.opsli.core.utils.UserUtil;
import org.opsli.modulars.system.SystemMsg;
import org.opsli.modulars.system.menu.entity.SysMenu;
@ -64,12 +68,21 @@ import java.util.Map;
* @CreateTime: 2020-09-13 17:40
* @Description:
*/
@Api(tags = "菜单管理")
@Api(tags = MenuApi.TITLE)
@Slf4j
@ApiRestController("/sys/menu")
public class MenuRestController extends BaseRestController<SysMenu, MenuModel, IMenuService>
implements MenuApi {
private static final String SORT_FIELD = "order";
/** 菜单排除字段 */
private static final String[] EXCLUSION_FIELDS = {
"createBy", "createTime", "updateBy", "updateTime",
"deleted", "menuCode", "menuName", "ts", "encryptData",
"hidden", "version", "sortNo", "url", "icon"
};
/**
* -
*
@ -107,39 +120,8 @@ public class MenuRestController extends BaseRestController<SysMenu, MenuModel, I
menuModelList.addAll(menuModels);
}
//配置
TreeNodeConfig treeNodeConfig = new TreeNodeConfig();
// 自定义属性名 都要默认值的
treeNodeConfig.setWeightKey("order");
// 最大递归深度 最多支持4层菜单
treeNodeConfig.setDeep(4);
//转换器
List<Tree<String>> treeNodes = TreeUtil.build(menuModelList, "0", treeNodeConfig,
(treeNode, tree) -> {
tree.setId(treeNode.getId());
tree.setParentId(treeNode.getParentId());
tree.setWeight(treeNode.getSortNo());
tree.setName(treeNode.getMenuName());
// 扩展属性 ...
// 不是外链 则处理组件
if(!MenuConstants.EXTERNAL.equals(treeNode.getType())){
tree.putExtra("component", treeNode.getComponent());
}
tree.putExtra("type", treeNode.getType());
tree.putExtra("path", treeNode.getUrl());
tree.putExtra("redirect", treeNode.getRedirect());
// 处理 meta
Map<String,String> metaMap = Maps.newHashMapWithExpectedSize(3);
metaMap.put("title", treeNode.getMenuName());
metaMap.put("icon", treeNode.getIcon());
// 外链处理
if(MenuConstants.EXTERNAL.equals(treeNode.getType())){
metaMap.put("target", "_blank");
metaMap.put("badge", "New");
}
tree.putExtra("meta", metaMap);
});
// 获得菜单树
List<Tree<Object>> treeNodes = getMenuTrees(menuModelList);
return ResultVo.success(treeNodes);
}
@ -157,60 +139,22 @@ public class MenuRestController extends BaseRestController<SysMenu, MenuModel, I
UserModel user = UserUtil.getUser();
// 获得用户 对应菜单
List<MenuModel> menuList = UserUtil.getMenuListByUserId(user.getId());
if(CollUtil.isEmpty(menuList)){
List<MenuModel> menuModelList = UserUtil.getMenuListByUserId(user.getId());
if(CollUtil.isEmpty(menuModelList)){
// 用户暂无角色菜单,请设置后登录
throw new ServiceException(SystemMsg.EXCEPTION_USER_MENU_NOT_NULL);
}
// 这里有坑 如果 为 菜单数据 且 组件(Component)地址为空 不会跳转到主页 也不报错
// 修复菜单问题导致无法跳转主页
menuList.removeIf(menuModel -> MenuConstants.MENU.equals(menuModel.getType()) &&
menuModelList.removeIf(menuModel -> MenuConstants.MENU.equals(menuModel.getType()) &&
(StringUtils.isEmpty(menuModel.getComponent()) ||
StringUtils.isEmpty(menuModel.getMenuCode()) ||
StringUtils.isEmpty(menuModel.getUrl())
));
//配置
TreeNodeConfig treeNodeConfig = new TreeNodeConfig();
// 自定义属性名 都要默认值的
treeNodeConfig.setWeightKey("order");
// 最大递归深度 最多支持4层菜单
treeNodeConfig.setDeep(4);
//转换器
List<Tree<String>> treeNodes = TreeUtil.build(menuList, "0", treeNodeConfig,
(treeNode, tree) -> {
tree.setId(treeNode.getId());
tree.setParentId(treeNode.getParentId());
tree.setWeight(treeNode.getSortNo());
tree.setName(treeNode.getMenuCode());
// 扩展属性 ...
// 不是外链 则处理组件
if(!MenuConstants.EXTERNAL.equals(treeNode.getType())){
tree.putExtra("component", treeNode.getComponent());
}else{
// 如果是外链 则判断是否存在 BASE_PATH
// 设置BASE_PATH
if(StringUtils.isNotEmpty(treeNode.getUrl())){
treeNode.setUrl(treeNode.getUrl().replace("${BASE_PATH}",
StartPrint.getInstance().getBasePath()
));
}
}
tree.putExtra("path", treeNode.getUrl());
tree.putExtra("type", treeNode.getType());
tree.putExtra("redirect", treeNode.getRedirect());
// 处理 meta
Map<String,String> metaMap = Maps.newHashMapWithExpectedSize(3);
metaMap.put("title", treeNode.getMenuName());
metaMap.put("icon", treeNode.getIcon());
// 外链处理
if(MenuConstants.EXTERNAL.equals(treeNode.getType())){
metaMap.put("target", "_blank");
}
tree.putExtra("meta", metaMap);
});
// 获得菜单树
List<Tree<Object>> treeNodes = getMenuTrees(menuModelList, EXCLUSION_FIELDS);
return ResultVo.success(treeNodes);
}
@ -230,33 +174,10 @@ public class MenuRestController extends BaseRestController<SysMenu, MenuModel, I
// 获得用户 对应菜单
List<SysMenu> menuList = IService.findList(queryBuilder.build());
List<MenuModel> menuModelList = WrapperUtil.transformInstance(menuList, MenuModel.class);
//配置
TreeNodeConfig treeNodeConfig = new TreeNodeConfig();
// 自定义属性名 都要默认值的
treeNodeConfig.setWeightKey("sortNo");
treeNodeConfig.setNameKey("menuName");
// 最大递归深度 最多支持4层菜单
treeNodeConfig.setDeep(4);
//转换器
List<Tree<String>> treeNodes = TreeUtil.build(menuList, "0", treeNodeConfig,
(treeNode, tree) -> {
tree.setId(treeNode.getId());
tree.setParentId(treeNode.getParentId());
tree.setWeight(treeNode.getSortNo());
tree.setName(treeNode.getMenuName());
// 扩展属性 ...
// 不是外链 则处理组件
tree.putExtra("menuCode", treeNode.getMenuCode());
tree.putExtra("component", treeNode.getComponent());
tree.putExtra("type", treeNode.getType());
tree.putExtra("url", treeNode.getUrl());
tree.putExtra("redirect", treeNode.getRedirect());
tree.putExtra("icon", treeNode.getIcon());
tree.putExtra("hidden", treeNode.getHidden());
tree.putExtra("version", treeNode.getVersion());
});
// 获得菜单树
List<Tree<Object>> treeNodes = getMenuTrees(menuModelList);
return ResultVo.success(treeNodes);
}
@ -401,7 +322,7 @@ public class MenuRestController extends BaseRestController<SysMenu, MenuModel, I
// 当前方法
Method method = ReflectUtil.getMethodByName(this.getClass(), "exportExcel");
QueryBuilder<SysMenu> queryBuilder = new WebQueryBuilder<>(entityClazz, request.getParameterMap());
super.excelExport(MenuApi.TITLE, queryBuilder.build(), response, method);
super.excelExport(MenuApi.SUB_TITLE, queryBuilder.build(), response, method);
}
/**
@ -429,7 +350,7 @@ public class MenuRestController extends BaseRestController<SysMenu, MenuModel, I
public void importTemplate(HttpServletResponse response) {
// 当前方法
Method method = ReflectUtil.getMethodByName(this.getClass(), "importTemplate");
super.importTemplate(MenuApi.TITLE, response, method);
super.importTemplate(MenuApi.SUB_TITLE, response, method);
}
@ -448,4 +369,101 @@ public class MenuRestController extends BaseRestController<SysMenu, MenuModel, I
}
return ResultVo.success(menu);
}
// ==============================
/**
* BeanMap
* @param dataList
* @return List
*/
private List<Map<String, Object>> getBeanMapList(List<MenuModel> dataList, String[] exclusionFields) {
List<Map<String, Object>> beanMapList = Lists.newArrayList();
if(CollUtil.isEmpty(dataList)){
return beanMapList;
}
// 转化为 BeanMap 处理数据
for (MenuModel model : dataList) {
Map<String, Object> beanToMap = BeanUtil.beanToMap(model);
// 排除字段
if(exclusionFields != null && exclusionFields.length > 0){
for (String exclusionField : exclusionFields) {
beanToMap.remove(exclusionField);
}
}
// 扩展属性 ...
// 不是外链 则处理组件
if(!MenuConstants.EXTERNAL.equals(model.getType())){
beanToMap.put("component", model.getComponent());
}else{
// 如果是外链 则判断是否存在 BASE_PATH
// 设置BASE_PATH
if(StringUtils.isNotEmpty(model.getUrl())){
model.setUrl(model.getUrl().replace("${BASE_PATH}",
StartPrint.getInstance().getBasePath()
));
}
}
beanToMap.put(SORT_FIELD, model.getSortNo());
beanToMap.put("path", model.getUrl());
beanToMap.put("name", model.getMenuName());
// 处理 meta
Map<String,String> metaMap = Maps.newHashMapWithExpectedSize(3);
metaMap.put("title", model.getMenuName());
metaMap.put("icon", model.getIcon());
// 外链处理
if(MenuConstants.EXTERNAL.equals(model.getType())){
metaMap.put("target", "_blank");
}
beanToMap.put("meta", metaMap);
beanMapList.add(beanToMap);
}
return beanMapList;
}
/**
*
* @param menuList
* @return List
*/
private List<Tree<Object>> getMenuTrees(List<MenuModel> menuList) {
//转换器
return this.getMenuTrees(menuList, null);
}
/**
*
* @param menuList
* @param exclusionFields
* @return List
*/
private List<Tree<Object>> getMenuTrees(List<MenuModel> menuList, String[] exclusionFields) {
if(CollUtil.isEmpty(menuList)){
return ListUtil.empty();
}
// 获得BeanMapList
List<Map<String, Object>> beanMapList = this.getBeanMapList(menuList, exclusionFields);
//配置
TreeNodeConfig treeNodeConfig = new TreeNodeConfig();
// 自定义属性名 都要默认值的
treeNodeConfig.setWeightKey(SORT_FIELD);
// 最大递归深度 最多支持4层菜单
treeNodeConfig.setDeep(4);
//转换器
return TreeBuildUtil.INSTANCE.build(beanMapList, treeNodeConfig);
}
}

@ -57,7 +57,7 @@ import java.util.Map;
*
* @author Parker
*/
@Api(tags = "系统参数")
@Api(tags = OptionsApi.TITLE)
@Slf4j
@ApiRestController("/sys/options")
public class SysOptionsRestController extends BaseRestController<SysOptions, OptionsModel, ISysOptionsService>
@ -213,7 +213,7 @@ public class SysOptionsRestController extends BaseRestController<SysOptions, Opt
// 当前方法
Method method = ReflectUtil.getMethodByName(this.getClass(), "exportExcel");
QueryBuilder<SysOptions> queryBuilder = new WebQueryBuilder<>(entityClazz, request.getParameterMap());
super.excelExport(OptionsApi.TITLE, queryBuilder.build(), response, method);
super.excelExport(OptionsApi.SUB_TITLE, queryBuilder.build(), response, method);
}
/**
@ -241,7 +241,7 @@ public class SysOptionsRestController extends BaseRestController<SysOptions, Opt
public void importTemplate(HttpServletResponse response) {
// 当前方法
Method method = ReflectUtil.getMethodByName(this.getClass(), "importTemplate");
super.importTemplate(OptionsApi.TITLE, response, method);
super.importTemplate(OptionsApi.SUB_TITLE, response, method);
}
// =========================

@ -44,6 +44,7 @@ import org.opsli.core.base.entity.HasChildren;
import org.opsli.core.persistence.querybuilder.GenQueryBuilder;
import org.opsli.core.persistence.querybuilder.QueryBuilder;
import org.opsli.core.persistence.querybuilder.WebQueryBuilder;
import org.opsli.core.utils.TreeBuildUtil;
import org.opsli.modulars.system.org.entity.SysOrg;
import org.opsli.modulars.system.org.service.ISysOrgService;
import org.springframework.web.multipart.MultipartHttpServletRequest;
@ -62,7 +63,7 @@ import java.util.Set;
* @CreateTime: 2020-11-28 18:59:59
* @Description: Controller
*/
@Api(tags = "组织机构管理")
@Api(tags = SysOrgRestApi.TITLE)
@Slf4j
@ApiRestController("/sys/org")
public class SysOrgRestController extends BaseRestController<SysOrg, SysOrgModel, ISysOrgService>
@ -74,6 +75,10 @@ public class SysOrgRestController extends BaseRestController<SysOrg, SysOrgModel
public static final String ORG_ALL = "all";
/** 未分组 */
public static final String ORG_NULL = "org_null";
/** 排序字段 */
private static final String SORT_FIELD = "sortNo";
/** 是否包含子集 */
private static final String HAS_CHILDREN = "hasChildren";
/**
*
@ -91,79 +96,28 @@ public class SysOrgRestController extends BaseRestController<SysOrg, SysOrgModel
List<SysOrg> dataList = IService.findList(wrapper);
List<SysOrgModel> orgModelList = WrapperUtil.transformInstance(dataList, modelClazz);
// 0 为初始值
if(PARENT_ID.equals(parentId)){
// 显示全部
SysOrgModel orgAll = new SysOrgModel();
orgAll.setId(ORG_ALL);
orgAll.setOrgCode("-2");
orgAll.setOrgName("全部");
orgAll.setOrgType("-2");
orgAll.setParentId("0");
orgAll.setSortNo(-2);
orgModelList.add(orgAll);
// 未分组
SysOrgModel orgNull = new SysOrgModel();
orgNull.setId(ORG_NULL);
orgNull.setOrgCode("-1");
orgNull.setOrgName("未分组");
orgNull.setOrgType("-1");
orgNull.setParentId("0");
orgNull.setSortNo(-1);
orgModelList.add(orgNull);
}
// 处理展示节点
this.handleShowNodes(parentId, orgModelList);
//配置
TreeNodeConfig treeNodeConfig = new TreeNodeConfig();
// 自定义属性名 都要默认值的
treeNodeConfig.setWeightKey("sortNo");
treeNodeConfig.setNameKey("orgName");
treeNodeConfig.setWeightKey(SORT_FIELD);
// 最大递归深度 最多支持4层菜单
treeNodeConfig.setDeep(3);
//转换器
List<Tree<String>> treeNodes = TreeUtil.build(orgModelList, parentId, treeNodeConfig,
(treeNode, tree) -> {
tree.setId(treeNode.getId());
tree.setParentId(treeNode.getParentId());
tree.setWeight(treeNode.getSortNo());
tree.setName(treeNode.getOrgName());
// 扩展属性 ...
// 不是外链 则处理组件
tree.putExtra("orgCode", treeNode.getOrgCode());
tree.putExtra("orgType", treeNode.getOrgType());
tree.putExtra("version", treeNode.getVersion());
tree.putExtra("tenantId", treeNode.getTenantId());
});
Set<String> parentIds = Sets.newHashSet();
for (Tree<String> treeNode : treeNodes) {
parentIds.add(treeNode.getId());
}
List<Tree<Object>> treeNodes = TreeBuildUtil.INSTANCE.build(orgModelList, parentId, treeNodeConfig);
// 数据排查是否存在下级
List<HasChildren> hasChildrenList = IService.hasChildren(parentIds);
if(CollUtil.isNotEmpty(hasChildrenList)){
Map<String, Boolean> tmp = Maps.newHashMap();
for (HasChildren hasChildren : hasChildrenList) {
if(hasChildren.getCount() != null && hasChildren.getCount() > 0){
tmp.put(hasChildren.getParentId(), true);
}
}
for (Tree<String> treeNode : treeNodes) {
Boolean tmpFlag = tmp.get(treeNode.getId());
if(tmpFlag != null && tmpFlag){
treeNode.putExtra("hasChildren", true);
}
}
}
// 处理是否包含子集
this.handleTreeHasChildren(treeNodes);
return ResultVo.success(treeNodes);
}
/**
*
* @return ResultVo
@ -184,48 +138,15 @@ public class SysOrgRestController extends BaseRestController<SysOrg, SysOrgModel
//配置
TreeNodeConfig treeNodeConfig = new TreeNodeConfig();
// 自定义属性名 都要默认值的
treeNodeConfig.setWeightKey("sortNo");
treeNodeConfig.setNameKey("orgName");
treeNodeConfig.setWeightKey(SORT_FIELD);
// 最大递归深度 最多支持4层菜单
treeNodeConfig.setDeep(3);
//转换器
List<Tree<String>> treeNodes = TreeUtil.build(orgModelList, parentId, treeNodeConfig,
(treeNode, tree) -> {
tree.setId(treeNode.getId());
tree.setParentId(treeNode.getParentId());
tree.setWeight(treeNode.getSortNo());
tree.setName(treeNode.getOrgName());
// 扩展属性 ...
// 不是外链 则处理组件
tree.putExtra("orgCode", treeNode.getOrgCode());
tree.putExtra("orgType", treeNode.getOrgType());
tree.putExtra("version", treeNode.getVersion());
tree.putExtra("tenantId", treeNode.getTenantId());
});
List<Tree<Object>> treeNodes = TreeBuildUtil.INSTANCE.build(orgModelList, parentId, treeNodeConfig);
Set<String> parentIds = Sets.newHashSet();
for (Tree<String> treeNode : treeNodes) {
parentIds.add(treeNode.getId());
}
// 数据排查是否存在下级
List<HasChildren> hasChildrenList = IService.hasChildren(parentIds);
if(CollUtil.isNotEmpty(hasChildrenList)){
Map<String, Boolean> tmp = Maps.newHashMap();
for (HasChildren hasChildren : hasChildrenList) {
if(hasChildren.getCount() != null && hasChildren.getCount() > 0){
tmp.put(hasChildren.getParentId(), true);
}
}
for (Tree<String> treeNode : treeNodes) {
Boolean tmpFlag = tmp.get(treeNode.getId());
if(tmpFlag != null && tmpFlag){
treeNode.putExtra("hasChildren", true);
}
}
}
// 处理是否包含子集
this.handleTreeHasChildren(treeNodes);
return ResultVo.success(treeNodes);
}
@ -250,25 +171,12 @@ public class SysOrgRestController extends BaseRestController<SysOrg, SysOrgModel
//配置
TreeNodeConfig treeNodeConfig = new TreeNodeConfig();
// 自定义属性名 都要默认值的
treeNodeConfig.setWeightKey("sortNo");
treeNodeConfig.setNameKey("orgName");
treeNodeConfig.setWeightKey(SORT_FIELD);
// 最大递归深度 最多支持4层菜单
treeNodeConfig.setDeep(3);
//转换器
List<Tree<String>> treeNodes = TreeUtil.build(orgModelList, parentId, treeNodeConfig,
(treeNode, tree) -> {
tree.setId(treeNode.getId());
tree.setParentId(treeNode.getParentId());
tree.setWeight(treeNode.getSortNo());
tree.setName(treeNode.getOrgName());
// 扩展属性 ...
// 不是外链 则处理组件
tree.putExtra("orgCode", treeNode.getOrgCode());
tree.putExtra("orgType", treeNode.getOrgType());
tree.putExtra("version", treeNode.getVersion());
tree.putExtra("tenantId", treeNode.getTenantId());
});
List<Tree<Object>> treeNodes = TreeBuildUtil.INSTANCE.build(orgModelList, parentId, treeNodeConfig);
return ResultVo.success(treeNodes);
}
@ -310,25 +218,12 @@ public class SysOrgRestController extends BaseRestController<SysOrg, SysOrgModel
//配置
TreeNodeConfig treeNodeConfig = new TreeNodeConfig();
// 自定义属性名 都要默认值的
treeNodeConfig.setWeightKey("sortNo");
treeNodeConfig.setNameKey("orgName");
treeNodeConfig.setWeightKey(SORT_FIELD);
// 最大递归深度 最多支持4层菜单
treeNodeConfig.setDeep(3);
//转换器
List<Tree<String>> treeNodes = TreeUtil.build(dataList, "0", treeNodeConfig,
(treeNode, tree) -> {
tree.setId(treeNode.getId());
tree.setParentId(treeNode.getParentId());
tree.setWeight(treeNode.getSortNo());
tree.setName(treeNode.getOrgName());
// 扩展属性 ...
// 不是外链 则处理组件
tree.putExtra("orgCode", treeNode.getOrgCode());
tree.putExtra("orgType", treeNode.getOrgType());
tree.putExtra("version", treeNode.getVersion());
tree.putExtra("tenantId", treeNode.getTenantId());
});
List<Tree<Object>> treeNodes = TreeBuildUtil.INSTANCE.build(dataList, treeNodeConfig);
return ResultVo.success(treeNodes);
}
@ -421,7 +316,7 @@ public class SysOrgRestController extends BaseRestController<SysOrg, SysOrgModel
// 当前方法
Method method = ReflectUtil.getMethodByName(this.getClass(), "exportExcel");
QueryBuilder<SysOrg> queryBuilder = new WebQueryBuilder<>(entityClazz, request.getParameterMap());
super.excelExport(SysOrgRestApi.TITLE, queryBuilder.build(), response, method);
super.excelExport(SysOrgRestApi.SUB_TITLE, queryBuilder.build(), response, method);
}
/**
@ -448,7 +343,73 @@ public class SysOrgRestController extends BaseRestController<SysOrg, SysOrgModel
public void importTemplate(HttpServletResponse response) {
// 当前方法
Method method = ReflectUtil.getMethodByName(this.getClass(), "importTemplate");
super.importTemplate(SysOrgRestApi.TITLE, response, method);
super.importTemplate(SysOrgRestApi.SUB_TITLE, response, method);
}
// ==============================
/**
*
* @param parentId ID
* @param orgModelList
*/
private void handleShowNodes(String parentId, List<SysOrgModel> orgModelList) {
// 0 为初始值
if(PARENT_ID.equals(parentId)){
// 显示全部
SysOrgModel orgAll = new SysOrgModel();
orgAll.setId(ORG_ALL);
orgAll.setOrgCode("-2");
orgAll.setOrgName("全部");
orgAll.setOrgType("-2");
orgAll.setParentId("0");
orgAll.setSortNo(-2);
orgModelList.add(orgAll);
// 未分组
SysOrgModel orgNull = new SysOrgModel();
orgNull.setId(ORG_NULL);
orgNull.setOrgCode("-1");
orgNull.setOrgName("未分组");
orgNull.setOrgType("-1");
orgNull.setParentId("0");
orgNull.setSortNo(-1);
orgModelList.add(orgNull);
}
}
/**
*
* @param treeNodes
*/
private void handleTreeHasChildren(List<Tree<Object>> treeNodes) {
if(CollUtil.isEmpty(treeNodes)){
return;
}
Set<String> parentIds = Sets.newHashSet();
for (Tree<Object> treeNode : treeNodes) {
parentIds.add(Convert.toStr(treeNode.getId()));
}
// 数据排查是否存在下级
List<HasChildren> hasChildrenList = IService.hasChildren(parentIds);
if (CollUtil.isNotEmpty(hasChildrenList)) {
Map<String, Boolean> tmp = Maps.newHashMap();
for (HasChildren hasChildren : hasChildrenList) {
if (hasChildren.getCount() != null && hasChildren.getCount() > 0) {
tmp.put(hasChildren.getParentId(), true);
}
}
for (Tree<Object> treeNode : treeNodes) {
Boolean tmpFlag = tmp.get(Convert.toStr(treeNode.getId()));
if (tmpFlag != null && tmpFlag) {
treeNode.putExtra(HAS_CHILDREN, true);
}
}
}
}
}

@ -49,7 +49,7 @@ import java.util.stream.Collectors;
* @CreateTime: 2020-09-13 17:40
* @Description:
*/
@Api(tags = "角色权限")
@Api(tags = RoleMenuRefApi.TITLE)
@Slf4j
@ApiRestController("/sys/role/perms")
public class RoleMenuRefRestController implements RoleMenuRefApi {

@ -226,7 +226,7 @@ public class RoleRestController extends BaseRestController<SysRole, RoleModel, I
// 当前方法
Method method = ReflectUtil.getMethodByName(this.getClass(), "exportExcel");
QueryBuilder<SysRole> queryBuilder = new WebQueryBuilder<>(entityClazz, request.getParameterMap());
super.excelExport(RoleApi.TITLE, queryBuilder.build(), response, method);
super.excelExport(RoleApi.SUB_TITLE, queryBuilder.build(), response, method);
}
/**
@ -254,7 +254,7 @@ public class RoleRestController extends BaseRestController<SysRole, RoleModel, I
public void importTemplate(HttpServletResponse response) {
// 当前方法
Method method = ReflectUtil.getMethodByName(this.getClass(), "importTemplate");
super.importTemplate(RoleApi.TITLE, response, method);
super.importTemplate(RoleApi.SUB_TITLE, response, method);
}
}

@ -51,7 +51,7 @@ import java.lang.reflect.Method;
* @CreateTime: 2020-09-13 17:40
* @Description:
*/
@Api(tags = "租户管理")
@Api(tags = TenantApi.TITLE)
@Slf4j
@ApiRestController("/sys/tenant")
public class TenantRestController extends BaseRestController<SysTenant, TenantModel, ITenantService>
@ -179,7 +179,7 @@ public class TenantRestController extends BaseRestController<SysTenant, TenantMo
// 当前方法
Method method = ReflectUtil.getMethodByName(this.getClass(), "exportExcel");
QueryBuilder<SysTenant> queryBuilder = new WebQueryBuilder<>(entityClazz, request.getParameterMap());
super.excelExport(RoleApi.TITLE, queryBuilder.build(), response, method);
super.excelExport(TenantApi.SUB_TITLE, queryBuilder.build(), response, method);
}
/**
@ -206,7 +206,7 @@ public class TenantRestController extends BaseRestController<SysTenant, TenantMo
public void importTemplate(HttpServletResponse response) {
// 当前方法
Method method = ReflectUtil.getMethodByName(this.getClass(), "importTemplate");
super.importTemplate(RoleApi.TITLE, response, method);
super.importTemplate(TenantApi.SUB_TITLE, response, method);
}
// =========================

@ -40,7 +40,7 @@ import org.springframework.beans.factory.annotation.Autowired;
* @CreateTime: 2020-09-13 17:40
* @Description:
*/
@Api(tags = "用户组织")
@Api(tags = UserOrgRefApi.TITLE)
@Slf4j
@ApiRestController("/sys/user/org")
public class UserOrgRefRestController implements UserOrgRefApi {

@ -83,7 +83,7 @@ import java.util.Map;
* @CreateTime: 2020-09-13 17:40
* @Description:
*/
@Api(tags = "用户管理")
@Api(tags = UserApi.TITLE)
@Slf4j
@ApiRestController("/sys/user")
public class UserRestController extends BaseRestController<SysUser, UserModel, IUserService>
@ -458,7 +458,7 @@ public class UserRestController extends BaseRestController<SysUser, UserModel, I
// 当前方法
Method method = ReflectUtil.getMethodByName(this.getClass(), "exportExcel");
QueryBuilder<SysUser> queryBuilder = new WebQueryBuilder<>(entityClazz, request.getParameterMap());
super.excelExport(UserApi.TITLE, queryBuilder.build(), response, method);
super.excelExport(UserApi.SUB_TITLE, queryBuilder.build(), response, method);
}
/**
@ -484,7 +484,7 @@ public class UserRestController extends BaseRestController<SysUser, UserModel, I
public void importTemplate(HttpServletResponse response) {
// 当前方法
Method method = ReflectUtil.getMethodByName(this.getClass(), "importTemplate");
super.importTemplate(UserApi.TITLE, response, method);
super.importTemplate(UserApi.SUB_TITLE, response, method);
}
/**

@ -40,7 +40,7 @@ import org.springframework.beans.factory.annotation.Autowired;
* @CreateTime: 2020-09-13 17:40
* @Description:
*/
@Api(tags = "用户角色")
@Api(tags = UserRoleRefApi.TITLE)
@Slf4j
@ApiRestController("/sys/user/roles")
public class UserRoleRefRestController implements UserRoleRefApi {

@ -46,7 +46,7 @@ import org.opsli.api.web.gentest.carinfo.TestCarRestApi;
* @CreateTime: 2020-12-20 20:12:57
* @Description: Controller
*/
@Api(tags = "汽车信息")
@Api(tags = TestCarRestApi.TITLE)
@Slf4j
@ApiRestController("/gentest/carinfo")
public class TestCarRestController extends BaseRestController<TestCar, TestCarModel, ITestCarService>
@ -173,7 +173,7 @@ public class TestCarRestController extends BaseRestController<TestCar, TestCarMo
// 当前方法
Method method = ReflectUtil.getMethodByName(this.getClass(), "exportExcel");
QueryBuilder<TestCar> queryBuilder = new WebQueryBuilder<>(entityClazz, request.getParameterMap());
super.excelExport(TestCarRestApi.TITLE, queryBuilder.build(), response, method);
super.excelExport(TestCarRestApi.SUB_TITLE, queryBuilder.build(), response, method);
}
/**
@ -202,7 +202,7 @@ public class TestCarRestController extends BaseRestController<TestCar, TestCarMo
public void importTemplate(HttpServletResponse response) {
// 当前方法
Method method = ReflectUtil.getMethodByName(this.getClass(), "importTemplate");
super.importTemplate(TestCarRestApi.TITLE, response, method);
super.importTemplate(TestCarRestApi.SUB_TITLE, response, method);
}
}

@ -47,7 +47,7 @@ import java.lang.reflect.Method;
* @CreateTime: 2020-11-22 12:12:05
* @Description: Controller
*/
@Api(tags = "某系统用户")
@Api(tags = TestUserRestApi.TITLE)
@Slf4j
@ApiRestController("/gentest/user")
public class TestUserRestController extends BaseRestController<TestUser, TestUserModel, ITestUserService>
@ -166,7 +166,7 @@ public class TestUserRestController extends BaseRestController<TestUser, TestUse
// 当前方法
Method method = ReflectUtil.getMethodByName(this.getClass(), "exportExcel");
QueryBuilder<TestUser> queryBuilder = new WebQueryBuilder<>(entityClazz, request.getParameterMap());
super.excelExport(TestUserRestApi.TITLE, queryBuilder.build(), response, method);
super.excelExport(TestUserRestApi.SUB_TITLE, queryBuilder.build(), response, method);
}
/**
@ -195,7 +195,7 @@ public class TestUserRestController extends BaseRestController<TestUser, TestUse
public void importTemplate(HttpServletResponse response) {
// 当前方法
Method method = ReflectUtil.getMethodByName(this.getClass(), "importTemplate");
super.importTemplate(TestUserRestApi.TITLE, response, method);
super.importTemplate(TestUserRestApi.SUB_TITLE, response, method);
}
}

@ -150,7 +150,7 @@ public class TestRestController extends BaseRestController<TestEntity, TestModel
// 当前方法
Method method = ReflectUtil.getMethodByName(this.getClass(), "exportExcel");
QueryBuilder<TestEntity> queryBuilder = new WebQueryBuilder<>(entityClazz, request.getParameterMap());
super.excelExport(TestRestApi.TITLE, queryBuilder.build(), response, method);
super.excelExport(TestRestApi.SUB_TITLE, queryBuilder.build(), response, method);
}
/**
@ -177,7 +177,7 @@ public class TestRestController extends BaseRestController<TestEntity, TestModel
public void importTemplate(HttpServletResponse response) {
// 当前方法
Method method = ReflectUtil.getMethodByName(this.getClass(), "importTemplate");
super.importTemplate(TestRestApi.TITLE, response, method);
super.importTemplate(TestRestApi.SUB_TITLE, response, method);
}

Loading…
Cancel
Save