Przeglądaj źródła

Merge branch 'master' of codeup.aliyun.com:60c06368dbbed34fe0f0c263/job/hr_job-bytedance into pingkang

huangpingkang 1 rok temu
rodzic
commit
50a2a812d8

+ 1 - 1
job-bytedance/src/main/java/cn/com/ctop/job/bytedance/data/mapper/UserLoginRecordMapper.java

@@ -13,6 +13,6 @@ import java.util.List;
  */
  */
 public interface UserLoginRecordMapper {
 public interface UserLoginRecordMapper {
 
 
-    List<UserLoginRecord> queryUserLoginRecord();
+    List<UserLoginRecord> queryUserLoginRecord(String date);
 
 
 }
 }

+ 2 - 2
job-bytedance/src/main/java/cn/com/ctop/job/bytedance/data/mapper/xml/BytedanceProductUpdateMapper.xml

@@ -29,14 +29,14 @@
         FROM deepthink.bytedance_product_main_advertiser t1
         FROM deepthink.bytedance_product_main_advertiser t1
         left join deepthink.bytedance_advertiser_list t2 on t1.advertiser_id=t2.advertiser_id
         left join deepthink.bytedance_advertiser_list t2 on t1.advertiser_id=t2.advertiser_id
         left join deepthink.bytedance_auth_list t3 on t2.admin_advertiser_id=t3.admin_advertiser_id
         left join deepthink.bytedance_auth_list t3 on t2.admin_advertiser_id=t3.admin_advertiser_id
-        where t1.`type`=2 and t1.`_status`=0 and platform_type=1
+        where t1.`type`=2 and t1.`_status`=0 and platform_type=1 and tb1.mini_instance_id is not null
     </select>
     </select>
     <select id="getIAAPlatformList" resultType="com.alibaba.fastjson.JSONObject">
     <select id="getIAAPlatformList" resultType="com.alibaba.fastjson.JSONObject">
         select t1.*, t3.access_token
         select t1.*, t3.access_token
         FROM deepthink.bytedance_product_main_advertiser t1
         FROM deepthink.bytedance_product_main_advertiser t1
         left join deepthink.bytedance_advertiser_list t2 on t1.advertiser_id=t2.advertiser_id
         left join deepthink.bytedance_advertiser_list t2 on t1.advertiser_id=t2.advertiser_id
         left join deepthink.bytedance_auth_list t3 on t2.admin_advertiser_id=t3.admin_advertiser_id
         left join deepthink.bytedance_auth_list t3 on t2.admin_advertiser_id=t3.admin_advertiser_id
-        where t1.`type`=1 and t1.`_status`=0 and platform_type=1
+        where t1.`type`=1 and t1.`_status`=0 and platform_type=1 and tb1.mini_instance_id is not null
     </select>
     </select>
     <select id="getIAPVideoList" resultType="com.alibaba.fastjson.JSONObject">
     <select id="getIAPVideoList" resultType="com.alibaba.fastjson.JSONObject">
         select third.album_id, third.platform_type, detail.platform_config, video.id as video_id, detail.id as video_detail_id, video.name as name, video.cover_img as img,ifnull(category.name, '其他') as 'theme', video.play_platform,
         select third.album_id, third.platform_type, detail.platform_config, video.id as video_id, detail.id as video_detail_id, video.name as name, video.cover_img as img,ifnull(category.name, '其他') as 'theme', video.play_platform,

+ 7 - 2
job-bytedance/src/main/java/cn/com/ctop/job/bytedance/data/mapper/xml/PromoteLinkRefreshMapper.xml

@@ -10,8 +10,11 @@
 
 
 
 
     <select id="refreshList" resultType="com.alibaba.fastjson.JSONObject">
     <select id="refreshList" resultType="com.alibaba.fastjson.JSONObject">
