Kaynağa Gözat

3.4.4 update-20250314,自测bug修复

xiaofei 3 ay önce
ebeveyn
işleme
039e8c9a2a

+ 12 - 0
distributed-print-business/src/main/java/com/qmth/distributed/print/business/entity/TBVersion.java

@@ -3,10 +3,14 @@ package com.qmth.distributed.print.business.entity;
 import com.qmth.teachcloud.common.base.BaseEntity;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
+import org.apache.commons.lang3.StringUtils;
 import org.hibernate.validator.constraints.Length;
 
 import javax.validation.constraints.NotNull;
 import java.io.Serializable;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
 
 /**
  * <p>
@@ -31,6 +35,14 @@ public class TBVersion extends BaseEntity implements Serializable {
     @Length(min = 1, max = 100, message = "不能超过100字符")
     private String clientVersion;
 
+    public List<String> listSoftVersion() {
+        List<String> list = new ArrayList<>();
+        if (StringUtils.isNotBlank(this.softVersion)) {
+            list = Arrays.asList(this.softVersion.split(","));
+        }
+        return list;
+    }
+
     public String getSoftVersion() {
         return softVersion;
     }

+ 8 - 0
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/TBVersionService.java

@@ -16,6 +16,8 @@ import java.util.Map;
  */
 public interface TBVersionService extends IService<TBVersion> {
 
+    TBVersion getByClientVersion(String version);
+
     /**
      * 版本管理分页列表
      *
@@ -23,4 +25,10 @@ public interface TBVersionService extends IService<TBVersion> {
      * @return
      */
     public IPage<TBVersion> versionList(IPage<Map> iPage);
+
+    /**
+     * 验证客户端版本号是否对应
+     * @param version
+     */
+    void validVersion(String version);
 }

+ 0 - 8
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/ExamTaskServiceImpl.java

@@ -1593,14 +1593,6 @@ public class ExamTaskServiceImpl extends ServiceImpl<ExamTaskMapper, ExamTask> i
         }
         String teachingRoomName = teachingRoom.getName();
 
-        // 查询教研室所在学院
-        List<SysOrg> orgList = sysOrgService.findParentsByOrgId(teachingRoom.getId());
-        List<SysOrg> schoolOrgList = orgList.stream().filter(e -> OrgTypeEnum.SCHOOL.equals(e.getType())).collect(Collectors.toList());
-        if (schoolOrgList.size() != 1) {
-            throw ExceptionResultEnum.ERROR.exception("学校级机构信息异常");
-        }
-        SysOrg schoolOrg = schoolOrgList.get(0);
-
         // 流程id
         Long flowId = examTask.getFlowId();
 

+ 24 - 0
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/TBVersionServiceImpl.java

@@ -1,10 +1,16 @@
 package com.qmth.distributed.print.business.service.impl;
 
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.qmth.distributed.print.business.entity.TBVersion;
 import com.qmth.distributed.print.business.mapper.TBVersionMapper;
+import com.qmth.distributed.print.business.service.ClientUpgradeService;
 import com.qmth.distributed.print.business.service.TBVersionService;
+import com.qmth.teachcloud.common.contant.SystemConstant;
+import com.qmth.teachcloud.common.entity.SysConfig;
+import com.qmth.teachcloud.common.enums.ExceptionResultEnum;
+import org.apache.commons.lang3.StringUtils;
 import org.springframework.stereotype.Service;
 
 import java.util.Map;
