|
|
|
@ -32,10 +32,10 @@ public class CustomerServiceRoleService { |
|
|
|
* @param includeDisabled true=包含已停用角色(管理页用);false=仅启用角色(对话页用) |
|
|
|
*/ |
|
|
|
public List<Map<String, Object>> listRoles(boolean includeDisabled) { |
|
|
|
String roleSql = "SELECT id::text AS id, role_key, name, description, prompt, sort_order, enabled, allowed_mcp_tools " |
|
|
|
String roleSql = "SELECT id::text AS id, role_key, name, description, prompt, enabled, allowed_mcp_tools " |
|
|
|
+ "FROM customer_service_role WHERE is_delete = false " |
|
|
|
+ (includeDisabled ? "" : "AND enabled = true ") |
|
|
|
+ "ORDER BY sort_order ASC, id ASC"; |
|
|
|
+ "ORDER BY id ASC"; |
|
|
|
List<Map<String, Object>> roles = jdbcTemplate.queryForList(roleSql); |
|
|
|
|
|
|
|
String categorySql = """ |
|
|
|
@ -94,7 +94,7 @@ public class CustomerServiceRoleService { |
|
|
|
* 新增角色。role_key 缺省时自动生成。 |
|
|
|
*/ |
|
|
|
@Transactional(rollbackFor = Exception.class) |
|
|
|
public void createRole(String roleKey, String name, String description, String prompt, Integer sortOrder, Boolean enabled) { |
|
|
|
public void createRole(String roleKey, String name, String description, String prompt, Boolean enabled) { |
|
|
|
if (name == null || name.trim().isEmpty()) { |
|
|
|
throw new IllegalArgumentException("角色名称不能为空"); |
|
|
|
} |
|
|
|
@ -102,11 +102,10 @@ public class CustomerServiceRoleService { |
|
|
|
? "role_" + System.currentTimeMillis() |
|
|
|
: roleKey.trim(); |
|
|
|
jdbcTemplate.update(""" |
|
|
|
INSERT INTO customer_service_role (role_key, name, description, prompt, sort_order, enabled) |
|
|
|
VALUES (?, ?, ?, ?, ?, ?) |
|
|
|
INSERT INTO customer_service_role (role_key, name, description, prompt, enabled) |
|
|
|
VALUES (?, ?, ?, ?, ?) |
|
|
|
""", |
|
|
|
key, name.trim(), description, prompt, |
|
|
|
sortOrder != null ? sortOrder : 0, |
|
|
|
enabled != null ? enabled : true); |
|
|
|
} |
|
|
|
|
|
|
|
@ -114,7 +113,7 @@ public class CustomerServiceRoleService { |
|
|
|
* 编辑角色基本信息(不含知识库分类,分类走 {@link #updateRoleCategories})。 |
|
|
|
*/ |
|
|
|
@Transactional(rollbackFor = Exception.class) |
|
|
|
public void updateRole(Long roleId, String name, String description, String prompt, Integer sortOrder, Boolean enabled) { |
|
|
|
public void updateRole(Long roleId, String name, String description, String prompt, Boolean enabled) { |
|
|
|
if (roleId == null || roleId <= 0) { |
|
|
|
throw new IllegalArgumentException("角色ID无效"); |
|
|
|
} |
|
|
|
@ -123,11 +122,10 @@ public class CustomerServiceRoleService { |
|
|
|
} |
|
|
|
jdbcTemplate.update(""" |
|
|
|
UPDATE customer_service_role |
|
|
|
SET name = ?, description = ?, prompt = ?, sort_order = ?, enabled = ?, update_time = CURRENT_TIMESTAMP |
|
|
|
SET name = ?, description = ?, prompt = ?, enabled = ?, update_time = CURRENT_TIMESTAMP |
|
|
|
WHERE id = ? AND is_delete = false |
|
|
|
""", |
|
|
|
name.trim(), description, prompt, |
|
|
|
sortOrder != null ? sortOrder : 0, |
|
|
|
enabled != null ? enabled : true, |
|
|
|
roleId); |
|
|
|
} |
|
|
|
|