瀏覽代碼

Merge remote-tracking branch 'origin/master'

syh 5 年之前
父節點
當前提交
4a3f3a7570
共有 100 個文件被更改,包括 8200 次插入55 次删除
  1. 41 18
      jeecg-boot-module-system/src/main/java/org/jeecg/JeecgApplication.java
  2. 2 0
      jeecg-boot-module-system/src/main/java/org/jeecg/config/ShiroConfig.java
  3. 7 1
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/ctop/controller/CallbackController.java
  4. 2 5
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/ctop/mapper/CTopOauthTokenMapper.java
  5. 244 0
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/kuaishou/controller/KuaiShouAppCreateController.java
  6. 244 0
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/kuaishou/controller/KuaiShouAppListController.java
  7. 125 5
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/kuaishou/controller/KuaiShouController.java
  8. 244 0
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/kuaishou/controller/KuaiShouConversionInfosController.java
  9. 244 0
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/kuaishou/controller/KuaiShouConversionTypesController.java
  10. 244 0
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/kuaishou/controller/KuaiShouCreativeCreateController.java
  11. 244 0
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/kuaishou/controller/KuaiShouGroupCreateController.java
  12. 244 0
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/kuaishou/controller/KuaiShouGroupCreateTargetController.java
  13. 244 0
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/kuaishou/controller/KuaiShouImageGetController.java
  14. 244 0
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/kuaishou/controller/KuaiShouImageUploandController.java
  15. 244 0
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/kuaishou/controller/KuaiShouRegionListChildrenController.java
  16. 244 0
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/kuaishou/controller/KuaiShouRegionListParentController.java
  17. 244 0
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/kuaishou/controller/KuaiShouScheduleController.java
  18. 244 0
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/kuaishou/controller/KuaiShouVideoGetController.java
  19. 244 0
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/kuaishou/controller/KuaiShouVideoUploadController.java
  20. 118 0
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/kuaishou/entity/KuaiShouAppCreate.java
  21. 112 0
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/kuaishou/entity/KuaiShouAppList.java
  22. 59 0
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/kuaishou/entity/KuaiShouConversionInfos.java
  23. 72 0
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/kuaishou/entity/KuaiShouConversionTypes.java
  24. 106 0
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/kuaishou/entity/KuaiShouCreativeCreate.java
  25. 166 0
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/kuaishou/entity/KuaiShouGroupCreate.java
  26. 124 0
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/kuaishou/entity/KuaiShouGroupCreateTarget.java
  27. 94 0
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/kuaishou/entity/KuaiShouImageGet.java
  28. 106 0
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/kuaishou/entity/KuaiShouImageUploand.java
  29. 64 0
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/kuaishou/entity/KuaiShouRegionListChildren.java
  30. 76 0
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/kuaishou/entity/KuaiShouRegionListParent.java
  31. 100 0
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/kuaishou/entity/KuaiShouSchedule.java
  32. 90 0
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/kuaishou/entity/KuaiShouVideoGet.java
  33. 88 0
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/kuaishou/entity/KuaiShouVideoUpload.java
  34. 14 0
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/kuaishou/mapper/KuaiShouAppCreateMapper.java
  35. 14 0
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/kuaishou/mapper/KuaiShouAppListMapper.java
  36. 17 0
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/kuaishou/mapper/KuaiShouConversionInfosMapper.java
  37. 14 0
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/kuaishou/mapper/KuaiShouConversionTypesMapper.java
  38. 17 0
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/kuaishou/mapper/KuaiShouCreativeCreateMapper.java
  39. 14 0
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/kuaishou/mapper/KuaiShouGroupCreateMapper.java
  40. 17 0
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/kuaishou/mapper/KuaiShouGroupCreateTargetMapper.java
  41. 17 0
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/kuaishou/mapper/KuaiShouImageGetMapper.java
  42. 14 0
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/kuaishou/mapper/KuaiShouImageUploandMapper.java
  43. 15 0
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/kuaishou/mapper/KuaiShouRegionListChildrenMapper.java
  44. 15 0
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/kuaishou/mapper/KuaiShouRegionListParentMapper.java
  45. 14 0
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/kuaishou/mapper/KuaiShouScheduleMapper.java
  46. 17 0
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/kuaishou/mapper/KuaiShouVideoGetMapper.java
  47. 14 0
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/kuaishou/mapper/KuaiShouVideoUploadMapper.java
  48. 5 0
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/kuaishou/mapper/xml/KuaiShouAppCreateMapper.xml
  49. 5 0
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/kuaishou/mapper/xml/KuaiShouAppListMapper.xml
  50. 5 0
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/kuaishou/mapper/xml/KuaiShouConversionInfosMapper.xml
  51. 5 0
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/kuaishou/mapper/xml/KuaiShouConversionTypesMapper.xml
  52. 5 0
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/kuaishou/mapper/xml/KuaiShouCreativeCreateMapper.xml
  53. 5 0
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/kuaishou/mapper/xml/KuaiShouGroupCreateMapper.xml
  54. 5 0
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/kuaishou/mapper/xml/KuaiShouGroupCreateTargetMapper.xml
  55. 5 0
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/kuaishou/mapper/xml/KuaiShouImageGetMapper.xml
  56. 5 0
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/kuaishou/mapper/xml/KuaiShouImageUploandMapper.xml
  57. 8 0
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/kuaishou/mapper/xml/KuaiShouRegionListChildrenMapper.xml
  58. 7 0
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/kuaishou/mapper/xml/KuaiShouRegionListParentMapper.xml
  59. 5 0
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/kuaishou/mapper/xml/KuaiShouScheduleMapper.xml
  60. 5 0
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/kuaishou/mapper/xml/KuaiShouVideoGetMapper.xml
  61. 5 0
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/kuaishou/mapper/xml/KuaiShouVideoUploadMapper.xml
  62. 14 0
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/kuaishou/service/IKuaiShouAppCreateService.java
  63. 14 0
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/kuaishou/service/IKuaiShouAppListService.java
  64. 14 0
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/kuaishou/service/IKuaiShouConversionInfosService.java
  65. 14 0
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/kuaishou/service/IKuaiShouConversionTypesService.java
  66. 14 0
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/kuaishou/service/IKuaiShouCreativeCreateService.java
  67. 14 0
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/kuaishou/service/IKuaiShouGroupCreateService.java
  68. 14 0
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/kuaishou/service/IKuaiShouGroupCreateTargetService.java
  69. 14 0
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/kuaishou/service/IKuaiShouImageGetService.java
  70. 14 0
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/kuaishou/service/IKuaiShouImageUploandService.java
  71. 14 0
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/kuaishou/service/IKuaiShouRegionListChildrenService.java
  72. 14 0
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/kuaishou/service/IKuaiShouRegionListParentService.java
  73. 14 0
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/kuaishou/service/IKuaiShouScheduleService.java
  74. 14 0
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/kuaishou/service/IKuaiShouVideoGetService.java
  75. 14 0
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/kuaishou/service/IKuaiShouVideoUploadService.java
  76. 107 2
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/kuaishou/service/IKuaishouInterfaceService.java
  77. 19 0
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/kuaishou/service/impl/KuaiShouAppCreateServiceImpl.java
  78. 19 0
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/kuaishou/service/impl/KuaiShouAppListServiceImpl.java
  79. 18 0
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/kuaishou/service/impl/KuaiShouConversionInfosServiceImpl.java
  80. 19 0
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/kuaishou/service/impl/KuaiShouConversionTypesServiceImpl.java
  81. 19 0
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/kuaishou/service/impl/KuaiShouCreativeCreateServiceImpl.java
  82. 19 0
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/kuaishou/service/impl/KuaiShouGroupCreateServiceImpl.java
  83. 19 0
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/kuaishou/service/impl/KuaiShouGroupCreateTargetServiceImpl.java
  84. 19 0
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/kuaishou/service/impl/KuaiShouImageGetServiceImpl.java
  85. 19 0
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/kuaishou/service/impl/KuaiShouImageUploandServiceImpl.java
  86. 19 0
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/kuaishou/service/impl/KuaiShouRegionListChildrenServiceImpl.java
  87. 19 0
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/kuaishou/service/impl/KuaiShouRegionListParentServiceImpl.java
  88. 19 0
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/kuaishou/service/impl/KuaiShouScheduleServiceImpl.java
  89. 19 0
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/kuaishou/service/impl/KuaiShouVideoGetServiceImpl.java
  90. 19 0
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/kuaishou/service/impl/KuaiShouVideoUploadServiceImpl.java
  91. 722 24
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/kuaishou/service/impl/KuaishouInterfaceServiceImpl.java
  92. 218 0
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/kuaishou/vue/KuaiShouAppCreateList.vue
  93. 213 0
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/kuaishou/vue/KuaiShouAppListList.vue
  94. 168 0
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/kuaishou/vue/KuaiShouConversionInfosList.vue
  95. 168 0
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/kuaishou/vue/KuaiShouConversionTypesList.vue
  96. 208 0
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/kuaishou/vue/KuaiShouCreativeCreateList.vue
  97. 258 0
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/kuaishou/vue/KuaiShouGroupCreateList.vue
  98. 223 0
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/kuaishou/vue/KuaiShouGroupCreateTargetList.vue
  99. 198 0
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/kuaishou/vue/KuaiShouImageGetList.vue
  100. 0 0
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/kuaishou/vue/KuaiShouImageUploandList.vue

+ 41 - 18
jeecg-boot-module-system/src/main/java/org/jeecg/JeecgApplication.java

@@ -4,38 +4,61 @@ import lombok.extern.slf4j.Slf4j;
 import org.springframework.boot.SpringApplication;
 import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
 import org.springframework.boot.autoconfigure.SpringBootApplication;
+import org.springframework.boot.web.servlet.MultipartConfigFactory;
 import org.springframework.context.ConfigurableApplicationContext;
+import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.ComponentScan;
+import org.springframework.context.annotation.Configuration;
 import org.springframework.core.env.Environment;
+import org.springframework.web.client.RestTemplate;
 import springfox.documentation.swagger2.annotations.EnableSwagger2;
 
+import javax.servlet.MultipartConfigElement;
 import java.net.InetAddress;
 import java.net.UnknownHostException;
 
 @Slf4j
 @EnableSwagger2
 @SpringBootApplication
-@ComponentScan(basePackages={"cn.com.ctop","org.jeecg"})
+@ComponentScan(basePackages = {"cn.com.ctop", "org.jeecg"})
 @EnableAutoConfiguration
 @ComponentScan
+@Configuration
+
 
 public class JeecgApplication {
 
-  public static void main(String[] args) throws UnknownHostException {
-    //System.setProperty("spring.devtools.restart.enabled", "true");
-
-    ConfigurableApplicationContext application = SpringApplication.run(JeecgApplication.class, args);
-    Environment env = application.getEnvironment();
-    String ip = InetAddress.getLocalHost().getHostAddress();
-    String port = env.getProperty("server.port");
-    String path = env.getProperty("server.servlet.context-path");
-    log.info("\n----------------------------------------------------------\n\t" +
-        "Application Jeecg-Boot is running! Access URLs:\n\t" +
-        "Local: \t\thttp://localhost:" + port + path + "/\n\t" +
-        "External: \thttp://" + ip + ":" + port + path + "/\n\t" +
-        "swagger-ui: \thttp://" + ip + ":" + port + path + "/swagger-ui.html\n\t" +
-        "Doc: \t\thttp://" + ip + ":" + port + path + "/doc.html\n" +
-        "----------------------------------------------------------");
-
-  }
+    public static void main(String[] args) throws UnknownHostException {
+        //System.setProperty("spring.devtools.restart.enabled", "true");
+
+        ConfigurableApplicationContext application = SpringApplication.run(JeecgApplication.class, args);
+        Environment env = application.getEnvironment();
+        String ip = InetAddress.getLocalHost().getHostAddress();
+
+
+        String port = env.getProperty("server.port");
+        String path = env.getProperty("server.servlet.context-path");
+        log.info("\n----------------------------------------------------------\n\t" +
+                "Application Jeecg-Boot is running! Access URLs:\n\t" +
+                "Local: \t\thttp://localhost:" + port + path + "/\n\t" +
+                "External: \thttp://" + ip + ":" + port + path + "/\n\t" +
+                "swagger-ui: \thttp://" + ip + ":" + port + path + "/swagger-ui.html\n\t" +
+                "Doc: \t\thttp://" + ip + ":" + port + path + "/doc.html\n" +
+                "----------------------------------------------------------");
+
+    }
+
+    @Bean
+    public MultipartConfigElement multipartConfigElement() {
+        MultipartConfigFactory factory = new MultipartConfigFactory();
+        factory.setMaxFileSize("10240000KB");
+        factory.setMaxRequestSize("102400000KB");
+        return factory.createMultipartConfig();
+    }
+
+    @Bean
+    public RestTemplate restTemplate() {
+        return new RestTemplate();
+    }
+
 }

+ 2 - 0
jeecg-boot-module-system/src/main/java/org/jeecg/config/ShiroConfig.java

