Эх сурвалжийг харах

新增客户端和移动端版本号从数据库下载

wangliang 4 жил өмнө
parent
commit
d2cc70b266

+ 32 - 24
themis-business/src/main/java/com/qmth/themis/business/bean/exam/OrgInfoBean.java

@@ -6,38 +6,46 @@ import io.swagger.annotations.ApiModelProperty;
 @ApiModel("机构信息")
 public class OrgInfoBean {
 
-	@ApiModelProperty("name")
-	private String name;
+    @ApiModelProperty("name")
+    private String name;
 
-	@ApiModelProperty("logo")
-	private String logo;
+    @ApiModelProperty("logo")
+    private String logo;
 
-	@ApiModelProperty("updateTime")
-	private Long updateTime;
+    @ApiModelProperty("updateTime")
+    private Long updateTime;
 
-	public String getName() {
-		return name;
-	}
+    public OrgInfoBean() {
 
-	public void setName(String name) {
-		this.name = name;
-	}
+    }
 
-	public String getLogo() {
-		return logo;
-	}
+    public OrgInfoBean(String name, String logo, Long updateTime) {
+        this.name = name;
+        this.logo = logo;
+        this.updateTime = updateTime;
+    }
 
-	public void setLogo(String logo) {
-		this.logo = logo;
-	}
+    public String getName() {
+        return name;
+    }
 
-	public Long getUpdateTime() {
-		return updateTime;
-	}
+    public void setName(String name) {
+        this.name = name;
+    }
 
-	public void setUpdateTime(Long updateTime) {
-		this.updateTime = updateTime;
-	}
+    public String getLogo() {
+        return logo;
+    }
 
+    public void setLogo(String logo) {
+        this.logo = logo;
+    }
 
+    public Long getUpdateTime() {
+        return updateTime;
+    }
+
+    public void setUpdateTime(Long updateTime) {
+        this.updateTime = updateTime;
+    }
 }

+ 33 - 25
themis-business/src/main/java/com/qmth/themis/business/bean/exam/VersionBean.java

@@ -6,38 +6,46 @@ import io.swagger.annotations.ApiModelProperty;
 @ApiModel("版本信息")
 public class VersionBean {
 
-	@ApiModelProperty("name")
-	private String name;
+    @ApiModelProperty("name")
+    private String name;
 
-	@ApiModelProperty("value")
-	private Integer value;
+    @ApiModelProperty("value")
+    private Integer value;
 
-	@ApiModelProperty("url")
-	private String url;
+    @ApiModelProperty("url")
+    private String url;
 
-	public String getName() {
-		return name;
-	}
+    public VersionBean() {
 
-	public void setName(String name) {
-		this.name = name;
-	}
+    }
 
-	public Integer getValue() {
-		return value;
-	}
+    public VersionBean(String name, Integer value, String url) {
+        this.name = name;
+        this.value = value;
+        this.url = url;
+    }
 
-	public void setValue(Integer value) {
-		this.value = value;
-	}
+    public String getName() {
+        return name;
+    }
 
-	public String getUrl() {
-		return url;
-	}
+    public void setName(String name) {
+        this.name = name;
+    }
 
-	public void setUrl(String url) {
-		this.url = url;
-	}
+    public Integer getValue() {
+        return value;
+    }
 
-	
+    public void setValue(Integer value) {
+        this.value = value;
+    }
+
+    public String getUrl() {
+        return url;
+    }
+
+    public void setUrl(String url) {
+        this.url = url;
+    }
 }

+ 12 - 0
themis-business/src/main/java/com/qmth/themis/business/bean/mobile/MobileAuthorizationBean.java

@@ -2,6 +2,7 @@ package com.qmth.themis.business.bean.mobile;
 
 import com.fasterxml.jackson.databind.annotation.JsonSerialize;
 import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
+import com.qmth.themis.business.bean.exam.VersionBean;
 import com.qmth.themis.business.enums.MobileModeEnum;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
