Prechádzať zdrojové kódy

ECU刷写文件管理

bmmx 1 rok pred
rodič
commit
a1f680c738

+ 1 - 0
src/main/java/com/om/constant/UploadConstant.java

@@ -3,5 +3,6 @@ package com.om.constant;
 public class UploadConstant {
 
     public static final String DIAGNOSTIC_MENU_PREFIX = "diagnosisMenu";
+    public static final String BRUSH_PREFIX = "ECUBrush";
     public static final String DIAGNOSTIC_LOG_PREFIX = "DiagnosisLog";
 }

+ 66 - 0
src/main/java/com/om/controller/admin/BrushFileController.java

@@ -0,0 +1,66 @@
+package com.om.controller.admin;
+
+
+import com.om.entity.dto.*;
+import com.om.entity.vo.*;
+import com.om.service.IBrushFileService;
+import com.om.utils.Result;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
+
+import javax.annotation.Resource;
+import java.util.List;
+
+/**
+ * <p>
+ *  前端控制器
+ * </p>
+ *
+ * @author bmmx
+ * @since 2024-03-21
+ */
+@RestController
+@Api(tags = "ECU刷写文件管理")
+@RequestMapping("web/brush")
+public class BrushFileController {
+
+
+    @Resource
+    private IBrushFileService brushFileService;
+
+    @PostMapping("getPageList")
+    @ApiOperation("分页查询ECU刷写文件列表")
+    public Result<BlushQueryPageVO> getPageList(@RequestBody BlushQueryPageDTO dto){
+        return brushFileService.getPageList(dto);
+    }
+
+    @PostMapping("create")
+    @ApiOperation("新增ECU刷写文件")
+    public Result createBrush(@RequestBody BrushAddDTO dto){
+        return brushFileService.createBrush(dto);
+    }
+
+    @PostMapping("upload")
+    @ApiOperation("上传ECU刷写文件")
+    public Result<BrushUploadVO> uploadBrush(MultipartFile file){
+        return brushFileService.uploadBrush(file);
+    }
+
+    @GetMapping("delete")
+    @ApiOperation("根据id删除ECU刷写文件")
+    public Result deleteBrush(@RequestParam Integer id){
+        return brushFileService.deleteBrush(id);
+    }
+
+    @GetMapping("updateStatus")
+    @ApiOperation("修改ECU刷写文件状态")
+    public Result updateStatus(@RequestParam("id") Integer id,@RequestParam("status") Integer status){
+        return brushFileService.updateStatus(id,status);
+    }
+
+
+
+
+}

+ 19 - 0
src/main/java/com/om/entity/dto/BlushQueryPageDTO.java

@@ -0,0 +1,19 @@
+package com.om.entity.dto;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+@Data
+@NoArgsConstructor
+public class BlushQueryPageDTO {
+    @ApiModelProperty(value = "当前页码")
+    private Integer pageIndex;
+
+    @ApiModelProperty(value = "每个页码的大小")
+    private Integer pageSize;
+
+    @ApiModelProperty(value = "搜索字段---搜索文件名")
+    private String fileName;
+
+}

+ 50 - 0
src/main/java/com/om/entity/dto/BrushAddDTO.java

@@ -0,0 +1,50 @@
+package com.om.entity.dto;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.om.entity.vo.BrushDescriptionVO;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+import java.io.Serializable;
+import java.time.LocalDateTime;
+import java.util.List;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author bmmx
+ * @since 2024-03-21
+ */
+@Data
+public class BrushAddDTO implements Serializable {
+
+    @ApiModelProperty(value = "刷写文件名称")
+    private String brushFileName;
+
+    @ApiModelProperty(value = "文件大小")
+    private String fileSize;
+
+    @ApiModelProperty(value = "下载路径")
+    private String url;
+
+    @ApiModelProperty(value = "多语言描述列表")
+    private List<BrushDescriptionVO> descriptionList;
+
+    @ApiModelProperty(value = "品牌编号")
+    private String brandCode;
+
+    @ApiModelProperty(value = "客户端编号(多选)")
+    private List<String> clientNums;
+
+    @ApiModelProperty(value = "状态,1:启用  0:禁用")
+    private Integer status = 1;
+
+
+}

+ 44 - 0
src/main/java/com/om/entity/po/BrushClient.java

@@ -0,0 +1,44 @@
+package com.om.entity.po;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import java.io.Serializable;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author bmmx
+ * @since 2024-04-26
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@TableName("brush_client")
+@ApiModel(value="BrushClient对象", description="")
+public class BrushClient implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @ApiModelProperty(value = "主键id")
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    @ApiModelProperty(value = "客户端编号")
+    private String clientNum;
+
+    @ApiModelProperty(value = "ECU刷写文件id")
+    private Integer brushId;
+
+    @ApiModelProperty(value = "客户端名称")
+    private String clientName;
+
+
+}