-        select tb1.task_id, tb1.advertiser_id, tb1.promoter_id, tb1.link_uuid, tb4.expire_time, tb2.media_type, tb3.app_plat_type,
-        tb3.movie_id as video_id, tb5.id as video_detail_id, tb1.promoter_uri, tb2.app_id, tb6.id as applet_id
+        select tb1.task_id, tb1.advertiser_id, tb1.promoter_id, tb1.link_uuid, tb4.expire_time,
+        tb2.media_type, tb3.app_plat_type,
+        tb3.movie_id as video_id, tb5.id as video_detail_id,
+        tb1.promoter_uri, tb2.app_id, tb6.id as applet_id,
+        tb5.platform_config, tb5.sort, tb7.album_id
         from
         from
         (select *
         (select *
         from deepthink.bytedance_advertiser_task_link
         from deepthink.bytedance_advertiser_task_link
@@ -26,6 +29,8 @@
         on tb3.movie_id = tb5.video_id and tb3.entry_chapter_count = tb5.sort
         on tb3.movie_id = tb5.video_id and tb3.entry_chapter_count = tb5.sort
         left join thirtpart.ly_applet tb6
         left join thirtpart.ly_applet tb6
         on tb2.app_id = tb6.app_id
         on tb2.app_id = tb6.app_id
+        left join thirtpart.ly_third_videos tb7
+        on tb3.movie_id = tb7.video_id
         where tb4.expire_time &lt;= ${expireTime}
         where tb4.expire_time &lt;= ${expireTime}
     </select>
     </select>
 </mapper>
 </mapper>

+ 1 - 1
job-bytedance/src/main/java/cn/com/ctop/job/bytedance/data/mapper/xml/ReportsAdPushMapper.xml

@@ -449,7 +449,7 @@
         on a.customer_user_name2=b.nick_name
         on a.customer_user_name2=b.nick_name
         left join tidb.deepthink.sys_dept c
         left join tidb.deepthink.sys_dept c
         on b.dept_id=c.dept_id
         on b.dept_id=c.dept_id
-        where stat_datetime=${date} and b.dept_id=${deptId}
+        where stat_datetime=${date} and b.dept_id=${deptId} and b.status=0 and b.del_flag=0
     </select>
     </select>
     <select id="allBusinessPushData" resultType="java.util.Map">
     <select id="allBusinessPushData" resultType="java.util.Map">
         select
         select

+ 1 - 1
job-bytedance/src/main/java/cn/com/ctop/job/bytedance/data/mapper/xml/UserLoginRecordMapper.xml

@@ -12,7 +12,7 @@
                 LEFT JOIN thirtpart.ly_user lu ON lulr.uid = lu.id
                 LEFT JOIN thirtpart.ly_user lu ON lulr.uid = lu.id
                 LEFT JOIN thirtpart.ly_user_black_list b ON lulr.uid = b.uid
                 LEFT JOIN thirtpart.ly_user_black_list b ON lulr.uid = b.uid
         WHERE
         WHERE
-            lulr.created_at >= UNIX_TIMESTAMP(CURDATE())
+            lulr.date = #{date}
           AND b.uid IS NULL
           AND b.uid IS NULL
         GROUP BY lulr.uid
         GROUP BY lulr.uid
         HAVING login_times > 500
         HAVING login_times > 500

+ 59 - 31
job-bytedance/src/main/java/cn/com/ctop/job/bytedance/data/service/impl/BytedanceProductUpdateServiceImpl.java

@@ -35,7 +35,7 @@ public class BytedanceProductUpdateServiceImpl implements IBytedanceProductUpdat
     public void run() throws Exception {
     public void run() throws Exception {
         Set<String> errors = new HashSet<>();
         Set<String> errors = new HashSet<>();
         log.info("付费商品库更新中...");
         log.info("付费商品库更新中...");
-        iapProductUpdate(errors);
+//        iapProductUpdate(errors);
         log.info("付费商品库更新完成");
         log.info("付费商品库更新完成");
         log.info("免费商品库更新中...");
         log.info("免费商品库更新中...");
         iaaProductUpdate(errors);
         iaaProductUpdate(errors);
@@ -76,18 +76,20 @@ public class BytedanceProductUpdateServiceImpl implements IBytedanceProductUpdat
                     String res = HttpUtils.httpPostRequest(url, body, headers);
                     String res = HttpUtils.httpPostRequest(url, body, headers);
                     System.out.println("授权结果: " + res);
                     System.out.println("授权结果: " + res);
                     JSONObject resObj = JSONObject.parseObject(res);
                     JSONObject resObj = JSONObject.parseObject(res);
-                    int code = resObj.getIntValue("code");
+                    int code = resObj.getIntValue("err_no");
                     if (code != 0){
                     if (code != 0){
                         log.error("授权失败,code: " + code + ", msg: " + resObj.getString("message") + ", 社会信用代码: " + socialCreditCode);
                         log.error("授权失败,code: " + code + ", msg: " + resObj.getString("message") + ", 社会信用代码: " + socialCreditCode);
                     }else {
                     }else {
                         JSONObject data = resObj.getJSONObject("data");
                         JSONObject data = resObj.getJSONObject("data");
                         if (data.getBooleanValue("authed")){
                         if (data.getBooleanValue("authed")){
-                            log.info("授权成功,社会信用代码: " + socialCreditCode + ", 企业名称: " + obj.getJSONArray("authed_corps").toJSONString());
+                            log.info("授权成功,社会信用代码: " + socialCreditCode + ", 企业名称: " + data.getJSONArray("authed_corps").toJSONString());
                             bytedanceProductUpdateMapper.updateMovieAuthStatus(obj.getString("platform_id"));
                             bytedanceProductUpdateMapper.updateMovieAuthStatus(obj.getString("platform_id"));
                         }
                         }
                     }
                     }
+                    Thread.sleep(4000);
                 }
                 }
             }catch (Exception e){
             }catch (Exception e){
+                e.printStackTrace();
                 log.error("获取字节小程序access_token失败", e);
                 log.error("获取字节小程序access_token失败", e);
             }
             }
         }
         }
