浏览代码

创意创建

liyuyi@c-top.com.cn 4 年之前
父节点
当前提交
f400f40329

+ 43 - 29
jeecg-boot-module-system/src/main/java/org/jeecg/modules/ads/service/impl/AiStrategyServiceImpl.java

@@ -263,48 +263,49 @@ public class AiStrategyServiceImpl implements IAiStrategyService {
                 // 素材的智能抽帧封面 ctop_material_cut_frame 其中素造的为8张封面,内部的为15张封面
                 List<MaterialCutFrame> cutFrameList =
                         materialCutFrameService.getListByVideoSignature(videoItem.getSignature());
-
                 List<MaterialImageInfo> orgFrameList =
                         materialImageInfoService.getListByVideoSignature(videoItem.getSignature());
 
-
                 JSONArray sceneIdJsonArray = JSONArray.parseArray(strategy.getSceneId());
-
-
                 JSONObject creativeParams = new JSONObject();
                 Integer creativeCnt = 1;
-                if (sceneIdJsonArray.contains(6)&& sceneIdJsonArray.size() == 1){
+                if (sceneIdJsonArray.contains(6) && sceneIdJsonArray.size() == 1){
                     // 如果广告位只包含 上下滑大屏广告(6),则一个素材搭配1张封面,生成1个创意
+                    String imageCode;
+                    String imageUrl;
                     if (cutFrameList.size() == 0 && orgFrameList.size()==0){
                         return;
                     }
                     if (orgFrameList.size()!=0){
-                        String imageCode = orgFrameList.get(0).getCode();
-                        String imageUrl = orgFrameList.get(0).getUrl();
-                        KuaiShouImageGet imageGet = imageGetService.getOneByParams(imageUrl);
-                        if ((null == imageGet) || ("".equals(imageGet.getImageToken()))){
-                            // 如果取不到image_token 则调用上传url的方法kuauiShouImageUpload(url, signature, accountId, oauthToken.getAccessToken());
-                            String imageToken = materialUploadService.kuauiShouImageUpload(imageUrl,imageCode,
-                                    token.getAccountId(),token.getAccessToken());
-                            if (null == imageToken){
-                                return;
-                            }
-                        }
+                        imageCode = orgFrameList.get(0).getCode();
+                        imageUrl = orgFrameList.get(0).getUrl();
                     }
                     else{
-                        String imageCode = cutFrameList.get(0).getSignature();
-                        String imageUrl = cutFrameList.get(0).getUrl();
-                        KuaiShouImageGet imageGet = imageGetService.getOneByParams(imageUrl);
-                        if ((null == imageGet) || ("".equals(imageGet.getImageToken()))){
-                            // 如果取不到image_token 则调用上传url的方法kuauiShouImageUpload(url, signature, accountId, oauthToken.getAccessToken());
-                            String imageToken = materialUploadService.kuauiShouImageUpload(imageUrl,imageCode,
-                                    token.getAccountId(),token.getAccessToken());
-                            if (null == imageToken){
-                                return;
-                            }
-                        }
-
+                        imageCode = cutFrameList.get(0).getSignature();
+                        imageUrl = cutFrameList.get(0).getUrl();
                     }
+                    String imageToken = getImageToken(imageUrl,
+                            imageCode,
+                            token.getAccountId(),
+                            token.getAccessToken());
+
+                    creativeParams.put("advertiser_id",token.getAccountId());
+                    creativeParams.put("unit_id",unitId);
+                    Date creativeDate = new Date();
+                    creativeParams.put("creative_name",creativeDate.toString() + creativeCnt.toString());
+                    creativeParams.put("photo_id",videoItem.getPhotoId());
+                    creativeParams.put("image_token",imageToken);
+                    creativeParams.put("creative_material_type",1); // 1:竖版视频  2:横版视频 4:便利贴单图图片创意 5:竖版图片 6:横版图片
+//                    creativeParams.put("image_tokens",""); 便利贴单图图片创意token
+                    creativeParams.put("action_bar_text","立即下载");
+                    creativeParams.put("description",""); // 广告语 -- 看小说太累?不妨试一试听书,解放双手,缓解压力!
+                    creativeParams.put("site_id",""); // 安卓下载中间页ID
+                    creativeParams.put("click_track_url","");
+                    creativeParams.put("impression_url","");
+                    creativeParams.put("ad_photo_played_t3s_url","");
+                    creativeParams.put("actionbar_click_url","");
+                    creativeParams.put("creative_category","");// 创意分类
+                    creativeParams.put("creative_tag",""); //创意标签
                 }
                 else
                 {
@@ -312,7 +313,6 @@ public class AiStrategyServiceImpl implements IAiStrategyService {
                     if (cutFrameList.size() == 0 && orgFrameList.size()==0){
                         return;
                     }
-
                     if (orgFrameList.size() !=0) {
                         for (int i = 0; i < orgFrameList.size(); i++) {
                             String imageCode = orgFrameList.get(i).getCode();
@@ -350,6 +350,7 @@ public class AiStrategyServiceImpl implements IAiStrategyService {
                 creativeParams.put("","");
                 creativeParams.put("","");
                 creativeParams.put("","");
+
                 Map<String, Object> creativeCreateResult = kuaishouInterfaceService.creativeCreate
                         (token.getAccessToken(), token.getAccountId(), creativeParams,1);
                 Integer creativeCode = (Integer) creativeCreateResult.get("code");
@@ -377,6 +378,19 @@ public class AiStrategyServiceImpl implements IAiStrategyService {
 
     }
 
+    private String getImageToken(String imageUrl, String imageCode, Long accountId,String token){
+        // 根据imageUrl 和 imageCode,获取 imageToken (创建创意用)
+        KuaiShouImageGet imageGet = imageGetService.getOneByParams(imageUrl);
+        if ((null == imageGet) || ("".equals(imageGet.getImageToken()))){
+            // 如果取不到image_token
+            // 则调用上传url的方法 kuauiShouImageUpload(url, signature, accountId, oauthToken.getAccessToken());
+            String imageToken = materialUploadService.kuauiShouImageUpload(imageUrl,imageCode,accountId,token);
+            return imageToken;
+        }
+
+        return imageGet.getImageToken();
+    }
+
     private List<AiKuaishouStrategyTargetBase> splitBasesByDomain(String definitionDomain,
                                                                   List<AiKuaishouStrategyTargetBase> targetBases) {
         if(null==definitionDomain){

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

@@ -29,4 +29,7 @@ public interface IMaterialImageInfoService extends IService<MaterialImageInfo> {
     void initImageCode(MaterialImageInfo image);
 
     MaterialImageInfo getByCode(String signature);
+
+
+    List<MaterialImageInfo> getListByVideoSignature(String signature);
 }

+ 11 - 0
module-common/src/main/java/cn/com/ctop/common/module/service/impl/MaterialImageInfoServiceImpl.java

@@ -151,4 +151,15 @@ public class MaterialImageInfoServiceImpl extends ServiceImpl<MaterialImageInfoM
         return this.getOne(queryWrapper);
     }
 
+
+    @Override
+    public List<MaterialImageInfo> getListByVideoSignature(String signature) {
+        QueryWrapper<MaterialImageInfo>queryWrapper =new QueryWrapper<>();
+        if(null!=signature&&!signature.trim().equals("")){
+            queryWrapper.eq("video_id",signature);
+        }
+        return this.list(queryWrapper);
+    }
+
+
 }

+ 2 - 0
module-kuaishou/src/main/java/cn/com/ctop/kuaishou/modules/batch/service/IKuaiShouImageGetService.java

@@ -15,4 +15,6 @@ public interface IKuaiShouImageGetService extends IService<KuaiShouImageGet> {
     void replaceBatch(List<KuaiShouImageGet> imageGets);
 
     String getUrlByCode(String signature);
+
+    KuaiShouImageGet getOneByParams(String url);
 }

+ 13 - 0
module-kuaishou/src/main/java/cn/com/ctop/kuaishou/modules/batch/service/impl/KuaiShouImageGetServiceImpl.java

@@ -4,6 +4,7 @@ import cn.com.ctop.common.module.utils.Check;
 import cn.com.ctop.kuaishou.modules.batch.entity.KuaiShouImageGet;
 import cn.com.ctop.kuaishou.modules.batch.mapper.KuaiShouImageGetMapper;
 import cn.com.ctop.kuaishou.modules.batch.service.IKuaiShouImageGetService;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
@@ -38,4 +39,16 @@ public class KuaiShouImageGetServiceImpl extends ServiceImpl<KuaiShouImageGetMap
 
     }
 
+
+    @Override
+    public KuaiShouImageGet getOneByParams(String url) {
+        QueryWrapper<KuaiShouImageGet> queryWrapper= new QueryWrapper<>();
+        if(null!=url&&!"".equals(url.trim())){
+            queryWrapper.eq("url",url);
+        }
+        queryWrapper.orderByDesc("create_time");
+        queryWrapper.last("limit 1");
+        return this.getOne(queryWrapper);
+    }
+
 }