+ 3 - 3
src/main/java/com/om/entity/po/BrushFile.java

@@ -32,9 +32,6 @@ public class BrushFile implements Serializable {
     @TableId(value = "id", type = IdType.AUTO)
     private Integer id;
 
-    @ApiModelProperty(value = "版本号")
-    private String version;
-
     @ApiModelProperty(value = "刷写文件名称")
     private String brushFileName;
 
@@ -53,5 +50,8 @@ public class BrushFile implements Serializable {
     @ApiModelProperty(value = "品牌编号")
     private String brandCode;
 
+    @ApiModelProperty(value = "状态,1:启用  0:禁用")
+    private Integer status;
+
 
 }

+ 32 - 0
src/main/java/com/om/entity/vo/BlushQueryPageVO.java

@@ -0,0 +1,32 @@
+package com.om.entity.vo;
+
+import com.om.entity.po.DiagnosticMenuVO;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.util.List;
+
+@Data
+@NoArgsConstructor
+public class BlushQueryPageVO {
+
+    @ApiModelProperty(value = "当前页码")
+    private Integer current;
+
+    @ApiModelProperty(value = "总页码")
+    private Integer pages;
+
+    @ApiModelProperty(value = "每个页码的大小")
+    private Integer size;
+
+    @ApiModelProperty(value = "总数量")
+    private Integer total;
+
+    @ApiModelProperty(value = "是否是查询")
+    private Boolean searchCount = false;
+
+    @ApiModelProperty(value = "结果集")
+    private List<BrushVO> records;
+
+}

+ 32 - 0
src/main/java/com/om/entity/vo/BrushDescriptionVO.java

@@ -0,0 +1,32 @@
+package com.om.entity.vo;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+import java.io.Serializable;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author bmmx
+ * @since 2024-03-21
+ */
+@Data
+public class BrushDescriptionVO implements Serializable {
+
+    @ApiModelProperty(value = "语言")
+    private String language;
+
+    @ApiModelProperty(value = "版本描述")
+    private String description;
+
+
+}

+ 21 - 0
src/main/java/com/om/entity/vo/BrushUploadVO.java

@@ -0,0 +1,21 @@
+package com.om.entity.vo;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serializable;
+
+@Data
+@NoArgsConstructor
+public class BrushUploadVO implements Serializable {
+
+    @ApiModelProperty(value = "菜单文件名")
+    private String brushFileName;
+
+    @ApiModelProperty(value = "菜单文件大小")
+    private String fileSize;
+
+    @ApiModelProperty(value = "菜单保存路径")
+    private String savePath;
+}

+ 53 - 0
src/main/java/com/om/entity/vo/BrushVO.java

@@ -0,0 +1,53 @@
+package com.om.entity.vo;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serializable;
+import java.time.LocalDateTime;
+import java.util.List;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author bmmx
+ * @since 2024-03-05
+ */
+@Data
+@NoArgsConstructor
+public class BrushVO implements Serializable {
+
+
+    @ApiModelProperty(value = "主键id")
+    private Integer id;
+
+    @ApiModelProperty(value = "刷写文件名称")
+    private String brushFileName;
+
+    @ApiModelProperty(value = "文件大小")
+    private String fileSize;
+
+    @ApiModelProperty(value = "下载路径")
+    private String url;
+
+    @ApiModelProperty(value = "创建时间")
+    @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
+    private LocalDateTime createTime;
+
+    @ApiModelProperty(value = "品牌编号")
+    private String brandCode;
+
+    @ApiModelProperty(value = "状态,1:启用  0:禁用")
+    private Integer status;
+
+    @ApiModelProperty(value = "多语言描述")
+    private List<BrushDescriptionVO> descriptions;
+
+
+}

+ 16 - 0
src/main/java/com/om/mapper/BrushClientMapper.java

@@ -0,0 +1,16 @@
+package com.om.mapper;
+
+import com.om.entity.po.BrushClient;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * <p>
+ *  Mapper 接口
+ * </p>
+ *
+ * @author bmmx
+ * @since 2024-04-26
+ */
+public interface BrushClientMapper extends BaseMapper<BrushClient> {
+
+}

+ 16 - 0
src/main/java/com/om/service/IBrushClientService.java

@@ -0,0 +1,16 @@
+package com.om.service;
+
+import com.om.entity.po.BrushClient;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ * <p>
+ *  服务类
+ * </p>
+ *
+ * @author bmmx
+ * @since 2024-04-26
+ */
+public interface IBrushClientService extends IService<BrushClient> {
+
+}

+ 14 - 0
src/main/java/com/om/service/IBrushFileService.java

@@ -1,10 +1,15 @@
 package com.om.service;
 
+import com.om.entity.dto.BlushQueryPageDTO;
+import com.om.entity.dto.BrushAddDTO;
 import com.om.entity.po.BrushFile;
 import com.om.entity.dto.AppBrushFileDTO;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.om.entity.vo.AppBrushFileVO;
+import com.om.entity.vo.BlushQueryPageVO;
+import com.om.entity.vo.BrushUploadVO;
 import com.om.utils.Result;
+import org.springframework.web.multipart.MultipartFile;
 
 import java.util.List;
 
@@ -20,4 +25,13 @@ public interface IBrushFileService extends IService<BrushFile> {
 
     Result<List<AppBrushFileVO>> getBrushFileList(AppBrushFileDTO dto);
 
+    Result<BlushQueryPageVO> getPageList(BlushQueryPageDTO dto);
+
+    Result<BrushUploadVO> uploadBrush(MultipartFile file);
+
+    Result deleteBrush(Integer id);
+
+    Result updateStatus(Integer id, Integer status);
+
+    Result createBrush(BrushAddDTO dto);
 }

+ 20 - 0
src/main/java/com/om/service/impl/BrushClientServiceImpl.java

@@ -0,0 +1,20 @@
+package com.om.service.impl;
+
+import com.om.entity.po.BrushClient;
+import com.om.mapper.BrushClientMapper;
+import com.om.service.IBrushClientService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ *  服务实现类
+ * </p>
+ *
+ * @author bmmx
+ * @since 2024-04-26
+ */
+@Service
+public class BrushClientServiceImpl extends ServiceImpl<BrushClientMapper, BrushClient> implements IBrushClientService {
+
+}

+ 198 - 18
src/main/java/com/om/service/impl/BrushFileServiceImpl.java

@@ -1,24 +1,39 @@
 package com.om.service.impl;
 
 import cn.hutool.core.bean.BeanUtil;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.om.entity.dto.AppBrushFileDTO;
+import com.om.entity.dto.BlushQueryPageDTO;
+import com.om.entity.dto.BrushAddDTO;
 import com.om.entity.dto.GuidDTO;
-import com.om.entity.po.BrushDescription;
-import com.om.entity.po.BrushFile;
-import com.om.entity.vo.AppBrushFileVO;
+import com.om.entity.po.*;
+import com.om.entity.vo.*;
 import com.om.exception.BadReqException;
+import com.om.exception.BizException;
 import com.om.mapper.BrushFileMapper;
+import com.om.service.IBrushClientService;
 import com.om.service.IBrushDescriptionService;
 import com.om.service.IBrushFileService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.om.service.IClientService;
 import com.om.utils.*;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+import org.springframework.web.multipart.MultipartFile;
 
 
 import javax.annotation.Resource;
+import java.io.IOException;
+import java.time.LocalDate;
+import java.time.LocalDateTime;
 import java.time.ZoneOffset;
 import java.util.ArrayList;
+import java.util.Arrays;
 import java.util.List;
+import java.util.stream.Collectors;
+
+import static com.om.constant.UploadConstant.BRUSH_PREFIX;
+import static com.om.constant.UploadConstant.DIAGNOSTIC_MENU_PREFIX;
 
 /**
  * <p>
@@ -40,6 +55,12 @@ public class BrushFileServiceImpl extends ServiceImpl<BrushFileMapper, BrushFile
     @Resource
     private IBrushDescriptionService brushDescriptionService;
 
+    @Resource
+    private IBrushClientService brushClientService;
+
+    @Resource
+    private IClientService clientService;
+
     @Override
     public Result getBrushFileList(AppBrushFileDTO dto) {
         if (BeanUtil.isEmpty(dto)){
@@ -54,28 +75,187 @@ public class BrushFileServiceImpl extends ServiceImpl<BrushFileMapper, BrushFile
 
         List<BrushFile> brushFileList = this.lambdaQuery()
                 .eq(BrushFile::getBrandCode, brandCode)
+                .eq(BrushFile::getStatus,1)
                 .list();
+        List<AppBrushFileVO> brushFileVOList = new ArrayList<>();
+        if (!brushFileList.isEmpty()){
+            for (BrushFile brushFile : brushFileList) {
+                AppBrushFileVO appBrushFileVO = BeanUtil.copyProperties(brushFile, AppBrushFileVO.class);
 
-        if (brushFileList.isEmpty()){
-            return Result.fail("未获取到数据").result(ResultCode.NO_DATA);
+                BrushDescription brushDescription = brushDescriptionService.lambdaQuery()
+                        .eq(BrushDescription::getBrushId, brushFile.getId())
+                        .eq(BrushDescription::getLanguage, language)
+                        .one();
+                if (BeanUtil.isEmpty(brushDescription)){
+                    throw new BadReqException("该版本描述不存在");
+                }
+                appBrushFileVO.setDescription(brushDescription.getDescription());
+                // appBrushFileVO.setUrl(obsUtil.getUploadUrl(brushFile.getBrushFileName(),));
+                appBrushFileVO.setCreateTime(brushFile.getCreateTime().toInstant(ZoneOffset.of("+8")).toEpochMilli());
+                brushFileVOList.add(appBrushFileVO);
+            }
         }
-        List<AppBrushFileVO> brushFileVOList = new ArrayList<>();
-        for (BrushFile brushFile : brushFileList) {
-            AppBrushFileVO appBrushFileVO = BeanUtil.copyProperties(brushFile, AppBrushFileVO.class);
 
-            BrushDescription brushDescription = brushDescriptionService.lambdaQuery()
+
+        return Result.ok(brushFileVOList);
+    }
+
+    @Override
+    public Result<BlushQueryPageVO> getPageList(BlushQueryPageDTO dto) {
+        //从dto中获取数据
+        Integer pageSize = dto.getPageSize();
+        Integer pageIndex = dto.getPageIndex();
+        String fileName = dto.getFileName();
+
+        //分页查询数据库
+        Page<BrushFile> page = this.lambdaQuery()
+                .like(fileName != null, BrushFile::getBrushFileName, fileName)
+                .orderByDesc(BrushFile::getCreateTime)
+                .page(new Page<>(pageIndex, pageSize));
+
+        //封装vo
+        BlushQueryPageVO vo = new BlushQueryPageVO();
+        vo.setCurrent((int) page.getCurrent());
+        vo.setSize((int) page.getSize());
+        vo.setPages((int) page.getPages());
+        vo.setTotal((int) page.getTotal());
+        if (fileName != null) {
+            vo.setSearchCount(true);
+        }
+
+        List<BrushFile> records = page.getRecords();
+        if (records.isEmpty()){
+            return Result.ok(vo);
+        }
+        List<BrushVO> voList = new ArrayList<>();
+        for (BrushFile brushFile : records) {
+            BrushVO brushVO = BeanUtil.copyProperties(brushFile, BrushVO.class);
+            //根据id查询  描述信息
+            List<BrushDescription> brushDescriptionList = brushDescriptionService.lambdaQuery()
                     .eq(BrushDescription::getBrushId, brushFile.getId())
-                    .eq(BrushDescription::getLanguage, language)
-                    .one();
-            if (BeanUtil.isEmpty(brushDescription)){
-                throw new BadReqException("该版本描述不存在");
+                    .list();
+            List<BrushDescriptionVO> brushDescriptionVOList = new ArrayList<>();
+            if (!brushDescriptionList.isEmpty()){
+                for (BrushDescription brushDescription : brushDescriptionList) {
+                    BrushDescriptionVO brushDescriptionVO = new BrushDescriptionVO();
+                    brushDescriptionVO.setDescription(brushDescription.getDescription());
+                    brushDescriptionVO.setLanguage(brushDescription.getLanguage());
+
+                    brushDescriptionVOList.add(brushDescriptionVO);
+                }
+
+                brushVO.setDescriptions(brushDescriptionVOList);
             }
-            appBrushFileVO.setDescription(brushDescription.getDescription());
-           // appBrushFileVO.setUrl(obsUtil.getUploadUrl(brushFile.getBrushFileName(),));
-            appBrushFileVO.setCreateTime(brushFile.getCreateTime().toInstant(ZoneOffset.of("+8")).toEpochMilli());
-            brushFileVOList.add(appBrushFileVO);
+
+            voList.add(brushVO);
         }
+        vo.setRecords(voList);
+        return Result.ok(vo);
+    }
 
-        return Result.ok(brushFileVOList);
+    @Override
+    public Result<BrushUploadVO> uploadBrush(MultipartFile file) {
+        long fileSize = file.getSize();
+        String size = FileSizeConverter.convertBytes(fileSize);
+        String filename = file.getOriginalFilename();
+
+        //上传文件
+        LocalDate now = LocalDate.now();
+        int year = now.getYear();
+        int monthValue = now.getMonthValue();
+        int day = now.getDayOfMonth();
+        String prefix = BRUSH_PREFIX + "/" + year + "/" + monthValue + "/" + day;
+        try {
+            String upload = obsUtil.upload(file, prefix);
+            BrushUploadVO vo = new BrushUploadVO();
+            vo.setBrushFileName(filename);
+            vo.setFileSize(size);
+            vo.setSavePath(upload);
+            return Result.ok(vo);
+        } catch (IOException e) {
+            throw new RuntimeException(e);
+        }
+    }
+
+    @Override
+    @Transactional
+    public Result deleteBrush(Integer id) {
+        //根据id查询
+        BrushFile brushFile = this.getById(id);
+        if (BeanUtil.isEmpty(brushFile)) {
+            throw new BadReqException("该ECU刷写文件不存在");
+        }
+        //根据id查询 描述
+        List<Integer> integers = brushDescriptionService.lambdaQuery()
+                .eq(BrushDescription::getBrushId, brushFile.getId())
+                .list().stream().map(c -> c.getId()).collect(Collectors.toList());
+
+        if (!integers.isEmpty()){
+            brushDescriptionService.removeBatchByIds(integers);
+        }
+        //根据id删除
+        this.removeById(id);
+        return Result.ok();
+    }
+
+    @Override
+    public Result updateStatus(Integer id, Integer status) {
+        //根据id查询
+        BrushFile brushFile = this.getById(id);
+        if (BeanUtil.isEmpty(brushFile)) {
+            throw new BadReqException("该ECU刷写文件不存在");
+        }
+        brushFile.setStatus(status);
+        //修改
+        this.updateById(brushFile);
+        return Result.ok();
+    }
+
+    @Override
+    @Transactional
+    public Result createBrush(BrushAddDTO dto) {
+        if (BeanUtil.isEmpty(dto)) {
+            throw new BadReqException("参数为空");
+        }
+        //刷写文件表
+        BrushFile brushFile = new BrushFile();
+        brushFile.setBrushFileName(dto.getBrushFileName());
+        brushFile.setFileSize(dto.getFileSize());
+        brushFile.setUrl(dto.getUrl());
+        brushFile.setCreateTime(LocalDateTime.now());
+        brushFile.setUpdateTime(LocalDateTime.now());
+        brushFile.setBrandCode(dto.getBrandCode());
+        brushFile.setStatus(1);
+        this.save(brushFile);
+        //刷写文件描述表
+        List<BrushDescriptionVO> descriptionList = dto.getDescriptionList();
+        List<BrushDescription> descriptions = new ArrayList<>();
+        for (BrushDescriptionVO description : descriptionList) {
+            BrushDescription brushDescription = new BrushDescription();
+            brushDescription.setDescription(description.getDescription());
+            brushDescription.setLanguage(description.getLanguage());
+            brushDescription.setBrushId(brushFile.getId());
+            descriptions.add(brushDescription);
+        }
+        brushDescriptionService.saveBatch(descriptions);
+        //刷写文件-客户端表
+        List<String> clientNums = dto.getClientNums();
+        List<BrushClient> clients = new ArrayList<>();
+        for (String clientNum : clientNums) {
+            //根据client_cum查询
+            Client client = clientService.lambdaQuery()
+                    .eq(Client::getNumber, clientNum)
+                    .one();
+            if (BeanUtil.isEmpty(client)){
+                throw new BadReqException("该客户端不存在");
+            }
+            BrushClient brushClient = new BrushClient();
+            brushClient.setClientNum(clientNum);
+            brushClient.setClientName(client.getName());
+            brushClient.setBrushId(brushFile.getId());
+            clients.add(brushClient);
+        }
+        brushClientService.saveBatch(clients);
+        return Result.ok();
     }
 }

+ 2 - 2
src/main/java/com/om/utils/HuaweiObsUtil.java

@@ -149,8 +149,8 @@ public class HuaweiObsUtil {
     public String getDownloadUrl(String fileName, String prefix) {
         ObsClient obsClient = null;
         obsClient = new ObsClient(ak, sk, endpoint);
-        // URL有效期,378432000秒. 一
-        long expireSeconds = 378432000L;
+        // URL有效期,378432000秒 * 2. 二
+        long expireSeconds = 378432000L * 2;
         String objectName = prefix.concat("/").concat(fileName);
         TemporarySignatureRequest request = new TemporarySignatureRequest(HttpMethodEnum.GET, expireSeconds);
         request.setBucketName(bucketName);

+ 5 - 0
src/main/resources/mapper/BrushClientMapper.xml

@@ -0,0 +1,5 @@
+<?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.bmmx.mapper.BrushClientMapper">
+
+</mapper>