导出Excel

v1.4.1
Parker 5 years ago
parent 113e8cf95c
commit d2f081758c

@ -110,10 +110,12 @@ public abstract class ApiWrapper implements Serializable {
/** 是否是内部Api调用 */
@JsonIgnore
@TableField(exist = false)
@ExcelIgnore
private Boolean izApi = false;
/** 是否 手动操控 如果为true 则可以手动指定创建人和修改人 如果为空则默认) */
@JsonIgnore
@TableField(exist = false)
@ExcelIgnore
private Boolean izManual = false;
}

@ -388,7 +388,7 @@ public final class ValidationUtil {
dictModel.setTypeCode("asdsa");
dictModel.setTypeName("阿哈哈哈哈");
dictModel.setRemark("测试11232131231231223123");
dictModel.setIzLock('1');
dictModel.setIzLock("1");
ValidationUtil.verify(dictModel);
}

@ -107,22 +107,22 @@ public interface TestUserRestApi {
* @return ResultVo
*/
@GetMapping("/exportExcel")
ResultVo<?> exportExcel(HttpServletRequest request, HttpServletResponse response);
void exportExcel(HttpServletRequest request, HttpServletResponse response);
/**
* Excel
* @param request request
* @return ResultVo
*/
@GetMapping("/exportImport")
ResultVo<?> excelImport(MultipartHttpServletRequest request);
@GetMapping("/importExcel")
ResultVo<?> importExcel(MultipartHttpServletRequest request);
/**
* Excel
* @param response response
* @return ResultVo
*/
@GetMapping("/exportImport/template")
ResultVo<?> importTemplate(HttpServletResponse response);
@GetMapping("/importExcel/template")
void importTemplate(HttpServletResponse response);
}

@ -100,22 +100,22 @@ public interface SysAreaRestApi {
* @return ResultVo
*/
@GetMapping("/exportExcel")
ResultVo<?> exportExcel(HttpServletRequest request, HttpServletResponse response);
void exportExcel(HttpServletRequest request, HttpServletResponse response);
/**
* Excel
* @param request request
* @return ResultVo
*/
@GetMapping("/exportImport")
ResultVo<?> excelImport(MultipartHttpServletRequest request);
@GetMapping("/importExcel")
ResultVo<?> importExcel(MultipartHttpServletRequest request);
/**
* Excel
* @param response response
* @return ResultVo
*/
@GetMapping("/exportImport/template")
ResultVo<?> importTemplate(HttpServletResponse response);
@GetMapping("/importExcel/template")
void importTemplate(HttpServletResponse response);
}

