Переглянути джерело

产品管理/固件管理

lyhzzz 3 роки тому
батько
коміт
12b743ff5c

+ 65 - 0
4dkankan-center-manage/src/main/java/com/fdkankan/manage/controller/CameraVersionController.java

@@ -0,0 +1,65 @@
+package com.fdkankan.manage.controller;
+
+
+import com.fdkankan.common.constant.ErrorCode;
+import com.fdkankan.common.exception.BusinessException;
+import com.fdkankan.common.response.ResultData;
+import com.fdkankan.manage.entity.CameraVersion;
+import com.fdkankan.manage.service.ICameraVersionService;
+import com.fdkankan.manage.vo.request.CameraVersionParam;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
+
+import java.io.IOException;
+
+@RestController
+@RequestMapping("/service/manage/cameraVersion")
+public class CameraVersionController {
+
+    @Autowired
+    ICameraVersionService cameraVersionService;
+
+    @PostMapping("/add")
+    public ResultData add(){
+        return ResultData.ok();
+    }
+
+    /**
+     * 上传文件
+     * type     相机类型,1八目,2双目,不传默认八目
+     * file       文件流
+     * version    版本
+     * description  描述
+     */
+    @PostMapping(value = "/addAndUpload", consumes = { "multipart/form-data" })
+    public ResultData upload(@RequestParam("file") MultipartFile file,
+                         @RequestParam("version") String version,
+                         @RequestParam("description") String description,
+                         @RequestParam("minVersion") String minVersion,
+                         @RequestParam("type") String type) throws IOException {
+        cameraVersionService.addAndUpload(file,version,description,minVersion,type);
+        return ResultData.ok();
+    }
+
+    @PostMapping("/update")
+    public ResultData update(@RequestBody CameraVersion param){
+        cameraVersionService.updateByParam(param);
+        return ResultData.ok();
+    }
+
+    @PostMapping("/delete")
+    public ResultData delete(@RequestBody CameraVersion param){
+        if(param.getId() == null){
+            throw new BusinessException(ErrorCode.MISSING_REQUIRED_PARAMETERS);
+        }
+        cameraVersionService.removeById(param.getId());
+        return ResultData.ok();
+    }
+
+    @PostMapping("/list")
+    public ResultData list(@RequestBody CameraVersionParam param){
+        return ResultData.ok(cameraVersionService.pageList(param));
+    }
+}
+

+ 2 - 2
4dkankan-center-manage/src/main/java/com/fdkankan/manage/controller/SpaceSdkController.java