@@ -102,7 +104,7 @@ public class BytedanceProductUpdateServiceImpl implements IBytedanceProductUpdat
         List<JSONObject> iapPlatformList = bytedanceProductUpdateMapper.getIAPPlatformList();
         List<JSONObject> iapPlatformList = bytedanceProductUpdateMapper.getIAPPlatformList();
         List<JSONObject> iaaPlatformList = bytedanceProductUpdateMapper.getIAAPlatformList();
         List<JSONObject> iaaPlatformList = bytedanceProductUpdateMapper.getIAAPlatformList();
         initNew(iaaPlatformList);
         initNew(iaaPlatformList);
-        initNew(iapPlatformList);
+//        initNew(iapPlatformList);
         authMovieResource();
         authMovieResource();
     }
     }
 
 
@@ -146,18 +148,18 @@ public class BytedanceProductUpdateServiceImpl implements IBytedanceProductUpdat
 
 
             String res = HttpUtils.httpPostRequest(createLinkUrl, requestBody, headers);
             String res = HttpUtils.httpPostRequest(createLinkUrl, requestBody, headers);
             if (res == null || res.isEmpty()){
             if (res == null || res.isEmpty()){
-                System.out.println("创建字节小程序失败");
-                return;
+                System.out.println("创建字节小程序失败,advertiser_id:"+advertiser_id);
             }else {
             }else {
                 JSONObject jsonObject = JSONObject.parseObject(res);
                 JSONObject jsonObject = JSONObject.parseObject(res);
+                System.out.println("创建字节小程序响应: " + jsonObject.toJSONString());
                 int code = jsonObject.getIntValue("code");
                 int code = jsonObject.getIntValue("code");
                 if (code != 0) {
                 if (code != 0) {
-                    System.out.println("创建字节小程序失败,code: " + code + ", msg: " + jsonObject.getString("message"));
-                    break;
+                    System.out.println("创建字节小程序失败,advertiser_id: "+advertiser_id+",code: " + code + ", msg: " + jsonObject.getString("message"));
                 }else {
                 }else {
                     String instanceId = jsonObject.getJSONObject("data").getString("instance_id");
                     String instanceId = jsonObject.getJSONObject("data").getString("instance_id");
                     //更新表
                     //更新表
                     bytedanceProductUpdateMapper.updateInstanceId(advertiser_id, instanceId);
                     bytedanceProductUpdateMapper.updateInstanceId(advertiser_id, instanceId);
+                    System.out.println("创建字节小程序成功,广告主ID: " + advertiser_id + ", 实例ID: " + instanceId);
                 }
                 }
             }
             }
         }
         }
