Ver código fonte

增加快手广告主管理

xuzuoyun 5 anos atrás
pai
commit
293d9ecd44

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

@@ -87,6 +87,7 @@ public class ShiroConfig {
 		filterChainDefinitionMap.put("/ctop/syncdata/**", "anon");
 		//头条接口
 		filterChainDefinitionMap.put("/toutiao/**", "anon");
+        filterChainDefinitionMap.put("/kuaishou", "anon");
 
 		//爬虫接口
 		filterChainDefinitionMap.put("/graphql/video", "anon");

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

@@ -44,6 +44,7 @@ public class AdCoverController {
         String industry = paramMap.get("industry")!=null?sysCategoryService.getById(paramMap.get("industry")[0]).getName():null;
         String company = paramMap.get("company")!=null?paramMap.get("company")[0]:null;
         String product = paramMap.get("product")!=null?paramMap.get("product")[0]:null;
+        String userName = paramMap.get("userName") != null ? paramMap.get("userName")[0] : null;
         String start = paramMap.get("start")!=null?paramMap.get("start")[0]:null;
         String end = paramMap.get("end")!=null?paramMap.get("end")[0]:null;
         String orderByColumn = paramMap.get("orderByColumn")!=null?paramMap.get("orderByColumn")[0]:null;
@@ -53,7 +54,7 @@ public class AdCoverController {
 //        Integer pageSize = paramMap.get("pageSize")!=null?paramMap.get("orderByType")[0]:null;
         int pageStart = (pageNo-1)*pageSize;
         Page<AppAd> page = new Page<AppAd>(pageNo, pageSize);
-        List<AppAd> list = appAdService.queryAdFeeds(industry,company,product,start,end,orderByColumn,orderByType,pageStart,pageSize);
+        List<AppAd> list = appAdService.queryAdFeeds(userName, industry, company, product, start, end, orderByColumn, orderByType, pageStart, pageSize);
         result.setResult(list);
         result.setSuccess(true);
         return result;

+ 64 - 2
jeecg-boot-module-system/src/main/java/org/jeecg/modules/ctop/controller/KuaishouAdvertiserController.java

@@ -13,6 +13,8 @@ import org.jeecg.common.api.vo.Result;
 import org.jeecg.common.aspect.annotation.AutoLog;
 import org.jeecg.common.system.query.QueryGenerator;
 import org.jeecg.common.util.oConvertUtils;
+import org.jeecg.modules.system.entity.SysCategory;
+import org.jeecg.modules.system.service.ISysCategoryService;
 import org.jeecgframework.poi.excel.ExcelImportUtil;
 import org.jeecgframework.poi.excel.def.NormalExcelConstants;
 import org.jeecgframework.poi.excel.entity.ExportParams;
@@ -30,6 +32,7 @@ import java.io.IOException;
 import java.io.UnsupportedEncodingException;
 import java.net.URLDecoder;
 import java.util.Arrays;
+import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 
@@ -40,6 +43,8 @@ import java.util.Map;
 public class KuaishouAdvertiserController {
     @Autowired
     private IKuaishouAdAccountService kuaishouAdAccountService;
+    @Autowired
+    private ISysCategoryService sysCategoryService;
     /**
      * 分页列表查询
      * @param kuaishouAdAccount
@@ -56,7 +61,46 @@ public class KuaishouAdvertiserController {
                                                           @RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
                                                           HttpServletRequest req) {
         Result<IPage<KuaishouAdAccount>> result = new Result<IPage<KuaishouAdAccount>>();
-        QueryWrapper<KuaishouAdAccount> queryWrapper = QueryGenerator.initQueryWrapper(kuaishouAdAccount, req.getParameterMap());
+        Map<String, String[]> paramMap = new HashMap<>(req.getParameterMap());
+        paramMap.remove("dataProcess");
+        paramMap.remove("industry");
+        paramMap.remove("name");
+        String industry = req.getParameter("industry");
+        String name = req.getParameter("name");
+        SysCategory sysCategory = sysCategoryService.getById(industry);
+        kuaishouAdAccount.setDataProcess(null);
+        kuaishouAdAccount.setIndustry(null);
+        QueryWrapper<KuaishouAdAccount> queryWrapper = QueryGenerator.initQueryWrapper(kuaishouAdAccount, paramMap);
+        String dataProcess = req.getParameter("dataProcess");
+        if (name != null) {
+            queryWrapper.like("name", "%" + name + "%");
+        }
+        if (sysCategory != null) {
+            queryWrapper.eq("industry_category", sysCategory.getName()).or()
+                    .eq("first_industry", sysCategory.getName()).or()
+                    .eq("second_industry", sysCategory.getName());
+        }
+        if (dataProcess != null) {
+            if (dataProcess.equals("industry")) {
+                queryWrapper.isNull("industry_category").or().isNull("first_industry").or().isNull("second_industry").isNull("industry_category").or().isNull("first_industry").or().isNull("second_industry").or().eq("second_industry", "").or().eq("second_industry", "").or().eq("second_industry", "");
+            } else if (dataProcess.equals("company")) {
+                queryWrapper.isNull("company").or().eq("company", "");
+            } else if (dataProcess.equals("product")) {
+                queryWrapper.isNull("product").or().eq("product", "");
+            } else if (dataProcess.equals("full")) {
+                queryWrapper.isNotNull("industry_category");
+                queryWrapper.ne("industry_category", "");
+                queryWrapper.isNotNull("first_industry");
+                queryWrapper.ne("first_industry", "");
+                queryWrapper.isNotNull("second_industry");
+                queryWrapper.ne("second_industry", "");
+                queryWrapper.isNotNull("company");
+                queryWrapper.ne("company", "");
+                queryWrapper.isNotNull("product");
+                queryWrapper.ne("product", "");
+            }
+        }
+
         Page<KuaishouAdAccount> page = new Page<KuaishouAdAccount>(pageNo, pageSize);
         IPage<KuaishouAdAccount> pageList = kuaishouAdAccountService.page(page, queryWrapper);
         result.setSuccess(true);
@@ -75,6 +119,13 @@ public class KuaishouAdvertiserController {
     public Result<KuaishouAdAccount> add(@RequestBody KuaishouAdAccount kuaishouAdAccount) {
         Result<KuaishouAdAccount> result = new Result<KuaishouAdAccount>();
         try {
+            String industry = kuaishouAdAccount.getIndustry();
+            SysCategory secondCategory = sysCategoryService.getById(industry);
+            kuaishouAdAccount.setSecondIndustry(secondCategory.getName());
+            SysCategory firstCategory = sysCategoryService.getById(secondCategory.getPid());
+            kuaishouAdAccount.setFirstIndustry(firstCategory.getName());
+            SysCategory industryCategory = sysCategoryService.getById(firstCategory.getPid());
+            kuaishouAdAccount.setIndustryCategory(industryCategory.getName());
             kuaishouAdAccountService.save(kuaishouAdAccount);
             result.success("添加成功!");
         } catch (Exception e) {
@@ -95,10 +146,21 @@ public class KuaishouAdvertiserController {
     public Result<KuaishouAdAccount> edit(@RequestBody KuaishouAdAccount kuaishouAdAccount) {
         Result<KuaishouAdAccount> result = new Result<KuaishouAdAccount>();
         KuaishouAdAccount kuaishouAdAccountEntity = kuaishouAdAccountService.getById(kuaishouAdAccount.getKsid());
+
         if(kuaishouAdAccountEntity==null) {
             result.error500("未找到对应实体");
         }else {
-            boolean ok = kuaishouAdAccountService.updateById(kuaishouAdAccount);
+            String industry = kuaishouAdAccount.getIndustry();
+            SysCategory secondCategory = sysCategoryService.getById(industry);
+            kuaishouAdAccount.setSecondIndustry(secondCategory.getName());
+            SysCategory firstCategory = sysCategoryService.getById(secondCategory.getPid());
+            kuaishouAdAccount.setFirstIndustry(firstCategory.getName());
+            SysCategory industryCategory = sysCategoryService.getById(firstCategory.getPid());
+            kuaishouAdAccount.setIndustryCategory(industryCategory.getName());
+            QueryWrapper<KuaishouAdAccount> queryWrapper = new QueryWrapper<KuaishouAdAccount>();
+            queryWrapper.eq("ksid", kuaishouAdAccount.getKsid());
+            boolean ok = kuaishouAdAccountService.update(kuaishouAdAccount, queryWrapper);
+//            boolean ok = kuaishouAdAccountService.updateById(kuaishouAdAccount);
             //TODO 返回false说明什么?
             if(ok) {
                 result.success("修改成功!");

+ 1 - 1
jeecg-boot-module-system/src/main/resources/application.yml

@@ -1,6 +1,6 @@
 spring:
   profiles:
-    active: dev
+    active: prod
 swagger:
   production: false
   basic:

+ 4 - 0
module-crawler/src/main/java/cn/com/ctop/crawler/modules/account/entity/KuaishouAdAccount.java

@@ -21,6 +21,10 @@ public class KuaishouAdAccount {
     private String industryCategory;
     private String firstIndustry;
     private String secondIndustry;
+    @TableField(exist = false)
+    private String industry;
+    @TableField(exist = false)
+    private String dataProcess;
     private String company;
     private String product;
     @TableField(exist = false)

+ 1 - 1
module-kuaishou/src/main/java/cn/com/ctop/kuaishou/modules/app/mapper/AppAdMapper.java

@@ -8,6 +8,6 @@ import org.apache.ibatis.annotations.Param;
 import java.util.List;
 
 public interface AppAdMapper extends BaseMapper<AppAd> {
-    public List<AppAd> queryAdFeeds(@Param("industry")String industry, @Param("company")String company, @Param("product")String product, @Param("start")String start, @Param("end")String end, @Param("orderByColumn")String orderByColumn, @Param("orderByType")String orderByType, @Param("pageStart")Integer pageStart, @Param("pageSize")Integer pageSize);
+    public List<AppAd> queryAdFeeds(@Param("userName") String userName, @Param("industry") String industry, @Param("company") String company, @Param("product") String product, @Param("start") String start, @Param("end") String end, @Param("orderByColumn") String orderByColumn, @Param("orderByType") String orderByType, @Param("pageStart") Integer pageStart, @Param("pageSize") Integer pageSize);
 
 }

+ 3 - 0
module-kuaishou/src/main/java/cn/com/ctop/kuaishou/modules/app/mapper/xml/AppAdMapper.xml

@@ -29,6 +29,9 @@
         <if test="start != null and end != null">
             and time between '${start} 00:00:00' and '${end} 23:59:59'
         </if>
+        <if test="userName != null">
+            and user_name like '%${userName}%'
+        </if>
         order by ${orderByColumn} ${orderByType}
         limit ${pageStart},${pageSize}
     </select>

+ 1 - 1
module-kuaishou/src/main/java/cn/com/ctop/kuaishou/modules/app/service/IAppAdService.java

@@ -6,5 +6,5 @@ import com.baomidou.mybatisplus.extension.service.IService;
 import java.util.List;
 
 public interface IAppAdService extends IService<AppAd> {
-    public List<AppAd> queryAdFeeds(String industry, String company, String product, String start, String end, String orderByColumn, String orderByType, Integer pageStart, Integer pageSize);
+    public List<AppAd> queryAdFeeds(String userName, String industry, String company, String product, String start, String end, String orderByColumn, String orderByType, Integer pageStart, Integer pageSize);
 }

+ 3 - 2
module-kuaishou/src/main/java/cn/com/ctop/kuaishou/modules/app/service/impl/AppAdServiceImpl.java

@@ -14,7 +14,8 @@ import java.util.List;
 public class AppAdServiceImpl extends ServiceImpl<AppAdMapper, AppAd> implements IAppAdService {
     @Autowired
     private AppAdMapper appAdMapper;
-    public List<AppAd> queryAdFeeds(String industry, String company, String product, String start, String end, String orderByColumn, String orderByType, Integer pageStart, Integer pageSize){
-        return appAdMapper.queryAdFeeds(industry,company,product,start,end,orderByColumn,orderByType,pageStart,pageSize);
+
+    public List<AppAd> queryAdFeeds(String userName, String industry, String company, String product, String start, String end, String orderByColumn, String orderByType, Integer pageStart, Integer pageSize) {
+        return appAdMapper.queryAdFeeds(userName, industry, company, product, start, end, orderByColumn, orderByType, pageStart, pageSize);
     }
 }

+ 2 - 8
module-kuaishou/src/main/java/cn/com/ctop/kuaishou/modules/app/service/impl/KuaishouAppServiceImpl.java

@@ -96,27 +96,21 @@ public class KuaishouAppServiceImpl implements IKuaishouAppService {
             e.printStackTrace();
         }
     }
-
     public void adAccountFetch(KuaishouAdAccount kuaishouAdAccount,String pcursor){
         String userProfileStr = kuaishouCrawlerService.getUserProfile(kuaishouAdAccount.getKsid());
         ObjectMapper mapper = new ObjectMapper();
         mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
-
-
         try {
             JsonNode userProfileNode = mapper.readTree(userProfileStr);
             System.out.println(userProfileStr);
             int photoCount = userProfileNode.get("userProfile").get("ownerCount").get("photo").asInt();
-            AppVideo video = new AppVideo();
-            video.setUserId(kuaishouAdAccount.getKsid());
-            QueryWrapper<AppVideo> queryWrapper = QueryGenerator.initQueryWrapper(video, new HashMap());
-
+            QueryWrapper<AppVideo> queryWrapper = new QueryWrapper<AppVideo>();
+            queryWrapper.eq("user_id", kuaishouAdAccount.getKsid());
             int videoCount = appVideoService.count(queryWrapper);
             if (photoCount <= videoCount) {
                 return;
             }
             String adAccountVideoFeeds = kuaishouCrawlerService.getAdAccountVideoFeeds(kuaishouAdAccount, pcursor);
-
             JsonNode node = mapper.readTree(adAccountVideoFeeds);
             List<AppVideo> list = mapper.readValue(node.get("feeds").toString(),new TypeReference<List<AppVideo>>(){});
             pcursor = node.get("pcursor").asText();

Diferenças do arquivo suprimidas por serem muito extensas
+ 161 - 10
module-kuaishou/src/main/java/cn/com/ctop/kuaishou/modules/graphql/service/impl/KuaishouWebInterfaceServiceImpl.java