瀏覽代碼

自动投放组超限,水印生成失败修改

yumeng 4 年之前
父節點
當前提交
184d1e71a4

+ 24 - 9
module-common/src/main/java/cn/com/ctop/common/module/service/impl/MaterialInfoServiceImpl.java

@@ -3,9 +3,13 @@ package cn.com.ctop.common.module.service.impl;
 import cn.com.ctop.common.module.constant.CosConstant;
 import cn.com.ctop.common.module.entity.*;
 import cn.com.ctop.common.module.enums.MaterialSupplierEnum;
-import cn.com.ctop.common.module.mapper.*;
+import cn.com.ctop.common.module.mapper.MaterialAscriptionMapper;
+import cn.com.ctop.common.module.mapper.MaterialInfoMapper;
+import cn.com.ctop.common.module.mapper.MaterialParameterMapper;
+import cn.com.ctop.common.module.mapper.MaterialTagMapper;
 import cn.com.ctop.common.module.service.*;
 import cn.com.ctop.common.module.utils.*;
+import cn.com.ctop.common.module.vo.ResFileDTO;
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
@@ -23,10 +27,7 @@ import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Service;
 
 import javax.annotation.Resource;
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileNotFoundException;
-import java.io.IOException;
+import java.io.*;
 import java.math.BigDecimal;
 import java.math.RoundingMode;
 import java.net.URLDecoder;
