增加APP版本记录

master
wany 2024-11-12 14:02:52 +08:00
parent 6d71b6d03b
commit 8719fffb03
5 changed files with 187 additions and 1 deletions

2
ruoyi

@ -1 +1 @@
Subproject commit 0558928c522bdda5a1c3ae88ace3f4970ad3ed33 Subproject commit 6a52c42db8cf808d63dcb49723ee3866cf381505

View File

@ -0,0 +1,53 @@
package com.gunshi.project.xyt.controller;
import com.gunshi.core.result.R;
import com.gunshi.project.xyt.model.AppVersionRecord;
import com.gunshi.project.xyt.service.AppVersionRecordService;
import com.ruoyi.common.config.RuoYiConfig;
import com.ruoyi.common.utils.file.FileUploadUtils;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import java.util.HashMap;
import java.util.Map;
/**
* : APP
* author: xusan
* date: 2024-11-12 10:14:50
*/
@Tag(name = "APP版本记录")
@RestController
@RequestMapping(value="/appVersionRecord")
public class AppVersionRecordController {
@Autowired
private AppVersionRecordService service;
@PostMapping("/upload")
public R upload(@RequestParam("file") MultipartFile file, @RequestParam("version") String version, @RequestParam("versionDesc") String versionDesc) throws Exception
{
Map<String,String> map = new HashMap<>();
if (!file.isEmpty())
{
String url = FileUploadUtils.upload(RuoYiConfig.getUploadPath(),file,null);
if (service.insertData(version,versionDesc,url))
{
map.put("url", url);
return R.ok(map);
}
}
return R.error(400,"上传失败");
}
@Operation(summary = "最新记录")
@GetMapping("/latest")
public R<AppVersionRecord> latest() {
return R.ok(service.getLatest());
}
}

View File

@ -0,0 +1,15 @@
package com.gunshi.project.xyt.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.gunshi.project.xyt.model.AppVersionRecord;
import org.apache.ibatis.annotations.Mapper;
/**
* : APP
* author: xusan
* date: 2024-11-12 10:14:50
*/
@Mapper
public interface AppVersionRecordMapper extends BaseMapper<AppVersionRecord> {
}

View File

@ -0,0 +1,72 @@
package com.gunshi.project.xyt.model;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import com.gunshi.core.dateformat.DateFormatString;
import io.swagger.v3.oas.annotations.media.Schema;
import jakarta.validation.constraints.Size;
import lombok.Data;
import java.io.Serializable;
import java.util.Date;
/**
* : APP
* author: xusan
* date: 2024-11-12 10:14:50
*/
@Schema(description="APP版本记录")
@Data
@TableName("public.app_version_record")
public class AppVersionRecord implements Serializable {
public final static String thisTableName = "AppVersionRecord";
private static final long serialVersionUID = 1L;
/**
*
*/
@TableId(value="id", type= IdType.AUTO)
@Schema(description="主键")
@JsonSerialize(using = ToStringSerializer.class)
private Long id;
/**
*
*/
@TableField(value="version")
@Schema(description="版本号")
@Size(max = 20,message = "版本号最大长度要小于 20")
private String version;
/**
*
*/
@TableField(value="version_desc")
@Schema(description="版本描述")
private String versionDesc;
/**
* url
*/
@TableField(value="url")
@Schema(description="地址")
private String url;
/**
*
*/
@TableField(value="create_time")
@Schema(description="创建时间")
@JsonFormat(pattern = DateFormatString.YYYY_MM_DD_HH_MM_SS, timezone = "GMT+8")
private Date createTime;
}

View File

@ -0,0 +1,46 @@
package com.gunshi.project.xyt.service;
import com.baomidou.mybatisplus.core.toolkit.IdWorker;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.gunshi.project.xyt.mapper.AppVersionRecordMapper;
import com.gunshi.project.xyt.model.AppVersionRecord;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils;
import java.util.Date;
import java.util.List;
/**
* : APP
* author: xusan
* date: 2024-11-12 10:14:50
*/
@Service
@Slf4j
@Transactional(rollbackFor = Exception.class)
public class AppVersionRecordService extends ServiceImpl<AppVersionRecordMapper, AppVersionRecord>
{
public boolean insertData(String version,String versionDesc,String url) {
AppVersionRecord record = new AppVersionRecord();
record.setId(IdWorker.getId());
record.setVersion(version);
record.setVersionDesc(versionDesc);
record.setUrl(url);
record.setCreateTime(new Date());
return this.baseMapper.insert(record) > 0;
}
public AppVersionRecord getLatest() {
AppVersionRecord record = null;
List<AppVersionRecord> list = this.lambdaQuery().orderByDesc(AppVersionRecord::getCreateTime).list();
if(!CollectionUtils.isEmpty(list)){
record = list.get(0);
}
return record;
}
}