@@ -73,6 +73,8 @@ public class ShiroConfig {
 		filterChainDefinitionMap.put("/webjars/**", "anon");
 		filterChainDefinitionMap.put("/v2/**", "anon");
 		filterChainDefinitionMap.put("/kuaishou/**", "anon");
+		filterChainDefinitionMap.put("/**/*.mp4", "anon");
+
 
 		//性能监控
 		filterChainDefinitionMap.put("/actuator/metrics/**", "anon");

+ 7 - 1
jeecg-boot-module-system/src/main/java/org/jeecg/modules/ctop/controller/CallbackController.java

@@ -16,6 +16,8 @@ import org.springframework.web.bind.annotation.ResponseBody;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 import java.util.Date;
+import java.util.HashMap;
+import java.util.Map;
 
 @Controller
 @RequestMapping("/")
@@ -38,6 +40,7 @@ public class CallbackController {
             KuaishouAccessToken token = accessToken.getData();
             if (token != null) {
                 CTopOauthToken topOauthToken = new CTopOauthToken();
+                Long accountId = token.getAccountId();
                 topOauthToken.setAccountId(token.getAccountId());
                 topOauthToken.setMediaId("2");
                 topOauthToken.setAdvertiserId(state);
@@ -50,7 +53,10 @@ public class CallbackController {
                 long refreshTokenExpireIn = token.getRefreshTokenExpiresIn() * 1000L;
                 Date refreshTokenExpireInDate = new Date(now + refreshTokenExpireIn);
                 topOauthToken.setRefreshTokenExpiresIn(refreshTokenExpireInDate);
-                cTopOauthTokenMapper.insert(topOauthToken);
+
+                Map<String, Object> map = new HashMap<>();
+                map.put("account_id", accountId);
+
             }
             return "auth_success";
         }

+ 2 - 5
jeecg-boot-module-system/src/main/java/org/jeecg/modules/ctop/mapper/CTopOauthTokenMapper.java

@@ -1,15 +1,12 @@
 package org.jeecg.modules.ctop.mapper;
 
-import java.util.List;
-
-import org.apache.ibatis.annotations.Param;
-import org.jeecg.modules.ctop.entity.CTopOauthToken;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.jeecg.modules.ctop.entity.CTopOauthToken;
 
 /**
  * @Description: oauth授权码
  * @Author: jeecg-boot
- * @Date:   2019-07-09
+ * @Date: 2019-07-09
  * @Version: V1.0
  */
 public interface CTopOauthTokenMapper extends BaseMapper<CTopOauthToken> {

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

@@ -0,0 +1,244 @@
+package org.jeecg.modules.kuaishou.controller;
+
+import java.util.Arrays;
+import java.util.List;
+import java.util.Map;
+import java.io.IOException;
+import java.io.UnsupportedEncodingException;
+import java.net.URLDecoder;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import org.jeecg.common.api.vo.Result;
+import org.jeecg.common.system.query.QueryGenerator;
+import org.jeecg.common.aspect.annotation.AutoLog;
+import org.jeecg.common.util.oConvertUtils;
+import org.jeecg.modules.kuaishou.entity.KuaiShouAppCreate;
+import org.jeecg.modules.kuaishou.service.IKuaiShouAppCreateService;
+import java.util.Date;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import lombok.extern.slf4j.Slf4j;
+
+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 com.alibaba.fastjson.JSON;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+
+ /**
+ * @Description: 创建应用
+ * @Author: jeecg-boot
+ * @Date:   2019-07-26
+ * @Version: V1.0
+ */
+@Slf4j
+@Api(tags="创建应用")
+@RestController
+@RequestMapping("/kuaishou/kuaiShouAppCreate")
+public class KuaiShouAppCreateController {
+	@Autowired
+	private IKuaiShouAppCreateService kuaiShouAppCreateService;
+	
+	/**
+	  * 分页列表查询
+	 * @param kuaiShouAppCreate
+	 * @param pageNo
+	 * @param pageSize
+	 * @param req
+	 * @return
+	 */
+	@AutoLog(value = "创建应用-分页列表查询")
+	@ApiOperation(value="创建应用-分页列表查询", notes="创建应用-分页列表查询")
+	@GetMapping(value = "/list")
+	public Result<IPage<KuaiShouAppCreate>> queryPageList(KuaiShouAppCreate kuaiShouAppCreate,
+									  @RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
+									  @RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
+									  HttpServletRequest req) {
+		Result<IPage<KuaiShouAppCreate>> result = new Result<IPage<KuaiShouAppCreate>>();
+		QueryWrapper<KuaiShouAppCreate> queryWrapper = QueryGenerator.initQueryWrapper(kuaiShouAppCreate, req.getParameterMap());
+		Page<KuaiShouAppCreate> page = new Page<KuaiShouAppCreate>(pageNo, pageSize);
+		IPage<KuaiShouAppCreate> pageList = kuaiShouAppCreateService.page(page, queryWrapper);
+		result.setSuccess(true);
+		result.setResult(pageList);
+		return result;
+	}
+	
+	/**
+	  *   添加
+	 * @param kuaiShouAppCreate
+	 * @return
+	 */
+	@AutoLog(value = "创建应用-添加")
+	@ApiOperation(value="创建应用-添加", notes="创建应用-添加")
+	@PostMapping(value = "/add")
+	public Result<KuaiShouAppCreate> add(@RequestBody KuaiShouAppCreate kuaiShouAppCreate) {
+		Result<KuaiShouAppCreate> result = new Result<KuaiShouAppCreate>();
+		try {
+			kuaiShouAppCreateService.save(kuaiShouAppCreate);
+			result.success("添加成功!");
+		} catch (Exception e) {
+			log.error(e.getMessage(),e);
+			result.error500("操作失败");
+		}
+		return result;
+	}
+	
+	/**
+	  *  编辑
+	 * @param kuaiShouAppCreate
+	 * @return
+	 */
+	@AutoLog(value = "创建应用-编辑")
+	@ApiOperation(value="创建应用-编辑", notes="创建应用-编辑")
+	@PutMapping(value = "/edit")
+	public Result<KuaiShouAppCreate> edit(@RequestBody KuaiShouAppCreate kuaiShouAppCreate) {
+		Result<KuaiShouAppCreate> result = new Result<KuaiShouAppCreate>();
+		KuaiShouAppCreate kuaiShouAppCreateEntity = kuaiShouAppCreateService.getById(kuaiShouAppCreate.getId());
+		if(kuaiShouAppCreateEntity==null) {
+			result.error500("未找到对应实体");
+		}else {
+			boolean ok = kuaiShouAppCreateService.updateById(kuaiShouAppCreate);
+			//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 {
+			kuaiShouAppCreateService.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<KuaiShouAppCreate> deleteBatch(@RequestParam(name="ids",required=true) String ids) {
+		Result<KuaiShouAppCreate> result = new Result<KuaiShouAppCreate>();
+		if(ids==null || "".equals(ids.trim())) {
+			result.error500("参数不识别!");
+		}else {
+			this.kuaiShouAppCreateService.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<KuaiShouAppCreate> queryById(@RequestParam(name="id",required=true) String id) {
+		Result<KuaiShouAppCreate> result = new Result<KuaiShouAppCreate>();
+		KuaiShouAppCreate kuaiShouAppCreate = kuaiShouAppCreateService.getById(id);
+		if(kuaiShouAppCreate==null) {
+			result.error500("未找到对应实体");
+		}else {
+			result.setResult(kuaiShouAppCreate);
+			result.setSuccess(true);
+		}
+		return result;
+	}
+
+  /**
+      * 导出excel
+   *
+   * @param request
+   * @param response
+   */
+  @RequestMapping(value = "/exportXls")
+  public ModelAndView exportXls(HttpServletRequest request, HttpServletResponse response) {
+      // Step.1 组装查询条件
+      QueryWrapper<KuaiShouAppCreate> queryWrapper = null;
+      try {
+          String paramsStr = request.getParameter("paramsStr");
+          if (oConvertUtils.isNotEmpty(paramsStr)) {
+              String deString = URLDecoder.decode(paramsStr, "UTF-8");
+              KuaiShouAppCreate kuaiShouAppCreate = JSON.parseObject(deString, KuaiShouAppCreate.class);
+              queryWrapper = QueryGenerator.initQueryWrapper(kuaiShouAppCreate, request.getParameterMap());
+          }
+      } catch (UnsupportedEncodingException e) {
+          e.printStackTrace();
+      }
+
+      //Step.2 AutoPoi 导出Excel
+      ModelAndView mv = new ModelAndView(new JeecgEntityExcelView());
+      List<KuaiShouAppCreate> pageList = kuaiShouAppCreateService.list(queryWrapper);
+      //导出文件名称
+      mv.addObject(NormalExcelConstants.FILE_NAME, "创建应用列表");
+      mv.addObject(NormalExcelConstants.CLASS, KuaiShouAppCreate.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<KuaiShouAppCreate> listKuaiShouAppCreates = ExcelImportUtil.importExcel(file.getInputStream(), KuaiShouAppCreate.class, params);
+              kuaiShouAppCreateService.saveBatch(listKuaiShouAppCreates);
+              return Result.ok("文件导入成功!数据行数:" + listKuaiShouAppCreates.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("文件导入失败!");
+  }
+
+}

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

@@ -0,0 +1,244 @@
+package org.jeecg.modules.kuaishou.controller;
+
+import java.util.Arrays;
+import java.util.List;
+import java.util.Map;
+import java.io.IOException;
+import java.io.UnsupportedEncodingException;
+import java.net.URLDecoder;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import org.jeecg.common.api.vo.Result;
+import org.jeecg.common.system.query.QueryGenerator;
+import org.jeecg.common.aspect.annotation.AutoLog;
+import org.jeecg.common.util.oConvertUtils;
+import org.jeecg.modules.kuaishou.entity.KuaiShouAppList;
+import org.jeecg.modules.kuaishou.service.IKuaiShouAppListService;
+import java.util.Date;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import lombok.extern.slf4j.Slf4j;
+
+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 com.alibaba.fastjson.JSON;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+
+ /**
+ * @Description: 快手-应用列表
+ * @Author: jeecg-boot
+ * @Date:   2019-07-26
+ * @Version: V1.0
+ */
+@Slf4j
+@Api(tags="快手-应用列表")
+@RestController
+@RequestMapping("/kuaishou/kuaiShouAppList")
+public class KuaiShouAppListController {
+	@Autowired
+	private IKuaiShouAppListService kuaiShouAppListService;
+	
+	/**
+	  * 分页列表查询
+	 * @param kuaiShouAppList
+	 * @param pageNo
+	 * @param pageSize
+	 * @param req
+	 * @return
+	 */
+	@AutoLog(value = "快手-应用列表-分页列表查询")
+	@ApiOperation(value="快手-应用列表-分页列表查询", notes="快手-应用列表-分页列表查询")
+	@GetMapping(value = "/list")
+	public Result<IPage<KuaiShouAppList>> queryPageList(KuaiShouAppList kuaiShouAppList,
+									  @RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
+									  @RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
+									  HttpServletRequest req) {
+		Result<IPage<KuaiShouAppList>> result = new Result<IPage<KuaiShouAppList>>();
+		QueryWrapper<KuaiShouAppList> queryWrapper = QueryGenerator.initQueryWrapper(kuaiShouAppList, req.getParameterMap());
+		Page<KuaiShouAppList> page = new Page<KuaiShouAppList>(pageNo, pageSize);
+		IPage<KuaiShouAppList> pageList = kuaiShouAppListService.page(page, queryWrapper);
+		result.setSuccess(true);
+		result.setResult(pageList);
+		return result;
+	}
+	
+	/**
+	  *   添加
+	 * @param kuaiShouAppList
+	 * @return
+	 */
+	@AutoLog(value = "快手-应用列表-添加")
+	@ApiOperation(value="快手-应用列表-添加", notes="快手-应用列表-添加")
+	@PostMapping(value = "/add")
+	public Result<KuaiShouAppList> add(@RequestBody KuaiShouAppList kuaiShouAppList) {
+		Result<KuaiShouAppList> result = new Result<KuaiShouAppList>();
+		try {
+			kuaiShouAppListService.save(kuaiShouAppList);
+			result.success("添加成功!");
+		} catch (Exception e) {
+			log.error(e.getMessage(),e);
+			result.error500("操作失败");
+		}
+		return result;
+	}
+	
+	/**
+	  *  编辑
+	 * @param kuaiShouAppList
+	 * @return
+	 */
+	@AutoLog(value = "快手-应用列表-编辑")
+	@ApiOperation(value="快手-应用列表-编辑", notes="快手-应用列表-编辑")
+	@PutMapping(value = "/edit")
+	public Result<KuaiShouAppList> edit(@RequestBody KuaiShouAppList kuaiShouAppList) {
+		Result<KuaiShouAppList> result = new Result<KuaiShouAppList>();
+		KuaiShouAppList kuaiShouAppListEntity = kuaiShouAppListService.getById(kuaiShouAppList.getId());
+		if(kuaiShouAppListEntity==null) {
+			result.error500("未找到对应实体");
+		}else {
+			boolean ok = kuaiShouAppListService.updateById(kuaiShouAppList);
+			//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 {
+			kuaiShouAppListService.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<KuaiShouAppList> deleteBatch(@RequestParam(name="ids",required=true) String ids) {
+		Result<KuaiShouAppList> result = new Result<KuaiShouAppList>();
+		if(ids==null || "".equals(ids.trim())) {
+			result.error500("参数不识别!");
+		}else {
+			this.kuaiShouAppListService.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<KuaiShouAppList> queryById(@RequestParam(name="id",required=true) String id) {
+		Result<KuaiShouAppList> result = new Result<KuaiShouAppList>();
+		KuaiShouAppList kuaiShouAppList = kuaiShouAppListService.getById(id);
+		if(kuaiShouAppList==null) {
+			result.error500("未找到对应实体");
+		}else {
+			result.setResult(kuaiShouAppList);
+			result.setSuccess(true);
+		}
+		return result;
+	}
+
+  /**
+      * 导出excel
+   *
+   * @param request
+   * @param response
+   */
+  @RequestMapping(value = "/exportXls")
+  public ModelAndView exportXls(HttpServletRequest request, HttpServletResponse response) {
+      // Step.1 组装查询条件
+      QueryWrapper<KuaiShouAppList> queryWrapper = null;
+      try {
+          String paramsStr = request.getParameter("paramsStr");
+          if (oConvertUtils.isNotEmpty(paramsStr)) {
+              String deString = URLDecoder.decode(paramsStr, "UTF-8");
+              KuaiShouAppList kuaiShouAppList = JSON.parseObject(deString, KuaiShouAppList.class);
+              queryWrapper = QueryGenerator.initQueryWrapper(kuaiShouAppList, request.getParameterMap());
+          }
+      } catch (UnsupportedEncodingException e) {
+          e.printStackTrace();
+      }
+
+      //Step.2 AutoPoi 导出Excel
+      ModelAndView mv = new ModelAndView(new JeecgEntityExcelView());
+      List<KuaiShouAppList> pageList = kuaiShouAppListService.list(queryWrapper);
+      //导出文件名称
+      mv.addObject(NormalExcelConstants.FILE_NAME, "快手-应用列表列表");
+      mv.addObject(NormalExcelConstants.CLASS, KuaiShouAppList.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<KuaiShouAppList> listKuaiShouAppLists = ExcelImportUtil.importExcel(file.getInputStream(), KuaiShouAppList.class, params);
+              kuaiShouAppListService.saveBatch(listKuaiShouAppLists);
+              return Result.ok("文件导入成功!数据行数:" + listKuaiShouAppLists.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("文件导入失败!");
+  }
+
+}

+ 125 - 5
jeecg-boot-module-system/src/main/java/org/jeecg/modules/kuaishou/controller/KuaiShouController.java

@@ -1,12 +1,20 @@
 package org.jeecg.modules.kuaishou.controller;
 
+import cn.com.ctop.common.utils.FileEntity;
+import cn.com.ctop.common.utils.FileUploadTool;
+import cn.com.ctop.common.utils.TransfMediaTool;
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONObject;
 import org.jeecg.modules.kuaishou.service.IKuaishouInterfaceService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
 import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.multipart.MultipartFile;
 
+import javax.servlet.http.HttpServletRequest;
+import java.io.File;
+import java.io.IOException;
 import java.util.Map;
 
 @RestController
@@ -33,7 +41,7 @@ public class KuaiShouController {
      */
     @RequestMapping("/adUnitCreate")
     public void adUnitCcreate() {
-        String accessToken = "f60f51a8f7d8938d6147d38357fed70c";
+        String accessToken = "cbe9caeffcc2c5ccd97a05bf909896da";
         Long advertiserId = 23212L;
         JSONObject requestJson = new JSONObject();
         requestJson.put("campaign_id", 4178072L);
@@ -81,7 +89,7 @@ public class KuaiShouController {
     public void getCampaignList() {
         String accessToken = "f60f51a8f7d8938d6147d38357fed70c";
         Long advertiserId = 23212L;
-        kuaishouInterfaceService.getCampaignList(accessToken, advertiserId,1);
+        kuaishouInterfaceService.getCampaignList(accessToken, advertiserId, 1);
 
     }
 
@@ -89,19 +97,131 @@ public class KuaiShouController {
     public void getGroupList() {
         String accessToken = "f60f51a8f7d8938d6147d38357fed70c";
         Long advertiserId = 23212L;
-        kuaishouInterfaceService.getGroupList(accessToken, advertiserId,1);
+        kuaishouInterfaceService.getGroupList(accessToken, advertiserId, 1);
 
     }
 
     @RequestMapping("/getCreativeList")
     public void getCreativeList() {
-        String accessToken = "f60f51a8f7d8938d6147d38357fed70c";
+        String accessToken = "cbe9caeffcc2c5ccd97a05bf909896da";
+        Long advertiserId = 23212L;
+        kuaishouInterfaceService.getCreativeList(accessToken, advertiserId, 1);
+
+    }
+
+    @RequestMapping("/getDeepConversionInfos")
+    public void getDeepConversionInfos() {
+        String accessToken = "cbe9caeffcc2c5ccd97a05bf909896da";
+        Long advertiserId = 23212L;
+        kuaishouInterfaceService.getDeepConversionInfos(advertiserId, accessToken);
+
+    }
+
+
+    @RequestMapping("/getToken")
+    public void getToken() {
+        String accessToken = "b565fa0dc618ec8fa08e1b32d66f3f17";
+        kuaishouInterfaceService.getRefreshToken(accessToken);
+
+
+    }
+
+
+    @RequestMapping(value = "/video/upload", consumes = "multipart/form-data;charset=utf-8")
+    public void upload(@RequestParam("multipartFile") MultipartFile multipartFile, HttpServletRequest request) throws IOException {
+
+        String accessToken = "8903c5a4ddbec0c236eb536b8bec58db";
+        Long advertiserId = 23212L;
+
+        kuaishouInterfaceService.videoUpload(advertiserId, accessToken, multipartFile, request);
+
+    }
+
+
+    @RequestMapping("/video/get")
+    public void videoGet() {
+
+        String accessToken = "8903c5a4ddbec0c236eb536b8bec58db";
         Long advertiserId = 23212L;
-        kuaishouInterfaceService.getCreativeList(accessToken, advertiserId,1);
+        String photoId = "5249789805735604135";
+        /*FileUploadTool fileUploadTool = new FileUploadTool();
+        FileEntity entity = new FileEntity();
+
+        entity = fileUploadTool.createFile(multipartFile, request);
+        System.err.println(entity);*/
+
+
+        kuaishouInterfaceService.videoGet(advertiserId, accessToken, photoId);
+
 
     }
 
+    @RequestMapping("/image/get")
+    public void imageGet() {
+
+        String accessToken = "8903c5a4ddbec0c236eb536b8bec58db";
+        Long advertiserId = 23212L;
+        String image_token = "market825e095b83eb4456a31ce95704d03238.jpg";
+        /*FileUploadTool fileUploadTool = new FileUploadTool();
+        FileEntity entity = new FileEntity();
+
+        entity = fileUploadTool.createFile(multipartFile, request);
+        System.err.println(entity);*/
+
 
+        kuaishouInterfaceService.imageGet(advertiserId, accessToken, image_token);
 
 
+    }
+
+
+    @RequestMapping("/area/list")
+    public void areaList() {
+
+        String accessToken = "8903c5a4ddbec0c236eb536b8bec58db";
+        Long advertiserId = 23212L;
+        String image_token = "market825e095b83eb4456a31ce95704d03238.jpg";
+        /*FileUploadTool fileUploadTool = new FileUploadTool();
+        FileEntity entity = new FileEntity();
+
+        entity = fileUploadTool.createFile(multipartFile, request);
+        System.err.println(entity);*/
+
+
+        kuaishouInterfaceService.areaList(accessToken);
+
+
+    }
+
+
+    @RequestMapping(value = "/image/upload", consumes = "multipart/form-data;charset=utf-8")
+    public void imgUpload(@RequestParam("multipartFile") MultipartFile multipartFile, HttpServletRequest request) throws IOException {
+
+        String accessToken = "8903c5a4ddbec0c236eb536b8bec58db";
+        Long advertiserId = 23212L;
+
+        kuaishouInterfaceService.imageUpload(advertiserId, accessToken, multipartFile, request);
+
+    }
+
+
+    @RequestMapping(value = "/app/create", consumes = "multipart/form-data;charset=utf-8")
+    public void appCreate(@RequestParam("multipartFile") MultipartFile multipartFile, HttpServletRequest request) throws IOException {
+
+        String accessToken = "8903c5a4ddbec0c236eb536b8bec58db";
+        Long advertiserId = 23212L;
+
+        kuaishouInterfaceService.appCreate(advertiserId, accessToken, multipartFile, request);
+
+    }
+
+    @RequestMapping(value = "/getAppList", consumes = "multipart/form-data;charset=utf-8")
+    public void getAppList() throws IOException {
+
+        String accessToken = "8903c5a4ddbec0c236eb536b8bec58db";
+        Long advertiserId = 23212L;
+
+        kuaishouInterfaceService.getAppList(advertiserId, accessToken);
+
+    }
 }

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

@@ -0,0 +1,244 @@
+package org.jeecg.modules.kuaishou.controller;
+
+import java.util.Arrays;
+import java.util.List;
+import java.util.Map;
+import java.io.IOException;
+import java.io.UnsupportedEncodingException;
+import java.net.URLDecoder;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import org.jeecg.common.api.vo.Result;
+import org.jeecg.common.system.query.QueryGenerator;
+import org.jeecg.common.aspect.annotation.AutoLog;
+import org.jeecg.common.util.oConvertUtils;
+import org.jeecg.modules.kuaishou.entity.KuaiShouConversionInfos;
+import org.jeecg.modules.kuaishou.service.IKuaiShouConversionInfosService;
+import java.util.Date;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import lombok.extern.slf4j.Slf4j;
+
+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 com.alibaba.fastjson.JSON;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+
+ /**
+ * @Description: 快手-可选深度转化类型
+ * @Author: jeecg-boot
+ * @Date:   2019-07-24
+ * @Version: V1.0
+ */
+@Slf4j
+@Api(tags="快手-可选深度转化类型")
+@RestController
+@RequestMapping("/kuaishou/kuaiShouConversionInfos")
+public class KuaiShouConversionInfosController {
+	@Autowired
+	private IKuaiShouConversionInfosService kuaiShouConversionInfosService;
+	
+	/**
+	  * 分页列表查询
+	 * @param kuaiShouConversionInfos
+	 * @param pageNo
+	 * @param pageSize
+	 * @param req
+	 * @return
+	 */
+	@AutoLog(value = "快手-可选深度转化类型-分页列表查询")
+	@ApiOperation(value="快手-可选深度转化类型-分页列表查询", notes="快手-可选深度转化类型-分页列表查询")
+	@GetMapping(value = "/list")
+	public Result<IPage<KuaiShouConversionInfos>> queryPageList(KuaiShouConversionInfos kuaiShouConversionInfos,
+									  @RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
+									  @RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
+									  HttpServletRequest req) {
+		Result<IPage<KuaiShouConversionInfos>> result = new Result<IPage<KuaiShouConversionInfos>>();
+		QueryWrapper<KuaiShouConversionInfos> queryWrapper = QueryGenerator.initQueryWrapper(kuaiShouConversionInfos, req.getParameterMap());
+		Page<KuaiShouConversionInfos> page = new Page<KuaiShouConversionInfos>(pageNo, pageSize);
+		IPage<KuaiShouConversionInfos> pageList = kuaiShouConversionInfosService.page(page, queryWrapper);
+		result.setSuccess(true);
+		result.setResult(pageList);
+		return result;
+	}
+	
+	/**
+	  *   添加
+	 * @param kuaiShouConversionInfos
+	 * @return
+	 */
+	@AutoLog(value = "快手-可选深度转化类型-添加")
+	@ApiOperation(value="快手-可选深度转化类型-添加", notes="快手-可选深度转化类型-添加")
+	@PostMapping(value = "/add")
+	public Result<KuaiShouConversionInfos> add(@RequestBody KuaiShouConversionInfos kuaiShouConversionInfos) {
+		Result<KuaiShouConversionInfos> result = new Result<KuaiShouConversionInfos>();
+		try {
+			kuaiShouConversionInfosService.save(kuaiShouConversionInfos);
+			result.success("添加成功!");
+		} catch (Exception e) {
+			log.error(e.getMessage(),e);
+			result.error500("操作失败");
+		}
+		return result;
+	}
+	
+	/**
+	  *  编辑
+	 * @param kuaiShouConversionInfos
+	 * @return
+	 */
+	@AutoLog(value = "快手-可选深度转化类型-编辑")
+	@ApiOperation(value="快手-可选深度转化类型-编辑", notes="快手-可选深度转化类型-编辑")
+	@PutMapping(value = "/edit")
+	public Result<KuaiShouConversionInfos> edit(@RequestBody KuaiShouConversionInfos kuaiShouConversionInfos) {
+		Result<KuaiShouConversionInfos> result = new Result<KuaiShouConversionInfos>();
+		KuaiShouConversionInfos kuaiShouConversionInfosEntity = kuaiShouConversionInfosService.getById(kuaiShouConversionInfos.getId());
+		if(kuaiShouConversionInfosEntity==null) {
+			result.error500("未找到对应实体");
+		}else {
+			boolean ok = kuaiShouConversionInfosService.updateById(kuaiShouConversionInfos);
+			//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 {
+			kuaiShouConversionInfosService.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<KuaiShouConversionInfos> deleteBatch(@RequestParam(name="ids",required=true) String ids) {
+		Result<KuaiShouConversionInfos> result = new Result<KuaiShouConversionInfos>();
+		if(ids==null || "".equals(ids.trim())) {
+			result.error500("参数不识别!");
+		}else {
+			this.kuaiShouConversionInfosService.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<KuaiShouConversionInfos> queryById(@RequestParam(name="id",required=true) String id) {
+		Result<KuaiShouConversionInfos> result = new Result<KuaiShouConversionInfos>();
+		KuaiShouConversionInfos kuaiShouConversionInfos = kuaiShouConversionInfosService.getById(id);
+		if(kuaiShouConversionInfos==null) {
+			result.error500("未找到对应实体");
+		}else {
+			result.setResult(kuaiShouConversionInfos);
+			result.setSuccess(true);
+		}
+		return result;
+	}
+
+  /**
+      * 导出excel
+   *
+   * @param request
+   * @param response
+   */
+  @RequestMapping(value = "/exportXls")
+  public ModelAndView exportXls(HttpServletRequest request, HttpServletResponse response) {
+      // Step.1 组装查询条件
+      QueryWrapper<KuaiShouConversionInfos> queryWrapper = null;
+      try {
+          String paramsStr = request.getParameter("paramsStr");
+          if (oConvertUtils.isNotEmpty(paramsStr)) {
+              String deString = URLDecoder.decode(paramsStr, "UTF-8");
+              KuaiShouConversionInfos kuaiShouConversionInfos = JSON.parseObject(deString, KuaiShouConversionInfos.class);
+              queryWrapper = QueryGenerator.initQueryWrapper(kuaiShouConversionInfos, request.getParameterMap());
+          }
+      } catch (UnsupportedEncodingException e) {
+          e.printStackTrace();
+      }
+
+      //Step.2 AutoPoi 导出Excel
+      ModelAndView mv = new ModelAndView(new JeecgEntityExcelView());
+      List<KuaiShouConversionInfos> pageList = kuaiShouConversionInfosService.list(queryWrapper);
+      //导出文件名称
+      mv.addObject(NormalExcelConstants.FILE_NAME, "快手-可选深度转化类型列表");
+      mv.addObject(NormalExcelConstants.CLASS, KuaiShouConversionInfos.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<KuaiShouConversionInfos> listKuaiShouConversionInfoss = ExcelImportUtil.importExcel(file.getInputStream(), KuaiShouConversionInfos.class, params);
+              kuaiShouConversionInfosService.saveBatch(listKuaiShouConversionInfoss);
+              return Result.ok("文件导入成功!数据行数:" + listKuaiShouConversionInfoss.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("文件导入失败!");
+  }
+
+}

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

@@ -0,0 +1,244 @@
+package org.jeecg.modules.kuaishou.controller;
+
+import java.util.Arrays;
+import java.util.List;
+import java.util.Map;
+import java.io.IOException;
+import java.io.UnsupportedEncodingException;
+import java.net.URLDecoder;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import org.jeecg.common.api.vo.Result;
+import org.jeecg.common.system.query.QueryGenerator;
+import org.jeecg.common.aspect.annotation.AutoLog;
+import org.jeecg.common.util.oConvertUtils;
+import org.jeecg.modules.kuaishou.entity.KuaiShouConversionTypes;
+import org.jeecg.modules.kuaishou.service.IKuaiShouConversionTypesService;
+import java.util.Date;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import lombok.extern.slf4j.Slf4j;
+
+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 com.alibaba.fastjson.JSON;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+
+ /**
+ * @Description: 快手-可选深度转化类型-详情
+ * @Author: jeecg-boot
+ * @Date:   2019-07-24
+ * @Version: V1.0
+ */
+@Slf4j
+@Api(tags="快手-可选深度转化类型-详情")
+@RestController
+@RequestMapping("/kuaishou/kuaiShouConversionTypes")
+public class KuaiShouConversionTypesController {
+	@Autowired
+	private IKuaiShouConversionTypesService kuaiShouConversionTypesService;
+	
+	/**
+	  * 分页列表查询
+	 * @param kuaiShouConversionTypes
+	 * @param pageNo
+	 * @param pageSize
+	 * @param req
+	 * @return
+	 */
+	@AutoLog(value = "快手-可选深度转化类型-详情-分页列表查询")
+	@ApiOperation(value="快手-可选深度转化类型-详情-分页列表查询", notes="快手-可选深度转化类型-详情-分页列表查询")
+	@GetMapping(value = "/list")
+	public Result<IPage<KuaiShouConversionTypes>> queryPageList(KuaiShouConversionTypes kuaiShouConversionTypes,
+									  @RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
+									  @RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
+									  HttpServletRequest req) {
+		Result<IPage<KuaiShouConversionTypes>> result = new Result<IPage<KuaiShouConversionTypes>>();
+		QueryWrapper<KuaiShouConversionTypes> queryWrapper = QueryGenerator.initQueryWrapper(kuaiShouConversionTypes, req.getParameterMap());
+		Page<KuaiShouConversionTypes> page = new Page<KuaiShouConversionTypes>(pageNo, pageSize);
+		IPage<KuaiShouConversionTypes> pageList = kuaiShouConversionTypesService.page(page, queryWrapper);
+		result.setSuccess(true);
+		result.setResult(pageList);
+		return result;
+	}
+	
+	/**
+	  *   添加
+	 * @param kuaiShouConversionTypes
+	 * @return
+	 */
+	@AutoLog(value = "快手-可选深度转化类型-详情-添加")
+	@ApiOperation(value="快手-可选深度转化类型-详情-添加", notes="快手-可选深度转化类型-详情-添加")
+	@PostMapping(value = "/add")
+	public Result<KuaiShouConversionTypes> add(@RequestBody KuaiShouConversionTypes kuaiShouConversionTypes) {
+		Result<KuaiShouConversionTypes> result = new Result<KuaiShouConversionTypes>();
+		try {
+			kuaiShouConversionTypesService.save(kuaiShouConversionTypes);
+			result.success("添加成功!");
+		} catch (Exception e) {
+			log.error(e.getMessage(),e);
+			result.error500("操作失败");
+		}
+		return result;
+	}
+	
+	/**
+	  *  编辑
+	 * @param kuaiShouConversionTypes
+	 * @return
+	 */
+	@AutoLog(value = "快手-可选深度转化类型-详情-编辑")
+	@ApiOperation(value="快手-可选深度转化类型-详情-编辑", notes="快手-可选深度转化类型-详情-编辑")
+	@PutMapping(value = "/edit")
+	public Result<KuaiShouConversionTypes> edit(@RequestBody KuaiShouConversionTypes kuaiShouConversionTypes) {
+		Result<KuaiShouConversionTypes> result = new Result<KuaiShouConversionTypes>();
+		KuaiShouConversionTypes kuaiShouConversionTypesEntity = kuaiShouConversionTypesService.getById(kuaiShouConversionTypes.getId());
+		if(kuaiShouConversionTypesEntity==null) {
+			result.error500("未找到对应实体");
+		}else {
+			boolean ok = kuaiShouConversionTypesService.updateById(kuaiShouConversionTypes);
+			//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 {
+			kuaiShouConversionTypesService.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<KuaiShouConversionTypes> deleteBatch(@RequestParam(name="ids",required=true) String ids) {
+		Result<KuaiShouConversionTypes> result = new Result<KuaiShouConversionTypes>();
+		if(ids==null || "".equals(ids.trim())) {
+			result.error500("参数不识别!");
+		}else {
+			this.kuaiShouConversionTypesService.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<KuaiShouConversionTypes> queryById(@RequestParam(name="id",required=true) String id) {
+		Result<KuaiShouConversionTypes> result = new Result<KuaiShouConversionTypes>();
+		KuaiShouConversionTypes kuaiShouConversionTypes = kuaiShouConversionTypesService.getById(id);
+		if(kuaiShouConversionTypes==null) {
+			result.error500("未找到对应实体");
+		}else {
+			result.setResult(kuaiShouConversionTypes);
+			result.setSuccess(true);
+		}
+		return result;
+	}
+
+  /**
+      * 导出excel
+   *
+   * @param request
+   * @param response
+   */
+  @RequestMapping(value = "/exportXls")
+  public ModelAndView exportXls(HttpServletRequest request, HttpServletResponse response) {
+      // Step.1 组装查询条件
+      QueryWrapper<KuaiShouConversionTypes> queryWrapper = null;
+      try {
+          String paramsStr = request.getParameter("paramsStr");
+          if (oConvertUtils.isNotEmpty(paramsStr)) {
+              String deString = URLDecoder.decode(paramsStr, "UTF-8");
+              KuaiShouConversionTypes kuaiShouConversionTypes = JSON.parseObject(deString, KuaiShouConversionTypes.class);
+              queryWrapper = QueryGenerator.initQueryWrapper(kuaiShouConversionTypes, request.getParameterMap());
+          }
+      } catch (UnsupportedEncodingException e) {
+          e.printStackTrace();
+      }
+
+      //Step.2 AutoPoi 导出Excel
+      ModelAndView mv = new ModelAndView(new JeecgEntityExcelView());
+      List<KuaiShouConversionTypes> pageList = kuaiShouConversionTypesService.list(queryWrapper);
+      //导出文件名称
+      mv.addObject(NormalExcelConstants.FILE_NAME, "快手-可选深度转化类型-详情列表");
+      mv.addObject(NormalExcelConstants.CLASS, KuaiShouConversionTypes.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<KuaiShouConversionTypes> listKuaiShouConversionTypess = ExcelImportUtil.importExcel(file.getInputStream(), KuaiShouConversionTypes.class, params);
+              kuaiShouConversionTypesService.saveBatch(listKuaiShouConversionTypess);
+              return Result.ok("文件导入成功!数据行数:" + listKuaiShouConversionTypess.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("文件导入失败!");
+  }
+
+}

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

@@ -0,0 +1,244 @@
+package org.jeecg.modules.kuaishou.controller;
+
+import java.util.Arrays;
+import java.util.List;
+import java.util.Map;
+import java.io.IOException;
+import java.io.UnsupportedEncodingException;
+import java.net.URLDecoder;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import org.jeecg.common.api.vo.Result;
+import org.jeecg.common.system.query.QueryGenerator;
+import org.jeecg.common.aspect.annotation.AutoLog;
+import org.jeecg.common.util.oConvertUtils;
+import org.jeecg.modules.kuaishou.entity.KuaiShouCreativeCreate;
+import org.jeecg.modules.kuaishou.service.IKuaiShouCreativeCreateService;
+import java.util.Date;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import lombok.extern.slf4j.Slf4j;
+
+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 com.alibaba.fastjson.JSON;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+
+ /**
+ * @Description: 快手-创建创意信息
+ * @Author: jeecg-boot
+ * @Date:   2019-07-24
+ * @Version: V1.0
+ */
+@Slf4j
+@Api(tags="快手-创建创意信息")
+@RestController
+@RequestMapping("/kuaishou/kuaiShouCreativeCreate")
+public class KuaiShouCreativeCreateController {
+	@Autowired
+	private IKuaiShouCreativeCreateService kuaiShouCreativeCreateService;
+	
+	/**
+	  * 分页列表查询
+	 * @param kuaiShouCreativeCreate
+	 * @param pageNo
+	 * @param pageSize
+	 * @param req
+	 * @return
+	 */
+	@AutoLog(value = "快手-创建创意信息-分页列表查询")
+	@ApiOperation(value="快手-创建创意信息-分页列表查询", notes="快手-创建创意信息-分页列表查询")
+	@GetMapping(value = "/list")
+	public Result<IPage<KuaiShouCreativeCreate>> queryPageList(KuaiShouCreativeCreate kuaiShouCreativeCreate,
+									  @RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
+									  @RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
+									  HttpServletRequest req) {
+		Result<IPage<KuaiShouCreativeCreate>> result = new Result<IPage<KuaiShouCreativeCreate>>();
+		QueryWrapper<KuaiShouCreativeCreate> queryWrapper = QueryGenerator.initQueryWrapper(kuaiShouCreativeCreate, req.getParameterMap());
+		Page<KuaiShouCreativeCreate> page = new Page<KuaiShouCreativeCreate>(pageNo, pageSize);
+		IPage<KuaiShouCreativeCreate> pageList = kuaiShouCreativeCreateService.page(page, queryWrapper);
+		result.setSuccess(true);
+		result.setResult(pageList);
+		return result;
+	}
+	
+	/**
+	  *   添加
+	 * @param kuaiShouCreativeCreate
+	 * @return
+	 */
+	@AutoLog(value = "快手-创建创意信息-添加")
+	@ApiOperation(value="快手-创建创意信息-添加", notes="快手-创建创意信息-添加")
+	@PostMapping(value = "/add")
+	public Result<KuaiShouCreativeCreate> add(@RequestBody KuaiShouCreativeCreate kuaiShouCreativeCreate) {
+		Result<KuaiShouCreativeCreate> result = new Result<KuaiShouCreativeCreate>();
+		try {
+			kuaiShouCreativeCreateService.save(kuaiShouCreativeCreate);
+			result.success("添加成功!");
+		} catch (Exception e) {
+			log.error(e.getMessage(),e);
+			result.error500("操作失败");
+		}
+		return result;
+	}
+	
+	/**
+	  *  编辑
+	 * @param kuaiShouCreativeCreate
+	 * @return
+	 */
+	@AutoLog(value = "快手-创建创意信息-编辑")
+	@ApiOperation(value="快手-创建创意信息-编辑", notes="快手-创建创意信息-编辑")
+	@PutMapping(value = "/edit")
+	public Result<KuaiShouCreativeCreate> edit(@RequestBody KuaiShouCreativeCreate kuaiShouCreativeCreate) {
+		Result<KuaiShouCreativeCreate> result = new Result<KuaiShouCreativeCreate>();
+		KuaiShouCreativeCreate kuaiShouCreativeCreateEntity = kuaiShouCreativeCreateService.getById(kuaiShouCreativeCreate.getId());
+		if(kuaiShouCreativeCreateEntity==null) {
+			result.error500("未找到对应实体");
+		}else {
+			boolean ok = kuaiShouCreativeCreateService.updateById(kuaiShouCreativeCreate);
+			//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 {
+			kuaiShouCreativeCreateService.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<KuaiShouCreativeCreate> deleteBatch(@RequestParam(name="ids",required=true) String ids) {
+		Result<KuaiShouCreativeCreate> result = new Result<KuaiShouCreativeCreate>();
+		if(ids==null || "".equals(ids.trim())) {
+			result.error500("参数不识别!");
+		}else {
+			this.kuaiShouCreativeCreateService.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<KuaiShouCreativeCreate> queryById(@RequestParam(name="id",required=true) String id) {
+		Result<KuaiShouCreativeCreate> result = new Result<KuaiShouCreativeCreate>();
+		KuaiShouCreativeCreate kuaiShouCreativeCreate = kuaiShouCreativeCreateService.getById(id);
+		if(kuaiShouCreativeCreate==null) {
+			result.error500("未找到对应实体");
+		}else {
+			result.setResult(kuaiShouCreativeCreate);
+			result.setSuccess(true);
+		}
+		return result;
+	}
+
+  /**
+      * 导出excel
+   *
+   * @param request
+   * @param response
+   */
+  @RequestMapping(value = "/exportXls")
+  public ModelAndView exportXls(HttpServletRequest request, HttpServletResponse response) {
+      // Step.1 组装查询条件
+      QueryWrapper<KuaiShouCreativeCreate> queryWrapper = null;
+      try {
+          String paramsStr = request.getParameter("paramsStr");
+          if (oConvertUtils.isNotEmpty(paramsStr)) {
+              String deString = URLDecoder.decode(paramsStr, "UTF-8");
+              KuaiShouCreativeCreate kuaiShouCreativeCreate = JSON.parseObject(deString, KuaiShouCreativeCreate.class);
+              queryWrapper = QueryGenerator.initQueryWrapper(kuaiShouCreativeCreate, request.getParameterMap());
+          }
+      } catch (UnsupportedEncodingException e) {
+          e.printStackTrace();
+      }
+
+      //Step.2 AutoPoi 导出Excel
+      ModelAndView mv = new ModelAndView(new JeecgEntityExcelView());
+      List<KuaiShouCreativeCreate> pageList = kuaiShouCreativeCreateService.list(queryWrapper);
+      //导出文件名称
+      mv.addObject(NormalExcelConstants.FILE_NAME, "快手-创建创意信息列表");
+      mv.addObject(NormalExcelConstants.CLASS, KuaiShouCreativeCreate.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<KuaiShouCreativeCreate> listKuaiShouCreativeCreates = ExcelImportUtil.importExcel(file.getInputStream(), KuaiShouCreativeCreate.class, params);
+              kuaiShouCreativeCreateService.saveBatch(listKuaiShouCreativeCreates);
+              return Result.ok("文件导入成功!数据行数:" + listKuaiShouCreativeCreates.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("文件导入失败!");
+  }
+
+}

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

@@ -0,0 +1,244 @@
+package org.jeecg.modules.kuaishou.controller;
+
+import java.util.Arrays;
+import java.util.List;
+import java.util.Map;
+import java.io.IOException;
+import java.io.UnsupportedEncodingException;
+import java.net.URLDecoder;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import org.jeecg.common.api.vo.Result;
+import org.jeecg.common.system.query.QueryGenerator;
+import org.jeecg.common.aspect.annotation.AutoLog;
+import org.jeecg.common.util.oConvertUtils;
+import org.jeecg.modules.kuaishou.entity.KuaiShouGroupCreate;
+import org.jeecg.modules.kuaishou.service.IKuaiShouGroupCreateService;
+import java.util.Date;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import lombok.extern.slf4j.Slf4j;
+
+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 com.alibaba.fastjson.JSON;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+
+ /**
+ * @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("文件导入失败!");
+  }
+
+}

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

@@ -0,0 +1,244 @@
+package org.jeecg.modules.kuaishou.controller;
+
+import java.util.Arrays;
+import java.util.List;
+import java.util.Map;
+import java.io.IOException;
+import java.io.UnsupportedEncodingException;
+import java.net.URLDecoder;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import org.jeecg.common.api.vo.Result;
+import org.jeecg.common.system.query.QueryGenerator;
+import org.jeecg.common.aspect.annotation.AutoLog;
+import org.jeecg.common.util.oConvertUtils;
+import org.jeecg.modules.kuaishou.entity.KuaiShouGroupCreateTarget;
+import org.jeecg.modules.kuaishou.service.IKuaiShouGroupCreateTargetService;
+import java.util.Date;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import lombok.extern.slf4j.Slf4j;
+
+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 com.alibaba.fastjson.JSON;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+
+ /**
+ * @Description: 快手-创建广告组定向信息
+ * @Author: jeecg-boot
+ * @Date:   2019-07-24
+ * @Version: V1.0
+ */
+@Slf4j
+@Api(tags="快手-创建广告组定向信息")
+@RestController
+@RequestMapping("/kuaishou/kuaiShouGroupCreateTarget")
+public class KuaiShouGroupCreateTargetController {
+	@Autowired
+	private IKuaiShouGroupCreateTargetService kuaiShouGroupCreateTargetService;
+	
+	/**
+	  * 分页列表查询
+	 * @param kuaiShouGroupCreateTarget
+	 * @param pageNo
+	 * @param pageSize
+	 * @param req
+	 * @return
+	 */
+	@AutoLog(value = "快手-创建广告组定向信息-分页列表查询")
+	@ApiOperation(value="快手-创建广告组定向信息-分页列表查询", notes="快手-创建广告组定向信息-分页列表查询")
+	@GetMapping(value = "/list")
+	public Result<IPage<KuaiShouGroupCreateTarget>> queryPageList(KuaiShouGroupCreateTarget kuaiShouGroupCreateTarget,
+									  @RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
+									  @RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
+									  HttpServletRequest req) {
+		Result<IPage<KuaiShouGroupCreateTarget>> result = new Result<IPage<KuaiShouGroupCreateTarget>>();
+		QueryWrapper<KuaiShouGroupCreateTarget> queryWrapper = QueryGenerator.initQueryWrapper(kuaiShouGroupCreateTarget, req.getParameterMap());
+		Page<KuaiShouGroupCreateTarget> page = new Page<KuaiShouGroupCreateTarget>(pageNo, pageSize);
+		IPage<KuaiShouGroupCreateTarget> pageList = kuaiShouGroupCreateTargetService.page(page, queryWrapper);
+		result.setSuccess(true);
+		result.setResult(pageList);
+		return result;
+	}
+	
+	/**
+	  *   添加
+	 * @param kuaiShouGroupCreateTarget
+	 * @return
+	 */
+	@AutoLog(value = "快手-创建广告组定向信息-添加")
+	@ApiOperation(value="快手-创建广告组定向信息-添加", notes="快手-创建广告组定向信息-添加")
+	@PostMapping(value = "/add")
+	public Result<KuaiShouGroupCreateTarget> add(@RequestBody KuaiShouGroupCreateTarget kuaiShouGroupCreateTarget) {
+		Result<KuaiShouGroupCreateTarget> result = new Result<KuaiShouGroupCreateTarget>();
+		try {
+			kuaiShouGroupCreateTargetService.save(kuaiShouGroupCreateTarget);
+			result.success("添加成功!");
+		} catch (Exception e) {
+			log.error(e.getMessage(),e);
+			result.error500("操作失败");
+		}
+		return result;
+	}
+	
+	/**
+	  *  编辑
+	 * @param kuaiShouGroupCreateTarget
+	 * @return
+	 */
+	@AutoLog(value = "快手-创建广告组定向信息-编辑")
+	@ApiOperation(value="快手-创建广告组定向信息-编辑", notes="快手-创建广告组定向信息-编辑")
+	@PutMapping(value = "/edit")
+	public Result<KuaiShouGroupCreateTarget> edit(@RequestBody KuaiShouGroupCreateTarget kuaiShouGroupCreateTarget) {
+		Result<KuaiShouGroupCreateTarget> result = new Result<KuaiShouGroupCreateTarget>();
+		KuaiShouGroupCreateTarget kuaiShouGroupCreateTargetEntity = kuaiShouGroupCreateTargetService.getById(kuaiShouGroupCreateTarget.getId());
+		if(kuaiShouGroupCreateTargetEntity==null) {
+			result.error500("未找到对应实体");
+		}else {
+			boolean ok = kuaiShouGroupCreateTargetService.updateById(kuaiShouGroupCreateTarget);
+			//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 {
+			kuaiShouGroupCreateTargetService.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<KuaiShouGroupCreateTarget> deleteBatch(@RequestParam(name="ids",required=true) String ids) {
+		Result<KuaiShouGroupCreateTarget> result = new Result<KuaiShouGroupCreateTarget>();
+		if(ids==null || "".equals(ids.trim())) {
+			result.error500("参数不识别!");
+		}else {
+			this.kuaiShouGroupCreateTargetService.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<KuaiShouGroupCreateTarget> queryById(@RequestParam(name="id",required=true) String id) {
+		Result<KuaiShouGroupCreateTarget> result = new Result<KuaiShouGroupCreateTarget>();
+		KuaiShouGroupCreateTarget kuaiShouGroupCreateTarget = kuaiShouGroupCreateTargetService.getById(id);
+		if(kuaiShouGroupCreateTarget==null) {
+			result.error500("未找到对应实体");
+		}else {
+			result.setResult(kuaiShouGroupCreateTarget);
+			result.setSuccess(true);
+		}
+		return result;
+	}
+
+  /**
+      * 导出excel
+   *
+   * @param request
+   * @param response
+   */
+  @RequestMapping(value = "/exportXls")
+  public ModelAndView exportXls(HttpServletRequest request, HttpServletResponse response) {
+      // Step.1 组装查询条件
+      QueryWrapper<KuaiShouGroupCreateTarget> queryWrapper = null;
+      try {
+          String paramsStr = request.getParameter("paramsStr");
+          if (oConvertUtils.isNotEmpty(paramsStr)) {
+              String deString = URLDecoder.decode(paramsStr, "UTF-8");
+              KuaiShouGroupCreateTarget kuaiShouGroupCreateTarget = JSON.parseObject(deString, KuaiShouGroupCreateTarget.class);
+              queryWrapper = QueryGenerator.initQueryWrapper(kuaiShouGroupCreateTarget, request.getParameterMap());
+          }
+      } catch (UnsupportedEncodingException e) {
+          e.printStackTrace();
+      }
+
+      //Step.2 AutoPoi 导出Excel
+      ModelAndView mv = new ModelAndView(new JeecgEntityExcelView());
+      List<KuaiShouGroupCreateTarget> pageList = kuaiShouGroupCreateTargetService.list(queryWrapper);
+      //导出文件名称
+      mv.addObject(NormalExcelConstants.FILE_NAME, "快手-创建广告组定向信息列表");
+      mv.addObject(NormalExcelConstants.CLASS, KuaiShouGroupCreateTarget.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<KuaiShouGroupCreateTarget> listKuaiShouGroupCreateTargets = ExcelImportUtil.importExcel(file.getInputStream(), KuaiShouGroupCreateTarget.class, params);
+              kuaiShouGroupCreateTargetService.saveBatch(listKuaiShouGroupCreateTargets);
+              return Result.ok("文件导入成功!数据行数:" + listKuaiShouGroupCreateTargets.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("文件导入失败!");
+  }
+
+}

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

@@ -0,0 +1,244 @@
+package org.jeecg.modules.kuaishou.controller;
+
+import java.util.Arrays;
+import java.util.List;
+import java.util.Map;
+import java.io.IOException;
+import java.io.UnsupportedEncodingException;
+import java.net.URLDecoder;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import org.jeecg.common.api.vo.Result;
+import org.jeecg.common.system.query.QueryGenerator;
+import org.jeecg.common.aspect.annotation.AutoLog;
+import org.jeecg.common.util.oConvertUtils;
+import org.jeecg.modules.kuaishou.entity.KuaiShouImageGet;
+import org.jeecg.modules.kuaishou.service.IKuaiShouImageGetService;
+import java.util.Date;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import lombok.extern.slf4j.Slf4j;
+
+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 com.alibaba.fastjson.JSON;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+
+ /**
+ * @Description: 快手-获取图片接口
+ * @Author: jeecg-boot
+ * @Date:   2019-07-25
+ * @Version: V1.0
+ */
+@Slf4j
+@Api(tags="快手-获取图片接口")
+@RestController
+@RequestMapping("/kuaishou/kuaiShouImageGet")
+public class KuaiShouImageGetController {
+	@Autowired
+	private IKuaiShouImageGetService kuaiShouImageGetService;
+	
+	/**
+	  * 分页列表查询
+	 * @param kuaiShouImageGet
+	 * @param pageNo
+	 * @param pageSize
+	 * @param req
+	 * @return
+	 */
+	@AutoLog(value = "快手-获取图片接口-分页列表查询")
+	@ApiOperation(value="快手-获取图片接口-分页列表查询", notes="快手-获取图片接口-分页列表查询")
+	@GetMapping(value = "/list")
+	public Result<IPage<KuaiShouImageGet>> queryPageList(KuaiShouImageGet kuaiShouImageGet,
+									  @RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
+									  @RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
+									  HttpServletRequest req) {
+		Result<IPage<KuaiShouImageGet>> result = new Result<IPage<KuaiShouImageGet>>();
+		QueryWrapper<KuaiShouImageGet> queryWrapper = QueryGenerator.initQueryWrapper(kuaiShouImageGet, req.getParameterMap());
+		Page<KuaiShouImageGet> page = new Page<KuaiShouImageGet>(pageNo, pageSize);
+		IPage<KuaiShouImageGet> pageList = kuaiShouImageGetService.page(page, queryWrapper);
+		result.setSuccess(true);
+		result.setResult(pageList);
+		return result;
+	}
+	
+	/**
+	  *   添加
+	 * @param kuaiShouImageGet
+	 * @return
+	 */
+	@AutoLog(value = "快手-获取图片接口-添加")
+	@ApiOperation(value="快手-获取图片接口-添加", notes="快手-获取图片接口-添加")
+	@PostMapping(value = "/add")
+	public Result<KuaiShouImageGet> add(@RequestBody KuaiShouImageGet kuaiShouImageGet) {
+		Result<KuaiShouImageGet> result = new Result<KuaiShouImageGet>();
+		try {
+			kuaiShouImageGetService.save(kuaiShouImageGet);
+			result.success("添加成功!");
+		} catch (Exception e) {
+			log.error(e.getMessage(),e);
+			result.error500("操作失败");
+		}
+		return result;
+	}
+	
+	/**
+	  *  编辑
+	 * @param kuaiShouImageGet
+	 * @return
+	 */
+	@AutoLog(value = "快手-获取图片接口-编辑")
+	@ApiOperation(value="快手-获取图片接口-编辑", notes="快手-获取图片接口-编辑")
+	@PutMapping(value = "/edit")
+	public Result<KuaiShouImageGet> edit(@RequestBody KuaiShouImageGet kuaiShouImageGet) {
+		Result<KuaiShouImageGet> result = new Result<KuaiShouImageGet>();
+		KuaiShouImageGet kuaiShouImageGetEntity = kuaiShouImageGetService.getById(kuaiShouImageGet.getId());
+		if(kuaiShouImageGetEntity==null) {
+			result.error500("未找到对应实体");
+		}else {
+			boolean ok = kuaiShouImageGetService.updateById(kuaiShouImageGet);
+			//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 {
+			kuaiShouImageGetService.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<KuaiShouImageGet> deleteBatch(@RequestParam(name="ids",required=true) String ids) {
+		Result<KuaiShouImageGet> result = new Result<KuaiShouImageGet>();
+		if(ids==null || "".equals(ids.trim())) {
+			result.error500("参数不识别!");
+		}else {
+			this.kuaiShouImageGetService.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<KuaiShouImageGet> queryById(@RequestParam(name="id",required=true) String id) {
+		Result<KuaiShouImageGet> result = new Result<KuaiShouImageGet>();
+		KuaiShouImageGet kuaiShouImageGet = kuaiShouImageGetService.getById(id);
+		if(kuaiShouImageGet==null) {
+			result.error500("未找到对应实体");
+		}else {
+			result.setResult(kuaiShouImageGet);
+			result.setSuccess(true);
+		}
+		return result;
+	}
+
+  /**
+      * 导出excel
+   *
+   * @param request
+   * @param response
+   */
+  @RequestMapping(value = "/exportXls")
+  public ModelAndView exportXls(HttpServletRequest request, HttpServletResponse response) {
+      // Step.1 组装查询条件
+      QueryWrapper<KuaiShouImageGet> queryWrapper = null;
+      try {
+          String paramsStr = request.getParameter("paramsStr");
+          if (oConvertUtils.isNotEmpty(paramsStr)) {
+              String deString = URLDecoder.decode(paramsStr, "UTF-8");
+              KuaiShouImageGet kuaiShouImageGet = JSON.parseObject(deString, KuaiShouImageGet.class);
+              queryWrapper = QueryGenerator.initQueryWrapper(kuaiShouImageGet, request.getParameterMap());
+          }
+      } catch (UnsupportedEncodingException e) {
+          e.printStackTrace();
+      }
+
+      //Step.2 AutoPoi 导出Excel
+      ModelAndView mv = new ModelAndView(new JeecgEntityExcelView());
+      List<KuaiShouImageGet> pageList = kuaiShouImageGetService.list(queryWrapper);
+      //导出文件名称
+      mv.addObject(NormalExcelConstants.FILE_NAME, "快手-获取图片接口列表");
+      mv.addObject(NormalExcelConstants.CLASS, KuaiShouImageGet.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<KuaiShouImageGet> listKuaiShouImageGets = ExcelImportUtil.importExcel(file.getInputStream(), KuaiShouImageGet.class, params);
+              kuaiShouImageGetService.saveBatch(listKuaiShouImageGets);
+              return Result.ok("文件导入成功!数据行数:" + listKuaiShouImageGets.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("文件导入失败!");
+  }
+
+}

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

@@ -0,0 +1,244 @@
+package org.jeecg.modules.kuaishou.controller;
+
+import java.util.Arrays;
+import java.util.List;
+import java.util.Map;
+import java.io.IOException;
+import java.io.UnsupportedEncodingException;
+import java.net.URLDecoder;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import org.jeecg.common.api.vo.Result;
+import org.jeecg.common.system.query.QueryGenerator;
+import org.jeecg.common.aspect.annotation.AutoLog;
+import org.jeecg.common.util.oConvertUtils;
+import org.jeecg.modules.kuaishou.entity.KuaiShouImageUploand;
+import org.jeecg.modules.kuaishou.service.IKuaiShouImageUploandService;
+import java.util.Date;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import lombok.extern.slf4j.Slf4j;
+
+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 com.alibaba.fastjson.JSON;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+
+ /**
+ * @Description: 快手-上传图片接口
+ * @Author: jeecg-boot
+ * @Date:   2019-07-26
+ * @Version: V1.0
+ */
+@Slf4j
+@Api(tags="快手-上传图片接口")
+@RestController
+@RequestMapping("/kuaishou/kuaiShouImageUploand")
+public class KuaiShouImageUploandController {
+	@Autowired
+	private IKuaiShouImageUploandService kuaiShouImageUploandService;
+	
+	/**
+	  * 分页列表查询
+	 * @param kuaiShouImageUploand
+	 * @param pageNo
+	 * @param pageSize
+	 * @param req
+	 * @return
+	 */
+	@AutoLog(value = "快手-上传图片接口-分页列表查询")
+	@ApiOperation(value="快手-上传图片接口-分页列表查询", notes="快手-上传图片接口-分页列表查询")
+	@GetMapping(value = "/list")
+	public Result<IPage<KuaiShouImageUploand>> queryPageList(KuaiShouImageUploand kuaiShouImageUploand,
+									  @RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
+									  @RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
+									  HttpServletRequest req) {
+		Result<IPage<KuaiShouImageUploand>> result = new Result<IPage<KuaiShouImageUploand>>();
+		QueryWrapper<KuaiShouImageUploand> queryWrapper = QueryGenerator.initQueryWrapper(kuaiShouImageUploand, req.getParameterMap());
+		Page<KuaiShouImageUploand> page = new Page<KuaiShouImageUploand>(pageNo, pageSize);
+		IPage<KuaiShouImageUploand> pageList = kuaiShouImageUploandService.page(page, queryWrapper);
+		result.setSuccess(true);
+		result.setResult(pageList);
+		return result;
+	}
+	
+	/**
+	  *   添加
+	 * @param kuaiShouImageUploand
+	 * @return
+	 */
+	@AutoLog(value = "快手-上传图片接口-添加")
+	@ApiOperation(value="快手-上传图片接口-添加", notes="快手-上传图片接口-添加")
+	@PostMapping(value = "/add")
+	public Result<KuaiShouImageUploand> add(@RequestBody KuaiShouImageUploand kuaiShouImageUploand) {
+		Result<KuaiShouImageUploand> result = new Result<KuaiShouImageUploand>();
+		try {
+			kuaiShouImageUploandService.save(kuaiShouImageUploand);
+			result.success("添加成功!");
+		} catch (Exception e) {
+			log.error(e.getMessage(),e);
+			result.error500("操作失败");
+		}
+		return result;
+	}
+	
+	/**
+	  *  编辑
+	 * @param kuaiShouImageUploand
+	 * @return
+	 */
+	@AutoLog(value = "快手-上传图片接口-编辑")
+	@ApiOperation(value="快手-上传图片接口-编辑", notes="快手-上传图片接口-编辑")
+	@PutMapping(value = "/edit")
+	public Result<KuaiShouImageUploand> edit(@RequestBody KuaiShouImageUploand kuaiShouImageUploand) {
+		Result<KuaiShouImageUploand> result = new Result<KuaiShouImageUploand>();
+		KuaiShouImageUploand kuaiShouImageUploandEntity = kuaiShouImageUploandService.getById(kuaiShouImageUploand.getId());
+		if(kuaiShouImageUploandEntity==null) {
+			result.error500("未找到对应实体");
+		}else {
+			boolean ok = kuaiShouImageUploandService.updateById(kuaiShouImageUploand);
+			//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 {
+			kuaiShouImageUploandService.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<KuaiShouImageUploand> deleteBatch(@RequestParam(name="ids",required=true) String ids) {
+		Result<KuaiShouImageUploand> result = new Result<KuaiShouImageUploand>();
+		if(ids==null || "".equals(ids.trim())) {
+			result.error500("参数不识别!");
+		}else {
+			this.kuaiShouImageUploandService.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<KuaiShouImageUploand> queryById(@RequestParam(name="id",required=true) String id) {
+		Result<KuaiShouImageUploand> result = new Result<KuaiShouImageUploand>();
+		KuaiShouImageUploand kuaiShouImageUploand = kuaiShouImageUploandService.getById(id);
+		if(kuaiShouImageUploand==null) {
+			result.error500("未找到对应实体");
+		}else {
+			result.setResult(kuaiShouImageUploand);
+			result.setSuccess(true);
+		}
+		return result;
+	}
+
+  /**
+      * 导出excel
+   *
+   * @param request
+   * @param response
+   */
+  @RequestMapping(value = "/exportXls")
+  public ModelAndView exportXls(HttpServletRequest request, HttpServletResponse response) {
+      // Step.1 组装查询条件
+      QueryWrapper<KuaiShouImageUploand> queryWrapper = null;
+      try {
+          String paramsStr = request.getParameter("paramsStr");
+          if (oConvertUtils.isNotEmpty(paramsStr)) {
+              String deString = URLDecoder.decode(paramsStr, "UTF-8");
+              KuaiShouImageUploand kuaiShouImageUploand = JSON.parseObject(deString, KuaiShouImageUploand.class);
+              queryWrapper = QueryGenerator.initQueryWrapper(kuaiShouImageUploand, request.getParameterMap());
+          }
+      } catch (UnsupportedEncodingException e) {
+          e.printStackTrace();
+      }
+
+      //Step.2 AutoPoi 导出Excel
+      ModelAndView mv = new ModelAndView(new JeecgEntityExcelView());
+      List<KuaiShouImageUploand> pageList = kuaiShouImageUploandService.list(queryWrapper);
+      //导出文件名称
+      mv.addObject(NormalExcelConstants.FILE_NAME, "快手-上传图片接口列表");
+      mv.addObject(NormalExcelConstants.CLASS, KuaiShouImageUploand.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<KuaiShouImageUploand> listKuaiShouImageUploands = ExcelImportUtil.importExcel(file.getInputStream(), KuaiShouImageUploand.class, params);
+              kuaiShouImageUploandService.saveBatch(listKuaiShouImageUploands);
+              return Result.ok("文件导入成功!数据行数:" + listKuaiShouImageUploands.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("文件导入失败!");
+  }
+
+}

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

@@ -0,0 +1,244 @@
+package org.jeecg.modules.kuaishou.controller;
+
+import java.util.Arrays;
+import java.util.List;
+import java.util.Map;
+import java.io.IOException;
+import java.io.UnsupportedEncodingException;
+import java.net.URLDecoder;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import org.jeecg.common.api.vo.Result;
+import org.jeecg.common.system.query.QueryGenerator;
+import org.jeecg.common.aspect.annotation.AutoLog;
+import org.jeecg.common.util.oConvertUtils;
+import org.jeecg.modules.kuaishou.entity.KuaiShouRegionListChildren;
+import org.jeecg.modules.kuaishou.service.IKuaiShouRegionListChildrenService;
+import java.util.Date;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import lombok.extern.slf4j.Slf4j;
+
+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 com.alibaba.fastjson.JSON;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+
+ /**
+ * @Description: 快手-子级地域
+ * @Author: jeecg-boot
+ * @Date:   2019-07-25
+ * @Version: V1.0
+ */
+@Slf4j
+@Api(tags="快手-子级地域")
+@RestController
+@RequestMapping("/kuaishou/kuaiShouRegionListChildren")
+public class KuaiShouRegionListChildrenController {
+	@Autowired
+	private IKuaiShouRegionListChildrenService kuaiShouRegionListChildrenService;
+	
+	/**
+	  * 分页列表查询
+	 * @param kuaiShouRegionListChildren
+	 * @param pageNo
+	 * @param pageSize
+	 * @param req
+	 * @return
+	 */
+	@AutoLog(value = "快手-子级地域-分页列表查询")
+	@ApiOperation(value="快手-子级地域-分页列表查询", notes="快手-子级地域-分页列表查询")
+	@GetMapping(value = "/list")
+	public Result<IPage<KuaiShouRegionListChildren>> queryPageList(KuaiShouRegionListChildren kuaiShouRegionListChildren,
+									  @RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
+									  @RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
+									  HttpServletRequest req) {
+		Result<IPage<KuaiShouRegionListChildren>> result = new Result<IPage<KuaiShouRegionListChildren>>();
+		QueryWrapper<KuaiShouRegionListChildren> queryWrapper = QueryGenerator.initQueryWrapper(kuaiShouRegionListChildren, req.getParameterMap());
+		Page<KuaiShouRegionListChildren> page = new Page<KuaiShouRegionListChildren>(pageNo, pageSize);
+		IPage<KuaiShouRegionListChildren> pageList = kuaiShouRegionListChildrenService.page(page, queryWrapper);
+		result.setSuccess(true);
+		result.setResult(pageList);
+		return result;
+	}
+	
+	/**
+	  *   添加
+	 * @param kuaiShouRegionListChildren
+	 * @return
+	 */
+	@AutoLog(value = "快手-子级地域-添加")
+	@ApiOperation(value="快手-子级地域-添加", notes="快手-子级地域-添加")
+	@PostMapping(value = "/add")
+	public Result<KuaiShouRegionListChildren> add(@RequestBody KuaiShouRegionListChildren kuaiShouRegionListChildren) {
+		Result<KuaiShouRegionListChildren> result = new Result<KuaiShouRegionListChildren>();
+		try {
+			kuaiShouRegionListChildrenService.save(kuaiShouRegionListChildren);
+			result.success("添加成功!");
+		} catch (Exception e) {
+			log.error(e.getMessage(),e);
+			result.error500("操作失败");
+		}
+		return result;
+	}
+	
+	/**
+	  *  编辑
+	 * @param kuaiShouRegionListChildren
+	 * @return
+	 */
+	@AutoLog(value = "快手-子级地域-编辑")
+	@ApiOperation(value="快手-子级地域-编辑", notes="快手-子级地域-编辑")
+	@PutMapping(value = "/edit")
+	public Result<KuaiShouRegionListChildren> edit(@RequestBody KuaiShouRegionListChildren kuaiShouRegionListChildren) {
+		Result<KuaiShouRegionListChildren> result = new Result<KuaiShouRegionListChildren>();
+		KuaiShouRegionListChildren kuaiShouRegionListChildrenEntity = kuaiShouRegionListChildrenService.getById(kuaiShouRegionListChildren.getId());
+		if(kuaiShouRegionListChildrenEntity==null) {
+			result.error500("未找到对应实体");
+		}else {
+			boolean ok = kuaiShouRegionListChildrenService.updateById(kuaiShouRegionListChildren);
+			//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 {
+			kuaiShouRegionListChildrenService.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<KuaiShouRegionListChildren> deleteBatch(@RequestParam(name="ids",required=true) String ids) {
+		Result<KuaiShouRegionListChildren> result = new Result<KuaiShouRegionListChildren>();
+		if(ids==null || "".equals(ids.trim())) {
+			result.error500("参数不识别!");
+		}else {
+			this.kuaiShouRegionListChildrenService.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<KuaiShouRegionListChildren> queryById(@RequestParam(name="id",required=true) String id) {
+		Result<KuaiShouRegionListChildren> result = new Result<KuaiShouRegionListChildren>();
+		KuaiShouRegionListChildren kuaiShouRegionListChildren = kuaiShouRegionListChildrenService.getById(id);
+		if(kuaiShouRegionListChildren==null) {
+			result.error500("未找到对应实体");
+		}else {
+			result.setResult(kuaiShouRegionListChildren);
+			result.setSuccess(true);
+		}
+		return result;
+	}
+
+  /**
+      * 导出excel
+   *
+   * @param request
+   * @param response
+   */
+  @RequestMapping(value = "/exportXls")
+  public ModelAndView exportXls(HttpServletRequest request, HttpServletResponse response) {
+      // Step.1 组装查询条件
+      QueryWrapper<KuaiShouRegionListChildren> queryWrapper = null;
+      try {
+          String paramsStr = request.getParameter("paramsStr");
+          if (oConvertUtils.isNotEmpty(paramsStr)) {
+              String deString = URLDecoder.decode(paramsStr, "UTF-8");
+              KuaiShouRegionListChildren kuaiShouRegionListChildren = JSON.parseObject(deString, KuaiShouRegionListChildren.class);
+              queryWrapper = QueryGenerator.initQueryWrapper(kuaiShouRegionListChildren, request.getParameterMap());
+          }
+      } catch (UnsupportedEncodingException e) {
+          e.printStackTrace();
+      }
+
+      //Step.2 AutoPoi 导出Excel
+      ModelAndView mv = new ModelAndView(new JeecgEntityExcelView());
+      List<KuaiShouRegionListChildren> pageList = kuaiShouRegionListChildrenService.list(queryWrapper);
+      //导出文件名称
+      mv.addObject(NormalExcelConstants.FILE_NAME, "快手-子级地域列表");
+      mv.addObject(NormalExcelConstants.CLASS, KuaiShouRegionListChildren.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<KuaiShouRegionListChildren> listKuaiShouRegionListChildrens = ExcelImportUtil.importExcel(file.getInputStream(), KuaiShouRegionListChildren.class, params);
+              kuaiShouRegionListChildrenService.saveBatch(listKuaiShouRegionListChildrens);
+              return Result.ok("文件导入成功!数据行数:" + listKuaiShouRegionListChildrens.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("文件导入失败!");
+  }
+
+}

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

@@ -0,0 +1,244 @@
+package org.jeecg.modules.kuaishou.controller;
+
+import java.util.Arrays;
+import java.util.List;
+import java.util.Map;
+import java.io.IOException;
+import java.io.UnsupportedEncodingException;
+import java.net.URLDecoder;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import org.jeecg.common.api.vo.Result;
+import org.jeecg.common.system.query.QueryGenerator;
+import org.jeecg.common.aspect.annotation.AutoLog;
+import org.jeecg.common.util.oConvertUtils;
+import org.jeecg.modules.kuaishou.entity.KuaiShouRegionListParent;
+import org.jeecg.modules.kuaishou.service.IKuaiShouRegionListParentService;
+import java.util.Date;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import lombok.extern.slf4j.Slf4j;
+
+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 com.alibaba.fastjson.JSON;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+
+ /**
+ * @Description: 快手-父级地域
+ * @Author: jeecg-boot
+ * @Date:   2019-07-25
+ * @Version: V1.0
+ */
+@Slf4j
+@Api(tags="快手-父级地域")
+@RestController
+@RequestMapping("/kuaishou/kuaiShouRegionListParent")
+public class KuaiShouRegionListParentController {
+	@Autowired
+	private IKuaiShouRegionListParentService kuaiShouRegionListParentService;
+	
+	/**
+	  * 分页列表查询
+	 * @param kuaiShouRegionListParent
+	 * @param pageNo
+	 * @param pageSize
+	 * @param req
+	 * @return
+	 */
+	@AutoLog(value = "快手-父级地域-分页列表查询")
+	@ApiOperation(value="快手-父级地域-分页列表查询", notes="快手-父级地域-分页列表查询")
+	@GetMapping(value = "/list")
+	public Result<IPage<KuaiShouRegionListParent>> queryPageList(KuaiShouRegionListParent kuaiShouRegionListParent,
+									  @RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
+									  @RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
+									  HttpServletRequest req) {
+		Result<IPage<KuaiShouRegionListParent>> result = new Result<IPage<KuaiShouRegionListParent>>();
+		QueryWrapper<KuaiShouRegionListParent> queryWrapper = QueryGenerator.initQueryWrapper(kuaiShouRegionListParent, req.getParameterMap());
+		Page<KuaiShouRegionListParent> page = new Page<KuaiShouRegionListParent>(pageNo, pageSize);
+		IPage<KuaiShouRegionListParent> pageList = kuaiShouRegionListParentService.page(page, queryWrapper);
+		result.setSuccess(true);
+		result.setResult(pageList);
+		return result;
+	}
+	
+	/**
+	  *   添加
+	 * @param kuaiShouRegionListParent
+	 * @return
+	 */
+	@AutoLog(value = "快手-父级地域-添加")
+	@ApiOperation(value="快手-父级地域-添加", notes="快手-父级地域-添加")
+	@PostMapping(value = "/add")
+	public Result<KuaiShouRegionListParent> add(@RequestBody KuaiShouRegionListParent kuaiShouRegionListParent) {
+		Result<KuaiShouRegionListParent> result = new Result<KuaiShouRegionListParent>();
+		try {
+			kuaiShouRegionListParentService.save(kuaiShouRegionListParent);
+			result.success("添加成功!");
+		} catch (Exception e) {
+			log.error(e.getMessage(),e);
+			result.error500("操作失败");
+		}
+		return result;
+	}
+	
+	/**
+	  *  编辑
+	 * @param kuaiShouRegionListParent
+	 * @return
+	 */
+	@AutoLog(value = "快手-父级地域-编辑")
+	@ApiOperation(value="快手-父级地域-编辑", notes="快手-父级地域-编辑")
+	@PutMapping(value = "/edit")
+	public Result<KuaiShouRegionListParent> edit(@RequestBody KuaiShouRegionListParent kuaiShouRegionListParent) {
+		Result<KuaiShouRegionListParent> result = new Result<KuaiShouRegionListParent>();
+		KuaiShouRegionListParent kuaiShouRegionListParentEntity = kuaiShouRegionListParentService.getById(kuaiShouRegionListParent.getId());
+		if(kuaiShouRegionListParentEntity==null) {
+			result.error500("未找到对应实体");
+		}else {
+			boolean ok = kuaiShouRegionListParentService.updateById(kuaiShouRegionListParent);
+			//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 {
+			kuaiShouRegionListParentService.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<KuaiShouRegionListParent> deleteBatch(@RequestParam(name="ids",required=true) String ids) {
+		Result<KuaiShouRegionListParent> result = new Result<KuaiShouRegionListParent>();
+		if(ids==null || "".equals(ids.trim())) {
+			result.error500("参数不识别!");
+		}else {
+			this.kuaiShouRegionListParentService.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<KuaiShouRegionListParent> queryById(@RequestParam(name="id",required=true) String id) {
+		Result<KuaiShouRegionListParent> result = new Result<KuaiShouRegionListParent>();
+		KuaiShouRegionListParent kuaiShouRegionListParent = kuaiShouRegionListParentService.getById(id);
+		if(kuaiShouRegionListParent==null) {
+			result.error500("未找到对应实体");
+		}else {
+			result.setResult(kuaiShouRegionListParent);
+			result.setSuccess(true);
+		}
+		return result;
+	}
+
+  /**
+      * 导出excel
+   *
+   * @param request
+   * @param response
+   */
+  @RequestMapping(value = "/exportXls")
+  public ModelAndView exportXls(HttpServletRequest request, HttpServletResponse response) {
+      // Step.1 组装查询条件
+      QueryWrapper<KuaiShouRegionListParent> queryWrapper = null;
+      try {
+          String paramsStr = request.getParameter("paramsStr");
+          if (oConvertUtils.isNotEmpty(paramsStr)) {
+              String deString = URLDecoder.decode(paramsStr, "UTF-8");
+              KuaiShouRegionListParent kuaiShouRegionListParent = JSON.parseObject(deString, KuaiShouRegionListParent.class);
+              queryWrapper = QueryGenerator.initQueryWrapper(kuaiShouRegionListParent, request.getParameterMap());
+          }
+      } catch (UnsupportedEncodingException e) {
+          e.printStackTrace();
+      }
+
+      //Step.2 AutoPoi 导出Excel
+      ModelAndView mv = new ModelAndView(new JeecgEntityExcelView());
+      List<KuaiShouRegionListParent> pageList = kuaiShouRegionListParentService.list(queryWrapper);
+      //导出文件名称
+      mv.addObject(NormalExcelConstants.FILE_NAME, "快手-父级地域列表");
+      mv.addObject(NormalExcelConstants.CLASS, KuaiShouRegionListParent.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<KuaiShouRegionListParent> listKuaiShouRegionListParents = ExcelImportUtil.importExcel(file.getInputStream(), KuaiShouRegionListParent.class, params);
+              kuaiShouRegionListParentService.saveBatch(listKuaiShouRegionListParents);
+              return Result.ok("文件导入成功!数据行数:" + listKuaiShouRegionListParents.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("文件导入失败!");
+  }
+
+}

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

@@ -0,0 +1,244 @@
+package org.jeecg.modules.kuaishou.controller;
+
+import java.util.Arrays;
+import java.util.List;
+import java.util.Map;
+import java.io.IOException;
+import java.io.UnsupportedEncodingException;
+import java.net.URLDecoder;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import org.jeecg.common.api.vo.Result;
+import org.jeecg.common.system.query.QueryGenerator;
+import org.jeecg.common.aspect.annotation.AutoLog;
+import org.jeecg.common.util.oConvertUtils;
+import org.jeecg.modules.kuaishou.entity.KuaiShouSchedule;
+import org.jeecg.modules.kuaishou.service.IKuaiShouScheduleService;
+import java.util.Date;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import lombok.extern.slf4j.Slf4j;
+
+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 com.alibaba.fastjson.JSON;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+
+ /**
+ * @Description: 广告组-时间段范围
+ * @Author: jeecg-boot
+ * @Date:   2019-07-24
+ * @Version: V1.0
+ */
+@Slf4j
+@Api(tags="广告组-时间段范围")
+@RestController
+@RequestMapping("/kuaishou/kuaiShouSchedule")
+public class KuaiShouScheduleController {
+	@Autowired
+	private IKuaiShouScheduleService kuaiShouScheduleService;
+	
+	/**
+	  * 分页列表查询
+	 * @param kuaiShouSchedule
+	 * @param pageNo
+	 * @param pageSize
+	 * @param req
+	 * @return
+	 */
+	@AutoLog(value = "广告组-时间段范围-分页列表查询")
+	@ApiOperation(value="广告组-时间段范围-分页列表查询", notes="广告组-时间段范围-分页列表查询")
+	@GetMapping(value = "/list")
+	public Result<IPage<KuaiShouSchedule>> queryPageList(KuaiShouSchedule kuaiShouSchedule,
+									  @RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
+									  @RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
+									  HttpServletRequest req) {
+		Result<IPage<KuaiShouSchedule>> result = new Result<IPage<KuaiShouSchedule>>();
+		QueryWrapper<KuaiShouSchedule> queryWrapper = QueryGenerator.initQueryWrapper(kuaiShouSchedule, req.getParameterMap());
+		Page<KuaiShouSchedule> page = new Page<KuaiShouSchedule>(pageNo, pageSize);
+		IPage<KuaiShouSchedule> pageList = kuaiShouScheduleService.page(page, queryWrapper);
+		result.setSuccess(true);
+		result.setResult(pageList);
+		return result;
+	}
+	
+	/**
+	  *   添加
+	 * @param kuaiShouSchedule
+	 * @return
+	 */
+	@AutoLog(value = "广告组-时间段范围-添加")
+	@ApiOperation(value="广告组-时间段范围-添加", notes="广告组-时间段范围-添加")
+	@PostMapping(value = "/add")
+	public Result<KuaiShouSchedule> add(@RequestBody KuaiShouSchedule kuaiShouSchedule) {
+		Result<KuaiShouSchedule> result = new Result<KuaiShouSchedule>();
+		try {
+			kuaiShouScheduleService.save(kuaiShouSchedule);
+			result.success("添加成功!");
+		} catch (Exception e) {
+			log.error(e.getMessage(),e);
+			result.error500("操作失败");
+		}
+		return result;
+	}
+	
+	/**
+	  *  编辑
+	 * @param kuaiShouSchedule
+	 * @return
+	 */
+	@AutoLog(value = "广告组-时间段范围-编辑")
+	@ApiOperation(value="广告组-时间段范围-编辑", notes="广告组-时间段范围-编辑")
+	@PutMapping(value = "/edit")
+	public Result<KuaiShouSchedule> edit(@RequestBody KuaiShouSchedule kuaiShouSchedule) {
+		Result<KuaiShouSchedule> result = new Result<KuaiShouSchedule>();
+		KuaiShouSchedule kuaiShouScheduleEntity = kuaiShouScheduleService.getById(kuaiShouSchedule.getId());
+		if(kuaiShouScheduleEntity==null) {
+			result.error500("未找到对应实体");
+		}else {
+			boolean ok = kuaiShouScheduleService.updateById(kuaiShouSchedule);
+			//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 {
+			kuaiShouScheduleService.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<KuaiShouSchedule> deleteBatch(@RequestParam(name="ids",required=true) String ids) {
+		Result<KuaiShouSchedule> result = new Result<KuaiShouSchedule>();
+		if(ids==null || "".equals(ids.trim())) {
+			result.error500("参数不识别!");
+		}else {
+			this.kuaiShouScheduleService.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<KuaiShouSchedule> queryById(@RequestParam(name="id",required=true) String id) {
+		Result<KuaiShouSchedule> result = new Result<KuaiShouSchedule>();
+		KuaiShouSchedule kuaiShouSchedule = kuaiShouScheduleService.getById(id);
+		if(kuaiShouSchedule==null) {
+			result.error500("未找到对应实体");
+		}else {
+			result.setResult(kuaiShouSchedule);
+			result.setSuccess(true);
+		}
+		return result;
+	}
+
+  /**
+      * 导出excel
+   *
+   * @param request
+   * @param response
+   */
+  @RequestMapping(value = "/exportXls")
+  public ModelAndView exportXls(HttpServletRequest request, HttpServletResponse response) {
+      // Step.1 组装查询条件
+      QueryWrapper<KuaiShouSchedule> queryWrapper = null;
+      try {
+          String paramsStr = request.getParameter("paramsStr");
+          if (oConvertUtils.isNotEmpty(paramsStr)) {
+              String deString = URLDecoder.decode(paramsStr, "UTF-8");
+              KuaiShouSchedule kuaiShouSchedule = JSON.parseObject(deString, KuaiShouSchedule.class);
+              queryWrapper = QueryGenerator.initQueryWrapper(kuaiShouSchedule, request.getParameterMap());
+          }
+      } catch (UnsupportedEncodingException e) {
+          e.printStackTrace();
+      }
+
+      //Step.2 AutoPoi 导出Excel
+      ModelAndView mv = new ModelAndView(new JeecgEntityExcelView());
+      List<KuaiShouSchedule> pageList = kuaiShouScheduleService.list(queryWrapper);
+      //导出文件名称
+      mv.addObject(NormalExcelConstants.FILE_NAME, "广告组-时间段范围列表");
+      mv.addObject(NormalExcelConstants.CLASS, KuaiShouSchedule.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<KuaiShouSchedule> listKuaiShouSchedules = ExcelImportUtil.importExcel(file.getInputStream(), KuaiShouSchedule.class, params);
+              kuaiShouScheduleService.saveBatch(listKuaiShouSchedules);
+              return Result.ok("文件导入成功!数据行数:" + listKuaiShouSchedules.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("文件导入失败!");
+  }
+
+}

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

@@ -0,0 +1,244 @@
+package org.jeecg.modules.kuaishou.controller;
+
+import java.util.Arrays;
+import java.util.List;
+import java.util.Map;
+import java.io.IOException;
+import java.io.UnsupportedEncodingException;
+import java.net.URLDecoder;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import org.jeecg.common.api.vo.Result;
+import org.jeecg.common.system.query.QueryGenerator;
+import org.jeecg.common.aspect.annotation.AutoLog;
+import org.jeecg.common.util.oConvertUtils;
+import org.jeecg.modules.kuaishou.entity.KuaiShouVideoGet;
+import org.jeecg.modules.kuaishou.service.IKuaiShouVideoGetService;
+import java.util.Date;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import lombok.extern.slf4j.Slf4j;
+
+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 com.alibaba.fastjson.JSON;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+
+ /**
+ * @Description: 快手-获取视频接口
+ * @Author: jeecg-boot
+ * @Date:   2019-07-25
+ * @Version: V1.0
+ */
+@Slf4j
+@Api(tags="快手-获取视频接口")
+@RestController
+@RequestMapping("/kuaishou/kuaiShouVideoGet")
+public class KuaiShouVideoGetController {
+	@Autowired
+	private IKuaiShouVideoGetService kuaiShouVideoGetService;
+	
+	/**
+	  * 分页列表查询
+	 * @param kuaiShouVideoGet
+	 * @param pageNo
+	 * @param pageSize
+	 * @param req
+	 * @return
+	 */
+	@AutoLog(value = "快手-获取视频接口-分页列表查询")
+	@ApiOperation(value="快手-获取视频接口-分页列表查询", notes="快手-获取视频接口-分页列表查询")
+	@GetMapping(value = "/list")
+	public Result<IPage<KuaiShouVideoGet>> queryPageList(KuaiShouVideoGet kuaiShouVideoGet,
+									  @RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
+									  @RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
+									  HttpServletRequest req) {
+		Result<IPage<KuaiShouVideoGet>> result = new Result<IPage<KuaiShouVideoGet>>();
+		QueryWrapper<KuaiShouVideoGet> queryWrapper = QueryGenerator.initQueryWrapper(kuaiShouVideoGet, req.getParameterMap());
+		Page<KuaiShouVideoGet> page = new Page<KuaiShouVideoGet>(pageNo, pageSize);
+		IPage<KuaiShouVideoGet> pageList = kuaiShouVideoGetService.page(page, queryWrapper);
+		result.setSuccess(true);
+		result.setResult(pageList);
+		return result;
+	}
+	
+	/**
+	  *   添加
+	 * @param kuaiShouVideoGet
+	 * @return
+	 */
+	@AutoLog(value = "快手-获取视频接口-添加")
+	@ApiOperation(value="快手-获取视频接口-添加", notes="快手-获取视频接口-添加")
+	@PostMapping(value = "/add")
+	public Result<KuaiShouVideoGet> add(@RequestBody KuaiShouVideoGet kuaiShouVideoGet) {
+		Result<KuaiShouVideoGet> result = new Result<KuaiShouVideoGet>();
+		try {
+			kuaiShouVideoGetService.save(kuaiShouVideoGet);
+			result.success("添加成功!");
+		} catch (Exception e) {
+			log.error(e.getMessage(),e);
+			result.error500("操作失败");
+		}
+		return result;
+	}
+	
+	/**
+	  *  编辑
+	 * @param kuaiShouVideoGet
+	 * @return
+	 */
+	@AutoLog(value = "快手-获取视频接口-编辑")
+	@ApiOperation(value="快手-获取视频接口-编辑", notes="快手-获取视频接口-编辑")
+	@PutMapping(value = "/edit")
+	public Result<KuaiShouVideoGet> edit(@RequestBody KuaiShouVideoGet kuaiShouVideoGet) {
+		Result<KuaiShouVideoGet> result = new Result<KuaiShouVideoGet>();
+		KuaiShouVideoGet kuaiShouVideoGetEntity = kuaiShouVideoGetService.getById(kuaiShouVideoGet.getId());
+		if(kuaiShouVideoGetEntity==null) {
+			result.error500("未找到对应实体");
+		}else {
+			boolean ok = kuaiShouVideoGetService.updateById(kuaiShouVideoGet);
+			//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 {
+			kuaiShouVideoGetService.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<KuaiShouVideoGet> deleteBatch(@RequestParam(name="ids",required=true) String ids) {
+		Result<KuaiShouVideoGet> result = new Result<KuaiShouVideoGet>();
+		if(ids==null || "".equals(ids.trim())) {
+			result.error500("参数不识别!");
+		}else {
+			this.kuaiShouVideoGetService.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<KuaiShouVideoGet> queryById(@RequestParam(name="id",required=true) String id) {
+		Result<KuaiShouVideoGet> result = new Result<KuaiShouVideoGet>();
+		KuaiShouVideoGet kuaiShouVideoGet = kuaiShouVideoGetService.getById(id);
+		if(kuaiShouVideoGet==null) {
+			result.error500("未找到对应实体");
+		}else {
+			result.setResult(kuaiShouVideoGet);
+			result.setSuccess(true);
+		}
+		return result;
+	}
+
+  /**
+      * 导出excel
+   *
+   * @param request
+   * @param response
+   */
+  @RequestMapping(value = "/exportXls")
+  public ModelAndView exportXls(HttpServletRequest request, HttpServletResponse response) {
+      // Step.1 组装查询条件
+      QueryWrapper<KuaiShouVideoGet> queryWrapper = null;
+      try {
+          String paramsStr = request.getParameter("paramsStr");
+          if (oConvertUtils.isNotEmpty(paramsStr)) {
+              String deString = URLDecoder.decode(paramsStr, "UTF-8");
+              KuaiShouVideoGet kuaiShouVideoGet = JSON.parseObject(deString, KuaiShouVideoGet.class);
+              queryWrapper = QueryGenerator.initQueryWrapper(kuaiShouVideoGet, request.getParameterMap());
+          }
+      } catch (UnsupportedEncodingException e) {
+          e.printStackTrace();
+      }
+
+      //Step.2 AutoPoi 导出Excel
+      ModelAndView mv = new ModelAndView(new JeecgEntityExcelView());
+      List<KuaiShouVideoGet> pageList = kuaiShouVideoGetService.list(queryWrapper);
+      //导出文件名称
+      mv.addObject(NormalExcelConstants.FILE_NAME, "快手-获取视频接口列表");
+      mv.addObject(NormalExcelConstants.CLASS, KuaiShouVideoGet.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<KuaiShouVideoGet> listKuaiShouVideoGets = ExcelImportUtil.importExcel(file.getInputStream(), KuaiShouVideoGet.class, params);
+              kuaiShouVideoGetService.saveBatch(listKuaiShouVideoGets);
+              return Result.ok("文件导入成功!数据行数:" + listKuaiShouVideoGets.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("文件导入失败!");
+  }
+
+}

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

@@ -0,0 +1,244 @@
+package org.jeecg.modules.kuaishou.controller;
+
+import java.util.Arrays;
+import java.util.List;
+import java.util.Map;
+import java.io.IOException;
+import java.io.UnsupportedEncodingException;
+import java.net.URLDecoder;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import org.jeecg.common.api.vo.Result;
+import org.jeecg.common.system.query.QueryGenerator;
+import org.jeecg.common.aspect.annotation.AutoLog;
+import org.jeecg.common.util.oConvertUtils;
+import org.jeecg.modules.kuaishou.entity.KuaiShouVideoUpload;
+import org.jeecg.modules.kuaishou.service.IKuaiShouVideoUploadService;
+import java.util.Date;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import lombok.extern.slf4j.Slf4j;
+
+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 com.alibaba.fastjson.JSON;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+
+ /**
+ * @Description: 快手-视频上传
+ * @Author: jeecg-boot
+ * @Date:   2019-07-26
+ * @Version: V1.0
+ */
+@Slf4j
+@Api(tags="快手-视频上传")
+@RestController
+@RequestMapping("/kuaishou/kuaiShouVideoUpload")
+public class KuaiShouVideoUploadController {
+	@Autowired
+	private IKuaiShouVideoUploadService kuaiShouVideoUploadService;
+	
+	/**
+	  * 分页列表查询
+	 * @param kuaiShouVideoUpload
+	 * @param pageNo
+	 * @param pageSize
+	 * @param req
+	 * @return
+	 */
+	@AutoLog(value = "快手-视频上传-分页列表查询")
+	@ApiOperation(value="快手-视频上传-分页列表查询", notes="快手-视频上传-分页列表查询")
+	@GetMapping(value = "/list")
+	public Result<IPage<KuaiShouVideoUpload>> queryPageList(KuaiShouVideoUpload kuaiShouVideoUpload,
+									  @RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
+									  @RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
+									  HttpServletRequest req) {
+		Result<IPage<KuaiShouVideoUpload>> result = new Result<IPage<KuaiShouVideoUpload>>();
+		QueryWrapper<KuaiShouVideoUpload> queryWrapper = QueryGenerator.initQueryWrapper(kuaiShouVideoUpload, req.getParameterMap());
+		Page<KuaiShouVideoUpload> page = new Page<KuaiShouVideoUpload>(pageNo, pageSize);
+		IPage<KuaiShouVideoUpload> pageList = kuaiShouVideoUploadService.page(page, queryWrapper);
+		result.setSuccess(true);
+		result.setResult(pageList);
+		return result;
+	}
+	
+	/**
+	  *   添加
+	 * @param kuaiShouVideoUpload
+	 * @return
+	 */
+	@AutoLog(value = "快手-视频上传-添加")
+	@ApiOperation(value="快手-视频上传-添加", notes="快手-视频上传-添加")
+	@PostMapping(value = "/add")
+	public Result<KuaiShouVideoUpload> add(@RequestBody KuaiShouVideoUpload kuaiShouVideoUpload) {
+		Result<KuaiShouVideoUpload> result = new Result<KuaiShouVideoUpload>();
+		try {
+			kuaiShouVideoUploadService.save(kuaiShouVideoUpload);
+			result.success("添加成功!");
+		} catch (Exception e) {
+			log.error(e.getMessage(),e);
+			result.error500("操作失败");
+		}
+		return result;
+	}
+	
+	/**
+	  *  编辑
+	 * @param kuaiShouVideoUpload
+	 * @return
+	 */
+	@AutoLog(value = "快手-视频上传-编辑")
+	@ApiOperation(value="快手-视频上传-编辑", notes="快手-视频上传-编辑")
+	@PutMapping(value = "/edit")
+	public Result<KuaiShouVideoUpload> edit(@RequestBody KuaiShouVideoUpload kuaiShouVideoUpload) {
+		Result<KuaiShouVideoUpload> result = new Result<KuaiShouVideoUpload>();
+		KuaiShouVideoUpload kuaiShouVideoUploadEntity = kuaiShouVideoUploadService.getById(kuaiShouVideoUpload.getId());
+		if(kuaiShouVideoUploadEntity==null) {
+			result.error500("未找到对应实体");
+		}else {
+			boolean ok = kuaiShouVideoUploadService.updateById(kuaiShouVideoUpload);
+			//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 {
+			kuaiShouVideoUploadService.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<KuaiShouVideoUpload> deleteBatch(@RequestParam(name="ids",required=true) String ids) {
+		Result<KuaiShouVideoUpload> result = new Result<KuaiShouVideoUpload>();
+		if(ids==null || "".equals(ids.trim())) {
+			result.error500("参数不识别!");
+		}else {
+			this.kuaiShouVideoUploadService.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<KuaiShouVideoUpload> queryById(@RequestParam(name="id",required=true) String id) {
+		Result<KuaiShouVideoUpload> result = new Result<KuaiShouVideoUpload>();
+		KuaiShouVideoUpload kuaiShouVideoUpload = kuaiShouVideoUploadService.getById(id);
+		if(kuaiShouVideoUpload==null) {
+			result.error500("未找到对应实体");
+		}else {
+			result.setResult(kuaiShouVideoUpload);
+			result.setSuccess(true);
+		}
+		return result;
+	}
+
+  /**
+      * 导出excel
+   *
+   * @param request
+   * @param response
+   */
+  @RequestMapping(value = "/exportXls")
+  public ModelAndView exportXls(HttpServletRequest request, HttpServletResponse response) {
+      // Step.1 组装查询条件
+      QueryWrapper<KuaiShouVideoUpload> queryWrapper = null;
+      try {
+          String paramsStr = request.getParameter("paramsStr");
+          if (oConvertUtils.isNotEmpty(paramsStr)) {
+              String deString = URLDecoder.decode(paramsStr, "UTF-8");
+              KuaiShouVideoUpload kuaiShouVideoUpload = JSON.parseObject(deString, KuaiShouVideoUpload.class);
+              queryWrapper = QueryGenerator.initQueryWrapper(kuaiShouVideoUpload, request.getParameterMap());
+          }
+      } catch (UnsupportedEncodingException e) {
+          e.printStackTrace();
+      }
+
+      //Step.2 AutoPoi 导出Excel
+      ModelAndView mv = new ModelAndView(new JeecgEntityExcelView());
+      List<KuaiShouVideoUpload> pageList = kuaiShouVideoUploadService.list(queryWrapper);
+      //导出文件名称
+      mv.addObject(NormalExcelConstants.FILE_NAME, "快手-视频上传列表");
+      mv.addObject(NormalExcelConstants.CLASS, KuaiShouVideoUpload.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<KuaiShouVideoUpload> listKuaiShouVideoUploads = ExcelImportUtil.importExcel(file.getInputStream(), KuaiShouVideoUpload.class, params);
+              kuaiShouVideoUploadService.saveBatch(listKuaiShouVideoUploads);
+              return Result.ok("文件导入成功!数据行数:" + listKuaiShouVideoUploads.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("文件导入失败!");
+  }
+
+}

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

@@ -0,0 +1,118 @@
+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-26
+ * @Version: V1.0
+ */
+@Data
+@TableName("ctop_kuaishou_app_create")
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@ApiModel(value = "ctop_kuaishou_app_create对象", description = "创建应用")
+public class KuaiShouAppCreate {
+
+    /**
+     * id
+     */
+    @TableId(type = IdType.AUTO)
+    @ApiModelProperty(value = "id")
+    private Long id;
+    /**
+     * 账户ID
+     */
+    @Excel(name = "账户ID", width = 15)
+    @ApiModelProperty(value = "账户ID")
+    private Long accountId;
+    /**
+     * 本地存储地址
+     */
+    @Excel(name = "本地存储地址", width = 15)
+    @ApiModelProperty(value = "本地存储地址")
+    private Object savaPath;
+    /**
+     * 上传应用地址
+     */
+    @Excel(name = "上传应用地址", width = 15)
+    @ApiModelProperty(value = "上传应用地址")
+    private Object url;
+    /**
+     * 应用标记
+     */
+    @Excel(name = "应用标记", width = 15)
+    @ApiModelProperty(value = "应用标记")
+    private String appVersion;
+    /**
+     * 应用名称
+     */
+    @Excel(name = "应用名称", width = 15)
+    @ApiModelProperty(value = "应用名称")
+    private String appName;
+    /**
+     * 图片token
+     */
+    @Excel(name = "图片token", width = 15)
+    @ApiModelProperty(value = "图片token")
+    private Object imageToken;
+    /**
+     * 应用包名
+     */
+    @Excel(name = "应用包名", width = 15)
+    @ApiModelProperty(value = "应用包名")
+    private String packageName;
+    /**
+     * 应用类型 1: Android 应用下载,2: Android 网页游戏,3: iOS 应用下载, 4:iOS 网页游戏
+     */
+    @Excel(name = "应用类型 1: Android 应用下载,2: Android 网页游戏,3: iOS 应用下载, 4:iOS 网页游戏", width = 15)
+    @ApiModelProperty(value = "应用类型 1: Android 应用下载,2: Android 网页游戏,3: iOS 应用下载, 4:iOS 网页游戏")
+    private Integer platform;
+    /**
+     * 请求成功后 返回应用地址
+     */
+    @Excel(name = "请求成功后 返回应用地址", width = 15)
+    @ApiModelProperty(value = "请求成功后 返回应用地址")
+    private Object returnUrl;
+    /**
+     * 应用id
+     */
+    @Excel(name = "应用id", width = 15)
+    @ApiModelProperty(value = "应用id")
+    private Long appId;
+    /**
+     * 文件上传时间
+     */
+    @Excel(name = "文件上传时间", width = 15)
+    @ApiModelProperty(value = "文件上传时间")
+    private String uploadTime;
+    /**
+     * 创建时间
+     */
+    @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;
+}

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

@@ -0,0 +1,112 @@
+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-26
+ * @Version: V1.0
+ */
+@Data
+@TableName("ctop_kuaishou_app_list")
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@ApiModel(value = "ctop_kuaishou_app_list对象", description = "快手-应用列表")
+public class KuaiShouAppList {
+
+    /**
+     * 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 appId;
+    /**
+     * 应用地址
+     */
+    @Excel(name = "应用地址", width = 15)
+    @ApiModelProperty(value = "应用地址")
+    private Object url;
+    /**
+     * 应用标记
+     */
+    @Excel(name = "应用标记", width = 15)
+    @ApiModelProperty(value = "应用标记")
+    private String appVersion;
+    /**
+     * 应用名称
+     */
+    @Excel(name = "应用名称", width = 15)
+    @ApiModelProperty(value = "应用名称")
+    private String appName;
+    /**
+     * 应用图标链接地址
+     */
+    @Excel(name = "应用图标链接地址", width = 15)
+    @ApiModelProperty(value = "应用图标链接地址")
+    private Object appIconUrl;
+    /**
+     * 图片token
+     */
+    @Excel(name = "图片token", width = 15)
+    @ApiModelProperty(value = "图片token")
+    private Object imageToken;
+    /**
+     * 应用包名
+     */
+    @Excel(name = "应用包名", width = 15)
+    @ApiModelProperty(value = "应用包名")
+    private String packageName;
+    /**
+     * 应用类型 1: Android 应用下载,2: Android 网页游戏,3: iOS 应用下载, 4:iOS 网页游戏
+     */
+    @Excel(name = "应用类型 1: Android 应用下载,2: Android 网页游戏,3: iOS 应用下载, 4:iOS 网页游戏", width = 15)
+    @ApiModelProperty(value = "应用类型 1: Android 应用下载,2: Android 网页游戏,3: iOS 应用下载, 4:iOS 网页游戏")
+    private Integer platform;
+    /**
+     * 返回修改时间
+     */
+    @Excel(name = "返回修改时间", width = 15)
+    @ApiModelProperty(value = "返回修改时间")
+    private String returnTime;
+    /**
+     * 创建时间
+     */
+    @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;
+}

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

@@ -0,0 +1,59 @@
+package org.jeecg.modules.kuaishou.entity;
+
+import java.io.Serializable;
+import java.util.Date;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.annotation.TableField;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import org.springframework.format.annotation.DateTimeFormat;
+import org.jeecgframework.poi.excel.annotation.Excel;
+
+/**
+ * @Description: 快手-可选深度转化类型
+ * @Author: jeecg-boot
+ * @Date:   2019-07-24
+ * @Version: V1.0
+ */
+@Data
+@TableName("ctop_kuaishou_conversion_infos")
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@ApiModel(value="ctop_kuaishou_conversion_infos对象", description="快手-可选深度转化类型")
+public class KuaiShouConversionInfos {
+    
+	/**id*/
+	@TableId(type = IdType.AUTO)
+    @ApiModelProperty(value = "id")
+	private Long id;
+	/**账户ID*/
+	@Excel(name = "账户ID", width = 15)
+    @ApiModelProperty(value = "账户ID")
+	private Long accountId;
+	/**是否有激活出价权限 0:没有 1:有*/
+	@Excel(name = "是否有激活出价权限 0:没有 1:有", width = 15)
+    @ApiModelProperty(value = "是否有激活出价权限 0:没有 1:有")
+	private Integer isActivate;
+	/**isFormSubmit*/
+	@Excel(name = "isFormSubmit", width = 15)
+    @ApiModelProperty(value = "isFormSubmit")
+	private Integer isFormSubmit;
+	/**创建时间*/
+	@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;
+}

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

@@ -0,0 +1,72 @@
+package org.jeecg.modules.kuaishou.entity;
+
+import java.io.Serializable;
+import java.util.Date;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.annotation.TableField;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import org.springframework.format.annotation.DateTimeFormat;
+import org.jeecgframework.poi.excel.annotation.Excel;
+
+/**
+ * @Description: 快手-可选深度转化类型-详情
+ * @Author: jeecg-boot
+ * @Date: 2019-07-24
+ * @Version: V1.0
+ */
+@Data
+@TableName("ctop_kuaishou_conversion_types")
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@ApiModel(value = "ctop_kuaishou_conversion_types对象", description = "快手-可选深度转化类型-详情")
+public class KuaiShouConversionTypes {
+
+    /**
+     * id
+     */
+    @TableId(type = IdType.AUTO)
+    @ApiModelProperty(value = "id")
+    private Long id;
+    /**
+     * 账户ID
+     */
+    @Excel(name = "账户ID", width = 15)
+    @ApiModelProperty(value = "账户ID")
+    private Long accountId;
+    /**
+     * 深度转化类型
+     */
+    @Excel(name = "深度转化类型", width = 15)
+    @ApiModelProperty(value = "深度转化类型")
+    private Integer deepConversionTypes;
+    /**
+     * 深度转化类型描述
+     */
+    @Excel(name = "深度转化类型描述", width = 15)
+    @ApiModelProperty(value = "深度转化类型描述")
+    private String desc;
+    /**
+     * 创建时间
+     */
+    @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;
+}

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

@@ -0,0 +1,106 @@
+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_creative_create")
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@ApiModel(value = "ctop_kuaishou_creative_create对象", description = "快手-创建创意信息")
+public class KuaiShouCreativeCreate {
+
+    /**
+     * id
+     */
+    @TableId(type = IdType.UUID)
+    @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 unitId;
+    /**
+     * 广告创意名称
+     */
+    @Excel(name = "广告创意名称", width = 15)
+    @ApiModelProperty(value = "广告创意名称")
+    private String creativeName;
+    /**
+     * 视频作品ID
+     */
+    @Excel(name = "视频作品ID", width = 15)
+    @ApiModelProperty(value = "视频作品ID")
+    private String photoId;
+    /**
+     * 封面图片token
+     */
+    @Excel(name = "封面图片token", width = 15)
+    @ApiModelProperty(value = "封面图片token")
+    private String imageToken;
+    /**
+     * 行动号召按钮文案
+     */
+    @Excel(name = "行动号召按钮文案", width = 15)
+    @ApiModelProperty(value = "行动号召按钮文案")
+    private String actionBarText;
+    /**
+     * 广告语
+     */
+    @Excel(name = "广告语", width = 15)
+    @ApiModelProperty(value = "广告语")
+    private String description;
+    /**
+     * 点击测试链接
+     */
+    @Excel(name = "点击测试链接", width = 15)
+    @ApiModelProperty(value = "点击测试链接")
+    private String clickTrackUrl;
+    /**
+     * 广告创意ID
+     */
+    @Excel(name = "广告创意ID", width = 15)
+    @ApiModelProperty(value = "广告创意ID")
+    private Long creativeId;
+    /**
+     * 创建时间
+     */
+    @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;
+}

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

@@ -0,0 +1,166 @@
+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;
+}

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

@@ -0,0 +1,124 @@
+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_target")
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@ApiModel(value = "ctop_kuaishou_group_create_target对象", description = "快手-创建广告组定向信息")
+public class KuaiShouGroupCreateTarget {
+
+    /**
+     * 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 unitId;
+    /**
+     * 地域
+     */
+    @Excel(name = "地域", width = 15)
+    @ApiModelProperty(value = "地域")
+    private Object region;
+    /**
+     * 年龄最小限制
+     */
+    @Excel(name = "年龄最小限制", width = 15)
+    @ApiModelProperty(value = "年龄最小限制")
+    private Integer ageMin;
+    /**
+     * 年龄最大限制
+     */
+    @Excel(name = "年龄最大限制", width = 15)
+    @ApiModelProperty(value = "年龄最大限制")
+    private Integer ageMax;
+    /**
+     * 性别 1:女性, 2:男性, 0:不限
+     */
+    @Excel(name = "性别 1:女性, 2:男性, 0:不限", width = 15)
+    @ApiModelProperty(value = "性别 1:女性, 2:男性, 0:不限")
+    private Integer gender;
+    /**
+     * 操作系统 1: Android, 2: iOS, 0:不限
+     */
+    @Excel(name = "操作系统 1: Android, 2: iOS, 0:不限", width = 15)
+    @ApiModelProperty(value = "操作系统 1: Android, 2: iOS, 0:不限")
+    private Integer platformOs;
+    /**
+     * 安卓版本  3:不限, 4: 4.x+, 5: 5.x+, 6: 6.x+, 7: 7.x+;
+     */
+    @Excel(name = "安卓版本  3:不限, 4: 4.x+, 5: 5.x+, 6: 6.x+, 7: 7.x+;", width = 15)
+    @ApiModelProperty(value = "安卓版本  3:不限, 4: 4.x+, 5: 5.x+, 6: 6.x+, 7: 7.x+;")
+    private Integer androidOsv;
+    /**
+     * ios版本  6:不限, 7: 7.x+, 8: 8.x+,9: 9.x+, 10: 10.x+
+     */
+    @Excel(name = "ios版本  6:不限, 7: 7.x+, 8: 8.x+,9: 9.x+, 10: 10.x+", width = 15)
+    @ApiModelProperty(value = "ios版本  6:不限, 7: 7.x+, 8: 8.x+,9: 9.x+, 10: 10.x+")
+    private Integer iosOsv;
+    /**
+     * 网络环境 1: Wi-Fi, 2:移动网络,0:表示不限
+     */
+    @Excel(name = "网络环境 1: Wi-Fi, 2:移动网络,0:表示不限", width = 15)
+    @ApiModelProperty(value = "网络环境 1: Wi-Fi, 2:移动网络,0:表示不限")
+    private Integer network;
+    /**
+     * 设备品牌 1: OPPO, 2: VIVO,3:华为, 4:小米,5:荣耀, 6:三星,7:金立, 8:魅族,9:乐视, 10:其他,11 : 苹 果
+     */
+    @Excel(name = "设备品牌 1: OPPO, 2: VIVO,3:华为, 4:小米,5:荣耀, 6:三星,7:金立, 8:魅族,9:乐视, 10:其他,11 : 苹 果", width = 15)
+    @ApiModelProperty(value = "设备品牌 1: OPPO, 2: VIVO,3:华为, 4:小米,5:荣耀, 6:三星,7:金立, 8:魅族,9:乐视, 10:其他,11 : 苹 果")
+    private Object deviceBrand;
+    /**
+     * 设备价格 1: 1500 元以下,2: 1501~2000,3: 2001~2500,4: 2501~3000,5: 3001~3500,6: 3501~4000,7: 4001~4500,8: 4501~5000,9: 5001~5500,10: 5500 元以上
+     */
+    @Excel(name = "设备价格 1: 1500 元以下,2: 1501~2000,3: 2001~2500,4: 2501~3000,5: 3001~3500,6: 3501~4000,7: 4001~4500,8: 4501~5000,9: 5001~5500,10: 5500 元以上", width = 15)
+    @ApiModelProperty(value = "设备价格 1: 1500 元以下,2: 1501~2000,3: 2001~2500,4: 2501~3000,5: 3001~3500,6: 3501~4000,7: 4001~4500,8: 4501~5000,9: 5001~5500,10: 5500 元以上")
+    private Object devicePrice;
+    /**
+     * 创建时间
+     */
+    @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;
+}

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

@@ -0,0 +1,94 @@
+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-25
+ * @Version: V1.0
+ */
+@Data
+@TableName("ctop_kuaishou_image_get")
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@ApiModel(value = "ctop_kuaishou_image_get对象", description = "快手-获取图片接口")
+public class KuaiShouImageGet {
+
+    /**
+     * id
+     */
+    @TableId(type = IdType.AUTO)
+    @ApiModelProperty(value = "id")
+    private Long id;
+    /**
+     * 账户ID
+     */
+    @Excel(name = "账户ID", width = 15)
+    @ApiModelProperty(value = "账户ID")
+    private Long accountId;
+    /**
+     * 视频预览链接
+     */
+    @Excel(name = "视频预览链接", width = 15)
+    @ApiModelProperty(value = "视频预览链接")
+    private Object url;
+    /**
+     * 宽
+     */
+    @Excel(name = "宽", width = 15)
+    @ApiModelProperty(value = "宽")
+    private Long width;
+    /**
+     * 高
+     */
+    @Excel(name = "高", width = 15)
+    @ApiModelProperty(value = "高")
+    private Long height;
+    /**
+     * 图片大小
+     */
+    @Excel(name = "图片大小", width = 15)
+    @ApiModelProperty(value = "图片大小")
+    private Long size;
+    /**
+     * 图片格式
+     */
+    @Excel(name = "图片格式", width = 15)
+    @ApiModelProperty(value = "图片格式")
+    private String format;
+    /**
+     * 图片 token
+     */
+    @Excel(name = "图片 token", width = 15)
+    @ApiModelProperty(value = "图片 token")
+    private Object imageToken;
+    /**
+     * 创建时间
+     */
+    @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;
+}

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

@@ -0,0 +1,106 @@
+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-26
+ * @Version: V1.0
+ */
+@Data
+@TableName("ctop_kuaishou_image_uploand")
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@ApiModel(value = "ctop_kuaishou_image_uploand对象", description = "快手-上传图片接口")
+public class KuaiShouImageUploand {
+
+    /**
+     * id
+     */
+    @TableId(type = IdType.AUTO)
+    @ApiModelProperty(value = "id")
+    private Long id;
+    /**
+     * 账户ID
+     */
+    @Excel(name = "账户ID", width = 15)
+    @ApiModelProperty(value = "账户ID")
+    private Long accountId;
+    /**
+     * 本地存储地址
+     */
+    @Excel(name = "本地存储地址", width = 15)
+    @ApiModelProperty(value = "本地存储地址")
+    private Object savaPath;
+    /**
+     * 图片预览地址
+     */
+    @Excel(name = "图片预览地址", width = 15)
+    @ApiModelProperty(value = "图片预览地址")
+    private Object url;
+    /**
+     * 宽
+     */
+    @Excel(name = "宽", width = 15)
+    @ApiModelProperty(value = "宽")
+    private Long width;
+    /**
+     * 高
+     */
+    @Excel(name = "高", width = 15)
+    @ApiModelProperty(value = "高")
+    private Long height;
+    /**
+     * 图片大小
+     */
+    @Excel(name = "图片大小", width = 15)
+    @ApiModelProperty(value = "图片大小")
+    private Long size;
+    /**
+     * 图片格式
+     */
+    @Excel(name = "图片格式", width = 15)
+    @ApiModelProperty(value = "图片格式")
+    private String format;
+    /**
+     * 图片 token
+     */
+    @Excel(name = "图片 token", width = 15)
+    @ApiModelProperty(value = "图片 token")
+    private Object imageToken;
+    /**
+     * 文件上传时间
+     */
+    @Excel(name = "文件上传时间", width = 15)
+    @ApiModelProperty(value = "文件上传时间")
+    private String uploadTime;
+    /**
+     * 创建时间
+     */
+    @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;
+}

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

@@ -0,0 +1,64 @@
+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-25
+ * @Version: V1.0
+ */
+@Data
+@TableName("ctop_kuaishou_region_list_children")
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@ApiModel(value = "ctop_kuaishou_region_list_children对象", description = "快手-子级地域")
+public class KuaiShouRegionListChildren {
+
+    /**
+     * id
+     */
+    @TableId(type = IdType.AUTO)
+    @ApiModelProperty(value = "id")
+    private Long id;
+    /**
+     * 父级地域id
+     */
+    @Excel(name = "父级地域id", width = 15)
+    @ApiModelProperty(value = "父级地域id")
+    private Long parentId;
+    /**
+     * 地域id
+     */
+    @Excel(name = "地域id", width = 15)
+    @ApiModelProperty(value = "地域id")
+    private Long regionId;
+    /**
+     * 创建时间
+     */
+    @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;
+}

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

@@ -0,0 +1,76 @@
+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-25
+ * @Version: V1.0
+ */
+@Data
+@TableName("ctop_kuaishou_region_list_parent")
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@ApiModel(value = "ctop_kuaishou_region_list_parent对象", description = "快手-父级地域")
+public class KuaiShouRegionListParent {
+
+    /**
+     * id
+     */
+    @TableId(type = IdType.AUTO)
+    @ApiModelProperty(value = "id")
+    private Long id;
+    /**
+     * 地域id
+     */
+    @Excel(name = "地域id", width = 15)
+    @ApiModelProperty(value = "地域id")
+    private Long regionId;
+    /**
+     * 父级地域
+     */
+    @Excel(name = "父级地域", width = 15)
+    @ApiModelProperty(value = "父级地域")
+    private Long parent;
+    /**
+     * 地域层级
+     */
+    @Excel(name = "地域层级", width = 15)
+    @ApiModelProperty(value = "地域层级")
+    private Integer level;
+    /**
+     * 地域名称
+     */
+    @Excel(name = "地域名称", width = 15)
+    @ApiModelProperty(value = "地域名称")
+    private String name;
+    /**
+     * 创建时间
+     */
+    @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;
+}

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

@@ -0,0 +1,100 @@
+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_schedule")
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@ApiModel(value = "ctop_kuaishou_schedule对象", description = "广告组-时间段范围")
+public class KuaiShouSchedule {
+
+    /**
+     * id
+     */
+    @TableId(type = IdType.AUTO)
+    @ApiModelProperty(value = "id")
+    private Long id;
+    /**
+     * 广告组id
+     */
+    @Excel(name = "广告组id", width = 15)
+    @ApiModelProperty(value = "广告组id")
+    private Long unitId;
+    /**
+     * 周一时间段
+     */
+    @Excel(name = "周一时间段", width = 15)
+    @ApiModelProperty(value = "周一时间段")
+    private String mon;
+    /**
+     * 周二时间段
+     */
+    @Excel(name = "周二时间段", width = 15)
+    @ApiModelProperty(value = "周二时间段")
+    private String tues;
+    /**
+     * 周三时间段
+     */
+    @Excel(name = "周三时间段", width = 15)
+    @ApiModelProperty(value = "周三时间段")
+    private String wed;
+    /**
+     * 周四时间段
+     */
+    @Excel(name = "周四时间段", width = 15)
+    @ApiModelProperty(value = "周四时间段")
+    private String thur;
+    /**
+     * 周五时间段
+     */
+    @Excel(name = "周五时间段", width = 15)
+    @ApiModelProperty(value = "周五时间段")
+    private String fri;
+    /**
+     * 周六时间段
+     */
+    @Excel(name = "周六时间段", width = 15)
+    @ApiModelProperty(value = "周六时间段")
+    private String sat;
+    /**
+     * 周日时间段
+     */
+    @Excel(name = "周日时间段", width = 15)
+    @ApiModelProperty(value = "周日时间段")
+    private String sun;
+    /**
+     * createTime
+     */
+    @Excel(name = "createTime", 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 = "createTime")
+    private Date createTime;
+    /**
+     * updateTime
+     */
+    @Excel(name = "updateTime", 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 = "updateTime")
+    private Date updateTime;
+}

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

@@ -0,0 +1,90 @@
+package org.jeecg.modules.kuaishou.entity;
+
+import java.io.Serializable;
+import java.util.Date;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.annotation.TableField;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import org.springframework.format.annotation.DateTimeFormat;
+import org.jeecgframework.poi.excel.annotation.Excel;
+
+/**
+ * @Description: 快手-获取视频接口
+ * @Author: jeecg-boot
+ * @Date: 2019-07-25
+ * @Version: V1.0
+ */
+@Data
+@TableName("ctop_kuaishou_video_get")
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@ApiModel(value = "ctop_kuaishou_video_get对象", description = "快手-获取视频接口")
+public class KuaiShouVideoGet {
+
+    /**
+     * 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 String photoId;
+    /**
+     * 宽
+     */
+    @Excel(name = "宽", width = 15)
+    @ApiModelProperty(value = "宽")
+    private Integer width;
+    /**
+     * 高
+     */
+    @Excel(name = "高", width = 15)
+    @ApiModelProperty(value = "高")
+    private Integer height;
+    /**
+     * 视频预览链接
+     */
+    @Excel(name = "视频预览链接", width = 15)
+    @ApiModelProperty(value = "视频预览链接")
+    private Object url;
+    /**
+     * 视频首帧图片链接
+     */
+    @Excel(name = "视频首帧图片链接", width = 15)
+    @ApiModelProperty(value = "视频首帧图片链接")
+    private Object coverUrl;
+    /**
+     * 创建时间
+     */
+    @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;
+}

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

@@ -0,0 +1,88 @@
+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-26
+ * @Version: V1.0
+ */
+@Data
+@TableName("ctop_kuaishou_video_upload")
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@ApiModel(value = "ctop_kuaishou_video_upload对象", description = "快手-视频上传")
+public class KuaiShouVideoUpload {
+
+    /**
+     * 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 String photoId;
+    /**
+     * 本地保存地址
+     */
+    @Excel(name = "本地保存地址", width = 15)
+    @ApiModelProperty(value = "本地保存地址")
+    private Object savaPath;
+    /**
+     * 视频大小
+     */
+    @Excel(name = "视频大小", width = 15)
+    @ApiModelProperty(value = "视频大小")
+    private String size;
+    /**
+     * 视频类型
+     */
+    @Excel(name = "视频类型", width = 15)
+    @ApiModelProperty(value = "视频类型")
+    private String type;
+    /**
+     * 视频上传时间
+     */
+    @Excel(name = "视频上传时间", width = 15)
+    @ApiModelProperty(value = "视频上传时间")
+    private String uploadTime;
+    /**
+     * 创建时间
+     */
+    @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;
+}

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

@@ -0,0 +1,14 @@
+package org.jeecg.modules.kuaishou.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.jeecg.modules.kuaishou.entity.KuaiShouAppCreate;
+
+/**
+ * @Description: 创建应用
+ * @Author: jeecg-boot
+ * @Date: 2019-07-26
+ * @Version: V1.0
+ */
+public interface KuaiShouAppCreateMapper extends BaseMapper<KuaiShouAppCreate> {
+
+}

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

@@ -0,0 +1,14 @@
+package org.jeecg.modules.kuaishou.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.jeecg.modules.kuaishou.entity.KuaiShouAppList;
+
+/**
+ * @Description: 快手-应用列表
+ * @Author: jeecg-boot
+ * @Date: 2019-07-26
+ * @Version: V1.0
+ */
+public interface KuaiShouAppListMapper extends BaseMapper<KuaiShouAppList> {
+
+}

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

@@ -0,0 +1,17 @@
+package org.jeecg.modules.kuaishou.mapper;
+
+import java.util.List;
+
+import org.apache.ibatis.annotations.Param;
+import org.jeecg.modules.kuaishou.entity.KuaiShouConversionInfos;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * @Description: 快手-可选深度转化类型
+ * @Author: jeecg-boot
+ * @Date:   2019-07-24
+ * @Version: V1.0
+ */
+public interface KuaiShouConversionInfosMapper extends BaseMapper<KuaiShouConversionInfos> {
+
+}

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

@@ -0,0 +1,14 @@
+package org.jeecg.modules.kuaishou.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.jeecg.modules.kuaishou.entity.KuaiShouConversionTypes;
+
+/**
+ * @Description: 快手-可选深度转化类型-详情
+ * @Author: jeecg-boot
+ * @Date:   2019-07-24
+ * @Version: V1.0
+ */
+public interface KuaiShouConversionTypesMapper extends BaseMapper<KuaiShouConversionTypes> {
+
+}

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

@@ -0,0 +1,17 @@
+package org.jeecg.modules.kuaishou.mapper;
+
+import java.util.List;
+
+import org.apache.ibatis.annotations.Param;
+import org.jeecg.modules.kuaishou.entity.KuaiShouCreativeCreate;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * @Description: 快手-创建创意信息
+ * @Author: jeecg-boot
+ * @Date:   2019-07-24
+ * @Version: V1.0
+ */
+public interface KuaiShouCreativeCreateMapper extends BaseMapper<KuaiShouCreativeCreate> {
+
+}

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

@@ -0,0 +1,14 @@
+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> {
+
+}

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

@@ -0,0 +1,17 @@
+package org.jeecg.modules.kuaishou.mapper;
+
+import java.util.List;
+
+import org.apache.ibatis.annotations.Param;
+import org.jeecg.modules.kuaishou.entity.KuaiShouGroupCreateTarget;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * @Description: 快手-创建广告组定向信息
+ * @Author: jeecg-boot
+ * @Date:   2019-07-24
+ * @Version: V1.0
+ */
+public interface KuaiShouGroupCreateTargetMapper extends BaseMapper<KuaiShouGroupCreateTarget> {
+
+}

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

@@ -0,0 +1,17 @@
+package org.jeecg.modules.kuaishou.mapper;
+
+import java.util.List;
+
+import org.apache.ibatis.annotations.Param;
+import org.jeecg.modules.kuaishou.entity.KuaiShouImageGet;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * @Description: 快手-获取图片接口
+ * @Author: jeecg-boot
+ * @Date:   2019-07-25
+ * @Version: V1.0
+ */
+public interface KuaiShouImageGetMapper extends BaseMapper<KuaiShouImageGet> {
+
+}

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

@@ -0,0 +1,14 @@
+package org.jeecg.modules.kuaishou.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.jeecg.modules.kuaishou.entity.KuaiShouImageUploand;
+
+/**
+ * @Description: 快手-上传图片接口
+ * @Author: jeecg-boot
+ * @Date: 2019-07-26
+ * @Version: V1.0
+ */
+public interface KuaiShouImageUploandMapper extends BaseMapper<KuaiShouImageUploand> {
+
+}

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

@@ -0,0 +1,15 @@
+package org.jeecg.modules.kuaishou.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.jeecg.modules.kuaishou.entity.KuaiShouRegionListChildren;
+
+/**
+ * @Description: 快手-子级地域
+ * @Author: jeecg-boot
+ * @Date:   2019-07-25
+ * @Version: V1.0
+ */
+public interface KuaiShouRegionListChildrenMapper extends BaseMapper<KuaiShouRegionListChildren> {
+
+    void deleteAll();
+}

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

@@ -0,0 +1,15 @@
+package org.jeecg.modules.kuaishou.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.jeecg.modules.kuaishou.entity.KuaiShouRegionListParent;
+
+/**
+ * @Description: 快手-父级地域
+ * @Author: jeecg-boot
+ * @Date: 2019-07-25
+ * @Version: V1.0
+ */
+public interface KuaiShouRegionListParentMapper extends BaseMapper<KuaiShouRegionListParent> {
+
+    void deleteAll();
+}

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

@@ -0,0 +1,14 @@
+package org.jeecg.modules.kuaishou.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.jeecg.modules.kuaishou.entity.KuaiShouSchedule;
+
+/**
+ * @Description: 广告组-时间段范围
+ * @Author: jeecg-boot
+ * @Date: 2019-07-24
+ * @Version: V1.0
+ */
+public interface KuaiShouScheduleMapper extends BaseMapper<KuaiShouSchedule> {
+
+}

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

@@ -0,0 +1,17 @@
+package org.jeecg.modules.kuaishou.mapper;
+
+import java.util.List;
+
+import org.apache.ibatis.annotations.Param;
+import org.jeecg.modules.kuaishou.entity.KuaiShouVideoGet;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * @Description: 快手-获取视频接口
+ * @Author: jeecg-boot
+ * @Date:   2019-07-25
+ * @Version: V1.0
+ */
+public interface KuaiShouVideoGetMapper extends BaseMapper<KuaiShouVideoGet> {
+
+}

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

@@ -0,0 +1,14 @@
+package org.jeecg.modules.kuaishou.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.jeecg.modules.kuaishou.entity.KuaiShouVideoUpload;
+
+/**
+ * @Description: 快手-视频上传
+ * @Author: jeecg-boot
+ * @Date:   2019-07-26
+ * @Version: V1.0
+ */
+public interface KuaiShouVideoUploadMapper extends BaseMapper<KuaiShouVideoUpload> {
+
+}

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

@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="org.jeecg.modules.kuaishou.mapper.KuaiShouAppCreateMapper">
+
+</mapper>

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

@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="org.jeecg.modules.kuaishou.mapper.KuaiShouAppListMapper">
+
+</mapper>

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

@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="org.jeecg.modules.kuaishou.mapper.KuaiShouConversionInfosMapper">
+
+</mapper>

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

@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="org.jeecg.modules.kuaishou.mapper.KuaiShouConversionTypesMapper">
+
+</mapper>

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

@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="org.jeecg.modules.kuaishou.mapper.KuaiShouCreativeCreateMapper">
+
+</mapper>

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

@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="org.jeecg.modules.kuaishou.mapper.KuaiShouGroupCreateMapper">
+
+</mapper>

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

@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="org.jeecg.modules.kuaishou.mapper.KuaiShouGroupCreateTargetMapper">
+
+</mapper>

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

@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="org.jeecg.modules.kuaishou.mapper.KuaiShouImageGetMapper">
+
+</mapper>

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

@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="org.jeecg.modules.kuaishou.mapper.KuaiShouImageUploandMapper">
+
+</mapper>

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

@@ -0,0 +1,8 @@
+<?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.KuaiShouRegionListChildrenMapper">
+    <delete id="deleteAll">
+        delete from ctop_kuaishou_region_list_children;
+    </delete>
+
+</mapper>

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

@@ -0,0 +1,7 @@
+<?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.KuaiShouRegionListParentMapper">
+<delete id="deleteAll">
+    DELETE FROM ctop_kuaishou_region_list_children;
+</delete>
+</mapper>

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

@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="org.jeecg.modules.kuaishou.mapper.KuaiShouScheduleMapper">
+
+</mapper>

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

@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="org.jeecg.modules.kuaishou.mapper.KuaiShouVideoGetMapper">
+
+</mapper>

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

@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="org.jeecg.modules.kuaishou.mapper.KuaiShouVideoUploadMapper">
+
+</mapper>

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

@@ -0,0 +1,14 @@
+package org.jeecg.modules.kuaishou.service;
+
+import org.jeecg.modules.kuaishou.entity.KuaiShouAppCreate;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ * @Description: 创建应用
+ * @Author: jeecg-boot
+ * @Date:   2019-07-26
+ * @Version: V1.0
+ */
+public interface IKuaiShouAppCreateService extends IService<KuaiShouAppCreate> {
+
+}

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

@@ -0,0 +1,14 @@
+package org.jeecg.modules.kuaishou.service;
+
+import org.jeecg.modules.kuaishou.entity.KuaiShouAppList;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ * @Description: 快手-应用列表
+ * @Author: jeecg-boot
+ * @Date:   2019-07-26
+ * @Version: V1.0
+ */
+public interface IKuaiShouAppListService extends IService<KuaiShouAppList> {
+
+}

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

@@ -0,0 +1,14 @@
+package org.jeecg.modules.kuaishou.service;
+
+import org.jeecg.modules.kuaishou.entity.KuaiShouConversionInfos;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ * @Description: 快手-可选深度转化类型
+ * @Author: jeecg-boot
+ * @Date:   2019-07-24
+ * @Version: V1.0
+ */
+public interface IKuaiShouConversionInfosService extends IService<KuaiShouConversionInfos> {
+
+}

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

@@ -0,0 +1,14 @@
+package org.jeecg.modules.kuaishou.service;
+
+import org.jeecg.modules.kuaishou.entity.KuaiShouConversionTypes;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ * @Description: 快手-可选深度转化类型-详情
+ * @Author: jeecg-boot
+ * @Date:   2019-07-24
+ * @Version: V1.0
+ */
+public interface IKuaiShouConversionTypesService extends IService<KuaiShouConversionTypes> {
+
+}

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

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

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

@@ -0,0 +1,14 @@
+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> {
+
+}

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

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

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

@@ -0,0 +1,14 @@
+package org.jeecg.modules.kuaishou.service;
+
+import org.jeecg.modules.kuaishou.entity.KuaiShouImageGet;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ * @Description: 快手-获取图片接口
+ * @Author: jeecg-boot
+ * @Date:   2019-07-25
+ * @Version: V1.0
+ */
+public interface IKuaiShouImageGetService extends IService<KuaiShouImageGet> {
+
+}

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

@@ -0,0 +1,14 @@
+package org.jeecg.modules.kuaishou.service;
+
+import org.jeecg.modules.kuaishou.entity.KuaiShouImageUploand;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ * @Description: 快手-上传图片接口
+ * @Author: jeecg-boot
+ * @Date:   2019-07-26
+ * @Version: V1.0
+ */
+public interface IKuaiShouImageUploandService extends IService<KuaiShouImageUploand> {
+
+}

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

@@ -0,0 +1,14 @@
+package org.jeecg.modules.kuaishou.service;
+
+import org.jeecg.modules.kuaishou.entity.KuaiShouRegionListChildren;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ * @Description: 快手-子级地域
+ * @Author: jeecg-boot
+ * @Date:   2019-07-25
+ * @Version: V1.0
+ */
+public interface IKuaiShouRegionListChildrenService extends IService<KuaiShouRegionListChildren> {
+
+}

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

@@ -0,0 +1,14 @@
+package org.jeecg.modules.kuaishou.service;
+
+import org.jeecg.modules.kuaishou.entity.KuaiShouRegionListParent;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ * @Description: 快手-父级地域
+ * @Author: jeecg-boot
+ * @Date:   2019-07-25
+ * @Version: V1.0
+ */
+public interface IKuaiShouRegionListParentService extends IService<KuaiShouRegionListParent> {
+
+}

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

@@ -0,0 +1,14 @@
+package org.jeecg.modules.kuaishou.service;
+
+import org.jeecg.modules.kuaishou.entity.KuaiShouSchedule;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ * @Description: 广告组-时间段范围
+ * @Author: jeecg-boot
+ * @Date:   2019-07-24
+ * @Version: V1.0
+ */
+public interface IKuaiShouScheduleService extends IService<KuaiShouSchedule> {
+
+}

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

@@ -0,0 +1,14 @@
+package org.jeecg.modules.kuaishou.service;
+
+import org.jeecg.modules.kuaishou.entity.KuaiShouVideoGet;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ * @Description: 快手-获取视频接口
+ * @Author: jeecg-boot
+ * @Date:   2019-07-25
+ * @Version: V1.0
+ */
+public interface IKuaiShouVideoGetService extends IService<KuaiShouVideoGet> {
+
+}

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

@@ -0,0 +1,14 @@
+package org.jeecg.modules.kuaishou.service;
+
+import org.jeecg.modules.kuaishou.entity.KuaiShouVideoUpload;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ * @Description: 快手-视频上传
+ * @Author: jeecg-boot
+ * @Date:   2019-07-26
+ * @Version: V1.0
+ */
+public interface IKuaiShouVideoUploadService extends IService<KuaiShouVideoUpload> {
+
+}

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

@@ -5,7 +5,10 @@ import cn.com.ctop.kuaishou.modules.material.entity.KuaishouResult;
 import cn.com.ctop.kuaishou.modules.material.entity.KuaishouResultToken;
 import cn.com.ctop.kuaishou.modules.report.entity.*;
 import com.alibaba.fastjson.JSONObject;
+import org.springframework.http.HttpRequest;
+import org.springframework.web.multipart.MultipartFile;
 
+import javax.servlet.http.HttpServletRequest;
 import java.util.Map;
 
 public interface IKuaishouInterfaceService {
@@ -41,11 +44,11 @@ public interface IKuaishouInterfaceService {
      * 创建广告组
      *
      * @param accessToken
-     * @param advertiser_id
+     * @param advertiserId
      * @param requestJson
      * @return
      */
-    Map<String, Object> adUnitCreate(String accessToken, Long advertiser_id, JSONObject requestJson);
+    Map<String, Object> adUnitCreate(String accessToken, Long advertiserId, JSONObject requestJson);
 
 
     /**
@@ -75,10 +78,112 @@ public interface IKuaishouInterfaceService {
 
     /**
      * 获取token
+     *
      * @param authCode
      * @return
      */
     KuaishouResultToken getAccessToken(String authCode);
 
+    /**
+     * 刷新token
+     *
+     * @param refreshToken
+     * @return
+     */
     KuaishouResultToken getRefreshToken(String refreshToken);
+
+
+    /**
+     * 获取可选的深度转化类型
+     *
+     * @param advertiserId
+     */
+    void getDeepConversionInfos(Long advertiserId, String accessToken);
+
+
+    /**
+     * 创建广告创意
+     *
+     * @param accessToken
+     * @param advertiserId
+     * @param requestJson
+     */
+    Map<String, Object> creativeCreate(String accessToken, Long advertiserId, JSONObject requestJson);
+
+    /**
+     * 文件上传
+     *
+     * @param advertiserId
+     * @param accessToken
+     * @param multipartFile
+     */
+    void videoUpload(Long advertiserId, String accessToken, MultipartFile multipartFile, HttpServletRequest request);
+
+    /**
+     * 获取视频
+     *
+     * @param advertiserId
+     * @param accessToken
+     * @param photoId
+     */
+    void videoGet(Long advertiserId, String accessToken, String photoId);
+
+    /**
+     * 获取图片信息
+     *
+     * @param advertiserId
+     * @param accessToken
+     * @param image_token
+     */
+    void imageGet(Long advertiserId, String accessToken, String image_token);
+
+    /**
+     * 获取 地域列表
+     *
+     * @param accessToken
+     */
+    void areaList(String accessToken);
+
+
+    /**
+     * 图片上传
+     *
+     * @param advertiserId
+     * @param accessToken
+     * @param multipartFile
+     * @param request
+     */
+    void imageUpload(Long advertiserId, String accessToken, MultipartFile multipartFile, HttpServletRequest request);
+
+
+    /**
+     * 创建应用
+     *
+     * @param advertiserId
+     * @param accessToken
+     * @param multipartFile
+     * @param request
+     */
+    void appCreate(Long advertiserId, String accessToken, MultipartFile multipartFile, HttpServletRequest request);
+
+
+    /**
+     * 获取应用列表
+     *
+     * @param advertiserId
+     * @param accessToken
+     */
+    void getAppList(Long advertiserId, String accessToken);
+
+    /**
+     * 文件上传 发送请求
+     *
+     * @param url
+     * @param paramMap
+     * @param headerMap
+     * @param filePath
+     */
+    String exceptInfoForRestTemplate(String url, Map<String, Object> paramMap, Map<String, String> headerMap, String filePath);
+
+
 }

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

@@ -0,0 +1,19 @@
+package org.jeecg.modules.kuaishou.service.impl;
+
+import org.jeecg.modules.kuaishou.entity.KuaiShouAppCreate;
+import org.jeecg.modules.kuaishou.mapper.KuaiShouAppCreateMapper;
+import org.jeecg.modules.kuaishou.service.IKuaiShouAppCreateService;
+import org.springframework.stereotype.Service;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+
+/**
+ * @Description: 创建应用
+ * @Author: jeecg-boot
+ * @Date:   2019-07-26
+ * @Version: V1.0
+ */
+@Service
+public class KuaiShouAppCreateServiceImpl extends ServiceImpl<KuaiShouAppCreateMapper, KuaiShouAppCreate> implements IKuaiShouAppCreateService {
+
+}

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

@@ -0,0 +1,19 @@
+package org.jeecg.modules.kuaishou.service.impl;
+
+import org.jeecg.modules.kuaishou.entity.KuaiShouAppList;
+import org.jeecg.modules.kuaishou.mapper.KuaiShouAppListMapper;
+import org.jeecg.modules.kuaishou.service.IKuaiShouAppListService;
+import org.springframework.stereotype.Service;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+
+/**
+ * @Description: 快手-应用列表
+ * @Author: jeecg-boot
+ * @Date:   2019-07-26
+ * @Version: V1.0
+ */
+@Service
+public class KuaiShouAppListServiceImpl extends ServiceImpl<KuaiShouAppListMapper, KuaiShouAppList> implements IKuaiShouAppListService {
+
+}

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

@@ -0,0 +1,18 @@
+package org.jeecg.modules.kuaishou.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.jeecg.modules.kuaishou.entity.KuaiShouConversionInfos;
+import org.jeecg.modules.kuaishou.mapper.KuaiShouConversionInfosMapper;
+import org.jeecg.modules.kuaishou.service.IKuaiShouConversionInfosService;
+import org.springframework.stereotype.Service;
+
+/**
+ * @Description: 快手-可选深度转化类型
+ * @Author: jeecg-boot
+ * @Date: 2019-07-24
+ * @Version: V1.0
+ */
+@Service
+public class KuaiShouConversionInfosServiceImpl extends ServiceImpl<KuaiShouConversionInfosMapper, KuaiShouConversionInfos> implements IKuaiShouConversionInfosService {
+
+}

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

@@ -0,0 +1,19 @@
+package org.jeecg.modules.kuaishou.service.impl;
+
+import org.jeecg.modules.kuaishou.entity.KuaiShouConversionTypes;
+import org.jeecg.modules.kuaishou.mapper.KuaiShouConversionTypesMapper;
+import org.jeecg.modules.kuaishou.service.IKuaiShouConversionTypesService;
+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 KuaiShouConversionTypesServiceImpl extends ServiceImpl<KuaiShouConversionTypesMapper, KuaiShouConversionTypes> implements IKuaiShouConversionTypesService {
+
+}

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

@@ -0,0 +1,19 @@
+package org.jeecg.modules.kuaishou.service.impl;
+
+import org.jeecg.modules.kuaishou.entity.KuaiShouCreativeCreate;
+import org.jeecg.modules.kuaishou.mapper.KuaiShouCreativeCreateMapper;
+import org.jeecg.modules.kuaishou.service.IKuaiShouCreativeCreateService;
+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 KuaiShouCreativeCreateServiceImpl extends ServiceImpl<KuaiShouCreativeCreateMapper, KuaiShouCreativeCreate> implements IKuaiShouCreativeCreateService {
+
+}

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

@@ -0,0 +1,19 @@
+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 {
+
+}

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

@@ -0,0 +1,19 @@
+package org.jeecg.modules.kuaishou.service.impl;
+
+import org.jeecg.modules.kuaishou.entity.KuaiShouGroupCreateTarget;
+import org.jeecg.modules.kuaishou.mapper.KuaiShouGroupCreateTargetMapper;
+import org.jeecg.modules.kuaishou.service.IKuaiShouGroupCreateTargetService;
+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 KuaiShouGroupCreateTargetServiceImpl extends ServiceImpl<KuaiShouGroupCreateTargetMapper, KuaiShouGroupCreateTarget> implements IKuaiShouGroupCreateTargetService {
+
+}

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

@@ -0,0 +1,19 @@
+package org.jeecg.modules.kuaishou.service.impl;
+
+import org.jeecg.modules.kuaishou.entity.KuaiShouImageGet;
+import org.jeecg.modules.kuaishou.mapper.KuaiShouImageGetMapper;
+import org.jeecg.modules.kuaishou.service.IKuaiShouImageGetService;
+import org.springframework.stereotype.Service;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+
+/**
+ * @Description: 快手-获取图片接口
+ * @Author: jeecg-boot
+ * @Date:   2019-07-25
+ * @Version: V1.0
+ */
+@Service
+public class KuaiShouImageGetServiceImpl extends ServiceImpl<KuaiShouImageGetMapper, KuaiShouImageGet> implements IKuaiShouImageGetService {
+
+}

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

@@ -0,0 +1,19 @@
+package org.jeecg.modules.kuaishou.service.impl;
+
+import org.jeecg.modules.kuaishou.entity.KuaiShouImageUploand;
+import org.jeecg.modules.kuaishou.mapper.KuaiShouImageUploandMapper;
+import org.jeecg.modules.kuaishou.service.IKuaiShouImageUploandService;
+import org.springframework.stereotype.Service;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+
+/**
+ * @Description: 快手-上传图片接口
+ * @Author: jeecg-boot
+ * @Date:   2019-07-26
+ * @Version: V1.0
+ */
+@Service
+public class KuaiShouImageUploandServiceImpl extends ServiceImpl<KuaiShouImageUploandMapper, KuaiShouImageUploand> implements IKuaiShouImageUploandService {
+
+}

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

@@ -0,0 +1,19 @@
+package org.jeecg.modules.kuaishou.service.impl;
+
+import org.jeecg.modules.kuaishou.entity.KuaiShouRegionListChildren;
+import org.jeecg.modules.kuaishou.mapper.KuaiShouRegionListChildrenMapper;
+import org.jeecg.modules.kuaishou.service.IKuaiShouRegionListChildrenService;
+import org.springframework.stereotype.Service;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+
+/**
+ * @Description: 快手-子级地域
+ * @Author: jeecg-boot
+ * @Date:   2019-07-25
+ * @Version: V1.0
+ */
+@Service
+public class KuaiShouRegionListChildrenServiceImpl extends ServiceImpl<KuaiShouRegionListChildrenMapper, KuaiShouRegionListChildren> implements IKuaiShouRegionListChildrenService {
+
+}

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

@@ -0,0 +1,19 @@
+package org.jeecg.modules.kuaishou.service.impl;
+
+import org.jeecg.modules.kuaishou.entity.KuaiShouRegionListParent;
+import org.jeecg.modules.kuaishou.mapper.KuaiShouRegionListParentMapper;
+import org.jeecg.modules.kuaishou.service.IKuaiShouRegionListParentService;
+import org.springframework.stereotype.Service;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+
+/**
+ * @Description: 快手-父级地域
+ * @Author: jeecg-boot
+ * @Date:   2019-07-25
+ * @Version: V1.0
+ */
+@Service
+public class KuaiShouRegionListParentServiceImpl extends ServiceImpl<KuaiShouRegionListParentMapper, KuaiShouRegionListParent> implements IKuaiShouRegionListParentService {
+
+}

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

@@ -0,0 +1,19 @@
+package org.jeecg.modules.kuaishou.service.impl;
+
+import org.jeecg.modules.kuaishou.entity.KuaiShouSchedule;
+import org.jeecg.modules.kuaishou.mapper.KuaiShouScheduleMapper;
+import org.jeecg.modules.kuaishou.service.IKuaiShouScheduleService;
+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 KuaiShouScheduleServiceImpl extends ServiceImpl<KuaiShouScheduleMapper, KuaiShouSchedule> implements IKuaiShouScheduleService {
+
+}

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

@@ -0,0 +1,19 @@
+package org.jeecg.modules.kuaishou.service.impl;
+
+import org.jeecg.modules.kuaishou.entity.KuaiShouVideoGet;
+import org.jeecg.modules.kuaishou.mapper.KuaiShouVideoGetMapper;
+import org.jeecg.modules.kuaishou.service.IKuaiShouVideoGetService;
+import org.springframework.stereotype.Service;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+
+/**
+ * @Description: 快手-获取视频接口
+ * @Author: jeecg-boot
+ * @Date:   2019-07-25
+ * @Version: V1.0
+ */
+@Service
+public class KuaiShouVideoGetServiceImpl extends ServiceImpl<KuaiShouVideoGetMapper, KuaiShouVideoGet> implements IKuaiShouVideoGetService {
+
+}

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

@@ -0,0 +1,19 @@
+package org.jeecg.modules.kuaishou.service.impl;
+
+import org.jeecg.modules.kuaishou.entity.KuaiShouVideoUpload;
+import org.jeecg.modules.kuaishou.mapper.KuaiShouVideoUploadMapper;
+import org.jeecg.modules.kuaishou.service.IKuaiShouVideoUploadService;
+import org.springframework.stereotype.Service;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+
+/**
+ * @Description: 快手-视频上传
+ * @Author: jeecg-boot
+ * @Date:   2019-07-26
+ * @Version: V1.0
+ */
+@Service
+public class KuaiShouVideoUploadServiceImpl extends ServiceImpl<KuaiShouVideoUploadMapper, KuaiShouVideoUpload> implements IKuaiShouVideoUploadService {
+
+}

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

@@ -1,8 +1,6 @@
 package org.jeecg.modules.kuaishou.service.impl;
 
-import cn.com.ctop.common.utils.Check;
-import cn.com.ctop.common.utils.HttpUtils;
-import cn.com.ctop.common.utils.PropertiesUtils;
+import cn.com.ctop.common.utils.*;
 import cn.com.ctop.kuaishou.modules.material.entity.KuaishouResult;
 import cn.com.ctop.kuaishou.modules.material.entity.KuaishouResultToken;
 import cn.com.ctop.kuaishou.modules.report.entity.*;
@@ -16,26 +14,28 @@ import com.fasterxml.jackson.databind.JsonMappingException;
 import com.fasterxml.jackson.databind.ObjectMapper;
 import com.fasterxml.jackson.databind.type.TypeFactory;
 import constant.KuaishouInterfaceConstant;
-import org.apache.http.HttpEntity;
-import org.apache.http.client.methods.CloseableHttpResponse;
-import org.apache.http.client.methods.HttpPost;
-import org.apache.http.entity.StringEntity;
-import org.apache.http.impl.client.CloseableHttpClient;
-import org.apache.http.impl.client.HttpClients;
-import org.apache.http.util.EntityUtils;
+import org.apache.http.ParseException;
 import org.jeecg.modules.kuaishou.entity.*;
 import org.jeecg.modules.kuaishou.mapper.*;
 import org.jeecg.modules.kuaishou.service.IKuaishouInterfaceService;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.core.io.FileSystemResource;
+import org.springframework.http.*;
 import org.springframework.stereotype.Service;
-
+import org.springframework.util.LinkedMultiValueMap;
+import org.springframework.util.MultiValueMap;
+import org.springframework.web.client.RestTemplate;
+import org.springframework.web.multipart.MultipartFile;
+
+import javax.servlet.ServletException;
+import javax.servlet.http.HttpServletRequest;
+import java.io.File;
 import java.io.IOException;
 import java.lang.reflect.ParameterizedType;
 import java.lang.reflect.Type;
-import java.util.HashMap;
-import java.util.Map;
+import java.util.*;
 
 @Service
 public class KuaishouInterfaceServiceImpl implements IKuaishouInterfaceService {
@@ -279,6 +279,7 @@ public class KuaishouInterfaceServiceImpl implements IKuaishouInterfaceService {
             String url = PropertiesUtils.getConfig("kuaishou_api_url") + KuaishouInterfaceConstant.CAMPAIGN_CREATE;
             Map<String, String> headers = new HashMap<String, String>();
             headers.put("Access-Token", accessToken);
+            headers.put("Content-Type", " application/json");
             requestJson.put("advertiser_id", advertiser_id);
             String result = HttpUtils.kuaiShouhttpPostRequest(url, requestJson.toJSONString(), headers);
             JSONObject resultJson = JSONObject.parseObject(result);
@@ -337,23 +338,79 @@ public class KuaishouInterfaceServiceImpl implements IKuaishouInterfaceService {
      * @return
      */
 
+    @Autowired
+    private KuaiShouGroupCreateTargetMapper groupCreateTargetMapper;
+    @Autowired
+    private KuaiShouGroupCreateMapper groupCreateMapper;
+
     @Override
     public Map<String, Object> adUnitCreate(String accessToken, Long advertiser_id, JSONObject requestJson) {
         Map<String, Object> returnMap = new HashMap<>();
         try {
+            if (Check.isNull(requestJson)) {
+                throw new Exception("参数不能为空");
+
+            }
             String url = PropertiesUtils.getConfig("kuaishou_api_url") + KuaishouInterfaceConstant.AD_UNIT_CREATE;
             Map<String, String> headers = new HashMap<String, String>();
             requestJson.put("advertiser_id", advertiser_id);
             headers.put("Access-Token", accessToken);
+            headers.put("Content-Type", " application/json");
 
             String result = HttpUtils.kuaiShouhttpPostRequest(url, requestJson.toJSONString(), headers);
             JSONObject resultJson = JSONObject.parseObject(result);
             if (!Check.isNull(resultJson)) {
                 Integer code = resultJson.getInteger("code");
                 if (code == 0) {
-                    //TODO  未写完--------------------------
-                    returnMap.put("code", 0);
-                    returnMap.put("message", "success");
+                    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");
+                    }
 
                 } else {
                     logger.error("创建广告信息失败,advertiser_id:{},返回信息:{}", advertiser_id, resultJson);
@@ -403,6 +460,7 @@ public class KuaishouInterfaceServiceImpl implements IKuaishouInterfaceService {
         String url = PropertiesUtils.getConfig("kuaishou_api_url") + KuaishouInterfaceConstant.CAMPAIGN_LIST;
         Map<String, String> headers = new HashMap<>();
         headers.put("Access-Token", accessToken);
+        headers.put("Content-Type", " application/json");
         JSONObject param = new JSONObject();
         param.put("advertiser_id", advertiserId);
         param.put("page", page);
@@ -460,6 +518,8 @@ public class KuaishouInterfaceServiceImpl implements IKuaishouInterfaceService {
     private KuaiShouGroupMapper groupMapper;
     @Autowired
     private KuaiShouAppInfoMapper appInfoMapper;
+    @Autowired
+    private KuaiShouScheduleMapper shouScheduleMapper;
 
     @Override
     public void getGroupList(String accessToken, Long advertiserId, Integer page) {
@@ -476,6 +536,7 @@ public class KuaishouInterfaceServiceImpl implements IKuaishouInterfaceService {
         param.put("page", page);
         Map<String, String> headers = new HashMap<>();
         headers.put("Access-Token", accessToken);
+        headers.put("Content-Type", " application/json");
         try {
             String result = HttpUtils.kuaiShouhttpPostRequest(url, param.toJSONString(), headers);
             JSONObject resultJson = JSONObject.parseObject(result);
@@ -512,7 +573,6 @@ public class KuaishouInterfaceServiceImpl implements IKuaishouInterfaceService {
                                     group.setAppId(detail.getLong("app_id"));
                                     group.setAppIconUrl(detail.getString("app_icon_url"));
                                     groupMapper.insert(group);
-
                                     // 添加应用信息
                                     JSONObject diverseJson = detail.getJSONObject("diverse_data");
                                     if (!Check.isNull(diverseJson)) {
@@ -524,10 +584,23 @@ public class KuaishouInterfaceServiceImpl implements IKuaishouInterfaceService {
                                         appInfo.setUnitId(unitId);
                                         appInfoMapper.insert(appInfo);
                                     }
+                                    //时间段信息
+                                    JSONObject scheduleJson = detail.getJSONObject("schedule");
+                                    if (!Check.isNull(scheduleJson)) {
+                                        KuaiShouSchedule schedule = new KuaiShouSchedule();
+                                        schedule.setUnitId(unitId);
+                                        schedule.setMon(scheduleJson.getJSONArray("mon").toJSONString());
+                                        schedule.setTues(scheduleJson.getJSONArray("tues").toJSONString());
+                                        schedule.setWed(scheduleJson.getJSONArray("wed").toJSONString());
+                                        schedule.setThur(scheduleJson.getJSONArray("thur").toJSONString());
+                                        schedule.setFri(scheduleJson.getJSONArray("fri").toJSONString());
+                                        schedule.setSat(scheduleJson.getJSONArray("sat").toJSONString());
+                                        schedule.setSun(scheduleJson.getJSONArray("sun").toJSONString());
+                                        shouScheduleMapper.insert(schedule);
+                                    }
                                 }
 
                                 getGroupList(accessToken, advertiserId, page + 1);
-
                             }
                         }
 
@@ -565,7 +638,7 @@ public class KuaishouInterfaceServiceImpl implements IKuaishouInterfaceService {
 
         String url = PropertiesUtils.getConfig("kuaishou_api_url") + KuaishouInterfaceConstant.CREATIVE_LIST;
         Map<String, String> headers = new HashMap<String, String>();
-        headers.put("Content-Type", "application/json");
+        headers.put("Content-Type", " application/json");
         headers.put("Access-Token", accessToken);
         JSONObject param = new JSONObject();
         param.put("advertiser_id", advertiserId);
@@ -638,6 +711,10 @@ public class KuaishouInterfaceServiceImpl implements IKuaishouInterfaceService {
         requestJson.put("auth_code", authCode);
         requestJson.put("app_id", PropertiesUtils.getConfig("kuaishou_appid"));
         requestJson.put("secret", PropertiesUtils.getConfig("kuaishou_secret"));
+
+        Map<String, String> headers = new HashMap<>();
+        headers.put("Content-Type", " application/json");
+
         KuaishouResultToken kuaiShouResult = null;
         try {
             String result = HttpUtils.kuaiShouhttpPostRequest(url, requestJson.toJSONString(), null);
@@ -661,7 +738,7 @@ public class KuaishouInterfaceServiceImpl implements IKuaishouInterfaceService {
     public KuaishouResultToken getRefreshToken(String refreshToken) {
         String url = PropertiesUtils.getConfig("kuaishou_api_url") + KuaishouInterfaceConstant.REFRESH_TOKEN;
         Map<String, String> headers = new HashMap<String, String>();
-        headers.put("Content-Type", "application/json");
+        headers.put("Content-Type", " application/json");
         Map<String, Object> param = new HashMap<String, Object>();
         param.put("app_id", PropertiesUtils.getConfig("kuaishou_appid"));
         param.put("secret", PropertiesUtils.getConfig("kuaishou_secret"));
@@ -669,16 +746,600 @@ public class KuaishouInterfaceServiceImpl implements IKuaishouInterfaceService {
         KuaishouResultToken kuaishouResult = null;
         try {
             String result = HttpUtils.httpPostRequest(url, param, headers);
-            ObjectMapper mapper = new ObjectMapper();
-            mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
-            kuaishouResult = mapper.readValue(result, new TypeReference<KuaishouResultToken>() {
-            });
+            System.err.println(result);
+            JSONObject tokenJson = new JSONObject();
+            if (!Check.isNullMap(tokenJson)) {
+
+
+            } else {
+                logger.error("重新获取token返回结果为空");
+            }
+
+
         } catch (Exception e) {
             e.printStackTrace();
         }
         return kuaishouResult;
     }
 
+
+    /**
+     * 获取可选的深度转化类型
+     *
+     * @param advertiserId
+     */
+    @Autowired
+    private KuaiShouConversionInfosMapper conversionInfosMapper;
+
+    @Autowired
+    private KuaiShouConversionTypesMapper conversionTypesMapper;
+
+    @Override
+    public void getDeepConversionInfos(Long advertiserId, String accessToken) {
+        String url = PropertiesUtils.getConfig("kuaishou_api_url") + KuaishouInterfaceConstant.DEEP_CONVERSION_INFOS;
+        JSONObject param = new JSONObject();
+        param.put("advertiser_id", advertiserId);
+        Map<String, String> headers = new HashMap<String, String>();
+        headers.put("Access-Token", accessToken);
+        headers.put("Content-Type", " application/json");
+        try {
+            String result = HttpUtils.kuaiShouhttpPostRequest(url, param.toJSONString(), headers);
+            JSONObject resultJson = JSONObject.parseObject(result);
+            if (!Check.isNullMap(resultJson)) {
+                Integer code = resultJson.getInteger("code");
+                if (code == 0) {
+                    Map<String, Object> deleteMap = new HashMap<>();
+                    deleteMap.put("account_id", advertiserId);
+                    conversionInfosMapper.deleteByMap(deleteMap);
+                    conversionTypesMapper.deleteByMap(deleteMap); //删除历史数据
+                    JSONObject dataJson = resultJson.getJSONObject("data");
+                    if (!Check.isNullMap(dataJson)) {
+                        KuaiShouConversionInfos conversionInfos = new KuaiShouConversionInfos();
+                        conversionInfos.setAccountId(advertiserId);
+                        conversionInfos.setIsActivate(dataJson.getInteger("is_activate"));
+                        conversionInfos.setIsFormSubmit(dataJson.getInteger("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());
+                                if (!Check.isNull(conversionType)) {
+                                    KuaiShouConversionTypes conversionTypes = new KuaiShouConversionTypes();
+                                    conversionTypes.setAccountId(advertiserId);
+                                    conversionTypes.setDeepConversionTypes(conversionType.getInteger("deep_conversion_type"));
+                                    conversionTypes.setDesc(conversionType.getString("desc"));
+                                    conversionTypesMapper.insert(conversionTypes);
+                                }
+                            }
+                        }
+                    }
+
+                } else {
+                    logger.error("获取可选的深度转化类型返回异常,advertiserId:{},异常信息:{}", advertiserId, resultJson);
+
+                }
+
+            } else {
+                logger.error("快手,获取可选的深度转化类型返回为空,advertiserId:{}", advertiserId);
+            }
+
+        } catch (
+                Exception e) {
+            e.printStackTrace();
+        }
+
+    }
+
+    /**
+     * 创建广告创意
+     *
+     * @param accessToken
+     * @param advertiserId
+     * @param requestJson
+     */
+    @Autowired
+    private KuaiShouCreativeCreateMapper creativeCreateMapper;
+
+    @Override
+    public Map<String, Object> creativeCreate(String accessToken, Long advertiserId, JSONObject requestJson) {
+        Map<String, Object> returnMap = new HashMap<>();
+        try {
+            String url = PropertiesUtils.getConfig("kuaishou_api_url") + KuaishouInterfaceConstant.CAMPAIGN_CREATE;
+            requestJson.put("advertiser_id", advertiserId);
+            Map<String, String> header = new HashMap<String, String>();
+            header.put("Content-Type", " application/json");
+            header.put("Access-Token", accessToken);
+            String result = HttpUtils.kuaiShouhttpPostRequest(url, requestJson.toJSONString(), header);
+            JSONObject resultJson = JSONObject.parseObject(result);
+            if (!Check.isNull(resultJson)) {
+                Integer code = resultJson.getInteger("code");
+                if (code == 0) {
+                    JSONObject dataJson = resultJson.getJSONObject("data");
+                    if (!Check.isNull(dataJson)) {
+                        KuaiShouCreativeCreate creativeCreate = new KuaiShouCreativeCreate();
+                        creativeCreate.setCreativeId(dataJson.getLong("creative_id"));
+                        creativeCreate.setAccountId(advertiserId);
+                        creativeCreate.setUnitId(requestJson.getLong("unit_id"));
+                        creativeCreate.setCreativeName(requestJson.getString("creative_name"));
+                        creativeCreate.setPhotoId(requestJson.getString("photo_id"));
+                        creativeCreate.setImageToken(requestJson.getString("image_token"));
+                        creativeCreate.setActionBarText(requestJson.getString("action_bar_text"));
+                        creativeCreate.setDescription(requestJson.getString("description"));
+                        creativeCreate.setClickTrackUrl(requestJson.getString("click_track_url"));
+                        int i = creativeCreateMapper.insert(creativeCreate);
+                        if (i > 0) {
+                            logger.info("创建广告创意入库完成,advertiser_id:{}", advertiserId);
+                        }
+                        returnMap.put("code", 0);
+                        returnMap.put("message", "success");
+                    }
+                } else {
+                    logger.error("创建广告创意失败,advertiser_id:{},返回信息:{}", advertiserId, resultJson);
+                    returnMap.put("code", -1);
+                    returnMap.put("message", "error");
+                    returnMap.put("desc", resultJson.getString("message"));
+                }
+            } else {
+                logger.error("快手创建广告创意返回内容为空,advertiser_id:{}", advertiserId);
+                returnMap.put("code", -1);
+                returnMap.put("message", "error");
+                returnMap.put("desc", "result is null");
+            }
+
+        } catch (Exception e) {
+            logger.error("创建广告创意失败,advertiser_id:{}", advertiserId);
+            returnMap.put("code", -1);
+            returnMap.put("message", "error");
+            returnMap.put("desc", "Interface exception");
+            e.printStackTrace();
+        }
+        return returnMap;
+
+    }
+
+    /**
+     * 文件上传
+     *
+     * @param advertiserId
+     * @param accessToken
+     * @param multipartFile
+     */
+    @Autowired
+    private KuaiShouVideoUploadMapper videoUploadMapper;
+
+    @Override
+    public void videoUpload(Long advertiserId, String accessToken, MultipartFile multipartFile, HttpServletRequest request) {
+        Map<String, Object> returnMap = new HashMap<>();
+        try {
+            String savaPath = "D:\\tets1";
+            FileUploadTool fileUploadTool = new FileUploadTool();
+            FileEntity entity;
+            entity = fileUploadTool.createFile(multipartFile, request, savaPath);
+            if (!Check.isNull(entity)) {
+                String url = PropertiesUtils.getConfig("kuaishou_api_url") + KuaishouInterfaceConstant.VIDEO_UPLOAD;
+                JSONObject requestJson = new JSONObject();
+                requestJson.put("advertiser_id", advertiserId);
+                Map<String, String> headerMap = new HashMap<String, String>();
+                headerMap.put("Access-Token", accessToken);
+                headerMap.put("Content-Type", "multipart/form-data");
+                String result = exceptInfoForRestTemplate(url, requestJson, headerMap, entity.getPath());
+                JSONObject resultJson = JSONObject.parseObject(result);
+                if (!Check.isNull(result)) {
+                    Integer code = resultJson.getInteger("code");
+                    if (code == 0) {
+                        JSONObject dataJson = resultJson.getJSONObject("data");
+                        if (!Check.isNull(dataJson)) {
+                            KuaiShouVideoUpload videoUpload = new KuaiShouVideoUpload();
+                            videoUpload.setPhotoId(dataJson.getString("photo_id"));
+                            videoUpload.setAccountId(advertiserId);
+                            videoUpload.setSavaPath(entity.getPath());
+                            videoUpload.setSize(entity.getSize());
+                            videoUpload.setType(entity.getType());
+                            videoUpload.setUploadTime(DateUtils.timeStamp2Date(entity.getUploadTime()));
+                            int i = videoUploadMapper.insert(videoUpload);
+                            if (i > 0) {
+                                logger.info("上传快手视频完成");
+                            }
+                        }
+                    } else {
+                        logger.error("快手上传视频返回信息异常 ,advertiserId:{},异常信息:{}", advertiserId, resultJson);
+                    }
+
+                } else {
+                    logger.error("快手上传视频返回信息为空,advertiserId:{}", advertiserId);
+                }
+            }
+
+        } catch (Exception e) {
+            logger.error("上传视频失败,advertiser_id:{}", advertiserId);
+            returnMap.put("code", -1);
+            returnMap.put("message", "error");
+            returnMap.put("desc", "Interface exception");
+            e.printStackTrace();
+        }
+
+    }
+
+
+    /**
+     * 获取视频信息
+     *
+     * @param advertiserId
+     * @param accessToken
+     */
+    @Autowired
+    private KuaiShouVideoGetMapper videoGetMapper;
+
+    @Override
+    public void videoGet(Long advertiserId, String accessToken, String photoId) {
+        try {
+            String url = PropertiesUtils.getConfig("kuaishou_api_url") + KuaishouInterfaceConstant.VIDEO_GET;
+            JSONObject param = new JSONObject();
+            param.put("advertiser_id", advertiserId);
+            ArrayList<String> strArray = new ArrayList<String>();
+            strArray.add(photoId);
+            param.put("photo_ids", strArray);
+            Map<String, String> headers = new HashMap<String, String>();
+            headers.put("Access-Token", accessToken);
+            headers.put("Content-Type", " application/json");
+            String result = HttpUtils.kuaiShouhttpPostRequest(url, param.toJSONString(), headers);
+            JSONObject resultJson = JSONObject.parseObject(result);
+            if (!Check.isNull(resultJson)) {
+                Integer code = resultJson.getInteger("code");
+                if (code == 0) {
+                    JSONArray dataArr = resultJson.getJSONArray("data");
+                    if (!Check.isNull(dataArr)) {
+                        for (int i = 0; i < dataArr.size(); i++) {
+                            JSONObject dataJson = JSONObject.parseObject(dataArr.get(i).toString());
+                            if (!Check.isNull(dataJson)) {
+                                KuaiShouVideoGet videoGet = new KuaiShouVideoGet();
+                                videoGet.setAccountId(advertiserId);
+                                videoGet.setWidth(dataJson.getInteger("width"));
+                                videoGet.setHeight(dataJson.getInteger("height"));
+                                videoGet.setUrl(dataJson.getString("url"));
+                                videoGet.setPhotoId(dataJson.getString("photo_id"));
+                                videoGet.setCoverUrl(dataJson.getString("cover_url"));
+                                videoGetMapper.insert(videoGet);
+                            }
+
+                        }
+
+                    }
+
+                } else {
+                    logger.error("获取广告视频失败,advertiser_id:{},返回信息:{}", advertiserId, resultJson);
+
+                }
+
+            } else {
+                logger.error("获取视频信息返回结果为空,advertiserId:{}", advertiserId);
+            }
+
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+
+
+    }
+
+    /**
+     * 获取图片信息
+     *
+     * @param advertiserId
+     * @param accessToken
+     * @param image_token
+     */
+    @Autowired
+    private KuaiShouImageGetMapper imageGetMapper;
+
+    @Override
+    public void imageGet(Long advertiserId, String accessToken, String image_token) {
+        try {
+            String url = PropertiesUtils.getConfig("kuaishou_api_url") + KuaishouInterfaceConstant.IMAGE_GET;
+            JSONObject param = new JSONObject();
+            param.put("advertiser_id", advertiserId);
+            param.put("image_token", image_token);
+
+            Map<String, String> headers = new HashMap<String, String>();
+            headers.put("Access-Token", accessToken);
+            headers.put("Content-Type", " application/json");
+            String result = HttpUtils.kuaiShouhttpPostRequest(url, param.toJSONString(), headers);
+            System.err.println(result);
+            JSONObject resultJson = JSONObject.parseObject(result);
+            if (!Check.isNull(resultJson)) {
+                Integer code = resultJson.getInteger("code");
+                if (code == 0) {
+                    JSONObject dataJson = resultJson.getJSONObject("data");
+                    if (!Check.isNull(dataJson)) {
+                        KuaiShouImageGet imageGet = new KuaiShouImageGet();
+                        imageGet.setAccountId(advertiserId);
+                        imageGet.setUrl(dataJson.getString("url"));
+                        imageGet.setWidth(dataJson.getLong("width"));
+                        imageGet.setHeight(dataJson.getLong("height"));
+                        imageGet.setSize(dataJson.getLong("size"));
+                        imageGet.setFormat(dataJson.getString("format"));
+                        imageGet.setImageToken(dataJson.getString("image_token"));
+                        imageGetMapper.insert(imageGet);
+                    }
+
+                } else {
+                    logger.error("获取广告图片失败,advertiser_id:{},返回信息:{}", advertiserId, resultJson);
+
+                }
+
+            } else {
+                logger.error("获取图片信息返回结果为空,advertiserId:{}", advertiserId);
+            }
+
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+    }
+
+    /**
+     * 获取 地域列表
+     *
+     * @param accessToken
+     */
+    @Autowired
+    private KuaiShouRegionListChildrenMapper regionListChildrenMapper;
+    @Autowired
+    private KuaiShouRegionListParentMapper regionListParentMapper;
+
+    @Override
+    public void areaList(String accessToken) {
+        try {
+            String url = PropertiesUtils.getConfig("kuaishou_api_url") + KuaishouInterfaceConstant.REGION_LIST;
+            Map<String, String> headers = new HashMap<String, String>();
+            headers.put("Access-Token", accessToken);
+            headers.put("Content-Type", " application/json");
+            String result = HttpUtils.httpGet(url, null, headers);
+            JSONObject resultJson = JSONObject.parseObject(result);
+            if (!Check.isNull(resultJson)) {
+                Integer code = resultJson.getInteger("code");
+                if (code == 0) {
+                    regionListParentMapper.deleteAll();
+                    regionListChildrenMapper.deleteAll();
+                    JSONObject dataJson = resultJson.getJSONObject("data");
+                    if (!Check.isNull(dataJson)) {
+                        for (Map.Entry<String, Object> entry : dataJson.entrySet()) {
+                            String key = entry.getKey();
+                            JSONObject keyJson = dataJson.getJSONObject(key);
+                            if (!Check.isNull(keyJson)) {
+                                KuaiShouRegionListParent regionListParent = new KuaiShouRegionListParent();
+                                Long id = keyJson.getLong("id");
+                                regionListParent.setRegionId(id);
+                                regionListParent.setLevel(keyJson.getInteger("level"));
+                                regionListParent.setName(keyJson.getString("name"));
+                                regionListParent.setParent(keyJson.getLong("parent"));
+                                regionListParentMapper.insert(regionListParent);
+                                JSONArray childrenArr = keyJson.getJSONArray("children");
+                                if (!Check.isNull(childrenArr)) {
+                                    for (int i = 0; i < childrenArr.size(); i++) {
+                                        KuaiShouRegionListChildren regionListChildren = new KuaiShouRegionListChildren();
+                                        regionListChildren.setParentId(id);
+                                        regionListChildren.setRegionId(childrenArr.getLong(i));
+                                        regionListChildrenMapper.insert(regionListChildren);
+
+                                    }
+                                }
+                            }
+                        }
+                    }
+
+                } else {
+                    logger.error("获取地域列表失败");
+                }
+            } else {
+                logger.error("获取地域列表返回结果为空");
+            }
+
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+    }
+
+    /**
+     * 图片上传
+     *
+     * @param advertiserId
+     * @param accessToken
+     * @param multipartFile
+     * @param request
+     */
+    @Autowired
+    private KuaiShouImageUploandMapper imageUploandMapper;
+
+    @Override
+    public void imageUpload(Long advertiserId, String accessToken, MultipartFile multipartFile, HttpServletRequest request) {
+        Map<String, Object> returnMap = new HashMap<>();
+        try {
+            String savaPath = "D:\\tets1\\image";
+            FileUploadTool fileUploadTool = new FileUploadTool();
+            FileEntity entity;
+            entity = fileUploadTool.createFile(multipartFile, request, savaPath);
+            if (!Check.isNull(entity)) {
+                String url = PropertiesUtils.getConfig("kuaishou_api_url") + KuaishouInterfaceConstant.IMAGE_UPLOAD;
+                JSONObject requestJson = new JSONObject();
+                requestJson.put("advertiser_id", advertiserId);
+                Map<String, String> headerMap = new HashMap<String, String>();
+                headerMap.put("Content-Type", "multipart/form-data");
+                headerMap.put("Access-Token", accessToken);
+                String result = exceptInfoForRestTemplate(url, requestJson, headerMap, entity.getPath());
+                JSONObject resultJson = JSONObject.parseObject(result);
+                if (!Check.isNull(result)) {
+                    Integer code = resultJson.getInteger("code");
+                    if (code == 0) {
+                        JSONObject dataJson = resultJson.getJSONObject("data");
+                        if (!Check.isNull(dataJson)) {
+                            KuaiShouImageUploand imageUploand = new KuaiShouImageUploand();
+                            imageUploand.setAccountId(advertiserId);
+                            imageUploand.setSavaPath(entity.getPath());
+                            imageUploand.setUploadTime(DateUtils.timeStamp2Date(entity.getUploadTime()));
+                            imageUploand.setUrl(dataJson.getString("url"));
+                            imageUploand.setImageToken(dataJson.getString("image_token"));
+                            imageUploand.setHeight(dataJson.getLong("height"));
+                            imageUploand.setSize(dataJson.getLong("size"));
+                            imageUploand.setFormat(dataJson.getString("format"));
+                            imageUploand.setWidth(dataJson.getLong("width"));
+                            int i = imageUploandMapper.insert(imageUploand);
+                            if (i > 0) {
+                                logger.info("快手-图片上传成功");
+                            }
+                        }
+
+                    } else {
+                        logger.error("快手上传图片返回信息异常 ,advertiserId:{},异常信息:{}", advertiserId, resultJson);
+                    }
+
+                } else {
+                    logger.error("快手上传图片返回信息为空,advertiserId:{}", advertiserId);
+                }
+            }
+        } catch (Exception e) {
+            logger.error("上传图片失败,advertiser_id:{}", advertiserId);
+            returnMap.put("code", -1);
+            returnMap.put("message", "error");
+            returnMap.put("desc", "Interface exception");
+            e.printStackTrace();
+        }
+
+    }
+
+    /**
+     * 创建应用
+     *
+     * @param advertiserId
+     * @param accessToken
+     * @param multipartFile
+     * @param request
+     */
+    @Autowired
+    private KuaiShouAppCreateMapper appCreateMapper;
+
+    @Override
+    public void appCreate(Long advertiserId, String accessToken, MultipartFile multipartFile, HttpServletRequest request) {
+        Map<String, Object> returnMap = new HashMap<>();
+        try {
+            String savaPath = "D:\\tets1\\app";
+            FileUploadTool fileUploadTool = new FileUploadTool();
+            FileEntity entity;
+            entity = fileUploadTool.createFile(multipartFile, request, savaPath);
+            if (!Check.isNull(entity)) {
+                String url = PropertiesUtils.getConfig("kuaishou_api_url") + KuaishouInterfaceConstant.APP_CREATE;
+                JSONObject requestJson = new JSONObject();
+                requestJson.put("app_version", "2.3.6");
+                requestJson.put("app_name", "微信开发1");
+                requestJson.put("image_token", "market81dd2187353e4cb19918b61276797ce5.jpg");
+                requestJson.put("advertiser_id", advertiserId);
+                requestJson.put("package_name", "2");
+                requestJson.put("platform", 1);
+                Map<String, String> header = new HashMap<String, String>();
+                header.put("Content-Type", "multipart/form-data");
+                header.put("Access-Token", accessToken);
+                String result = exceptInfoForRestTemplate(url, requestJson, header, entity.getPath());
+                JSONObject resultJson = JSONObject.parseObject(result);
+                if (!Check.isNull(result)) {
+                    Integer code = resultJson.getInteger("code");
+                    if (code == 0) {
+                        JSONObject dataJson = resultJson.getJSONObject("data");
+                        if (!Check.isNull(dataJson)) {
+                            KuaiShouAppCreate appCreate = new KuaiShouAppCreate();
+                            appCreate.setAccountId(advertiserId);
+                            appCreate.setSavaPath(entity.getPath());
+                            appCreate.setUrl(requestJson.getString("url"));// 上传应用地址
+                            appCreate.setAppVersion(requestJson.getString("app_version"));
+                            appCreate.setAppName(requestJson.getString("app_name"));
+                            appCreate.setImageToken(requestJson.getString("image_token"));
+                            appCreate.setPackageName(requestJson.getString("package_name"));
+                            appCreate.setPlatform(requestJson.getInteger("platform"));
+                            appCreate.setReturnUrl(dataJson.getString("url"));
+                            appCreate.setAppId(dataJson.getLong("app_id"));
+                            appCreate.setUploadTime(DateUtils.timeStamp2Date(entity.getUploadTime()));
+                            int i = appCreateMapper.insert(appCreate);
+                            if (i > 0) {
+                                logger.info("快手创建应用成功");
+                            }
+                        }
+
+                    } else {
+                        logger.error("快手创建应用返回信息异常 ,advertiserId:{},异常信息:{}", advertiserId, resultJson);
+                    }
+
+                } else {
+                    logger.error("快手创建应用返回信息为空,advertiserId:{}", advertiserId);
+                }
+            }
+        } catch (Exception e) {
+            logger.error("创建应用失败,advertiser_id:{}", advertiserId);
+            returnMap.put("code", -1);
+            returnMap.put("message", "error");
+            returnMap.put("desc", "Interface exception");
+            e.printStackTrace();
+        }
+    }
+
+    /**
+     * 获取应用列表
+     *
+     * @param advertiserId
+     * @param accessToken
+     */
+    @Autowired
+    private KuaiShouAppListMapper appListMapper;
+
+    @Override
+    public void getAppList(Long advertiserId, String accessToken) {
+        try {
+            String url = PropertiesUtils.getConfig("kuaishou_api_url") + KuaishouInterfaceConstant.APP_LIST;
+            Map<String, String> headers = new HashMap<String, String>();
+            headers.put("Access-Token", accessToken);
+            headers.put("Content-Type", " application/json");
+            JSONObject json = new JSONObject();
+            json.put("advertiser_id", advertiserId);
+            String result = HttpUtils.kuaiShouhttpPostRequest(url, json.toJSONString(), headers);
+            JSONObject resultJson = JSONObject.parseObject(result);
+            if (!Check.isNull(resultJson)) {
+                Integer code = resultJson.getInteger("code");
+                if (code == 0) {
+                    Map<String, Object> deleteMap = new HashMap<>();
+                    deleteMap.put("account_id", advertiserId);
+                    appListMapper.deleteByMap(deleteMap);
+                    JSONArray dataArr = resultJson.getJSONArray("data");
+                    if (!Check.isNull(dataArr)) {
+                        for (int i = 0; i < dataArr.size(); i++) {
+                            JSONObject dataJson = JSONObject.parseObject(dataArr.get(i).toString());
+                            if (!Check.isNull(dataJson)) {
+                                KuaiShouAppList appList = new KuaiShouAppList();
+                                appList.setAccountId(advertiserId);
+                                appList.setPlatform(dataJson.getInteger("platform"));
+                                appList.setUrl(dataJson.getString("url"));
+                                appList.setAppId(dataJson.getLong("app_id"));
+                                appList.setAppVersion(dataJson.getString("app_version"));
+                                appList.setAppName(dataJson.getString("app_name"));
+                                appList.setAppIconUrl(dataJson.getString("app_icon_url"));
+                                appList.setImageToken(dataJson.getString("image_token"));
+                                appList.setPackageName(dataJson.getString("package_name"));
+                                appList.setReturnTime(DateUtils.timeStamp2Date(dataJson.getTimestamp("update_time")));
+                                appListMapper.insert(appList);
+                            }
+                        }
+                    }
+
+                } else {
+                    logger.error("获取地域列表失败");
+                }
+            } else {
+                logger.error("获取地域列表返回结果为空");
+            }
+
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+
+    }
+
+
     public Object jsonToObj(Object t, String jsonStr) throws
             JsonParseException, JsonMappingException, IOException {
         ObjectMapper mapper = new ObjectMapper();
@@ -708,4 +1369,41 @@ public class KuaishouInterfaceServiceImpl implements IKuaishouInterfaceService {
     }
 
 
+    @Autowired
+    private RestTemplate rest;
+
+    public String exceptInfoForRestTemplate(String url, Map<String, Object> paramMap, Map<String, String> headerMap, String filePath) throws ParseException {
+
+        try {
+            FileSystemResource resource = new FileSystemResource(new File(filePath));
+            MultiValueMap<String, Object> param = new LinkedMultiValueMap<>();
+            param.add("file", resource);
+
+
+            if (!Check.isNullMap(paramMap)) {
+                for (String key : paramMap.keySet()) {
+                    param.add(key, paramMap.get(key));
+                }
+
+
+                HttpHeaders headers = new HttpHeaders();
+                if (!Check.isNullMap(headerMap)) {
+                    for (String key : headerMap.keySet()) {
+                        headers.add(key, (String) headerMap.get(key));
+                    }
+                }
+
+                HttpEntity<MultiValueMap<String, Object>> httpEntity = new HttpEntity<MultiValueMap<String, Object>>(param, headers);
+                ResponseEntity<String> responseEntity = rest.exchange(url, HttpMethod.POST, httpEntity, String.class);
+                System.err.println(responseEntity.getBody());
+                return responseEntity.getBody();
+            }
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+
+        return null;
+    }
+
+
 }

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

@@ -0,0 +1,218 @@
+<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="本地存储地址">
+              <a-input placeholder="请输入本地存储地址" v-model="queryParam.savaPath"></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.url"></a-input>
+            </a-form-item>
+          </a-col>
+          <a-col :md="6" :sm="8">
+            <a-form-item label="应用标记">
+              <a-input placeholder="请输入应用标记" v-model="queryParam.appVersion"></a-input>
+            </a-form-item>
+          </a-col>
+          <a-col :md="6" :sm="8">
+            <a-form-item label="应用名称">
+              <a-input placeholder="请输入应用名称" v-model="queryParam.appName"></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 -->
+
+    <!-- 表单区域 -->
+    <kuaiShouAppCreate-modal ref="modalForm" @ok="modalFormOk"></kuaiShouAppCreate-modal>
+  </a-card>
+</template>
+
+<script>
+  import KuaiShouAppCreateModal from './modules/KuaiShouAppCreateModal'
+  import { JeecgListMixin } from '@/mixins/JeecgListMixin'
+
+  export default {
+    name: "KuaiShouAppCreateList",
+    mixins:[JeecgListMixin],
+    components: {
+      KuaiShouAppCreateModal
+    },
+    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: '本地存储地址',
+            align:"center",
+            dataIndex: 'savaPath'
+           },
+		   {
+            title: '上传应用地址',
+            align:"center",
+            dataIndex: 'url'
+           },
+		   {
+            title: '应用标记',
+            align:"center",
+            dataIndex: 'appVersion'
+           },
+		   {
+            title: '应用名称',
+            align:"center",
+            dataIndex: 'appName'
+           },
+		   {
+            title: '图片token',
+            align:"center",
+            dataIndex: 'imageToken'
+           },
+		   {
+            title: '应用包名',
+            align:"center",
+            dataIndex: 'packageName'
+           },
+		   {
+            title: '应用类型 1: Android 应用下载,2: Android 网页游戏,3: iOS 应用下载, 4:iOS 网页游戏',
+            align:"center",
+            dataIndex: 'platform'
+           },
+		   {
+            title: '请求成功后 返回应用地址',
+            align:"center",
+            dataIndex: 'returnUrl'
+           },
+		   {
+            title: '应用id',
+            align:"center",
+            dataIndex: 'appId'
+           },
+		   {
+            title: '文件上传时间',
+            align:"center",
+            dataIndex: 'uploadTime'
+           },
+          {
+            title: '操作',
+            dataIndex: 'action',
+            align:"center",
+            scopedSlots: { customRender: 'action' },
+          }
+        ],
+		url: {
+          list: "/kuaishou/kuaiShouAppCreate/list",
+          delete: "/kuaishou/kuaiShouAppCreate/delete",
+          deleteBatch: "/kuaishou/kuaiShouAppCreate/deleteBatch",
+          exportXlsUrl: "kuaishou/kuaiShouAppCreate/exportXls",
+          importExcelUrl: "kuaishou/kuaiShouAppCreate/importExcel",
+       },
+    }
+  },
+  computed: {
+    importExcelUrl: function(){
+      return `${window._CONFIG['domianURL']}/${this.url.importExcelUrl}`;
+    }
+  },
+    methods: {
+     
+    }
+  }
+</script>
+<style scoped>
+  @import '~@assets/less/common.less'
+</style>

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

@@ -0,0 +1,213 @@
+<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.appId"></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.url"></a-input>
+            </a-form-item>
+          </a-col>
+          <a-col :md="6" :sm="8">
+            <a-form-item label="应用标记">
+              <a-input placeholder="请输入应用标记" v-model="queryParam.appVersion"></a-input>
+            </a-form-item>
+          </a-col>
+          <a-col :md="6" :sm="8">
+            <a-form-item label="应用名称">
+              <a-input placeholder="请输入应用名称" v-model="queryParam.appName"></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 -->
+
+    <!-- 表单区域 -->
+    <kuaiShouAppList-modal ref="modalForm" @ok="modalFormOk"></kuaiShouAppList-modal>
+  </a-card>
+</template>
+
+<script>
+  import KuaiShouAppListModal from './modules/KuaiShouAppListModal'
+  import { JeecgListMixin } from '@/mixins/JeecgListMixin'
+
+  export default {
+    name: "KuaiShouAppListList",
+    mixins:[JeecgListMixin],
+    components: {
+      KuaiShouAppListModal
+    },
+    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: 'appId'
+           },
+		   {
+            title: '应用地址',
+            align:"center",
+            dataIndex: 'url'
+           },
+		   {
+            title: '应用标记',
+            align:"center",
+            dataIndex: 'appVersion'
+           },
+		   {
+            title: '应用名称',
+            align:"center",
+            dataIndex: 'appName'
+           },
+		   {
+            title: '应用图标链接地址',
+            align:"center",
+            dataIndex: 'appIconUrl'
+           },
+		   {
+            title: '图片token',
+            align:"center",
+            dataIndex: 'imageToken'
+           },
+		   {
+            title: '应用包名',
+            align:"center",
+            dataIndex: 'packageName'
+           },
+		   {
+            title: '应用类型 1: Android 应用下载,2: Android 网页游戏,3: iOS 应用下载, 4:iOS 网页游戏',
+            align:"center",
+            dataIndex: 'platform'
+           },
+		   {
+            title: '返回修改时间',
+            align:"center",
+            dataIndex: 'returnTime'
+           },
+          {
+            title: '操作',
+            dataIndex: 'action',
+            align:"center",
+            scopedSlots: { customRender: 'action' },
+          }
+        ],
+		url: {
+          list: "/kuaishou/kuaiShouAppList/list",
+          delete: "/kuaishou/kuaiShouAppList/delete",
+          deleteBatch: "/kuaishou/kuaiShouAppList/deleteBatch",
+          exportXlsUrl: "kuaishou/kuaiShouAppList/exportXls",
+          importExcelUrl: "kuaishou/kuaiShouAppList/importExcel",
+       },
+    }
+  },
+  computed: {
+    importExcelUrl: function(){
+      return `${window._CONFIG['domianURL']}/${this.url.importExcelUrl}`;
+    }
+  },
+    methods: {
+     
+    }
+  }
+</script>
+<style scoped>
+  @import '~@assets/less/common.less'
+</style>

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

@@ -0,0 +1,168 @@
+<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="是否有激活出价权限 0:没有 1:有">
+              <a-input placeholder="请输入是否有激活出价权限 0:没有 1:有" v-model="queryParam.isActivate"></a-input>
+            </a-form-item>
+          </a-col>
+        <template v-if="toggleSearchStatus">
+        <a-col :md="6" :sm="8">
+            <a-form-item label="isFormSubmit">
+              <a-input placeholder="请输入isFormSubmit" v-model="queryParam.isFormSubmit"></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 -->
+
+    <!-- 表单区域 -->
+    <kuaiShouConversionInfos-modal ref="modalForm" @ok="modalFormOk"></kuaiShouConversionInfos-modal>
+  </a-card>
+</template>
+
+<script>
+  import KuaiShouConversionInfosModal from './modules/KuaiShouConversionInfosModal'
+  import { JeecgListMixin } from '@/mixins/JeecgListMixin'
+
+  export default {
+    name: "KuaiShouConversionInfosList",
+    mixins:[JeecgListMixin],
+    components: {
+      KuaiShouConversionInfosModal
+    },
+    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: '是否有激活出价权限 0:没有 1:有',
+            align:"center",
+            dataIndex: 'isActivate'
+           },
+		   {
+            title: 'isFormSubmit',
+            align:"center",
+            dataIndex: 'isFormSubmit'
+           },
+          {
+            title: '操作',
+            dataIndex: 'action',
+            align:"center",
+            scopedSlots: { customRender: 'action' },
+          }
+        ],
+		url: {
+          list: "/kuaishou/kuaiShouConversionInfos/list",
+          delete: "/kuaishou/kuaiShouConversionInfos/delete",
+          deleteBatch: "/kuaishou/kuaiShouConversionInfos/deleteBatch",
+          exportXlsUrl: "kuaishou/kuaiShouConversionInfos/exportXls",
+          importExcelUrl: "kuaishou/kuaiShouConversionInfos/importExcel",
+       },
+    }
+  },
+  computed: {
+    importExcelUrl: function(){
+      return `${window._CONFIG['domianURL']}/${this.url.importExcelUrl}`;
+    }
+  },
+    methods: {
+     
+    }
+  }
+</script>
+<style scoped>
+  @import '~@assets/less/common.less'
+</style>

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

@@ -0,0 +1,168 @@
+<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="深度转化类型">
+              <a-input placeholder="请输入深度转化类型" v-model="queryParam.deepConversionTypes"></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.desc"></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 -->
+
+    <!-- 表单区域 -->
+    <kuaiShouConversionTypes-modal ref="modalForm" @ok="modalFormOk"></kuaiShouConversionTypes-modal>
+  </a-card>
+</template>
+
+<script>
+  import KuaiShouConversionTypesModal from './modules/KuaiShouConversionTypesModal'
+  import { JeecgListMixin } from '@/mixins/JeecgListMixin'
+
+  export default {
+    name: "KuaiShouConversionTypesList",
+    mixins:[JeecgListMixin],
+    components: {
+      KuaiShouConversionTypesModal
+    },
+    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: '深度转化类型',
+            align:"center",
+            dataIndex: 'deepConversionTypes'
+           },
+		   {
+            title: '深度转化类型描述',
+            align:"center",
+            dataIndex: 'desc'
+           },
+          {
+            title: '操作',
+            dataIndex: 'action',
+            align:"center",
+            scopedSlots: { customRender: 'action' },
+          }
+        ],
+		url: {
+          list: "/kuaishou/kuaiShouConversionTypes/list",
+          delete: "/kuaishou/kuaiShouConversionTypes/delete",
+          deleteBatch: "/kuaishou/kuaiShouConversionTypes/deleteBatch",
+          exportXlsUrl: "kuaishou/kuaiShouConversionTypes/exportXls",
+          importExcelUrl: "kuaishou/kuaiShouConversionTypes/importExcel",
+       },
+    }
+  },
+  computed: {
+    importExcelUrl: function(){
+      return `${window._CONFIG['domianURL']}/${this.url.importExcelUrl}`;
+    }
+  },
+    methods: {
+     
+    }
+  }
+</script>
+<style scoped>
+  @import '~@assets/less/common.less'
+</style>

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

@@ -0,0 +1,208 @@
+<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.unitId"></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.creativeName"></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.photoId"></a-input>
+            </a-form-item>
+          </a-col>
+          <a-col :md="6" :sm="8">
+            <a-form-item label="封面图片token">
+              <a-input placeholder="请输入封面图片token" v-model="queryParam.imageToken"></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 -->
+
+    <!-- 表单区域 -->
+    <kuaiShouCreativeCreate-modal ref="modalForm" @ok="modalFormOk"></kuaiShouCreativeCreate-modal>
+  </a-card>
+</template>
+
+<script>
+  import KuaiShouCreativeCreateModal from './modules/KuaiShouCreativeCreateModal'
+  import { JeecgListMixin } from '@/mixins/JeecgListMixin'
+
+  export default {
+    name: "KuaiShouCreativeCreateList",
+    mixins:[JeecgListMixin],
+    components: {
+      KuaiShouCreativeCreateModal
+    },
+    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: 'unitId'
+           },
+		   {
+            title: '广告创意名称',
+            align:"center",
+            dataIndex: 'creativeName'
+           },
+		   {
+            title: '视频作品ID',
+            align:"center",
+            dataIndex: 'photoId'
+           },
+		   {
+            title: '封面图片token',
+            align:"center",
+            dataIndex: 'imageToken'
+           },
+		   {
+            title: '行动号召按钮文案',
+            align:"center",
+            dataIndex: 'actionBarText'
+           },
+		   {
+            title: '广告语',
+            align:"center",
+            dataIndex: 'description'
+           },
+		   {
+            title: '点击测试链接',
+            align:"center",
+            dataIndex: 'clickTrackUrl'
+           },
+		   {
+            title: '广告创意ID',
+            align:"center",
+            dataIndex: 'creativeId'
+           },
+          {
+            title: '操作',
+            dataIndex: 'action',
+            align:"center",
+            scopedSlots: { customRender: 'action' },
+          }
+        ],
+		url: {
+          list: "/kuaishou/kuaiShouCreativeCreate/list",
+          delete: "/kuaishou/kuaiShouCreativeCreate/delete",
+          deleteBatch: "/kuaishou/kuaiShouCreativeCreate/deleteBatch",
+          exportXlsUrl: "kuaishou/kuaiShouCreativeCreate/exportXls",
+          importExcelUrl: "kuaishou/kuaiShouCreativeCreate/importExcel",
+       },
+    }
+  },
+  computed: {
+    importExcelUrl: function(){
+      return `${window._CONFIG['domianURL']}/${this.url.importExcelUrl}`;
+    }
+  },
+    methods: {
+     
+    }
+  }
+</script>
+<style scoped>
+  @import '~@assets/less/common.less'
+</style>

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

@@ -0,0 +1,258 @@
+<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>

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

@@ -0,0 +1,223 @@
+<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.unitId"></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.region"></a-input>
+            </a-form-item>
+          </a-col>
+          <a-col :md="6" :sm="8">
+            <a-form-item label="年龄最小限制">
+              <a-input placeholder="请输入年龄最小限制" v-model="queryParam.ageMin"></a-input>
+            </a-form-item>
+          </a-col>
+          <a-col :md="6" :sm="8">
+            <a-form-item label="年龄最大限制">
+              <a-input placeholder="请输入年龄最大限制" v-model="queryParam.ageMax"></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 -->
+
+    <!-- 表单区域 -->
+    <kuaiShouGroupCreateTarget-modal ref="modalForm" @ok="modalFormOk"></kuaiShouGroupCreateTarget-modal>
+  </a-card>
+</template>
+
+<script>
+  import KuaiShouGroupCreateTargetModal from './modules/KuaiShouGroupCreateTargetModal'
+  import { JeecgListMixin } from '@/mixins/JeecgListMixin'
+
+  export default {
+    name: "KuaiShouGroupCreateTargetList",
+    mixins:[JeecgListMixin],
+    components: {
+      KuaiShouGroupCreateTargetModal
+    },
+    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: 'unitId'
+           },
+		   {
+            title: '地域',
+            align:"center",
+            dataIndex: 'region'
+           },
+		   {
+            title: '年龄最小限制',
+            align:"center",
+            dataIndex: 'ageMin'
+           },
+		   {
+            title: '年龄最大限制',
+            align:"center",
+            dataIndex: 'ageMax'
+           },
+		   {
+            title: '性别 1:女性, 2:男性, 0:不限',
+            align:"center",
+            dataIndex: 'gender'
+           },
+		   {
+            title: '操作系统 1: Android, 2: iOS, 0:不限',
+            align:"center",
+            dataIndex: 'platformOs'
+           },
+		   {
+            title: '安卓版本  3:不限, 4: 4.x+, 5: 5.x+, 6: 6.x+, 7: 7.x+;',
+            align:"center",
+            dataIndex: 'androidOsv'
+           },
+		   {
+            title: 'ios版本  6:不限, 7: 7.x+, 8: 8.x+,9: 9.x+, 10: 10.x+',
+            align:"center",
+            dataIndex: 'iosOsv'
+           },
+		   {
+            title: '网络环境 1: Wi-Fi, 2:移动网络,0:表示不限',
+            align:"center",
+            dataIndex: 'network'
+           },
+		   {
+            title: '设备品牌 1: OPPO, 2: VIVO,3:华为, 4:小米,5:荣耀, 6:三星,7:金立, 8:魅族,9:乐视, 10:其他,11 : 苹 果',
+            align:"center",
+            dataIndex: 'deviceBrand'
+           },
+		   {
+            title: '设备价格 1: 1500 元以下,2: 1501~2000,3: 2001~2500,4: 2501~3000,5: 3001~3500,6: 3501~4000,7: 4001~4500,8: 4501~5000,9: 5001~5500,10: 5500 元以上',
+            align:"center",
+            dataIndex: 'devicePrice'
+           },
+          {
+            title: '操作',
+            dataIndex: 'action',
+            align:"center",
+            scopedSlots: { customRender: 'action' },
+          }
+        ],
+		url: {
+          list: "/kuaishou/kuaiShouGroupCreateTarget/list",
+          delete: "/kuaishou/kuaiShouGroupCreateTarget/delete",
+          deleteBatch: "/kuaishou/kuaiShouGroupCreateTarget/deleteBatch",
+          exportXlsUrl: "kuaishou/kuaiShouGroupCreateTarget/exportXls",
+          importExcelUrl: "kuaishou/kuaiShouGroupCreateTarget/importExcel",
+       },
+    }
+  },
+  computed: {
+    importExcelUrl: function(){
+      return `${window._CONFIG['domianURL']}/${this.url.importExcelUrl}`;
+    }
+  },
+    methods: {
+     
+    }
+  }
+</script>
+<style scoped>
+  @import '~@assets/less/common.less'
+</style>

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

@@ -0,0 +1,198 @@
+<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="视频预览链接">
+              <a-input placeholder="请输入视频预览链接" v-model="queryParam.url"></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.width"></a-input>
+            </a-form-item>
+          </a-col>
+          <a-col :md="6" :sm="8">
+            <a-form-item label="高">
+              <a-input placeholder="请输入高" v-model="queryParam.height"></a-input>
+            </a-form-item>
+          </a-col>
+          <a-col :md="6" :sm="8">
+            <a-form-item label="图片大小">
+              <a-input placeholder="请输入图片大小" v-model="queryParam.size"></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 -->
+
+    <!-- 表单区域 -->
+    <kuaiShouImageGet-modal ref="modalForm" @ok="modalFormOk"></kuaiShouImageGet-modal>
+  </a-card>
+</template>
+
+<script>
+  import KuaiShouImageGetModal from './modules/KuaiShouImageGetModal'
+  import { JeecgListMixin } from '@/mixins/JeecgListMixin'
+
+  export default {
+    name: "KuaiShouImageGetList",
+    mixins:[JeecgListMixin],
+    components: {
+      KuaiShouImageGetModal
+    },
+    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: '视频预览链接',
+            align:"center",
+            dataIndex: 'url'
+           },
+		   {
+            title: '宽',
+            align:"center",
+            dataIndex: 'width'
+           },
+		   {
+            title: '高',
+            align:"center",
+            dataIndex: 'height'
+           },
+		   {
+            title: '图片大小',
+            align:"center",
+            dataIndex: 'size'
+           },
+		   {
+            title: '图片格式',
+            align:"center",
+            dataIndex: 'format'
+           },
+		   {
+            title: '图片 token',
+            align:"center",
+            dataIndex: 'imageToken'
+           },
+          {
+            title: '操作',
+            dataIndex: 'action',
+            align:"center",
+            scopedSlots: { customRender: 'action' },
+          }
+        ],
+		url: {
+          list: "/kuaishou/kuaiShouImageGet/list",
+          delete: "/kuaishou/kuaiShouImageGet/delete",
+          deleteBatch: "/kuaishou/kuaiShouImageGet/deleteBatch",
+          exportXlsUrl: "kuaishou/kuaiShouImageGet/exportXls",
+          importExcelUrl: "kuaishou/kuaiShouImageGet/importExcel",
+       },
+    }
+  },
+  computed: {
+    importExcelUrl: function(){
+      return `${window._CONFIG['domianURL']}/${this.url.importExcelUrl}`;
+    }
+  },
+    methods: {
+     
+    }
+  }
+</script>
+<style scoped>
+  @import '~@assets/less/common.less'
+</style>

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


部分文件因文件數量過多而無法顯示