@@ -76,7 +77,23 @@ public class MaterialInfoServiceImpl extends ServiceImpl<MaterialInfoMapper, Mat
     public void watermarkVideo(String materialId, Long videoWatermarkTemplateId, String userId) {
         TencentWatermarkTemplate tentcentWatermarkTemplate = tencentWatermarkTemplateService.getById(videoWatermarkTemplateId);
         MaterialInfo materialInfo = this.getById(materialId);
-        String path = URLDecoder.decode(materialInfo.getUrl().substring(materialInfo.getUrl().indexOf("/", 10) + 1, materialInfo.getUrl().length()));
+        if (Check.isNull(materialInfo)) {
+            return;
+        }
+        if (Check.isNull(materialInfo.getUrl())) {
+            return;
+        }
+        String fileUrl = "";
+        InputStream imageStream = LoadFileUtil.getFileStream(materialInfo.getUrl());
+        if (!Check.isNull(imageStream)) {
+            long time = System.currentTimeMillis();
+            ResFileDTO file = CosUtils.uploadDetailInputStreamV2(imageStream, time + ".mp4", "mp4", 0L, "temp/");
+            fileUrl = file.getFileUrl();
+        }
+        if (Check.isNull(fileUrl)) {
+            return;
+        }
+        String path = URLDecoder.decode(fileUrl.substring(fileUrl.indexOf("/", 10) + 1, fileUrl.length()));
         String taskId = videoWatermarkHandle(path, tentcentWatermarkTemplate.getTemplateId());
         DescribeTaskDetailResponse taskDetailResponse = null;
         for (int i = 0; i < 30; i++) {
@@ -472,8 +489,6 @@ public class MaterialInfoServiceImpl extends ServiceImpl<MaterialInfoMapper, Mat
     }
 
 
-
-
     @Autowired
     private IMaterialImageInfoService materialImageInfoService;
     @Autowired
@@ -558,7 +573,7 @@ public class MaterialInfoServiceImpl extends ServiceImpl<MaterialInfoMapper, Mat
                 MaterialAscription materialAscription = new MaterialAscription();
                 materialAscription.setMaterialId(info.getCode());
                 String clipId = ascription.getString("clipId");
-                if(null!=clipId&&!"".equals(clipId.trim())){
+                if (null != clipId && !"".equals(clipId.trim())) {
                     materialAscription.setClipId(clipId);
                 }
                 materialAscription.setShotId(ascription.getString("shotId"));

+ 21 - 0
module-kuaishou/src/main/java/cn/com/ctop/kuaishou/modules/ai/controller/AiKuaishouCreateCreativeController.java

@@ -48,6 +48,12 @@ public class AiKuaishouCreateCreativeController {
             if (Check.isNull(strategy)) {
                 throw new Exception("根据id获取详细信息为空");
             }
+            Boolean unitOverrun = createCreativeService.getUnitOverrun(strategy.getAccountId());
+            if (unitOverrun) {
+                log.error("组创建超限,accountId:{}", strategy.getAccountId());
+                throw new Exception("今日组创建已超限");
+            }
+
             executorService.submit(() ->
                     createCreativeService.customCreativeLimit(strategy)
             );
@@ -79,6 +85,11 @@ public class AiKuaishouCreateCreativeController {
             if (Check.isNull(strategy)) {
                 throw new Exception("根据id获取详细信息为空");
             }
+            Boolean unitOverrun = createCreativeService.getUnitOverrun(strategy.getAccountId());
+            if (unitOverrun) {
+                log.error("组创建超限,accountId:{}", strategy.getAccountId());
+                throw new Exception("今日组创建已超限");
+            }
             if (Check.isNull(hour)) {
                 throw new Exception("小时数据为空");
             }
@@ -121,6 +132,11 @@ public class AiKuaishouCreateCreativeController {
             if (Check.isNull(strategy)) {
                 throw new Exception("根据id获取详细信息为空");
             }
+            Boolean unitOverrun = createCreativeService.getUnitOverrun(strategy.getAccountId());
+            if (unitOverrun) {
+                log.error("组创建超限,accountId:{}", strategy.getAccountId());
+                throw new Exception("今日组创建已超限");
+            }
             if (Check.isNull(videoCnt)) {
                 throw new Exception("视频数量不能为空");
             }
@@ -156,6 +172,11 @@ public class AiKuaishouCreateCreativeController {
             if (Check.isNull(strategy)) {
                 throw new Exception("根据id获取详细信息为空");
             }
+            Boolean unitOverrun = createCreativeService.getUnitOverrun(strategy.getAccountId());
+            if (unitOverrun) {
+                log.error("组创建超限,accountId:{}", strategy.getAccountId());
+                throw new Exception("今日组创建已超限");
+            }
             if (Check.isNull(videoCnt)) {
                 throw new Exception("视频数量不能为空");
             }

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

@@ -7,9 +7,12 @@ import java.text.ParseException;
 public interface IAiKuaishouCreateCreativeService {
     Long autoCreateCreative(AiKuaishouAdvertiserStrategy strategy, Integer createType, Long videoCnt);
 
-    void autoCreateProgramCreative(AiKuaishouAdvertiserStrategy strategy,Integer createType,Long videoCnt);
+    void autoCreateProgramCreative(AiKuaishouAdvertiserStrategy strategy, Integer createType, Long videoCnt);
 
-    void customCreativeSupplement(AiKuaishouAdvertiserStrategy strategy,Integer hour) throws ParseException;
+    void customCreativeSupplement(AiKuaishouAdvertiserStrategy strategy, Integer hour) throws ParseException;
 
     void customCreativeLimit(AiKuaishouAdvertiserStrategy strategy);
+
+    // 组创建是否超限
+    Boolean getUnitOverrun(Long accountId);
 }

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

@@ -13,7 +13,6 @@ public interface IKuaishouAccountCreativeOverrunInfoService extends IService<Kua
 
     void stopCreativeBySignature(Long accountId,String signature);
 
-
     void updateOverrunInfo(Long advertiserId);
 
     KuaishouAccountCreativeOverrunInfo getByParams(Long accountId, String date);

+ 58 - 8
module-kuaishou/src/main/java/cn/com/ctop/kuaishou/modules/ai/service/impl/AiKuaishouCreateCreativeServiceImpl.java

@@ -119,6 +119,12 @@ public class AiKuaishouCreateCreativeServiceImpl implements IAiKuaishouCreateCre
                         }
                         Long newCampaignId = getCampaignId(strategy, token, replaceString, "ALL_CAMPAIGN", createType, appInfo.getAppId(), strategyUuid);
                         for (KuaiShouVideoGet videoItem : allVideos) {
+                            Boolean unitOverrun = getUnitOverrun(accountId);
+                            if (unitOverrun) {
+                                log.error("组创建超限,accountId:{}", accountId);
+                                return 0L;
+                            }
+
                             KuaishouAccountCreativeOverrunInfo overrunInfo = overrunInfoService.getByParams(accountId, DateUtils.formatDate(new Date()));
                             if (null != overrunInfo) {
                                 log.info("该账户创意创建已超限=>accountId:{}", accountId);
@@ -180,6 +186,13 @@ public class AiKuaishouCreateCreativeServiceImpl implements IAiKuaishouCreateCre
                         continue;
                     }
                     for (int i = 0; i < appIdArray.size(); i++) {
+
+                        Boolean unitOverrun = getUnitOverrun(accountId);
+                        if (unitOverrun) {
+                            log.error("组创建超限,accountId:{}", accountId);
+                            return 0L;
+                        }
+
                         Long appId = appIdArray.getLong(i);
                         if (Check.isNull(appId)) {
                             continue;
@@ -261,6 +274,13 @@ public class AiKuaishouCreateCreativeServiceImpl implements IAiKuaishouCreateCre
             }
             //3、在“上新”计划中新增广告组,一个素材搭配n张封面,组成一个广告组
             for (KuaiShouVideoGet videoItem : newVideos) {
+
+                Boolean unitOverrun = getUnitOverrun(accountId);
+                if (unitOverrun) {
+                    log.error("组创建超限,accountId:{}", accountId);
+                    return 0L;
+                }
+
                 KuaishouAccountCreativeOverrunInfo overrunInfo = overrunInfoService.getByParams(accountId, DateUtils.formatDate(new Date()));
                 if (null != overrunInfo) {
                     return 0L;
@@ -375,6 +395,12 @@ public class AiKuaishouCreateCreativeServiceImpl implements IAiKuaishouCreateCre
                         if (null == allVideos || allVideos.isEmpty()) {
                             return;
                         }
+                        Boolean unitOverrun = getUnitOverrun(accountId);
+                        if (unitOverrun) {
+                            log.error("组创建超限,accountId:{}", accountId);
+                            return;
+                        }
+
                         //判定创意创建是否超限
                         KuaishouAccountCreativeOverrunInfo overrunInfo = overrunInfoService.getByParams(accountId, DateUtils.formatDate(new Date()));
                         if (null != overrunInfo) {
@@ -439,6 +465,12 @@ public class AiKuaishouCreateCreativeServiceImpl implements IAiKuaishouCreateCre
                     }
                     for (KuaiShouVideoGet videoGet : kuaiShouVideoGets) {
                         for (int i = 0; i < appIdArray.size(); i++) {
+                            Boolean unitOverrun = getUnitOverrun(accountId);
+                            if (unitOverrun) {
+                                log.error("组创建超限,accountId:{}", accountId);
+                                return;
+                            }
+
                             Object redisObj = redisUtil.get(key);
                             if (!Check.isNull(redisObj)) {
                                 Integer value = (Integer) redisObj;
@@ -524,6 +556,12 @@ public class AiKuaishouCreateCreativeServiceImpl implements IAiKuaishouCreateCre
             //创意
             List<List<KuaiShouVideoGet>> splitVideos = Lists.partition(allVideos, 5);
             for (int j = 1; j < splitVideos.size() + 1; j++) {
+                Boolean unitOverrun = getUnitOverrun(accountId);
+                if (unitOverrun) {
+                    log.error("组创建超限,accountId:{}", accountId);
+                    return;
+                }
+
                 Object redisObj = redisUtil.get(key);
                 if (!Check.isNull(redisObj)) {
                     Integer value = (Integer) redisObj;
@@ -639,16 +677,11 @@ public class AiKuaishouCreateCreativeServiceImpl implements IAiKuaishouCreateCre
             return;
         }
         Integer code = resultJson.getInteger("code");
-
-
         String message = resultJson.getString("message");
-
         Long unitId = creativeParams.getLong("unit_id");
         if (code == 0) {
             createLandPageAndUnit(creativeParams, resultJson.getJSONObject("data"));
-
             log.info("创建程序化创意成功,accountId:{},unit:{}", token.getAccountId(), unitId);
-
         } else {
             log.error("快手创建程序化创意失败,accountId:{},unitId:{},返回信息:{}", token.getAccountId(), unitId, message);
             if (code == 400001 && "/rest/openapi/v2/creative/advanced/program/create调用已超日限,次日可恢复调用".equals(message)) {
@@ -657,10 +690,7 @@ public class AiKuaishouCreateCreativeServiceImpl implements IAiKuaishouCreateCre
                 redisUtil.set(key, 1, 100000L);
                 updateService.updateUnitStatus(token.getAccessToken(), token.getAccountId(), unitId, 3, "e9ca23d68d884d4ebb19d07889727dae");
             }
-
-
         }
-
     }
 
     //绑定落地页与广告组、创意的关系
@@ -1432,6 +1462,8 @@ public class AiKuaishouCreateCreativeServiceImpl implements IAiKuaishouCreateCre
             updateService.updateUnitStatus(token.getAccessToken(), token.getAccountId(), unitId, 3, "e9ca23d68d884d4ebb19d07889727dae");
         } else if (creativeCode == -1 && creativeMessage.contains("超过可关联的有效创意的上限")) {
             updateService.updateUnitStatus(token.getAccessToken(), token.getAccountId(), unitId, 3, "e9ca23d68d884d4ebb19d07889727dae");
+        } else if (creativeCode == -1 && creativeMessage.contains("视频不存在")) {
+            updateService.updateUnitStatus(token.getAccessToken(), token.getAccountId(), unitId, 3, "e9ca23d68d884d4ebb19d07889727dae");
         }
 
         AiKuaishouCreativeLevelOperationRecord record = new AiKuaishouCreativeLevelOperationRecord();
@@ -1439,6 +1471,7 @@ public class AiKuaishouCreateCreativeServiceImpl implements IAiKuaishouCreateCre
         record.setCreativeName(creativeName);
         record.setStatus(creativeCode);
         record.setDescription(creativeParams.getString("description"));
+        record.setPhotoId(creativeParams.getString("photo_id"));
         record.setMessage(creativeMessage);
         record.setUnitId(unitId);
         record.setAiStrategyUuid(uuid);
@@ -1569,4 +1602,21 @@ public class AiKuaishouCreateCreativeServiceImpl implements IAiKuaishouCreateCre
     }
 
 
+    @Override
+    public Boolean getUnitOverrun(Long accountId) {
+        String nowDate = DateUtils.getNowDate("yyyy-MM-dd");
+        String key = accountId + "_" + nowDate + "unit_create_overrun";
+        Object redisObj = redisUtil.get(key);
+        if (Check.isNull(redisObj)) {
+            return false;
+        }
+        Integer value = (Integer) redisObj;
+        if (value == 1) {
+            return true;
+        } else {
+            return false;
+        }
+
+    }
+
 }

+ 20 - 64
module-kuaishou/src/main/java/cn/com/ctop/kuaishou/modules/batch/service/impl/KuaishouInterfaceServiceImpl.java

@@ -7,67 +7,18 @@ import cn.com.ctop.common.module.enums.MaterialEnum;
 import cn.com.ctop.common.module.service.IMaterialCutFrameService;
 import cn.com.ctop.common.module.service.IOauthConfigService;
 import cn.com.ctop.common.module.service.IUserAllocationService;
-import cn.com.ctop.common.module.utils.Check;
-import cn.com.ctop.common.module.utils.CtopAdConstant;
-import cn.com.ctop.common.module.utils.HttpUtils;
-import cn.com.ctop.common.module.utils.JsonUtil;
-import cn.com.ctop.common.module.utils.KuaishouInterfaceConstant;
-import cn.com.ctop.common.module.utils.PropertiesUtils;
-import cn.com.ctop.kuaishou.modules.ai.service.IAiCreativeLimitService;
-import cn.com.ctop.kuaishou.modules.ai.service.IKuaishouAccountCreativeOverrunInfoService;
-import cn.com.ctop.kuaishou.modules.ai.service.IKuaishouAppPackageService;
-import cn.com.ctop.kuaishou.modules.ai.service.IKuaishouDirectionalPackageService;
-import cn.com.ctop.kuaishou.modules.ai.service.IKuaishouLandpagePackageService;
-import cn.com.ctop.kuaishou.modules.ai.service.IKuaishouPopulationGroupService;
-import cn.com.ctop.kuaishou.modules.batch.entity.KuaiShouAdvertiserBaseInfo;
-import cn.com.ctop.kuaishou.modules.batch.entity.KuaiShouAppList;
-import cn.com.ctop.kuaishou.modules.batch.entity.KuaiShouCampaign;
-import cn.com.ctop.kuaishou.modules.batch.entity.KuaiShouCreative;
-import cn.com.ctop.kuaishou.modules.batch.entity.KuaiShouDailyFlows;
-import cn.com.ctop.kuaishou.modules.batch.entity.KuaiShouGroup;
-import cn.com.ctop.kuaishou.modules.batch.entity.KuaiShouImageGet;
-import cn.com.ctop.kuaishou.modules.batch.entity.KuaiShouRegionListChildren;
-import cn.com.ctop.kuaishou.modules.batch.entity.KuaiShouRegionListParent;
-import cn.com.ctop.kuaishou.modules.batch.entity.KuaiShouTargetingTags;
-import cn.com.ctop.kuaishou.modules.batch.entity.KuaiShouVideoGet;
-import cn.com.ctop.kuaishou.modules.batch.entity.KuaishouPopulation;
+import cn.com.ctop.common.module.utils.*;
+import cn.com.ctop.kuaishou.modules.ai.service.*;
+import cn.com.ctop.kuaishou.modules.batch.entity.*;
 import cn.com.ctop.kuaishou.modules.batch.entity.vo.ConvertVo;
-import cn.com.ctop.kuaishou.modules.batch.mapper.KuaiShouAdvertiserBaseInfoMapper;
-import cn.com.ctop.kuaishou.modules.batch.mapper.KuaiShouAppListMapper;
-import cn.com.ctop.kuaishou.modules.batch.mapper.KuaiShouGroupMapper;
-import cn.com.ctop.kuaishou.modules.batch.mapper.KuaiShouRegionListChildrenMapper;
-import cn.com.ctop.kuaishou.modules.batch.mapper.KuaiShouRegionListParentMapper;
-import cn.com.ctop.kuaishou.modules.batch.mapper.KuaiShouTargetingTagsMapper;
-import cn.com.ctop.kuaishou.modules.batch.service.IKuaiShouCampaignService;
-import cn.com.ctop.kuaishou.modules.batch.service.IKuaiShouCreativeService;
-import cn.com.ctop.kuaishou.modules.batch.service.IKuaiShouDailyFlowsService;
-import cn.com.ctop.kuaishou.modules.batch.service.IKuaiShouGroupService;
-import cn.com.ctop.kuaishou.modules.batch.service.IKuaiShouHistoryReportTaskService;
-import cn.com.ctop.kuaishou.modules.batch.service.IKuaiShouImageGetService;
-import cn.com.ctop.kuaishou.modules.batch.service.IKuaiShouOverRunSendMessageService;
-import cn.com.ctop.kuaishou.modules.batch.service.IKuaiShouVideoGetService;
-import cn.com.ctop.kuaishou.modules.batch.service.IKuaishouInterfaceService;
-import cn.com.ctop.kuaishou.modules.batch.service.IKuaishouPopulationService;
-import cn.com.ctop.kuaishou.modules.batch.service.IWarningOperationService;
+import cn.com.ctop.kuaishou.modules.batch.mapper.*;
+import cn.com.ctop.kuaishou.modules.batch.service.*;
 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.KuaishouReportDailyAccount;
-import cn.com.ctop.kuaishou.modules.report.entity.KuaishouReportDailyCampaign;
-import cn.com.ctop.kuaishou.modules.report.entity.KuaishouReportDailyCreative;
-import cn.com.ctop.kuaishou.modules.report.entity.KuaishouReportDailyCreativeStatistic;
-import cn.com.ctop.kuaishou.modules.report.entity.KuaishouReportHourlyAccount;
-import cn.com.ctop.kuaishou.modules.report.entity.KuaishouReportHourlyCampaign;
-import cn.com.ctop.kuaishou.modules.report.entity.KuaishouReportHourlyCreative;
-import cn.com.ctop.kuaishou.modules.report.entity.KuaishouReportHourlyCreativeStatistic;
-import cn.com.ctop.kuaishou.modules.report.entity.KuaishouReportHourlyGroup;
+import cn.com.ctop.kuaishou.modules.report.entity.*;
 import cn.com.ctop.kuaishou.modules.report.mapper.KuaishouReportDailyAccountMapper;
 import cn.com.ctop.kuaishou.modules.report.mapper.KuaishouReportDailyCampaignMapper;
-import cn.com.ctop.kuaishou.modules.report.service.IKuaishouReportDailyCampaignService;
-import cn.com.ctop.kuaishou.modules.report.service.IKuaishouReportDailyCreativeService;
-import cn.com.ctop.kuaishou.modules.report.service.IKuaishouReportHourlyAccountService;
-import cn.com.ctop.kuaishou.modules.report.service.IKuaishouReportHourlyCampaignService;
-import cn.com.ctop.kuaishou.modules.report.service.IKuaishouReportHourlyCreativeService;
-import cn.com.ctop.kuaishou.modules.report.service.IKuaishouReportHourlyGroupService;
+import cn.com.ctop.kuaishou.modules.report.service.*;
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
@@ -84,6 +35,7 @@ import lombok.var;
 import org.apache.commons.lang3.StringUtils;
 import org.apache.http.ParseException;
 import org.jeecg.common.util.DateUtils;
+import org.jeecg.common.util.RedisUtil;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.core.io.FileSystemResource;
 import org.springframework.http.HttpEntity;
@@ -101,11 +53,7 @@ import java.io.IOException;
 import java.lang.reflect.ParameterizedType;
 import java.lang.reflect.Type;
 import java.text.SimpleDateFormat;
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
 import java.util.concurrent.ExecutorService;
 import java.util.concurrent.Executors;
 
@@ -939,6 +887,9 @@ public class KuaishouInterfaceServiceImpl implements IKuaishouInterfaceService {
      */
 
 
+    @Autowired
+    private RedisUtil redisUtil;
+
     @Override
     public Map<String, Object> adUnitCreate(String accessToken, Long advertiserId, JSONObject requestJson, Integer count) {
         Map<String, Object> returnMap = new HashMap<>();
@@ -1004,7 +955,12 @@ public class KuaishouInterfaceServiceImpl implements IKuaishouInterfaceService {
                     }
 
                 } else {
+                    if (code == 400001 && resultJson.getString("message").equals("/rest/openapi/v2/ad_unit/create调用已超日限")) {
+                        String nowDate = DateUtils.getNowDate("yyyy-MM-dd");
+                        String key = advertiserId + "_" + nowDate + "unit_create_overrun";
+                        redisUtil.set(key, 1, 60 * 60 * 24);
 
+                    }
                     if (code == 500000 && count <= 4) {
                         adUnitCreate(accessToken, advertiserId, requestJson, count + 1);
                     }
@@ -2039,7 +1995,9 @@ public class KuaishouInterfaceServiceImpl implements IKuaishouInterfaceService {
                     if (code == 401000 && resultJson.getString("message").contains("超过可关联的有效创意的上限")) {
                         creativeLimitService.replaceSava(advertiserId, requestJson.getLong("photo_id"));
                     }
-
+                    if (code == 401000 && resultJson.getString("message").contains("视频不存在")) {
+                        creativeLimitService.replaceSava(advertiserId, requestJson.getLong("photo_id"));
+                    }
                     log.error("创建广告创意失败,advertiser_id:{},返回信息:{},入参:{}", advertiserId, resultJson, requestJson, count + 1);
                     returnMap.put("code", -1);
                     returnMap.put("message", resultJson.getString("message"));
@@ -2762,8 +2720,6 @@ public class KuaishouInterfaceServiceImpl implements IKuaishouInterfaceService {
     }
 
 
-
-
     /**
      * 获取定向标签
      *