@@ -178,11 +180,6 @@ public class BytedanceProductUpdateServiceImpl implements IBytedanceProductUpdat
             String advertiserId = obj.getString("advertiser_id");
             String advertiserId = obj.getString("advertiser_id");
             String accessToken = obj.getString("access_token");
             String accessToken = obj.getString("access_token");
             String instanceId = obj.getString("mini_instance_id");
             String instanceId = obj.getString("mini_instance_id");
-            if (instanceId == null){
-                errorBlanket.add("没有找到字节小程序的实例ID: " + advertiserId);
-                System.out.println("没有找到字节小程序的实例ID: " + advertiserId);
-                continue;
-            }
             List<JSONObject> iapVideoDouyinList = iapVideoList.stream().filter(obj1 -> "1".equals(obj1.getString("platform_type"))).collect(Collectors.toList());
             List<JSONObject> iapVideoDouyinList = iapVideoList.stream().filter(obj1 -> "1".equals(obj1.getString("platform_type"))).collect(Collectors.toList());
             Map<String, String> albumIdToLinkMap = getBytedancePlayletPromoteLink(advertiserId, accessToken, instanceId, iapVideoDouyinList, errorBlanket);
             Map<String, String> albumIdToLinkMap = getBytedancePlayletPromoteLink(advertiserId, accessToken, instanceId, iapVideoDouyinList, errorBlanket);
             advertiserToLinkMap.put(advertiserId, albumIdToLinkMap);
             advertiserToLinkMap.put(advertiserId, albumIdToLinkMap);
@@ -271,15 +268,35 @@ public class BytedanceProductUpdateServiceImpl implements IBytedanceProductUpdat
         Map<String, String> linkObj = advertiserToLinkMap.get(platform.getString("advertiser_id"));
         Map<String, String> linkObj = advertiserToLinkMap.get(platform.getString("advertiser_id"));
         String play_platform = album.getString("play_platform");
         String play_platform = album.getString("play_platform");
         List<String> ad_carrier = new ArrayList<>();
         List<String> ad_carrier = new ArrayList<>();
-        if (linkObj != null){
-            profession.put("micro_app_link", linkObj.get(album_id));
+//        if (linkObj != null){
+//            profession.put("micro_app_link", linkObj.get(album_id));
+//            ad_carrier.add("字节小程序");
+//            if (play_platform.contains("1")){
+//                if (bytedanceProductUpdateMapper.getWeixinAuditStatus(album.getLong("video_id"))>0){
+//                    ad_carrier.add("微信小程序");
+//                }
+//            }
+//        }else {
+//            profession.put("album_id", album_id);
+//            ad_carrier.add("微信小程序");
+//        }
+        Integer is_bytedance = platform.getInteger("is_bytedance");
+        Integer is_wechat = platform.getInteger("is_wechat");
+        Integer is_dys = platform.getInteger("is_dys");
+        if (is_bytedance == 1){
             ad_carrier.add("字节小程序");
             ad_carrier.add("字节小程序");
-            if (play_platform.contains("1")){
-                ad_carrier.add("微信小程序");
-            }
+        }
+        if (is_wechat == 1){
+            ad_carrier.add("微信小程序");
+        }
+        if (is_dys == 1){
+            ad_carrier.add("端原生组件");
+        }
+
+        if (is_bytedance == 1){
+            profession.put("micro_app_link", linkObj.get(album_id));
         }else {
         }else {
             profession.put("album_id", album_id);
             profession.put("album_id", album_id);
-            ad_carrier.add("微信小程序");
         }
         }
         profession.put("ad_carrier", JSON.toJSONString(ad_carrier));
         profession.put("ad_carrier", JSON.toJSONString(ad_carrier));
 
 
@@ -315,11 +332,7 @@ public class BytedanceProductUpdateServiceImpl implements IBytedanceProductUpdat
             String advertiserId = obj.getString("advertiser_id");
             String advertiserId = obj.getString("advertiser_id");
             String accessToken = obj.getString("access_token");
             String accessToken = obj.getString("access_token");
             String instanceId = obj.getString("mini_instance_id");
             String instanceId = obj.getString("mini_instance_id");
