Browse Source

1.app版本接口查询支持编号、版本号、描述搜索
2.添加开放接口获取最近的版本

yuanliang 1 year ago
parent
commit
634f25f7c5

+ 51 - 0
mec-application/src/main/java/com/ym/mec/web/controller/open/OpenAppVersionInfoController.java

@@ -0,0 +1,51 @@
+package com.ym.mec.web.controller.open;
+
+
+import com.microsvc.toolkit.common.response.template.R;
+import com.ym.mec.biz.dal.entity.AppVersionInfo;
+import com.ym.mec.biz.service.AppVersionInfoService;
+import com.ym.mec.common.exception.BizException;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiImplicitParams;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.List;
+import java.util.Optional;
+
+@Slf4j
+@Validated
+@RestController
+@RequestMapping("/open/appVersionInfo")
+@Api(tags = "app版本信息管理")
+public class OpenAppVersionInfoController {
+
+    @Autowired
+    private AppVersionInfoService appVersionInfoService;
+
+    @ApiOperation("根据app客户端查询最近的app版本")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "platform", value = "平台名称", required = true, dataType = "String", paramType =
+                    "path"),
+            @ApiImplicitParam(name = "status", value = "状态", required = true, dataType = "String",
+                    paramType = "newest/history")
+    })
+    @GetMapping(value = "/queryLatestByPlatform")
+    public R<AppVersionInfo> queryLatestByPlatform(String platform, String status) {
+        String appStatus = Optional.ofNullable(status).orElse("newest");
+        if ("history".equals(appStatus)) {
+            appStatus = "newest,history";
+        }
+        List<AppVersionInfo> list = appVersionInfoService.queryLatestByPlatform(platform, appStatus);
+        if (list.size() > 0) {
+            return R.from(list.get(0));
+        }
+        throw new BizException("未找到数据");
+    }
+}

+ 4 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/AppVersionInfoDao.java

@@ -4,6 +4,7 @@ import java.util.List;
 
 import com.ym.mec.biz.dal.entity.AppVersionInfo;
 import com.ym.mec.common.dal.BaseDAO;
+import org.apache.ibatis.annotations.Param;
 
 public interface AppVersionInfoDao extends BaseDAO<Integer, AppVersionInfo> {
 
@@ -14,4 +15,7 @@ public interface AppVersionInfoDao extends BaseDAO<Integer, AppVersionInfo> {
 	 * @param platform
 	 */
 	void batchUpdateStatus(String platform);
+
+	List<AppVersionInfo> queryLatestByPlatform(@Param("platform") String platform, @Param("status") String status);
+
 }

+ 2 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/AppVersionInfoService.java

@@ -12,4 +12,6 @@ public interface AppVersionInfoService extends BaseService<Integer, AppVersionIn
 	void add(AppVersionInfo appVersionInfo);
 
 	void updateVersion(AppVersionInfo appVersionInfo);
+
+    List<AppVersionInfo> queryLatestByPlatform(String platform, String appStatus);
 }

+ 6 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/impl/AppVersionInfoServiceImpl.java

@@ -56,4 +56,10 @@ public class AppVersionInfoServiceImpl extends BaseServiceImpl<Integer, AppVersi
 		appVersionInfoDao.update(appVersionInfo);
 	}
 
+    @Override
+    public List<AppVersionInfo> queryLatestByPlatform(String platform, String appStatus) {
+		return appVersionInfoDao.queryLatestByPlatform(platform, appStatus);
+
+	}
+
 }

+ 14 - 2
mec-biz/src/main/resources/config/mybatis/AppVersionInfoMapper.xml

@@ -92,10 +92,13 @@
 		SELECT * FROM app_version_info
 		<where>
 			<if test="search != null and search != ''">
-				platform_ LIKE CONCAT('%',#{search},'%')
+				and (id_ like concat('%',#{search},'%') or
+				version_ like concat('%',#{search},'%') or
+				description_ like concat('%',#{search},'%')
+				)
 			</if>
 		</where>
-		ORDER BY status_ DESC
+		order by version_ desc ,status_='newest' desc , id_ desc
 		<include refid="global.limit" />
 	</select>
 
@@ -108,4 +111,13 @@
 			</if>
 		</where>
 	</select>
+
+	<select id="queryLatestByPlatform" resultMap="AppVersionInfo">
+		SELECT *
+		FROM app_version_info
+		WHERE platform_ = #{platform}
+		  and find_in_set(status_, #{status})
+		order by version_ desc, status_='newest' desc, id_ desc
+		limit 1
+	</select>
 </mapper>