@@ -20,6 +26,13 @@ import java.util.Map;
 @Service
 public class TBVersionServiceImpl extends ServiceImpl<TBVersionMapper, TBVersion> implements TBVersionService {
 
+    @Override
+    public TBVersion getByClientVersion(String version) {
+        QueryWrapper<TBVersion> queryWrapper = new QueryWrapper<>();
+        queryWrapper.lambda().eq(TBVersion::getClientVersion, version);
+        return this.getOne(queryWrapper);
+    }
+
     /**
      * 版本管理分页列表
      *
@@ -30,4 +43,15 @@ public class TBVersionServiceImpl extends ServiceImpl<TBVersionMapper, TBVersion
     public IPage<TBVersion> versionList(IPage<Map> iPage) {
         return this.baseMapper.versionList(iPage);
     }
+
+    @Override
+    public void validVersion(String version) {
+        TBVersion tbVersion = this.getByClientVersion(version);
+        if (tbVersion == null) {
+            throw ExceptionResultEnum.ERROR.exception("未设置服务器版本号,请联系管理员处理");
+        }
+        if (!StringUtils.equalsAny(SystemConstant.VERSION_VALUE, tbVersion.listSoftVersion().toArray(new String[0]))) {
+            throw ExceptionResultEnum.ERROR.exception("客户端版本号[" + version + "],无法使用当前服务端,请联系管理员处理");
+        }
+    }
 }

+ 6 - 6
distributed-print-business/src/main/resources/mapper/BasicExamStudentMapper.xml

@@ -200,13 +200,13 @@
         FROM
             sys_user su
         WHERE
-                su.id IN (SELECT
-                              bes.teacher_id
+                exists (SELECT
+                              1
                           FROM
-                              basic_exam_student bes
+                              exam_task et
                           WHERE
-                              bes.exam_id = #{examId}
-                            AND bes.paper_number = #{paperNumber}
-                            AND bes.teacher_id IS NOT NULL)
+                              et.exam_id = #{examId}
+                            AND et.paper_number = #{paperNumber}
+                            AND su.id = et.user_id)
     </select>
 </mapper>

+ 1 - 0
distributed-print-business/src/main/resources/mapper/ClientMapper.xml

@@ -78,6 +78,7 @@
     </select>
     <select id="listClientPrintTask" resultType="com.qmth.distributed.print.business.bean.dto.ClientPrintTaskDto">
         SELECT
+            a.exam_id examId,
         b.id examDetailId,
         b.package_code packageCode,
         a.id printPlanId,

+ 8 - 5
distributed-print/src/main/java/com/qmth/distributed/print/api/client/ScanController.java

@@ -9,6 +9,8 @@ import com.qmth.distributed.print.business.bean.dto.StudentNumberConfigDto;
 import com.qmth.distributed.print.business.bean.dto.StudentNumberLetterRelationShipDto;
 import com.qmth.distributed.print.business.bean.params.ClientLoginParam;
 import com.qmth.distributed.print.business.service.ClientService;
+import com.qmth.distributed.print.business.service.ClientUpgradeService;
+import com.qmth.distributed.print.business.service.TBVersionService;
 import com.qmth.teachcloud.common.bean.auth.ExpireTimeBean;
 import com.qmth.teachcloud.common.bean.result.LoginClientResult;
 import com.qmth.teachcloud.common.bean.result.LoginResult;
@@ -29,10 +31,8 @@ import com.qmth.teachcloud.mark.bean.sys.ApiStatusVo;
 import io.swagger.annotations.*;
 import org.apache.commons.collections4.CollectionUtils;
 import org.springframework.validation.BindingResult;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
 
 import javax.annotation.Resource;
 import javax.servlet.http.HttpServletRequest;
@@ -59,6 +59,8 @@ public class ScanController {
 
     @Resource
     private TeachcloudCommonService teachcloudCommonService;
+    @Resource
+    private TBVersionService tbVersionService;
 
     @Resource
     private CommonCacheService commonCacheService;
@@ -124,9 +126,10 @@ public class ScanController {
     @Aac(auth = false)
     @ApiOperation(value = "服务端状态")
     @PostMapping("server/status")
-    public Result status(HttpServletRequest request) {
+    public Result status(@ApiParam(value = "客户端版本号", required = true) @RequestParam(value = "version", required = false) String version) {
         ApiStatusVo vo = new ApiStatusVo();
         //        vo.setFileUriPrefix(fileUriPrefix);
+        tbVersionService.validVersion(version);
         vo.setVersion(SystemConstant.VERSION_VALUE);
         vo.setTime(System.currentTimeMillis());
         return ResultUtil.ok(vo);