Ver código fonte

Merge remote-tracking branch 'origin/master'

syh 5 anos atrás
pai
commit
58f0c5173f
24 arquivos alterados com 405 adições e 1400 exclusões
  1. 2 3
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/kuaishou/controller/KuaiShouCreateAppTemplateController.java
  2. 1 2
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/kuaishou/controller/KuaiShouCreateController.java
  3. 0 242
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/kuaishou/controller/KuaiShouGroupCreateController.java
  4. 28 0
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/kuaishou/controller/KuaiShouGroupCreateLogController.java
  5. 0 1
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/kuaishou/controller/KuaiShouVideoController.java
  6. 0 166
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/kuaishou/entity/KuaiShouGroupCreate.java
  7. 25 4
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/kuaishou/entity/KuaiShouGroupCreateLog.java
  8. 7 0
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/kuaishou/entity/KuaiShouImage.java
  9. 7 0
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/kuaishou/entity/KuaiShouVideo.java
  10. 0 14
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/kuaishou/mapper/KuaiShouGroupCreateMapper.java
  11. 0 5
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/kuaishou/mapper/xml/KuaiShouGroupCreateMapper.xml
  12. 0 14
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/kuaishou/service/IKuaiShouGroupCreateService.java
  13. 1 2
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/kuaishou/service/IKuaiShouImageService.java
  14. 2 0
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/kuaishou/service/impl/KuaiShouCampaignTemplateServiceImpl.java
  15. 26 10
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/kuaishou/service/impl/KuaiShouCreateAppTemplateServiceImpl.java
  16. 182 72
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/kuaishou/service/impl/KuaiShouCreateServiceImpl.java
  17. 0 19
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/kuaishou/service/impl/KuaiShouGroupCreateServiceImpl.java
  18. 29 11
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/kuaishou/service/impl/KuaiShouImageServiceImpl.java
  19. 33 20
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/kuaishou/service/impl/KuaiShouVideoServiceImpl.java
  20. 59 82
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/kuaishou/service/impl/KuaishouInterfaceServiceImpl.java
  21. 0 263
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/kuaishou/vue/KuaiShouGroupCreateList.vue
  22. 0 230
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/kuaishou/vue/modules/KuaiShouGroupCreateModal.vue
  23. 0 237
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/kuaishou/vue/modules/KuaiShouGroupCreateModal__Style#Drawer.vue
  24. 3 3
      module-kuaishou/src/main/java/constant/KuaishouInterfaceConstant.java

+ 2 - 3
jeecg-boot-module-system/src/main/java/org/jeecg/modules/kuaishou/controller/KuaiShouCreateAppTemplateController.java

