Explorar o código

应用管理功能

zhaoxian %!s(int64=4) %!d(string=hai) anos
pai
achega
91cf6ca692

+ 20 - 1
module-kuaishou/src/main/java/cn/com/ctop/kuaishou/modules/ai/controller/KuaishouAppPackageController.java

@@ -1,6 +1,8 @@
 package cn.com.ctop.kuaishou.modules.ai.controller;
 
 import cn.com.ctop.common.module.annotation.AutoLog;
+import cn.com.ctop.common.module.entity.Project;
+import cn.com.ctop.common.module.service.IProjectService;
 import cn.com.ctop.common.module.utils.Check;
 import cn.com.ctop.common.module.utils.ExportExcelUtils;
 import cn.com.ctop.common.module.utils.LoadFileUtil;
@@ -47,6 +49,8 @@ import java.util.List;
 public class KuaishouAppPackageController {
     @Autowired
     private IKuaishouAppPackageService kuaishouAppPackageService;
+    @Autowired
+    private IProjectService projectService;
 
     /**
      * 分页列表查询
@@ -254,7 +258,15 @@ public class KuaishouAppPackageController {
                     return Result.error("请填写应用包名");
                 }
             }
-            kuaishouAppPackage.setImageMd5(LoadFileUtil.getMD5(kuaishouAppPackage.getAppIconUrl()));
+            if (!kuaishouAppPackage.getAppIconUrl().contains("http")) {
+                kuaishouAppPackage.setAppIconUrl("https:".concat(kuaishouAppPackage.getAppIconUrl()));
+            }
+
+            String newFileUrl = kuaishouAppPackageService.getDownloadPath(kuaishouAppPackage.getAppIconUrl());
+            if (Check.isNull(newFileUrl)) {
+                return Result.error("本地下载文件失败,路径:" + kuaishouAppPackage.getAppIconUrl());
+            }
+            kuaishouAppPackage.setImageMd5(LoadFileUtil.getMD5(newFileUrl));
             kuaishouAppPackage.setDataStatus(1);//有效
             kuaishouAppPackageService.saveOrUpdate(kuaishouAppPackage);
             return Result.ok("操作成功!");
@@ -368,6 +380,10 @@ public class KuaishouAppPackageController {
         if (kuaishouAppPackage == null) {
             result.error500("未找到对应实体");
         } else {
+            Project project = projectService.getById(kuaishouAppPackage.getProjectId());
+            if (!Check.isNull(project)) {
+                kuaishouAppPackage.setProjectName(project.getProjectName());
+            }
             result.setResult(kuaishouAppPackage);
             result.setSuccess(true);
         }
@@ -438,6 +454,9 @@ public class KuaishouAppPackageController {
             } else if (Check.isNull(platform)) {
                 return Result.error("请选择应用类型");
             }
+            if (!imageUrl.contains("http")) {
+                imageUrl = "https:".concat(imageUrl);
+            }
             return kuaishouAppPackageService.importExcel(file, projectId, platform, imageUrl);
         } catch (Exception e) {
             e.printStackTrace();

+ 4 - 0
module-kuaishou/src/main/java/cn/com/ctop/kuaishou/modules/ai/entity/KuaishouAppPackage.java

@@ -1,6 +1,7 @@
 package cn.com.ctop.kuaishou.modules.ai.entity;
 
 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;
@@ -40,6 +41,9 @@ public class KuaishouAppPackage {
     @Excel(name = "项目ID", width = 15)
     @ApiModelProperty(value = "项目ID")
     private Long projectId;
+
+    @TableField(exist = false)
+    private String projectName;
     /**
      * 应用唯一标识
      */

+ 2 - 2
module-kuaishou/src/main/java/cn/com/ctop/kuaishou/modules/ai/mapper/xml/KuaishouAppPackageMapper.xml

@@ -11,7 +11,7 @@
         app_version,
         app_name,
         app_icon_url,
-        image_token,
+        image_md5,
         package_name,
         platform,
         app_privacy_url,
@@ -29,7 +29,7 @@
             #{app.appVersion},
             #{app.appName},
             #{app.appIconUrl},
-            #{app.imageToken},
+            #{app.imageMd5},
             #{app.packageName},
             #{app.platform},
             #{app.appPrivacyUrl},

+ 2 - 0
module-kuaishou/src/main/java/cn/com/ctop/kuaishou/modules/ai/service/IKuaishouAppPackageService.java

@@ -34,4 +34,6 @@ public interface IKuaishouAppPackageService extends IService<KuaishouAppPackage>
     Result<Object> getRelatedGroups(Long id, Long accountId);
 
     Result<Object> getAccountByProjectId(Long projectId, String id);
+
+    String getDownloadPath(String url);
 }

