diff --git a/docker/copy.sh b/docker/copy.sh index 5d8959133..e2ba1d24d 100644 --- a/docker/copy.sh +++ b/docker/copy.sh @@ -10,7 +10,7 @@ usage() { # copy sql echo "begin copy sql " cp ../sql/ry_20240629.sql ./mysql/db -cp ../sql/ry_config_20240902.sql ./mysql/db +cp ../sql/ry_config_20250224.sql ./mysql/db # copy html echo "begin copy html " diff --git a/docker/nginx/conf/nginx.conf b/docker/nginx/conf/nginx.conf index eccee5236..031fa4341 100644 --- a/docker/nginx/conf/nginx.conf +++ b/docker/nginx/conf/nginx.conf @@ -29,7 +29,7 @@ http { } # 避免actuator暴露 - if ($request_uri ~ "/actuator") { + if ($uri ~ "/actuator") { return 403; } diff --git a/pom.xml b/pom.xml index 532c34a2c..bcaa4c8ae 100644 --- a/pom.xml +++ b/pom.xml @@ -36,7 +36,7 @@ 2.14.4 - 9.0.96 + 9.0.102 1.2.13 5.3.39 2.0.0 @@ -322,6 +322,11 @@ org.apache.maven.plugins maven-compiler-plugin + + ${java.version} + ${java.version} + ${project.build.sourceEncoding} + org.jetbrains.kotlin diff --git a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/SysUser.java b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/SysUser.java index 1676e89b4..bbec2702d 100644 --- a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/SysUser.java +++ b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/SysUser.java @@ -8,6 +8,7 @@ import org.apache.commons.lang3.builder.ToStringStyle; import com.ruoyi.common.core.annotation.Excel; import com.ruoyi.common.core.annotation.Excel.ColumnType; import com.ruoyi.common.core.annotation.Excel.Type; +import com.ruoyi.common.core.constant.UserConstants; import com.ruoyi.common.core.annotation.Excels; import com.ruoyi.common.core.web.domain.BaseEntity; import com.ruoyi.common.core.xss.Xss; @@ -122,7 +123,7 @@ public class SysUser extends BaseEntity public static boolean isAdmin(Long userId) { - return userId != null && 1L == userId; + return UserConstants.isAdmin(userId); } public Long getDeptId() diff --git a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/constant/UserConstants.java b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/constant/UserConstants.java index 0db7efbb9..3335095ec 100644 --- a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/constant/UserConstants.java +++ b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/constant/UserConstants.java @@ -80,4 +80,9 @@ public class UserConstants public static final int PASSWORD_MIN_LENGTH = 5; public static final int PASSWORD_MAX_LENGTH = 20; + + public static boolean isAdmin(Long userId) + { + return userId != null && 1L == userId; + } } diff --git a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/text/Convert.java b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/text/Convert.java index 7d8894ca8..9ccdcf4e9 100644 --- a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/text/Convert.java +++ b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/text/Convert.java @@ -540,9 +540,9 @@ public class Convert /** * 转换为boolean
- * String支持的值为:true、false、yes、ok、no,1,0 如果给定的值为空,或者转换失败,返回默认值
+ * String支持的值为:true、false、yes、ok、no、1、0、是、否, 如果给定的值为空,或者转换失败,返回默认值
* 转换失败不会报错 - * + * * @param value 被转换的值 * @param defaultValue 转换错误时的默认值 * @return 结果 @@ -569,10 +569,12 @@ public class Convert case "yes": case "ok": case "1": + case "是": return true; case "false": case "no": case "0": + case "否": return false; default: return defaultValue; diff --git a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/StringUtils.java b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/StringUtils.java index cc9f12b85..a27ab625f 100644 --- a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/StringUtils.java +++ b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/StringUtils.java @@ -283,6 +283,32 @@ public class StringUtils extends org.apache.commons.lang3.StringUtils return str.substring(start, end); } + /** + * 在字符串中查找第一个出现的 `open` 和最后一个出现的 `close` 之间的子字符串 + * + * @param str 要截取的字符串 + * @param open 起始字符串 + * @param close 结束字符串 + * @return 截取结果 + */ + public static String substringBetweenLast(final String str, final String open, final String close) + { + if (isEmpty(str) || isEmpty(open) || isEmpty(close)) + { + return NULLSTR; + } + final int start = str.indexOf(open); + if (start != INDEX_NOT_FOUND) + { + final int end = str.lastIndexOf(close); + if (end != INDEX_NOT_FOUND) + { + return str.substring(start + open.length(), end); + } + } + return NULLSTR; + } + /** * 判断是否为空,并且不是空白字符 * diff --git a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/poi/ExcelUtil.java b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/poi/ExcelUtil.java index 55316e047..3f6ccfb65 100644 --- a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/poi/ExcelUtil.java +++ b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/poi/ExcelUtil.java @@ -1000,6 +1000,7 @@ public class ExcelUtil String separator = attr.separator(); if (StringUtils.isNotEmpty(dateFormat) && StringUtils.isNotNull(value)) { + cell.getCellStyle().setDataFormat(this.wb.getCreationHelper().createDataFormat().getFormat(dateFormat)); cell.setCellValue(parseDateToStr(dateFormat, value)); } else if (StringUtils.isNotEmpty(readConverterExp) && StringUtils.isNotNull(value)) diff --git a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/uuid/UUID.java b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/uuid/UUID.java index 6e0b776ad..cd7cb0ffe 100644 --- a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/uuid/UUID.java +++ b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/uuid/UUID.java @@ -343,25 +343,25 @@ public final class UUID implements java.io.Serializable, Comparable final StringBuilder builder = new StringBuilder(isSimple ? 32 : 36); // time_low builder.append(digits(mostSigBits >> 32, 8)); - if (false == isSimple) + if (!isSimple) { builder.append('-'); } // time_mid builder.append(digits(mostSigBits >> 16, 4)); - if (false == isSimple) + if (!isSimple) { builder.append('-'); } // time_high_and_version builder.append(digits(mostSigBits, 4)); - if (false == isSimple) + if (!isSimple) { builder.append('-'); } // variant_and_sequence builder.append(digits(leastSigBits >> 48, 4)); - if (false == isSimple) + if (!isSimple) { builder.append('-'); } diff --git a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/web/controller/BaseController.java b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/web/controller/BaseController.java index 6eff642f3..4109e299a 100644 --- a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/web/controller/BaseController.java +++ b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/web/controller/BaseController.java @@ -7,12 +7,17 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.web.bind.WebDataBinder; import org.springframework.web.bind.annotation.InitBinder; +import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; import com.ruoyi.common.core.constant.HttpStatus; import com.ruoyi.common.core.utils.DateUtils; import com.ruoyi.common.core.utils.PageUtils; +import com.ruoyi.common.core.utils.StringUtils; +import com.ruoyi.common.core.utils.sql.SqlUtil; import com.ruoyi.common.core.web.domain.AjaxResult; +import com.ruoyi.common.core.web.page.PageDomain; import com.ruoyi.common.core.web.page.TableDataInfo; +import com.ruoyi.common.core.web.page.TableSupport; /** * web层通用数据处理 @@ -48,6 +53,19 @@ public class BaseController PageUtils.startPage(); } + /** + * 设置请求排序数据 + */ + protected void startOrderBy() + { + PageDomain pageDomain = TableSupport.buildPageRequest(); + if (StringUtils.isNotEmpty(pageDomain.getOrderBy())) + { + String orderBy = SqlUtil.escapeOrderBySql(pageDomain.getOrderBy()); + PageHelper.orderBy(orderBy); + } + } + /** * 清理分页的线程变量 */ diff --git a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/web/page/TableDataInfo.java b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/web/page/TableDataInfo.java index 41dc0fe70..7fe3ac0a8 100644 --- a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/web/page/TableDataInfo.java +++ b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/web/page/TableDataInfo.java @@ -37,7 +37,7 @@ public class TableDataInfo implements Serializable * @param list 列表数据 * @param total 总记录数 */ - public TableDataInfo(List list, int total) + public TableDataInfo(List list, long total) { this.rows = list; this.total = total; diff --git a/ruoyi-common/ruoyi-common-log/src/main/java/com/ruoyi/common/log/aspect/LogAspect.java b/ruoyi-common/ruoyi-common-log/src/main/java/com/ruoyi/common/log/aspect/LogAspect.java index caeb9b430..7f4e7441a 100644 --- a/ruoyi-common/ruoyi-common-log/src/main/java/com/ruoyi/common/log/aspect/LogAspect.java +++ b/ruoyi-common/ruoyi-common-log/src/main/java/com/ruoyi/common/log/aspect/LogAspect.java @@ -19,6 +19,8 @@ import org.springframework.stereotype.Component; import org.springframework.validation.BindingResult; import org.springframework.web.multipart.MultipartFile; import com.alibaba.fastjson2.JSON; +import com.ruoyi.common.core.text.Convert; +import com.ruoyi.common.core.utils.ExceptionUtil; import com.ruoyi.common.core.utils.ServletUtils; import com.ruoyi.common.core.utils.StringUtils; import com.ruoyi.common.core.utils.ip.IpUtils; @@ -53,7 +55,7 @@ public class LogAspect * 处理请求前执行 */ @Before(value = "@annotation(controllerLog)") - public void boBefore(JoinPoint joinPoint, Log controllerLog) + public void doBefore(JoinPoint joinPoint, Log controllerLog) { TIME_THREADLOCAL.set(System.currentTimeMillis()); } @@ -101,7 +103,7 @@ public class LogAspect if (e != null) { operLog.setStatus(BusinessStatus.FAIL.ordinal()); - operLog.setErrorMsg(StringUtils.substring(e.getMessage(), 0, 2000)); + operLog.setErrorMsg(StringUtils.substring(Convert.toStr(e.getMessage(), ExceptionUtil.getExceptionMessage(e)), 0, 2000)); } // 设置方法名称 String className = joinPoint.getTarget().getClass().getName(); diff --git a/ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/aspect/PreAuthorizeAspect.java b/ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/aspect/PreAuthorizeAspect.java index 7877820b4..bd5ce30d0 100644 --- a/ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/aspect/PreAuthorizeAspect.java +++ b/ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/aspect/PreAuthorizeAspect.java @@ -56,16 +56,8 @@ public class PreAuthorizeAspect // 注解鉴权 MethodSignature signature = (MethodSignature) joinPoint.getSignature(); checkMethodAnnotation(signature.getMethod()); - try - { - // 执行原有逻辑 - Object obj = joinPoint.proceed(); - return obj; - } - catch (Throwable e) - { - throw e; - } + // 执行原有逻辑 + return joinPoint.proceed(); } /** diff --git a/ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/service/TokenService.java b/ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/service/TokenService.java index 29717928b..0a63b851e 100644 --- a/ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/service/TokenService.java +++ b/ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/service/TokenService.java @@ -36,11 +36,11 @@ public class TokenService protected static final long MILLIS_MINUTE = 60 * MILLIS_SECOND; - private final static long expireTime = CacheConstants.EXPIRATION; + private final static long TOKEN_EXPIRE_TIME = CacheConstants.EXPIRATION; private final static String ACCESS_TOKEN = CacheConstants.LOGIN_TOKEN_KEY; - private final static Long MILLIS_MINUTE_TEN = CacheConstants.REFRESH_TIME * MILLIS_MINUTE; + private final static Long TOKEN_REFRESH_THRESHOLD_MINUTES = CacheConstants.REFRESH_TIME * MILLIS_MINUTE; /** * 创建令牌 @@ -65,7 +65,7 @@ public class TokenService // 接口返回信息 Map rspMap = new HashMap(); rspMap.put("access_token", JwtUtils.createToken(claimsMap)); - rspMap.put("expires_in", expireTime); + rspMap.put("expires_in", TOKEN_EXPIRE_TIME); return rspMap; } @@ -147,7 +147,7 @@ public class TokenService { long expireTime = loginUser.getExpireTime(); long currentTime = System.currentTimeMillis(); - if (expireTime - currentTime <= MILLIS_MINUTE_TEN) + if (expireTime - currentTime <= TOKEN_REFRESH_THRESHOLD_MINUTES) { refreshToken(loginUser); } @@ -161,10 +161,10 @@ public class TokenService public void refreshToken(LoginUser loginUser) { loginUser.setLoginTime(System.currentTimeMillis()); - loginUser.setExpireTime(loginUser.getLoginTime() + expireTime * MILLIS_MINUTE); + loginUser.setExpireTime(loginUser.getLoginTime() + TOKEN_EXPIRE_TIME * MILLIS_MINUTE); // 根据uuid将loginUser缓存 String userKey = getTokenKey(loginUser.getToken()); - redisService.setCacheObject(userKey, loginUser, expireTime, TimeUnit.MINUTES); + redisService.setCacheObject(userKey, loginUser, TOKEN_EXPIRE_TIME, TimeUnit.MINUTES); } private String getTokenKey(String token) diff --git a/ruoyi-common/ruoyi-common-sensitive/pom.xml b/ruoyi-common/ruoyi-common-sensitive/pom.xml index daaa4c956..bad15f8c5 100644 --- a/ruoyi-common/ruoyi-common-sensitive/pom.xml +++ b/ruoyi-common/ruoyi-common-sensitive/pom.xml @@ -17,10 +17,10 @@ - + com.ruoyi - ruoyi-common-security + ruoyi-common-core diff --git a/ruoyi-common/ruoyi-common-sensitive/src/main/java/com/ruoyi/common/sensitive/config/SensitiveJsonSerializer.java b/ruoyi-common/ruoyi-common-sensitive/src/main/java/com/ruoyi/common/sensitive/config/SensitiveJsonSerializer.java index 88bfe00b1..cbb0d7ebf 100644 --- a/ruoyi-common/ruoyi-common-sensitive/src/main/java/com/ruoyi/common/sensitive/config/SensitiveJsonSerializer.java +++ b/ruoyi-common/ruoyi-common-sensitive/src/main/java/com/ruoyi/common/sensitive/config/SensitiveJsonSerializer.java @@ -8,10 +8,10 @@ import com.fasterxml.jackson.databind.JsonMappingException; import com.fasterxml.jackson.databind.JsonSerializer; import com.fasterxml.jackson.databind.SerializerProvider; import com.fasterxml.jackson.databind.ser.ContextualSerializer; -import com.ruoyi.common.security.utils.SecurityUtils; +import com.ruoyi.common.core.constant.UserConstants; +import com.ruoyi.common.core.context.SecurityContextHolder; import com.ruoyi.common.sensitive.annotation.Sensitive; import com.ruoyi.common.sensitive.enums.DesensitizedType; -import com.ruoyi.system.api.model.LoginUser; /** * 数据脱敏序列化过滤 @@ -55,9 +55,9 @@ public class SensitiveJsonSerializer extends JsonSerializer implements C { try { - LoginUser securityUser = SecurityUtils.getLoginUser(); + Long userId = SecurityContextHolder.getUserId(); // 管理员不脱敏 - return !securityUser.getSysUser().isAdmin(); + return !UserConstants.isAdmin(userId); } catch (Exception e) { diff --git a/ruoyi-modules/ruoyi-gen/src/main/java/com/ruoyi/gen/controller/GenController.java b/ruoyi-modules/ruoyi-gen/src/main/java/com/ruoyi/gen/controller/GenController.java index 4df2e1692..fe07f59b1 100644 --- a/ruoyi-modules/ruoyi-gen/src/main/java/com/ruoyi/gen/controller/GenController.java +++ b/ruoyi-modules/ruoyi-gen/src/main/java/com/ruoyi/gen/controller/GenController.java @@ -57,7 +57,7 @@ public class GenController extends BaseController } /** - * 修改代码生成业务 + * 获取代码生成信息 */ @RequiresPermissions("tool:gen:query") @GetMapping(value = "/{tableId}") diff --git a/ruoyi-modules/ruoyi-gen/src/main/java/com/ruoyi/gen/service/GenTableServiceImpl.java b/ruoyi-modules/ruoyi-gen/src/main/java/com/ruoyi/gen/service/GenTableServiceImpl.java index 24194ccd5..6031be171 100644 --- a/ruoyi-modules/ruoyi-gen/src/main/java/com/ruoyi/gen/service/GenTableServiceImpl.java +++ b/ruoyi-modules/ruoyi-gen/src/main/java/com/ruoyi/gen/service/GenTableServiceImpl.java @@ -129,9 +129,9 @@ public class GenTableServiceImpl implements IGenTableService int row = genTableMapper.updateGenTable(genTable); if (row > 0) { - for (GenTableColumn cenTableColumn : genTable.getColumns()) + for (GenTableColumn genTableColumn : genTable.getColumns()) { - genTableColumnMapper.updateGenTableColumn(cenTableColumn); + genTableColumnMapper.updateGenTableColumn(genTableColumn); } } } @@ -414,16 +414,16 @@ public class GenTableServiceImpl implements IGenTableService { throw new ServiceException("树名称字段不能为空"); } - else if (GenConstants.TPL_SUB.equals(genTable.getTplCategory())) + } + else if (GenConstants.TPL_SUB.equals(genTable.getTplCategory())) + { + if (StringUtils.isEmpty(genTable.getSubTableName())) { - if (StringUtils.isEmpty(genTable.getSubTableName())) - { - throw new ServiceException("关联子表的表名不能为空"); - } - else if (StringUtils.isEmpty(genTable.getSubTableFkName())) - { - throw new ServiceException("子表关联的外键名不能为空"); - } + throw new ServiceException("关联子表的表名不能为空"); + } + else if (StringUtils.isEmpty(genTable.getSubTableFkName())) + { + throw new ServiceException("子表关联的外键名不能为空"); } } } diff --git a/ruoyi-modules/ruoyi-gen/src/main/resources/vm/java/domain.java.vm b/ruoyi-modules/ruoyi-gen/src/main/resources/vm/java/domain.java.vm index 3e6be024e..af7e7ab87 100644 --- a/ruoyi-modules/ruoyi-gen/src/main/resources/vm/java/domain.java.vm +++ b/ruoyi-modules/ruoyi-gen/src/main/resources/vm/java/domain.java.vm @@ -71,9 +71,9 @@ public class ${ClassName} extends ${Entity} { return $column.javaField; } + #end #end - #if($table.sub) public List<${subClassName}> get${subClassName}List() { diff --git a/ruoyi-modules/ruoyi-gen/src/main/resources/vm/vue/index-tree.vue.vm b/ruoyi-modules/ruoyi-gen/src/main/resources/vm/vue/index-tree.vue.vm index b7fdb62d7..b0233bc9a 100644 --- a/ruoyi-modules/ruoyi-gen/src/main/resources/vm/vue/index-tree.vue.vm +++ b/ruoyi-modules/ruoyi-gen/src/main/resources/vm/vue/index-tree.vue.vm @@ -75,7 +75,7 @@ icon="el-icon-plus" size="mini" @click="handleAdd" - v-hasPermi="['${moduleName}:${businessName}:add']" + v-hasPermi="['${permissionPrefix}:add']" >新增 @@ -144,21 +144,21 @@ type="text" icon="el-icon-edit" @click="handleUpdate(scope.row)" - v-hasPermi="['${moduleName}:${businessName}:edit']" + v-hasPermi="['${permissionPrefix}:edit']" >修改 新增 删除 @@ -453,7 +453,7 @@ export default { this.reset(); this.getTreeselect(); if (row != null) { - this.form.${treeParentCode} = row.${treeCode}; + this.form.${treeParentCode} = row.${treeParentCode}; } get${BusinessName}(row.${pkColumn.javaField}).then(response => { this.form = response.data; diff --git a/ruoyi-modules/ruoyi-gen/src/main/resources/vm/vue/index.vue.vm b/ruoyi-modules/ruoyi-gen/src/main/resources/vm/vue/index.vue.vm index 70ff30dd5..ce2b47a91 100644 --- a/ruoyi-modules/ruoyi-gen/src/main/resources/vm/vue/index.vue.vm +++ b/ruoyi-modules/ruoyi-gen/src/main/resources/vm/vue/index.vue.vm @@ -75,7 +75,7 @@ icon="el-icon-plus" size="mini" @click="handleAdd" - v-hasPermi="['${moduleName}:${businessName}:add']" + v-hasPermi="['${permissionPrefix}:add']" >新增 @@ -86,7 +86,7 @@ size="mini" :disabled="single" @click="handleUpdate" - v-hasPermi="['${moduleName}:${businessName}:edit']" + v-hasPermi="['${permissionPrefix}:edit']" >修改 @@ -97,7 +97,7 @@ size="mini" :disabled="multiple" @click="handleDelete" - v-hasPermi="['${moduleName}:${businessName}:remove']" + v-hasPermi="['${permissionPrefix}:remove']" >删除 @@ -107,7 +107,7 @@ icon="el-icon-download" size="mini" @click="handleExport" - v-hasPermi="['${moduleName}:${businessName}:export']" + v-hasPermi="['${permissionPrefix}:export']" >导出 @@ -158,14 +158,14 @@ type="text" icon="el-icon-edit" @click="handleUpdate(scope.row)" - v-hasPermi="['${moduleName}:${businessName}:edit']" + v-hasPermi="['${permissionPrefix}:edit']" >修改 删除 diff --git a/ruoyi-modules/ruoyi-gen/src/main/resources/vm/vue/v3/index-tree.vue.vm b/ruoyi-modules/ruoyi-gen/src/main/resources/vm/vue/v3/index-tree.vue.vm index 7bbd2fc51..cd7c5b513 100644 --- a/ruoyi-modules/ruoyi-gen/src/main/resources/vm/vue/v3/index-tree.vue.vm +++ b/ruoyi-modules/ruoyi-gen/src/main/resources/vm/vue/v3/index-tree.vue.vm @@ -73,7 +73,7 @@ plain icon="Plus" @click="handleAdd" - v-hasPermi="['${moduleName}:${businessName}:add']" + v-hasPermi="['${permissionPrefix}:add']" >新增 @@ -136,9 +136,9 @@ #end @@ -420,7 +420,7 @@ async function handleUpdate(row) { reset(); await getTreeselect(); if (row != null) { - form.value.${treeParentCode} = row.${treeCode}; + form.value.${treeParentCode} = row.${treeParentCode}; } get${BusinessName}(row.${pkColumn.javaField}).then(response => { form.value = response.data; diff --git a/ruoyi-modules/ruoyi-gen/src/main/resources/vm/vue/v3/index.vue.vm b/ruoyi-modules/ruoyi-gen/src/main/resources/vm/vue/v3/index.vue.vm index 8b25665aa..ca79b3563 100644 --- a/ruoyi-modules/ruoyi-gen/src/main/resources/vm/vue/v3/index.vue.vm +++ b/ruoyi-modules/ruoyi-gen/src/main/resources/vm/vue/v3/index.vue.vm @@ -73,7 +73,7 @@ plain icon="Plus" @click="handleAdd" - v-hasPermi="['${moduleName}:${businessName}:add']" + v-hasPermi="['${permissionPrefix}:add']" >新增 @@ -83,7 +83,7 @@ icon="Edit" :disabled="single" @click="handleUpdate" - v-hasPermi="['${moduleName}:${businessName}:edit']" + v-hasPermi="['${permissionPrefix}:edit']" >修改 @@ -93,7 +93,7 @@ icon="Delete" :disabled="multiple" @click="handleDelete" - v-hasPermi="['${moduleName}:${businessName}:remove']" + v-hasPermi="['${permissionPrefix}:remove']" >删除 @@ -102,7 +102,7 @@ plain icon="Download" @click="handleExport" - v-hasPermi="['${moduleName}:${businessName}:export']" + v-hasPermi="['${permissionPrefix}:export']" >导出 @@ -148,8 +148,8 @@ #end diff --git a/ruoyi-modules/ruoyi-job/src/main/java/com/ruoyi/job/controller/SysJobController.java b/ruoyi-modules/ruoyi-job/src/main/java/com/ruoyi/job/controller/SysJobController.java index 1f09787c0..87f277577 100644 --- a/ruoyi-modules/ruoyi-job/src/main/java/com/ruoyi/job/controller/SysJobController.java +++ b/ruoyi-modules/ruoyi-job/src/main/java/com/ruoyi/job/controller/SysJobController.java @@ -178,7 +178,7 @@ public class SysJobController extends BaseController @RequiresPermissions("monitor:job:remove") @Log(title = "定时任务", businessType = BusinessType.DELETE) @DeleteMapping("/{jobIds}") - public AjaxResult remove(@PathVariable Long[] jobIds) throws SchedulerException, TaskException + public AjaxResult remove(@PathVariable Long[] jobIds) throws SchedulerException { jobService.deleteJobByIds(jobIds); return success(); diff --git a/ruoyi-modules/ruoyi-job/src/main/java/com/ruoyi/job/util/AbstractQuartzJob.java b/ruoyi-modules/ruoyi-job/src/main/java/com/ruoyi/job/util/AbstractQuartzJob.java index 0097d1e6a..7ac500152 100644 --- a/ruoyi-modules/ruoyi-job/src/main/java/com/ruoyi/job/util/AbstractQuartzJob.java +++ b/ruoyi-modules/ruoyi-job/src/main/java/com/ruoyi/job/util/AbstractQuartzJob.java @@ -3,7 +3,6 @@ package com.ruoyi.job.util; import java.util.Date; import org.quartz.Job; import org.quartz.JobExecutionContext; -import org.quartz.JobExecutionException; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import com.ruoyi.common.core.constant.ScheduleConstants; @@ -30,7 +29,7 @@ public abstract class AbstractQuartzJob implements Job private static ThreadLocal threadLocal = new ThreadLocal<>(); @Override - public void execute(JobExecutionContext context) throws JobExecutionException + public void execute(JobExecutionContext context) { SysJob sysJob = new SysJob(); BeanUtils.copyBeanProp(sysJob, context.getMergedJobDataMap().get(ScheduleConstants.TASK_PROPERTIES)); diff --git a/ruoyi-modules/ruoyi-job/src/main/java/com/ruoyi/job/util/JobInvokeUtil.java b/ruoyi-modules/ruoyi-job/src/main/java/com/ruoyi/job/util/JobInvokeUtil.java index 9a81a35a7..f1fda6e19 100644 --- a/ruoyi-modules/ruoyi-job/src/main/java/com/ruoyi/job/util/JobInvokeUtil.java +++ b/ruoyi-modules/ruoyi-job/src/main/java/com/ruoyi/job/util/JobInvokeUtil.java @@ -105,7 +105,7 @@ public class JobInvokeUtil */ public static List getMethodParams(String invokeTarget) { - String methodStr = StringUtils.substringBetween(invokeTarget, "(", ")"); + String methodStr = StringUtils.substringBetweenLast(invokeTarget, "(", ")"); if (StringUtils.isEmpty(methodStr)) { return null; diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysMenuServiceImpl.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysMenuServiceImpl.java index 0e721b6b7..299804f4a 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysMenuServiceImpl.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysMenuServiceImpl.java @@ -365,7 +365,7 @@ public class SysMenuServiceImpl implements ISysMenuService /** * 获取路由名称,如没有配置路由名称则取路由地址 * - * @param routerName 路由名称 + * @param name 路由名称 * @param path 路由地址 * @return 路由名称(驼峰格式) */ diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysPermissionServiceImpl.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysPermissionServiceImpl.java index dc51aa8f6..5a0c0b257 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysPermissionServiceImpl.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysPermissionServiceImpl.java @@ -73,7 +73,7 @@ public class SysPermissionServiceImpl implements ISysPermissionService // 多角色设置permissions属性,以便数据权限匹配权限 for (SysRole role : roles) { - if (StringUtils.equals(role.getStatus(), UserConstants.ROLE_NORMAL)) + if (StringUtils.equals(role.getStatus(), UserConstants.ROLE_NORMAL) && !role.isAdmin()) { Set rolePerms = menuService.selectMenuPermsByRoleId(role.getRoleId()); role.setPermissions(rolePerms); diff --git a/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml b/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml index 0a1e1fa6e..a421594af 100644 --- a/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml +++ b/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml @@ -51,7 +51,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - + select u.user_id, u.dept_id, u.user_name, u.nick_name, u.email, u.avatar, u.phonenumber, u.password, u.sex, u.status, u.del_flag, u.login_ip, u.login_date, u.create_by, u.create_time, u.remark, d.dept_id, d.parent_id, d.ancestors, d.dept_name, d.order_num, d.leader, d.status as dept_status, @@ -195,7 +195,6 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" update sys_user dept_id = #{deptId}, - user_name = #{userName}, nick_name = #{nickName}, email = #{email}, phonenumber = #{phonenumber}, diff --git a/ruoyi-ui/package.json b/ruoyi-ui/package.json index ce3d36ee7..c9de4a15b 100644 --- a/ruoyi-ui/package.json +++ b/ruoyi-ui/package.json @@ -73,7 +73,6 @@ "eslint": "7.15.0", "eslint-plugin-vue": "7.2.0", "lint-staged": "10.5.3", - "runjs": "4.4.2", "sass": "1.32.13", "sass-loader": "10.1.1", "script-ext-html-webpack-plugin": "2.1.5", diff --git a/ruoyi-ui/src/assets/styles/index.scss b/ruoyi-ui/src/assets/styles/index.scss index 44c304fd3..e3e5e0b39 100644 --- a/ruoyi-ui/src/assets/styles/index.scss +++ b/ruoyi-ui/src/assets/styles/index.scss @@ -129,10 +129,6 @@ aside { position: relative; } -.pagination-container { - margin-top: 30px; -} - .text-center { text-align: center } diff --git a/ruoyi-ui/src/assets/styles/ruoyi.scss b/ruoyi-ui/src/assets/styles/ruoyi.scss index 359e8c242..5562a276c 100644 --- a/ruoyi-ui/src/assets/styles/ruoyi.scss +++ b/ruoyi-ui/src/assets/styles/ruoyi.scss @@ -117,11 +117,9 @@ /** 表格布局 **/ .pagination-container { - position: relative; - height: 32px; - margin-bottom: 10px; - margin-top: 15px; - padding: 10px 20px !important; + display: flex; + justify-content: flex-end; + margin-top: 20px; } /* tree border */ @@ -132,11 +130,6 @@ border-radius: 4px; } -.pagination-container .el-pagination { - right: 0; - position: absolute; -} - @media (max-width: 768px) { .pagination-container .el-pagination > .el-pagination__jump { display: none !important; @@ -201,8 +194,6 @@ } .card-box { - padding-right: 15px; - padding-left: 15px; margin-bottom: 10px; } diff --git a/ruoyi-ui/src/components/FileUpload/index.vue b/ruoyi-ui/src/components/FileUpload/index.vue index 7db68b51a..03c3d55b3 100644 --- a/ruoyi-ui/src/components/FileUpload/index.vue +++ b/ruoyi-ui/src/components/FileUpload/index.vue @@ -13,6 +13,7 @@ :headers="headers" class="upload-file-uploader" ref="fileUpload" + v-if="!disabled" > 选取文件 @@ -32,7 +33,7 @@ {{ getFileName(file.name) }}
- 删除 + 删除
@@ -50,22 +51,27 @@ export default { // 数量限制 limit: { type: Number, - default: 5, + default: 5 }, // 大小限制(MB) fileSize: { type: Number, - default: 5, + default: 5 }, // 文件类型, 例如['png', 'jpg', 'jpeg'] fileType: { type: Array, - default: () => ["doc", "xls", "ppt", "txt", "pdf"], + default: () => ["doc", "docx", "xls", "xlsx", "ppt", "pptx", "txt", "pdf"] }, // 是否显示提示 isShowTip: { type: Boolean, default: true + }, + // 禁用组件(仅查看文件) + disabled: { + type: Boolean, + default: false } }, data() { diff --git a/ruoyi-ui/src/components/HeaderSearch/index.vue b/ruoyi-ui/src/components/HeaderSearch/index.vue index 5dd4ca9e4..d5cbf93db 100644 --- a/ruoyi-ui/src/components/HeaderSearch/index.vue +++ b/ruoyi-ui/src/components/HeaderSearch/index.vue @@ -37,7 +37,7 @@ export default { }, computed: { routes() { - return this.$store.getters.permission_routes + return this.$store.getters.defaultRoutes } }, watch: { diff --git a/ruoyi-ui/src/components/Pagination/index.vue b/ruoyi-ui/src/components/Pagination/index.vue index 1617af004..c9470c271 100644 --- a/ruoyi-ui/src/components/Pagination/index.vue +++ b/ruoyi-ui/src/components/Pagination/index.vue @@ -106,7 +106,6 @@ export default {