@@ -52,7 +52,6 @@ public class KuaiShouCreateAppTemplateController {
 
     @PostMapping(value = "/insert")
     public Map<String, Object> insert(@RequestBody KuaiShouCreateAppTemplate appTemplate) {
-        System.err.println(appTemplate.toString());
         return kuaiShouCreateAppTemplateService.insert(appTemplate);
     }
 
@@ -75,10 +74,10 @@ public class KuaiShouCreateAppTemplateController {
         Result<IPage<KuaiShouCreateAppTemplate>> result = new Result<IPage<KuaiShouCreateAppTemplate>>();
         QueryWrapper<KuaiShouCreateAppTemplate> queryWrapper = QueryGenerator.initQueryWrapper(kuaiShouCreateAppTemplate, req.getParameterMap());
         LoginUser user = (LoginUser) SecurityUtils.getSubject().getPrincipal();
-        System.err.println(user);
-        if(!Check.isNull(user)){
+        if (!Check.isNull(user)) {
             queryWrapper.eq("login_id", user.getId());
         }
+        queryWrapper.orderByDesc("create_time");
         Page<KuaiShouCreateAppTemplate> page = new Page<KuaiShouCreateAppTemplate>(pageNo, pageSize);
         IPage<KuaiShouCreateAppTemplate> pageList = kuaiShouCreateAppTemplateService.page(page, queryWrapper);
         result.setSuccess(true);

+ 1 - 2
jeecg-boot-module-system/src/main/java/org/jeecg/modules/kuaishou/controller/KuaiShouCreateController.java

@@ -1,6 +1,5 @@
 package org.jeecg.modules.kuaishou.controller;
 
-import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import org.jeecg.common.api.vo.Result;
@@ -56,7 +55,7 @@ public class KuaiShouCreateController {
             result.setSuccess(true);
         } else {
             result.setSuccess(false);
-            result.setMessage((String) map.get("desc"));
+            result.setMessage((String) map.get("message"));
         }
         return result;
 

+ 0 - 242
jeecg-boot-module-system/src/main/java/org/jeecg/modules/kuaishou/controller/KuaiShouGroupCreateController.java

@@ -1,242 +0,0 @@
-package org.jeecg.modules.kuaishou.controller;
-
-import com.alibaba.fastjson.JSON;
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
-import com.baomidou.mybatisplus.core.metadata.IPage;
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import io.swagger.annotations.Api;
-import io.swagger.annotations.ApiOperation;
-import lombok.extern.slf4j.Slf4j;
-import org.jeecg.common.api.vo.Result;
-import org.jeecg.common.aspect.annotation.AutoLog;
-import org.jeecg.common.system.query.QueryGenerator;
-import org.jeecg.common.util.oConvertUtils;
-import org.jeecg.modules.kuaishou.entity.KuaiShouGroupCreate;
-import org.jeecg.modules.kuaishou.service.IKuaiShouGroupCreateService;
-import org.jeecgframework.poi.excel.ExcelImportUtil;
-import org.jeecgframework.poi.excel.def.NormalExcelConstants;
-import org.jeecgframework.poi.excel.entity.ExportParams;
-import org.jeecgframework.poi.excel.entity.ImportParams;
-import org.jeecgframework.poi.excel.view.JeecgEntityExcelView;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.*;
-import org.springframework.web.multipart.MultipartFile;
-import org.springframework.web.multipart.MultipartHttpServletRequest;
-import org.springframework.web.servlet.ModelAndView;
-
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-import java.io.IOException;
-import java.io.UnsupportedEncodingException;
-import java.net.URLDecoder;
-import java.util.Arrays;
-import java.util.List;
-import java.util.Map;
-
- /**
-  * @Description: 快手-创建广告组信息
- * @Author: jeecg-boot
-  * @Date: 2019-07-24
- * @Version: V1.0
- */
-@Slf4j
-@Api(tags = "快手-创建广告组信息")
-@RestController
-@RequestMapping("/kuaishou/kuaiShouGroupCreate")
-public class KuaiShouGroupCreateController {
-	@Autowired
-    private IKuaiShouGroupCreateService kuaiShouGroupCreateService;
-	
-	/**
-	  * 分页列表查询
-     * @param kuaiShouGroupCreate
-	 * @param pageNo
-	 * @param pageSize
-	 * @param req
-	 * @return
-	 */
-    @AutoLog(value = "快手-创建广告组信息-分页列表查询")
-    @ApiOperation(value = "快手-创建广告组信息-分页列表查询", notes = "快手-创建广告组信息-分页列表查询")
-	@GetMapping(value = "/list")
-    public Result<IPage<KuaiShouGroupCreate>> queryPageList(KuaiShouGroupCreate kuaiShouGroupCreate,
-                                                            @RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo,
-                                                            @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize,
-                                                            HttpServletRequest req) {
-        Result<IPage<KuaiShouGroupCreate>> result = new Result<IPage<KuaiShouGroupCreate>>();
-        QueryWrapper<KuaiShouGroupCreate> queryWrapper = QueryGenerator.initQueryWrapper(kuaiShouGroupCreate, req.getParameterMap());
-        Page<KuaiShouGroupCreate> page = new Page<KuaiShouGroupCreate>(pageNo, pageSize);
-        IPage<KuaiShouGroupCreate> pageList = kuaiShouGroupCreateService.page(page, queryWrapper);
-		result.setSuccess(true);
-		result.setResult(pageList);
-		return result;
-	}
-	
-	/**
-	  *   添加
-     * @param kuaiShouGroupCreate
-	 * @return
-	 */
-    @AutoLog(value = "快手-创建广告组信息-添加")
-    @ApiOperation(value = "快手-创建广告组信息-添加", notes = "快手-创建广告组信息-添加")
-	@PostMapping(value = "/add")
-    public Result<KuaiShouGroupCreate> add(@RequestBody KuaiShouGroupCreate kuaiShouGroupCreate) {
-        Result<KuaiShouGroupCreate> result = new Result<KuaiShouGroupCreate>();
-		try {
-            kuaiShouGroupCreateService.save(kuaiShouGroupCreate);
-			result.success("添加成功!");
-		} catch (Exception e) {
-			log.error(e.getMessage(),e);
-			result.error500("操作失败");
-		}
-		return result;
-	}
-	
-	/**
-	  *  编辑
-     * @param kuaiShouGroupCreate
-	 * @return
-	 */
-    @AutoLog(value = "快手-创建广告组信息-编辑")
-    @ApiOperation(value = "快手-创建广告组信息-编辑", notes = "快手-创建广告组信息-编辑")
-	@PutMapping(value = "/edit")
-    public Result<KuaiShouGroupCreate> edit(@RequestBody KuaiShouGroupCreate kuaiShouGroupCreate) {
-        Result<KuaiShouGroupCreate> result = new Result<KuaiShouGroupCreate>();
-        KuaiShouGroupCreate kuaiShouGroupCreateEntity = kuaiShouGroupCreateService.getById(kuaiShouGroupCreate.getId());
-        if (kuaiShouGroupCreateEntity == null) {
-			result.error500("未找到对应实体");
-		}else {
-            boolean ok = kuaiShouGroupCreateService.updateById(kuaiShouGroupCreate);
-			//TODO 返回false说明什么?
-			if(ok) {
-				result.success("修改成功!");
-			}
-		}
-		
-		return result;
-	}
-	
-	/**
-	  *   通过id删除
-	 * @param id
-	 * @return
-	 */
-    @AutoLog(value = "快手-创建广告组信息-通过id删除")
-    @ApiOperation(value = "快手-创建广告组信息-通过id删除", notes = "快手-创建广告组信息-通过id删除")
-	@DeleteMapping(value = "/delete")
-	public Result<?> delete(@RequestParam(name="id",required=true) String id) {
-		try {
-            kuaiShouGroupCreateService.removeById(id);
-		} catch (Exception e) {
-			log.error("删除失败",e.getMessage());
-			return Result.error("删除失败!");
-		}
-		return Result.ok("删除成功!");
-	}
-	
-	/**
-	  *  批量删除
-	 * @param ids
-	 * @return
-	 */
-    @AutoLog(value = "快手-创建广告组信息-批量删除")
-    @ApiOperation(value = "快手-创建广告组信息-批量删除", notes = "快手-创建广告组信息-批量删除")
-	@DeleteMapping(value = "/deleteBatch")
-    public Result<KuaiShouGroupCreate> deleteBatch(@RequestParam(name = "ids", required = true) String ids) {
-        Result<KuaiShouGroupCreate> result = new Result<KuaiShouGroupCreate>();
-		if(ids==null || "".equals(ids.trim())) {
-			result.error500("参数不识别!");
-		}else {
-            this.kuaiShouGroupCreateService.removeByIds(Arrays.asList(ids.split(",")));
-			result.success("删除成功!");
-		}
-		return result;
-	}
-	
-	/**
-	  * 通过id查询
-	 * @param id
-	 * @return
-	 */
-    @AutoLog(value = "快手-创建广告组信息-通过id查询")
-    @ApiOperation(value = "快手-创建广告组信息-通过id查询", notes = "快手-创建广告组信息-通过id查询")
-	@GetMapping(value = "/queryById")
-    public Result<KuaiShouGroupCreate> queryById(@RequestParam(name = "id", required = true) String id) {
-        Result<KuaiShouGroupCreate> result = new Result<KuaiShouGroupCreate>();
-        KuaiShouGroupCreate kuaiShouGroupCreate = kuaiShouGroupCreateService.getById(id);
-        if (kuaiShouGroupCreate == null) {
-			result.error500("未找到对应实体");
-		}else {
-            result.setResult(kuaiShouGroupCreate);
-			result.setSuccess(true);
-		}
-		return result;
-	}
-
-  /**
-      * 导出excel
-   *
-   * @param request
-   * @param response
-   */
-  @RequestMapping(value = "/exportXls")
-  public ModelAndView exportXls(HttpServletRequest request, HttpServletResponse response) {
-      // Step.1 组装查询条件
-      QueryWrapper<KuaiShouGroupCreate> queryWrapper = null;
-      try {
-          String paramsStr = request.getParameter("paramsStr");
-          if (oConvertUtils.isNotEmpty(paramsStr)) {
-              String deString = URLDecoder.decode(paramsStr, "UTF-8");
-              KuaiShouGroupCreate kuaiShouGroupCreate = JSON.parseObject(deString, KuaiShouGroupCreate.class);
-              queryWrapper = QueryGenerator.initQueryWrapper(kuaiShouGroupCreate, request.getParameterMap());
-          }
-      } catch (UnsupportedEncodingException e) {
-          e.printStackTrace();
-      }
-
-      //Step.2 AutoPoi 导出Excel
-      ModelAndView mv = new ModelAndView(new JeecgEntityExcelView());
-      List<KuaiShouGroupCreate> pageList = kuaiShouGroupCreateService.list(queryWrapper);
-      //导出文件名称
-      mv.addObject(NormalExcelConstants.FILE_NAME, "快手-创建广告组信息列表");
-      mv.addObject(NormalExcelConstants.CLASS, KuaiShouGroupCreate.class);
-      mv.addObject(NormalExcelConstants.PARAMS, new ExportParams("快手-创建广告组信息列表数据", "导出人:Jeecg", "导出信息"));
-      mv.addObject(NormalExcelConstants.DATA_LIST, pageList);
-      return mv;
-  }
-
-  /**
-      * 通过excel导入数据
-   *
-   * @param request
-   * @param response
-   * @return
-   */
-  @RequestMapping(value = "/importExcel", method = RequestMethod.POST)
-  public Result<?> importExcel(HttpServletRequest request, HttpServletResponse response) {
-      MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
-      Map<String, MultipartFile> fileMap = multipartRequest.getFileMap();
-      for (Map.Entry<String, MultipartFile> entity : fileMap.entrySet()) {
-          MultipartFile file = entity.getValue();// 获取上传文件对象
-          ImportParams params = new ImportParams();
-          params.setTitleRows(2);
-          params.setHeadRows(1);
-          params.setNeedSave(true);
-          try {
-              List<KuaiShouGroupCreate> listKuaiShouGroupCreates = ExcelImportUtil.importExcel(file.getInputStream(), KuaiShouGroupCreate.class, params);
-              kuaiShouGroupCreateService.saveBatch(listKuaiShouGroupCreates);
-              return Result.ok("文件导入成功!数据行数:" + listKuaiShouGroupCreates.size());
-          } catch (Exception e) {
-              log.error(e.getMessage(),e);
-              return Result.error("文件导入失败:"+e.getMessage());
-          } finally {
-              try {
-                  file.getInputStream().close();
-              } catch (IOException e) {
-                  e.printStackTrace();
-              }
-          }
-      }
-      return Result.ok("文件导入失败!");
-  }
-
-}

+ 28 - 0
jeecg-boot-module-system/src/main/java/org/jeecg/modules/kuaishou/controller/KuaiShouGroupCreateLogController.java

@@ -85,6 +85,34 @@ public class KuaiShouGroupCreateLogController {
         return result;
     }
 
+
+    /**
+     * 分页列表查询
+     *
+     * @param kuaiShouGroupCreateLog
+
+     * @param req
+     * @return
+     */
+    @AutoLog(value = "快手-批量创建广告组-分页列表查询")
+    @ApiOperation(value = "快手-批量创建广告组-分页列表查询", notes = "快手-批量创建广告组-分页列表查询")
+    @GetMapping(value = "/select/group")
+    public KuaiShouGroupCreateLog queryPageList(KuaiShouGroupCreateLog kuaiShouGroupCreateLog,
+                                                HttpServletRequest req) {
+        Result<IPage<KuaiShouGroupCreateLog>> result = new Result<IPage<KuaiShouGroupCreateLog>>();
+        QueryWrapper<KuaiShouGroupCreateLog> queryWrapper = QueryGenerator.initQueryWrapper(kuaiShouGroupCreateLog, req.getParameterMap());
+        LoginUser user = (LoginUser) SecurityUtils.getSubject().getPrincipal();
+        if (!Check.isNull(user)) {
+            queryWrapper.eq("login_id", user.getId());
+        }
+        queryWrapper.orderByDesc("create_time");
+        queryWrapper.last("limit 1");
+        KuaiShouGroupCreateLog groupCreateLog = (KuaiShouGroupCreateLog) kuaiShouGroupCreateLogService.getObj(queryWrapper);
+        System.err.println(groupCreateLog);
+
+        return groupCreateLog;
+    }
+
     /**
      * 添加
      *

+ 0 - 1
jeecg-boot-module-system/src/main/java/org/jeecg/modules/kuaishou/controller/KuaiShouVideoController.java

@@ -57,7 +57,6 @@ public class KuaiShouVideoController {
 
     @PostMapping(value = "/insert")
     public Result<KuaiShouVideo> insert(@RequestBody JSONObject requestJson) {
-        System.err.println(requestJson);
         Result<KuaiShouVideo> result = new Result<>();
         try {
             kuaiShouVideoService.insert(requestJson);

+ 0 - 166
jeecg-boot-module-system/src/main/java/org/jeecg/modules/kuaishou/entity/KuaiShouGroupCreate.java

@@ -1,166 +0,0 @@
-package org.jeecg.modules.kuaishou.entity;
-
-import com.baomidou.mybatisplus.annotation.IdType;
-import com.baomidou.mybatisplus.annotation.TableId;
-import com.baomidou.mybatisplus.annotation.TableName;
-import com.fasterxml.jackson.annotation.JsonFormat;
-import io.swagger.annotations.ApiModel;
-import io.swagger.annotations.ApiModelProperty;
-import lombok.Data;
-import lombok.EqualsAndHashCode;
-import lombok.experimental.Accessors;
-import org.jeecgframework.poi.excel.annotation.Excel;
-import org.springframework.format.annotation.DateTimeFormat;
-
-import java.util.Date;
-
-/**
- * @Description: 快手-创建广告组信息
- * @Author: jeecg-boot
- * @Date: 2019-07-24
- * @Version: V1.0
- */
-@Data
-@TableName("ctop_kuaishou_group_create")
-@EqualsAndHashCode(callSuper = false)
-@Accessors(chain = true)
-@ApiModel(value = "ctop_kuaishou_group_create对象", description = "快手-创建广告组信息")
-public class KuaiShouGroupCreate {
-
-    /**
-     * id
-     */
-    @TableId(type = IdType.AUTO)
-    @ApiModelProperty(value = "id")
-    private Long id;
-    /**
-     * 账户ID
-     */
-    @Excel(name = "账户ID", width = 15)
-    @ApiModelProperty(value = "账户ID")
-    private Long accountId;
-    /**
-     * 广告活动ID
-     */
-    @Excel(name = "广告活动ID", width = 15)
-    @ApiModelProperty(value = "广告活动ID")
-    private Long campaignId;
-    /**
-     * 广告组名称
-     */
-    @Excel(name = "广告组名称", width = 15)
-    @ApiModelProperty(value = "广告组名称")
-    private String unitName;
-    /**
-     * 出价类型
-     */
-    @Excel(name = "出价类型", width = 15)
-    @ApiModelProperty(value = "出价类型")
-    private Integer bidType;
-    /**
-     * 出价
-     */
-    @Excel(name = "出价", width = 15)
-    @ApiModelProperty(value = "出价")
-    private Integer bid;
-    /**
-     * OCPC出价
-     */
-    @Excel(name = "OCPC出价", width = 15)
-    @ApiModelProperty(value = "OCPC出价")
-    private Integer cpaBid;
-    /**
-     * 优化目标
-     */
-    @Excel(name = "优化目标", width = 15)
-    @ApiModelProperty(value = "优化目标")
-    private Integer ocpxActionType;
-    /**
-     * 深度转化目标
-     */
-    @Excel(name = "深度转化目标", width = 15)
-    @ApiModelProperty(value = "深度转化目标")
-    private Integer deepConversionType;
-    /**
-     * 资源位置
-     */
-    @Excel(name = "资源位置", width = 15)
-    @ApiModelProperty(value = "资源位置")
-    private Integer page;
-    /**
-     * 投放开始时间
-     */
-    @Excel(name = "投放开始时间", width = 15)
-    @ApiModelProperty(value = "投放开始时间")
-    private String beginTime;
-    /**
-     * 投放结束时间
-     */
-    @Excel(name = "投放结束时间", width = 15)
-    @ApiModelProperty(value = "投放结束时间")
-    private String endTime;
-    /**
-     * 投放时段
-     */
-    @Excel(name = "投放时段", width = 15)
-    @ApiModelProperty(value = "投放时段")
-    private String scheduleTime;
-    /**
-     * 单日预算
-     */
-    @Excel(name = "单日预算", width = 15)
-    @ApiModelProperty(value = "单日预算")
-    private Long dayBudget;
-    /**
-     * url类型 1:淘宝商品短链 2:淘宝商品 itemID
-     */
-    @Excel(name = "url类型 1:淘宝商品短链 2:淘宝商品 itemID", width = 15)
-    @ApiModelProperty(value = "url类型 1:淘宝商品短链 2:淘宝商品 itemID")
-    private Integer urlType;
-    /**
-     * 投放链接
-     */
-    @Excel(name = "投放链接", width = 15)
-    @ApiModelProperty(value = "投放链接")
-    private Object url;
-    /**
-     * APP ID
-     */
-    @Excel(name = "APP ID", width = 15)
-    @ApiModelProperty(value = "APP ID")
-    private Long appId;
-    /**
-     * 创意展现方式  1:轮播 2:优选
-     */
-    @Excel(name = "创意展现方式  1:轮播 2:优选", width = 15)
-    @ApiModelProperty(value = "创意展现方式  1:轮播 2:优选")
-    private Integer showModel;
-    /**
-     * 投放方式 1:快速投放 2:平滑投放
-     */
-    @Excel(name = "投放方式 1:快速投放 2:平滑投放", width = 15)
-    @ApiModelProperty(value = "投放方式 1:快速投放 2:平滑投放")
-    private Integer speed;
-    /**
-     * 广告组ID
-     */
-    @Excel(name = "广告组ID", width = 15)
-    @ApiModelProperty(value = "广告组ID")
-    private Long unitId;
-    /**
-     * 创建时间
-     */
-    @Excel(name = "创建时间", width = 20, format = "yyyy-MM-dd HH:mm:ss")
-    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
-    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
-    @ApiModelProperty(value = "创建时间")
-    private Date createTime;
-    /**
-     * 修改时间
-     */
-    @Excel(name = "修改时间", width = 20, format = "yyyy-MM-dd HH:mm:ss")
-    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
-    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
-    @ApiModelProperty(value = "修改时间")
-    private Date updateTime;
-}

+ 25 - 4
jeecg-boot-module-system/src/main/java/org/jeecg/modules/kuaishou/entity/KuaiShouGroupCreateLog.java

@@ -69,13 +69,13 @@ public class KuaiShouGroupCreateLog {
      */
     @Excel(name = "出价", width = 15)
     @ApiModelProperty(value = "出价")
-    private Integer bid;
+    private Long bid;
     /**
      * OCPC出价
      */
     @Excel(name = "OCPC出价", width = 15)
     @ApiModelProperty(value = "OCPC出价")
-    private Integer cpaBid;
+    private Long cpaBid;
     /**
      * 优化目标
      */
@@ -85,21 +85,42 @@ public class KuaiShouGroupCreateLog {
     /**
      * 深度转化目标 null
      */
-    @Excel(name = "深度转化目标 null", width = 15)
+    @Excel(name = "深度转化目标", width = 15)
     @ApiModelProperty(value = "深度转化目标 null")
     private Integer deepConversionType;
+
+    /**
+     * 深度转化目标出价
+     */
+    @Excel(name = "出价", width = 15)
+    @ApiModelProperty(value = "出价")
+    private Long deepConversionBid;
+
     /**
      * 资源位置
      */
     @Excel(name = "资源位置", width = 15)
     @ApiModelProperty(value = "资源位置")
-    private Integer page;
+    private Integer sceneId;
     /**
      * 投放开始时间
      */
     @Excel(name = "投放开始时间", width = 15)
     @ApiModelProperty(value = "投放开始时间")
     private String beginTime;
+
+
+    /**
+     * 创意制作方式
+     */
+    @Excel(name = "投放开始时间", width = 15)
+    @ApiModelProperty(value = "创意制作方式")
+    private Integer unitType;
+
+
+
+
+
     /**
      * 投放结束时间
      */

+ 7 - 0
jeecg-boot-module-system/src/main/java/org/jeecg/modules/kuaishou/entity/KuaiShouImage.java

@@ -63,6 +63,13 @@ public class KuaiShouImage {
     @Excel(name = "图片类型 1-竖版图片 2-横版图片", width = 15)
     @ApiModelProperty(value = "图片类型 1-竖版图片 2-横版图片")
     private String materialType;
+
+    /**
+     * 图片类型 1-普通 2-后贴片
+     */
+    @Excel(name = "素材类型 1-普通 2-后贴片", width = 15)
+    @ApiModelProperty(value = "图片类型 1-竖版图片 2-横版图片")
+    private String positionType;
     /**
      * 创建时间
      */

+ 7 - 0
jeecg-boot-module-system/src/main/java/org/jeecg/modules/kuaishou/entity/KuaiShouVideo.java

@@ -69,6 +69,13 @@ public class KuaiShouVideo {
     @Excel(name = "视频类型 1-竖版视频 2-横版视频", width = 15)
     @ApiModelProperty(value = "视频类型 1-竖版视频 2-横版视频")
     private String materialType;
+
+    /**
+     * 视频类型 1-竖版视频 2-横版视频
+     */
+    @Excel(name = "素材类型 1-普通 2-后贴片", width = 15)
+    @ApiModelProperty(value = "视频类型 1-竖版视频 2-横版视频")
+    private String positionType;
     /**
      * 创建时间
      */

+ 0 - 14
jeecg-boot-module-system/src/main/java/org/jeecg/modules/kuaishou/mapper/KuaiShouGroupCreateMapper.java

@@ -1,14 +0,0 @@
-package org.jeecg.modules.kuaishou.mapper;
-
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import org.jeecg.modules.kuaishou.entity.KuaiShouGroupCreate;
-
-/**
- * @Description: 快手-创建广告组信息
- * @Author: jeecg-boot
- * @Date: 2019-07-24
- * @Version: V1.0
- */
-public interface KuaiShouGroupCreateMapper extends BaseMapper<KuaiShouGroupCreate> {
-
-}

+ 0 - 5
jeecg-boot-module-system/src/main/java/org/jeecg/modules/kuaishou/mapper/xml/KuaiShouGroupCreateMapper.xml

@@ -1,5 +0,0 @@
-<?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="org.jeecg.modules.kuaishou.mapper.KuaiShouGroupCreateMapper">
-
-</mapper>

+ 0 - 14
jeecg-boot-module-system/src/main/java/org/jeecg/modules/kuaishou/service/IKuaiShouGroupCreateService.java

@@ -1,14 +0,0 @@
-package org.jeecg.modules.kuaishou.service;
-
-import org.jeecg.modules.kuaishou.entity.KuaiShouGroupCreate;
-import com.baomidou.mybatisplus.extension.service.IService;
-
-/**
- * @Description: 快手-创建广告组信息
- * @Author: jeecg-boot
- * @Date: 2019-07-24
- * @Version: V1.0
- */
-public interface IKuaiShouGroupCreateService extends IService<KuaiShouGroupCreate> {
-
-}

+ 1 - 2
jeecg-boot-module-system/src/main/java/org/jeecg/modules/kuaishou/service/IKuaiShouImageService.java

@@ -16,8 +16,7 @@ public interface IKuaiShouImageService extends IService<KuaiShouImage> {
 
     void insert(JSONObject requestJson);
 
-
-    String localInsert(String url, JSONObject requestJson);
+    String localInsert( JSONObject imageJson);
 
     JSONArray selectImageList(QueryWrapper<KuaiShouImage> queryWrapper);
 }

+ 2 - 0
jeecg-boot-module-system/src/main/java/org/jeecg/modules/kuaishou/service/impl/KuaiShouCampaignTemplateServiceImpl.java

@@ -35,6 +35,8 @@ public class KuaiShouCampaignTemplateServiceImpl extends ServiceImpl<KuaiShouCam
         try {
             template.setDayBudget(template.getDayBudget() * 1000);
             campaignTemplateMapper.insert(template);
+
+
             resultMap.put("success", true);
             resultMap.put("message", "创建广告创意成功");
             resultMap.put("code", 0);

+ 26 - 10
jeecg-boot-module-system/src/main/java/org/jeecg/modules/kuaishou/service/impl/KuaiShouCreateAppTemplateServiceImpl.java

@@ -1,6 +1,7 @@
 package org.jeecg.modules.kuaishou.service.impl;
 
 import cn.com.ctop.common.utils.Check;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import constant.KuaishouInterfaceConstant;
 import org.jeecg.modules.kuaishou.entity.KuaiShouCreateAppTemplate;
@@ -27,19 +28,34 @@ public class KuaiShouCreateAppTemplateServiceImpl extends ServiceImpl<KuaiShouCr
     public Map<String, Object> insert(KuaiShouCreateAppTemplate appTemplate) {
         Map<String, Object> resultMap = new HashMap<>();
         try {
-            if (!Check.isNull(appTemplate.getFile())) {
-                appTemplate.setFile(KuaishouInterfaceConstant.HTTPS_PREFIX + appTemplate.getFile());
+            String loginId = appTemplate.getLoginId();
+            String appVersion = appTemplate.getAppVersion();
+            QueryWrapper<KuaiShouCreateAppTemplate> queryWrapper = new QueryWrapper<>();
+            queryWrapper.eq("app_version", appVersion);
+            queryWrapper.eq("login_id", loginId);
+            queryWrapper.orderByDesc("create_time");
+            queryWrapper.last("limit 1");
+            KuaiShouCreateAppTemplate kuaiShouCreateAppTemplate = appTemplateMapper.selectOne(queryWrapper);
+            if (!Check.isNull(kuaiShouCreateAppTemplate)) {
+                resultMap.put("success", false);
+                resultMap.put("message", "应用标记重复");
+                resultMap.put("code", -1);
+            } else {
+                if (!Check.isNull(appTemplate.getFile())) {
+                    appTemplate.setFile(KuaishouInterfaceConstant.HTTPS_PREFIX + appTemplate.getFile());
+                }
+                if (!Check.isNull(appTemplate.getImageUrl())) {
+                    appTemplate.setImageUrl(KuaishouInterfaceConstant.HTTPS_PREFIX + appTemplate.getImageUrl());
+                }
+                appTemplateMapper.insert(appTemplate);
+                resultMap.put("success", true);
+                resultMap.put("message", "创建应用成功");
+                resultMap.put("code", 0);
             }
-            if (!Check.isNull(appTemplate.getImageUrl())) {
-                appTemplate.setImageUrl(KuaishouInterfaceConstant.HTTPS_PREFIX + appTemplate.getImageUrl());
-            }
-            appTemplateMapper.insert(appTemplate);
-            resultMap.put("success", true);
-            resultMap.put("message", "创建广告创意成功");
-            resultMap.put("code", 0);
+
         } catch (Exception e) {
             resultMap.put("success", false);
-            resultMap.put("message", "创建广告创意失败");
+            resultMap.put("message", "创建应用失败");
             resultMap.put("code", -1);
         }
         return resultMap;

+ 182 - 72
jeecg-boot-module-system/src/main/java/org/jeecg/modules/kuaishou/service/impl/KuaiShouCreateServiceImpl.java

@@ -26,7 +26,6 @@ import org.springframework.stereotype.Service;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
-import java.util.UUID;
 
 @Service
 public class KuaiShouCreateServiceImpl implements IKuaiShouCreateService {
@@ -98,10 +97,7 @@ public class KuaiShouCreateServiceImpl implements IKuaiShouCreateService {
                 Map<String, Object> campaignMap = kuaishouInterfaceService.campaignCreate(accessToken, accountId, campaignJson);
                 Integer code = (Integer) campaignMap.get("code");
                 if (code != 0) {
-                    returnMap.put("code", -1);
-                    returnMap.put("success", false);
-                    returnMap.put("desc", "创建广告计划失败");
-                    return returnMap;
+                    return campaignMap;
                 }
                 campaignId = (Long) campaignMap.get("campaign_id");
             } else {
@@ -136,10 +132,7 @@ public class KuaiShouCreateServiceImpl implements IKuaiShouCreateService {
                     Map<String, Object> imageMap = kuaishouInterfaceService.imageUpload(accountId, accessToken, (String) appTemplate.getImageUrl(), 1);
                     Integer imageCode = (Integer) imageMap.get("code");
                     if (imageCode != 0) {
-                        returnMap.put("code", -1);
-                        returnMap.put("success", false);
-                        returnMap.put("desc", "上传图片失败");
-                        return returnMap;
+                        return imageMap;
                     }
                     apkJson.put("image_token", imageMap.get("imageToken"));
                 }
@@ -154,10 +147,7 @@ public class KuaiShouCreateServiceImpl implements IKuaiShouCreateService {
                     apkMap = kuaishouInterfaceService.urlAppCreate(accountId, accessToken, apkJson);
                 }
                 if ((Integer) apkMap.get("code") != 0) {
-                    returnMap.put("code", -1);
-                    returnMap.put("success", false);
-                    returnMap.put("desc", "上传apk文件失败");
-                    return returnMap;
+                    return apkMap;
                 }
                 groupJson.put("app_id", apkMap.get("appId"));
             }
@@ -176,9 +166,6 @@ public class KuaiShouCreateServiceImpl implements IKuaiShouCreateService {
             if (!Check.isNull(groupCreateTemplate.getDeepConversionType())) {
                 groupJson.put("deep_conversion_type", groupCreateTemplate.getDeepConversionType());
             }
-            if (!Check.isNull(groupCreateTemplate.getPage())) {
-                groupJson.put("page", groupCreateTemplate.getPage());
-            }
             if (!Check.isNull(groupCreateTemplate.getBeginTime())) {
                 groupJson.put("begin_time", groupCreateTemplate.getBeginTime());
             }
@@ -197,6 +184,24 @@ public class KuaiShouCreateServiceImpl implements IKuaiShouCreateService {
             if (!Check.isNull(groupCreateTemplate.getSpeed())) {
                 groupJson.put("speed", groupCreateTemplate.getSpeed());
             }
+            if (!Check.isNull(groupCreateTemplate.getSceneId())) {
+                JSONArray sceneIds = new JSONArray();
+                sceneIds.add(groupCreateTemplate.getSceneId());
+                groupJson.put("scene_id", sceneIds);
+            }
+            if (!Check.isNull(groupCreateTemplate.getUnitType())) {
+                groupJson.put("unit_type", groupCreateTemplate.getUnitType());
+            }
+
+            if (!Check.isNull(groupCreateTemplate.getDeepConversionType())) {
+                groupJson.put("deep_conversion_type", groupCreateTemplate.getDeepConversionType());
+            }
+
+            if (!Check.isNull(groupCreateTemplate.getDeepConversionBid()) && groupCreateTemplate.getDeepConversionBid() > 0) {
+                groupJson.put("deep_conversion_bid", groupCreateTemplate.getDeepConversionBid());
+            }
+
+
             JSONObject targetJson = new JSONObject();
             groupJson.put("target", targetJson);
 
@@ -207,7 +212,7 @@ public class KuaiShouCreateServiceImpl implements IKuaiShouCreateService {
                 Map<String, Object> groupMap = kuaishouInterfaceService.adUnitCreate(accessToken, accountId, groupJson);
                 if ((Integer) groupMap.get("code") != 0) {
                     logger.error("创建广告组失败,accountId:{},unitName:{}", accountId, unitName);
-                    throw new Exception("创建广告组失败");
+                    return groupMap;
                 }
                 groupCreateTemplate.setUnitId((Long) groupMap.get("unitId"));
                 groupCreateTemplate.setUnitName(name);
@@ -243,6 +248,10 @@ public class KuaiShouCreateServiceImpl implements IKuaiShouCreateService {
 
     @Override
     public Map<String, Object> createCreative(JSONObject requestJson) {
+        System.err.println("广告类型: " +requestJson.getInteger("positionType"));
+        System.err.println("素材类型:" + requestJson.getInteger("creativeMaterialType"));
+        System.err.println("后贴片图片横竖 :" + requestJson.getString("singlePicTiepianType"));
+
         Map<String, Object> returnMap = new HashMap<>();
         try {
             if (Check.isNull(requestJson)) {
@@ -269,7 +278,6 @@ public class KuaiShouCreateServiceImpl implements IKuaiShouCreateService {
                 throw new Exception("未获取到token信息");
             }
             String accessToken = cTopOauthToken.getAccessToken();
-
             Long unitId = requestJson.getLong("unitId");
             if (Check.isNull(unitId)) {
                 logger.error("创建创意广告组为空,accountId:{}", accountId);
@@ -280,87 +288,186 @@ public class KuaiShouCreateServiceImpl implements IKuaiShouCreateService {
             }
             createJson.put("unit_id", unitId);
 
-            String videoUrl;
-            String videoUploadType = requestJson.getString("videoUploadType");
-            if ("2".equals(videoUploadType)) {
-                videoUrl = videoService.localInsert(requestJson);
-            } else {
-                videoUrl = requestJson.getString("videoUrl");
-            }
-
-            if (Check.isNull(videoUrl)) {
-                logger.error("创建创意视频为空,accountId:{}", accountId);
+            if (Check.isNull(requestJson.getString("description"))) {
+                logger.error("请填写广告语,accountId:{}", accountId);
                 returnMap.put("code", -1);
                 returnMap.put("success", false);
-                returnMap.put("message", "请选择上传的视频");
+                returnMap.put("message", "请填写广告语");
                 return returnMap;
             }
 
-            Map<String, Object> videoMap = kuaishouInterfaceService.videoUpload(accountId, accessToken, videoUrl);
-            if ((Integer) videoMap.get("code") != 0) {
-                logger.error("上传视频失败,accountId:{}", accountId);
-                returnMap.put("code", -1);
-                returnMap.put("success", false);
-                returnMap.put("message", "上传视频失败");
-                return returnMap;
-            }
-            createJson.put("photo_id", videoMap.get("photoId"));
             if (!Check.isNull(requestJson.getString("actionBarText"))) {
                 createJson.put("action_bar_text", requestJson.getString("actionBarText"));
             }
 
-            if (Check.isNull(requestJson.getString("description"))) {
-                logger.error("请填写广告语,accountId:{}", accountId);
-                returnMap.put("code", -1);
-                returnMap.put("success", false);
-                returnMap.put("message", "请填写广告语");
-                return returnMap;
-            }
+            Integer creativeMaterialType = requestJson.getInteger("creativeMaterialType"); // 1 竖版视频 2 横版视频 3 贴片图片
+            createJson.put("creative_material_type", creativeMaterialType);
             createJson.put("description", requestJson.getString("description"));
-            if (!Check.isNull(requestJson.getString("clickTrackUrl"))) {
-                createJson.put("click_track_url", requestJson.getString("clickTrackUrl"));
-            }
-            JSONArray imageUrlArr = requestJson.getJSONArray("imageUrl");
-            if (Check.isNull(imageUrlArr)) {
-                logger.error("请选择封面图,accountId:{}", accountId);
-                returnMap.put("code", -1);
-                returnMap.put("success", false);
-                returnMap.put("message", "请选择广告创意封面图");
-                return returnMap;
-            }
-
             String creativeName = requestJson.getString("creativeName");
-            for (int i = 0; i < imageUrlArr.size(); i++) {
-                String imagePath;
-                String imageUrl = imageUrlArr.get(i).toString();
-                if (!Check.isNull(imageUrl)) {
-                    if ("2".equals(requestJson.getString("imageType"))) {
-                        imagePath = imageService.localInsert(imageUrl, requestJson);
-                    } else {
-                        imagePath = imageUrl;
+            Integer sceneId = requestJson.getInteger("sceneId");
+            if (sceneId == 2) {  // 普通 广告
+                JSONObject localVideoJson = new JSONObject();
+                localVideoJson.put("videoType", requestJson.getString("creativeMaterialType"));
+                localVideoJson.put("login_id", requestJson.getString("loginId"));
+                localVideoJson.put("videoUrl", requestJson.getString("videoUrl"));
+                localVideoJson.put("description", requestJson.getString("description"));
+                localVideoJson.put("positionType", requestJson.getString("positionType"));
+                String videoUrl = videoService.localInsert(localVideoJson); // 校验文件是否在本地有留存记录
+                if (Check.isNull(videoUrl)) {
+                    logger.error("创建创意视频为空,accountId:{}", accountId);
+                    returnMap.put("code", -1);
+                    returnMap.put("success", false);
+                    returnMap.put("message", "请选择上传的视频");
+                    return returnMap;
+                }
+
+                long startTime = System.currentTimeMillis();
+                logger.info("开始上传视频");
+                Map<String, Object> videoMap = kuaishouInterfaceService.videoUpload(accountId, accessToken, videoUrl); // 上传视频到快手后台
+                if ((Integer) videoMap.get("code") != 0) {
+                    logger.error("上传视频失败,accountId:{}", accountId);
+                    return videoMap;
+                }
+                createJson.put("photo_id", videoMap.get("photoId"));
+                logger.info("上传信息流广告视频完成,共耗时:{} ms", System.currentTimeMillis() - startTime);
+
+
+                if (!Check.isNull(requestJson.getString("clickTrackUrl"))) {
+                    createJson.put("click_track_url", requestJson.getString("clickTrackUrl"));
+                }
+
+                JSONArray imageUrlArr = requestJson.getJSONArray("imageUrl");
+                if (Check.isNull(imageUrlArr)) {
+                    logger.error("请选择封面图,accountId:{}", accountId);
+                    returnMap.put("code", -1);
+                    returnMap.put("success", false);
+                    returnMap.put("message", "请选择广告创意封面图");
+                    return returnMap;
+                }
+
+
+                for (int i = 0; i < imageUrlArr.size(); i++) {
+                    String imageUrl = imageUrlArr.get(i).toString();
+                    if (Check.isNull(imageUrl)) {
+                        continue;
                     }
+                    JSONObject imageJson = new JSONObject();
+                    imageJson.put("loginId", requestJson.getString("loginId"));
+                    imageJson.put("videoUploadType", requestJson.getString("creativeMaterialType"));
+                    imageJson.put("url", imageUrl);
+                    imageJson.put("positionType", requestJson.getString("positionType"));
+                    String imagePath = imageService.localInsert(imageJson);
 
                     Map<String, Object> imageMap = kuaishouInterfaceService.imageUpload(accountId, accessToken, imagePath, 0);
                     if ((Integer) imageMap.get("code") != 0) {
-                        returnMap.put("code", -1);
-                        returnMap.put("success", false);
-                        returnMap.put("message", "上传图片失败");
-                        return returnMap;
+                        return imageMap;
                     }
                     createJson.put("image_token", imageMap.get("imageToken"));
                     createJson.put("creative_name", creativeName + "_" + i);
                     Map<String, Object> creativeMap = kuaishouInterfaceService.creativeCreate(accessToken, accountId, createJson);
                     if ((Integer) creativeMap.get("code") != 0) {
-                        throw new Exception("批量创建创意失败");
+                        return creativeMap;
                     }
                 }
 
+            } else if (sceneId == 3) { // 后贴片 广告
+                if (!Check.isNull(requestJson.getString("impressionUrl"))) {
+                    createJson.put("impression_url", requestJson.getString("impressionUrl"));
+                }
+
+                if (!Check.isNull(requestJson.getString("adPhotoPlayedT3sUrl"))) {
+                    createJson.put("ad_photo_played_t3s_url", requestJson.getString("adPhotoPlayedT3sUrl"));
+                }
+                if (creativeMaterialType != 3) { // 后贴片 视频集合
+                    JSONArray haveSinglePicVideoUrlArr = requestJson.getJSONArray("haveSinglePicVideoUrl");
+                    if (Check.isNull(haveSinglePicVideoUrlArr)) {
+                        returnMap.put("code", -1);
+                        returnMap.put("success", false);
+                        returnMap.put("message", "请选择视频素材进行上传素材");
+                        return returnMap;
+                    }
+
+                    for (int i = 0; i < haveSinglePicVideoUrlArr.size(); i++) {
+                        String haveSinglePicVideoUrl = haveSinglePicVideoUrlArr.get(i).toString();
+                        if (Check.isNull(haveSinglePicVideoUrl)) {
+                            continue;
+                        }
+                        JSONObject haveLocalVideoJson = new JSONObject();
+                        haveLocalVideoJson.put("positionType", requestJson.getString("positionType"));
+                        haveLocalVideoJson.put("videoUrl", haveSinglePicVideoUrl);
+                        haveLocalVideoJson.put("description", requestJson.getString("description"));
+                        haveLocalVideoJson.put("login_id", requestJson.getString("loginId"));
+                        haveLocalVideoJson.put("videoType", requestJson.getString("creativeMaterialType"));
+                        String havaVideoUrl = videoService.localInsert(haveLocalVideoJson); // 校验文件是否在本地有留存记录
+                        if (Check.isNull(havaVideoUrl)) {
+                            logger.error("创建创意视频为空,accountId:{}", accountId);
+                            returnMap.put("code", -1);
+                            returnMap.put("message", "请选择上传的视频");
+                            returnMap.put("success", false);
+                            return returnMap;
+                        }
+
+                        long startTime = System.currentTimeMillis();
+                        logger.info("开始上传视频");
+                        Map<String, Object> videoMap = kuaishouInterfaceService.videoUpload(accountId, accessToken, havaVideoUrl); // 上传视频到快手后台
+                        if ((Integer) videoMap.get("code") != 0) {
+                            logger.error("后贴片素材上传视频失败,accountId:{}", accountId);
+                            return videoMap;
+                        }
+                        logger.info("上传贴片视频完成,共耗时:{} ms", System.currentTimeMillis() - startTime);
+                        createJson.put("photo_id", videoMap.get("photoId"));
+                        createJson.put("creative_name", creativeName + "_" + i);
+                        Map<String, Object> creativeMap = kuaishouInterfaceService.creativeCreate(accessToken, accountId, createJson);
+                        if ((Integer) creativeMap.get("code") != 0) {
+                            logger.error("后贴片视频素材批量创建创意失败,accountId:{},creativeName:{}", accountId, creativeName + "_" + i);
+                            return creativeMap;
+                        }
+                    }
+
+
+                } else { // 后贴片图片素材
+                    JSONArray haveSinglePicimagesListArr = requestJson.getJSONArray("haveSinglePicimagesList");
+                    if (Check.isNull(haveSinglePicimagesListArr)) {
+                        returnMap.put("code", -1);
+                        returnMap.put("success", false);
+                        returnMap.put("message", "请选择后贴片图片素材进行上传");
+                        return returnMap;
+                    }
+
+                    for (int i = 0; i < haveSinglePicimagesListArr.size(); i++) {
+                        String imageUrl = haveSinglePicimagesListArr.get(i).toString();
+                        if (Check.isNull(imageUrl)) {
+                            continue;
+                        }
+                        JSONObject imageJson = new JSONObject();
+                        imageJson.put("url", imageUrl);
+                        imageJson.put("positionType", requestJson.getInteger("positionType"));
+                        imageJson.put("loginId", requestJson.getString("loginId"));
+                        imageJson.put("videoUploadType", requestJson.getString("singlePicTiepianType"));
+
+                        String imagePath = imageService.localInsert(imageJson);
+
+                        Map<String, Object> imageMap = kuaishouInterfaceService.imageUpload(accountId, accessToken, imagePath, 0);
+                        if ((Integer) imageMap.get("code") != 0) {
+                            logger.error("上传后贴片单张图片素材失败,accountId:{}", accountId);
+                            return imageMap;
+                        }
+                        createJson.put("creative_name", creativeName + "_" + i);
+                        JSONArray image_tokens = new JSONArray();
+                        image_tokens.add(imageMap.get("imageToken"));
+                        createJson.put("image_tokens", image_tokens);
+                        Map<String, Object> creativeMap = kuaishouInterfaceService.creativeCreate(accessToken, accountId, createJson);
+                        if ((Integer) creativeMap.get("code") != 0) {
+                            logger.error("后贴片素材单张图片批量创建创意失败,accountId:{}", accountId);
+                            return creativeMap;
+                        }
+                    }
+                }
             }
+
             returnMap.put("code", 0);
             returnMap.put("success", true);
             returnMap.put("message", "创建创意成功");
-            return returnMap;
-
         } catch (Exception e) {
             returnMap.put("code", -1);
             returnMap.put("success", false);
@@ -394,6 +501,9 @@ public class KuaiShouCreateServiceImpl implements IKuaiShouCreateService {
                 queryWrapper.eq("account_id", accountId).eq("campaign_id", campaignId).orderByDesc("create_time");
                 queryWrapper.last("limit 1");
                 KuaiShouCampaignCreate campaignCreate = campaignCreateMapper.selectOne(queryWrapper);
+                if (Check.isNull(campaignCreate)) {
+                    continue;
+                }
                 optionsJson.put("label", campaignCreate.getCampaignName());
                 optionsJson.put("isLeaf", false);
                 result.add(optionsJson);

+ 0 - 19
jeecg-boot-module-system/src/main/java/org/jeecg/modules/kuaishou/service/impl/KuaiShouGroupCreateServiceImpl.java

@@ -1,19 +0,0 @@
-package org.jeecg.modules.kuaishou.service.impl;
-
-import org.jeecg.modules.kuaishou.entity.KuaiShouGroupCreate;
-import org.jeecg.modules.kuaishou.mapper.KuaiShouGroupCreateMapper;
-import org.jeecg.modules.kuaishou.service.IKuaiShouGroupCreateService;
-import org.springframework.stereotype.Service;
-
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-
-/**
- * @Description: 快手-创建广告组信息
- * @Author: jeecg-boot
- * @Date: 2019-07-24
- * @Version: V1.0
- */
-@Service
-public class KuaiShouGroupCreateServiceImpl extends ServiceImpl<KuaiShouGroupCreateMapper, KuaiShouGroupCreate> implements IKuaiShouGroupCreateService {
-
-}

+ 29 - 11
jeecg-boot-module-system/src/main/java/org/jeecg/modules/kuaishou/service/impl/KuaiShouImageServiceImpl.java

@@ -45,6 +45,7 @@ public class KuaiShouImageServiceImpl extends ServiceImpl<KuaiShouImageMapper, K
                 image.setImageName(AesEncryptUtil.getURLDecoderString(fileNameStr));
                 image.setLoginId(requestJson.getString("loginId"));
                 image.setMaterialType(requestJson.getString("materialType"));
+                image.setPositionType(requestJson.getString("positionType"));
                 image.setLocalUrl(KuaishouInterfaceConstant.HTTPS_PREFIX + imageUrl);
                 imageMapper.insert(image);
 
@@ -56,28 +57,45 @@ public class KuaiShouImageServiceImpl extends ServiceImpl<KuaiShouImageMapper, K
     }
 
     @Override
-    public String localInsert(String url, JSONObject requestJson) {
-        String imageUrl = "";
-        if (!Check.isNull(url)) {
+    public String localInsert(JSONObject imageJson) {
+        String url = imageJson.getString("url");
+        String positionType = imageJson.getString("positionType");
+        String videoUploadType = imageJson.getString("videoUploadType");
+        String loginId = imageJson.getString("loginId");
+
+        QueryWrapper<KuaiShouImage> queryWrapper = new QueryWrapper<>();
+        queryWrapper.eq("local_url", url);
+        queryWrapper.eq("position_type", positionType);
+        queryWrapper.eq("material_type", videoUploadType);
+        queryWrapper.eq("login_id", loginId);
+        queryWrapper.orderByDesc("create_time");
+        queryWrapper.last("limit 1");
+        KuaiShouImage imageLocal = imageMapper.selectOne(queryWrapper);
+        if (Check.isNull(imageLocal)) {
             KuaiShouImage image = new KuaiShouImage();
-
             String fileName = url.substring(url.lastIndexOf("/") + 1);
             String fileNameStr = null;
             if (!Check.isNull(fileName)) {
                 String[] split = fileName.split("-");
                 fileNameStr = split[0];
             }
-            image.setLoginId(requestJson.getString("loginId"));
+            image.setLoginId(loginId);
             image.setImageName(AesEncryptUtil.getURLDecoderString(fileNameStr));
-            image.setMaterialType(requestJson.getString("videoUploadType"));
-            imageUrl = KuaishouInterfaceConstant.HTTPS_PREFIX + url;
-            image.setLocalUrl(imageUrl);
-            imageMapper.insert(image);
-
+            image.setMaterialType(videoUploadType);
+            image.setPositionType(positionType);
+            if (!url.contains("https:")) {
+                String imageUrl = KuaishouInterfaceConstant.HTTPS_PREFIX + url;
+                image.setLocalUrl(imageUrl);
+
+            } else {
+                image.setLocalUrl(url);
+            }
 
+            imageMapper.insert(image);
+            return image.getLocalUrl().toString();
         }
 
-        return imageUrl;
+        return url;
     }
 
     @Override

+ 33 - 20
jeecg-boot-module-system/src/main/java/org/jeecg/modules/kuaishou/service/impl/KuaiShouVideoServiceImpl.java

@@ -3,6 +3,7 @@ package org.jeecg.modules.kuaishou.service.impl;
 import cn.com.ctop.common.utils.Check;
 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 constant.KuaishouInterfaceConstant;
 import org.jeecg.common.util.encryption.AesEncryptUtil;
@@ -44,6 +45,7 @@ public class KuaiShouVideoServiceImpl extends ServiceImpl<KuaiShouVideoMapper, K
                 video.setVideoName(AesEncryptUtil.getURLDecoderString(fileNameStr));
                 video.setLocalUrl(KuaishouInterfaceConstant.HTTPS_PREFIX + url);
                 video.setMaterialType(requestJson.getString("materialType"));
+                video.setPositionType(requestJson.getString("positionType"));
                 kuaiShouVideoMapper.insert(video);
             }
         }
@@ -52,31 +54,42 @@ public class KuaiShouVideoServiceImpl extends ServiceImpl<KuaiShouVideoMapper, K
 
     @Override
     public String localInsert(JSONObject requestJson) throws Exception {
-
-        String url = null;
+        String loginId = requestJson.getString("login_id");
         String videoUrl = requestJson.getString("videoUrl");
-        if (!Check.isNull(videoUrl)) {
-
-            KuaiShouVideo video = new KuaiShouVideo();
-            video.setVideoDesc(requestJson.getString("description"));
-            String fileName = videoUrl.substring(videoUrl.lastIndexOf("/") + 1);
-            String fileNameStr = null;
-            if (!Check.isNull(fileName)) {
-                String[] split = fileName.split("-");
-                fileNameStr = split[0];
-            }
-            url = KuaishouInterfaceConstant.HTTPS_PREFIX + videoUrl;
-            video.setLocalUrl(url);
-            video.setLoginId(requestJson.getString("loginId"));
-            video.setMaterialType(requestJson.getString("videoType"));
-            video.setVideoName(AesEncryptUtil.getURLDecoderString(fileNameStr));
-
+        QueryWrapper<KuaiShouVideo> queryWrapper = new QueryWrapper<>();
+        queryWrapper.eq("login_id", loginId);
+        queryWrapper.eq("local_url", videoUrl);
+        queryWrapper.orderByDesc("create_time");
+        queryWrapper.last("limit 1");
+        KuaiShouVideo localVideo = kuaiShouVideoMapper.selectOne(queryWrapper);
+        if (Check.isNull(localVideo)) {
+            if (!Check.isNull(videoUrl)) {
+                KuaiShouVideo video = new KuaiShouVideo();
+                video.setVideoDesc(requestJson.getString("description"));
+                String fileName = videoUrl.substring(videoUrl.lastIndexOf("/") + 1);
+                String fileNameStr = null;
+                if (!Check.isNull(fileName)) {
+                    String[] split = fileName.split("-");
+                    fileNameStr = split[0];
+                }
 
-            kuaiShouVideoMapper.insert(video);
+                if (!videoUrl.contains("https:")) {
+                    String url = KuaishouInterfaceConstant.HTTPS_PREFIX + videoUrl;
+                    video.setLocalUrl(url);
+                } else {
+                    video.setLocalUrl(videoUrl);
+                }
 
+                video.setLoginId(loginId);
+                video.setMaterialType(requestJson.getString("videoType"));
+                video.setPositionType(requestJson.getString("positionType"));
+                video.setVideoName(AesEncryptUtil.getURLDecoderString(fileNameStr));
+                kuaiShouVideoMapper.insert(video);
+                return video.getLocalUrl().toString();
+            }
         }
 
-        return url;
+        return videoUrl;
     }
 
 }

+ 59 - 82
jeecg-boot-module-system/src/main/java/org/jeecg/modules/kuaishou/service/impl/KuaishouInterfaceServiceImpl.java

@@ -328,27 +328,30 @@ public class KuaishouInterfaceServiceImpl implements IKuaishouInterfaceService {
                     returnMap.put("code", 0);
                     returnMap.put("message", "success");
                     returnMap.put("campaign_id", campaign_id);
+                    returnMap.put("success", true);
 
                 } else {
                     logger.error("创建广告信息失败,advertiser_id:{},返回信息:{}", advertiser_id, resultJson);
                     returnMap.put("code", -1);
-                    returnMap.put("message", "error");
-                    returnMap.put("desc", resultJson.getString("message"));
+                    returnMap.put("message", resultJson.getString("message"));
+                    returnMap.put("desc", "创建广告计划失败");
+                    returnMap.put("success", false);
                 }
 
 
             } else {
                 logger.error("快手创建广告计划返回内容为空,advertiser_id:{}", advertiser_id);
                 returnMap.put("code", -1);
-                returnMap.put("message", "error");
+                returnMap.put("message", "创建广告计划错误");
                 returnMap.put("desc", "result is null");
+                returnMap.put("success", false);
             }
 
 
         } catch (Exception e) {
             logger.error("创建广告计划失败,advertiser_id:{}", advertiser_id);
             returnMap.put("code", -1);
-            returnMap.put("message", "error");
+            returnMap.put("message", "创建广告计划失败");
             returnMap.put("desc", "Interface exception");
             e.printStackTrace();
         }
@@ -368,8 +371,7 @@ public class KuaishouInterfaceServiceImpl implements IKuaishouInterfaceService {
 
     @Autowired
     private KuaiShouGroupCreateTargetMapper groupCreateTargetMapper;
-    @Autowired
-    private KuaiShouGroupCreateMapper groupCreateMapper;
+
 
     @Override
     public Map<String, Object> adUnitCreate(String accessToken, Long advertiser_id, JSONObject requestJson) {
@@ -390,76 +392,37 @@ public class KuaishouInterfaceServiceImpl implements IKuaishouInterfaceService {
                 if (code == 0) {
                     JSONObject dataJson = resultJson.getJSONObject("data");
                     if (!Check.isNull(dataJson)) {
-                        KuaiShouGroupCreate groupCreate = new KuaiShouGroupCreate();
                         Long unitId = dataJson.getLong("unit_id");
-                        groupCreate.setUnitId(unitId);
-                        groupCreate.setAccountId(advertiser_id);
-                        groupCreate.setCampaignId(requestJson.getLong("campaign_id"));
-                        groupCreate.setUnitName(requestJson.getString("unit_name"));
-                        groupCreate.setBidType(requestJson.getInteger("bid_type"));
-                        groupCreate.setBid(requestJson.getInteger("bid"));
-                        groupCreate.setCpaBid(requestJson.getInteger("cpa_bid"));
-                        groupCreate.setOcpxActionType(requestJson.getInteger("ocpx_action_type"));
-                        groupCreate.setDeepConversionType(requestJson.getInteger("deep_conversion_type"));
-                        groupCreate.setPage(requestJson.getInteger("page"));
-                        groupCreate.setBeginTime(requestJson.getString("begin_time"));
-                        groupCreate.setEndTime(requestJson.getString("end_time"));
-                        groupCreate.setScheduleTime(requestJson.getString("schedule_time"));
-                        groupCreate.setDayBudget(requestJson.getLong("day_budget"));
-                        groupCreate.setUrlType(requestJson.getInteger("url_type"));
-                        groupCreate.setUrl(requestJson.getString("url"));
-                        groupCreate.setAppId(requestJson.getLong("app_id"));
-                        groupCreate.setShowModel(requestJson.getInteger("show_mode"));
-                        groupCreate.setSpeed(requestJson.getInteger("speed"));
-                        groupCreateMapper.insert(groupCreate);
-                        //定向信息
-                        JSONObject targetJson = requestJson.getJSONObject("target");
-                        if (!Check.isNull(targetJson)) {
-                            KuaiShouGroupCreateTarget groupCreateTarget = new KuaiShouGroupCreateTarget();
-                            groupCreateTarget.setAccountId(advertiser_id);
-                            groupCreateTarget.setUnitId(unitId);
-                            groupCreateTarget.setRegion(targetJson.getJSONArray("region"));
-                            JSONObject ageJson = targetJson.getJSONObject("age");
-                            if (!Check.isNull(ageJson)) {
-                                groupCreateTarget.setAgeMin(ageJson.getInteger("min"));
-                                groupCreateTarget.setAgeMax(ageJson.getInteger("max"));
-                            }
-                            groupCreateTarget.setGender(targetJson.getInteger("gender"));
-                            groupCreateTarget.setPlatformOs(targetJson.getInteger("platform_os"));
-                            groupCreateTarget.setAndroidOsv(targetJson.getInteger("android_osv"));
-                            groupCreateTarget.setIosOsv(targetJson.getInteger("ios_osv"));
-                            groupCreateTarget.setNetwork(targetJson.getInteger("network"));
-                            groupCreateTarget.setDeviceBrand(targetJson.getInteger("device_brand"));
-                            groupCreateTarget.setDevicePrice(targetJson.getJSONArray("device_price"));
-                            groupCreateTargetMapper.insert(groupCreateTarget);
-                        }
-
                         returnMap.put("code", 0);
                         returnMap.put("message", "success");
                         returnMap.put("unitId", unitId);
+                        returnMap.put("success", true);
                     }
 
                 } else {
                     logger.error("创建广告信息失败,advertiser_id:{},返回信息:{}", advertiser_id, resultJson);
                     returnMap.put("code", -1);
-                    returnMap.put("message", "error");
-                    returnMap.put("desc", resultJson.getString("message"));
+                    returnMap.put("message", resultJson.getString("message"));
+                    returnMap.put("desc", "创建广告组失败");
+                    returnMap.put("success", false);
                 }
 
 
             } else {
                 logger.error("快手创建广告计划返回内容为空,advertiser_id:{}", advertiser_id);
                 returnMap.put("code", -1);
-                returnMap.put("message", "error");
+                returnMap.put("message", "创建广告组异常");
                 returnMap.put("desc", "result is null");
+                returnMap.put("success", false);
             }
 
 
         } catch (Exception e) {
             logger.error("创建广告计划失败,advertiser_id:{}", advertiser_id);
             returnMap.put("code", -1);
-            returnMap.put("message", "error");
+            returnMap.put("message", "创建广告组错误");
             returnMap.put("desc", "Interface exception");
+            returnMap.put("success", false);
             e.printStackTrace();
         }
 
@@ -794,15 +757,13 @@ public class KuaishouInterfaceServiceImpl implements IKuaishouInterfaceService {
                         conversionInfos.setAccountId(advertiserId);
                         is_activate = dataJson.getInteger("is_activate");
                         is_form_submit = dataJson.getInteger("is_form_submit");
-
-
                         conversionInfos.setIsActivate(is_activate);
                         conversionInfos.setIsFormSubmit(is_form_submit);
                         conversionInfosMapper.insert(conversionInfos);
-                        JSONArray ConversionTypeArr = dataJson.getJSONArray("deep_conversion_types");
-                        if (!Check.isNull(ConversionTypeArr)) {
-                            for (int i = 0; i < ConversionTypeArr.size(); i++) {
-                                JSONObject conversionType = JSONObject.parseObject(ConversionTypeArr.get(i).toString());
+                        JSONArray conversionTypeArr = dataJson.getJSONArray("deep_conversion_types");
+                        if (!Check.isNull(conversionTypeArr)) {
+                            for (int i = 0; i < conversionTypeArr.size(); i++) {
+                                JSONObject conversionType = JSONObject.parseObject(conversionTypeArr.get(i).toString());
                                 if (!Check.isNull(conversionType)) {
                                     KuaiShouConversionTypes conversionTypes = new KuaiShouConversionTypes();
                                     conversionTypes.setAccountId(advertiserId);
@@ -811,13 +772,16 @@ public class KuaishouInterfaceServiceImpl implements IKuaishouInterfaceService {
                                     conversionTypesMapper.insert(conversionTypes);
                                 }
                             }
+
                         }
+                        resultMap.put("isActivate", is_activate);
+                        resultMap.put("isFormSubmit", is_form_submit);
+                        resultMap.put("deepConversionTypes", conversionTypeArr);
+                        resultMap.put("code", 0);
+                        resultMap.put("success", true);
+                        resultMap.put("message", "查询成功");
                     }
 
-                    resultMap.put("code", 0);
-                    resultMap.put("success", true);
-                    resultMap.put("isActivate", is_activate);
-                    resultMap.put("isFormSubmit", is_form_submit);
 
                 } else {
                     logger.error("获取可选的深度转化类型返回异常,advertiserId:{},异常信息:{}", advertiserId, resultJson);
@@ -866,7 +830,7 @@ public class KuaishouInterfaceServiceImpl implements IKuaishouInterfaceService {
 
             String result = HttpUtils.kuaiShouhttpPostRequest(url, requestJson.toJSONString(), header);
             JSONObject resultJson = JSONObject.parseObject(result);
-            logger.info("快手创建创意返回信息:{}",resultJson);
+            logger.info("快手创建创意返回信息:{}", resultJson);
             if (!Check.isNull(resultJson)) {
                 Integer code = resultJson.getInteger("code");
                 if (code == 0) {
@@ -888,18 +852,21 @@ public class KuaishouInterfaceServiceImpl implements IKuaishouInterfaceService {
                         }
                         returnMap.put("code", 0);
                         returnMap.put("message", "success");
+                        returnMap.put("success", true);
                     }
                 } else {
                     logger.error("创建广告创意失败,advertiser_id:{},返回信息:{}", advertiserId, resultJson);
                     returnMap.put("code", -1);
-                    returnMap.put("message", "error");
-                    returnMap.put("desc", resultJson.getString("message"));
+                    returnMap.put("message", resultJson.getString("message"));
+                    returnMap.put("desc", "上传图片失败");
+                    returnMap.put("success", false);
                 }
             } else {
                 logger.error("快手创建广告创意返回内容为空,advertiser_id:{}", advertiserId);
                 returnMap.put("code", -1);
-                returnMap.put("message", "error");
+                returnMap.put("message", "上传图片异常");
                 returnMap.put("desc", "result is null");
+                returnMap.put("success", false);
             }
 
         } catch (Exception e) {
@@ -907,6 +874,7 @@ public class KuaishouInterfaceServiceImpl implements IKuaishouInterfaceService {
             returnMap.put("code", -1);
             returnMap.put("message", "error");
             returnMap.put("desc", "Interface exception");
+            returnMap.put("success", false);
             e.printStackTrace();
         }
         return returnMap;
@@ -951,7 +919,6 @@ public class KuaishouInterfaceServiceImpl implements IKuaishouInterfaceService {
             headerMap.put("Content-Type", "multipart/form-data");
             String result = exceptInfoForRestTemplate(url, requestJson, headerMap, localUrl);
             JSONObject resultJson = JSONObject.parseObject(result);
-            System.err.println(requestJson);
             if (!Check.isNull(result)) {
                 Integer code = resultJson.getInteger("code");
                 if (code == 0) {
@@ -977,7 +944,7 @@ public class KuaishouInterfaceServiceImpl implements IKuaishouInterfaceService {
                 } else {
                     logger.error("快手上传视频返回信息异常 ,advertiserId:{},异常信息:{}", advertiserId, resultJson);
                     returnMap.put("code", -1);
-                    returnMap.put("message", "视频上传失败");
+                    returnMap.put("message", resultJson.getString("message"));
                     returnMap.put("success", false);
                     return returnMap;
                 }
@@ -993,10 +960,9 @@ public class KuaishouInterfaceServiceImpl implements IKuaishouInterfaceService {
 
         } catch (Exception e) {
             logger.error("上传视频失败,advertiser_id:{}", advertiserId);
-
             e.printStackTrace();
             returnMap.put("code", -1);
-            returnMap.put("message", "error");
+            returnMap.put("message", "上传视频异常");
             returnMap.put("desc", "Interface exception");
             returnMap.put("success", false);
             return returnMap;
@@ -1239,21 +1205,24 @@ public class KuaishouInterfaceServiceImpl implements IKuaishouInterfaceService {
                         returnMap.put("code", 0);
                         returnMap.put("desc", "上传图片完成");
                         returnMap.put("imageToken", dataJson.getString("image_token"));
+                        returnMap.put("success", true);
                         return returnMap;
                     }
 
                 } else {
                     logger.error("快手上传图片返回信息异常 ,advertiserId:{},异常信息:{}", advertiserId, resultJson);
                     returnMap.put("code", -1);
-                    returnMap.put("message", "error");
-                    returnMap.put("desc", resultJson.getString("message"));
+                    returnMap.put("desc", "error");
+                    returnMap.put("message", resultJson.getString("message"));
+                    returnMap.put("success", false);
                 }
 
             } else {
                 logger.error("快手上传图片返回信息为空,advertiserId:{}", advertiserId);
                 returnMap.put("code", -1);
-                returnMap.put("message", "error");
-                returnMap.put("desc", "上传失败");
+                returnMap.put("desc", "error");
+                returnMap.put("message", "上传图片失败失败");
+                returnMap.put("success", false);
             }
             boolean trueOrFalse = LoadFileUtil.delFile(localUrl);
             if (trueOrFalse) {
@@ -1262,8 +1231,9 @@ public class KuaishouInterfaceServiceImpl implements IKuaishouInterfaceService {
         } catch (Exception e) {
             logger.error("上传图片失败,advertiser_id:{}", advertiserId);
             returnMap.put("code", -1);
-            returnMap.put("message", "error");
+            returnMap.put("message", "上传图片异常");
             returnMap.put("desc", "Interface exception");
+            returnMap.put("success", false);
             e.printStackTrace();
         }
         return returnMap;
@@ -1334,20 +1304,23 @@ public class KuaishouInterfaceServiceImpl implements IKuaishouInterfaceService {
                         returnMap.put("code", 0);
                         returnMap.put("message", "success");
                         returnMap.put("appId", dataJson.getLong("app_id"));
+                        returnMap.put("success", true);
                     }
 
                 } else {
                     logger.error("快手创建应用返回信息异常 ,advertiserId:{},异常信息:{}", advertiserId, resultJson);
                     returnMap.put("code", -1);
-                    returnMap.put("message", "error");
+                    returnMap.put("message", resultJson.getString("message"));
                     returnMap.put("desc", "Interface exception");
+                    returnMap.put("success", false);
                 }
 
             } else {
                 logger.error("快手创建应用返回信息为空,advertiserId:{}", advertiserId);
                 returnMap.put("code", -1);
-                returnMap.put("message", "error");
+                returnMap.put("message", "上传apk文件失败");
                 returnMap.put("desc", "Interface exception");
+                returnMap.put("success", false);
             }
             boolean trueOrFalse = LoadFileUtil.delFile(localUrl);
             if (trueOrFalse) {
@@ -1356,8 +1329,9 @@ public class KuaishouInterfaceServiceImpl implements IKuaishouInterfaceService {
         } catch (Exception e) {
             logger.error("创建应用失败,advertiser_id:{}", advertiserId);
             returnMap.put("code", -1);
-            returnMap.put("message", "error");
+            returnMap.put("message", "上传apk文件错误");
             returnMap.put("desc", "Interface exception");
+            returnMap.put("success", false);
             e.printStackTrace();
         }
         return returnMap;
@@ -1411,27 +1385,30 @@ public class KuaishouInterfaceServiceImpl implements IKuaishouInterfaceService {
                         returnMap.put("code", 0);
                         returnMap.put("message", "success");
                         returnMap.put("appId", dataJson.getLong("app_id"));
+                        returnMap.put("success", true);
                     }
 
                 } else {
                     logger.error("快手创建应用返回信息异常 ,advertiserId:{},异常信息:{}", accountId, resultJson);
                     returnMap.put("code", -1);
-                    returnMap.put("message", "error");
+                    returnMap.put("message", resultJson.getString("message"));
                     returnMap.put("desc", "Interface exception");
+                    returnMap.put("success", false);
                 }
 
             } else {
                 logger.error("快手创建应用返回信息为空,advertiserId:{}", accountId);
                 returnMap.put("code", -1);
-                returnMap.put("message", "error");
+                returnMap.put("message", "apk文件url上传异常");
                 returnMap.put("desc", "Interface exception");
+                returnMap.put("success", false);
             }
 
 
         } catch (Exception e) {
             logger.error("创建应用失败,advertiser_id:{}", accountId);
             returnMap.put("code", -1);
-            returnMap.put("message", "error");
+            returnMap.put("message", "应用url异常");
             returnMap.put("desc", "Interface exception");
             e.printStackTrace();
         }

+ 0 - 263
jeecg-boot-module-system/src/main/java/org/jeecg/modules/kuaishou/vue/KuaiShouGroupCreateList.vue

@@ -1,263 +0,0 @@
-<template>
-    <a-card :bordered="false">
-
-        <!-- 查询区域 -->
-        <div class="table-page-search-wrapper">
-            <a-form layout="inline">
-                <a-row :gutter="24">
-
-                    <a-col :md="6" :sm="8">
-                        <a-form-item label="账户ID">
-                            <a-input placeholder="请输入账户ID" v-model="queryParam.accountId"></a-input>
-                        </a-form-item>
-                    </a-col>
-                    <a-col :md="6" :sm="8">
-                        <a-form-item label="广告活动ID">
-                            <a-input placeholder="请输入广告活动ID" v-model="queryParam.campaignId"></a-input>
-                        </a-form-item>
-                    </a-col>
-                    <template v-if="toggleSearchStatus">
-                        <a-col :md="6" :sm="8">
-                            <a-form-item label="广告组名称">
-                                <a-input placeholder="请输入广告组名称" v-model="queryParam.unitName"></a-input>
-                            </a-form-item>
-                        </a-col>
-                        <a-col :md="6" :sm="8">
-                            <a-form-item label="出价类型">
-                                <a-input placeholder="请输入出价类型" v-model="queryParam.bidType"></a-input>
-                            </a-form-item>
-                        </a-col>
-                        <a-col :md="6" :sm="8">
-                            <a-form-item label="出价">
-                                <a-input placeholder="请输入出价" v-model="queryParam.bid"></a-input>
-                            </a-form-item>
-                        </a-col>
-                    </template>
-                    <a-col :md="6" :sm="8">
-            <span style="float: left;overflow: hidden;" class="table-page-search-submitButtons">
-              <a-button type="primary" @click="searchQuery" icon="search">查询</a-button>
-              <a-button type="primary" @click="searchReset" icon="reload" style="margin-left: 8px">重置</a-button>
-              <a @click="handleToggleSearch" style="margin-left: 8px">
-                {{ toggleSearchStatus ? '收起' : '展开' }}
-                <a-icon :type="toggleSearchStatus ? 'up' : 'down'"/>
-              </a>
-            </span>
-                    </a-col>
-
-                </a-row>
-            </a-form>
-        </div>
-
-        <!-- 操作按钮区域 -->
-        <div class="table-operator">
-            <a-button @click="handleAdd" type="primary" icon="plus">新增</a-button>
-            <a-button type="primary" icon="download" @click="handleExportXls('快手-创建广告组信息')">导出</a-button>
-            <a-upload name="file" :showUploadList="false" :multiple="false" :headers="tokenHeader"
-                      :action="importExcelUrl" @change="handleImportExcel">
-                <a-button type="primary" icon="import">导入</a-button>
-            </a-upload>
-            <a-dropdown v-if="selectedRowKeys.length > 0">
-                <a-menu slot="overlay">
-                    <a-menu-item key="1" @click="batchDel">
-                        <a-icon type="delete"/>
-                        删除
-                    </a-menu-item>
-                </a-menu>
-                <a-button style="margin-left: 8px"> 批量操作
-                    <a-icon type="down"/>
-                </a-button>
-            </a-dropdown>
-        </div>
-
-        <!-- table区域-begin -->
-        <div>
-            <div class="ant-alert ant-alert-info" style="margin-bottom: 16px;">
-                <i class="anticon anticon-info-circle ant-alert-icon"></i> 已选择 <a style="font-weight: 600">{{
-                selectedRowKeys.length }}</a>项
-                <a style="margin-left: 24px" @click="onClearSelected">清空</a>
-            </div>
-
-            <a-table
-                    ref="table"
-                    size="middle"
-                    bordered
-                    rowKey="id"
-                    :columns="columns"
-                    :dataSource="dataSource"
-                    :pagination="ipagination"
-                    :loading="loading"
-                    :rowSelection="{selectedRowKeys: selectedRowKeys, onChange: onSelectChange}"
-                    @change="handleTableChange">
-
-        <span slot="action" slot-scope="text, record">
-          <a @click="handleEdit(record)">编辑</a>
-
-          <a-divider type="vertical"/>
-          <a-dropdown>
-            <a class="ant-dropdown-link">更多 <a-icon type="down"/></a>
-            <a-menu slot="overlay">
-              <a-menu-item>
-                <a-popconfirm title="确定删除吗?" @confirm="() => handleDelete(record.id)">
-                  <a>删除</a>
-                </a-popconfirm>
-              </a-menu-item>
-            </a-menu>
-          </a-dropdown>
-        </span>
-
-            </a-table>
-        </div>
-        <!-- table区域-end -->
-
-        <!-- 表单区域 -->
-        <kuaiShouGroupCreate-modal ref="modalForm" @ok="modalFormOk"></kuaiShouGroupCreate-modal>
-    </a-card>
-</template>
-
-<script>
-    import KuaiShouGroupCreateModal from './modules/KuaiShouGroupCreateModal'
-    import {JeecgListMixin} from '@/mixins/JeecgListMixin'
-
-    export default {
-        name: "KuaiShouGroupCreateList",
-        mixins: [JeecgListMixin],
-        components: {
-            KuaiShouGroupCreateModal
-        },
-        data() {
-            return {
-                description: '快手-创建广告组信息管理页面',
-                // 表头
-                columns: [
-                    {
-                        title: '#',
-                        dataIndex: '',
-                        key: 'rowIndex',
-                        width: 60,
-                        align: "center",
-                        customRender: function (t, r, index) {
-                            return parseInt(index) + 1;
-                        }
-                    },
-                    {
-                        title: '账户ID',
-                        align: "center",
-                        dataIndex: 'accountId'
-                    },
-                    {
-                        title: '广告活动ID',
-                        align: "center",
-                        dataIndex: 'campaignId'
-                    },
-                    {
-                        title: '广告组名称',
-                        align: "center",
-                        dataIndex: 'unitName'
-                    },
-                    {
-                        title: '出价类型',
-                        align: "center",
-                        dataIndex: 'bidType'
-                    },
-                    {
-                        title: '出价',
-                        align: "center",
-                        dataIndex: 'bid'
-                    },
-                    {
-                        title: 'OCPC出价',
-                        align: "center",
-                        dataIndex: 'cpaBid'
-                    },
-                    {
-                        title: '优化目标',
-                        align: "center",
-                        dataIndex: 'ocpxActionType'
-                    },
-                    {
-                        title: '深度转化目标',
-                        align: "center",
-                        dataIndex: 'deepConversionType'
-                    },
-                    {
-                        title: '资源位置',
-                        align: "center",
-                        dataIndex: 'page'
-                    },
-                    {
-                        title: '投放开始时间',
-                        align: "center",
-                        dataIndex: 'beginTime'
-                    },
-                    {
-                        title: '投放结束时间',
-                        align: "center",
-                        dataIndex: 'endTime'
-                    },
-                    {
-                        title: '投放时段',
-                        align: "center",
-                        dataIndex: 'scheduleTime'
-                    },
-                    {
-                        title: '单日预算',
-                        align: "center",
-                        dataIndex: 'dayBudget'
-                    },
-                    {
-                        title: 'url类型 1:淘宝商品短链 2:淘宝商品 itemID',
-                        align: "center",
-                        dataIndex: 'urlType'
-                    },
-                    {
-                        title: '投放链接',
-                        align: "center",
-                        dataIndex: 'url'
-                    },
-                    {
-                        title: 'APP ID',
-                        align: "center",
-                        dataIndex: 'appId'
-                    },
-                    {
-                        title: '创意展现方式  1:轮播 2:优选',
-                        align: "center",
-                        dataIndex: 'showModel'
-                    },
-                    {
-                        title: '投放方式 1:快速投放 2:平滑投放',
-                        align: "center",
-                        dataIndex: 'speed'
-                    },
-                    {
-                        title: '广告组ID',
-                        align: "center",
-                        dataIndex: 'unitId'
-                    },
-                    {
-                        title: '操作',
-                        dataIndex: 'action',
-                        align: "center",
-                        scopedSlots: {customRender: 'action'},
-                    }
-                ],
-                url: {
-                    list: "/kuaishou/kuaiShouGroupCreate/list",
-                    delete: "/kuaishou/kuaiShouGroupCreate/delete",
-                    deleteBatch: "/kuaishou/kuaiShouGroupCreate/deleteBatch",
-                    exportXlsUrl: "kuaishou/kuaiShouGroupCreate/exportXls",
-                    importExcelUrl: "kuaishou/kuaiShouGroupCreate/importExcel",
-                },
-            }
-        },
-        computed: {
-            importExcelUrl: function () {
-                return `${window._CONFIG['domianURL']}/${this.url.importExcelUrl}`;
-            }
-        },
-        methods: {}
-    }
-</script>
-<style scoped>
-    @import '~@assets/less/common.less'
-</style>

+ 0 - 230
jeecg-boot-module-system/src/main/java/org/jeecg/modules/kuaishou/vue/modules/KuaiShouGroupCreateModal.vue

@@ -1,230 +0,0 @@
-<template>
-    <a-modal
-            :title="title"
-            :width="800"
-            :visible="visible"
-            :confirmLoading="confirmLoading"
-            @ok="handleOk"
-            @cancel="handleCancel"
-            cancelText="关闭">
-
-        <a-spin :spinning="confirmLoading">
-            <a-form :form="form">
-
-                <a-form-item
-                        :labelCol="labelCol"
-                        :wrapperCol="wrapperCol"
-                        label="账户ID">
-                    <a-input placeholder="请输入账户ID" v-decorator="['accountId', {}]"/>
-                </a-form-item>
-                <a-form-item
-                        :labelCol="labelCol"
-                        :wrapperCol="wrapperCol"
-                        label="广告活动ID">
-                    <a-input placeholder="请输入广告活动ID" v-decorator="['campaignId', {}]"/>
-                </a-form-item>
-                <a-form-item
-                        :labelCol="labelCol"
-                        :wrapperCol="wrapperCol"
-                        label="广告组名称">
-                    <a-input placeholder="请输入广告组名称" v-decorator="['unitName', {}]"/>
-                </a-form-item>
-                <a-form-item
-                        :labelCol="labelCol"
-                        :wrapperCol="wrapperCol"
-                        label="出价类型">
-                    <a-input-number v-decorator="[ 'bidType', {}]"/>
-                </a-form-item>
-                <a-form-item
-                        :labelCol="labelCol"
-                        :wrapperCol="wrapperCol"
-                        label="出价">
-                    <a-input placeholder="请输入出价" v-decorator="['bid', {}]"/>
-                </a-form-item>
-                <a-form-item
-                        :labelCol="labelCol"
-                        :wrapperCol="wrapperCol"
-                        label="OCPC出价">
-                    <a-input placeholder="请输入OCPC出价" v-decorator="['cpaBid', {}]"/>
-                </a-form-item>
-                <a-form-item
-                        :labelCol="labelCol"
-                        :wrapperCol="wrapperCol"
-                        label="优化目标">
-                    <a-input-number v-decorator="[ 'ocpxActionType', {}]"/>
-                </a-form-item>
-                <a-form-item
-                        :labelCol="labelCol"
-                        :wrapperCol="wrapperCol"
-                        label="深度转化目标">
-                    <a-input-number v-decorator="[ 'deepConversionType', {}]"/>
-                </a-form-item>
-                <a-form-item
-                        :labelCol="labelCol"
-                        :wrapperCol="wrapperCol"
-                        label="资源位置">
-                    <a-input-number v-decorator="[ 'page', {}]"/>
-                </a-form-item>
-                <a-form-item
-                        :labelCol="labelCol"
-                        :wrapperCol="wrapperCol"
-                        label="投放开始时间">
-                    <a-input placeholder="请输入投放开始时间" v-decorator="['beginTime', {}]"/>
-                </a-form-item>
-                <a-form-item
-                        :labelCol="labelCol"
-                        :wrapperCol="wrapperCol"
-                        label="投放结束时间">
-                    <a-input placeholder="请输入投放结束时间" v-decorator="['endTime', {}]"/>
-                </a-form-item>
-                <a-form-item
-                        :labelCol="labelCol"
-                        :wrapperCol="wrapperCol"
-                        label="投放时段">
-                    <a-input placeholder="请输入投放时段" v-decorator="['scheduleTime', {}]"/>
-                </a-form-item>
-                <a-form-item
-                        :labelCol="labelCol"
-                        :wrapperCol="wrapperCol"
-                        label="单日预算">
-                    <a-input placeholder="请输入单日预算" v-decorator="['dayBudget', {}]"/>
-                </a-form-item>
-                <a-form-item
-                        :labelCol="labelCol"
-                        :wrapperCol="wrapperCol"
-                        label="url类型 1:淘宝商品短链 2:淘宝商品 itemID">
-                    <a-input-number v-decorator="[ 'urlType', {}]"/>
-                </a-form-item>
-                <a-form-item
-                        :labelCol="labelCol"
-                        :wrapperCol="wrapperCol"
-                        label="投放链接">
-                    <a-input placeholder="请输入投放链接" v-decorator="['url', {}]"/>
-                </a-form-item>
-                <a-form-item
-                        :labelCol="labelCol"
-                        :wrapperCol="wrapperCol"
-                        label="APP ID">
-                    <a-input placeholder="请输入APP ID" v-decorator="['appId', {}]"/>
-                </a-form-item>
-                <a-form-item
-                        :labelCol="labelCol"
-                        :wrapperCol="wrapperCol"
-                        label="创意展现方式  1:轮播 2:优选">
-                    <a-input-number v-decorator="[ 'showModel', {}]"/>
-                </a-form-item>
-                <a-form-item
-                        :labelCol="labelCol"
-                        :wrapperCol="wrapperCol"
-                        label="投放方式 1:快速投放 2:平滑投放">
-                    <a-input-number v-decorator="[ 'speed', {}]"/>
-                </a-form-item>
-                <a-form-item
-                        :labelCol="labelCol"
-                        :wrapperCol="wrapperCol"
-                        label="广告组ID">
-                    <a-input placeholder="请输入广告组ID" v-decorator="['unitId', {}]"/>
-                </a-form-item>
-
-            </a-form>
-        </a-spin>
-    </a-modal>
-</template>
-
-<script>
-    import {httpAction} from '@/api/manage'
-    import pick from 'lodash.pick'
-    import moment from "moment"
-
-    export default {
-        name: "KuaiShouGroupCreateModal",
-        data() {
-            return {
-                title: "操作",
-                visible: false,
-                model: {},
-                labelCol: {
-                    xs: {span: 24},
-                    sm: {span: 5},
-                },
-                wrapperCol: {
-                    xs: {span: 24},
-                    sm: {span: 16},
-                },
-
-                confirmLoading: false,
-                form: this.$form.createForm(this),
-                validatorRules: {},
-                url: {
-                    add: "/kuaishou/kuaiShouGroupCreate/add",
-                    edit: "/kuaishou/kuaiShouGroupCreate/edit",
-                },
-            }
-        },
-        created() {
-        },
-        methods: {
-            add() {
-                this.edit({});
-            },
-            edit(record) {
-                this.form.resetFields();
-                this.model = Object.assign({}, record);
-                this.visible = true;
-                this.$nextTick(() => {
-                    this.form.setFieldsValue(pick(this.model, 'accountId', 'campaignId', 'unitName', 'bidType', 'bid', 'cpaBid', 'ocpxActionType', 'deepConversionType', 'page', 'beginTime', 'endTime', 'scheduleTime', 'dayBudget', 'urlType', 'url', 'appId', 'showModel', 'speed', 'unitId'))
-                    //时间格式化
-                });
-
-            },
-            close() {
-                this.$emit('close');
-                this.visible = false;
-            },
-            handleOk() {
-                const that = this;
-                // 触发表单验证
-                this.form.validateFields((err, values) => {
-                    if (!err) {
-                        that.confirmLoading = true;
-                        let httpurl = '';
-                        let method = '';
-                        if (!this.model.id) {
-                            httpurl += this.url.add;
-                            method = 'post';
-                        } else {
-                            httpurl += this.url.edit;
-                            method = 'put';
-                        }
-                        let formData = Object.assign(this.model, values);
-                        //时间格式化
-
-                        console.log(formData)
-                        httpAction(httpurl, formData, method).then((res) => {
-                            if (res.success) {
-                                that.$message.success(res.message);
-                                that.$emit('ok');
-                            } else {
-                                that.$message.warning(res.message);
-                            }
-                        }).finally(() => {
-                            that.confirmLoading = false;
-                            that.close();
-                        })
-
-
-                    }
-                })
-            },
-            handleCancel() {
-                this.close()
-            },
-
-
-        }
-    }
-</script>
-
-<style lang="less" scoped>
-
-</style>

+ 0 - 237
jeecg-boot-module-system/src/main/java/org/jeecg/modules/kuaishou/vue/modules/KuaiShouGroupCreateModal__Style#Drawer.vue

@@ -1,237 +0,0 @@
-<template>
-    <a-drawer
-            :title="title"
-            :width="800"
-            placement="right"
-            :closable="false"
-            @close="close"
-            :visible="visible"
-    >
-
-        <a-spin :spinning="confirmLoading">
-            <a-form :form="form">
-
-                <a-form-item
-                        :labelCol="labelCol"
-                        :wrapperCol="wrapperCol"
-                        label="账户ID">
-                    <a-input placeholder="请输入账户ID" v-decorator="['accountId', {}]"/>
-                </a-form-item>
-                <a-form-item
-                        :labelCol="labelCol"
-                        :wrapperCol="wrapperCol"
-                        label="广告活动ID">
-                    <a-input placeholder="请输入广告活动ID" v-decorator="['campaignId', {}]"/>
-                </a-form-item>
-                <a-form-item
-                        :labelCol="labelCol"
-                        :wrapperCol="wrapperCol"
-                        label="广告组名称">
-                    <a-input placeholder="请输入广告组名称" v-decorator="['unitName', {}]"/>
-                </a-form-item>
-                <a-form-item
-                        :labelCol="labelCol"
-                        :wrapperCol="wrapperCol"
-                        label="出价类型">
-                    <a-input-number v-decorator="[ 'bidType', {}]"/>
-                </a-form-item>
-                <a-form-item
-                        :labelCol="labelCol"
-                        :wrapperCol="wrapperCol"
-                        label="出价">
-                    <a-input placeholder="请输入出价" v-decorator="['bid', {}]"/>
-                </a-form-item>
-                <a-form-item
-                        :labelCol="labelCol"
-                        :wrapperCol="wrapperCol"
-                        label="OCPC出价">
-                    <a-input placeholder="请输入OCPC出价" v-decorator="['cpaBid', {}]"/>
-                </a-form-item>
-                <a-form-item
-                        :labelCol="labelCol"
-                        :wrapperCol="wrapperCol"
-                        label="优化目标">
-                    <a-input-number v-decorator="[ 'ocpxActionType', {}]"/>
-                </a-form-item>
-                <a-form-item
-                        :labelCol="labelCol"
-                        :wrapperCol="wrapperCol"
-                        label="深度转化目标">
-                    <a-input-number v-decorator="[ 'deepConversionType', {}]"/>
-                </a-form-item>
-                <a-form-item
-                        :labelCol="labelCol"
-                        :wrapperCol="wrapperCol"
-                        label="资源位置">
-                    <a-input-number v-decorator="[ 'page', {}]"/>
-                </a-form-item>
-                <a-form-item
-                        :labelCol="labelCol"
-                        :wrapperCol="wrapperCol"
-                        label="投放开始时间">
-                    <a-input placeholder="请输入投放开始时间" v-decorator="['beginTime', {}]"/>
-                </a-form-item>
-                <a-form-item
-                        :labelCol="labelCol"
-                        :wrapperCol="wrapperCol"
-                        label="投放结束时间">
-                    <a-input placeholder="请输入投放结束时间" v-decorator="['endTime', {}]"/>
-                </a-form-item>
-                <a-form-item
-                        :labelCol="labelCol"
-                        :wrapperCol="wrapperCol"
-                        label="投放时段">
-                    <a-input placeholder="请输入投放时段" v-decorator="['scheduleTime', {}]"/>
-                </a-form-item>
-                <a-form-item
-                        :labelCol="labelCol"
-                        :wrapperCol="wrapperCol"
-                        label="单日预算">
-                    <a-input placeholder="请输入单日预算" v-decorator="['dayBudget', {}]"/>
-                </a-form-item>
-                <a-form-item
-                        :labelCol="labelCol"
-                        :wrapperCol="wrapperCol"
-                        label="url类型 1:淘宝商品短链 2:淘宝商品 itemID">
-                    <a-input-number v-decorator="[ 'urlType', {}]"/>
-                </a-form-item>
-                <a-form-item
-                        :labelCol="labelCol"
-                        :wrapperCol="wrapperCol"
-                        label="投放链接">
-                    <a-input placeholder="请输入投放链接" v-decorator="['url', {}]"/>
-                </a-form-item>
-                <a-form-item
-                        :labelCol="labelCol"
-                        :wrapperCol="wrapperCol"
-                        label="APP ID">
-                    <a-input placeholder="请输入APP ID" v-decorator="['appId', {}]"/>
-                </a-form-item>
-                <a-form-item
-                        :labelCol="labelCol"
-                        :wrapperCol="wrapperCol"
-                        label="创意展现方式  1:轮播 2:优选">
-                    <a-input-number v-decorator="[ 'showModel', {}]"/>
-                </a-form-item>
-                <a-form-item
-                        :labelCol="labelCol"
-                        :wrapperCol="wrapperCol"
-                        label="投放方式 1:快速投放 2:平滑投放">
-                    <a-input-number v-decorator="[ 'speed', {}]"/>
-                </a-form-item>
-                <a-form-item
-                        :labelCol="labelCol"
-                        :wrapperCol="wrapperCol"
-                        label="广告组ID">
-                    <a-input placeholder="请输入广告组ID" v-decorator="['unitId', {}]"/>
-                </a-form-item>
-
-            </a-form>
-        </a-spin>
-        <a-button type="primary" @click="handleOk">确定</a-button>
-        <a-button type="primary" @click="handleCancel">取消</a-button>
-    </a-drawer>
-</template>
-
-<script>
-    import {httpAction} from '@/api/manage'
-    import pick from 'lodash.pick'
-    import moment from "moment"
-
-    export default {
-        name: "KuaiShouGroupCreateModal",
-        data() {
-            return {
-                title: "操作",
-                visible: false,
-                model: {},
-                labelCol: {
-                    xs: {span: 24},
-                    sm: {span: 5},
-                },
-                wrapperCol: {
-                    xs: {span: 24},
-                    sm: {span: 16},
-                },
-
-                confirmLoading: false,
-                form: this.$form.createForm(this),
-                validatorRules: {},
-                url: {
-                    add: "/kuaishou/kuaiShouGroupCreate/add",
-                    edit: "/kuaishou/kuaiShouGroupCreate/edit",
-                },
-            }
-        },
-        created() {
-        },
-        methods: {
-            add() {
-                this.edit({});
-            },
-            edit(record) {
-                this.form.resetFields();
-                this.model = Object.assign({}, record);
-                this.visible = true;
-                this.$nextTick(() => {
-                    this.form.setFieldsValue(pick(this.model, 'accountId', 'campaignId', 'unitName', 'bidType', 'bid', 'cpaBid', 'ocpxActionType', 'deepConversionType', 'page', 'beginTime', 'endTime', 'scheduleTime', 'dayBudget', 'urlType', 'url', 'appId', 'showModel', 'speed', 'unitId'))
-                    //时间格式化
-                });
-
-            },
-            close() {
-                this.$emit('close');
-                this.visible = false;
-            },
-            handleOk() {
-                const that = this;
-                // 触发表单验证
-                this.form.validateFields((err, values) => {
-                    if (!err) {
-                        that.confirmLoading = true;
-                        let httpurl = '';
-                        let method = '';
-                        if (!this.model.id) {
-                            httpurl += this.url.add;
-                            method = 'post';
-                        } else {
-                            httpurl += this.url.edit;
-                            method = 'put';
-                        }
-                        let formData = Object.assign(this.model, values);
-                        //时间格式化
-
-                        console.log(formData)
-                        httpAction(httpurl, formData, method).then((res) => {
-                            if (res.success) {
-                                that.$message.success(res.message);
-                                that.$emit('ok');
-                            } else {
-                                that.$message.warning(res.message);
-                            }
-                        }).finally(() => {
-                            that.confirmLoading = false;
-                            that.close();
-                        })
-
-
-                    }
-                })
-            },
-            handleCancel() {
-                this.close()
-            },
-
-
-        }
-    }
-</script>
-
-<style lang="less" scoped>
-    /** Button按钮间距 */
-    .ant-btn {
-        margin-left: 30px;
-        margin-bottom: 30px;
-        float: right;
-    }
-</style>

+ 3 - 3
module-kuaishou/src/main/java/constant/KuaishouInterfaceConstant.java

@@ -11,9 +11,9 @@ public class KuaishouInterfaceConstant {
     public static final String CAMPAIGN_LIST = "/rest/openapi/v1/campaign/list"; // 广告计划信息
     public static final String GROUP_LIST = "/rest/openapi/v1/ad_unit/list"; //广告组信息
     public static final String CREATIVE_LIST = "/rest/openapi/v1/creative/list"; //创意信息
-    public static final String CAMPAIGN_CREATE = "/rest/openapi/v1/campaign/create"; //创建广告计划
-    public static final String AD_UNIT_CREATE = "/rest/openapi/v1/ad_unit/create"; //创建广告组
-    public static final String AD_CREATIVE_CREATE = "/rest/openapi/v1/creative/create"; //创建广告组
+    public static final String CAMPAIGN_CREATE = "/rest/openapi/v2/campaign/create"; //创建广告计划
+    public static final String AD_UNIT_CREATE = "/rest/openapi/v2/ad_unit/create"; //创建广告组
+    public static final String AD_CREATIVE_CREATE = "/rest/openapi/v2/creative/create"; //创建广告组
 
 
     public static final String DEEP_CONVERSION_INFOS = "/rest/openapi/v1/ad_unit/ocpc/conversion_infos"; //获取可选的深度转化类型