bmmx 1 år sedan
förälder
incheckning
010a05d503

+ 6 - 0
src/main/java/com/om/controller/admin/DiagnosticLogController.java

@@ -47,6 +47,12 @@ public class DiagnosticLogController {
         return diagnosticLogService.downloadFile(id);
     }
 
+    @ApiOperation("删除诊断日志")
+    @GetMapping("delete")
+    public Result delete(@RequestParam Integer id){
+        return diagnosticLogService.delete(id);
+    }
+
 
 
 

+ 33 - 0
src/main/java/com/om/controller/user/APPController.java

@@ -0,0 +1,33 @@
+package com.om.controller.user;
+
+import com.om.entity.dto.AppBaseDTO;
+import com.om.entity.dto.AppDTO;
+import com.om.entity.vo.AppSDKVO;
+import com.om.entity.vo.AppUpdateVO;
+import com.om.service.IAppsClientsService;
+import com.om.service.IAppsService;
+import com.om.service.IVciInfoService;
+import com.om.utils.Result;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.annotation.Resource;
+
+@RestController
+@Api(tags = "APP模块")
+@RequestMapping("app/app-info")
+public class APPController {
+
+    @Resource
+    private IAppsService appsService;
+    @ApiOperation("app更新")
+    @PostMapping("/update")
+    public Result<AppUpdateVO> AppUpdate(@RequestBody AppDTO dto){
+        return appsService.AppUpdate(dto);
+    }
+
+}

+ 10 - 0
src/main/java/com/om/entity/dto/AppDTO.java

@@ -0,0 +1,10 @@
+package com.om.entity.dto;
+
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+@Data
+@NoArgsConstructor
+public class AppDTO extends AppBaseDTO{
+    private String version;
+}

+ 2 - 4
src/main/java/com/om/entity/dto/DiagnoseLogVehicleInfo.java