@@ -24,6 +25,17 @@ public class MobileAuthorizationBean {
 
     private String accessToken;
 
+    @ApiModelProperty("version")
+    VersionBean version;
+
+    public VersionBean getVersion() {
+        return version;
+    }
+
+    public void setVersion(VersionBean version) {
+        this.version = version;
+    }
+
     public MobileModeEnum getMode() {
         return mode;
     }

+ 0 - 43
themis-business/src/main/java/com/qmth/themis/business/domain/ClientDomain.java

@@ -1,43 +0,0 @@
-package com.qmth.themis.business.domain;
-
-import java.io.Serializable;
-
-/** 
-* @Description: 客户端 config
-* @Param:  
-* @return:  
-* @Author: wangliang
-* @Date: 2020/11/4 
-*/ 
-public class ClientDomain implements Serializable {
-
-    String version;
-
-    Integer value;
-
-    String url;
-
-    public String getVersion() {
-        return version;
-    }
-
-    public void setVersion(String version) {
-        this.version = version;
-    }
-
-    public Integer getValue() {
-        return value;
-    }
-
-    public void setValue(Integer value) {
-        this.value = value;
-    }
-
-    public String getUrl() {
-        return url;
-    }
-
-    public void setUrl(String url) {
-        this.url = url;
-    }
-}

+ 12 - 5
themis-business/src/main/java/com/qmth/themis/business/service/impl/TEMobileServiceImpl.java

@@ -1,6 +1,7 @@
 package com.qmth.themis.business.service.impl;
 
 import com.qmth.themis.business.bean.exam.MobileAnswerSubmitReponseBean;
+import com.qmth.themis.business.bean.exam.VersionBean;
 import com.qmth.themis.business.bean.mobile.MobileAuthorizationBean;
 import com.qmth.themis.business.bean.mobile.MobileAuthorizationMonitorBean;
 import com.qmth.themis.business.bean.mobile.MobileAuthorizationParamBean;
@@ -15,12 +16,10 @@ import com.qmth.themis.business.constant.SystemConstant;
 import com.qmth.themis.business.dto.AuthDto;
 import com.qmth.themis.business.dto.ExpireTimeDTO;
 import com.qmth.themis.business.dto.MqDto;
+import com.qmth.themis.business.entity.TBAppVersion;
 import com.qmth.themis.business.entity.TBSession;
 import com.qmth.themis.business.enums.*;
-import com.qmth.themis.business.service.MqDtoService;
-import com.qmth.themis.business.service.TEExamService;
-import com.qmth.themis.business.service.TEExamStudentService;
-import com.qmth.themis.business.service.TEMobileService;
+import com.qmth.themis.business.service.*;
 import com.qmth.themis.business.util.*;
 import com.qmth.themis.common.enums.ExceptionResultEnum;
 import com.qmth.themis.common.enums.Platform;
@@ -54,16 +53,25 @@ public class TEMobileServiceImpl implements TEMobileService {
     @Resource
     MqUtil mqUtil;
 
+    @Resource
+    TBAppVersionService tbAppVersionService;
+
     @Override
     public MobileAuthorizationBean authorization(MobileAuthorizationParamBean param) throws NoSuchAlgorithmException {
         MobileModeEnum mode = MobileModeEnum.valueOf(param.getMode().toUpperCase());
         String code = param.getCode();
         MobileAuthorizationBean ret = null;
         Source source = null;
+        Platform platform = Platform.valueOf(ServletUtil.getRequestPlatform());
         if (MobileModeEnum.MOBILE_MONITOR.equals(mode)) {
             MobileAuthorizationMonitorBean mb = new MobileAuthorizationMonitorBean();
             ret = mb;
             source = monitorAuthorization(mode, code, mb);
+            TBAppVersion tbAppVersion = tbAppVersionService.getMaxAppVersion(platform.name());
+            if (Objects.nonNull(tbAppVersion)) {
+                VersionBean versionBean = new VersionBean(tbAppVersion.getName(), tbAppVersion.getValue(), tbAppVersion.getUrl());
+                ret.setVersion(versionBean);
+            }
         } else if (MobileModeEnum.PHOTO_UPLOAD.equals(mode) || MobileModeEnum.AUDIO_UPLOAD.equals(mode)) {
             MobileAuthorizationUploadBean ub = new MobileAuthorizationUploadBean();
             ret = ub;
@@ -81,7 +89,6 @@ public class TEMobileServiceImpl implements TEMobileService {
         if (ExamRecordStatusEnum.FINISHED.equals(sta) || ExamRecordStatusEnum.PERSISTED.equals(sta)) {
             throw new BusinessException(ExceptionResultEnum.EXAM_ALREADY_FINISHED);
         }
-        Platform platform = Platform.valueOf(ServletUtil.getRequestPlatform());
         String deviceId = ServletUtil.getRequestDeviceId();
         AuthDto authDto = (AuthDto) redisUtil.get(SystemConstant.studentOauth + es.getStudentId());
         // 生成token

+ 11 - 9
themis-exam/src/main/java/com/qmth/themis/exam/api/SysController.java

@@ -5,8 +5,10 @@ import com.qmth.themis.business.annotation.ApiJsonProperty;
 import com.qmth.themis.business.bean.exam.EnvBean;
 import com.qmth.themis.business.bean.exam.OrgInfoBean;
 import com.qmth.themis.business.bean.exam.VersionBean;
+import com.qmth.themis.business.entity.TBClientVersion;
 import com.qmth.themis.business.entity.TBOrg;
 import com.qmth.themis.business.enums.UploadFileEnum;
+import com.qmth.themis.business.service.TBClientVersionService;
 import com.qmth.themis.business.service.TBOrgService;
 import com.qmth.themis.business.util.RedisUtil;
 import com.qmth.themis.common.util.Result;
@@ -37,6 +39,9 @@ public class SysController {
     @Resource
     DictionaryConfig dictionaryConfig;
 
+    @Resource
+    TBClientVersionService tbClientVersionService;
+
     @ApiOperation(value = "获取环境接口")
     @RequestMapping(value = "/env", method = RequestMethod.POST)
     @ApiResponses({@ApiResponse(code = 200, message = "环境信息", response = Result.class)})
@@ -51,19 +56,16 @@ public class SysController {
                 org = orgService.getById(orgId);
             }
             if (Objects.nonNull(org)) {
-                OrgInfoBean orgInfo = new OrgInfoBean();
-                orgInfo.setLogo(org.getLogo());
-                orgInfo.setName(org.getName());
-                orgInfo.setUpdateTime((org.getUpdateTime() == null ? null : org.getUpdateTime()));
+                OrgInfoBean orgInfo = new OrgInfoBean(org.getLogo(), org.getName(), (org.getUpdateTime() == null ? null : org.getUpdateTime()));
                 env.setOrgInfo(orgInfo);
             }
         }
         env.setCurrentTime(System.currentTimeMillis());
-        VersionBean v = new VersionBean();
-        v.setName(dictionaryConfig.clientDomain().getVersion());
-        v.setValue(dictionaryConfig.clientDomain().getValue());
-        v.setUrl(dictionaryConfig.clientDomain().getUrl());
-        env.setVersion(v);
+        TBClientVersion tbClientVersion = tbClientVersionService.getMaxClientVersion();
+        if (Objects.nonNull(tbClientVersion)) {
+            VersionBean v = new VersionBean(tbClientVersion.getName(), tbClientVersion.getValue(), tbClientVersion.getUrl());
+            env.setVersion(v);
+        }
         boolean oss = dictionaryConfig.sysDomain().isOss();
         String url = null;
         if (oss) {

+ 0 - 11
themis-exam/src/main/java/com/qmth/themis/exam/config/DictionaryConfig.java

@@ -92,17 +92,6 @@ public class DictionaryConfig {
         return new WxappDomain();
     }
 
-    /**
-     * 客户端配置
-     *
-     * @return
-     */
-    @Bean
-    @ConfigurationProperties(prefix = "client.config", ignoreUnknownFields = false)
-    public ClientDomain clientDomain() {
-        return new ClientDomain();
-    }
-
     /**
      * mq配置
      *

+ 1 - 5
themis-exam/src/main/resources/application.properties

@@ -180,11 +180,7 @@ prefix.url.exam=api/oe
 prefix.url.mobile=api/mobile
 
 wxapp.upload.url=https://mobile.online-exam-test.cn
-
-client.config.version=1.0.0
-client.config.value=10
-client.config.url=https://qmth-test.oss-cn-shenzhen.aliyuncs.com/client/${client.config.version}/index.json
-
+        
 #\u65E0\u9700\u9274\u6743\u7684url
 no.auth.urls=/webjars/**,/druid/**,/swagger-ui.html,/doc.html,/swagger-resources/**,/v2/api-docs,/webjars/springfox-swagger-ui/**,/api/oe/student/login,/api/oe/sys/env,/file/**,/upload/**,/client/**,/base_photo/**,/frontend/**,/api/oe/exam/short_code,/api/mobile/authorization
 common.system.urls=/api/oe/student/logout,/api/oe/exam/file/upload,/api/mobile/file/upload