热更新包维护接口

This commit is contained in:
Jack 2025-04-23 22:43:34 +08:00
parent a4aa10f1bc
commit 39e52b54fd
5 changed files with 72 additions and 27 deletions

View File

@ -62,12 +62,11 @@ public interface AdminAppMarketUpdateService {
CommonResult enableOrDisableInAdmin(Long id, Integer status);
/**
* 获取一条记录
* 获取最后一条记录
*
* @param marketId
* @param packageName
* @param versionKey
* @return
*/
AdminAppMarketUpdate getAppMarketUpdate(Integer marketId, String packageName, Integer versionKey);
AdminAppMarketUpdate getLastAppMarketUpdate(Integer marketId, String packageName);
}

View File

@ -22,12 +22,16 @@ import com.suisung.mall.common.modules.admin.AdminAppMarketUpdate;
import com.suisung.mall.common.pojo.dto.FileInfoDTO;
import com.suisung.mall.common.utils.StringUtils;
import com.suisung.mall.core.web.service.impl.BaseServiceImpl;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import static com.suisung.mall.common.utils.ContextUtil.getCurrentUser;
@Service
public class AdminAppMarketUpdateServiceImpl extends BaseServiceImpl<AdminAppMarketUpdateMapper, AdminAppMarketUpdate> implements AdminAppMarketUpdateService {
@Value("${spring.profiles.active}")
private String profile;
/**
* 获取某个市场的最新 APP 版本
*
@ -42,18 +46,32 @@ public class AdminAppMarketUpdateServiceImpl extends BaseServiceImpl<AdminAppMar
return CommonResult.failed("缺少必要参数");
}
AdminAppMarketUpdate adminAppMarketUpdate = getAppMarketUpdate(marketId, packageName, currVersionKey);
AdminAppMarketUpdate adminAppMarketUpdate = getLastAppMarketUpdate(marketId, packageName);
if (adminAppMarketUpdate == null) {
return CommonResult.failed("当前已是最新版本");
return CommonResult.success(null, "当前已是最新版本");
}
if (!ObjectUtil.isEmpty(currVersionKey) && adminAppMarketUpdate.getVersion_key() <= currVersionKey) {
return CommonResult.failed("当前已是最新版本");
if (ObjectUtil.isNotEmpty(currVersionKey) && adminAppMarketUpdate.getVersion_key() <= currVersionKey) {
return CommonResult.success(null, "当前已是最新版本");
}
// 更新包后缀处理
if (StrUtil.isNotBlank(adminAppMarketUpdate.getDownload_url()) && StrUtil.isBlank(adminAppMarketUpdate.getFile_ext())) {
adminAppMarketUpdate.setFile_ext(StringUtils.getFileExt(adminAppMarketUpdate.getDownload_url()));
if (StrUtil.isNotBlank(adminAppMarketUpdate.getDownload_apk_url()) && StrUtil.isBlank(adminAppMarketUpdate.getFile_ext())) {
adminAppMarketUpdate.setFile_ext(StringUtils.getFileExt(adminAppMarketUpdate.getDownload_apk_url()));
}
// 解决跨域问题更换包的域名https://media-mall-prod-1259811287.cos.ap-guangzhou.myqcloud.com/ https://static.gpxscs.cn/
if ("prod".equals(profile) && StrUtil.isNotBlank(adminAppMarketUpdate.getDownload_apk_url())) {
String downloadUrl = adminAppMarketUpdate.getDownload_apk_url();
downloadUrl = downloadUrl.replace("https://media-mall-prod-1259811287.cos.ap-guangzhou.myqcloud.com/", "https://static.gpxscs.cn/");
adminAppMarketUpdate.setDownload_apk_url(downloadUrl);
}
// 解决跨域问题更换包的域名https://media-mall-prod-1259811287.cos.ap-guangzhou.myqcloud.com/ https://static.gpxscs.cn/
if ("prod".equals(profile) && StrUtil.isNotBlank(adminAppMarketUpdate.getDownload_wgt_url())) {
String downloadWgtUrl = adminAppMarketUpdate.getDownload_wgt_url();
downloadWgtUrl = downloadWgtUrl.replace("https://media-mall-prod-1259811287.cos.ap-guangzhou.myqcloud.com/", "https://static.gpxscs.cn/");
adminAppMarketUpdate.setDownload_wgt_url(downloadWgtUrl);
}
return CommonResult.success(adminAppMarketUpdate);
@ -112,16 +130,29 @@ public class AdminAppMarketUpdateServiceImpl extends BaseServiceImpl<AdminAppMar
if (ObjectUtil.isEmpty(adminAppMarketUpdate.getMarket_id()) || ObjectUtil.isEmpty(adminAppMarketUpdate.getPackage_name())
|| ObjectUtil.isEmpty(adminAppMarketUpdate.getVersion_key()) || ObjectUtil.isEmpty(adminAppMarketUpdate.getVersion_name())
|| ObjectUtil.isEmpty(adminAppMarketUpdate.getDownload_url())) {
|| ObjectUtil.isEmpty(adminAppMarketUpdate.getDownload_apk_url())) {
return CommonResult.failed("缺少关键参数");
}
AdminAppMarketUpdate record = getAppMarketUpdate(adminAppMarketUpdate.getMarket_id(), adminAppMarketUpdate.getPackage_name(), adminAppMarketUpdate.getVersion_key());
if (record != null) {
AdminAppMarketUpdate record = getLastAppMarketUpdate(adminAppMarketUpdate.getMarket_id(), adminAppMarketUpdate.getPackage_name());
if (record != null && ObjectUtil.isNotEmpty(adminAppMarketUpdate.getVersion_key()) && record.getVersion_key().equals(adminAppMarketUpdate.getVersion_key())) {
return CommonResult.failed("当前版本升级包已存在");
}
FileInfoDTO fileInfoDTO = StringUtils.getFileInfoFromUrl(adminAppMarketUpdate.getDownload_url());
if ("prod".equals(profile) && StrUtil.isNotBlank(adminAppMarketUpdate.getDownload_apk_url())) {
String downloadUrl = adminAppMarketUpdate.getDownload_apk_url();
downloadUrl = downloadUrl.replace("https://media-mall-prod-1259811287.cos.ap-guangzhou.myqcloud.com/", "https://static.gpxscs.cn/");
adminAppMarketUpdate.setDownload_apk_url(downloadUrl);
}
// 解决跨域问题更换包的域名https://media-mall-prod-1259811287.cos.ap-guangzhou.myqcloud.com/ https://static.gpxscs.cn/
if ("prod".equals(profile) && StrUtil.isNotBlank(adminAppMarketUpdate.getDownload_wgt_url())) {
String downloadWgtUrl = adminAppMarketUpdate.getDownload_wgt_url();
downloadWgtUrl = downloadWgtUrl.replace("https://media-mall-prod-1259811287.cos.ap-guangzhou.myqcloud.com/", "https://static.gpxscs.cn/");
adminAppMarketUpdate.setDownload_wgt_url(downloadWgtUrl);
}
FileInfoDTO fileInfoDTO = StringUtils.getFileInfoFromUrl(adminAppMarketUpdate.getDownload_apk_url());
if (fileInfoDTO != null) {
adminAppMarketUpdate.setPackage_size(fileInfoDTO.getFileSize());
adminAppMarketUpdate.setFile_ext(fileInfoDTO.getFileExtension());
@ -161,7 +192,20 @@ public class AdminAppMarketUpdateServiceImpl extends BaseServiceImpl<AdminAppMar
return CommonResult.failed("参数格式有误");
}
FileInfoDTO fileInfoDTO = StringUtils.getFileInfoFromUrl(adminAppMarketUpdate.getDownload_url());
if ("prod".equals(profile) && StrUtil.isNotBlank(adminAppMarketUpdate.getDownload_apk_url())) {
String downloadUrl = adminAppMarketUpdate.getDownload_apk_url();
downloadUrl = downloadUrl.replace("https://media-mall-prod-1259811287.cos.ap-guangzhou.myqcloud.com/", "https://static.gpxscs.cn/");
adminAppMarketUpdate.setDownload_apk_url(downloadUrl);
}
// 解决跨域问题更换包的域名https://media-mall-prod-1259811287.cos.ap-guangzhou.myqcloud.com/ https://static.gpxscs.cn/
if ("prod".equals(profile) && StrUtil.isNotBlank(adminAppMarketUpdate.getDownload_wgt_url())) {
String downloadWgtUrl = adminAppMarketUpdate.getDownload_wgt_url();
downloadWgtUrl = downloadWgtUrl.replace("https://media-mall-prod-1259811287.cos.ap-guangzhou.myqcloud.com/", "https://static.gpxscs.cn/");
adminAppMarketUpdate.setDownload_wgt_url(downloadWgtUrl);
}
FileInfoDTO fileInfoDTO = StringUtils.getFileInfoFromUrl(adminAppMarketUpdate.getDownload_apk_url());
if (fileInfoDTO != null) {
adminAppMarketUpdate.setPackage_size(fileInfoDTO.getFileSize());
adminAppMarketUpdate.setFile_ext(fileInfoDTO.getFileExtension());
@ -204,18 +248,17 @@ public class AdminAppMarketUpdateServiceImpl extends BaseServiceImpl<AdminAppMar
*
* @param marketId
* @param packageName
* @param versionKey
* @return
*/
@Override
public AdminAppMarketUpdate getAppMarketUpdate(Integer marketId, String packageName, Integer versionKey) {
if (ObjectUtil.isEmpty(marketId) || ObjectUtil.isEmpty(packageName) || ObjectUtil.isEmpty(versionKey)) {
public AdminAppMarketUpdate getLastAppMarketUpdate(Integer marketId, String packageName) {
if (ObjectUtil.isEmpty(marketId) || StrUtil.isBlank(packageName)) {
return null;
}
QueryWrapper<AdminAppMarketUpdate> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("market_id", marketId).eq("package_name", packageName)
.eq("version_key", versionKey);
queryWrapper.eq("market_id", marketId)
.eq("package_name", packageName).orderByDesc("version_key");
return findOne(queryWrapper);
}

View File

@ -43,8 +43,11 @@ public class AdminAppMarketUpdate implements Serializable {
@ApiModelProperty(value = "热更新包显示的版本号,用于标识不同的热更新版本,遵循一定命名规则,如 1.23.21")
private String version_name;
@ApiModelProperty(value = "热更新包的下载链接,用户可通过此链接下载更新包完成应用更新")
private String download_url;
@ApiModelProperty(value = "apk包的下载链接用户可通过此链接下载更新包完成应用更新")
private String download_apk_url;
@ApiModelProperty(value = "增量包的下载链接,用户可通过此链接下载更新包完成应用更新")
private String download_wgt_url;
@ApiModelProperty(value = "更新包后缀apk wgt")
private String file_ext;

View File

@ -9,7 +9,7 @@
package com.suisung.mall.shop.lakala.controller;
import com.suisung.mall.common.service.impl.BaseControllerImpl;
import com.suisung.mall.shop.lakala.service.impl.CommonService;
import com.suisung.mall.shop.lakala.service.impl.LklTkService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.web.bind.annotation.RequestMapping;
@ -24,18 +24,18 @@ import javax.annotation.Resource;
public class LklTkController extends BaseControllerImpl {
@Resource
private CommonService commonService;
private LklTkService lklTkService;
@ApiOperation(value = "请求获取token商户进件", notes = "请求获取token商户进件")
@RequestMapping(value = "/token", method = RequestMethod.POST)
public String getLklTkAuthorization() {
return commonService.getLklTkAuthorization();
return lklTkService.getLklTkAuthorization();
}
@ApiOperation(value = "请求获取token商户进件", notes = "请求获取token商户进件")
@RequestMapping(value = "/token1", method = RequestMethod.POST)
public String getLklTkAuthorization1() {
return commonService.getLklTkAuthorization();
return lklTkService.getLklTkAuthorization();
}

View File

@ -36,9 +36,9 @@ import java.util.HashMap;
import java.util.Map;
@Service
public class CommonService {
public class LklTkService {
private static final Logger log = LoggerFactory.getLogger(CommonService.class);
private static final Logger log = LoggerFactory.getLogger(LklTkService.class);
@Value("${lakala.tk.server_url}")
private String serverUrl;