-            if (instanceId == null){
-                errorBlanket.add("没有找到字节小程序的实例ID: " + advertiserId);
-                System.out.println("没有找到字节小程序的实例ID: " + advertiserId);
-                continue; //todo
-            }
+
             List<JSONObject> iaaVideoDouyinList = iaaVideoList.stream().filter(obj1 -> "1".equals(obj1.getString("platform_type"))).collect(Collectors.toList());
             List<JSONObject> iaaVideoDouyinList = iaaVideoList.stream().filter(obj1 -> "1".equals(obj1.getString("platform_type"))).collect(Collectors.toList());
             Map<String, String> albumIdToLinkMap = getBytedancePlayletPromoteLink(advertiserId, accessToken, instanceId, iaaVideoDouyinList, errorBlanket);
             Map<String, String> albumIdToLinkMap = getBytedancePlayletPromoteLink(advertiserId, accessToken, instanceId, iaaVideoDouyinList, errorBlanket);
             advertiserToLinkMap.put(advertiserId, albumIdToLinkMap);
             advertiserToLinkMap.put(advertiserId, albumIdToLinkMap);
@@ -387,18 +400,33 @@ public class BytedanceProductUpdateServiceImpl implements IBytedanceProductUpdat
         profession.put("membership_types", "5");
         profession.put("membership_types", "5");
         profession.put("starting_unlock_episode", album.getString("starting_unlock_episode"));
         profession.put("starting_unlock_episode", album.getString("starting_unlock_episode"));
         Map<String, String> linkObj = advertiserToLinkMap.get(platform.getString("advertiser_id"));
         Map<String, String> linkObj = advertiserToLinkMap.get(platform.getString("advertiser_id"));
-        String play_platform = album.getString("play_platform");
         List<String> ad_carrier = new ArrayList<>();
         List<String> ad_carrier = new ArrayList<>();
-        if (linkObj != null){
-            profession.put("micro_app_link", linkObj.get(album_id));
+//        if (linkObj != null){
+//            profession.put("micro_app_link", linkObj.get(album_id));
+//            ad_carrier.add("字节小程序");
+//        }else {
+//            profession.put("album_id", album_id);
+//            ad_carrier.add("微信小程序");
+//        }
+        Integer is_bytedance = platform.getInteger("is_bytedance");
+        Integer is_wechat = platform.getInteger("is_wechat");
+        Integer is_dys = platform.getInteger("is_dys");
+        if (is_bytedance == 1){
             ad_carrier.add("字节小程序");
             ad_carrier.add("字节小程序");
-            if (play_platform.contains("1")){
-                ad_carrier.add("微信小程序");
-            }
+        }
+        if (is_wechat == 1){
+            ad_carrier.add("微信小程序");
+        }
+        if (is_dys == 1){
+            ad_carrier.add("端原生组件");
+        }
+
+        if (is_bytedance == 1){
+            profession.put("micro_app_link", linkObj.get(album_id));
         }else {
         }else {
             profession.put("album_id", album_id);
             profession.put("album_id", album_id);
-            ad_carrier.add("微信小程序");
         }
         }
+
         profession.put("ad_carrier", JSON.toJSONString(ad_carrier));
         profession.put("ad_carrier", JSON.toJSONString(ad_carrier));
 
 
         product_info.put("profession", profession);
         product_info.put("profession", profession);

+ 21 - 1
job-bytedance/src/main/java/cn/com/ctop/job/bytedance/data/service/impl/BytedancePromoteRefreshServiceImpl.java

@@ -8,6 +8,7 @@ import cn.com.ctop.job.bytedance.utils.FeishuRobotUtil;
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONObject;
 import com.alibaba.fastjson.JSONObject;
 import io.netty.util.internal.StringUtil;
 import io.netty.util.internal.StringUtil;
+import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.lang.StringUtils;
 import org.apache.commons.lang.StringUtils;
 import org.springframework.data.redis.core.RedisTemplate;
 import org.springframework.data.redis.core.RedisTemplate;
 import org.springframework.stereotype.Service;
 import org.springframework.stereotype.Service;
@@ -19,6 +20,7 @@ import java.util.HashMap;
 import java.util.List;
 import java.util.List;
 import java.util.Map;
 import java.util.Map;
 
 
+@Slf4j
 @Service
 @Service
 public class BytedancePromoteRefreshServiceImpl implements IBytedancePromoteRefreshService {
 public class BytedancePromoteRefreshServiceImpl implements IBytedancePromoteRefreshService {
     @Resource
     @Resource
@@ -134,6 +136,20 @@ public class BytedancePromoteRefreshServiceImpl implements IBytedancePromoteRefr
                 }
                 }
                 String token = String.valueOf(tokenobj);
                 String token = String.valueOf(tokenobj);
 
 
