From c983a0a398504697a777ffae48e59961b5ee2bd7 Mon Sep 17 00:00:00 2001
From: liujie <1793218484@qq.com>
Date: 星期二, 13 十月 2026 15:07:12 +0800
Subject: [PATCH] 系统管理模块 用户管理模块
---
hugray-server/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysRoleServiceImpl.java | 28 ++++++++++++++++++++++++++++
1 files changed, 28 insertions(+), 0 deletions(-)
diff --git a/hugray-server/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysRoleServiceImpl.java b/hugray-server/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysRoleServiceImpl.java
index 4501c90..68b161a 100644
--- a/hugray-server/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysRoleServiceImpl.java
+++ b/hugray-server/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysRoleServiceImpl.java
@@ -233,6 +233,34 @@
@Transactional(rollbackFor = Exception.class)
public int insertRole(SysRole role)
{
+ // 角色表单只收「角色名称 + 备注 + 菜单权限」,下面这几项都不由界面提供。
+ // 它们在 sys_role 里都是 NOT NULL 且无默认值的列,而 insertRole 的 <if> 守卫会直接跳过空值列
+ // —— 库里拿不到值就会报 1364 Field doesn't have a default value,
+ // 所以「后端给默认值」不是可选项,是插入能成功的前提。
+ if (StringUtils.isEmpty(role.getRoleKey()))
+ {
+ // 界面已不展示「权限字符」,它的唯一用途是给鉴权链路一个稳定的角色标识。
+ // 用毫秒时间戳:插入时即定,不需要插入后按自增主键回填。
+ role.setRoleKey("role_" + System.currentTimeMillis());
+ }
+ if (role.getRoleSort() == null)
+ {
+ // 列表是按 role_sort 排的,界面又不给排序输入框,就把新角色排到末尾
+ role.setRoleSort(roleMapper.selectMaxRoleSort() + 1);
+ }
+ if (StringUtils.isEmpty(role.getStatus()))
+ {
+ role.setStatus(UserConstants.ROLE_NORMAL);
+ }
+ if (StringUtils.isEmpty(role.getDataScope()))
+ {
+ // 界面没有数据权限配置,默认「全部数据权限」,与建表默认值一致
+ role.setDataScope("1");
+ }
+ // 这两列是 primitive boolean,MyBatis 的 <if test="... != null"> 恒真,
+ // 会把 false(0) 写进去、覆盖掉建表的 DEFAULT '1';显式设回 true,与既有角色行保持一致
+ role.setMenuCheckStrictly(true);
+ role.setDeptCheckStrictly(true);
// 新增角色信息
roleMapper.insertRole(role);
return insertRoleMenu(role);
--
Gitblit v1.7.1