yumeng 5 éve
szülő
commit
677d88e79c

+ 42 - 14
jeecg-boot-module-system/src/main/java/org/jeecg/modules/ctop/controller/MaterialImageInfoController.java

@@ -1,8 +1,10 @@
 package org.jeecg.modules.ctop.controller;
 
-import cn.com.ctop.common.module.entity.MaterialCutFrame;
 import cn.com.ctop.common.module.entity.MaterialImageInfo;
+import cn.com.ctop.common.module.entity.MaterialInfo;
+import cn.com.ctop.common.module.mapper.MaterialInfoMapper;
 import cn.com.ctop.common.module.service.IMaterialImageInfoService;
+import cn.com.ctop.common.module.service.IMaterialInfoService;
 import cn.com.ctop.common.module.utils.Check;
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONArray;
@@ -35,7 +37,6 @@ import javax.servlet.http.HttpServletResponse;
 import java.io.IOException;
 import java.io.UnsupportedEncodingException;
 import java.net.URLDecoder;
-import java.sql.Date;
 import java.util.Arrays;
 import java.util.List;
 import java.util.Map;
@@ -54,20 +55,22 @@ import java.util.Map;
 public class MaterialImageInfoController {
     @Autowired
     private IMaterialImageInfoService MaterialImageInfoService;
-
-
+    @Autowired
+    private IMaterialInfoService materialInfoService;
+    @Autowired
+    private MaterialInfoMapper materialInfoMapper;
 
 
     @ApiOperation(value = "截屏-分页列表查询", notes = "截屏-分页列表查询")
     @GetMapping(value = "/pageList")
     public Result<IPage<MaterialImageInfo>> pageList(MaterialImageInfo materialImageInfo,
-                                                         @RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo,
-                                                         @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize,
-                                                         HttpServletRequest req) {
-        Result<IPage<MaterialCutFrame>> result = new Result<IPage<MaterialCutFrame>>();
-        QueryWrapper<MaterialCutFrame> queryWrapper = QueryGenerator.initQueryWrapper(materialCutFrame, req.getParameterMap());
-        Page<MaterialCutFrame> page = new Page<MaterialCutFrame>(pageNo, pageSize);
-        IPage<MaterialCutFrame> pageList = materialCutFrameService.page(page, queryWrapper);
+                                                     @RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo,
+                                                     @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize,
+                                                     HttpServletRequest req) {
+        Result<IPage<MaterialImageInfo>> result = new Result<IPage<MaterialImageInfo>>();
+        QueryWrapper<MaterialImageInfo> queryWrapper = QueryGenerator.initQueryWrapper(materialImageInfo, req.getParameterMap());
+        Page<MaterialImageInfo> page = new Page<MaterialImageInfo>(pageNo, pageSize);
+        IPage<MaterialImageInfo> pageList = MaterialImageInfoService.page(page, queryWrapper);
         result.setSuccess(true);
         result.setResult(pageList);
         return result;
@@ -94,6 +97,29 @@ public class MaterialImageInfoController {
         return result;
     }
 
+
+    @GetMapping(value = "/getDetail")
+    public Result<MaterialImageInfo> getDetail(String id) {
+        Result<MaterialImageInfo> result = new Result<>();
+        MaterialImageInfo materialImageInfo = MaterialImageInfoService.getById(id);
+        if (!Check.isNull(materialImageInfo)) {
+            MaterialInfo materialmInfo = materialInfoService.getById(materialImageInfo.getVideoId());
+            if (!Check.isNull(materialmInfo)) {
+                materialImageInfo.setVideoUrl(materialmInfo.getUrl());
+
+            }
+
+            String auditorName = materialInfoMapper.selectUserNameById(materialImageInfo.getAuditorId());
+            materialImageInfo.setAuditorName(auditorName);
+
+        }
+
+        result.setSuccess(true);
+        result.setResult(materialImageInfo);
+        return result;
+    }
+
+
     /**
      * 添加
      *
@@ -118,10 +144,11 @@ public class MaterialImageInfoController {
     /**
      * 编辑
      *
-     * @param MaterialImageInfo
+     * @param
      * @return
      */
     @AutoLog(value = "素材-编辑")
+
     @ApiOperation(value = "素材-编辑", notes = "素材-编辑")
     @PutMapping(value = "/edit")
     public Result<MaterialImageInfo> edit(@RequestBody MaterialImageInfo MaterialImageInfo) {
@@ -130,6 +157,9 @@ public class MaterialImageInfoController {
         if (MaterialImageInfoEntity == null) {
             result.error500("未找到对应实体");
         } else {
+            String url = (String) MaterialImageInfo.getUrl();
+            String urlStr = "https:" + url;
+            MaterialImageInfo.setUrl(urlStr);
             boolean ok = MaterialImageInfoService.updateById(MaterialImageInfo);
             if (ok) {
                 result.success("修改成功!");
@@ -153,7 +183,6 @@ public class MaterialImageInfoController {
                     JSONObject updateJson = updateArr.getJSONObject(i);
                     if (!Check.isNull(updateJson)) {
                         MaterialImageInfo materialImageInfo = new MaterialImageInfo();
-
                         Long id = updateJson.getLong("id");
                         materialImageInfo.setId(id);
                         Integer status = updateJson.getInteger("status");
@@ -171,7 +200,6 @@ public class MaterialImageInfoController {
         } catch (Exception e) {
             result.setSuccess(false);
             e.printStackTrace();
-
         }
 
         return result;

+ 10 - 0
module-common/src/main/java/cn/com/ctop/common/module/entity/MaterialImageInfo.java

@@ -1,6 +1,7 @@
 package cn.com.ctop.common.module.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 io.swagger.annotations.ApiModel;
@@ -122,6 +123,8 @@ public class MaterialImageInfo {
     @Excel(name = "size", width = 15)
     @ApiModelProperty(value = "size")
     private String size;
+
+    private Integer excellent;
     /**
      * createTime
      */
@@ -132,4 +135,11 @@ public class MaterialImageInfo {
      */
     @ApiModelProperty(value = "updateTime")
     private Date updateTime;
+
+    @TableField(exist = false)
+    private String videoUrl;
+
+    @TableField(exist = false)
+    private String auditorName;
+
 }

+ 1 - 1
module-common/src/main/java/cn/com/ctop/common/module/service/IMaterialImageInfoService.java

@@ -22,5 +22,5 @@ public interface IMaterialImageInfoService extends IService<MaterialImageInfo> {
 
     Map<String, Object> checkMaterialInfo(String code, Long projectId);
 
-    void uploadImage(String signature, Long accountId, String accessToken);
+
 }

+ 8 - 94
module-common/src/main/java/cn/com/ctop/common/module/service/impl/MaterialImageInfoServiceImpl.java

@@ -1,24 +1,21 @@
 package cn.com.ctop.common.module.service.impl;
 
-import cn.com.ctop.common.module.entity.CtopOauthToken;
 import cn.com.ctop.common.module.entity.MaterialImageInfo;
-import cn.com.ctop.common.module.entity.MaterialParameter;
-import cn.com.ctop.common.module.enums.MaterialEnum;
 import cn.com.ctop.common.module.mapper.MaterialImageInfoMapper;
 import cn.com.ctop.common.module.service.IMaterialImageInfoService;
-import cn.com.ctop.common.module.utils.*;
+import cn.com.ctop.common.module.utils.Check;
+import cn.com.ctop.common.module.utils.ResultMapUtils;
+import cn.com.ctop.common.module.utils.StatusCode;
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.core.io.FileSystemResource;
+import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Service;
 
-import java.io.File;
 import java.util.HashMap;
-import java.util.List;
 import java.util.Map;
 
 /**
@@ -32,6 +29,9 @@ import java.util.Map;
 @Service
 public class MaterialImageInfoServiceImpl extends ServiceImpl<MaterialImageInfoMapper, MaterialImageInfo> implements IMaterialImageInfoService {
 
+    @Value("${oss.replace.download}")
+    private String downloadUrl;
+
     @Autowired
     private MaterialImageInfoMapper materialImageInfoMapper;
 
@@ -95,91 +95,5 @@ public class MaterialImageInfoServiceImpl extends ServiceImpl<MaterialImageInfoM
 
     }
 
-    /**
-     * 上传封面
-     *
-     * @param videoId
-     * @param accountId
-     * @param accessToken
-     */
-    @Override
-    public void uploadImage(String videoId, Long accountId, String accessToken) {
-
-
-        QueryWrapper<MaterialImageInfo> imageInfoQueryWrapper = new QueryWrapper<>();
-        imageInfoQueryWrapper.eq("video_id", videoId);
-        imageInfoQueryWrapper.eq("status", 0);
-        List<MaterialImageInfo> imageList = this.list(imageInfoQueryWrapper);
-        if(){
-        }
-    }
-
-
-/*
-
-        String localUrl = LoadFileUtil.downLoadFromUrl(url, downloadUrl);
-        FileSystemResource resource = new FileSystemResource(new File(localUrl));
-        Map<String, String> headerMap = new HashMap<>();
-        headerMap.put("Content-Type", "multipart/form-data");
-        JSONObject requestJson = new JSONObject();
-        requestJson.put("file", resource);
-        requestJson.put("signature", materialInfo.getCode());
-        QueryWrapper<MaterialParameter> parameterQueryWrapper = new QueryWrapper<>();
-        parameterQueryWrapper.eq("material_id", materialInfo.getId());
-        parameterQueryWrapper.orderByDesc("create_time").last("limit 1");
-        MaterialParameter materialParameter = materialParameterService.getOne(parameterQueryWrapper);
-        if (!Check.isNull(materialParameter)) {
-            Integer type = MaterialEnum.getTypeBySize(Integer.valueOf(materialParameter.getWidth()), Integer.valueOf(materialParameter.getHeight()));
-            if (!Check.isNull(type) && type != 0) {
-                requestJson.put("type", type);
-            }
-        }
 
-
-        String url = PropertiesUtils.getConfig("kuaishou_api_url") + KuaishouInterfaceConstant.IMAGE_UPLOAD;
-        requestJson.put("type", "2");
-        requestJson.put("upload_type", "1");
-
-
-        for (int i = 0; i < accountArray.size(); i++) {
-            Long accountId = accountArray.getLong(i);
-            QueryWrapper<CtopOauthToken> tokenQueryWrapper = new QueryWrapper<>();
-            tokenQueryWrapper.eq("account_id", accountId);
-            tokenQueryWrapper.eq("media_id", mediaId);
-            tokenQueryWrapper.orderByDesc("create_time");
-            tokenQueryWrapper.last("limit 1");
-            CtopOauthToken ctopOauthToken = oauthTokenMapper.selectOne(tokenQueryWrapper);
-            if (Check.isNull(ctopOauthToken)) {
-                continue;
-            }
-            requestJson.put("advertiser_id", accountId);
-            headerMap.put("Access-Token", ctopOauthToken.getAccessToken());
-
-
-            if ("IMAGE".equals(materialInfo.getType())) {
-                //   kuaishouInterfaceService.imageGet(accountId, ctopOauthToken.getAccessToken(), dataJson.getString("image_token"));
-                if (!Check.isNull(dataJson)) {
-                    String signature = dataJson.getString("signature");
-                    String image_token = dataJson.getString("image_token");
-                    KuaiShouImageGet imageGet = new KuaiShouImageGet();
-                    imageGet.setId(accountId + image_token);
-                    imageGet.setAccountId(accountId);
-                    imageGet.setUrl(dataJson.getString("url"));
-                    imageGet.setWidth(dataJson.getInteger("width"));
-                    imageGet.setHeight(dataJson.getInteger("height"));
-                    imageGet.setSize(dataJson.getInteger("size"));
-                    imageGet.setFormat(dataJson.getString("format"));
-                    Integer type = MaterialEnum.getTypeBySize(dataJson.getInteger("width"), dataJson.getInteger("height"));
-                    if (!Check.isNull(type)) {
-                        imageGet.setMaterialType(type);
-                    }
-                    imageGet.setSignature(signature);
-                    imageGet.setImageToken(image_token);
-                    iKuaiShouImageGetService.saveOrUpdate(imageGet);
-                }
-
-            }
-*/
-
-
-        }
+}

+ 5 - 79
module-common/src/main/java/cn/com/ctop/common/module/utils/ExportExcelUtils.java

@@ -1,13 +1,7 @@
 package cn.com.ctop.common.module.utils;
 
-import org.apache.poi.hssf.usermodel.HSSFCellStyle;
-import org.apache.poi.hssf.usermodel.HSSFFont;
-import org.apache.poi.hssf.usermodel.HSSFRichTextString;
-import org.apache.poi.hssf.util.HSSFColor;
-import org.apache.poi.ss.usermodel.BorderStyle;
-import org.apache.poi.ss.usermodel.FillPatternType;
-import org.apache.poi.ss.usermodel.HorizontalAlignment;
-import org.apache.poi.ss.usermodel.IndexedColors;
+
+import org.apache.poi.ss.usermodel.*;
 import org.apache.poi.xssf.usermodel.*;
 
 import java.math.BigDecimal;
@@ -27,75 +21,6 @@ public class ExportExcelUtils {
      * @Title: exportExcel
      * @Description: 导出Excel的方法
      */
-    public void exportExcelOld(XSSFWorkbook workbook, int sheetNum,
-                               String sheetTitle, String[] headers, List<List<Object>> result) throws Exception {
-        // 生成一个表格
-        XSSFSheet sheet = workbook.createSheet();
-        workbook.setSheetName(sheetNum, sheetTitle);
-        // 设置表格默认列宽度为20个字节
-        sheet.setDefaultColumnWidth((short) 20);
-        // 生成一个样式
-        XSSFCellStyle style = workbook.createCellStyle();
-        // 设置这些样式
-        style.setFillForegroundColor(HSSFColor.PALE_BLUE.index);
-        //  style.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND);
-        style.setBorderBottom(HSSFCellStyle.BORDER_THIN);
-        style.setBorderLeft(HSSFCellStyle.BORDER_THIN);
-        style.setBorderRight(HSSFCellStyle.BORDER_THIN);
-        style.setBorderTop(HSSFCellStyle.BORDER_THIN);
-        style.setAlignment(HSSFCellStyle.ALIGN_CENTER);
-        // 生成一个字体
-        XSSFFont font = workbook.createFont();
-        font.setColor(HSSFColor.BLACK.index);
-        font.setFontHeightInPoints((short) 12);
-        font.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);
-        // 把字体应用到当前的样式
-        style.setFont(font);
-
-        // 指定当单元格内容显示不下时自动换行
-        style.setWrapText(true);
-
-        // 产生表格标题行
-        XSSFRow row = sheet.createRow(0);
-        for (int i = 0; i < headers.length; i++) {
-            XSSFCell cell = row.createCell((short) i);
-
-            cell.setCellStyle(style);
-            HSSFRichTextString text = new HSSFRichTextString(headers[i]);
-            cell.setCellValue(text.toString());
-        }
-        // 遍历集合数据,产生数据行
-        if (result != null) {
-            int index = 1;
-            for (List<Object> m : result) {
-                row = sheet.createRow(index);
-                int cellIndex = 0;
-                for (Object obj : m) {
-                    XSSFCell cell = row.createCell((short) cellIndex);
-                    if (!Check.isNull(obj)) {
-                        if (obj instanceof String) {
-                            cell.setCellValue((String) obj);
-                        } else if (obj instanceof Double) {
-                            cell.setCellValue((Double) obj);
-                        } else if (obj instanceof BigDecimal) {
-                            BigDecimal bigDecimal = (BigDecimal) obj;
-                            cell.setCellValue(bigDecimal.doubleValue());
-                        } else if (obj instanceof Long) {
-                            Long aLong = Long.valueOf(String.valueOf(obj));
-                            cell.setCellValue(aLong.doubleValue());
-                        } else {
-                            cell.setCellValue(obj.toString());
-                        }
-                    } else {
-                        cell.setCellValue(0);
-                    }
-
-                    cellIndex++;
-                }
-                index++;
-            }
-        }
-    }
 
     public void exportExcel(XSSFWorkbook workbook, int sheetNum,
                             String sheetTitle, String[] headers, List<List<Object>> result) throws Exception {
@@ -113,7 +38,9 @@ public class ExportExcelUtils {
         style.setBorderLeft(BorderStyle.THIN);
         style.setBorderRight(BorderStyle.THIN);
         style.setBorderTop(BorderStyle.THIN);
+        // style.setAlignment(HorizontalAlignment.CENTER);
         style.setAlignment(HorizontalAlignment.CENTER);
+        style.setVerticalAlignment(VerticalAlignment.CENTER);//垂直居中
         // 生成一个字体
         XSSFFont font = workbook.createFont();
         font.setColor(IndexedColors.BLACK.index);
@@ -129,10 +56,9 @@ public class ExportExcelUtils {
         XSSFRow row = sheet.createRow(0);
         for (int i = 0; i < headers.length; i++) {
             XSSFCell cell = row.createCell((short) i);
-
             cell.setCellStyle(style);
             XSSFRichTextString text = new XSSFRichTextString(headers[i]);
-            cell.setCellValue(headers[i]);
+            cell.setCellValue(text.toString());
         }
         // 遍历集合数据,产生数据行
         if (result != null) {

+ 7 - 0
module-ctop/src/main/java/cn/com/ctop/manage/modules/material/service/IMaterialUploadImageService.java

@@ -0,0 +1,7 @@
+package cn.com.ctop.manage.modules.material.service;
+
+public interface IMaterialUploadImageService {
+
+
+    void uploadImage(String id, Long accountId, String accessToken);
+}

+ 164 - 0
module-ctop/src/main/java/cn/com/ctop/manage/modules/material/service/impl/MaterialUploadImageServiceImpl.java

@@ -0,0 +1,164 @@
+package cn.com.ctop.manage.modules.material.service.impl;
+
+import cn.com.ctop.common.module.entity.MaterialImageInfo;
+import cn.com.ctop.common.module.enums.MaterialEnum;
+import cn.com.ctop.common.module.service.IMaterialImageInfoService;
+import cn.com.ctop.common.module.utils.Check;
+import cn.com.ctop.common.module.utils.KuaishouInterfaceConstant;
+import cn.com.ctop.common.module.utils.LoadFileUtil;
+import cn.com.ctop.common.module.utils.PropertiesUtils;
+import cn.com.ctop.kuaishou.modules.batch.entity.KuaiShouImageGet;
+import cn.com.ctop.kuaishou.modules.batch.service.IKuaiShouImageGetService;
+import cn.com.ctop.manage.modules.material.service.IMaterialUploadImageService;
+import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.http.ParseException;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.core.io.FileSystemResource;
+import org.springframework.http.HttpEntity;
+import org.springframework.http.HttpHeaders;
+import org.springframework.http.HttpMethod;
+import org.springframework.http.ResponseEntity;
+import org.springframework.stereotype.Service;
+import org.springframework.util.LinkedMultiValueMap;
+import org.springframework.util.MultiValueMap;
+import org.springframework.web.client.RestTemplate;
+
+import java.io.File;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.concurrent.ExecutorService;
+import java.util.concurrent.Executors;
+
+@Slf4j
+@Service
+public class MaterialUploadImageServiceImpl implements IMaterialUploadImageService {
+    static ExecutorService executorService = Executors.newFixedThreadPool(4);
+    @Value("${oss.replace.replace-value}")
+    private String replaceValue;
+    @Value("${oss.replace.replace-old-value}")
+    private String replaceOldValue;
+    @Value("${oss.replace.download}")
+    private String downloadUrl;
+
+
+    @Autowired
+    private IMaterialImageInfoService materialImageInfoService;
+    @Autowired
+    private IKuaiShouImageGetService imageGetService;
+
+
+    /**
+     * 同步素材到账号下
+     */
+    @Override
+    public void uploadImage(String videoId, Long accountId, String accessToken) {
+
+
+        try {
+            QueryWrapper<MaterialImageInfo> imageInfoQueryWrapper = new QueryWrapper<>();
+            imageInfoQueryWrapper.eq("video_id", videoId);
+            imageInfoQueryWrapper.eq("status", 0);
+            List<MaterialImageInfo> imageList = materialImageInfoService.list(imageInfoQueryWrapper);
+            if (!Check.isNull(imageList)) {
+                for (MaterialImageInfo imageInfo : imageList) {
+
+                    QueryWrapper<KuaiShouImageGet> imageQueryWrapper = new QueryWrapper<>();
+                    imageQueryWrapper.eq("account_id", accountId);
+                    imageQueryWrapper.eq("signature", imageInfo.getCode());
+                    List<KuaiShouImageGet> imageGetList = imageGetService.list(imageQueryWrapper);
+                    if (!Check.isNull(imageGetList)) {
+                        log.info("此封面已上传");
+                        continue;
+                    }
+
+                    String url = String.valueOf(imageInfo.getUrl());
+                    String localUrl = LoadFileUtil.downLoadFromUrl(url, downloadUrl);
+                    FileSystemResource resource = new FileSystemResource(new File(localUrl));
+                    Map<String, String> headerMap = new HashMap<>();
+                    JSONObject requestJson = new JSONObject();
+                    requestJson.put("advertiser_id", accountId);
+                    headerMap.put("Access-Token", accessToken);
+                    headerMap.put("Content-Type", "multipart/form-data");
+
+                    requestJson.put("file", resource);
+                    requestJson.put("signature", imageInfo.getCode());
+                    requestJson.put("type", "2");
+                    requestJson.put("upload_type", "1");
+                    String requestUrl = PropertiesUtils.getConfig("kuaishou_api_url") + KuaishouInterfaceConstant.IMAGE_UPLOAD;
+                    String result = exceptInfoForRestTemplate(requestUrl, requestJson, headerMap);
+                    JSONObject resultJson = JSONObject.parseObject(result);
+                    if (!Check.isNull(resultJson)) {
+                        if (resultJson.getInteger("code") == 0) {
+                            JSONObject dataJson = resultJson.getJSONObject("data");
+                            if (!Check.isNull(dataJson)) {
+                                String signature = dataJson.getString("signature");
+                                String image_token = dataJson.getString("image_token");
+                                KuaiShouImageGet imageGet = new KuaiShouImageGet();
+                                imageGet.setId(accountId + image_token);
+                                imageGet.setAccountId(accountId);
+                                imageGet.setUrl(dataJson.getString("url"));
+                                imageGet.setWidth(dataJson.getInteger("width"));
+                                imageGet.setHeight(dataJson.getInteger("height"));
+                                imageGet.setSize(dataJson.getInteger("size"));
+                                imageGet.setFormat(dataJson.getString("format"));
+                                Integer type = MaterialEnum.getTypeBySize(dataJson.getInteger("width"), dataJson.getInteger("height"));
+                                if (!Check.isNull(type)) {
+                                    imageGet.setMaterialType(type);
+                                }
+                                imageGet.setSignature(signature);
+                                imageGet.setImageToken(image_token);
+                                imageGetService.saveOrUpdate(imageGet);
+                            }
+
+
+                            log.info("快手封面素材素材同步完成,accountId:{},code:{},返回信息:{}", accountId, imageInfo.getCode(), resultJson);
+                        } else {
+                            log.error("快手同步封面素材失败,返回信息:{},请求参数:{}", resultJson, requestJson);
+                        }
+                    }
+
+
+                }
+
+
+            }
+        } catch (Exception e) {
+            e.printStackTrace();
+
+        }
+
+    }
+
+
+    @Autowired
+    private RestTemplate rest;
+
+    private String exceptInfoForRestTemplate(String url, Map<String, Object> paramMap, Map<String, String> headerMap) throws ParseException {
+        try {
+            MultiValueMap<String, Object> param = new LinkedMultiValueMap<>();
+            if (!Check.isNullMap(paramMap)) {
+                for (String key : paramMap.keySet()) {
+                    param.add(key, paramMap.get(key));
+                }
+                HttpHeaders headers = new HttpHeaders();
+                if (!Check.isNullMap(headerMap)) {
+                    for (String key : headerMap.keySet()) {
+                        headers.add(key, headerMap.get(key));
+                    }
+                }
+                HttpEntity<MultiValueMap<String, Object>> httpEntity = new HttpEntity<MultiValueMap<String, Object>>(param, headers);
+                ResponseEntity<String> responseEntity = rest.exchange(url, HttpMethod.POST, httpEntity, String.class);
+                return responseEntity.getBody();
+            }
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        return null;
+    }
+
+
+}

+ 30 - 60
module-ctop/src/main/java/cn/com/ctop/manage/modules/material/service/impl/MaterialUploadServiceImpl.java

@@ -8,7 +8,6 @@ import cn.com.ctop.common.module.mapper.CtopOauthTokenMapper;
 import cn.com.ctop.common.module.mapper.MaterialInfoMapper;
 import cn.com.ctop.common.module.mapper.MaterialParameterMapper;
 import cn.com.ctop.common.module.service.IFileInfoService;
-import cn.com.ctop.common.module.service.IMaterialImageInfoService;
 import cn.com.ctop.common.module.service.IMaterialParameterService;
 import cn.com.ctop.common.module.utils.Check;
 import cn.com.ctop.common.module.utils.KuaishouInterfaceConstant;
@@ -18,6 +17,7 @@ import cn.com.ctop.kuaishou.modules.batch.entity.KuaiShouVideoGet;
 import cn.com.ctop.kuaishou.modules.batch.service.IKuaiShouImageGetService;
 import cn.com.ctop.kuaishou.modules.batch.service.IKuaiShouVideoGetService;
 import cn.com.ctop.kuaishou.modules.batch.service.IKuaishouInterfaceService;
+import cn.com.ctop.manage.modules.material.service.IMaterialUploadImageService;
 import cn.com.ctop.manage.modules.material.service.IMaterialUploadService;
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
@@ -72,7 +72,7 @@ public class MaterialUploadServiceImpl implements IMaterialUploadService {
     @Autowired
     private IKuaiShouVideoGetService kuaiShouVideoGetService;
     @Autowired
-    private IMaterialImageInfoService iMaterialImageInfoService;
+    private IMaterialUploadImageService materialUploadImageService;
 
 
     /**
@@ -197,15 +197,7 @@ public class MaterialUploadServiceImpl implements IMaterialUploadService {
                         public void run() {
                             try {
                                 log.info("快手文件多线程上传:{},accountId:{}", Thread.currentThread().getName(), accountId);
-                                String url = "";
-                                if ("VIDEO".equals(materialInfo.getType())) {
-                                    url = PropertiesUtils.getConfig("kuaishou_api_url") + KuaishouInterfaceConstant.VIDEO_UPLOAD;
-
-                                } else if ("IMAGE".equals(materialInfo.getType())) {
-                                    url = PropertiesUtils.getConfig("kuaishou_api_url") + KuaishouInterfaceConstant.IMAGE_UPLOAD;
-                                    requestJson.put("type", "2");
-                                    requestJson.put("upload_type", "1");
-                                }
+                                String url = PropertiesUtils.getConfig("kuaishou_api_url") + KuaishouInterfaceConstant.VIDEO_UPLOAD;
 
                                 String result = exceptInfoForRestTemplate(url, requestJson, headerMap);
                                 JSONObject resultJson = JSONObject.parseObject(result);
@@ -213,58 +205,36 @@ public class MaterialUploadServiceImpl implements IMaterialUploadService {
                                     if (resultJson.getInteger("code") == 0) {
                                         JSONObject dataJson = resultJson.getJSONObject("data");
                                         if (!Check.isNull(dataJson)) {
-                                           /* if ("IMAGE".equals(materialInfo.getType())) {
-                                                //   kuaishouInterfaceService.imageGet(accountId, ctopOauthToken.getAccessToken(), dataJson.getString("image_token"));
-                                                if (!Check.isNull(dataJson)) {
-                                                    String signature = dataJson.getString("signature");
-                                                    String image_token = dataJson.getString("image_token");
-                                                    KuaiShouImageGet imageGet = new KuaiShouImageGet();
-                                                    imageGet.setId(accountId + image_token);
-                                                    imageGet.setAccountId(accountId);
-                                                    imageGet.setUrl(dataJson.getString("url"));
-                                                    imageGet.setWidth(dataJson.getInteger("width"));
-                                                    imageGet.setHeight(dataJson.getInteger("height"));
-                                                    imageGet.setSize(dataJson.getInteger("size"));
-                                                    imageGet.setFormat(dataJson.getString("format"));
-                                                    Integer type = MaterialEnum.getTypeBySize(dataJson.getInteger("width"), dataJson.getInteger("height"));
-                                                    if (!Check.isNull(type)) {
-                                                        imageGet.setMaterialType(type);
-                                                    }
-                                                    imageGet.setSignature(signature);
-                                                    imageGet.setImageToken(image_token);
-                                                    iKuaiShouImageGetService.saveOrUpdate(imageGet);
-                                                }
 
-                                            } else*/
-                                            if ("VIDEO".equals(materialInfo.getType())) {
-                                                // kuaishouInterfaceService.videoGet(accountId, ctopOauthToken.getAccessToken(), dataJson.getString("photo_id"), dataJson.getString("signature"));
-                                                String photoId = dataJson.getString("photo_id");
-                                                String signature = dataJson.getString("signature");
-                                                KuaiShouVideoGet videoGet = new KuaiShouVideoGet();
-                                                videoGet.setAccountId(accountId);
-                                                videoGet.setId(accountId + photoId);
-                                                videoGet.setUrl(materialInfo.getUrl());
-                                                QueryWrapper<MaterialParameter> parameterQueryWrapper = new QueryWrapper<>();
-                                                parameterQueryWrapper.eq("material_id", materialId);
-                                                parameterQueryWrapper.last("limit 1");
-
-                                                MaterialParameter materialParameter = parameterMapper.selectOne(parameterQueryWrapper);
-                                                if (!Check.isNull(materialParameter)) {
-                                                    String width = materialParameter.getWidth();
-                                                    String height = materialParameter.getHeight();
-                                                    videoGet.setWidth(Integer.valueOf(width));
-                                                    videoGet.setHeight(Integer.valueOf(height));
-                                                    Integer type = MaterialEnum.getTypeBySize(Integer.valueOf(width), Integer.valueOf(height));
-                                                    if (!Check.isNull(type)) {
-                                                        videoGet.setMaterialType(type);
-                                                    }
+
+                                            // kuaishouInterfaceService.videoGet(accountId, ctopOauthToken.getAccessToken(), dataJson.getString("photo_id"), dataJson.getString("signature"));
+                                            String photoId = dataJson.getString("photo_id");
+                                            String signature = dataJson.getString("signature");
+                                            KuaiShouVideoGet videoGet = new KuaiShouVideoGet();
+                                            videoGet.setAccountId(accountId);
+                                            videoGet.setId(accountId + photoId);
+                                            videoGet.setUrl(materialInfo.getUrl());
+                                            QueryWrapper<MaterialParameter> parameterQueryWrapper = new QueryWrapper<>();
+                                            parameterQueryWrapper.eq("material_id", materialId);
+                                            parameterQueryWrapper.last("limit 1");
+
+                                            MaterialParameter materialParameter = parameterMapper.selectOne(parameterQueryWrapper);
+                                            if (!Check.isNull(materialParameter)) {
+                                                String width = materialParameter.getWidth();
+                                                String height = materialParameter.getHeight();
+                                                videoGet.setWidth(Integer.valueOf(width));
+                                                videoGet.setHeight(Integer.valueOf(height));
+                                                Integer type = MaterialEnum.getTypeBySize(Integer.valueOf(width), Integer.valueOf(height));
+                                                if (!Check.isNull(type)) {
+                                                    videoGet.setMaterialType(type);
                                                 }
-                                                videoGet.setPhotoId(photoId);
-                                                //    videoGet.setCoverUrl(dataJson.getString("cover_url"));
-                                                videoGet.setSignature(signature);
-                                                kuaiShouVideoGetService.saveOrUpdate(videoGet);
-                                                iMaterialImageInfoService.uploadImage(videoGet.getId(), accountId, ctopOauthToken.getAccessToken());
                                             }
+                                            videoGet.setPhotoId(photoId);
+                                            //    videoGet.setCoverUrl(dataJson.getString("cover_url"));
+                                            videoGet.setSignature(signature);
+                                            kuaiShouVideoGetService.saveOrUpdate(videoGet);
+                                            materialUploadImageService.uploadImage(videoGet.getId(), accountId, ctopOauthToken.getAccessToken());
+
                                         }
                                         log.info("快手素材同步完成,accountId:{},code:{},返回信息:{}", accountId, materialInfo.getCode(), resultJson);
                                     } else {

+ 7 - 7
module-report/src/main/java/cn/com/ctop/bytedance/controller/KuaiShouYiCheReportController.java

@@ -14,6 +14,7 @@ import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 import java.io.OutputStream;
 import java.io.UnsupportedEncodingException;
+import java.text.DecimalFormat;
 import java.util.ArrayList;
 import java.util.List;
 
@@ -41,20 +42,18 @@ public class KuaiShouYiCheReportController {
     @RequestMapping(value = "/exportHourReport")
     @ResponseBody
     public void export(HttpServletRequest request, HttpServletResponse response, @RequestBody JSONObject requestJson) throws Exception {
-
         JSONObject hourReport = yiCheReportService.getHourReport(requestJson);
         JSONArray androidArr = hourReport.getJSONArray("android");
-
+        DecimalFormat df = new DecimalFormat("#,###");
         // 安卓相关
         List<List<Object>> androidList = new ArrayList<>();
         if (!Check.isNull(androidArr)) {
             for (int i = 0; i < androidArr.size(); i++) {
                 JSONObject jsonObject = androidArr.getJSONObject(i);
-
                 List<Object> android = new ArrayList();
                 android.add(jsonObject.getString("systemType"));
                 android.add(jsonObject.getString("authName"));
-                android.add(jsonObject.getBigDecimal("charge"));
+                android.add(df.format(jsonObject.getBigDecimal("charge")));
                 android.add(jsonObject.getLong("activation"));
                 android.add(jsonObject.getBigDecimal("activationCost"));
                 android.add(jsonObject.getBigDecimal("estimatedCost"));
@@ -70,9 +69,10 @@ public class KuaiShouYiCheReportController {
             for (int i = 0; i < iosArr.size(); i++) {
                 JSONObject jsonObject = iosArr.getJSONObject(i);
                 List<Object> ios = new ArrayList();
+
                 ios.add(jsonObject.getString("systemType"));
                 ios.add(jsonObject.getString("authName"));
-                ios.add(jsonObject.getBigDecimal("charge"));
+                ios.add(df.format(jsonObject.getBigDecimal("charge")));
                 ios.add(jsonObject.getLong("activation"));
                 ios.add(jsonObject.getBigDecimal("activationCost"));
                 ios.add(jsonObject.getBigDecimal("estimatedCost"));
@@ -81,8 +81,8 @@ public class KuaiShouYiCheReportController {
         }
 
 
-        String[] androidHeaders = {"投放设备", "分类", "现金花费", "账户激活量", "激活成本", "预估成本"};
-        String[] iosHeaders = {"投放设备", "分类", "现金花费", "账户激活量", "激活成本", "预估成本"};
+        String[] androidHeaders = {"投放设备", "分类", "现金花费(¥)", "账户激活量", "激活成本(¥)", "预估成本(¥)"};
+        String[] iosHeaders = {"投放设备", "分类", "现金花费(¥)", "账户激活量", "激活成本(¥)", "预估成本(¥)"};
         OutputStream os = response.getOutputStream();
         ExportExcelUtils eeu = new ExportExcelUtils();
         XSSFWorkbook workbook = new XSSFWorkbook();