Browse Source

Merge branch 'zx_online_0422' of http://git.dayaedu.com/yonge/cooleshow into test

zouxuan 11 months ago
parent
commit
3220b0e157

+ 17 - 3
cooleshow-app/src/main/java/com/yonge/cooleshow/admin/controller/AppVersionInfoController.java

@@ -9,6 +9,8 @@ import com.yonge.toolset.base.page.PageInfo;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiImplicitParam;
 import io.swagger.annotations.ApiOperation;
+import org.apache.commons.collections.CollectionUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.http.MediaType;
 import org.springframework.security.access.prepost.PreAuthorize;
@@ -37,10 +39,22 @@ public class AppVersionInfoController extends BaseController {
 	@ApiOperation("根据app客户端查询对象")
 	@ApiImplicitParam(name = "platform", value = "平台名称", required = true, dataType = "String", paramType = "path")
 	@GetMapping(value = "/queryByPlatform")
-	public HttpResponseResult<AppVersionInfo> queryByPlatform(String platform) {
+	public HttpResponseResult<AppVersionInfo> queryByPlatform(String platform,String localVersion) {
 		List<AppVersionInfo> list = appVersionInfoService.queryNewestByPlatform(platform);
-		if (list.size() > 0) {
-			return succeed(list.get(0));
+		if (CollectionUtils.isNotEmpty(list)) {
+			AppVersionInfo appVersionInfo = list.get(0);
+			//如果应用版本跨多个版本时若其中任何一个版本有强制更新,返回字段标记为强制更新
+			if(!appVersionInfo.getIsForceUpdate() && StringUtils.isNotEmpty(localVersion)){
+				//是否需要强制更新
+				AppVersionInfo forceUpdate = appVersionInfoService.checkForceUpdate(platform,localVersion);
+				if(forceUpdate != null){
+					appVersionInfo.setIsForceUpdate(true);
+				}
+			}
+			if (StringUtils.isEmpty(localVersion)) {
+				appVersionInfo.setIsForceUpdate(true);
+			}
+			return succeed(appVersionInfo);
 		}
 		return failed();
 	}

+ 19 - 1
cooleshow-auth/auth-server/pom.xml

@@ -16,7 +16,25 @@
         <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
     </properties>
     <dependencies>
-
+        <dependency>
+            <groupId>com.dayaedu.cbs.openfeign</groupId>
+            <artifactId>dayaedu-openfeign-client</artifactId>
+            <version>1.0.2</version>
+            <exclusions>
+                <exclusion>
+                    <groupId>com.alibaba.cloud</groupId>
+                    <artifactId>spring-cloud-starter-alibaba-sentinel</artifactId>
+                </exclusion>
+                <exclusion>
+                    <groupId>org.springframework.cloud</groupId>
+                    <artifactId>spring-cloud-loadbalancer</artifactId>
+                </exclusion>
+                <exclusion>
+                    <groupId>org.springframework.cloud</groupId>
+                    <artifactId>spring-cloud-starter-openfeign</artifactId>
+                </exclusion>
+            </exclusions>
+        </dependency>
         <dependency>
             <groupId>com.microsvc.toolkit.config</groupId>
             <artifactId>microsvc-config-jwt</artifactId>

+ 34 - 0
cooleshow-auth/auth-server/src/main/java/com/yonge/cooleshow/auth/web/controller/ExceptionLogController.java

@@ -0,0 +1,34 @@
+package com.yonge.cooleshow.auth.web.controller;
+
+import com.dayaedu.cbs.common.enums.EAppKey;
+import com.dayaedu.cbs.openfeign.client.SysExceptionLogFeignClientService;
+import com.dayaedu.cbs.openfeign.wrapper.courseware.SysExceptionLogVo;
+import com.yonge.cooleshow.common.controller.BaseController;
+import com.yonge.cooleshow.common.entity.HttpResponseResult;
+import org.apache.commons.collections.CollectionUtils;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.annotation.Resource;
+import java.util.List;
+
+@RestController
+public class ExceptionLogController extends BaseController {
+
+	@Resource
+	private SysExceptionLogFeignClientService sysExceptionLogFeignClientService;
+
+	@PostMapping("sysExceptionLog/save")
+	public HttpResponseResult save(@RequestBody List<SysExceptionLogVo.SysExceptionLog> sysExceptionLogVos) {
+		if(CollectionUtils.isEmpty(sysExceptionLogVos)){
+			return succeed();
+		}
+		sysExceptionLogVos.forEach(sysExceptionLogVo -> {
+			sysExceptionLogVo.setAppKey(EAppKey.KLX);
+		});
+		sysExceptionLogFeignClientService.add(sysExceptionLogVos).feignData();
+		return succeed();
+	}
+
+}

+ 4 - 4
cooleshow-common/src/main/java/com/yonge/cooleshow/common/redis/config/RedisConfig.java

@@ -17,7 +17,7 @@ import java.io.Serializable;
 @Configuration
 public class RedisConfig {
 
-	/*@Value("${spring.redis.host}")
+	@Value("${spring.redis.host}")
 	private String host;
 	
 	@Value("${spring.redis.port}")
@@ -55,9 +55,9 @@ public class RedisConfig {
 		redisTemplate.setHashValueSerializer(new JdkSerializationRedisSerializer());
 		redisTemplate.setConnectionFactory(jedisConnectionFactory);
 		return redisTemplate;
-	}*/
+	}
 
-	@Bean
+	/*@Bean
 	public RedisTemplate<String, Object> redisTemplate(RedisConnectionFactory redisConnectionFactory) {
 		// 定义redis模板
 		RedisTemplate<String, Object> redisTemplate = new RedisTemplate<>();
@@ -71,6 +71,6 @@ public class RedisConfig {
 		redisTemplate.setHashValueSerializer(new JdkSerializationRedisSerializer());
 		redisTemplate.afterPropertiesSet();
 		return redisTemplate;
-	}
+	}*/
 
 }

+ 17 - 3
cooleshow-user/user-admin/src/main/java/com/yonge/cooleshow/admin/controller/AppVersionInfoController.java

@@ -6,6 +6,8 @@ import io.swagger.annotations.ApiOperation;
 
 import java.util.List;
 
+import org.apache.commons.collections.CollectionUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.http.MediaType;
 import org.springframework.security.access.prepost.PreAuthorize;
@@ -39,10 +41,22 @@ public class AppVersionInfoController extends BaseController {
 	@ApiOperation("根据app客户端查询对象")
 	@ApiImplicitParam(name = "platform", value = "平台名称", required = true, dataType = "String", paramType = "path")
 	@GetMapping(value = "/queryByPlatform")
-	public HttpResponseResult<AppVersionInfo> queryByPlatform(String platform) {
+	public HttpResponseResult<AppVersionInfo> queryByPlatform(String platform,String localVersion) {
 		List<AppVersionInfo> list = appVersionInfoService.queryNewestByPlatform(platform);
-		if (list.size() > 0) {
-			return succeed(list.get(0));
+		if (CollectionUtils.isNotEmpty(list)) {
+			AppVersionInfo appVersionInfo = list.get(0);
+			//如果应用版本跨多个版本时若其中任何一个版本有强制更新,返回字段标记为强制更新
+			if(!appVersionInfo.getIsForceUpdate() && StringUtils.isNotEmpty(localVersion)){
+				//是否需要强制更新
+				AppVersionInfo forceUpdate = appVersionInfoService.checkForceUpdate(platform,localVersion);
+				if(forceUpdate != null){
+					appVersionInfo.setIsForceUpdate(true);
+				}
+			}
+			if (StringUtils.isEmpty(localVersion)) {
+				appVersionInfo.setIsForceUpdate(true);
+			}
+			return succeed(appVersionInfo);
 		}
 		return failed();
 	}

+ 1 - 1
cooleshow-user/user-biz/pom.xml

@@ -142,7 +142,7 @@
         <dependency>
             <groupId>com.dayaedu.cbs.openfeign</groupId>
             <artifactId>dayaedu-openfeign-client</artifactId>
-            <version>1.0.1</version>
+            <version>1.0.2</version>
             <exclusions>
                 <exclusion>
                     <groupId>com.alibaba.cloud</groupId>

+ 2 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dao/AppVersionInfoDao.java

@@ -26,4 +26,6 @@ public interface AppVersionInfoDao extends BaseDAO<Long, AppVersionInfo> {
 	AppVersionInfo selectAppVersionInfo(@Param("platform") String platform, @Param("version") String version);
 
 	List<AppVersionInfo> queryLatestByPlatform(@Param("platform") String platform, @Param("status") String status);
+
+    AppVersionInfo checkForceUpdate(@Param("platform") String platform, @Param("localVersion") String localVersion);
 }

+ 2 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/AppVersionInfoService.java

@@ -33,4 +33,6 @@ public interface AppVersionInfoService extends BaseService<Long, AppVersionInfo>
 	YesOrNoEnum getAppAuditVersion(String platform, String version);
 
     List<AppVersionInfo> queryLatestByPlatform(String platform, String appStatus);
+
+    AppVersionInfo checkForceUpdate(String platform, String localVersion);
 }

+ 5 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/AppVersionInfoServiceImpl.java

@@ -78,4 +78,9 @@ public class AppVersionInfoServiceImpl extends BaseServiceImpl<Long, AppVersionI
     public List<AppVersionInfo> queryLatestByPlatform(String platform, String appStatus) {
 		return appVersionInfoDao.queryLatestByPlatform(platform, appStatus);
 	}
+
+    @Override
+    public AppVersionInfo checkForceUpdate(String platform, String localVersion) {
+        return appVersionInfoDao.checkForceUpdate(platform, localVersion);
+    }
 }

+ 3 - 0
cooleshow-user/user-biz/src/main/resources/config/mybatis/AppVersionInfoMapper.xml

@@ -141,4 +141,7 @@
 		order by version_ desc, status_='newest' desc, id_ desc
 		limit 1
 	</select>
+    <select id="checkForceUpdate" resultMap="AppVersionInfo">
+		select * from app_version_info where version_ > #{localVersion} and platform_ = #{platform} AND is_force_update_ = 1 limit 1
+	</select>
 </mapper>