+                String serialNo = linkInfo.getString("sort");
+                String albumId = linkInfo.getString("album_id");
+                String episodeId = "";
+                try {
+                    String platform_config = linkInfo.getString("platform_config");
+                    if (!Check.isNull(platform_config)){
+                        JSONObject platformConfigJson = JSON.parseObject(platform_config);
+                        if (!platformConfigJson.containsKey("douyinyun")){
+                        }
+                        episodeId = platformConfigJson.getJSONObject("douyinyun").getString("episode_id");
+                    }
+                }catch (Exception e){
+                    log.error("解析平台配置失败: " + e.getMessage(), e);
+                }
                 //douyin
                 //douyin
                 String path = promoterUri.split("\\?")[0];
                 String path = promoterUri.split("\\?")[0];
                 String url = "https://open.douyin.com/api/apps/v1/url_link/generate/";
                 String url = "https://open.douyin.com/api/apps/v1/url_link/generate/";
@@ -141,8 +157,12 @@ public class BytedancePromoteRefreshServiceImpl implements IBytedancePromoteRefr
                 query.put("link_id", String.valueOf(linkId));
                 query.put("link_id", String.valueOf(linkId));
                 query.put("video_id", String.valueOf(videoId));
                 query.put("video_id", String.valueOf(videoId));
                 query.put("video_detail_id", String.valueOf(videoDetailId));
                 query.put("video_detail_id", String.valueOf(videoDetailId));
-                query.put("type", String.valueOf(mediaType));
+                query.put("type", "1");
                 query.put("source", "link");
                 query.put("source", "link");
+                query.put("serialNo", serialNo);
+                query.put("app_id", appId);
+                query.put("tt_album_id", albumId);
+                query.put("tt_episode_id", episodeId);
                 Map<String, Object> params = new HashMap<>();
                 Map<String, Object> params = new HashMap<>();
                 params.put("app_id", appId);
                 params.put("app_id", appId);
                 params.put("app_name", "douyin");
                 params.put("app_name", "douyin");

+ 3 - 2
job-bytedance/src/main/java/cn/com/ctop/job/bytedance/data/service/impl/UserLoginRecordServiceImpl.java

@@ -26,9 +26,10 @@ public class UserLoginRecordServiceImpl implements IUserLoginRecordService {
     private UserLoginRecordMapper userLoginRecordMapper;
     private UserLoginRecordMapper userLoginRecordMapper;
     @Override
     @Override
     public String queryUserLoginRecord() {
     public String queryUserLoginRecord() {
-        List<UserLoginRecord> userLoginRecords = userLoginRecordMapper.queryUserLoginRecord();
+        String date = DateUtils.getNowDate("yyyy-MM-dd");
+        List<UserLoginRecord> userLoginRecords = userLoginRecordMapper.queryUserLoginRecord(date);
 
 
-        String date = DateUtils.getNowDate("YYYY-MM-dd HH:mm:ss");
+        date = DateUtils.getNowDate("YYYY-MM-dd HH:mm:ss");
         StringBuilder text = new StringBuilder(date);
         StringBuilder text = new StringBuilder(date);
         text.append("\n");
         text.append("\n");
         if (userLoginRecords != null && userLoginRecords.size() > 0){
         if (userLoginRecords != null && userLoginRecords.size() > 0){

+ 1 - 0
job-bytedance/src/main/java/cn/com/ctop/job/bytedance/handler/PromoteLinkRefreshJob.java

@@ -43,6 +43,7 @@ public class PromoteLinkRefreshJob {
                 try {
                 try {
                     JSONObject response = bytedancePromoteRefreshService.refreshLink(obj);
                     JSONObject response = bytedancePromoteRefreshService.refreshLink(obj);
                     if (response.getInteger("code") != 0) {
                     if (response.getInteger("code") != 0) {
+                        log.error("刷新链接失败: " + response.getString("msg"));
                         return response.getString("msg");
                         return response.getString("msg");
                     }
                     }
                 } catch (Exception e) {
                 } catch (Exception e) {