@ -107,23 +107,23 @@ public interface DictApi {
* @return ResultVo
*/
@GetMapping("/exportExcel")
ResultVo<?> exportExcel(HttpServletRequest request, HttpServletResponse response);
void exportExcel(HttpServletRequest request, HttpServletResponse response);
/**
* Excel
* @param request request
* @return ResultVo
*/
@GetMapping("/exportImport")
ResultVo<?> excelImport(MultipartHttpServletRequest request);
@GetMapping("/importExcel")
ResultVo<?> importExcel(MultipartHttpServletRequest request);
/**
* Excel
* @param response response
* @return ResultVo
*/
@GetMapping("/exportImport/template")
ResultVo<?> importTemplate(HttpServletResponse response);
@GetMapping("/importExcel/template")
void importTemplate(HttpServletResponse response);
/**

@ -107,23 +107,23 @@ public interface DictDetailApi {
* @return ResultVo
*/
@GetMapping("/exportExcel")
ResultVo<?> exportExcel(HttpServletRequest request, HttpServletResponse response);
void exportExcel(HttpServletRequest request, HttpServletResponse response);
/**
* Excel
* @param request request
* @return ResultVo
*/
@GetMapping("/exportImport")
ResultVo<?> excelImport(MultipartHttpServletRequest request);
@GetMapping("/importExcel")
ResultVo<?> importExcel(MultipartHttpServletRequest request);
/**
* Excel
* @param response response
* @return ResultVo
*/
@GetMapping("/exportImport/template")
ResultVo<?> importTemplate(HttpServletResponse response);
@GetMapping("/importExcel/template")
void importTemplate(HttpServletResponse response);
// ================================

@ -139,23 +139,23 @@ public interface MenuApi {
* @return ResultVo
*/
@GetMapping("/exportExcel")
ResultVo<?> exportExcel(HttpServletRequest request, HttpServletResponse response);
void exportExcel(HttpServletRequest request, HttpServletResponse response);
/**
* Excel
* @param request request
* @return ResultVo
*/
@GetMapping("/exportImport")
ResultVo<?> excelImport(MultipartHttpServletRequest request);
@GetMapping("/importExcel")
ResultVo<?> importExcel(MultipartHttpServletRequest request);
/**
* Excel
* @param response response
* @return ResultVo
*/
@GetMapping("/exportImport/template")
ResultVo<?> importTemplate(HttpServletResponse response);
@GetMapping("/importExcel/template")
void importTemplate(HttpServletResponse response);

@ -113,22 +113,22 @@ public interface SysOrgRestApi {
* @return ResultVo
*/
@GetMapping("/exportExcel")
ResultVo<?> exportExcel(HttpServletRequest request, HttpServletResponse response);
void exportExcel(HttpServletRequest request, HttpServletResponse response);
/**
* Excel
* @param request request
* @return ResultVo
*/
@GetMapping("/exportImport")
ResultVo<?> excelImport(MultipartHttpServletRequest request);
@GetMapping("/importExcel")
ResultVo<?> importExcel(MultipartHttpServletRequest request);
/**
* Excel
* @param response response
* @return ResultVo
*/
@GetMapping("/exportImport/template")
ResultVo<?> importTemplate(HttpServletResponse response);
@GetMapping("/importExcel/template")
void importTemplate(HttpServletResponse response);
}

@ -107,22 +107,22 @@ public interface RoleApi {
* @return ResultVo
*/
@GetMapping("/exportExcel")
ResultVo<?> exportExcel(HttpServletRequest request, HttpServletResponse response);
void exportExcel(HttpServletRequest request, HttpServletResponse response);
/**
* Excel
* @param request request
* @return ResultVo
*/
@GetMapping("/exportImport")
ResultVo<?> excelImport(MultipartHttpServletRequest request);
@GetMapping("/importExcel")
ResultVo<?> importExcel(MultipartHttpServletRequest request);
/**
* Excel
* @param response response
* @return ResultVo
*/
@GetMapping("/exportImport/template")
ResultVo<?> importTemplate(HttpServletResponse response);
@GetMapping("/importExcel/template")
void importTemplate(HttpServletResponse response);
}

@ -107,22 +107,22 @@ public interface TenantApi {
* @return ResultVo
*/
@GetMapping("/exportExcel")
ResultVo<?> exportExcel(HttpServletRequest request, HttpServletResponse response);
void exportExcel(HttpServletRequest request, HttpServletResponse response);
/**
* Excel
* @param request request
* @return ResultVo
*/
@GetMapping("/exportImport")
ResultVo<?> excelImport(MultipartHttpServletRequest request);
@GetMapping("/importExcel")
ResultVo<?> importExcel(MultipartHttpServletRequest request);
/**
* Excel
* @param response response
* @return ResultVo
*/
@GetMapping("/exportImport/template")
ResultVo<?> importTemplate(HttpServletResponse response);
@GetMapping("/importExcel/template")
void importTemplate(HttpServletResponse response);
}

@ -174,15 +174,15 @@ public interface UserApi {
* @return ResultVo
*/
@GetMapping("/exportExcel")
ResultVo<?> exportExcel(HttpServletRequest request, HttpServletResponse response);
void exportExcel(HttpServletRequest request, HttpServletResponse response);
/**
* Excel
* @param request request
* @return ResultVo
*/
@GetMapping("/exportImport")
ResultVo<?> excelImport(MultipartHttpServletRequest request);
@GetMapping("/importExcel")
ResultVo<?> importExcel(MultipartHttpServletRequest request);
/**
@ -190,8 +190,8 @@ public interface UserApi {
* @param response response
* @return ResultVo
*/
@GetMapping("/exportImport/template")
ResultVo<?> importTemplate(HttpServletResponse response);
@GetMapping("/importExcel/template")
void importTemplate(HttpServletResponse response);
/**

@ -128,20 +128,20 @@ public interface TestApi {
* @return
*/
@GetMapping("/exportExcel")
ResultVo<?> exportExcel(HttpServletRequest request, HttpServletResponse response);
void exportExcel(HttpServletRequest request, HttpServletResponse response);
/**
* Excel
* @return
*/
@GetMapping("/exportImport")
ResultVo<?> excelImport(MultipartHttpServletRequest request);
@GetMapping("/importExcel")
ResultVo<?> importExcel(MultipartHttpServletRequest request);
/**
* Excel
* @return
*/
@GetMapping("/exportImport/template")
ResultVo<?> importTemplate(HttpServletResponse response);
@GetMapping("/importExcel/template")
void importTemplate(HttpServletResponse response);
}

@ -107,22 +107,22 @@ public interface TestRestApi {
* @return ResultVo
*/
@GetMapping("/exportExcel")
ResultVo<?> exportExcel(HttpServletRequest request, HttpServletResponse response);
void exportExcel(HttpServletRequest request, HttpServletResponse response);
/**
* Excel
* @param request request
* @return ResultVo
*/
@GetMapping("/exportImport")
ResultVo<?> excelImport(MultipartHttpServletRequest request);
@GetMapping("/importExcel")
ResultVo<?> importExcel(MultipartHttpServletRequest request);
/**
* Excel
* @param response response
* @return ResultVo
*/
@GetMapping("/exportImport/template")
ResultVo<?> importTemplate(HttpServletResponse response);
@GetMapping("/importExcel/template")
void importTemplate(HttpServletResponse response);
}

@ -84,7 +84,7 @@ public class TestUserModel extends ApiWrapper {
// 验证器
@ValidationArgs({ValiArgsType.IS_NOT_NULL, })
@ValidationArgsLenMax(1)
private Character izUsable;
private String izUsable;

@ -77,7 +77,7 @@ public class DictDetailModel extends ApiWrapper {
// 验证器
@ValidationArgs({ValiArgsType.IS_NOT_NULL})
@ValidationArgsLenMax(1)
private Character izLock;
private String izLock;
/** 排序 */
@ApiModelProperty(value = "排序")

@ -63,7 +63,7 @@ public class DictModel extends ApiWrapper {
// 验证器
@ValidationArgs(ValiArgsType.IS_NOT_NULL)
@ValidationArgsLenMax(1)
private Character izLock;
private String izLock;
/** 备注 */
@ApiModelProperty(value = "备注")

@ -64,7 +64,7 @@ public class RoleModel extends ApiWrapper {
// 验证器
@ValidationArgs({ValiArgsType.IS_NOT_NULL})
@ValidationArgsLenMax(1)
private Character izLock;
private String izLock;
/** 备注 */
@ApiModelProperty(value = "备注")

@ -53,7 +53,7 @@ public class TenantModel extends ApiWrapper {
// 验证器
@ValidationArgs({ValiArgsType.IS_NOT_NULL})
@ValidationArgsLenMax(1)
private Character izUsable;
private String izUsable;
/** 备注 */
@ApiModelProperty(value = "备注")

@ -66,7 +66,7 @@ public class UserAndOrgModel extends ApiWrapper {
// 验证器
@ValidationArgs({ValiArgsType.IS_NOT_NULL})
@ValidationArgsLenMax(1)
private Character locked;
private String locked;
/** 真实姓名 */
@ApiModelProperty(value = "真实姓名")

@ -66,7 +66,7 @@ public class UserModel extends ApiWrapper {
// 验证器
@ValidationArgs({ValiArgsType.IS_NOT_NULL})
@ValidationArgsLenMax(1)
private Character locked;
private String locked;
/** 真实姓名 */
@ApiModelProperty(value = "真实姓名")

@ -0,0 +1,19 @@
package org.opsli.common.annotation;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
/**
* @author Parker
*
*
*/
@Target({ElementType.TYPE, ElementType.METHOD})
@Retention(RetentionPolicy.RUNTIME)
public @interface RequiresPermissionsCus {
String[] value();
}

@ -29,9 +29,9 @@ public final class MyBatisConstants {
/** 逻辑删除值 */
public static final char LOGIC_DELETE_VALUE;
public static final String LOGIC_DELETE_VALUE;
/** 逻辑不删除值 */
public static final char LOGIC_NOT_DELETE_VALUE;
public static final String LOGIC_NOT_DELETE_VALUE;
/** ID */
@ -56,8 +56,8 @@ public final class MyBatisConstants {
static {
Props props = new Props("application.yaml");
LOGIC_DELETE_VALUE = props.getChar("mybatis-plus.global-config.db-config.logic-delete-value",'1');
LOGIC_NOT_DELETE_VALUE = props.getChar("mybatis-plus.global-config.db-config.logic-not-delete-value",'0');
LOGIC_DELETE_VALUE = props.getStr("mybatis-plus.global-config.db-config.logic-delete-value","1");
LOGIC_NOT_DELETE_VALUE = props.getStr("mybatis-plus.global-config.db-config.logic-not-delete-value","0");
}
private MyBatisConstants(){}

@ -29,14 +29,18 @@ import org.apache.commons.lang3.StringUtils;
import org.opsli.api.base.result.ResultVo;
import org.opsli.api.base.warpper.ApiWrapper;
import org.opsli.api.wrapper.system.user.UserModel;
import org.opsli.common.annotation.RequiresPermissionsCus;
import org.opsli.common.annotation.hotdata.EnableHotData;
import org.opsli.common.exception.ServiceException;
import org.opsli.common.exception.TokenException;
import org.opsli.common.msg.CommonMsg;
import org.opsli.common.utils.WrapperUtil;
import org.opsli.core.base.entity.BaseEntity;
import org.opsli.core.base.service.interfaces.CrudServiceInterface;
import org.opsli.core.cache.local.CacheUtil;
import org.opsli.core.msg.CoreMsg;
import org.opsli.core.msg.TokenMsg;
import org.opsli.core.security.shiro.realm.OAuth2Realm;
import org.opsli.core.utils.ExcelUtil;
import org.opsli.core.utils.UserUtil;
import org.opsli.plugins.excel.exception.ExcelPluginException;
@ -52,6 +56,7 @@ import org.springframework.web.multipart.MultipartHttpServletRequest;
import javax.annotation.PostConstruct;
import javax.servlet.http.HttpServletResponse;
import java.lang.reflect.Method;
import java.lang.reflect.Type;
import java.util.Iterator;
import java.util.List;
@ -184,7 +189,7 @@ public abstract class BaseRestController <T extends BaseEntity, E extends ApiWra
* @param request
* @return
*/
protected ResultVo<?> excelImport(MultipartHttpServletRequest request){
protected ResultVo<?> importExcel(MultipartHttpServletRequest request){
// 计时器
TimeInterval timer = DateUtil.timer();
Iterator<String> itr = request.getFileNames();
@ -228,8 +233,8 @@ public abstract class BaseRestController <T extends BaseEntity, E extends ApiWra
* @param fileName
* @param response
*/
protected ResultVo<?> importTemplate(String fileName, HttpServletResponse response){
return this.excelExport(fileName + " 模版 ",null, response);
protected void importTemplate(String fileName, HttpServletResponse response, Method method){
this.excelExport(fileName + " 模版 ",null, response, method);
}
/**
@ -238,7 +243,30 @@ public abstract class BaseRestController <T extends BaseEntity, E extends ApiWra
* @param queryWrapper
* @param response
*/
protected ResultVo<?> excelExport(String fileName, QueryWrapper<T> queryWrapper, HttpServletResponse response){
protected void excelExport(String fileName, QueryWrapper<T> queryWrapper, HttpServletResponse response,
Method method){
// 权限认证
try {
if(method == null){
// 无权访问该方法
throw new TokenException(TokenMsg.EXCEPTION_NOT_AUTH);
}
// Token 认证
OAuth2Realm.authToken();
RequiresPermissionsCus permissionsCus = method.getAnnotation(RequiresPermissionsCus.class);
if(permissionsCus != null){
// 方法权限认证
OAuth2Realm.authPerms(permissionsCus.value());
}
}catch (TokenException e){
// 推送错误信息
OAuth2Realm.exceptionResponse(e.getMessage(), response);
return;
}
// 计时器
TimeInterval timer = DateUtil.timer();
String msgInfo = "";
@ -269,7 +297,12 @@ public abstract class BaseRestController <T extends BaseEntity, E extends ApiWra
}
// 记录导出日志
log.info(msgInfo);
return resultVo;
// 导出异常
if(!resultVo.isSuccess()){
// 无权访问该方法
OAuth2Realm.exceptionResponse(resultVo.getMsg(), response);
}
}
/**

@ -55,10 +55,13 @@ public class ShiroConfig {
/** 获得排除URL */
private static final List<String> URL_EXCLUSION;
/** API前缀 */
private static final String API_URL_PREFIX;
static{
Props props = new Props("application.yaml");
URL_EXCLUSION = props.getList("opsli.token-auth.url-exclusion");
API_URL_PREFIX = props.getStr("server.servlet.api.path.global-prefix","");
}
/**
@ -85,18 +88,23 @@ public class ShiroConfig {
}
}
// 登录接口拦截
filterMap.put("/sys/login", "anon");
filterMap.put("/sys/slipCount", "anon");
filterMap.put("/captcha.jpg", "anon");
// 导出Excel\模版 不做自动拦截 手动拦截
filterMap.put(API_URL_PREFIX + "/**/exportExcel", "anon");
filterMap.put(API_URL_PREFIX + "/**/importExcel/template", "anon");
filterMap.put("/webjars/**", "anon");
filterMap.put("/druid/**", "anon");
filterMap.put("/app/**", "anon");
filterMap.put("/sys/login", "anon");
filterMap.put("/sys/slipCount", "anon");
filterMap.put("/swagger/**", "anon");
filterMap.put("/v2/api-docs", "anon");
filterMap.put("/doc.html", "anon");
filterMap.put("/swagger-ui.html", "anon");
filterMap.put("/swagger-resources/**", "anon");
filterMap.put("/captcha.jpg", "anon");
filterMap.put("/ueditor/**", "anon");
filterMap.put("/static/file/**", "anon");
filterMap.put("/**", "oauth2");

@ -1,11 +1,15 @@
package org.opsli.core.security.shiro.realm;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.io.IoUtil;
import lombok.extern.slf4j.Slf4j;
import org.apache.shiro.authc.*;
import org.apache.shiro.authz.AuthorizationInfo;
import org.apache.shiro.authz.SimpleAuthorizationInfo;
import org.apache.shiro.realm.AuthorizingRealm;
import org.apache.shiro.subject.PrincipalCollection;
import org.opsli.api.wrapper.system.user.UserModel;
import org.opsli.common.api.TokenThreadLocal;
import org.opsli.common.exception.TokenException;
import org.opsli.core.msg.TokenMsg;
import org.opsli.core.security.shiro.token.OAuth2Token;
@ -13,6 +17,8 @@ import org.opsli.core.utils.UserTokenUtil;
import org.opsli.core.utils.UserUtil;
import org.springframework.stereotype.Component;
import javax.servlet.http.HttpServletResponse;
import java.io.PrintWriter;
import java.util.List;
/**
@ -23,10 +29,11 @@ import java.util.List;
* @date 2017-05-20 14:00
*/
@Component
@Slf4j
public class OAuth2Realm extends AuthorizingRealm {
/** 账号锁定状态 */
private static final char LOCK_VAL = '1';
public static final String LOCK_VAL = "1";
@Override
public boolean supports(AuthenticationToken token) {
@ -85,4 +92,85 @@ public class OAuth2Realm extends AuthorizingRealm {
return new SimpleAuthenticationInfo(user, accessToken, getName());
}
/**
* Token
*/
public static void authToken()
throws TokenException {
String accessToken = TokenThreadLocal.get();
// 1. 校验 token 是否有效
boolean verify = UserTokenUtil.verify(accessToken);
if(!verify){
// token失效请重新登录
throw new TokenException(
TokenMsg.EXCEPTION_TOKEN_LOSE_EFFICACY);
}
// 2. 查询 用户信息
String userId = UserTokenUtil.getUserIdByToken(accessToken);
UserModel user = UserUtil.getUser(userId);
// 3. 校验账户是否锁定
if(user == null || user.getLocked().equals(OAuth2Realm.LOCK_VAL)){
// 账号已被锁定,请联系管理员
// token失效请重新登录
throw new TokenException(
TokenMsg.EXCEPTION_TOKEN_LOSE_EFFICACY);
}
}
/**
*
*/
public static void authPerms(String[] currPerms)
throws TokenException {
if(currPerms == null ){
return;
}
String accessToken = TokenThreadLocal.get();
// 查询 用户信息
String userId = UserTokenUtil.getUserIdByToken(accessToken);
//用户权限列表
List<String> permsSet = UserUtil.getUserAllPermsByUserId(userId);
if(CollUtil.isEmpty(permsSet)){
// 无权访问该方法
throw new TokenException(
TokenMsg.EXCEPTION_NOT_AUTH);
}
for (String currPerm : currPerms) {
if(!permsSet.contains(currPerm)){
// 无权访问该方法
throw new TokenException(
TokenMsg.EXCEPTION_NOT_AUTH);
}
}
}
/**
*
*/
public static void exceptionResponse(String msg, HttpServletResponse response){
try {
response.setCharacterEncoding("utf-8");
response.setContentType("text/html;charset=utf-8;");
PrintWriter writer = response.getWriter();
writer.write(
"<script type=\"text/javascript\">alert('"+msg+"');</script>");
writer.flush();
// 关闭流
IoUtil.close(writer);
}catch (Exception e){
log.error(e.getMessage(), e);
}
}
}

@ -119,22 +119,22 @@ public interface #(data.model.tableName)RestApi {
* @return ResultVo
*/
@GetMapping("/exportExcel")
ResultVo<?> exportExcel(HttpServletRequest request, HttpServletResponse response);
void exportExcel(HttpServletRequest request, HttpServletResponse response);
/**
* #(data.codeTitle) Excel
* @param request request
* @return ResultVo
*/
@GetMapping("/exportImport")
ResultVo<?> excelImport(MultipartHttpServletRequest request);
@GetMapping("/importExcel")
ResultVo<?> importExcel(MultipartHttpServletRequest request);
/**
* #(data.codeTitle) Excel
* @param response response
* @return ResultVo
*/
@GetMapping("/exportImport/template")
ResultVo<?> importTemplate(HttpServletResponse response);
@GetMapping("/importExcel/template")
void importTemplate(HttpServletResponse response);
}

@ -19,9 +19,11 @@ package #(data.packageName+"."+data.moduleName+"."+data.subModuleName).web;
package #(data.packageName+"."+data.moduleName).web;
#end
import cn.hutool.core.util.ReflectUtil;
import org.opsli.core.base.service.interfaces.CrudServiceInterface;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.opsli.common.annotation.RequiresPermissionsCus;
import org.apache.shiro.authz.annotation.RequiresPermissions;
import #(apiPath).base.result.ResultVo;
import org.opsli.common.annotation.ApiRestController;
@ -195,15 +197,17 @@ public class #(data.model.tableName)RestController extends BaseRestController<#(
*/
@ApiOperation(value = "导出Excel", notes = "导出Excel")
#if(data.subModuleName != null && data.subModuleName != "")
@RequiresPermissions("#(data.moduleName.toLowerCase())_#(data.subModuleName.toLowerCase())_export")
@RequiresPermissionsCus("#(data.moduleName.toLowerCase())_#(data.subModuleName.toLowerCase())_export")
#else
@RequiresPermissions("#(data.moduleName.toLowerCase())_export")
@RequiresPermissionsCus("#(data.moduleName.toLowerCase())_export")
#end
@EnableLog
@Override
public ResultVo<?> exportExcel(HttpServletRequest request, HttpServletResponse response) {
public void exportExcel(HttpServletRequest request, HttpServletResponse response) {
// 当前方法
Method method = ReflectUtil.getMethodByName(this.getClass(), "exportExcel");
QueryBuilder<#(data.model.tableName)> queryBuilder = new WebQueryBuilder<>(#(data.model.tableName).class, request.getParameterMap());
return super.excelExport(#(data.model.tableName)RestApi.TITLE, queryBuilder.build(), response);
super.excelExport(#(data.model.tableName)RestApi.TITLE, queryBuilder.build(), response, method);
}
/**
@ -213,14 +217,16 @@ public class #(data.model.tableName)RestController extends BaseRestController<#(
*/
@ApiOperation(value = "导入Excel", notes = "导入Excel")
#if(data.subModuleName != null && data.subModuleName != "")
@RequiresPermissions("#(data.moduleName.toLowerCase())_#(data.subModuleName.toLowerCase())_import")
@RequiresPermissionsCus("#(data.moduleName.toLowerCase())_#(data.subModuleName.toLowerCase())_import")
#else
@RequiresPermissions("#(data.moduleName.toLowerCase())_import")
@RequiresPermissionsCus("#(data.moduleName.toLowerCase())_import")
#end
@EnableLog
@Override
public ResultVo<?> excelImport(MultipartHttpServletRequest request) {
return super.excelImport(request);
public ResultVo<?> importExcel(MultipartHttpServletRequest request) {
// 当前方法
Method method = ReflectUtil.getMethodByName(this.getClass(), "importExcel");
return super.excelImport(request, method);
}
/**
@ -230,13 +236,15 @@ public class #(data.model.tableName)RestController extends BaseRestController<#(
*/
@ApiOperation(value = "导出Excel模版", notes = "导出Excel模版")
#if(data.subModuleName != null && data.subModuleName != "")
@RequiresPermissions("#(data.moduleName.toLowerCase())_#(data.subModuleName.toLowerCase())_import")
@RequiresPermissionsCus("#(data.moduleName.toLowerCase())_#(data.subModuleName.toLowerCase())_import")
#else
@RequiresPermissions("#(data.moduleName.toLowerCase())_import")
@RequiresPermissionsCus("#(data.moduleName.toLowerCase())_import")
#end
@Override
public ResultVo<?> importTemplate(HttpServletResponse response) {
return super.importTemplate(#(data.model.tableName)RestApi.TITLE, response);
public void importTemplate(HttpServletResponse response) {
// 当前方法
Method method = ReflectUtil.getMethodByName(this.getClass(), "importTemplate");
super.importTemplate(#(data.model.tableName)RestApi.TITLE, response, method);
}
}

@ -19,8 +19,8 @@ import cn.hutool.core.collection.CollUtil;
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 com.google.common.collect.Sets;
import io.swagger.annotations.ApiOperation;
@ -32,6 +32,7 @@ import org.opsli.api.web.system.area.SysAreaRestApi;
import org.opsli.api.wrapper.system.area.SysAreaModel;
import org.opsli.common.annotation.ApiRestController;
import org.opsli.common.annotation.EnableLog;
import org.opsli.common.annotation.RequiresPermissionsCus;
import org.opsli.common.constants.MyBatisConstants;
import org.opsli.common.utils.HumpUtil;
import org.opsli.core.base.concroller.BaseRestController;
@ -45,6 +46,7 @@ import org.springframework.web.multipart.MultipartHttpServletRequest;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.lang.reflect.Method;
import java.util.List;
import java.util.Map;
import java.util.Set;
@ -228,12 +230,14 @@ public class SysAreaRestController extends BaseRestController<SysArea, SysAreaMo
* @return ResultVo
*/
@ApiOperation(value = "导出Excel", notes = "导出Excel")
@RequiresPermissions("system_area_export")
@RequiresPermissionsCus("system_area_export")
@EnableLog
@Override
public ResultVo<?> exportExcel(HttpServletRequest request, HttpServletResponse response) {
public void exportExcel(HttpServletRequest request, HttpServletResponse response) {
// 当前方法
Method method = ReflectUtil.getMethodByName(this.getClass(), "exportExcel");
QueryBuilder<SysArea> queryBuilder = new WebQueryBuilder<>(SysArea.class, request.getParameterMap());
return super.excelExport(SysAreaRestApi.TITLE, queryBuilder.build(), response);
super.excelExport(SysAreaRestApi.TITLE, queryBuilder.build(), response, method);
}
/**
@ -245,8 +249,8 @@ public class SysAreaRestController extends BaseRestController<SysArea, SysAreaMo
@RequiresPermissions("system_area_import")
@EnableLog
@Override
public ResultVo<?> excelImport(MultipartHttpServletRequest request) {
return super.excelImport(request);
public ResultVo<?> importExcel(MultipartHttpServletRequest request) {
return super.importExcel(request);
}
/**
@ -255,10 +259,12 @@ public class SysAreaRestController extends BaseRestController<SysArea, SysAreaMo
* @return ResultVo
*/
@ApiOperation(value = "导出Excel模版", notes = "导出Excel模版")
@RequiresPermissions("system_area_import")
@RequiresPermissionsCus("system_area_import")
@Override
public ResultVo<?> importTemplate(HttpServletResponse response) {
return super.importTemplate(SysAreaRestApi.TITLE, response);
public void importTemplate(HttpServletResponse response) {
// 当前方法
Method method = ReflectUtil.getMethodByName(this.getClass(), "importTemplate");
super.importTemplate(SysAreaRestApi.TITLE, response, method);
}
}

@ -42,7 +42,7 @@ public class SysDict extends BaseEntity {
private String typeName;
/** 是否内置数据 0是 1否*/
private Character izLock;
private String izLock;
/** 备注 */
@TableField(updateStrategy = FieldStrategy.IGNORED)

@ -47,7 +47,7 @@ public class SysDictDetail extends BaseEntity {
private String dictValue;
/** 是否内置数据 0是 1否*/
private Character izLock;
private String izLock;
/** 排序 */
private Integer sortNo;

@ -16,6 +16,7 @@
package org.opsli.modulars.system.dict.web;
import cn.hutool.core.convert.Convert;
import cn.hutool.core.util.ReflectUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
@ -26,6 +27,7 @@ import org.opsli.api.wrapper.system.dict.DictDetailModel;
import org.opsli.api.wrapper.system.user.UserModel;
import org.opsli.common.annotation.ApiRestController;
import org.opsli.common.annotation.EnableLog;
import org.opsli.common.annotation.RequiresPermissionsCus;
import org.opsli.common.constants.MyBatisConstants;
import org.opsli.common.exception.ServiceException;
import org.opsli.core.base.concroller.BaseRestController;
@ -41,6 +43,7 @@ import org.springframework.web.multipart.MultipartHttpServletRequest;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.lang.reflect.Method;
import java.util.List;
@ -58,7 +61,7 @@ public class DictDetailRestController extends BaseRestController<SysDictDetail,
/** 内置数据 */
private static final char LOCK_DATA = '1';
private static final String LOCK_DATA = "1";
/**
*
@ -123,7 +126,7 @@ public class DictDetailRestController extends BaseRestController<SysDictDetail,
if(model != null){
DictDetailModel dictDetailModel = IService.get(model.getId());
// 内置数据 只有超级管理员可以修改
if(LOCK_DATA == dictDetailModel.getIzLock() ){
if(LOCK_DATA.equals(dictDetailModel.getIzLock()) ){
UserModel user = UserUtil.getUser();
if(!UserUtil.SUPER_ADMIN.equals(user.getUsername())){
@ -151,7 +154,7 @@ public class DictDetailRestController extends BaseRestController<SysDictDetail,
DictDetailModel dictDetailModel = IService.get(id);
// 内置数据 只有超级管理员可以修改
if(LOCK_DATA == dictDetailModel.getIzLock() ){
if(LOCK_DATA.equals(dictDetailModel.getIzLock()) ){
UserModel user = UserUtil.getUser();
if(!UserUtil.SUPER_ADMIN.equals(user.getUsername())){
@ -184,7 +187,7 @@ public class DictDetailRestController extends BaseRestController<SysDictDetail,
List<SysDictDetail> dictList = IService.findList(wrapper);
for (SysDictDetail sysDictDetail : dictList) {
// 内置数据 只有超级管理员可以修改
if(LOCK_DATA == sysDictDetail.getIzLock() ){
if(LOCK_DATA.equals(sysDictDetail.getIzLock()) ){
UserModel user = UserUtil.getUser();
if(!UserUtil.SUPER_ADMIN.equals(user.getUsername())){
throw new ServiceException(SystemMsg.EXCEPTION_LOCK_DATA);
@ -205,12 +208,14 @@ public class DictDetailRestController extends BaseRestController<SysDictDetail,
* @return ResultVo
*/
@ApiOperation(value = "导出Excel", notes = "导出Excel")
@RequiresPermissions("system_dict_export")
@RequiresPermissionsCus("system_dict_export")
@EnableLog
@Override
public ResultVo<?> exportExcel(HttpServletRequest request, HttpServletResponse response) {
public void exportExcel(HttpServletRequest request, HttpServletResponse response) {
// 当前方法
Method method = ReflectUtil.getMethodByName(this.getClass(), "exportExcel");
QueryBuilder<SysDictDetail> queryBuilder = new WebQueryBuilder<>(SysDictDetail.class, request.getParameterMap());
return super.excelExport(DictDetailApi.TITLE, queryBuilder.build(), response);
super.excelExport(DictDetailApi.TITLE, queryBuilder.build(), response, method);
}
/**
@ -222,8 +227,8 @@ public class DictDetailRestController extends BaseRestController<SysDictDetail,
@RequiresPermissions("system_dict_import")
@EnableLog
@Override
public ResultVo<?> excelImport(MultipartHttpServletRequest request) {
return super.excelImport(request);
public ResultVo<?> importExcel(MultipartHttpServletRequest request) {
return super.importExcel(request);
}
/**
@ -232,10 +237,12 @@ public class DictDetailRestController extends BaseRestController<SysDictDetail,
* @return ResultVo
*/
@ApiOperation(value = "导出Excel模版", notes = "导出Excel模版")
@RequiresPermissions("system_dict_import")
@RequiresPermissionsCus("system_dict_import")
@Override
public ResultVo<?> importTemplate(HttpServletResponse response) {
return super.importTemplate(DictDetailApi.TITLE, response);
public void importTemplate(HttpServletResponse response) {
// 当前方法
Method method = ReflectUtil.getMethodByName(this.getClass(), "importTemplate");
super.importTemplate(DictDetailApi.TITLE, response, method);
}
/**

@ -16,6 +16,7 @@
package org.opsli.modulars.system.dict.web;
import cn.hutool.core.convert.Convert;
import cn.hutool.core.util.ReflectUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
@ -27,6 +28,7 @@ import org.opsli.api.wrapper.system.dict.DictWrapper;
import org.opsli.api.wrapper.system.user.UserModel;
import org.opsli.common.annotation.ApiRestController;
import org.opsli.common.annotation.EnableLog;
import org.opsli.common.annotation.RequiresPermissionsCus;
import org.opsli.common.api.TokenThreadLocal;
import org.opsli.common.constants.MyBatisConstants;
import org.opsli.common.exception.ServiceException;
@ -44,6 +46,7 @@ import org.springframework.web.multipart.MultipartHttpServletRequest;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.lang.reflect.Method;
import java.util.List;
@ -60,7 +63,7 @@ public class DictRestController extends BaseRestController<SysDict, DictModel, I
implements DictApi {
/** 内置数据 */
private static final char LOCK_DATA = '1';
private static final String LOCK_DATA = "1";
/**
*
@ -125,7 +128,7 @@ public class DictRestController extends BaseRestController<SysDict, DictModel, I
if(model != null){
DictModel dictModel = IService.get(model.getId());
// 内置数据 只有超级管理员可以修改
if(LOCK_DATA == dictModel.getIzLock() ){
if(LOCK_DATA.equals(dictModel.getIzLock()) ){
UserModel user = UserUtil.getUser();
if(!UserUtil.SUPER_ADMIN.equals(user.getUsername())){
@ -153,7 +156,7 @@ public class DictRestController extends BaseRestController<SysDict, DictModel, I
DictModel dictModel = IService.get(id);
// 内置数据 只有超级管理员可以修改
if(LOCK_DATA == dictModel.getIzLock() ){
if(LOCK_DATA.equals(dictModel.getIzLock()) ){
UserModel user = UserUtil.getUser();
if(!UserUtil.SUPER_ADMIN.equals(user.getUsername())){
@ -186,7 +189,7 @@ public class DictRestController extends BaseRestController<SysDict, DictModel, I
List<SysDict> dictList = IService.findList(wrapper);
for (SysDict sysDict : dictList) {
// 内置数据 只有超级管理员可以修改
if(LOCK_DATA == sysDict.getIzLock() ){
if(LOCK_DATA.equals(sysDict.getIzLock()) ){
UserModel user = UserUtil.getUser();
if(!UserUtil.SUPER_ADMIN.equals(user.getUsername())){
throw new ServiceException(SystemMsg.EXCEPTION_LOCK_DATA);
@ -207,12 +210,14 @@ public class DictRestController extends BaseRestController<SysDict, DictModel, I
* @return ResultVo
*/
@ApiOperation(value = "导出Excel", notes = "导出Excel")
@RequiresPermissions("system_dict_export")
@RequiresPermissionsCus("system_dict_export")
@EnableLog
@Override
public ResultVo<?> exportExcel(HttpServletRequest request, HttpServletResponse response) {
public void exportExcel(HttpServletRequest request, HttpServletResponse response) {
// 当前方法
Method method = ReflectUtil.getMethodByName(this.getClass(), "exportExcel");
QueryBuilder<SysDict> queryBuilder = new WebQueryBuilder<>(SysDict.class, request.getParameterMap());
return super.excelExport(DictApi.TITLE, queryBuilder.build(), response);
super.excelExport(DictApi.TITLE, queryBuilder.build(), response, method);
}
/**
@ -224,8 +229,8 @@ public class DictRestController extends BaseRestController<SysDict, DictModel, I
@RequiresPermissions("system_dict_import")
@EnableLog
@Override
public ResultVo<?> excelImport(MultipartHttpServletRequest request) {
return super.excelImport(request);
public ResultVo<?> importExcel(MultipartHttpServletRequest request) {
return super.importExcel(request);
}
/**
@ -234,10 +239,12 @@ public class DictRestController extends BaseRestController<SysDict, DictModel, I
* @return ResultVo
*/
@ApiOperation(value = "导出Excel模版", notes = "导出Excel模版")
@RequiresPermissions("system_dict_import")
@RequiresPermissionsCus("system_dict_import")
@Override
public ResultVo<?> importTemplate(HttpServletResponse response) {
return super.importTemplate(DictApi.TITLE, response);
public void importTemplate(HttpServletResponse response) {
// 当前方法
Method method = ReflectUtil.getMethodByName(this.getClass(), "importTemplate");
super.importTemplate(DictApi.TITLE, response, method);
}
/**

@ -29,6 +29,7 @@ import org.opsli.common.utils.IPUtil;
import org.opsli.core.msg.TokenMsg;
import org.opsli.core.persistence.querybuilder.GenQueryBuilder;
import org.opsli.core.persistence.querybuilder.QueryBuilder;
import org.opsli.core.security.shiro.realm.OAuth2Realm;
import org.opsli.core.utils.CaptchaUtil;
import org.opsli.core.utils.UserTokenUtil;
import org.opsli.core.utils.UserUtil;
@ -64,6 +65,7 @@ import java.util.Map;
@RestController
public class LoginRestController {
@Autowired
private ITenantService iTenantService;
@Autowired
@ -108,7 +110,7 @@ public class LoginRestController {
UserTokenUtil.clearLockAccount(form.getUsername());
// 账号锁定
if(user.getLocked() == 1){
if(OAuth2Realm.LOCK_VAL.equals(user.getLocked())){
throw new TokenException(TokenMsg.EXCEPTION_LOGIN_ACCOUNT_LOCKED);
}

@ -18,6 +18,7 @@ package org.opsli.modulars.system.menu.web;
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.Maps;
import io.swagger.annotations.ApiOperation;
@ -30,6 +31,7 @@ import org.opsli.api.wrapper.system.menu.MenuModel;
import org.opsli.api.wrapper.system.user.UserModel;
import org.opsli.common.annotation.ApiRestController;
import org.opsli.common.annotation.EnableLog;
import org.opsli.common.annotation.RequiresPermissionsCus;
import org.opsli.common.utils.WrapperUtil;
import org.opsli.core.base.concroller.BaseRestController;
import org.opsli.core.general.StartPrint;
@ -45,6 +47,7 @@ import org.springframework.web.multipart.MultipartHttpServletRequest;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.lang.reflect.Method;
import java.util.List;
import java.util.Map;
@ -388,12 +391,14 @@ public class MenuRestController extends BaseRestController<SysMenu, MenuModel, I
* @return ResultVo
*/
@ApiOperation(value = "导出Excel", notes = "导出Excel")
@RequiresPermissions("system_menu_export")
@RequiresPermissionsCus("system_menu_export")
@EnableLog
@Override
public ResultVo<?> exportExcel(HttpServletRequest request, HttpServletResponse response) {
public void exportExcel(HttpServletRequest request, HttpServletResponse response) {
// 当前方法
Method method = ReflectUtil.getMethodByName(this.getClass(), "exportExcel");
QueryBuilder<SysMenu> queryBuilder = new WebQueryBuilder<>(SysMenu.class, request.getParameterMap());
return super.excelExport(MenuApi.TITLE, queryBuilder.build(), response);
super.excelExport(MenuApi.TITLE, queryBuilder.build(), response, method);
}
/**
@ -405,8 +410,8 @@ public class MenuRestController extends BaseRestController<SysMenu, MenuModel, I
@RequiresPermissions("system_menu_import")
@EnableLog
@Override
public ResultVo<?> excelImport(MultipartHttpServletRequest request) {
return super.excelImport(request);
public ResultVo<?> importExcel(MultipartHttpServletRequest request) {
return super.importExcel(request);
}
/**
@ -415,11 +420,13 @@ public class MenuRestController extends BaseRestController<SysMenu, MenuModel, I
* @return ResultVo
*/
@ApiOperation(value = "导出Excel模版", notes = "导出Excel模版")
@RequiresPermissions("system_menu_import")
@RequiresPermissionsCus("system_menu_import")
@EnableLog
@Override
public ResultVo<?> importTemplate(HttpServletResponse response) {
return super.importTemplate(MenuApi.TITLE, response);
public void importTemplate(HttpServletResponse response) {
// 当前方法
Method method = ReflectUtil.getMethodByName(this.getClass(), "importTemplate");
super.importTemplate(MenuApi.TITLE, response, method);
}

@ -23,18 +23,6 @@
</where>
</select>
<select id="hasChildren" parameterType="SysOrg" resultType="org.opsli.core.base.entity.HasChildren">
select
parent_id as parentId,
count(0) as `count`
from
sys_org
<where>
${ew.sqlSegment}
</where>
</select>
<select id="hasUse" parameterType="SysOrg" resultType="Integer">
select
count(0)

@ -19,6 +19,7 @@ import cn.hutool.core.collection.CollUtil;
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.Maps;
import com.google.common.collect.Sets;
@ -30,6 +31,7 @@ import org.opsli.api.web.system.org.SysOrgRestApi;
import org.opsli.api.wrapper.system.org.SysOrgModel;
import org.opsli.common.annotation.ApiRestController;
import org.opsli.common.annotation.EnableLog;
import org.opsli.common.annotation.RequiresPermissionsCus;
import org.opsli.common.constants.MyBatisConstants;
import org.opsli.common.utils.HumpUtil;
import org.opsli.common.utils.WrapperUtil;
@ -44,6 +46,7 @@ import org.springframework.web.multipart.MultipartHttpServletRequest;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.lang.reflect.Method;
import java.util.List;
import java.util.Map;
import java.util.Set;
@ -403,12 +406,14 @@ public class SysOrgRestController extends BaseRestController<SysOrg, SysOrgModel
* @return ResultVo
*/
@ApiOperation(value = "导出Excel", notes = "导出Excel")
@RequiresPermissions("system_org_export")
@RequiresPermissionsCus("system_org_export")
@EnableLog
@Override
public ResultVo<?> exportExcel(HttpServletRequest request, HttpServletResponse response) {
public void exportExcel(HttpServletRequest request, HttpServletResponse response) {
// 当前方法
Method method = ReflectUtil.getMethodByName(this.getClass(), "exportExcel");
QueryBuilder<SysOrg> queryBuilder = new WebQueryBuilder<>(SysOrg.class, request.getParameterMap());
return super.excelExport(SysOrgRestApi.TITLE, queryBuilder.build(), response);
super.excelExport(SysOrgRestApi.TITLE, queryBuilder.build(), response, method);
}
/**
@ -420,8 +425,8 @@ public class SysOrgRestController extends BaseRestController<SysOrg, SysOrgModel
@RequiresPermissions("system_org_import")
@EnableLog
@Override
public ResultVo<?> excelImport(MultipartHttpServletRequest request) {
return super.excelImport(request);
public ResultVo<?> importExcel(MultipartHttpServletRequest request) {
return super.importExcel(request);
}
/**
@ -430,10 +435,12 @@ public class SysOrgRestController extends BaseRestController<SysOrg, SysOrgModel
* @return ResultVo
*/
@ApiOperation(value = "导出Excel模版", notes = "导出Excel模版")
@RequiresPermissions("system_org_import")
@RequiresPermissionsCus("system_org_import")
@Override
public ResultVo<?> importTemplate(HttpServletResponse response) {
return super.importTemplate(SysOrgRestApi.TITLE, response);
public void importTemplate(HttpServletResponse response) {
// 当前方法
Method method = ReflectUtil.getMethodByName(this.getClass(), "importTemplate");
super.importTemplate(SysOrgRestApi.TITLE, response, method);
}
}

@ -42,7 +42,7 @@ public class SysRole extends BaseEntity {
private String roleName;
/** 是否内置数据 0是 1否*/
private Character izLock;
private String izLock;
/** 备注 */
@TableField(updateStrategy = FieldStrategy.IGNORED)

@ -52,7 +52,7 @@ import java.util.stream.Collectors;
public class RoleMenuRefRestController implements RoleMenuRefApi {
/** 内置数据 */
private static final char LOCK_DATA = '1';
private static final String LOCK_DATA = "1";
@Value("${opsli.enable-demo}")
private boolean enableDemo;
@ -115,7 +115,7 @@ public class RoleMenuRefRestController implements RoleMenuRefApi {
RoleModel roleModel = iRoleService.get(model.getRoleId());
// 内置数据 只有超级管理员可以修改
if(LOCK_DATA == roleModel.getIzLock() ){
if(LOCK_DATA.equals(roleModel.getIzLock()) ){
UserModel user = UserUtil.getUser();
if(!UserUtil.SUPER_ADMIN.equals(user.getUsername())){
throw new ServiceException(SystemMsg.EXCEPTION_LOCK_DATA);

@ -16,6 +16,7 @@
package org.opsli.modulars.system.role.web;
import cn.hutool.core.convert.Convert;
import cn.hutool.core.util.ReflectUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
@ -26,6 +27,7 @@ import org.opsli.api.wrapper.system.role.RoleModel;
import org.opsli.api.wrapper.system.user.UserModel;
import org.opsli.common.annotation.ApiRestController;
import org.opsli.common.annotation.EnableLog;
import org.opsli.common.annotation.RequiresPermissionsCus;
import org.opsli.common.constants.MyBatisConstants;
import org.opsli.common.exception.ServiceException;
import org.opsli.core.base.concroller.BaseRestController;
@ -41,6 +43,7 @@ import org.springframework.web.multipart.MultipartHttpServletRequest;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.lang.reflect.Method;
import java.util.List;
@ -57,7 +60,7 @@ public class RoleRestController extends BaseRestController<SysRole, RoleModel, I
implements RoleApi {
/** 内置数据 */
private static final char LOCK_DATA = '1';
private static final String LOCK_DATA = "1";
/**
*
@ -126,7 +129,7 @@ public class RoleRestController extends BaseRestController<SysRole, RoleModel, I
if(model != null){
RoleModel roleModel = IService.get(model.getId());
// 内置数据 只有超级管理员可以修改
if(LOCK_DATA == roleModel.getIzLock() ){
if(LOCK_DATA.equals(roleModel.getIzLock()) ){
UserModel user = UserUtil.getUser();
if(!UserUtil.SUPER_ADMIN.equals(user.getUsername())){
@ -156,7 +159,7 @@ public class RoleRestController extends BaseRestController<SysRole, RoleModel, I
RoleModel roleModel = IService.get(id);
// 内置数据 只有超级管理员可以修改
if(LOCK_DATA == roleModel.getIzLock() ){
if(LOCK_DATA.equals(roleModel.getIzLock()) ){
UserModel user = UserUtil.getUser();
if(!UserUtil.SUPER_ADMIN.equals(user.getUsername())){
throw new ServiceException(SystemMsg.EXCEPTION_LOCK_DATA);
@ -190,7 +193,7 @@ public class RoleRestController extends BaseRestController<SysRole, RoleModel, I
List<SysRole> roleList = IService.findList(wrapper);
for (SysRole sysRole : roleList) {
// 内置数据 只有超级管理员可以修改
if(LOCK_DATA == sysRole.getIzLock() ){
if(LOCK_DATA.equals(sysRole.getIzLock()) ){
UserModel user = UserUtil.getUser();
if(!UserUtil.SUPER_ADMIN.equals(user.getUsername())){
throw new ServiceException(SystemMsg.EXCEPTION_LOCK_DATA);
@ -211,12 +214,14 @@ public class RoleRestController extends BaseRestController<SysRole, RoleModel, I
* @return ResultVo
*/
@ApiOperation(value = "导出Excel", notes = "导出Excel")
@RequiresPermissions("system_role_export")
@RequiresPermissionsCus("system_role_export")
@EnableLog
@Override
public ResultVo<?> exportExcel(HttpServletRequest request, HttpServletResponse response) {
public void exportExcel(HttpServletRequest request, HttpServletResponse response) {
// 当前方法
Method method = ReflectUtil.getMethodByName(this.getClass(), "exportExcel");
QueryBuilder<SysRole> queryBuilder = new WebQueryBuilder<>(SysRole.class, request.getParameterMap());
return super.excelExport(RoleApi.TITLE, queryBuilder.build(), response);
super.excelExport(RoleApi.TITLE, queryBuilder.build(), response, method);
}
/**
@ -228,8 +233,8 @@ public class RoleRestController extends BaseRestController<SysRole, RoleModel, I
@RequiresPermissions("system_role_import")
@EnableLog
@Override
public ResultVo<?> excelImport(MultipartHttpServletRequest request) {
return super.excelImport(request);
public ResultVo<?> importExcel(MultipartHttpServletRequest request) {
return super.importExcel(request);
}
/**
@ -238,11 +243,13 @@ public class RoleRestController extends BaseRestController<SysRole, RoleModel, I
* @return ResultVo
*/
@ApiOperation(value = "导出Excel模版", notes = "导出Excel模版")
@RequiresPermissions("system_role_import")
@RequiresPermissionsCus("system_role_import")
@EnableLog
@Override
public ResultVo<?> importTemplate(HttpServletResponse response) {
return super.importTemplate(RoleApi.TITLE, response);
public void importTemplate(HttpServletResponse response) {
// 当前方法
Method method = ReflectUtil.getMethodByName(this.getClass(), "importTemplate");
super.importTemplate(RoleApi.TITLE, response, method);
}
}

@ -38,7 +38,7 @@ public class SysTenant extends BaseEntity {
private String tenantName;
/** 是否启用 0是 1否*/
private Character izUsable;
private String izUsable;
/** 备注 */
@TableField(updateStrategy = FieldStrategy.IGNORED)

@ -15,6 +15,7 @@
*/
package org.opsli.modulars.system.tenant.web;
import cn.hutool.core.util.ReflectUtil;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.apache.shiro.authz.annotation.RequiresPermissions;
@ -24,6 +25,7 @@ import org.opsli.api.web.system.tenant.TenantApi;
import org.opsli.api.wrapper.system.tenant.TenantModel;
import org.opsli.common.annotation.ApiRestController;
import org.opsli.common.annotation.EnableLog;
import org.opsli.common.annotation.RequiresPermissionsCus;
import org.opsli.core.base.concroller.BaseRestController;
import org.opsli.core.persistence.Page;
import org.opsli.core.persistence.querybuilder.QueryBuilder;
@ -34,6 +36,7 @@ import org.springframework.web.multipart.MultipartHttpServletRequest;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.lang.reflect.Method;
/**
@ -162,12 +165,14 @@ public class TenantRestController extends BaseRestController<SysTenant, TenantMo
* @return ResultVo
*/
@ApiOperation(value = "导出Excel", notes = "导出Excel")
@RequiresPermissions("system_tenant_export")
@RequiresPermissionsCus("system_tenant_export")
@EnableLog
@Override
public ResultVo<?> exportExcel(HttpServletRequest request, HttpServletResponse response) {
public void exportExcel(HttpServletRequest request, HttpServletResponse response) {
// 当前方法
Method method = ReflectUtil.getMethodByName(this.getClass(), "exportExcel");
QueryBuilder<SysTenant> queryBuilder = new WebQueryBuilder<>(SysTenant.class, request.getParameterMap());
return super.excelExport(RoleApi.TITLE, queryBuilder.build(), response);
super.excelExport(RoleApi.TITLE, queryBuilder.build(), response, method);
}
/**
@ -176,11 +181,11 @@ public class TenantRestController extends BaseRestController<SysTenant, TenantMo
* @return ResultVo
*/
@ApiOperation(value = "导入Excel", notes = "导入Excel")
@RequiresPermissions("system_tenant_import")
@RequiresPermissionsCus("system_tenant_import")
@EnableLog
@Override
public ResultVo<?> excelImport(MultipartHttpServletRequest request) {
return super.excelImport(request);
public ResultVo<?> importExcel(MultipartHttpServletRequest request) {
return super.importExcel(request);
}
/**
@ -189,10 +194,12 @@ public class TenantRestController extends BaseRestController<SysTenant, TenantMo
* @return ResultVo
*/
@ApiOperation(value = "导出Excel模版", notes = "导出Excel模版")
@RequiresPermissions("system_tenant_import")
@RequiresPermissionsCus("system_tenant_import")
@Override
public ResultVo<?> importTemplate(HttpServletResponse response) {
return super.importTemplate(RoleApi.TITLE, response);
public void importTemplate(HttpServletResponse response) {
// 当前方法
Method method = ReflectUtil.getMethodByName(this.getClass(), "importTemplate");
super.importTemplate(RoleApi.TITLE, response, method);
}
}

@ -19,6 +19,7 @@ import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.io.FileUtil;
import cn.hutool.core.util.RandomUtil;
import cn.hutool.core.util.ReflectUtil;
import com.alibaba.excel.util.CollectionUtils;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.google.common.collect.Lists;
@ -35,6 +36,7 @@ import org.opsli.api.wrapper.system.org.SysOrgModel;
import org.opsli.api.wrapper.system.user.*;
import org.opsli.common.annotation.ApiRestController;
import org.opsli.common.annotation.EnableLog;
import org.opsli.common.annotation.RequiresPermissionsCus;
import org.opsli.common.constants.MyBatisConstants;
import org.opsli.common.exception.TokenException;
import org.opsli.common.utils.HumpUtil;
@ -63,6 +65,7 @@ import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.File;
import java.io.IOException;
import java.lang.reflect.Method;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
@ -386,12 +389,14 @@ public class UserRestController extends BaseRestController<SysUser, UserModel, I
* @return ResultVo
*/
@ApiOperation(value = "导出Excel", notes = "导出Excel")
@RequiresPermissions("system_user_export")
@RequiresPermissionsCus("system_user_export")
@EnableLog
@Override
public ResultVo<?> exportExcel(HttpServletRequest request, HttpServletResponse response) {
public void exportExcel(HttpServletRequest request, HttpServletResponse response) {
// 当前方法
Method method = ReflectUtil.getMethodByName(this.getClass(), "exportExcel");
QueryBuilder<SysUser> queryBuilder = new WebQueryBuilder<>(SysUser.class, request.getParameterMap());
return super.excelExport(UserApi.TITLE, queryBuilder.build(), response);
super.excelExport(UserApi.TITLE, queryBuilder.build(), response, method);
}
/**
@ -403,8 +408,8 @@ public class UserRestController extends BaseRestController<SysUser, UserModel, I
@RequiresPermissions("system_user_import")
@EnableLog
@Override
public ResultVo<?> excelImport(MultipartHttpServletRequest request) {
return super.excelImport(request);
public ResultVo<?> importExcel(MultipartHttpServletRequest request) {
return super.importExcel(request);
}
/**
@ -413,10 +418,12 @@ public class UserRestController extends BaseRestController<SysUser, UserModel, I
* @return ResultVo
*/
@ApiOperation(value = "导出Excel模版", notes = "导出Excel模版")
@RequiresPermissions("system_user_import")
@RequiresPermissionsCus("system_user_import")
@Override
public ResultVo<?> importTemplate(HttpServletResponse response) {
return super.importTemplate(UserApi.TITLE, response);
public void importTemplate(HttpServletResponse response) {
// 当前方法
Method method = ReflectUtil.getMethodByName(this.getClass(), "importTemplate");
super.importTemplate(UserApi.TITLE, response, method);
}
/**

@ -48,7 +48,7 @@ public class TestUser extends BaseEntity {
private Date birth;
/** 是否启用 */
private Character izUsable;
private String izUsable;
// ========================================

@ -15,8 +15,8 @@
*/
package org.opsli.modulars.gentest.user.web;
import org.opsli.api.web.system.role.RoleApi;
import org.opsli.core.base.service.interfaces.CrudServiceInterface;
import cn.hutool.core.util.ReflectUtil;
import org.opsli.common.annotation.RequiresPermissionsCus;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.apache.shiro.authz.annotation.RequiresPermissions;
@ -36,6 +36,8 @@ import org.opsli.api.wrapper.gentest.user.TestUserModel;
import org.opsli.modulars.gentest.user.service.ITestUserService;
import org.opsli.api.web.gentest.user.TestUserRestApi;
import java.lang.reflect.Method;
/**
* @BelongsProject: opsli-boot
* @BelongsPackage: org.opsli.modulars.gentest.user.web
@ -152,12 +154,14 @@ public class TestUserRestController extends BaseRestController<TestUser, TestUse
* @return ResultVo
*/
@ApiOperation(value = "导出Excel", notes = "导出Excel")
@RequiresPermissions("gentest_user_export")
@RequiresPermissionsCus("gentest_user_export")
@EnableLog
@Override
public ResultVo<?> exportExcel(HttpServletRequest request, HttpServletResponse response) {
public void exportExcel(HttpServletRequest request, HttpServletResponse response) {
// 当前方法
Method method = ReflectUtil.getMethodByName(this.getClass(), "exportExcel");
QueryBuilder<TestUser> queryBuilder = new WebQueryBuilder<>(TestUser.class, request.getParameterMap());
return super.excelExport(RoleApi.TITLE, queryBuilder.build(), response);
super.excelExport(TestUserRestApi.TITLE, queryBuilder.build(), response, method);
}
/**
@ -169,8 +173,8 @@ public class TestUserRestController extends BaseRestController<TestUser, TestUse
@RequiresPermissions("gentest_user_import")
@EnableLog
@Override
public ResultVo<?> excelImport(MultipartHttpServletRequest request) {
return super.excelImport(request);
public ResultVo<?> importExcel(MultipartHttpServletRequest request) {
return super.importExcel(request);
}
/**
@ -179,10 +183,12 @@ public class TestUserRestController extends BaseRestController<TestUser, TestUse
* @return ResultVo
*/
@ApiOperation(value = "导出Excel模版", notes = "导出Excel模版")
@RequiresPermissions("gentest_user_import")
@RequiresPermissionsCus("gentest_user_import")
@Override
public ResultVo<?> importTemplate(HttpServletResponse response) {
return super.importTemplate(RoleApi.TITLE, response);
public void importTemplate(HttpServletResponse response) {
// 当前方法
Method method = ReflectUtil.getMethodByName(this.getClass(), "importTemplate");
super.importTemplate(TestUserRestApi.TITLE, response, method);
}
}

@ -1,14 +1,16 @@
package org.opsli.modulars.test.web;
import cn.hutool.core.util.ReflectUtil;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.opsli.api.base.result.ResultVo;
import org.opsli.api.web.system.role.RoleApi;
import org.opsli.api.web.gentest.user.TestUserRestApi;
import org.opsli.api.web.test.TestRestApi;
import org.opsli.api.wrapper.test.TestModel;
import org.opsli.common.annotation.ApiRestController;
import org.opsli.common.annotation.EnableLog;
import org.opsli.common.annotation.RequiresPermissionsCus;
import org.opsli.core.base.concroller.BaseRestController;
import org.opsli.core.persistence.Page;
import org.opsli.core.persistence.querybuilder.QueryBuilder;
@ -19,6 +21,7 @@ import org.springframework.web.multipart.MultipartHttpServletRequest;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.lang.reflect.Method;
/**
@ -137,12 +140,14 @@ public class TestRestController extends BaseRestController<TestEntity, TestModel
* @return ResultVo
*/
@ApiOperation(value = "导出Excel", notes = "导出Excel")
@RequiresPermissions("gentest_test_export")
@RequiresPermissionsCus("gentest_test_export")
@EnableLog
@Override
public ResultVo<?> exportExcel(HttpServletRequest request, HttpServletResponse response) {
public void exportExcel(HttpServletRequest request, HttpServletResponse response) {
// 当前方法
Method method = ReflectUtil.getMethodByName(this.getClass(), "exportExcel");
QueryBuilder<TestEntity> queryBuilder = new WebQueryBuilder<>(TestEntity.class, request.getParameterMap());
return super.excelExport(RoleApi.TITLE, queryBuilder.build(), response);
super.excelExport(TestUserRestApi.TITLE, queryBuilder.build(), response, method);
}
/**
@ -154,8 +159,8 @@ public class TestRestController extends BaseRestController<TestEntity, TestModel
@RequiresPermissions("gentest_test_import")
@EnableLog
@Override
public ResultVo<?> excelImport(MultipartHttpServletRequest request) {
return super.excelImport(request);
public ResultVo<?> importExcel(MultipartHttpServletRequest request) {
return super.importExcel(request);
}
/**
@ -164,10 +169,12 @@ public class TestRestController extends BaseRestController<TestEntity, TestModel
* @return ResultVo
*/
@ApiOperation(value = "导出Excel模版", notes = "导出Excel模版")
@RequiresPermissions("gentest_test_import")
@RequiresPermissionsCus("gentest_test_import")
@Override
public ResultVo<?> importTemplate(HttpServletResponse response) {
return super.importTemplate(RoleApi.TITLE, response);
public void importTemplate(HttpServletResponse response) {
// 当前方法
Method method = ReflectUtil.getMethodByName(this.getClass(), "importTemplate");
super.importTemplate(TestUserRestApi.TITLE, response, method);
}

@ -2,6 +2,7 @@ package org.opsli.modulars.test.web;
import cn.hutool.core.thread.ThreadUtil;
import cn.hutool.core.util.RandomUtil;
import cn.hutool.core.util.ReflectUtil;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
@ -33,6 +34,7 @@ import org.springframework.web.multipart.MultipartHttpServletRequest;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.lang.reflect.Method;
import java.util.ArrayList;
import java.util.List;
import java.util.Random;
@ -275,21 +277,25 @@ public class TestRestRestController extends BaseRestController<TestEntity, TestM
@ApiOperation(value = "导出Excel", notes = "导出Excel")
@Override
public ResultVo<?> exportExcel(HttpServletRequest request, HttpServletResponse response) {
public void exportExcel(HttpServletRequest request, HttpServletResponse response) {
// 当前方法
Method method = ReflectUtil.getMethodByName(this.getClass(), "exportExcel");
QueryBuilder<TestEntity> queryBuilder = new WebQueryBuilder<>(TestEntity.class, request.getParameterMap());
return super.excelExport("测试", queryBuilder.build(), response);
super.excelExport("测试", queryBuilder.build(), response, method);
}
@ApiOperation(value = "导入Excel", notes = "导入Excel")
@Override
public ResultVo<?> excelImport(MultipartHttpServletRequest request) {
return super.excelImport(request);
public ResultVo<?> importExcel(MultipartHttpServletRequest request) {
return super.importExcel(request);
}
@ApiOperation(value = "导出Excel模版", notes = "导出Excel模版")
@Override
public ResultVo<?> importTemplate(HttpServletResponse response) {
return super.importTemplate("测试", response);
public void importTemplate(HttpServletResponse response) {
// 当前方法
Method method = ReflectUtil.getMethodByName(this.getClass(), "importTemplate");
super.importTemplate("测试", response, method);
}

Loading…
Cancel
Save