+ 30 - 5
module-kuaishou/src/main/java/cn/com/ctop/kuaishou/modules/ai/service/impl/KuaishouAppPackageServiceImpl.java

@@ -30,11 +30,14 @@ import org.apache.poi.ss.usermodel.Sheet;
 import org.apache.poi.ss.usermodel.Workbook;
 import org.apache.poi.xssf.usermodel.XSSFWorkbook;
 import org.jeecg.common.api.vo.Result;
+import org.jeecg.common.util.DateUtils;
 import org.jeecg.common.util.MD5Util;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Service;
 import org.springframework.web.multipart.MultipartFile;
 
+import java.io.IOException;
 import java.text.DecimalFormat;
 import java.text.SimpleDateFormat;
 import java.util.ArrayList;
@@ -42,6 +45,7 @@ import java.util.Date;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
+import java.util.UUID;
 
 /**
  * 项目绑定的应用
@@ -70,7 +74,8 @@ public class KuaishouAppPackageServiceImpl extends ServiceImpl<KuaishouAppPackag
     private IKuaiShouImageGetService imageGetService;
     @Autowired
     private IKuaiShouMaterialUploadService uploadService;
-
+    @Value("${zip.local.download-path}")
+    private String downloadPath;
     @Override
     public Result<Object> importExcel(MultipartFile file, Long projectId, Integer platform, String imageUrl) throws Exception {
         JSONObject returnJson = new JSONObject();
@@ -92,6 +97,16 @@ public class KuaishouAppPackageServiceImpl extends ServiceImpl<KuaishouAppPackag
         if (rows == 0) {
             throw new Exception("请填写数据");
         }
+        String newFileUrl = getDownloadPath(imageUrl);
+        if (Check.isNull(newFileUrl)) {
+            return Result.error("本地下载文件失败,路径:" + imageUrl);
+        }
+        String md5 = null;
+        try {
+            md5 = LoadFileUtil.getMD5(newFileUrl);
+        } catch (IOException e) {
+            log.error("获取MD5签名失败", e);
+        }
         //查询项目下的应用标记(同一账户下应用标记不能重复),在此视为同一项目不可重复
         List<String> appVersions = appPackageMapper.queryAppVersions(projectId);
         StringBuffer errAppVersions = new StringBuffer();
@@ -129,14 +144,14 @@ public class KuaishouAppPackageServiceImpl extends ServiceImpl<KuaishouAppPackag
                 appPackage.setAppIconUrl(imageUrl);
                 appPackage.setPackageName(packageName);
                 appPackage.setPlatform(platform);
-                appPackage.setImageMd5(LoadFileUtil.getMD5(imageUrl));
+                appPackage.setImageMd5(md5);
                 appPackage.setTrackUrl(trackUrl);
                 appPackage.setAppPrivacyUrl(appPrivacyUrl);
                 appPackage.setDataStatus(1);//有效
                 appPackage.setUrl(url);
-                String md5 = MD5Util.getMd5(url);
-                if (!Check.isNull(md5)) {
-                    appPackage.setAppMd5(md5);
+                String appmd5 = MD5Util.getMd5(url);
+                if (!Check.isNull(appmd5)) {
+                    appPackage.setAppMd5(appmd5);
                 }
                 if (!Check.isNull(useSdk)) {
                     appPackage.setUseSdk(Integer.valueOf(useSdk));
@@ -144,6 +159,7 @@ public class KuaishouAppPackageServiceImpl extends ServiceImpl<KuaishouAppPackag
                 appList.add(appPackage);
             }
         }
+        LoadFileUtil.delFile(newFileUrl);
         String errVersion = errAppVersions.toString();
         if (!Check.isNull(errVersion)) {
             return Result.error("数据异常,重复的应用标记:" + errVersion.substring(0, errVersion.length() - 1));
@@ -152,6 +168,15 @@ public class KuaishouAppPackageServiceImpl extends ServiceImpl<KuaishouAppPackag
         return Result.ok("文件导入成功");
     }
 
+    public String getDownloadPath(String url) {
+        StringBuffer path = new StringBuffer();
+        path.append(downloadPath).append(DateUtils.getNowDate(DateUtils.WEB_FORMAT)).append("/").append(UUID.randomUUID().toString()).append("/");
+        if (!url.contains("http")) {
+            url = "https:".concat(url);
+        }
+        return LoadFileUtil.downLoadFromUrl(url, path.toString());
+    }
+
     private String getCellValue(Cell cell) {
         String value = "";
         if (cell != null) {