Browse Source

代码更新

wangliang 3 months ago
parent
commit
11d4dbc123

+ 5 - 2
distributed-print/install/mysql/upgrade/3.4.4.sql

@@ -297,10 +297,13 @@ ALTER TABLE teach_course ADD CONSTRAINT teach_course_unique UNIQUE KEY (school_i
 
 ALTER TABLE `mark_student` ADD COLUMN `teach_class_name` VARCHAR(100) NULL COMMENT '教学班' AFTER `exam_room`;
 
--- 2025-03-14
+-- 2025-03-13
 INSERT INTO sys_privilege
 (id, name, url, parent_id, `type`, `sequence`, property, related, enable, default_auth, front_display)
 VALUES(1300, '获取评卷区', '/api/admin/mark/inspected/get_mark_area', 946, 'URL', 9, 'AUTH', NULL, 1, 1, 1);
 UPDATE sys_privilege
 SET name='成绩检查', url='ScoreCheck', `type`='MENU', parent_id=486, `sequence`=4, property='AUTH', related='1300', enable=1, default_auth=0, front_display=1
-WHERE id=946;
+WHERE id=946;
+
+-- 2025-03-14
+ALTER TABLE t_b_version ADD CONSTRAINT t_b_version_unique UNIQUE KEY (client_version);

+ 26 - 8
distributed-print/src/main/java/com/qmth/distributed/print/api/TBVersionController.java

@@ -3,17 +3,21 @@ package com.qmth.distributed.print.api;
 
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.qmth.boot.api.constant.ApiConstant;
+import com.qmth.boot.api.exception.ApiException;
 import com.qmth.distributed.print.business.bean.result.EditResult;
 import com.qmth.distributed.print.business.entity.TBVersion;
 import com.qmth.distributed.print.business.service.TBVersionService;
 import com.qmth.teachcloud.common.contant.SystemConstant;
 import com.qmth.teachcloud.common.entity.SysUser;
+import com.qmth.teachcloud.common.enums.ExceptionResultEnum;
+import com.qmth.teachcloud.common.enums.FieldUniqueEnum;
 import com.qmth.teachcloud.common.util.Result;
 import com.qmth.teachcloud.common.util.ResultUtil;
 import com.qmth.teachcloud.common.util.ServletUtil;
 import io.swagger.annotations.*;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
+import org.springframework.dao.DuplicateKeyException;
 import org.springframework.validation.BindingResult;
 import org.springframework.web.bind.annotation.*;
 
@@ -55,15 +59,29 @@ public class TBVersionController {
         if (bindingResult.hasErrors()) {
             return ResultUtil.error(bindingResult.getAllErrors().get(0).getDefaultMessage());
         }
-        SysUser sysUser = (SysUser) ServletUtil.getRequestUser();
-        if (Objects.isNull(tbVersion.getId())) {
-            tbVersion.insertInfo(sysUser.getId());
-        } else {
-            TBVersion tbVersionDb = tbVersionService.getById(tbVersion.getId());
-            Objects.requireNonNull(tbVersionDb, "未找到版本信息");
-            tbVersion.updateInfo(sysUser.getId());
+        try {
+            SysUser sysUser = (SysUser) ServletUtil.getRequestUser();
+            if (Objects.isNull(tbVersion.getId())) {
+                tbVersion.insertInfo(sysUser.getId());
+            } else {
+                TBVersion tbVersionDb = tbVersionService.getById(tbVersion.getId());
+                Objects.requireNonNull(tbVersionDb, "未找到版本信息");
+                tbVersion.updateInfo(sysUser.getId());
+            }
+            tbVersionService.saveOrUpdate(tbVersion);
+        } catch (Exception e) {
+            log.error(SystemConstant.LOG_ERROR, e);
+            if (e instanceof DuplicateKeyException) {
+                String errorColumn = e.getCause().toString();
+                String columnStr = errorColumn.substring(errorColumn.lastIndexOf("key") + 3, errorColumn.length()).replaceAll("'", "");
+                throw ExceptionResultEnum.SQL_ERROR.exception("[" + FieldUniqueEnum.convertToTitle(columnStr) + "]数据不允许重复插入");
+            } else if (e instanceof ApiException) {
+                ResultUtil.error((ApiException) e, ((ApiException) e).getCode(), e.getMessage());
+            } else {
+                ResultUtil.error(e.getMessage());
+            }
         }
-        return ResultUtil.ok(tbVersionService.saveOrUpdate(tbVersion));
+        return ResultUtil.ok(true);
     }
 
     @ApiOperation(value = "版本管理编辑")

+ 3 - 1
teachcloud-common/src/main/java/com/qmth/teachcloud/common/enums/FieldUniqueEnum.java

@@ -49,7 +49,9 @@ public enum FieldUniqueEnum {
 
     obe_course_requirement_report_unique("专业达成度报告"),
 
-    teach_course_unique("任课老师课程");
+    teach_course_unique("任课老师课程"),
+
+    t_b_version_unique("客户端版本号");
 
     private String title;