From a8a6760635f0642a2cbf61854b5587d9d0944985 Mon Sep 17 00:00:00 2001
From: heheng <475597332@qq.com>
Date: 星期五, 11 七月 2025 17:20:36 +0800
Subject: [PATCH] 新功能加问题修复

---
 multi-system/src/main/java/com/gkhy/exam/system/service/impl/SysClauseManagementServiceImpl.java |   24 ++++++++++++++++--------
 1 files changed, 16 insertions(+), 8 deletions(-)

diff --git a/multi-system/src/main/java/com/gkhy/exam/system/service/impl/SysClauseManagementServiceImpl.java b/multi-system/src/main/java/com/gkhy/exam/system/service/impl/SysClauseManagementServiceImpl.java
index 1de4082..a9811d1 100644
--- a/multi-system/src/main/java/com/gkhy/exam/system/service/impl/SysClauseManagementServiceImpl.java
+++ b/multi-system/src/main/java/com/gkhy/exam/system/service/impl/SysClauseManagementServiceImpl.java
@@ -1,8 +1,11 @@
 package com.gkhy.exam.system.service.impl;
 
+import cn.hutool.core.util.ObjectUtil;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.gkhy.exam.common.exception.ApiException;
+import com.gkhy.exam.common.utils.NaturalOrderComparator;
 import com.gkhy.exam.common.utils.SecurityUtils;
 import com.gkhy.exam.system.domain.SysClauseManagement;
 import com.gkhy.exam.system.mapper.SysClauseManagementMapper;
@@ -11,7 +14,7 @@
 import org.springframework.stereotype.Service;
 
 import java.time.LocalDateTime;
-import java.util.Collections;
+import java.util.Comparator;
 import java.util.List;
 
 @Service
@@ -23,19 +26,24 @@
     public List<SysClauseManagement> getSysClauseManagements() {
         LambdaQueryWrapper<SysClauseManagement> lambdaQueryWrapper = Wrappers.<SysClauseManagement>lambdaQuery()
                 .eq(SysClauseManagement::getDelFlag, "0").orderByAsc(SysClauseManagement::getClauseNum);
-        return baseMapper.selectList(lambdaQueryWrapper);
+        List<SysClauseManagement> sysClauseManagements = baseMapper.selectList(lambdaQueryWrapper);
+        if (ObjectUtil.isNotEmpty(sysClauseManagements)){
+            sysClauseManagements.sort(Comparator.comparing(SysClauseManagement::getClauseNum, new NaturalOrderComparator()));
+        }
+
+        return sysClauseManagements;
     }
 
     @Override
     public int saveSysClauseManagement(SysClauseManagement sysClauseManagement) {
-        if (!SecurityUtils.isAdmin(SecurityUtils.getUserId())){
-            throw new RuntimeException("没有权限访问!");
+        if (!SecurityUtils.adminUser()){
+            throw new ApiException("没有权限访问!");
         }
         LambdaQueryWrapper<SysClauseManagement> lambdaQueryWrapper = Wrappers.<SysClauseManagement>lambdaQuery()
                 .eq(SysClauseManagement::getDelFlag, "0").eq(SysClauseManagement::getClauseNum, sysClauseManagement.getClauseNum());
         if (sysClauseManagement.getId() == null){
             if (baseMapper.selectCount(lambdaQueryWrapper) > 0){
-                throw new RuntimeException("条款编号已存在!");
+                throw new ApiException("条款编号已存在!");
             }
             sysClauseManagement.setCreateBy(SecurityUtils.getUsername());
             sysClauseManagement.setCreateTime(LocalDateTime.now());
@@ -43,7 +51,7 @@
         }else {
             lambdaQueryWrapper.ne(SysClauseManagement::getId, sysClauseManagement.getId());
             if (baseMapper.selectCount(lambdaQueryWrapper) > 0){
-                throw new RuntimeException("条款编号已存在!");
+                throw new ApiException("条款编号已存在!");
             }
             sysClauseManagement.setUpdateBy(SecurityUtils.getUsername());
             sysClauseManagement.setUpdateTime(LocalDateTime.now());
@@ -55,8 +63,8 @@
 
     @Override
     public int delSysClauseManagement(Long id) {
-        if (!SecurityUtils.isAdmin(SecurityUtils.getUserId())){
-            throw new RuntimeException("没有权限访问!");
+        if (!SecurityUtils.adminUser()){
+            throw new ApiException("没有权限访问!");
         }
         //todo 校验已使用的?
         SysClauseManagement sysClauseManagement = new SysClauseManagement();

--
Gitblit v1.9.2