ソースを参照

批量搭建 各状态更新

ZHAOXIAN 1 年間 前
親
コミット
64ea7db01b

+ 233 - 0
job-bytedance/src/main/java/cn/com/ctop/job/bytedance/data/entity/AdvertiserApplet.java

@@ -0,0 +1,233 @@
+package cn.com.ctop.job.bytedance.data.entity;
+
+import com.alibaba.fastjson.JSONObject;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ * 小程序对象 AdvertiserApplet
+ *
+ * @author ruoyi
+ * @date 2025-03-07
+ */
+@Data
+public class AdvertiserApplet {
+
+    /**
+     * 广告主ID
+     */
+    private Long advertiserId;
+
+    /**
+     * 小程序资产ID
+     */
+    private Long instanceId;
+
+    /**
+     * 小程序名称
+     */
+    private String appName;
+
+    /**
+     * 字节小程序备注名称
+     */
+    private String remark;
+
+    /**
+     * 小程序appid
+     */
+    private String appId;
+
+    /**
+     * 小程序原始ID,获取方式:小程序后台>设置>基本设置>账号信息>原始ID,例如“gh_”,最大长度不超过20
+     */
+    private String originalAppId;
+
+    /**
+     * 小程序类型:1-字节,2-微信
+     */
+    private String platType;
+
+    /**
+     * 审核状态: AUDIT_ACCEPTED 审核成功,AUDITING 审核中,AUDIT_REJECTED审核失败
+     */
+    private String auditStatus;
+
+    /**
+     * 小程序类型:1-字节,2-微信
+     */
+    private String reason;
+
+    /**
+     * (bytedance)小程序链接,以 sslocal://microapp 开头 。生效优先级大于 启动页面 和 启动参数  ,详细内容见接口说明
+     */
+    private String link;
+
+    /**
+     * (bytedance)链接备注
+     */
+    private String linkRemark;
+
+    /**
+     * (wx)小程序路径参数,如有跳转指定页面或自定义参数监测广告效果数据诉求,需填写。获取方式:登录关联的公众号后台>素材管理>新建图文素材>小程序>选择小程序>获取更多路径
+     */
+    private String path;
+
+    /**
+     * (wx)资产备注信息,最大长度不超过15
+     */
+    private String remarkMessage;
+
+    /**
+     * (wx)小程序icon图片的url,尺寸60*60px,大小不超2MB,图片格式要求jpeg、png或gif
+     */
+    private String iconImageUrl;
+
+    /**
+     * (wx)顶部头图的url,大小不超过5MB的图片,推荐尺寸2:1,图片格式要求jpeg、png或gif
+     */
+    private String headerImageUrl;
+
+    /**
+     * (wx)小程序标签,每个标签长度不超过6,最多支持6个标签
+     */
+    private String labels;
+
+    /**
+     * (wx)引导文案,最大长度不超过14
+     */
+    private String guideText;
+
+    /**
+     * (wx)竖图的url地址,要求尺寸必须为3:5,否则报错;最少3张,最多8张,大小不超过5MB;图片格式要求jpeg、png或gif,竖图和横图不能同时传
+     */
+    private String imagesVerticalUrl;
+
+    /**
+     * (wx)横图的url地址,要求尺寸必须为3:5,否则报错;最少3张,最多8张,大小不超过5MB;图片格式要求jpeg、png或gif,竖图和横图不能同时传
+     */
+    private String imagesHorizontalUrl;
+
+    /**
+     * (wx)小程序简介,最大长度不超过50
+     */
+    private String introduction;
+
+    /**
+     * 细分类型,填写细分类型的末级分类ID category_id
+     */
+    private String tagInfo;
+
+    /**
+     * (bytedance)启动页面,形如:page/home/xxx。不得以反斜线开头,不得以反斜线结尾,请避免参数中出现特殊字符
+     */
+    private String startPage;
+
+    /**
+     * (bytedance)启动参数,形如:name=zhangsan&age=25。不得以问号、连接符等特殊字符开头,请确保各参数间仅使用一个连接符
+     */
+    private String startParam;
+    /**
+     * 是否共享1是,0否
+     */
+    private String appShare;
+    /**
+     * 共享源广告主ID
+     */
+    private Long shareAdvertiserId;
+    /**
+     * 小程序创建时间
+     */
+    private String appCreateTime;
+    /**
+     * 小程序更新时间
+     */
+    private String appUpdateTime;
+    /**
+     * 任务ID
+     */
+    private String taskId;
+
+    /**
+     * 入参,排查问题
+     */
+    private String parameters;
+    /**
+     * 创建时间
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private Date createTime;
+
+    /**
+     * 更新时间
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private Date updateTime;
+
+    public AdvertiserApplet() {
+    }
+
+    public AdvertiserApplet(Long advertiserId, JSONObject entity, String platType) {
+        this.advertiserId = advertiserId;
+        this.appName = entity.getString("name");
+        this.appId = entity.getString("app_id");
+        this.originalAppId = entity.getString("user_name");
+        this.path = entity.getString("path");
+        this.instanceId = entity.getLong("instance_id");
+        this.auditStatus = entity.getString("audit_status");
+        this.reason = entity.getString("reason");
+        this.appCreateTime = entity.getString("create_time");
+        this.appUpdateTime = entity.getString("modify_time");
+        this.headerImageUrl = entity.getString("header_image_url");
+        this.imagesVerticalUrl = entity.getString("images_vertical_url");
+        this.iconImageUrl = entity.getString("icon_image_url");
+        this.introduction = entity.getString("introduction");
+        this.labels = entity.getString("labels");
+        this.remarkMessage = entity.getString("remark_message");
+        this.tagInfo = entity.getString("tag_info");
+        this.guideText = entity.getString("guide_text");
+        this.remark = entity.getString("remark");
+        this.platType = platType;
+    }
+
+    public AdvertiserApplet(String taskId, Long advertiserId, String appName, String appId, String tagInfo, String startPage, String startParam) {
+        this.taskId = taskId;
+        this.advertiserId = advertiserId;
+        this.appName = appName;
+        this.appId = appId;
+        this.tagInfo = tagInfo;
+        this.startPage = startPage;
+        this.startParam = startParam;
+    }
+
+    public AdvertiserApplet(AdvertiserApplet one) {
+        this.advertiserId = one.getAdvertiserId();
+        this.instanceId = one.getInstanceId();
+        this.platType = one.getPlatType();
+        this.appName = one.getAppName();
+        this.appId = one.getAppId();
+        this.remark = one.getRemark();
+        this.auditStatus = one.getAuditStatus();
+        this.originalAppId = one.getOriginalAppId();
+        this.reason = one.getReason();
+        this.link = one.getLink();
+        this.linkRemark = one.getLinkRemark();
+        this.path = one.getPath();
+        this.remarkMessage = one.getRemarkMessage();
+        this.iconImageUrl = one.getIconImageUrl();
+        this.headerImageUrl = one.getHeaderImageUrl();
+        this.labels = one.getLabels();
+        this.guideText = one.getGuideText();
+        this.imagesVerticalUrl = one.getImagesVerticalUrl();
+        this.imagesHorizontalUrl = one.getImagesHorizontalUrl();
+        this.introduction = one.getIntroduction();
+        this.tagInfo = one.getTagInfo();
+        this.startPage = one.getStartPage();
+        this.startParam = one.getStartParam();
+        this.appCreateTime = one.getAppCreateTime();
+        this.appUpdateTime = one.getAppUpdateTime();
+        this.taskId = one.getTaskId();
+    }
+}

+ 120 - 0
job-bytedance/src/main/java/cn/com/ctop/job/bytedance/data/entity/AdvertiserAvatar.java

@@ -0,0 +1,120 @@
+package cn.com.ctop.job.bytedance.data.entity;
+
+import com.alibaba.fastjson.JSONObject;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ * 【广告主账户头像】对象 advertiser_avatar
+ *
+ * @author ruoyi
+ * @date 2025-03-03
+ */
+@Data
+public class AdvertiserAvatar {
+    /**
+     * 广告主id
+     */
+    private Long advertiserId;
+
+    /**
+     * 头像审核状态 0-未设置,1-审核中,2-审核被拒,3-审核通过
+     */
+    private String avatarStatus;
+
+    /**
+     * 头像被拒原因
+     */
+    private String avatarReason;
+
+    /**
+     * 品牌审核状态 0-未设置,1-审核中,2-审核被拒,3-审核通过
+     */
+    private String sourceStatus;
+
+    /**
+     * 品牌信息
+     */
+    private String sourceInfo;
+
+    /**
+     * 品牌信息被拒原因
+     */
+    private String sourceReason;
+
+    /**
+     * 当前头像的uri
+     */
+    private String webUri;
+
+    /**
+     * 审核中头像的uri
+     */
+    private String auditWebUri;
+
+    /**
+     * 审核中头像的高度
+     */
+    private Long height;
+
+    /**
+     * 审核中头像的宽度
+     */
+    private Long width;
+
+    /**
+     * 当前头像的预览链接,有效期1h
+     */
+    private String webUrl;
+
+    /**
+     * oss路径
+     */
+    private String ossUrl;
+    /**
+     * 原因
+     */
+    private String reason;
+    /**
+     * 入参,排查问题
+     */
+    private String parameters;
+
+    /**
+     * 审核中头像的预览链接,有效期1h
+     */
+    private String auditWebUrl;
+
+    /**
+     * 创建时间
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private Date createTime;
+
+    /**
+     * 更新时间
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private Date updateTime;
+
+    public AdvertiserAvatar() {
+    }
+
+    public AdvertiserAvatar(JSONObject data) {
+        this.advertiserId = data.getLong("advertiser_id");
+        this.avatarStatus = data.getString("avatar_status");
+        this.avatarReason = data.getString("avatar_reason");
+        this.sourceStatus = data.getString("source_status");
+        this.sourceInfo = data.getString("source_info");
+        this.sourceReason = data.getString("source_reason");
+        JSONObject avatarInfo = data.getJSONObject("avatar_info");
+        this.webUri = avatarInfo.getString("web_uri");
+        this.auditWebUri = avatarInfo.getString("audit_web_uri");
+        this.height = avatarInfo.getLong("height");
+        this.width = avatarInfo.getLong("width");
+        this.webUrl = avatarInfo.getString("web_url");
+        this.auditWebUrl = avatarInfo.getString("audit_web_url");
+    }
+}

+ 65 - 0
job-bytedance/src/main/java/cn/com/ctop/job/bytedance/data/entity/AdvertiserNameInfo.java

@@ -0,0 +1,65 @@
+package cn.com.ctop.job.bytedance.data.entity;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ * 【广告主账户名称】对象 advertiser_name_info
+ */
+@Data
+public class AdvertiserNameInfo {
+    /**
+     * 广告主id
+     */
+    private Long advertiserId;
+
+    /**
+     * 广告主名称
+     */
+    private String advertiserName;
+
+    /**
+     * 头像审核状态:STATUS_PENDING_CONFIRM:审核中;STATUS_PENDING_CONFIRM:审核失败;STATUS_ENABLE:审核通过;STATUS_CONFIRM_FAIL_END:审核失败;FAIL:创建失败
+     */
+    private String advertiserStatus;
+
+    /**
+     * 原因
+     */
+    private String reason;
+    /**
+     * 入参,排查问题
+     */
+    private String parameters;
+
+    /**
+     * 创建时间
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private Date createTime;
+
+    /**
+     * 更新时间
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private Date updateTime;
+
+    public AdvertiserNameInfo() {
+    }
+
+    public AdvertiserNameInfo(Long advertiserId, String advertiserName, String advertiserStatus) {
+        this.advertiserId = advertiserId;
+        this.advertiserName = advertiserName;
+        this.advertiserStatus = advertiserStatus;
+    }
+
+    public AdvertiserNameInfo(Long advertiserId, String reason, String advertiserStatus, String parameters) {
+        this.advertiserId = advertiserId;
+        this.reason = reason;
+        this.advertiserStatus = advertiserStatus;
+        this.parameters = parameters;
+    }
+
+}

+ 35 - 2
job-bytedance/src/main/java/cn/com/ctop/job/bytedance/data/entity/AdvertiserToolsSite.java

@@ -53,8 +53,20 @@ public class AdvertiserToolsSite {
      * 创建类型 1-橙子建站
      */
     private String createType;
+    /**
+     * 原因
+     */
+    private String reason;
+    /**
+     * 任务批次ID
+     */
+    private String taskId;
 
     /**
+     * 入参
+     */
+    private String parameters;
+    /**
      * 创建时间
      */
     @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@@ -69,10 +81,20 @@ public class AdvertiserToolsSite {
     public AdvertiserToolsSite() {
     }
 
-    public AdvertiserToolsSite(Long advertiserId, String siteId, String thumbnail) {
+    public AdvertiserToolsSite(Long advertiserId, String siteId, String status, String taskId) {
+        this.advertiserId = advertiserId;
+        this.siteId = siteId;
+        this.status = status;
+        this.taskId = taskId;
+    }
+
+    public AdvertiserToolsSite(Long advertiserId, String siteId, String reason, String name, String parameters, String taskId) {
         this.advertiserId = advertiserId;
         this.siteId = siteId;
-        this.thumbnail = thumbnail;
+        this.reason = reason;
+        this.name = name;
+        this.parameters = parameters;
+        this.taskId = taskId;
     }
 
     public AdvertiserToolsSite(JSONObject data, Long advertiserId, String createType) {
@@ -84,4 +106,15 @@ public class AdvertiserToolsSite {
         this.siteType = data.getString("siteType");
         this.createType = createType;
     }
+
+    public AdvertiserToolsSite(JSONObject data, Long advertiserId, String name, String createType, String taskId) {
+        this.advertiserId = advertiserId;
+        this.siteId = data.getString("id");
+        this.name = name;
+        this.thumbnail = data.getString("thumbnail");
+        this.status = data.getString("status");
+        this.siteType = data.getString("site_type");
+        this.createType = createType;
+        this.taskId = taskId;
+    }
 }

+ 2 - 0
job-bytedance/src/main/java/cn/com/ctop/job/bytedance/data/mapper/BytedanceRefreshTokenMapper.java

@@ -13,4 +13,6 @@ public interface BytedanceRefreshTokenMapper {
     List<JSONObject> getBaiduYunTokenList();
 
     void updateBaiduYunToken(@Param("obj") JSONObject obj);
+
+    String onlyGetToken(@Param("advertiserId") Long advertiserId);
 }

+ 28 - 0
job-bytedance/src/main/java/cn/com/ctop/job/bytedance/data/mapper/ToolsSiteMapper.java

@@ -1,5 +1,8 @@
 package cn.com.ctop.job.bytedance.data.mapper;
 
+import cn.com.ctop.job.bytedance.data.entity.AdvertiserApplet;
+import cn.com.ctop.job.bytedance.data.entity.AdvertiserAvatar;
+import cn.com.ctop.job.bytedance.data.entity.AdvertiserNameInfo;
 import cn.com.ctop.job.bytedance.data.entity.AdvertiserToolsSite;
 import org.apache.ibatis.annotations.Param;
 
@@ -9,4 +12,29 @@ public interface ToolsSiteMapper {
 
     void replaceAdvertiserToolsSite(@Param("siteList") List<AdvertiserToolsSite> siteList);
 
+    List<Long> getAvatarAdvertiserIds();
+
+    public boolean updateAdvertiserAvatar(AdvertiserAvatar advertiserAvatar);
+
+    public boolean insertAdvertiserAvatar(AdvertiserAvatar advertiserAvatar);
+
+    List<Long> getNameAdvertiserIds();
+
+    boolean updateAdvertiserNameInfo(AdvertiserNameInfo nameInfo);
+
+    boolean insertAdvertiserNameInfo(AdvertiserNameInfo nameInfo);
+
+    List<Long> getAppAdvertiserIds(String platType);
+
+    boolean updateAdvertiserAppList(AdvertiserApplet advertiserApplet);
+
+    boolean insertAdvertiserAppList(AdvertiserApplet advertiserApplet);
+
+    List<Long> getsiteAdvertiserIds();
+
+    boolean updateAdvertiserToolsSite(AdvertiserToolsSite advertiserToolsSite);
+
+    void insertAdvertiserToolsSite(AdvertiserToolsSite advertiserToolsSite);
+
+
 }

+ 6 - 0
job-bytedance/src/main/java/cn/com/ctop/job/bytedance/data/mapper/xml/BytedanceRefreshTokenMapper.xml

@@ -31,4 +31,10 @@
         WHERE app_id = #{obj.app_id}
     </update>
 
+
+    <select id="onlyGetToken" resultType="java.lang.String">
+        select 'eb0cea58911b7a7fd30f3458f1d421a57d2b0078'
+    </select>
+
+
 </mapper>

+ 276 - 0
job-bytedance/src/main/java/cn/com/ctop/job/bytedance/data/mapper/xml/ToolsSiteMapper.xml

@@ -26,4 +26,280 @@
             #{item.createType} )
         </foreach>
     </insert>
+
+    <select id="getAvatarAdvertiserIds">
+        select advertiser_id
+        from deepthink.advertiser_avatar
+        where avatar_status = 'IN_AUDIT'
+    </select>
+
+    <update id="updateAdvertiserAvatar" parameterType="cn.com.ctop.job.bytedance.data.entity.AdvertiserAvatar">
+        update deepthink.advertiser_avatar
+        <trim prefix="SET" suffixOverrides=",">
+            <if test="avatarStatus != null">avatar_status = #{avatarStatus},</if>
+            <if test="avatarReason != null">avatar_reason = #{avatarReason},</if>
+            <if test="sourceStatus != null">source_status = #{sourceStatus},</if>
+            <if test="sourceInfo != null">source_info = #{sourceInfo},</if>
+            <if test="sourceReason != null">source_reason = #{sourceReason},</if>
+            <if test="webUri != null">web_uri = #{webUri},</if>
+            <if test="auditWebUri != null">audit_web_uri = #{auditWebUri},</if>
+            <if test="height != null">height = #{height},</if>
+            <if test="width != null">width = #{width},</if>
+            <if test="webUrl != null">web_url = #{webUrl},</if>
+            <if test="auditWebUrl != null">audit_web_url = #{auditWebUrl},</if>
+            <if test="createTime != null">create_time = #{createTime},</if>
+            <if test="updateTime != null">update_time = #{updateTime},</if>
+        </trim>
+        where advertiser_id = #{advertiserId}
+    </update>
+
+    <insert id="insertAdvertiserAvatar" parameterType="cn.com.ctop.job.bytedance.data.entity.AdvertiserAvatar">
+        insert into deepthink.advertiser_avatar
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="advertiserId != null">advertiser_id,</if>
+            <if test="avatarStatus != null">avatar_status,</if>
+            <if test="avatarReason != null">avatar_reason,</if>
+            <if test="sourceStatus != null">source_status,</if>
+            <if test="sourceInfo != null">source_info,</if>
+            <if test="sourceReason != null">source_reason,</if>
+            <if test="webUri != null">web_uri,</if>
+            <if test="auditWebUri != null">audit_web_uri,</if>
+            <if test="height != null">height,</if>
+            <if test="width != null">width,</if>
+            <if test="webUrl != null">web_url,</if>
+            <if test="auditWebUrl != null">audit_web_url,</if>
+            <if test="ossUrl != null">oss_url,</if>
+            <if test="reason != null">reason,</if>
+            <if test="parameters != null">parameters,</if>
+        </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
+            <if test="advertiserId != null">#{advertiserId},</if>
+            <if test="avatarStatus != null">#{avatarStatus},</if>
+            <if test="avatarReason != null">#{avatarReason},</if>
+            <if test="sourceStatus != null">#{sourceStatus},</if>
+            <if test="sourceInfo != null">#{sourceInfo},</if>
+            <if test="sourceReason != null">#{sourceReason},</if>
+            <if test="webUri != null">#{webUri},</if>
+            <if test="auditWebUri != null">#{auditWebUri},</if>
+            <if test="height != null">#{height},</if>
+            <if test="width != null">#{width},</if>
+            <if test="webUrl != null">#{webUrl},</if>
+            <if test="auditWebUrl != null">#{auditWebUrl},</if>
+            <if test="ossUrl != null">#{ossUrl},</if>
+            <if test="reason != null">#{reason},</if>
+            <if test="parameters != null">#{parameters},</if>
+        </trim>
+    </insert>
+
+    <select id="getNameAdvertiserIds">
+        select advertiser_id
+        from deepthink.advertiser_name_info
+        where advertiser_status = 'STATUS_PENDING_CONFIRM'
+    </select>
+
+    <insert id="insertAdvertiserNameInfo" parameterType="cn.com.ctop.job.bytedance.data.entity.AdvertiserNameInfo">
+        insert into deepthink.advertiser_name_info
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="advertiserId != null">advertiser_id,</if>
+            <if test="advertiserName != null">advertiser_name,</if>
+            <if test="advertiserStatus != null">advertiser_status,</if>
+            <if test="reason != null">reason,</if>
+            <if test="parameters != null">parameters,</if>
+            <if test="createTime != null">create_time,</if>
+            <if test="updateTime != null">update_time,</if>
+        </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
+            <if test="advertiserId != null">#{advertiserId},</if>
+            <if test="advertiserName != null">#{advertiserName},</if>
+            <if test="advertiserStatus != null">#{advertiserStatus},</if>
+            <if test="reason != null">#{reason},</if>
+            <if test="parameters != null">#{parameters},</if>
+            <if test="createTime != null">#{createTime},</if>
+            <if test="updateTime != null">#{updateTime},</if>
+        </trim>
+    </insert>
+
+    <update id="updateAdvertiserNameInfo" parameterType="cn.com.ctop.job.bytedance.data.entity.AdvertiserNameInfo">
+        update deepthink.advertiser_name_info
+        <trim prefix="SET" suffixOverrides=",">
+            <if test="advertiserName != null">advertiser_name = #{advertiserName},</if>
+            <if test="advertiserStatus != null">advertiser_status = #{advertiserStatus},</if>
+            <if test="reason != null">reason = #{reason},</if>
+            <if test="parameters != null">parameters = #{parameters},</if>
+            <if test="createTime != null">create_time = #{createTime},</if>
+            <if test="updateTime != null">update_time = #{updateTime},</if>
+        </trim>
+        where advertiser_id = #{advertiserId}
+    </update>
+
+
+    <select id="getAppAdvertiserIds">
+        select advertiser_id
+        from deepthink.advertiser_app_list
+        where advertiser_status = 'AUDITING'
+          AND plat_type = #{platType}
+    </select>
+
+
+    <insert id="insertAdvertiserAppList" parameterType="cn.com.ctop.job.bytedance.data.entity.AdvertiserApplet"
+            useGeneratedKeys="true"
+            keyProperty="id">
+        replace into deepthink.advertiser_app_list
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="advertiserId != null">advertiser_id,</if>
+            <if test="appName != null">app_name,</if>
+            <if test="remark != null">remark,</if>
+            <if test="instanceId != null">instance_id,</if>
+            <if test="appId != null">app_id,</if>
+            <if test="originalAppId != null">original_app_id,</if>
+            <if test="platType != null">plat_type,</if>
+            <if test="auditStatus != null">audit_status,</if>
+            <if test="reason != null">reason,</if>
+            <if test="link != null">link,</if>
+            <if test="linkRemark != null">link_remark,</if>
+            <if test="path != null">path,</if>
+            <if test="remarkMessage != null">remark_message,</if>
+            <if test="iconImageUrl != null">icon_image_url,</if>
+            <if test="headerImageUrl != null">header_image_url,</if>
+            <if test="labels != null">labels,</if>
+            <if test="guideText != null">guide_text,</if>
+            <if test="imagesVerticalUrl != null">images_vertical_url,</if>
+            <if test="imagesHorizontalUrl != null">images_horizontal_url,</if>
+            <if test="introduction != null">introduction,</if>
+            <if test="tagInfo != null">tag_info,</if>
+            <if test="startPage != null">start_page,</if>
+            <if test="startParam != null">start_param,</if>
+            <if test="appCreateTime != null">app_create_time,</if>
+            <if test="appUpdateTime != null">app_update_time,</if>
+            <if test="parameters != null">parameters,</if>
+            <if test="taskId != null">task_id,</if>
+            <if test="appShare != null">app_share,</if>
+            <if test="shareAdvertiserId != null">share_advertiser_id,</if>
+        </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
+            <if test="advertiserId != null">#{advertiserId},</if>
+            <if test="appName != null">#{appName},</if>
+            <if test="remark != null">#{remark},</if>
+            <if test="instanceId != null">#{instanceId},</if>
+            <if test="appId != null">#{appId},</if>
+            <if test="originalAppId != null">#{originalAppId},</if>
+            <if test="platType != null">#{platType},</if>
+            <if test="auditStatus != null">#{auditStatus},</if>
+            <if test="reason != null">#{reason},</if>
+            <if test="link != null">#{link},</if>
+            <if test="linkRemark != null">#{linkRemark},</if>
+            <if test="path != null">#{path},</if>
+            <if test="remarkMessage != null">#{remarkMessage},</if>
+            <if test="iconImageUrl != null">#{iconImageUrl},</if>
+            <if test="headerImageUrl != null">#{headerImageUrl},</if>
+            <if test="labels != null">#{labels},</if>
+            <if test="guideText != null">#{guideText},</if>
+            <if test="imagesVerticalUrl != null">#{imagesVerticalUrl},</if>
+            <if test="imagesHorizontalUrl != null">#{imagesHorizontalUrl},</if>
+            <if test="introduction != null">#{introduction},</if>
+            <if test="tagInfo != null">#{tagInfo},</if>
+            <if test="startPage != null">#{startPage},</if>
+            <if test="startParam != null">#{startParam},</if>
+            <if test="appCreateTime != null">#{appCreateTime},</if>
+            <if test="appUpdateTime != null">#{appUpdateTime},</if>
+            <if test="parameters != null">#{parameters},</if>
+            <if test="taskId != null">#{taskId},</if>
+            <if test="appShare != null">#{appShare},</if>
+            <if test="shareAdvertiserId != null">#{shareAdvertiserId},</if>
+        </trim>
+    </insert>
+
+    <update id="updateAdvertiserAppList" parameterType="cn.com.ctop.job.bytedance.data.entity.AdvertiserApplet">
+        update deepthink.advertiser_app_list
+        <trim prefix="SET" suffixOverrides=",">
+            <if test="advertiserId != null">advertiser_id = #{advertiserId},</if>
+            <if test="appName != null">app_name = #{appName},</if>
+            <if test="remark != null">remark = #{remark},</if>
+            <if test="instanceId != null">instance_id = #{instanceId},</if>
+            <if test="appId != null">app_id = #{appId},</if>
+            <if test="originalAppId != null">original_app_id = #{originalAppId},</if>
+            <if test="platType != null">plat_type = #{platType},</if>
+            <if test="auditStatus != null">audit_status = #{auditStatus},</if>
+            <if test="reason != null">reason = #{reason},</if>
+            <if test="link != null">link = #{link},</if>
+            <if test="linkRemark != null">link_remark = #{linkRemark},</if>
+            <if test="path != null">path = #{path},</if>
+            <if test="remarkMessage != null">remark_message = #{remarkMessage},</if>
+            <if test="iconImageUrl != null">icon_image_url = #{iconImageUrl},</if>
+            <if test="headerImageUrl != null">header_image_url = #{headerImageUrl},</if>
+            <if test="labels != null">labels = #{labels},</if>
+            <if test="guideText != null">guide_text = #{guideText},</if>
+            <if test="imagesVerticalUrl != null">images_vertical_url = #{imagesVerticalUrl},</if>
+            <if test="imagesHorizontalUrl != null">images_horizontal_url = #{imagesHorizontalUrl},</if>
+            <if test="introduction != null">introduction = #{introduction},</if>
+            <if test="tagInfo != null">tag_info = #{tagInfo},</if>
+            <if test="startPage != null">start_page = #{startPage},</if>
+            <if test="startParam != null">start_param = #{startParam},</if>
+            <if test="appCreateTime != null">app_create_time = #{appCreateTime},</if>
+            <if test="appUpdateTime != null">app_update_time = #{appUpdateTime},</if>
+            <if test="taskId != null">task_id = #{taskId},</if>
+            <if test="appShare != null">app_share = #{appShare},</if>
+            <if test="shareAdvertiserId != null">share_advertiser_id = #{shareAdvertiserId},</if>
+        </trim>
+        WHERE advertiser_id = #{advertiserId}
+        AND instance_id = #{instanceId}
+        AND plat_type = #{platType}
+    </update>
+
+    <select id="getsiteAdvertiserIds">
+        select advertiser_id
+        from deepthink.advertiser_tools_site
+        where advertiser_status = 'EDIT'
+    </select>
+
+    <update id="updateAdvertiserToolsSite" parameterType="cn.com.ctop.job.bytedance.data.entity.AdvertiserToolsSite">
+        update deepthink.advertiser_tools_site
+        <trim prefix="SET" suffixOverrides=",">
+            <if test="name != null">name = #{name},</if>
+            <if test="thumbnail != null">thumbnail = #{thumbnail},</if>
+            <if test="status != null">status = #{status},</if>
+            <if test="siteType != null">site_type = #{siteType},</if>
+            <if test="functionType != null">function_type = #{functionType},</if>
+            <if test="createType != null">create_type = #{createType},</if>
+            <if test="parameters != null">parameters = #{parameters},</if>
+            <if test="taskId != null">task_id = #{taskId},</if>
+        </trim>
+        where site_id = #{siteId}
+        AND advertiser_id = #{advertiserId}
+    </update>
+
+
+    <insert id="insertAdvertiserToolsSite" parameterType="cn.com.ctop.job.bytedance.data.entity.AdvertiserToolsSite">
+        replace into deepthink.advertiser_tools_site
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="siteId != null">site_id,</if>
+            <if test="advertiserId != null">advertiser_id,</if>
+            <if test="name != null">name,</if>
+            <if test="thumbnail != null">thumbnail,</if>
+            <if test="status != null">status,</if>
+            <if test="reason != null">reason,</if>
+            <if test="siteType != null">site_type,</if>
+            <if test="functionType != null">function_type,</if>
+            <if test="createType != null">create_type,</if>
+            <if test="createTime != null">create_time,</if>
+            <if test="updateTime != null">update_time,</if>
+            <if test="parameters != null">parameters,</if>
+            <if test="taskId != null">task_id,</if>
+        </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
+            <if test="siteId != null">#{siteId},</if>
+            <if test="advertiserId != null">#{advertiserId},</if>
+            <if test="name != null">#{name},</if>
+            <if test="thumbnail != null">#{thumbnail},</if>
+            <if test="status != null">#{status},</if>
+            <if test="reason != null">#{reason},</if>
+            <if test="siteType != null">#{siteType},</if>
+            <if test="functionType != null">#{functionType},</if>
+            <if test="createType != null">#{createType},</if>
+            <if test="createTime != null">#{createTime},</if>
+            <if test="updateTime != null">#{updateTime},</if>
+            <if test="parameters != null">#{parameters},</if>
+            <if test="taskId != null">#{taskId},</if>
+        </trim>
+    </insert>
 </mapper>

+ 19 - 1
job-bytedance/src/main/java/cn/com/ctop/job/bytedance/data/service/IToolsSiteService.java

@@ -1,6 +1,24 @@
 package cn.com.ctop.job.bytedance.data.service;
 
+import java.util.List;
+
 public interface IToolsSiteService {
 
-    void getToolsSiteStatusList(String accessToken, Long advertiserId, int page);
+    List<Long> getAvatarAdvertiserIds();
+
+    void updateAvatarStatus(Long id);
+
+    List<Long> getNameAdvertiserIds();
+
+    void updateNameStatus(Long id);
+
+    List<Long> getAppAdvertiserIds(String platType);
+
+    void updateWxAppStatus(Long advertiserId, String searchType, Integer page);
+
+    void updateTTAppStatus(Long id, String createOnly, Integer page);
+
+    List<Long> getSiteAdvertiserIds();
+
+    void updateSiteStatus(Long id, Integer page);
 }

+ 188 - 17
job-bytedance/src/main/java/cn/com/ctop/job/bytedance/data/service/impl/ToolsSiteServiceImpl.java

@@ -1,9 +1,14 @@
 package cn.com.ctop.job.bytedance.data.service.impl;
 
+import cn.com.ctop.job.bytedance.data.entity.AdvertiserApplet;
+import cn.com.ctop.job.bytedance.data.entity.AdvertiserAvatar;
+import cn.com.ctop.job.bytedance.data.entity.AdvertiserNameInfo;
 import cn.com.ctop.job.bytedance.data.entity.AdvertiserToolsSite;
+import cn.com.ctop.job.bytedance.data.mapper.BytedanceRefreshTokenMapper;
 import cn.com.ctop.job.bytedance.data.mapper.ToolsSiteMapper;
 import cn.com.ctop.job.bytedance.data.service.IToolsSiteService;
 import cn.com.ctop.job.bytedance.data.utils.Check;
+import cn.com.ctop.job.bytedance.data.utils.HttpUtils;
 import cn.com.ctop.job.bytedance.data.utils.Okhttp3Utils;
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
@@ -11,7 +16,7 @@ import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
-import java.util.ArrayList;
+import java.util.Collections;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
@@ -22,45 +27,211 @@ public class ToolsSiteServiceImpl implements IToolsSiteService {
     @Autowired
     private ToolsSiteMapper toolsSiteMapper;
 
+    @Autowired
+    private BytedanceRefreshTokenMapper tokenMapper;
+
+    @Override
+    public List<Long> getAvatarAdvertiserIds() {
+        return toolsSiteMapper.getAvatarAdvertiserIds();
+    }
+
+    @Override
+    public void updateAvatarStatus(Long advertiserId) {
+        String accessToken = tokenMapper.onlyGetToken(advertiserId);
+        JSONObject params = new JSONObject();
+        params.put("advertiser_id", advertiserId);
+        String url = "https://ad.oceanengine.com/open_api/2/advertiser/avatar/get/";
+        JSONObject obj = Okhttp3Utils.bytedanceGetRequest(accessToken, url, params);
+        System.out.println(obj);
+        if (!Check.isNull(obj)) {
+            Integer code = obj.getInteger("code");
+            if (code == 0) {
+                AdvertiserAvatar advertiserAvatar = new AdvertiserAvatar(obj.getJSONObject("data"));
+                if (!toolsSiteMapper.updateAdvertiserAvatar(advertiserAvatar)) {
+                    toolsSiteMapper.insertAdvertiserAvatar(advertiserAvatar);
+                }
+            } else {
+                log.error("更新广告主账户头像失败,返回结果:{}", obj);
+            }
+        }
+    }
+
+    @Override
+    public List<Long> getNameAdvertiserIds() {
+        return toolsSiteMapper.getNameAdvertiserIds();
+    }
+
+    @Override
+    public void updateNameStatus(Long advertiserId) {
+        String accessToken = tokenMapper.onlyGetToken(advertiserId);
+        Map<String, Object> params = new HashMap<>();
+        params.put("account_ids", new JSONArray(Collections.singletonList(advertiserId)));
+        String url = "https://api.oceanengine.com/open_api/2/agent/advertiser_info/query/";
+        String results = HttpUtils.httpGet(url, params, HttpUtils.postMHeaders(accessToken));
+        JSONObject obj = JSONObject.parseObject(results);
+        System.out.println(obj);
+        Integer code = obj.getInteger("code");
+        if (code == 0) {
+            JSONArray array = obj.getJSONObject("data").getJSONArray("account_detail_list");
+            JSONObject object = array.getJSONObject(0);
+            if (!Check.isNull(object)) {
+                AdvertiserNameInfo nameInfo = new AdvertiserNameInfo(advertiserId, object.getString("advertiser_name"), object.getString("advertiser_status"));
+                if (!toolsSiteMapper.updateAdvertiserNameInfo(nameInfo)) {
+                    toolsSiteMapper.insertAdvertiserNameInfo(nameInfo);
+                }
+            }
+        } else {
+            log.error("更新广告主账户名称失败,返回结果:{}", obj);
+        }
+    }
+
+    @Override
+    public List<Long> getAppAdvertiserIds(String platType) {
+        return toolsSiteMapper.getAppAdvertiserIds(platType);
+    }
+
+    @Override
+    public void updateWxAppStatus(Long advertiserId, String searchType, Integer page) {
+        boolean nextPage = false;
+        String accessToken = tokenMapper.onlyGetToken(advertiserId);
+        JSONObject params = new JSONObject();
+        params.put("advertiser_id", advertiserId);
+        params.put("page", page);
+        //页面大小,默认值为10,最大值100
+        params.put("page_size", 100);
+        JSONObject filtering = new JSONObject();
+        //CREATE_ONLY本户创建,SHARE_ONLY 只查共享应用
+        filtering.put("search_type", searchType);
+       /*
+       //AUDIT_ACCEPTED 审核通过、AUDITING 审核中、AUDIT_REJECTED 审核不通过。不传表示全部状态
+        filtering.put("audit_status", "AUDIT_ACCEPTED");
+        */
+           /* JSONObject createTime = new JSONObject();
+            createTime.put("start_time", startDate);
+            createTime.put("end_time", DateUtils.getLastDay(endDate, -1));
+            filtering.put("create_time", createTime);*/
+        params.put("filtering", filtering);
+        //获取微信小程序列表
+        String url = "https://api.oceanengine.com/open_api/v3.0/tools/wechat_applet/list/";
+        JSONObject obj = Okhttp3Utils.bytedanceGetRequest(accessToken, url, params);
+        Integer code = obj.getInteger("code");
+        System.out.println(obj);
+        if (code == 0) {
+            JSONObject data = obj.getJSONObject("data");
+            Integer totalPage = data.getJSONObject("page_info").getInteger("total_page");
+            if (totalPage != 0 && totalPage != data.getJSONObject("page_info").getInteger("page")) {
+                nextPage = true;
+            }
+            JSONArray list = data.getJSONArray("list");
+            for (int i = 0; i < list.size(); i++) {
+                JSONObject resultObj = list.getJSONObject(i);
+                AdvertiserApplet advertiserApplet = new AdvertiserApplet(advertiserId, resultObj, "1");
+                if ("SHARE_ONLY".equals(searchType)) {
+                    advertiserApplet.setAppShare("1");
+                    advertiserApplet.setShareAdvertiserId(resultObj.getLong("advertiser_id"));
+                }
+                if (!toolsSiteMapper.updateAdvertiserAppList(advertiserApplet)) {
+                    toolsSiteMapper.insertAdvertiserAppList(advertiserApplet);
+                }
+            }
+        } else {
+            log.error("获取微信小程序列表失败,{}", obj);
+        }
+        if (nextPage) {
+            updateWxAppStatus(advertiserId, searchType, page + 1);
+        }
+    }
+
+
     @Override
-    public void getToolsSiteStatusList(String accessToken, Long advertiserId, int page) {
+    public void updateTTAppStatus(Long advertiserId, String searchType, Integer page) {
+        boolean nextPage = false;
+        String accessToken = tokenMapper.onlyGetToken(advertiserId);
+        JSONObject params = new JSONObject();
+        params.put("advertiser_id", advertiserId);
+        params.put("page", page);
+        //页面大小,默认值为10,最大值100
+        params.put("page_size", 100);
+        JSONObject filtering = new JSONObject();
+        //CREATE_ONLY本户创建,SHARE_ONLY 只查共享应用
+        filtering.put("search_type", searchType);
+       /*
+       //AUDIT_ACCEPTED 审核通过、AUDITING 审核中、AUDIT_REJECTED 审核不通过。不传表示全部状态
+        filtering.put("audit_status", "AUDIT_ACCEPTED");
+        */
+           /* JSONObject createTime = new JSONObject();
+            createTime.put("start_time", startDate);
+            createTime.put("end_time", DateUtils.getLastDay(endDate, -1));
+            filtering.put("create_time", createTime);*/
+        params.put("filtering", filtering);
+        //获取微信小程序列表
+        String url = "https://api.oceanengine.com/open_api/v3.0/tools/micro_app/list/";
+        JSONObject obj = Okhttp3Utils.bytedanceGetRequest(accessToken, url, params);
+        Integer code = obj.getInteger("code");
+        System.out.println(obj);
+        if (code == 0) {
+            JSONObject data = obj.getJSONObject("data");
+            Integer totalPage = data.getJSONObject("page_info").getInteger("total_page");
+            if (totalPage != 0 && totalPage != data.getJSONObject("page_info").getInteger("page")) {
+                nextPage = true;
+            }
+            JSONArray list = data.getJSONArray("list");
+            for (int i = 0; i < list.size(); i++) {
+                JSONObject resultObj = list.getJSONObject(i);
+                AdvertiserApplet advertiserApplet = new AdvertiserApplet(advertiserId, resultObj, "2");
+                if ("SHARE_ONLY".equals(searchType)) {
+                    advertiserApplet.setAppShare("1");
+                    advertiserApplet.setShareAdvertiserId(resultObj.getLong("advertiser_id"));
+                }
+                if (!toolsSiteMapper.updateAdvertiserAppList(advertiserApplet)) {
+                    toolsSiteMapper.insertAdvertiserAppList(advertiserApplet);
+                }
+            }
+        } else {
+            log.error("获取字节小程序列表失败,{}", obj);
+        }
+        if (nextPage) {
+            updateTTAppStatus(advertiserId, searchType, page + 1);
+        }
+    }
+
+    @Override
+    public List<Long> getSiteAdvertiserIds() {
+        return toolsSiteMapper.getsiteAdvertiserIds();
+    }
+
+    @Override
+    public void updateSiteStatus(Long advertiserId, Integer page) {
+        String accessToken = tokenMapper.onlyGetToken(advertiserId);
         boolean nextPage = false;
         Map<String, Object> params = new HashMap<>();
         params.put("advertiser_id", advertiserId);
-        /*
-        SITE_ALL:查询所有
-        SITE_ONLINE:已上线(包括建站状态中:enable,auditAccepted,auditDoing)
-        SITE_OFFLINE:已下线(包括建站状态中:disable,edit)
-        SITE_REJECTED:审核不通过(包括建站状态中:auditRejected)
-        SITE_TRASH:删除或者禁止(包括建站状态中:deleted,auditBanned)
-         */
         //查询所有
         params.put("status", "SITE_ALL");
         params.put("page", page);
-        params.put("page_size", 300);//默认值为10,范围:20~300
+        params.put("page_size", 100);//默认值为10,范围:20~300
         String url = "https://ad.oceanengine.com/open_api/2/tools/site/get/";
         JSONObject obj = Okhttp3Utils.bytedanceGetRequest(accessToken, url, params);
         Integer code = obj.getInteger("code");
+        System.out.println(obj);
         if (code == 0) {
             JSONObject data = obj.getJSONObject("data");
             Integer totalPage = data.getJSONObject("page_info").getInteger("total_page");
             if (totalPage != 0 && totalPage != data.getJSONObject("page_info").getInteger("page")) {
                 nextPage = true;
             }
-            List<AdvertiserToolsSite> siteList = new ArrayList<>();
             JSONArray jsList = data.getJSONArray("list");
             for (int i = 0; i < jsList.size(); i++) {
                 AdvertiserToolsSite advertiserToolsSite = new AdvertiserToolsSite(jsList.getJSONObject(i), advertiserId, "1");
-                siteList.add(advertiserToolsSite);
-            }
-            if (!Check.isNull(siteList)) {
-                toolsSiteMapper.replaceAdvertiserToolsSite(siteList);
+                if (!toolsSiteMapper.updateAdvertiserToolsSite(advertiserToolsSite)) {
+                    toolsSiteMapper.insertAdvertiserToolsSite(advertiserToolsSite);
+                }
             }
         } else {
-            log.error("获取字节小程序列表失败,{}", obj.getString("message"));
+            log.error("获取字节小程序列表失败,{}", obj);
         }
         if (nextPage) {
-            getToolsSiteStatusList(accessToken, advertiserId, page + 1);
+            updateSiteStatus(advertiserId, page + 1);
         }
     }
 }

+ 7 - 0
job-bytedance/src/main/java/cn/com/ctop/job/bytedance/data/utils/HttpUtils.java

@@ -86,6 +86,13 @@ public class HttpUtils {
         return HttpClients.createDefault();
     }
 
+    public static Map<String, String> postMHeaders(String token) {
+        Map<String, String> headers = new HashMap<>();
+        headers.put("Content-Type", "application/json");
+        headers.put("Access-Token", token);
+        return headers;
+    }
+
     public static String httpPostRequest(String url, Map<String, Object> param, Map<String, String> headers) {
 
         HttpClient httpClient = createSslClientDefault();

+ 56 - 20
job-bytedance/src/main/java/cn/com/ctop/job/bytedance/handler/ToolsSiteJob.java

@@ -3,19 +3,18 @@ package cn.com.ctop.job.bytedance.handler;
 
 import cn.com.ctop.job.bytedance.data.service.IToolsSiteService;
 import cn.com.ctop.job.bytedance.data.utils.Check;
-import cn.com.ctop.job.bytedance.data.utils.DateUtils;
-import com.xxl.job.core.context.XxlJobHelper;
 import com.xxl.job.core.handler.annotation.XxlJob;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 
+import java.util.List;
 import java.util.concurrent.ExecutorService;
 import java.util.concurrent.Executors;
 
 
 /**
- * 橙子建站定时任务
+ * 批量搭建 各状态更新
  */
 @Slf4j
 @Component
@@ -23,27 +22,64 @@ public class ToolsSiteJob {
     @Autowired
     private IToolsSiteService toolsSiteService;
 
-    private static ExecutorService executorService = Executors.newFixedThreadPool(3);
+    private static ExecutorService avatarExecutorService = Executors.newFixedThreadPool(3);
+    private static ExecutorService nameExecutorService = Executors.newFixedThreadPool(3);
+    private static ExecutorService wxappExecutorService = Executors.newFixedThreadPool(3);
+    private static ExecutorService ttappExecutorService = Executors.newFixedThreadPool(3);
+    private static ExecutorService siteExecutorService = Executors.newFixedThreadPool(3);
 
     @XxlJob("getToolsSiteList")
     public void getToolsSiteList() throws Exception {
-        String param = XxlJobHelper.getJobParam(); // 执行参数
-        if (Check.isNull(param)) {
-            log.error("入参为空");
-            return;
+//        String param = XxlJobHelper.getJobParam(); // 执行参数
+//        if (Check.isNull(param)) {
+//            log.error("入参为空");
+//            return;
+//        }
+        //头像待更新的广告主id集
+        List<Long> avatarIds = toolsSiteService.getAvatarAdvertiserIds();
+        if (!Check.isNull(avatarIds)) {
+            avatarIds.forEach(id -> avatarExecutorService.submit(() -> {
+                toolsSiteService.updateAvatarStatus(id);
+            }));
+        }
+
+        //广告名称待更新的广告主id集
+        List<Long> nameIds = toolsSiteService.getNameAdvertiserIds();
+        if (!Check.isNull(nameIds)) {
+            nameIds.forEach(id -> nameExecutorService.submit(() -> {
+                toolsSiteService.updateNameStatus(id);
+            }));
+        }
+
+        //微信
+        List<Long> wxappIds = toolsSiteService.getAppAdvertiserIds("1");
+        if (!Check.isNull(wxappIds)) {
+            wxappIds.forEach(id -> wxappExecutorService.submit(() -> {
+                //创建
+                toolsSiteService.updateWxAppStatus(id, "CREATE_ONLY", 1);
+                //复制
+                toolsSiteService.updateWxAppStatus(id, "SHARE_ONLY", 1);
+            }));
+        }
+
+        //字节
+        List<Long> ttappIds = toolsSiteService.getAppAdvertiserIds("2");
+        if (!Check.isNull(ttappIds)) {
+            ttappIds.forEach(id -> ttappExecutorService.submit(() -> {
+                //创建
+                toolsSiteService.updateTTAppStatus(id, "CREATE_ONLY", 1);
+                //复制
+                toolsSiteService.updateTTAppStatus(id, "SHARE_ONLY", 1);
+            }));
+        }
+
+        //落地页
+        List<Long> siteIds = toolsSiteService.getSiteAdvertiserIds();
+        if (!Check.isNull(siteIds)) {
+            siteIds.forEach(id -> siteExecutorService.submit(() -> {
+                toolsSiteService.updateSiteStatus(id, 1);
+            }));
         }
-        String nowDate = DateUtils.getNowDate("yyyy-MM-dd");
-        String data = DateUtils.getAnotherDay("yyyy-MM-dd", nowDate, -1);
-        String[] s = param.split("_");
-        Long advertiserId = Long.valueOf(s[0]);
-        String accessToken = s[1];
-
-        executorService.submit(new Runnable() {
-            @Override
-            public void run() {
-                toolsSiteService.getToolsSiteStatusList(accessToken, advertiserId, 1);
-            }
-        });
     }
 
 }