@@ -12,12 +12,11 @@ import java.time.LocalDateTime;
 public class DiagnoseLogVehicleInfo {
     @ApiModelProperty(value = "激活路径")
     private String activePath;
-
     @ApiModelProperty(value = "品牌")
     private String brand;
 
     @ApiModelProperty(value = "客户端ID")
-    private Integer clientId;
+    private String clientName;
 
     @ApiModelProperty(value = "Sn编码")
     private String vciSn;
@@ -29,8 +28,7 @@ public class DiagnoseLogVehicleInfo {
     private String nameLog;
 
     @ApiModelProperty(value = "诊断日志保存时间")
-    @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
-    private LocalDateTime nameTimePoint;
+    private String nameTimePoint;
 
     @ApiModelProperty(value = "记录时间")
     @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss",timezone="GMT+8")

+ 4 - 5
src/main/java/com/om/entity/po/DiagnosticLog.java

@@ -40,11 +40,11 @@ public class DiagnosticLog implements Serializable {
     @ApiModelProperty(value = "激活路径")
     private String activePath;
 
-    @ApiModelProperty(value = "品牌ID")
-    private Integer brandId;
+    @ApiModelProperty(value = "品牌名称")
+    private String brandName;
 
     @ApiModelProperty(value = "客户端ID")
-    private Integer clientId;
+    private String clientNum;
 
     @ApiModelProperty(value = "国家")
     private String country;
@@ -60,8 +60,7 @@ public class DiagnosticLog implements Serializable {
     private String nameLog;
 
     @ApiModelProperty(value = "诊断日志保存时间")
-    @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
-    private LocalDateTime nameTimePoint;
+    private String nameTimePoint;
 
     @ApiModelProperty(value = "记录时间")
     @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss",timezone="GMT+8")

+ 31 - 0
src/main/java/com/om/entity/vo/AppUpdateVO.java

@@ -0,0 +1,31 @@
+package com.om.entity.vo;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.time.LocalDateTime;
+
+@Data
+@NoArgsConstructor
+public class AppUpdateVO {
+    @ApiModelProperty(value = "文件大小")
+    private long fileSize;
+
+    @ApiModelProperty(value = "文件大小")
+    private String fileName;
+
+    @ApiModelProperty(value = "语言描述")
+    private String description;
+
+    @ApiModelProperty(value = "保存路径")
+    private String url;
+
+    @ApiModelProperty(value = "版本编号")
+    private String version;
+
+    @ApiModelProperty(value = "是否是强制更新")
+    private String isUpdate;
+
+}

+ 4 - 0
src/main/java/com/om/service/IAppsClientsService.java

@@ -1,7 +1,10 @@
 package com.om.service;
 
 import com.baomidou.mybatisplus.extension.service.IService;
+import com.om.entity.dto.AppDTO;
 import com.om.entity.po.AppsClients;
+import com.om.entity.vo.AppUpdateVO;
+import com.om.utils.Result;
 
 /**
  * <p>
@@ -13,4 +16,5 @@ import com.om.entity.po.AppsClients;
  */
 public interface IAppsClientsService extends IService<AppsClients> {
 
+
 }

+ 5 - 0
src/main/java/com/om/service/IAppsService.java

@@ -2,7 +2,10 @@ package com.om.service;
 
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.IService;
+import com.om.entity.dto.AppDTO;
 import com.om.entity.po.Apps;
+import com.om.entity.vo.AppUpdateVO;
+import com.om.utils.Result;
 
 /**
  * <p>
@@ -15,4 +18,6 @@ import com.om.entity.po.Apps;
 public interface IAppsService extends IService<Apps> {
 
     Page<Apps> findApps(Page<Apps> objectPage, String code, String title);
+
+    Result<AppUpdateVO> AppUpdate(AppDTO dto);
 }

+ 3 - 0
src/main/java/com/om/service/IDiagnosticLogService.java

@@ -26,4 +26,7 @@ public interface IDiagnosticLogService extends IService<DiagnosticLog> {
     Result downloadFile(Integer id);
 
     Result updateDiagLog(AppDiagLogDTO dto);
+
+    Result delete(Integer id);
+
 }

+ 12 - 0
src/main/java/com/om/service/impl/AppsClientsServiceImpl.java

@@ -1,11 +1,22 @@
 package com.om.service.impl;
 
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.om.entity.dto.AppDTO;
+import com.om.entity.dto.GuidDTO;
 import com.om.entity.po.AppsClients;
+import com.om.entity.vo.AppUpdateVO;
 import com.om.mapper.AppsClientsMapper;
+import com.om.service.IAppVersionDescribeService;
 import com.om.service.IAppsClientsService;
+import com.om.service.IAppsDescService;
+import com.om.utils.AesUtil;
+import com.om.utils.Result;
 import org.springframework.stereotype.Service;
 
+import javax.annotation.Resource;
+import java.util.List;
+import java.util.stream.Collectors;
+
 /**
  * <p>
  * 应用与客户关联表 服务实现类
@@ -17,4 +28,5 @@ import org.springframework.stereotype.Service;
 @Service
 public class AppsClientsServiceImpl extends ServiceImpl<AppsClientsMapper, AppsClients> implements IAppsClientsService {
 
+
 }

+ 71 - 0
src/main/java/com/om/service/impl/AppsServiceImpl.java

@@ -1,12 +1,30 @@
 package com.om.service.impl;
 
+import cn.hutool.core.bean.BeanUtil;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.om.entity.dto.AppDTO;
+import com.om.entity.dto.GuidDTO;
 import com.om.entity.po.Apps;
+import com.om.entity.po.AppsClients;
+import com.om.entity.po.AppsDesc;
+import com.om.entity.vo.AppUpdateVO;
 import com.om.mapper.AppsMapper;
+import com.om.service.IAppsClientsService;
+import com.om.service.IAppsDescService;
 import com.om.service.IAppsService;
+import com.om.utils.AesUtil;
+import com.om.utils.HuaweiObsUtil;
+import com.om.utils.Result;
 import org.springframework.stereotype.Service;
 
+import javax.annotation.Resource;
+import java.util.Comparator;
+import java.util.List;
+import java.util.Optional;
+import java.util.function.Predicate;
+import java.util.stream.Collectors;
+
 /**
  * <p>
  * 软件应用表 服务实现类
@@ -23,8 +41,61 @@ public class AppsServiceImpl extends ServiceImpl<AppsMapper, Apps> implements IA
         this.appsMapper = appsMapper;
     }
 
+    @Resource
+    private IAppsClientsService appsClientsService;
+
+    @Resource
+    private IAppsDescService appsDescService;
+
+    @Resource
+    private HuaweiObsUtil obsUtil;
+
     @Override
     public Page<Apps> findApps(Page<Apps> objectPage, String code, String title) {
         return appsMapper.findApps(objectPage, code, title);
     }
+
+
+
+    @Override
+    public Result<AppUpdateVO> AppUpdate(AppDTO dto) {
+        String version = dto.getVersion();
+        String guid = dto.getGuid();
+        GuidDTO guidDTO = AesUtil.getGuidDTOFromGuid(guid);
+        String clientNum = guidDTO.getClientNum();
+        String language = dto.getLanguage();
+
+        List<Integer> appids = appsClientsService.lambdaQuery()
+                .eq(AppsClients::getClientNum, clientNum)
+                .list().stream().map(c -> c.getAppId()).collect(Collectors.toList());
+
+        AppUpdateVO vo = new AppUpdateVO();
+        if (!appids.isEmpty()){
+            List<Apps> apps = this.listByIds(appids);
+            if (!apps.isEmpty()){
+                Apps apps1 = apps.stream().max(Comparator.comparing(Apps::getCreateTime)).get();
+                vo.setFileName(apps1.getFileName());
+                vo.setFileSize((long) (Double.valueOf(apps1.getFileSize()) *1024 * 1024));
+                int lastIndexOf = apps1.getFileName().lastIndexOf(".");
+                if (lastIndexOf != -1){
+                    vo.setVersion(apps1.getFileName().substring(0, lastIndexOf));
+                }
+
+                AppsDesc appsDesc = appsDescService.lambdaQuery()
+                        .eq(AppsDesc::getAppId, apps1.getId())
+                        .eq(AppsDesc::getLanguage, language)
+                        .one();
+                if (BeanUtil.isNotEmpty(appsDesc)){
+                    vo.setDescription(appsDesc.getDescription());
+                }else {
+                    vo.setDescription("");
+                }
+                String uploadUrl = obsUtil.getUploadUrl(apps1.getFileName(), "apps");
+                vo.setUrl(uploadUrl);
+                vo.setIsUpdate("1");
+            }
+        }
+
+        return Result.ok(vo);
+    }
 }

+ 43 - 31
src/main/java/com/om/service/impl/DiagnosticLogServiceImpl.java

@@ -6,6 +6,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.om.entity.dto.AppDiagLogDTO;
 import com.om.entity.dto.DiaLogQueryPageDTO;
 import com.om.entity.dto.DiagnoseLogVehicleInfo;
+import com.om.entity.dto.GuidDTO;
 import com.om.entity.po.*;
 import com.om.entity.vo.DiaLogQueryPageVO;
 import com.om.entity.vo.DiaLogQueryVO;
@@ -13,6 +14,7 @@ import com.om.exception.BadReqException;
 import com.om.mapper.DiagnosticLogMapper;
 import com.om.service.*;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.om.utils.AesUtil;
 import com.om.utils.HuaweiObsUtil;
 import com.om.utils.Result;
 import org.apache.commons.lang3.StringUtils;
@@ -78,7 +80,7 @@ public class DiagnosticLogServiceImpl extends ServiceImpl<DiagnosticLogMapper, D
         vo.setPages((int) page.getPages());
         vo.setTotal((int) page.getTotal());
 
-        if (dto.getAccount() != null || dto.getVciSn()!= null || beginTime != null || endTime != null) {
+        if (dto.getAccount() != null || dto.getVciSn() != null || beginTime != null || endTime != null) {
             vo.setSearchCount(true);
         }
 
@@ -87,12 +89,15 @@ public class DiagnosticLogServiceImpl extends ServiceImpl<DiagnosticLogMapper, D
         for (DiagnosticLog record : records) {
             DiaLogQueryVO diaLogQueryVO = BeanUtil.copyProperties(record, DiaLogQueryVO.class);
             diaLogQueryVO.setAccount(record.getUsername());
-            Brand brand = brandService.getById(record.getBrandId());
-            diaLogQueryVO.setBrand(brand.getBrandCn());
-
-            Client client = clientService.getById(record.getClientId());
-            diaLogQueryVO.setClientNum(client.getNumber());
+            diaLogQueryVO.setBrand(record.getBrandName());
 
+            Client client = clientService
+                    .lambdaQuery()
+                    .eq(Client::getNumber,record.getClientNum())
+                    .one();
+            if (client != null) {
+                diaLogQueryVO.setClientNum(client.getNumber());
+            }
             diaLogQueryVO.setVciSn(record.getVciSn());
 
             //todo 车型id vehicleId 查询车型
@@ -109,22 +114,21 @@ public class DiagnosticLogServiceImpl extends ServiceImpl<DiagnosticLogMapper, D
         //根据id集合查询
         List<DiagnosticLog> diagnosticLogs = this.listByIds(ids);
 
-        if (CollectionUtil.isEmpty(diagnosticLogs)){
+        if (CollectionUtil.isEmpty(diagnosticLogs)) {
             throw new BadReqException("本页诊断文件异常");
         }
 
-        LocalDate now = LocalDate.now();
-        int year = now.getYear();
-        int monthValue = now.getMonthValue();
-        int day = now.getDayOfMonth();
 
         List<String> downloadUrls = new ArrayList<>();
         String prefix = DIAGNOSTIC_LOG_PREFIX;
         for (DiagnosticLog diagnosticLog : diagnosticLogs) {
             String nameLog = diagnosticLog.getNameLog();
-
+            int lastIndexOf = nameLog.lastIndexOf("/");
+            if (lastIndexOf != -1) {
+                nameLog = nameLog.substring(lastIndexOf + 1);
+            }
             //获取下载链接
-            String downloadUrl = obsUtil.getDownloadUrl(nameLog, prefix);
+            String downloadUrl = obsUtil.getUploadUrl(nameLog, prefix);
             downloadUrls.add(downloadUrl);
         }
         return Result.ok(downloadUrls);
@@ -141,50 +145,58 @@ public class DiagnosticLogServiceImpl extends ServiceImpl<DiagnosticLogMapper, D
 
         //获取文件名称
         String nameLog = diagnosticLog.getNameLog();
-        LocalDate now = LocalDate.now();
-        int year = now.getYear();
-        int monthValue = now.getMonthValue();
-        int day = now.getDayOfMonth();
+        int lastIndexOf = nameLog.lastIndexOf("/");
+        if (lastIndexOf != -1) {
+            nameLog = nameLog.substring(lastIndexOf + 1);
+        }
         String prefix = DIAGNOSTIC_LOG_PREFIX;
         //获取下载链接
-        String downloadUrl = obsUtil.getDownloadUrl(nameLog, prefix);
+        String downloadUrl = obsUtil.getUploadUrl(nameLog, prefix);
         return Result.ok(downloadUrl);
     }
 
     @Override
     @Transactional
     public Result updateDiagLog(AppDiagLogDTO dto) {
-        if (BeanUtil.isEmpty(dto)){
+        if (BeanUtil.isEmpty(dto)) {
             throw new BadReqException("参数为空!!");
         }
-
+        String username = dto.getUsername();
         String guid = dto.getGuid();
-
+        GuidDTO guidDTO = AesUtil.getGuidDTOFromGuid(guid);
+        String clientNum = guidDTO.getClientNum();
         List<DiagnoseLogVehicleInfo> vehicleInfo = dto.getVehicleInfo();
 
         for (DiagnoseLogVehicleInfo diagnoseLogVehicleInfo : vehicleInfo) {
             DiagnosticLog diagnosticLog = BeanUtil.copyProperties(diagnoseLogVehicleInfo, DiagnosticLog.class);
-
-            VciInfo vciInfo = vciInfoService.lambdaQuery()
+            /*
+           VciInfo vciInfo = vciInfoService.lambdaQuery()
                     .eq(VciInfo::getVciNum, diagnoseLogVehicleInfo.getVciSn())
                     .one();
             if (BeanUtil.isEmpty(vciInfo)){
                 throw new BadReqException("该vci设备不存在!!!");
             }
+             */
 
-            Brand brand = brandService.lambdaQuery()
-                    .eq(Brand::getBrandCn, diagnoseLogVehicleInfo.getBrand())
-                    .one();
-            if (BeanUtil.isEmpty(brand)){
-                throw new BadReqException("该品牌不存在!!!");
-            }
-            diagnosticLog.setVciSn(vciInfo.getVciNum());
-            diagnosticLog.setBrandId(brand.getId());
+            diagnosticLog.setVciSn(diagnoseLogVehicleInfo.getVciSn());
+            diagnosticLog.setClientNum(clientNum);
+            diagnosticLog.setBrandName(diagnoseLogVehicleInfo.getBrand());
             diagnosticLog.setCreateTime(LocalDateTime.now());
             diagnosticLog.setUpdateTime(LocalDateTime.now());
+            diagnosticLog.setUsername(username);
             this.save(diagnosticLog);
         }
 
         return Result.ok();
     }
+
+    @Override
+    public Result delete(Integer id) {
+        DiagnosticLog diagnosticLog = this.getById(id);
+        if (BeanUtil.isEmpty(diagnosticLog)) {
+            throw new BadReqException("该诊断日志不存在");
+        }
+
+        return Result.ok(this.removeById(diagnosticLog.getId()));
+    }
 }

+ 1 - 1
src/main/java/com/om/service/impl/DiagnosticMenuServiceImpl.java

@@ -214,7 +214,7 @@ public class DiagnosticMenuServiceImpl extends ServiceImpl<DiagnosticMenuMapper,
 
         DiagnosticMenu diagnosticMenu = this.getOne(wrapper);
         if (BeanUtil.isEmpty(diagnosticMenu)) {
-            throw new BadReqException("该菜单不存在");
+            return Result.fail("该菜单不存在").result(24001);
         }
         AppMenuVO vo = new AppMenuVO();
         BeanUtil.copyProperties(diagnosticMenu, vo);

+ 8 - 0
src/main/java/com/om/service/impl/UserServiceImpl.java

@@ -213,6 +213,14 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements IU
         User addUser = new User();
         BeanUtil.copyProperties(user, addUser);
 
+        String username = user.getUsername();
+        User one = this.lambdaQuery()
+                .eq(User::getUsername, username)
+                .one();
+        if (BeanUtil.isNotEmpty(one)) {
+            throw new BadReqException("该用户已存在");
+        }
+
         if (addUser.getUsername() == null || addUser.getPassword() == null) {
             return Result.error();
         }

+ 5 - 1
src/main/java/com/om/service/impl/VciInfoServiceImpl.java

@@ -279,7 +279,11 @@ public class VciInfoServiceImpl extends ServiceImpl<VciInfoMapper, VciInfo> impl
                 //根据sdkid查询sdk版本
                 SdkVersionInfo sdkVersionInfo = sdkVersionInfoService.getById(sdkId);
                 if (!BeanUtil.isEmpty(sdkVersionInfo)){
-                    appData1.setMinSdkVersion(sdkVersionInfo.getVersionNum());
+                    appData1.setMinSdkVersion("");
+                    int lastIndexOf1 = sdkVersionInfo.getFileName().lastIndexOf(".");
+                    if (lastIndexOf1 != -1){
+                        appData1.setMinSdkVersion(sdkVersionInfo.getFileName().substring(0, lastIndexOf1));
+                    }
                 }
                 appData.add(appData1);
             }