diff --git a/ruoyi b/ruoyi index 0558928..6a52c42 160000 --- a/ruoyi +++ b/ruoyi @@ -1 +1 @@ -Subproject commit 0558928c522bdda5a1c3ae88ace3f4970ad3ed33 +Subproject commit 6a52c42db8cf808d63dcb49723ee3866cf381505 diff --git a/src/main/java/com/gunshi/project/xyt/controller/AppVersionRecordController.java b/src/main/java/com/gunshi/project/xyt/controller/AppVersionRecordController.java new file mode 100644 index 0000000..6a4f568 --- /dev/null +++ b/src/main/java/com/gunshi/project/xyt/controller/AppVersionRecordController.java @@ -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 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 latest() { + return R.ok(service.getLatest()); + } +} \ No newline at end of file diff --git a/src/main/java/com/gunshi/project/xyt/mapper/AppVersionRecordMapper.java b/src/main/java/com/gunshi/project/xyt/mapper/AppVersionRecordMapper.java new file mode 100644 index 0000000..ef6428f --- /dev/null +++ b/src/main/java/com/gunshi/project/xyt/mapper/AppVersionRecordMapper.java @@ -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 { + +} \ No newline at end of file diff --git a/src/main/java/com/gunshi/project/xyt/model/AppVersionRecord.java b/src/main/java/com/gunshi/project/xyt/model/AppVersionRecord.java new file mode 100644 index 0000000..6806ecc --- /dev/null +++ b/src/main/java/com/gunshi/project/xyt/model/AppVersionRecord.java @@ -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; + + +} \ No newline at end of file diff --git a/src/main/java/com/gunshi/project/xyt/service/AppVersionRecordService.java b/src/main/java/com/gunshi/project/xyt/service/AppVersionRecordService.java new file mode 100644 index 0000000..000ee24 --- /dev/null +++ b/src/main/java/com/gunshi/project/xyt/service/AppVersionRecordService.java @@ -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 +{ + + 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 list = this.lambdaQuery().orderByDesc(AppVersionRecord::getCreateTime).list(); + if(!CollectionUtils.isEmpty(list)){ + record = list.get(0); + } + return record; + } +} + +