123
This commit is contained in:
@@ -2,19 +2,22 @@ package com.ruoyi.web.controller.cai.app;
|
|||||||
|
|
||||||
import com.ruoyi.cai.dto.app.query.UserReportReq;
|
import com.ruoyi.cai.dto.app.query.UserReportReq;
|
||||||
import com.ruoyi.cai.dto.app.query.push.PushErrorReq;
|
import com.ruoyi.cai.dto.app.query.push.PushErrorReq;
|
||||||
|
import com.ruoyi.cai.dto.app.vo.version.VersionSystemInfo;
|
||||||
import com.ruoyi.cai.service.ReportService;
|
import com.ruoyi.cai.service.ReportService;
|
||||||
import com.ruoyi.cai.service.UserErrorLogService;
|
import com.ruoyi.cai.service.UserErrorLogService;
|
||||||
|
import com.ruoyi.cai.service.VersionService;
|
||||||
|
import com.ruoyi.cai.util.VersionUtil;
|
||||||
import com.ruoyi.common.annotation.Log;
|
import com.ruoyi.common.annotation.Log;
|
||||||
import com.ruoyi.common.core.domain.R;
|
import com.ruoyi.common.core.domain.R;
|
||||||
import com.ruoyi.common.enums.BusinessType;
|
import com.ruoyi.common.enums.BusinessType;
|
||||||
import com.ruoyi.common.helper.LoginHelper;
|
import com.ruoyi.common.helper.LoginHelper;
|
||||||
|
import com.ruoyi.common.utils.ServletUtils;
|
||||||
import io.swagger.v3.oas.annotations.Operation;
|
import io.swagger.v3.oas.annotations.Operation;
|
||||||
import io.swagger.v3.oas.annotations.tags.Tag;
|
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.web.bind.annotation.PostMapping;
|
import org.springframework.web.bind.annotation.*;
|
||||||
import org.springframework.web.bind.annotation.RequestBody;
|
|
||||||
import org.springframework.web.bind.annotation.RequestMapping;
|
import javax.servlet.http.HttpServletRequest;
|
||||||
import org.springframework.web.bind.annotation.RestController;
|
|
||||||
|
|
||||||
@RestController
|
@RestController
|
||||||
@RequestMapping("/api/other")
|
@RequestMapping("/api/other")
|
||||||
@@ -25,6 +28,8 @@ public class OtherController {
|
|||||||
private ReportService reportService;
|
private ReportService reportService;
|
||||||
@Autowired
|
@Autowired
|
||||||
private UserErrorLogService userErrorLogService;
|
private UserErrorLogService userErrorLogService;
|
||||||
|
@Autowired
|
||||||
|
private VersionService versionService;
|
||||||
|
|
||||||
@PostMapping("/report")
|
@PostMapping("/report")
|
||||||
@Operation(summary = "举报")
|
@Operation(summary = "举报")
|
||||||
@@ -44,4 +49,12 @@ public class OtherController {
|
|||||||
userErrorLogService.pushError(req);
|
userErrorLogService.pushError(req);
|
||||||
return R.ok();
|
return R.ok();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@GetMapping("/system/version")
|
||||||
|
@Operation(summary = "版本号校验")
|
||||||
|
@Log(title = "版本号校验", businessType = BusinessType.OTHER, isSaveDb = false)
|
||||||
|
public R<VersionSystemInfo> systemVersion(){
|
||||||
|
VersionSystemInfo info = versionService.systemInfo(VersionUtil.getAppVersion(), VersionUtil.getVersionPlatform());
|
||||||
|
return R.ok(info);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,9 +1,7 @@
|
|||||||
package com.ruoyi.cai.controller;
|
package com.ruoyi.cai.controller;
|
||||||
|
|
||||||
import cn.dev33.satoken.annotation.SaCheckPermission;
|
import cn.dev33.satoken.annotation.SaCheckPermission;
|
||||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
|
||||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
import com.ruoyi.cai.domain.UserAlbum;
|
|
||||||
import com.ruoyi.cai.domain.UserPictureAudit;
|
import com.ruoyi.cai.domain.UserPictureAudit;
|
||||||
import com.ruoyi.cai.dto.admin.vo.user.UserPictureAuditAdminVo;
|
import com.ruoyi.cai.dto.admin.vo.user.UserPictureAuditAdminVo;
|
||||||
import com.ruoyi.cai.service.UserPictureAuditService;
|
import com.ruoyi.cai.service.UserPictureAuditService;
|
||||||
@@ -13,7 +11,6 @@ import com.ruoyi.common.core.controller.BaseController;
|
|||||||
import com.ruoyi.common.core.domain.PageQuery;
|
import com.ruoyi.common.core.domain.PageQuery;
|
||||||
import com.ruoyi.common.core.domain.R;
|
import com.ruoyi.common.core.domain.R;
|
||||||
import com.ruoyi.common.core.page.TableDataInfo;
|
import com.ruoyi.common.core.page.TableDataInfo;
|
||||||
import com.ruoyi.common.core.validate.EditGroup;
|
|
||||||
import com.ruoyi.common.enums.BusinessType;
|
import com.ruoyi.common.enums.BusinessType;
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
import org.springframework.validation.annotation.Validated;
|
import org.springframework.validation.annotation.Validated;
|
||||||
|
|||||||
@@ -0,0 +1,95 @@
|
|||||||
|
package com.ruoyi.cai.controller;
|
||||||
|
|
||||||
|
import cn.dev33.satoken.annotation.SaCheckPermission;
|
||||||
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||||
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
|
import com.ruoyi.cai.domain.Version;
|
||||||
|
import com.ruoyi.cai.service.VersionService;
|
||||||
|
import com.ruoyi.common.annotation.Log;
|
||||||
|
import com.ruoyi.common.annotation.RepeatSubmit;
|
||||||
|
import com.ruoyi.common.core.controller.BaseController;
|
||||||
|
import com.ruoyi.common.core.domain.PageQuery;
|
||||||
|
import com.ruoyi.common.core.domain.R;
|
||||||
|
import com.ruoyi.common.core.page.TableDataInfo;
|
||||||
|
import com.ruoyi.common.core.validate.AddGroup;
|
||||||
|
import com.ruoyi.common.core.validate.EditGroup;
|
||||||
|
import com.ruoyi.common.enums.BusinessType;
|
||||||
|
import lombok.RequiredArgsConstructor;
|
||||||
|
import org.springframework.validation.annotation.Validated;
|
||||||
|
import org.springframework.web.bind.annotation.*;
|
||||||
|
|
||||||
|
import javax.validation.constraints.NotEmpty;
|
||||||
|
import javax.validation.constraints.NotNull;
|
||||||
|
import java.util.Arrays;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 版本
|
||||||
|
*
|
||||||
|
* @author 77
|
||||||
|
* @date 2024-02-02
|
||||||
|
*/
|
||||||
|
@Validated
|
||||||
|
@RequiredArgsConstructor
|
||||||
|
@RestController
|
||||||
|
@RequestMapping("/cai/version")
|
||||||
|
public class VersionController extends BaseController {
|
||||||
|
|
||||||
|
private final VersionService versionService;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询版本列表
|
||||||
|
*/
|
||||||
|
@SaCheckPermission("cai:version:list")
|
||||||
|
@GetMapping("/list")
|
||||||
|
public TableDataInfo<Version> list(Version bo, PageQuery pageQuery) {
|
||||||
|
Page<Version> page = versionService.page(pageQuery.build(), Wrappers.lambdaQuery(bo));
|
||||||
|
return TableDataInfo.build(page);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取版本详细信息
|
||||||
|
*
|
||||||
|
* @param id 主键
|
||||||
|
*/
|
||||||
|
@SaCheckPermission("cai:version:query")
|
||||||
|
@GetMapping("/{id}")
|
||||||
|
public R<Version> getInfo(@NotNull(message = "主键不能为空")
|
||||||
|
@PathVariable Long id) {
|
||||||
|
return R.ok(versionService.getById(id));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 新增版本
|
||||||
|
*/
|
||||||
|
@SaCheckPermission("cai:version:add")
|
||||||
|
@Log(title = "版本", businessType = BusinessType.INSERT)
|
||||||
|
@RepeatSubmit()
|
||||||
|
@PostMapping()
|
||||||
|
public R<Void> add(@Validated(AddGroup.class) @RequestBody Version bo) {
|
||||||
|
return toAjax(versionService.save(bo));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 修改版本
|
||||||
|
*/
|
||||||
|
@SaCheckPermission("cai:version:edit")
|
||||||
|
@Log(title = "版本", businessType = BusinessType.UPDATE)
|
||||||
|
@RepeatSubmit()
|
||||||
|
@PutMapping()
|
||||||
|
public R<Void> edit(@Validated(EditGroup.class) @RequestBody Version bo) {
|
||||||
|
return toAjax(versionService.updateById(bo));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 删除版本
|
||||||
|
*
|
||||||
|
* @param ids 主键串
|
||||||
|
*/
|
||||||
|
@SaCheckPermission("cai:version:remove")
|
||||||
|
@Log(title = "版本", businessType = BusinessType.DELETE)
|
||||||
|
@DeleteMapping("/{ids}")
|
||||||
|
public R<Void> remove(@NotEmpty(message = "主键不能为空")
|
||||||
|
@PathVariable Long[] ids) {
|
||||||
|
return toAjax(versionService.removeBatchByIds(Arrays.asList(ids)));
|
||||||
|
}
|
||||||
|
}
|
||||||
68
ruoyi-cai/src/main/java/com/ruoyi/cai/domain/Version.java
Normal file
68
ruoyi-cai/src/main/java/com/ruoyi/cai/domain/Version.java
Normal file
@@ -0,0 +1,68 @@
|
|||||||
|
package com.ruoyi.cai.domain;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.annotation.IdType;
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableId;
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableName;
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
import java.io.Serializable;
|
||||||
|
import java.time.LocalDateTime;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 版本对象 cai_version
|
||||||
|
*
|
||||||
|
* @author 77
|
||||||
|
* @date 2024-02-02
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
@TableName("cai_version")
|
||||||
|
public class Version implements Serializable {
|
||||||
|
|
||||||
|
private static final long serialVersionUID=1L;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* ID
|
||||||
|
*/
|
||||||
|
@TableId(value = "id",type = IdType.AUTO)
|
||||||
|
private Long id;
|
||||||
|
/**
|
||||||
|
* 平台 1.android 2.ios
|
||||||
|
*/
|
||||||
|
private Integer platform;
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
private Integer versionCode;
|
||||||
|
/**
|
||||||
|
* 旧版本号
|
||||||
|
*/
|
||||||
|
private String oldVersion;
|
||||||
|
/**
|
||||||
|
* 新版本号
|
||||||
|
*/
|
||||||
|
private String newVersion;
|
||||||
|
/**
|
||||||
|
* 包大小
|
||||||
|
*/
|
||||||
|
private String packageSize;
|
||||||
|
/**
|
||||||
|
* 升级内容
|
||||||
|
*/
|
||||||
|
private String content;
|
||||||
|
/**
|
||||||
|
* 下载地址
|
||||||
|
*/
|
||||||
|
private String downloadUrl;
|
||||||
|
/**
|
||||||
|
* 强制更新
|
||||||
|
*/
|
||||||
|
private Integer enforce;
|
||||||
|
/**
|
||||||
|
* 状态 1-启用 0-禁用
|
||||||
|
*/
|
||||||
|
private Integer enableStatus;
|
||||||
|
|
||||||
|
private LocalDateTime createTime;
|
||||||
|
private LocalDateTime updateTime;
|
||||||
|
|
||||||
|
}
|
||||||
@@ -1,5 +1,6 @@
|
|||||||
package com.ruoyi.cai.dto.app.vo;
|
package com.ruoyi.cai.dto.app.vo;
|
||||||
|
|
||||||
|
import io.swagger.v3.oas.annotations.media.Schema;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
|
||||||
import java.io.Serializable;
|
import java.io.Serializable;
|
||||||
@@ -9,21 +10,33 @@ public class AnchorJoinHomeVo implements Serializable {
|
|||||||
/**
|
/**
|
||||||
* 资料是否完成 0 未完成 1已完成
|
* 资料是否完成 0 未完成 1已完成
|
||||||
*/
|
*/
|
||||||
|
@Schema(description = "资料是否完成 0 未完成 1已完成")
|
||||||
private Integer finishStatus;
|
private Integer finishStatus;
|
||||||
/**
|
/**
|
||||||
* 相册上传状态 0 未上传 1 已上传
|
* 相册上传状态 0 未上传 1 已上传
|
||||||
*/
|
*/
|
||||||
|
@Schema(description = "相册上传状态 0 未完成 1已完成")
|
||||||
|
@Deprecated
|
||||||
private Integer photoStatus;
|
private Integer photoStatus;
|
||||||
|
|
||||||
|
@Schema(description = "头像上传状态 0-默认头像 1-自定义头像")
|
||||||
|
private Integer avatarState;
|
||||||
/**
|
/**
|
||||||
* 自拍认证 0 未认证 1 已认证
|
* 自拍认证 0 未认证 1 已认证
|
||||||
*/
|
*/
|
||||||
|
@Schema(description = "自拍认证 0 未完成 1已完成")
|
||||||
private Integer cameraStatus;
|
private Integer cameraStatus;
|
||||||
/**
|
/**
|
||||||
* 是否同意服务协议
|
* 是否同意服务协议
|
||||||
*/
|
*/
|
||||||
|
@Schema(description = "是否同意服务协议 0 未完成 1已完成")
|
||||||
private Integer agreeProtocol;
|
private Integer agreeProtocol;
|
||||||
|
|
||||||
|
@Schema(description = "主播申请状态 0-未申请 1-审核中 2-审核通过 3-审核失败")
|
||||||
private Integer applyStatus;
|
private Integer applyStatus;
|
||||||
|
|
||||||
|
@Schema(description = "审核备注")
|
||||||
|
private String auditRemark;
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,44 @@
|
|||||||
|
package com.ruoyi.cai.dto.app.vo.version;
|
||||||
|
|
||||||
|
import io.swagger.v3.oas.annotations.media.Schema;
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
public class VersionSystemInfo {
|
||||||
|
|
||||||
|
|
||||||
|
@Schema(description = "当前版本是否为最新版")
|
||||||
|
private Integer isNewVersion;
|
||||||
|
@Schema(description = "不知道撒玩意, 一直为0")
|
||||||
|
private Integer versionCode;
|
||||||
|
/**
|
||||||
|
* 旧版本号
|
||||||
|
*/
|
||||||
|
@Schema(description = "旧版本号")
|
||||||
|
private String oldVersion;
|
||||||
|
/**
|
||||||
|
* 新版本号
|
||||||
|
*/
|
||||||
|
@Schema(description = "新版本号")
|
||||||
|
private String version;
|
||||||
|
/**
|
||||||
|
* 包大小
|
||||||
|
*/
|
||||||
|
@Schema(description = "包大小")
|
||||||
|
private String packageSize;
|
||||||
|
/**
|
||||||
|
* 升级内容
|
||||||
|
*/
|
||||||
|
@Schema(description = "升级内容")
|
||||||
|
private String content;
|
||||||
|
/**
|
||||||
|
* 下载地址
|
||||||
|
*/
|
||||||
|
@Schema(description = "下载地址")
|
||||||
|
private String downloadurl;
|
||||||
|
/**
|
||||||
|
* 强制更新
|
||||||
|
*/
|
||||||
|
@Schema(description = "是否强制更新")
|
||||||
|
private Integer enforce = 0;
|
||||||
|
}
|
||||||
@@ -0,0 +1,19 @@
|
|||||||
|
package com.ruoyi.cai.enums.version;
|
||||||
|
|
||||||
|
import lombok.Getter;
|
||||||
|
|
||||||
|
// 1.android 2.ios
|
||||||
|
@Getter
|
||||||
|
public enum VersionPlatformEnum {
|
||||||
|
ANDROID(1,"安卓"),
|
||||||
|
IOS(2,"ios"),
|
||||||
|
;
|
||||||
|
|
||||||
|
private final Integer code;
|
||||||
|
private final String text;
|
||||||
|
|
||||||
|
VersionPlatformEnum(Integer code, String text) {
|
||||||
|
this.code = code;
|
||||||
|
this.text = text;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,14 @@
|
|||||||
|
package com.ruoyi.cai.mapper;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||||
|
import com.ruoyi.cai.domain.Version;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 版本Mapper接口
|
||||||
|
*
|
||||||
|
* @author 77
|
||||||
|
* @date 2024-02-02
|
||||||
|
*/
|
||||||
|
public interface VersionMapper extends BaseMapper<Version> {
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,17 @@
|
|||||||
|
package com.ruoyi.cai.service;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.extension.service.IService;
|
||||||
|
import com.ruoyi.cai.domain.Version;
|
||||||
|
import com.ruoyi.cai.dto.app.vo.version.VersionSystemInfo;
|
||||||
|
import com.ruoyi.cai.enums.version.VersionPlatformEnum;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 版本Service接口
|
||||||
|
*
|
||||||
|
* @author 77
|
||||||
|
* @date 2024-02-02
|
||||||
|
*/
|
||||||
|
public interface VersionService extends IService<Version> {
|
||||||
|
|
||||||
|
VersionSystemInfo systemInfo(String version, VersionPlatformEnum versionPlatformEnum);
|
||||||
|
}
|
||||||
@@ -60,11 +60,13 @@ public class AnchorApplyServiceImpl extends ServiceImpl<AnchorApplyMapper, Ancho
|
|||||||
AnchorApply anchorApply = this.getByUserId(userId);
|
AnchorApply anchorApply = this.getByUserId(userId);
|
||||||
AnchorJoinHomeVo vo = new AnchorJoinHomeVo();
|
AnchorJoinHomeVo vo = new AnchorJoinHomeVo();
|
||||||
vo.setFinishStatus(user.getFinishStatus());
|
vo.setFinishStatus(user.getFinishStatus());
|
||||||
vo.setPhotoStatus(user.getPhotoStatus());
|
// vo.setPhotoStatus(user.getPhotoStatus());
|
||||||
|
vo.setAvatarState(user.getAvatarState());
|
||||||
vo.setCameraStatus(user.getCameraStatus());
|
vo.setCameraStatus(user.getCameraStatus());
|
||||||
vo.setAgreeProtocol(user.getAgreeProtocol());
|
vo.setAgreeProtocol(user.getAgreeProtocol());
|
||||||
if(anchorApply != null){
|
if(anchorApply != null){
|
||||||
vo.setApplyStatus(user.getStatus());
|
vo.setApplyStatus(anchorApply.getAuditStatus());
|
||||||
|
vo.setAuditRemark(anchorApply.getAuditRemark());
|
||||||
}else{
|
}else{
|
||||||
vo.setApplyStatus(0);
|
vo.setApplyStatus(0);
|
||||||
}
|
}
|
||||||
@@ -80,8 +82,8 @@ public class AnchorApplyServiceImpl extends ServiceImpl<AnchorApplyMapper, Ancho
|
|||||||
if(user.getFinishStatus() != 1){
|
if(user.getFinishStatus() != 1){
|
||||||
throw new ServiceException("您还未完善个人资料");
|
throw new ServiceException("您还未完善个人资料");
|
||||||
}
|
}
|
||||||
if(user.getPhotoStatus() != 1){
|
if(user.getAvatarState() != 1){
|
||||||
throw new ServiceException("请选上传相册");
|
throw new ServiceException("请选上传自定义头像");
|
||||||
}
|
}
|
||||||
if(user.getCameraStatus() != 1){
|
if(user.getCameraStatus() != 1){
|
||||||
throw new ServiceException("您还未完成自拍认证");
|
throw new ServiceException("您还未完成自拍认证");
|
||||||
|
|||||||
@@ -71,6 +71,9 @@ public class UserAlbumServiceImpl extends ServiceImpl<UserAlbumMapper, UserAlbum
|
|||||||
album.setAuditStatus(ignoreAudit ? AuditStatusEnum.SUCCESS.getCode():AuditStatusEnum.AUDITING.getCode());
|
album.setAuditStatus(ignoreAudit ? AuditStatusEnum.SUCCESS.getCode():AuditStatusEnum.AUDITING.getCode());
|
||||||
album.setIgnoreAudit(ignoreAudit);
|
album.setIgnoreAudit(ignoreAudit);
|
||||||
this.save(album);
|
this.save(album);
|
||||||
|
userService.list(Wrappers.lambdaUpdate(User.class)
|
||||||
|
.eq(User::getId, user.getId())
|
||||||
|
.set(User::getPhotoStatus, 1));
|
||||||
return album;
|
return album;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,76 @@
|
|||||||
|
package com.ruoyi.cai.service.impl;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||||
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||||
|
import com.ruoyi.cai.domain.Version;
|
||||||
|
import com.ruoyi.cai.dto.app.vo.version.VersionSystemInfo;
|
||||||
|
import com.ruoyi.cai.enums.version.VersionPlatformEnum;
|
||||||
|
import com.ruoyi.cai.mapper.VersionMapper;
|
||||||
|
import com.ruoyi.cai.service.VersionService;
|
||||||
|
import com.ruoyi.cai.util.VersionUtil;
|
||||||
|
import com.ruoyi.common.utils.StringUtils;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
|
import java.util.Comparator;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 版本Service业务层处理
|
||||||
|
*
|
||||||
|
* @author 77
|
||||||
|
* @date 2024-02-02
|
||||||
|
*/
|
||||||
|
@Service
|
||||||
|
public class VersionServiceImpl extends ServiceImpl<VersionMapper,Version> implements VersionService {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public VersionSystemInfo systemInfo(String version, VersionPlatformEnum versionPlatformEnum){
|
||||||
|
if(!StringUtils.isNotBlank(version)){
|
||||||
|
VersionSystemInfo res = new VersionSystemInfo();
|
||||||
|
res.setIsNewVersion(1);
|
||||||
|
res.setVersion("1.0.0");
|
||||||
|
return res;
|
||||||
|
}
|
||||||
|
List<Version> list = this.list(Wrappers.lambdaQuery(Version.class)
|
||||||
|
.eq(Version::getPlatform, versionPlatformEnum.getCode())
|
||||||
|
.eq(Version::getEnableStatus, 1));
|
||||||
|
list.sort(Comparator.comparing(Version::getNewVersion, VersionUtil::compareVersion));
|
||||||
|
if(list.isEmpty()){
|
||||||
|
VersionSystemInfo res = new VersionSystemInfo();
|
||||||
|
res.setIsNewVersion(1);
|
||||||
|
res.setVersion("1.0.0");
|
||||||
|
return res;
|
||||||
|
}
|
||||||
|
Version newVersion = list.get(0); // 最新版
|
||||||
|
if(VersionUtil.compareVersion(version,newVersion.getNewVersion()) >= 0){ // 版本号比最新版还大
|
||||||
|
VersionSystemInfo res = new VersionSystemInfo();
|
||||||
|
res.setIsNewVersion(1);
|
||||||
|
res.setVersion(newVersion.getNewVersion());
|
||||||
|
return res;
|
||||||
|
}
|
||||||
|
Integer enforce = 0;
|
||||||
|
for (Version v : list) {
|
||||||
|
if(enforce == 0){
|
||||||
|
enforce = v.getEnforce();
|
||||||
|
}
|
||||||
|
int i = VersionUtil.compareVersion(version, v.getNewVersion());
|
||||||
|
if(i <= 0){ // 版本号小于改版本
|
||||||
|
VersionSystemInfo res = new VersionSystemInfo();
|
||||||
|
res.setIsNewVersion(0);
|
||||||
|
res.setVersionCode(v.getVersionCode());
|
||||||
|
res.setOldVersion(v.getOldVersion());
|
||||||
|
res.setVersion(v.getNewVersion());
|
||||||
|
res.setPackageSize(v.getPackageSize());
|
||||||
|
res.setContent(v.getContent());
|
||||||
|
res.setDownloadurl(v.getDownloadUrl());
|
||||||
|
res.setEnforce(enforce);
|
||||||
|
return res;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
VersionSystemInfo res = new VersionSystemInfo();
|
||||||
|
res.setIsNewVersion(1);
|
||||||
|
res.setVersion("1.0.0");
|
||||||
|
return res;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
36
ruoyi-cai/src/main/java/com/ruoyi/cai/util/VersionUtil.java
Normal file
36
ruoyi-cai/src/main/java/com/ruoyi/cai/util/VersionUtil.java
Normal file
@@ -0,0 +1,36 @@
|
|||||||
|
package com.ruoyi.cai.util;
|
||||||
|
|
||||||
|
import com.ruoyi.cai.enums.version.VersionPlatformEnum;
|
||||||
|
import com.ruoyi.common.utils.ServletUtils;
|
||||||
|
|
||||||
|
import javax.servlet.http.HttpServletRequest;
|
||||||
|
|
||||||
|
public class VersionUtil {
|
||||||
|
|
||||||
|
public static String getAppVersion(){
|
||||||
|
HttpServletRequest request = ServletUtils.getRequest();
|
||||||
|
return request.getHeader("version");
|
||||||
|
}
|
||||||
|
|
||||||
|
public static VersionPlatformEnum getVersionPlatform(){
|
||||||
|
HttpServletRequest request = ServletUtils.getRequest();
|
||||||
|
String sourceId = request.getHeader("source_id");
|
||||||
|
if("2".equals(sourceId)){
|
||||||
|
return VersionPlatformEnum.IOS;
|
||||||
|
}
|
||||||
|
return VersionPlatformEnum.ANDROID;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static int compareVersion(String v1, String v2) {
|
||||||
|
String[] ss1 = v1.split("\\."), ss2 = v2.split("\\.");
|
||||||
|
int n = ss1.length, m = ss2.length;
|
||||||
|
int i = 0, j = 0;
|
||||||
|
while (i < n || j < m) {
|
||||||
|
int a = 0, b = 0;
|
||||||
|
if (i < n) a = Integer.parseInt(ss1[i++]);
|
||||||
|
if (j < m) b = Integer.parseInt(ss2[j++]);
|
||||||
|
if (a != b) return a > b ? 1 : -1;
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
23
ruoyi-cai/src/main/resources/mapper/cai/VersionMapper.xml
Normal file
23
ruoyi-cai/src/main/resources/mapper/cai/VersionMapper.xml
Normal file
@@ -0,0 +1,23 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8" ?>
|
||||||
|
<!DOCTYPE mapper
|
||||||
|
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||||
|
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||||
|
<mapper namespace="com.ruoyi.cai.mapper.VersionMapper">
|
||||||
|
|
||||||
|
<resultMap type="com.ruoyi.cai.domain.Version" id="VersionResult">
|
||||||
|
<result property="id" column="id"/>
|
||||||
|
<result property="platform" column="platform"/>
|
||||||
|
<result property="versionCode" column="version_code"/>
|
||||||
|
<result property="oldVersion" column="old_version"/>
|
||||||
|
<result property="newVersion" column="new_version"/>
|
||||||
|
<result property="packageSize" column="package_size"/>
|
||||||
|
<result property="content" column="content"/>
|
||||||
|
<result property="downloadurl" column="downloadurl"/>
|
||||||
|
<result property="enforce" column="enforce"/>
|
||||||
|
<result property="createTime" column="create_time"/>
|
||||||
|
<result property="updateTime" column="update_time"/>
|
||||||
|
<result property="enableStatus" column="enable_status"/>
|
||||||
|
</resultMap>
|
||||||
|
|
||||||
|
|
||||||
|
</mapper>
|
||||||
Reference in New Issue
Block a user