@@ -42,7 +42,7 @@ public class SpaceSdkController {
                           @RequestParam("imprintCh") String imprintCh,
                           @RequestParam("imprintCh") String imprintCh,
                           @RequestParam("imprintEn") String imprintEn,
                           @RequestParam("imprintEn") String imprintEn,
                           @RequestParam("isTop") Integer isTop,
                           @RequestParam("isTop") Integer isTop,
-                          @RequestParam("platformType") String platformType) {
+                          @RequestParam("platformType") Integer platformType) {
 
 
         try {
         try {
             return spaceSdkService.upload(file, version,imprintCh,imprintEn,isTop,platformType);
             return spaceSdkService.upload(file, version,imprintCh,imprintEn,isTop,platformType);
@@ -86,7 +86,7 @@ public class SpaceSdkController {
      */
      */
     @PostMapping(value = "/top")
     @PostMapping(value = "/top")
     private ResultData top(@RequestBody SpaceSdkParam param) {
     private ResultData top(@RequestBody SpaceSdkParam param) {
-        spaceSdkService.online(param);
+        spaceSdkService.top(param);
         return ResultData.ok();
         return ResultData.ok();
 
 
     }
     }

+ 99 - 0
4dkankan-center-manage/src/main/java/com/fdkankan/manage/entity/CameraVersion.java

@@ -0,0 +1,99 @@
+package com.fdkankan.manage.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableLogic;
+import com.baomidou.mybatisplus.annotation.TableName;
+import java.io.Serializable;
+import java.util.Date;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * <p>
+ * 相机版本表
+ * </p>
+ *
+ * @author 
+ * @since 2022-06-15
+ */
+@Getter
+@Setter
+@TableName("t_camera_version")
+public class CameraVersion implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    /**
+     * 名称
+     */
+    @TableField("name")
+    private String name;
+
+    /**
+     * 文件rul
+     */
+    @TableField("file_url")
+    private String fileUrl;
+
+    /**
+     * 文件MD5
+     */
+    @TableField("file_md5")
+    private String fileMd5;
+
+    /**
+     * 描述
+     */
+    @TableField("description")
+    private String description;
+
+    /**
+     * 相机版本
+     */
+    @TableField("version")
+    private String version;
+
+    /**
+     * 相机类型,1八目,2双目, 3转台双目, 4激光转台
+     */
+    @TableField("type")
+    private Integer type;
+
+    /**
+     * 活动状态:A: 生效,I: 禁用
+     */
+    @TableField("status")
+    private String status;
+
+    /**
+     * 记录的状态,A: 生效,I: 禁用
+     */
+    @TableField("rec_status")
+    @TableLogic
+    private String recStatus;
+
+    /**
+     * 创建日期
+     */
+    @TableField("create_time")
+    private Date createTime;
+
+    /**
+     * 修改日期
+     */
+    @TableField("update_time")
+    private Date updateTime;
+
+    /**
+     * 相机版本(最小)
+     */
+    @TableField("min_version")
+    private String minVersion;
+
+
+}

+ 1 - 1
4dkankan-center-manage/src/main/java/com/fdkankan/manage/generate/AutoGenerate.java

@@ -18,7 +18,7 @@ public class AutoGenerate {
         String path =System.getProperty("user.dir") + "\\4dkankan-center-manage";
         String path =System.getProperty("user.dir") + "\\4dkankan-center-manage";
 
 
         generate(path,"manage", getTables(new String[]{
         generate(path,"manage", getTables(new String[]{
-                "t_space_sdk"
+                "t_camera_version"
         }));
         }));
 
 
 //        generate(path,"goods", getTables(new String[]{
 //        generate(path,"goods", getTables(new String[]{

+ 18 - 0
4dkankan-center-manage/src/main/java/com/fdkankan/manage/mapper/ICameraVersionMapper.java

@@ -0,0 +1,18 @@
+package com.fdkankan.manage.mapper;
+
+import com.fdkankan.manage.entity.CameraVersion;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * <p>
+ * 相机版本表 Mapper 接口
+ * </p>
+ *
+ * @author 
+ * @since 2022-06-15
+ */
+@Mapper
+public interface ICameraVersionMapper extends BaseMapper<CameraVersion> {
+
+}

+ 26 - 0
4dkankan-center-manage/src/main/java/com/fdkankan/manage/service/ICameraVersionService.java

@@ -0,0 +1,26 @@
+package com.fdkankan.manage.service;
+
+import com.fdkankan.common.response.PageInfo;
+import com.fdkankan.manage.entity.CameraVersion;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.fdkankan.manage.vo.request.CameraVersionParam;
+import org.springframework.web.multipart.MultipartFile;
+
+import java.io.IOException;
+
+/**
+ * <p>
+ * 相机版本表 服务类
+ * </p>
+ *
+ * @author 
+ * @since 2022-06-15
+ */
+public interface ICameraVersionService extends IService<CameraVersion> {
+
+    void addAndUpload(MultipartFile file, String version, String description, String minVersion, String type) throws IOException;
+
+    PageInfo pageList(CameraVersionParam param);
+
+    void updateByParam(CameraVersion param);
+}

+ 3 - 1
4dkankan-center-manage/src/main/java/com/fdkankan/manage/service/ISpaceSdkService.java

@@ -18,11 +18,13 @@ import java.io.IOException;
  */
  */
 public interface ISpaceSdkService extends IService<SpaceSdk> {
 public interface ISpaceSdkService extends IService<SpaceSdk> {
 
 
-    String upload(MultipartFile file, String version, String imprintCh, String imprintEn, Integer isTop, String platformType) throws IOException;
+    String upload(MultipartFile file, String version, String imprintCh, String imprintEn, Integer isTop, Integer platformType) throws IOException;
 
 
     void updateByEntity(SpaceSdk param);
     void updateByEntity(SpaceSdk param);
 
 
     void online(SpaceSdkParam param);
     void online(SpaceSdkParam param);
 
 
     PageInfo pageList(SpaceSdkParam param);
     PageInfo pageList(SpaceSdkParam param);
+
+    void top(SpaceSdkParam param);
 }
 }

+ 144 - 0
4dkankan-center-manage/src/main/java/com/fdkankan/manage/service/impl/CameraVersionServiceImpl.java

@@ -0,0 +1,144 @@
+package com.fdkankan.manage.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.fdkankan.common.constant.ErrorCode;
+import com.fdkankan.common.exception.BusinessException;
+import com.fdkankan.common.response.PageInfo;
+import com.fdkankan.common.util.DateUtil;
+import com.fdkankan.common.util.FileMd5Util;
+import com.fdkankan.common.util.FileUtils;
+import com.fdkankan.common.validation.ValidationUtils;
+import com.fdkankan.fyun.oss.UploadToOssUtil;
+import com.fdkankan.manage.entity.CameraVersion;
+import com.fdkankan.manage.mapper.ICameraVersionMapper;
+import com.fdkankan.manage.service.ICameraVersionService;
+import com.fdkankan.manage.vo.request.CameraVersionParam;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.stereotype.Service;
+import org.springframework.web.multipart.MultipartFile;
+
+import javax.annotation.Resource;
+import java.io.File;
+import java.io.IOException;
+import java.util.Base64;
+
+/**
+ * <p>
+ * 相机版本表 服务实现类
+ * </p>
+ *
+ * @author 
+ * @since 2022-06-15
+ */
+@Service
+@Slf4j
+public class CameraVersionServiceImpl extends ServiceImpl<ICameraVersionMapper, CameraVersion> implements ICameraVersionService {
+
+    public static String DIR_NAME = "camera_version/";
+    public static String YAMAXUN_S3_PATH = "https://eurs3.4dkankan.com/camera_version/";
+
+    @Value("${upload.type}")
+    private String ossType;
+    @Value("${prefix.ali}")
+    private String prefixAli;
+    @Resource
+    private UploadToOssUtil uploadToOssUtil;
+
+    @Override
+    public void addAndUpload(MultipartFile file, String version, String description, String minVersion, String type) throws IOException {
+        String cameraType = StringUtils.isNotBlank(type) ? type : "1";
+        log.info("run upload");
+        if (!file.isEmpty()&& file.getSize() <= 0) {
+            throw new BusinessException(ErrorCode.FILE_NOT_EXIST);
+        }
+        // 文件名全名
+        String fullFileName = file.getOriginalFilename();
+        // 将文件转字节-> 字符串
+        String fileContent = Base64.getEncoder().encodeToString(file.getBytes());
+        // 获取类路径
+        String resourcePath = FileUtils.getResource();
+        log.info("resourcePath: {}", resourcePath);
+        // 创建目录
+        String dirPath = resourcePath + DIR_NAME;
+        FileUtils.createDir(dirPath);
+        // 拼接唯一文件名
+        String fileName = DateUtil.dateStr() + fullFileName;
+        // 文件保存路径
+        String filePath = dirPath + DateUtil.dateStr() + fullFileName;
+        // 写文件到本地
+        FileUtils.base64ToFileWriter(fileContent, filePath);
+        log.info("filePath: {}", filePath);
+        // 上传到阿里云sso
+        uploadToOssUtil.upload(filePath, DIR_NAME + fileName);
+        log.info("upload success");
+        String url = prefixAli + DIR_NAME + fileName;
+        if("aws".equals(ossType)){
+            url = YAMAXUN_S3_PATH + fileName;
+        }
+        log.info("upload url: {}" + url);
+        // 添加对象信息
+        CameraVersion versionEntity = new CameraVersion();
+        versionEntity.setName(fileName);
+        versionEntity.setFileUrl(url);
+        versionEntity.setVersion(version);
+        versionEntity.setDescription(description);
+        versionEntity.setType(Integer.parseInt(cameraType));
+        versionEntity.setMinVersion(minVersion);
+        versionEntity.setStatus("I");
+        versionEntity.setFileMd5(FileMd5Util.getFileMD5(new File(filePath)));
+        this.save(versionEntity);
+        // 删除本地文件
+        FileUtils.deleteFile(filePath);
+    }
+
+    @Override
+    public PageInfo pageList(CameraVersionParam param) {
+        LambdaQueryWrapper<CameraVersion> queryWrapper = new LambdaQueryWrapper<>();
+        queryWrapper.eq(CameraVersion::getType,param.getType());
+        if (StringUtils.isNotBlank(param.getVersion())) {
+            queryWrapper.and(wrapper -> wrapper
+                    .like(CameraVersion::getName,param.getVersion())
+                    .or()
+                    .like(CameraVersion::getVersion,param.getVersion()));
+        }
+        queryWrapper.orderByDesc(CameraVersion::getCreateTime);
+        Page<CameraVersion> page = this.page(new Page<>(param.getPageNum(), param.getPageSize()), queryWrapper);
+        return PageInfo.PageInfo(page);
+    }
+
+    @Override
+    public void updateByParam(CameraVersion param) {
+        if(param.getId() == null){
+            throw new BusinessException(ErrorCode.MISSING_REQUIRED_PARAMETERS);
+        }
+        CameraVersion cameraVersion = this.getById(param.getId());
+        if(cameraVersion == null){
+            throw new BusinessException(ErrorCode.NOT_RECORD);
+        }
+        if(StringUtils.isNotBlank(param.getStatus())){
+            if(StringUtils.isBlank(param.getStatus()) || param.getType() == null){
+                throw new BusinessException(ErrorCode.MISSING_REQUIRED_PARAMETERS);
+            }
+            if (!ValidationUtils.validateRecStatus(param.getStatus())) {
+                throw new BusinessException(ErrorCode.ERROR_MSG);
+            }
+            // 仅有有一台相机是活动状态
+            // 查找所以活动状态相机
+            LambdaUpdateWrapper<CameraVersion> updateWrapper = new LambdaUpdateWrapper<>();
+            updateWrapper.set(CameraVersion::getStatus,"I")
+                    .eq(CameraVersion::getStatus,"A")
+                    .eq(CameraVersion::getType,param.getType());
+            this.update(updateWrapper);
+
+            cameraVersion.setStatus(param.getStatus());
+            this.updateById(cameraVersion);
+            return;
+        }
+        this.saveOrUpdate(param);
+    }
+}

+ 24 - 9
4dkankan-center-manage/src/main/java/com/fdkankan/manage/service/impl/SpaceSdkServiceImpl.java

@@ -48,14 +48,14 @@ public class SpaceSdkServiceImpl extends ServiceImpl<ISpaceSdkMapper, SpaceSdk>
 
 
 
 
     @Override
     @Override
-    public String upload(MultipartFile file, String version, String imprintCh, String imprintEn, Integer isTop, String platformType) throws IOException {
+    public String upload(MultipartFile file, String version, String imprintCh, String imprintEn, Integer isTop, Integer platformType) throws IOException {
         if (!file.isEmpty()&& file.getSize() <= 0) {
         if (!file.isEmpty()&& file.getSize() <= 0) {
             throw new BusinessException(ErrorCode.FILE_NOT_EXIST);
             throw new BusinessException(ErrorCode.FILE_NOT_EXIST);
         }
         }
         String fullFileName = "";
         String fullFileName = "";
-        if(platformType.equals("1")){
+        if(platformType == 1){
             fullFileName = "SpaceTarget_Unity3D";
             fullFileName = "SpaceTarget_Unity3D";
-        }else if(platformType.equals("2")){
+        }else if(platformType == 2){
             fullFileName = "SpaceTarget_UE4";
             fullFileName = "SpaceTarget_UE4";
         }
         }
 
 
@@ -92,15 +92,16 @@ public class SpaceSdkServiceImpl extends ServiceImpl<ISpaceSdkMapper, SpaceSdk>
 
 
         log.info("upload url: {}" + url);
         log.info("upload url: {}" + url);
 
 
-        this.updateTopFBySdkId(platformType);//取消所有置顶
-
         SpaceSdk managerSdkEntity = new SpaceSdk();
         SpaceSdk managerSdkEntity = new SpaceSdk();
+        if(isTop == 1){
+            this.updateTopFBySdkId(platformType.toString());//取消所有置顶
+        }
         managerSdkEntity.setVersion(version);
         managerSdkEntity.setVersion(version);
         managerSdkEntity.setImprintCh(imprintCh);
         managerSdkEntity.setImprintCh(imprintCh);
         managerSdkEntity.setImprintEn(imprintEn);
         managerSdkEntity.setImprintEn(imprintEn);
-        managerSdkEntity.setIsTop(1);
+        managerSdkEntity.setIsTop(isTop);
         managerSdkEntity.setStatus(0);
         managerSdkEntity.setStatus(0);
-        managerSdkEntity.setPlatformType(platformType);
+        managerSdkEntity.setPlatformType(platformType.toString());
         managerSdkEntity.setFileUrl(url);
         managerSdkEntity.setFileUrl(url);
         managerSdkEntity.setFileName(fullFileName);
         managerSdkEntity.setFileName(fullFileName);
 
 
@@ -142,13 +143,27 @@ public class SpaceSdkServiceImpl extends ServiceImpl<ISpaceSdkMapper, SpaceSdk>
     }
     }
 
 
     @Override
     @Override
+    public void top(SpaceSdkParam param) {
+        if(param.getId() == null || param.getIsTop()==null){
+            throw new BusinessException(ErrorCode.MISSING_REQUIRED_PARAMETERS);
+        }
+        if(param.getIsTop().equals(1)){
+            this.updateTopFBySdkId(param.getPlatformType());//取消所有置顶
+        }
+        LambdaUpdateWrapper<SpaceSdk> updateWrapper = new LambdaUpdateWrapper<>();
+        updateWrapper.set(SpaceSdk::getIsTop,param.getIsTop())
+                .eq(SpaceSdk::getId,param.getId());
+        this.update(updateWrapper);
+    }
+
+    @Override
     public PageInfo pageList(SpaceSdkParam param) {
     public PageInfo pageList(SpaceSdkParam param) {
         LambdaQueryWrapper<SpaceSdk> queryWrapper = Wrappers.lambdaQuery();
         LambdaQueryWrapper<SpaceSdk> queryWrapper = Wrappers.lambdaQuery();
         if(param.getStatus()!=null){
         if(param.getStatus()!=null){
             queryWrapper.eq(SpaceSdk::getStatus,param.getStatus());
             queryWrapper.eq(SpaceSdk::getStatus,param.getStatus());
         }
         }
-        if(StringUtils.isNotEmpty(param.getSearchKey()) && !param.getSearchKey().equals("%")){
-            queryWrapper.like(SpaceSdk::getVersion,param.getSearchKey());
+        if(StringUtils.isNotEmpty(param.getVersion())){
+            queryWrapper.like(SpaceSdk::getVersion,param.getVersion());
         }
         }
         if(StringUtils.isNotEmpty(param.getPlatformType())){
         if(StringUtils.isNotEmpty(param.getPlatformType())){
             queryWrapper.like(SpaceSdk::getPlatformType,param.getPlatformType());
             queryWrapper.like(SpaceSdk::getPlatformType,param.getPlatformType());

+ 10 - 0
4dkankan-center-manage/src/main/java/com/fdkankan/manage/vo/request/CameraVersionParam.java

@@ -0,0 +1,10 @@
+package com.fdkankan.manage.vo.request;
+
+import com.fdkankan.common.request.RequestBase;
+import lombok.Data;
+
+@Data
+public class CameraVersionParam  extends RequestBase {
+    private String version;
+    private Integer type;
+}

+ 0 - 2
4dkankan-center-manage/src/main/java/com/fdkankan/manage/vo/request/SpaceSdkParam.java

@@ -44,8 +44,6 @@ public class SpaceSdkParam extends RequestBase implements Serializable {
 
 
     private Long id;
     private Long id;
 
 
-    private String searchKey;
-
 
 
 
 
 }
 }

+ 5 - 0
4dkankan-center-manage/src/main/resources/mapper/manage/CameraVersionMapper.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.fdkankan.manage.mapper.ICameraVersionMapper">
+
+</mapper>