Quellcode durchsuchen

添加rocket维度定时

zhaoxian vor 1 Jahr
Ursprung
Commit
bd9877cff1

+ 1 - 1
jeecg-boot-base-common/src/main/java/org/jeecg/common/util/DateUtils.java

@@ -1167,7 +1167,7 @@ public class DateUtils extends PropertyEditorSupport {
     }
 
     public static void main(String[] args) {
-        Integer hour = getHour(1698979253012L);
+        Integer hour = getHour(1714100399753L);
         System.err.println(hour);
 
     }

+ 4 - 4
module-job-kuaishou/src/main/java/cn/com/ctop/job/kuaishou/handler/MgsOrderLIstGetJob.java

@@ -49,7 +49,7 @@ public class MgsOrderLIstGetJob {
         }
         JSONArray hourList = KuaishouHourEnum.getHourList();
         JSONArray minSecList = KuaishouMinSecEnum.getMinSecList();
-        Map<Long, Long> itemMap = activityItemListService.getItemMap();
+        Map<Long, Long> itemMap = activityItemListService.getMgsItemList();
         for (int z = 0; z < days.size(); z++) {
             String date = days.get(z);
             for (int i = 0; i < hourList.size(); i++) {
@@ -101,7 +101,7 @@ public class MgsOrderLIstGetJob {
         String date = DateUtils.getAnotherDay("yyyy-MM-dd", nowDate, -1);
         JSONArray hourList = KuaishouHourEnum.getHourList();
         JSONArray minSecList = KuaishouMinSecEnum.getMinSecList();
-        Map<Long, Long> itemMap = activityItemListService.getItemMap();
+        Map<Long, Long> itemMap = activityItemListService.getMgsItemList();
         for (int i = 0; i < hourList.size(); i++) {
             String hour = hourList.getString(i);
             for (int j = 0; j < minSecList.size(); j++) {
@@ -145,7 +145,7 @@ public class MgsOrderLIstGetJob {
 
 
         JSONArray minSecList = KuaishouMinSecEnum.getMinSecList();
-        Map<Long, Long> itemMap = activityItemListService.getItemMap();
+        Map<Long, Long> itemMap = activityItemListService.getMgsItemList();
         for (int i = 0; i < hours.size(); i++) {
             Integer hour = hours.getInteger(i);
             for (int j = 0; j < minSecList.size(); j++) {
@@ -184,7 +184,7 @@ public class MgsOrderLIstGetJob {
         String date = DateUtils.getNowDate("yyyy-MM-dd");
         JSONArray hourList = KuaishouHourEnum.getHourList();
         JSONArray minSecList = KuaishouMinSecEnum.getMinSecList();
-        Map<Long, Long> itemMap = activityItemListService.getItemMap();
+        Map<Long, Long> itemMap = activityItemListService.getMgsItemList();
         Integer nowHour = DateUtils.getNowHour();
         for (int i = 0; i < hourList.size(); i++) {
             String hour = hourList.getString(i);

+ 159 - 0
module-job-kuaishou/src/main/java/cn/com/ctop/job/kuaishou/handler/RocketOrderLIstGetJob.java

@@ -0,0 +1,159 @@
+package cn.com.ctop.job.kuaishou.handler;
+
+import cn.com.ctop.common.module.utils.Check;
+import cn.com.ctop.kuaishou.modules.batch.Enums.KuaishouHourEnum;
+import cn.com.ctop.kuaishou.modules.batch.Enums.KuaishouMinSecEnum;
+import cn.com.ctop.kuaishou.modules.batch.service.IKuaiShouActivityItemListService;
+import cn.com.ctop.kuaishou.modules.batch.service.RocketSupplyChainService;
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
+import com.xxl.job.core.handler.annotation.XxlJob;
+import lombok.extern.slf4j.Slf4j;
+import org.jeecg.common.util.DateUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+import java.text.SimpleDateFormat;
+import java.util.List;
+import java.util.Map;
+import java.util.concurrent.ExecutorService;
+import java.util.concurrent.Executors;
+
+@Slf4j
+@Component
+public class RocketOrderLIstGetJob {
+
+    @Autowired
+    private RocketSupplyChainService rocketSupplyChainService;
+
+    @Autowired
+    private IKuaiShouActivityItemListService activityItemListService;
+
+    static ExecutorService fxService = Executors.newFixedThreadPool(3);
+
+    /**
+     * 昨日快分销数据获取
+     **/
+    @XxlJob("rocketYesterdayOrderGet")
+    public void rocketYesterdayOrderGet() throws Exception {
+        List<JSONObject> cookies = rocketSupplyChainService.getCookie();
+        if (Check.isNull(cookies)) {
+            log.error("cookie数据为空");
+            return;
+        }
+        String nowDate = DateUtils.getNowDate("yyyy-MM-dd");
+        String date = DateUtils.getAnotherDay("yyyy-MM-dd", nowDate, -1);
+        JSONArray hourList = KuaishouHourEnum.getHourList();
+        JSONArray minSecList = KuaishouMinSecEnum.getMinSecList();
+        Map<Long, Long> itemMap = activityItemListService.getRocketItemList();
+        for (int i = 0; i < hourList.size(); i++) {
+            String hour = hourList.getString(i);
+            for (int j = 0; j < minSecList.size(); j++) {
+                JSONObject minSecJson = minSecList.getJSONObject(j);
+                String startTime = minSecJson.getString("startTime");
+                String endTime = minSecJson.getString("endTime");
+                String start = date + hour + startTime;
+                String end = date + hour + endTime;
+                System.err.println("开始时间:" + start);
+                System.err.println("结束时间:" + end);
+                SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+                Long orderCreateTimeStart = sdf.parse(start).getTime();
+                Long orderCreateTimeEnd = sdf.parse(end).getTime();
+                for (int p = 0; p < cookies.size(); p++) {
+                    JSONObject cookieJson = cookies.get(p);
+                    String cookie = cookieJson.getString("cookie");
+                    rocketSupplyChainService.getOrderList(cookie, 0, orderCreateTimeStart, orderCreateTimeEnd, itemMap);
+                }
+            }
+        }
+    }
+
+
+    /**
+     * 当前小时数据获取
+     **/
+    @XxlJob("rocketNowHourOrderGet")
+    public void rocketNowHourOrderGet() throws Exception {
+        List<JSONObject> cookies = rocketSupplyChainService.getCookie();
+        if (Check.isNull(cookies)) {
+            log.error("cookie数据为空");
+            return;
+        }
+        String date = DateUtils.getNowDate("yyyy-MM-dd");
+        Integer nowHour = DateUtils.getNowHour();
+        JSONArray hours = new JSONArray();
+        hours.add(nowHour);
+        if (nowHour >= 1) {
+            hours.add(nowHour - 1);
+        }
+
+
+        JSONArray minSecList = KuaishouMinSecEnum.getMinSecList();
+        Map<Long, Long> itemMap = activityItemListService.getRocketItemList();
+        for (int i = 0; i < hours.size(); i++) {
+            Integer hour = hours.getInteger(i);
+            for (int j = 0; j < minSecList.size(); j++) {
+                JSONObject minSecJson = minSecList.getJSONObject(j);
+                String startTime = minSecJson.getString("startTime");
+                String endTime = minSecJson.getString("endTime");
+                String start = date + " " + hour + ":" + startTime;
+                String end = date + " " + hour + ":" + endTime;
+                System.err.println("开始时间:" + start);
+                System.err.println("结束时间:" + end);
+                SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+                Long orderCreateTimeStart = sdf.parse(start).getTime();
+                Long orderCreateTimeEnd = sdf.parse(end).getTime();
+                for (int p = 0; p < cookies.size(); p++) {
+                    JSONObject cookieJson = cookies.get(p);
+                    String cookie = cookieJson.getString("cookie");
+                    rocketSupplyChainService.getOrderList(cookie, 0, orderCreateTimeStart, orderCreateTimeEnd, itemMap);
+                }
+            }
+        }
+    }
+
+    /**
+     * 当天所有数据获取
+     **/
+    /**
+     * 当天数据获取
+     **/
+    @XxlJob("rocketFrontHourOrderGet")
+    public void rocketFrontHourOrderGet() throws Exception {
+        List<JSONObject> cookies = rocketSupplyChainService.getCookie();
+        if (Check.isNull(cookies)) {
+            log.error("cookie数据为空");
+            return;
+        }
+        String date = DateUtils.getNowDate("yyyy-MM-dd");
+        JSONArray hourList = KuaishouHourEnum.getHourList();
+        JSONArray minSecList = KuaishouMinSecEnum.getMinSecList();
+        Map<Long, Long> itemMap = activityItemListService.getRocketItemList();
+        Integer nowHour = DateUtils.getNowHour();
+        for (int i = 0; i < hourList.size(); i++) {
+            String hour = hourList.getString(i);
+            Integer integer = Integer.valueOf(hour.replace(":", "").replace(" ", ""));
+            if (integer <= nowHour) {
+                for (int j = 0; j < minSecList.size(); j++) {
+                    JSONObject minSecJson = minSecList.getJSONObject(j);
+                    String startTime = minSecJson.getString("startTime");
+                    String endTime = minSecJson.getString("endTime");
+                    String start = date + hour + startTime;
+                    String end = date + hour + endTime;
+                    System.err.println("开始时间:" + start);
+                    System.err.println("结束时间:" + end);
+                    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+                    Long orderCreateTimeStart = sdf.parse(start).getTime();
+                    Long orderCreateTimeEnd = sdf.parse(end).getTime();
+                    for (int p = 0; p < cookies.size(); p++) {
+                        JSONObject cookieJson = cookies.get(p);
+                        String cookie = cookieJson.getString("cookie");
+                        rocketSupplyChainService.getOrderList(cookie, 0, orderCreateTimeStart, orderCreateTimeEnd, itemMap);
+                    }
+                }
+            }
+        }
+    }
+
+
+}

+ 4 - 0
module-kuaishou/src/main/java/cn/com/ctop/kuaishou/modules/batch/mapper/KuaiShouActivityItemListMapper.java

@@ -21,5 +21,9 @@ public interface KuaiShouActivityItemListMapper extends BaseMapper<KuaiShouActiv
 
     List<JSONObject> itemList();
 
+    List<JSONObject> getMgsItemList();
+
+    List<JSONObject> getRocketItemList();
+
     void updateItemStatusByItem(@Param("itemId") Long itemId, @Param("itemStatus") Integer itemStatus);
 }

+ 33 - 0
module-kuaishou/src/main/java/cn/com/ctop/kuaishou/modules/batch/mapper/RocketSupplyChainMapper.java

@@ -0,0 +1,33 @@
+package cn.com.ctop.kuaishou.modules.batch.mapper;
+
+import cn.com.ctop.kuaishou.modules.batch.entity.KuaishouSupplyChain;
+import cn.com.ctop.kuaishou.modules.batch.entity.KuaishouSupplyChainSettlement;
+import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+ * 快手电商-供应链订单信息
+ */
+public interface RocketSupplyChainMapper extends BaseMapper<KuaishouSupplyChain> {
+
+    void replace(@Param(value = "adds") List<KuaishouSupplyChain> supplyChains);
+
+    List<JSONObject> getCookie();
+
+    void replaceSettlement(@Param(value = "adds") List<KuaishouSupplyChainSettlement> supplyChains);
+
+    List<JSONObject> getDataList(@Param("statDate") Long statDate);
+
+    List<JSONObject> getPromoterDataList(@Param("statDate") Long statDate);
+
+    void deletePromoterBindChannelByDate(@Param("date") Long date);
+
+    void cleanKuaiShouPromoterBindChannel(@Param("date") Long date);
+
+    List<JSONObject> getSamplesData(@Param("startDate") String startDate);
+
+    void cleanBytedancePromoterBindChannel(@Param("date") Long date);
+}

+ 13 - 0
module-kuaishou/src/main/java/cn/com/ctop/kuaishou/modules/batch/mapper/xml/KuaiShouActivityItemListMapper.xml

@@ -94,4 +94,17 @@
         from ruixuan.kuaishou_activity_item_list
 
     </select>
+
+    <select id="getMgsItemList" resultType="com.alibaba.fastjson.JSONObject">
+          select item_id as 'itemId',
+        item_commission_rate as 'itemCommissionRate'
+        from miaogousi.kuaishou_activity_item_list
+    </select>
+
+    <select id="getRocketItemList" resultType="com.alibaba.fastjson.JSONObject">
+          select item_id as 'itemId',
+        item_commission_rate as 'itemCommissionRate'
+        from rocket.kuaishou_activity_item_list
+
+    </select>
 </mapper>

+ 187 - 0
module-kuaishou/src/main/java/cn/com/ctop/kuaishou/modules/batch/mapper/xml/RocketSupplyChainMapper.xml

@@ -0,0 +1,187 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="cn.com.ctop.kuaishou.modules.batch.mapper.RocketSupplyChainMapper">
+
+    <insert id="replace">
+        replace into rocket.kuaishou_supply_chain(
+        id,
+        oid,
+        item_id,
+        item_title,
+        reserve_price,
+        image_url,
+        order_status,
+        order_create_time,
+        send_status,
+        settlement_biz_type,
+        settlement_biz_type_desc,
+        send_time,
+        recv_time,
+        seller_id,
+        promoter_id,
+        promoter_nick_name,
+        activity_id,
+        order_amount,
+        pay_amount,
+        regimental_promotion_rate,
+        share_rate,
+        base_amount,
+        service_amount,
+        regimental_promotion_amount,
+        total_regimental_settle_amount,
+        stat_date,
+        stat_hour,
+        item_commission_rate
+        )
+        values
+        <foreach collection="adds" item="add" separator=",">
+            (
+            #{add.id},
+            #{add.oid},
+            #{add.itemId},
+            #{add.itemTitle},
+            #{add.reservePrice},
+            #{add.imageUrl},
+            #{add.orderStatus},
+            #{add.orderCreateTime},
+            #{add.sendStatus},
+            #{add.settlementBizType},
+            #{add.settlementBizTypeDesc},
+            #{add.sendTime},
+            #{add.recvTime},
+            #{add.sellerId},
+            #{add.promoterId},
+            #{add.promoterNickName},
+            #{add.activityId},
+            #{add.orderAmount},
+            #{add.payAmount},
+            #{add.regimentalPromotionRate},
+            #{add.shareRate},
+            #{add.baseAmount},
+            #{add.serviceAmount},
+            #{add.regimentalPromotionAmount},
+            #{add.totalRegimentalSettleAmount},
+            #{add.statDate},
+            #{add.statHour},
+            #{add.itemCommissionRate}
+            )
+
+        </foreach>
+    </insert>
+    <insert id="replaceSettlement">
+        replace into rocket.kuaishou_supply_chain_settlement(
+        oid,
+        settlement_amount,
+        settlement_time
+
+        )
+        values
+        <foreach collection="adds" item="add" separator=",">
+            (
+            #{add.oid},
+            #{add.settlementAmount},
+            #{add.settlementTime}
+            )
+        </foreach>
+    </insert>
+    <insert id="cleanKuaiShouPromoterBindChannel" parameterType="java.lang.Long">
+        insert into rocket.promoter_bind_channel_date (promoter_id, promoter_name,promoter_url, user_id, user_name, stat_date,media_id)
+        select t1.promoter_id, t1.promoter_nick_name, t1.promoter_url,t1.user_id, t1.user_name, #{date},media_id
+        from rocket.kuaishou_promoter t1
+        left join rocket.sys_user_role t2
+        on t1.user_id = t2.user_id
+        left join rocket.sys_role t3
+        on t2.role_id = t3.role_id
+        where  1 = 1
+        and t1.media_id = '2'
+        and t3.role_key in ('bdManager', 'bd')
+        and date_format(t1.create_time, '%Y%m%d')  &lt; #{date}
+        group by t1.promoter_id
+
+    </insert>
+    <delete id="deletePromoterBindChannelByDate" parameterType="java.lang.Long">
+        delete from rocket.promoter_bind_channel_date where stat_date = #{date}
+    </delete>
+    <select id="getCookie" resultType="com.alibaba.fastjson.JSONObject">
+
+        select  id ,cookie  from rocket.kuaishou_supply_chain_cookie
+
+    </select>
+    <select id="getDataList" resultType="com.alibaba.fastjson.JSONObject" parameterType="java.lang.Long">
+      select t.*, tt.rule_type
+      from (select *
+      from (select t1.relate_id                                 as 'relateId',
+                   (case
+                        when t2.rule_id is not null
+                            then t2.rule_id
+                        else 1
+                       end
+                       )                                        as 'ruleId',
+                   group_concat(t1.item_id)                     as 'itemIds',
+                   t1.promoter_id                               as 'promoterId',
+                   t1.promoter_name                             as 'promoterName',
+                   t1.item_create_id                            as 'itemCreateId',
+                   t1.item_create_name                          as 'itemCreateName',
+                   t1.promoter_create_id                        as 'promoterCreateId',
+                   t1.promoter_create_name                      as 'promoterCreateName',
+                   ifnull(sum(t1.order_num), 0)                 as 'orderNum',
+                   ifnull(sum(t1.valid_order_num), 0)           as 'validOrderNum',
+                   ifnull(sum(t1.yesterday_order_num), 0)       as 'yesterdayOrderNum',
+                   ifnull(sum(t1.yesterday_valid_order_num), 0) as 'yesterdayValidOrderNum',
+                   t1.stat_date                                 as 'statDate',
+                   round(t2.item_price / 100, 2)                as 'itemPrice'
+            from rocket.kuaishou_rule_order_data t1
+                     left join rocket.kuaishou_item_list t2 on t1.item_id = t2.item_id
+            where t1.stat_date = #{statDate}
+              and t1.relate_id is not null
+            group by t1.relate_id, t1.promoter_id) t
+      where t.itemPrice >= 6
+      order by t.validOrderNum desc) t
+         left join rocket.kuaishou_settlement_rules tt
+                   on t.ruleId = tt.id
+    </select>
+    <select id="getPromoterDataList" resultType="com.alibaba.fastjson.JSONObject" parameterType="java.lang.Long">
+select t1.rule_id                                   as 'ruleId',
+       t1.promoter_id                               as 'promoterId',
+       t2.promoter_name                             as 'promoterName',
+       ifnull(sum(t2.order_num), 0)                 as 'orderNum',
+       ifnull(sum(t2.valid_order_num), 0)           as 'validOrderNum',
+       ifnull(sum(t2.yesterday_order_num), 0)       as 'yesterdayOrderNum',
+       ifnull(sum(t2.yesterday_valid_order_num), 0) as 'yesterdayValidOrderNum',
+       t2.stat_date                                 as 'statDate',
+       3                                            as 'rule_type',
+       t3.item_price                                as 'itemPrice'
+
+from rocket.promoter_bind_rule t1
+         left join rocket.kuaishou_rule_order_data t2 on t1.promoter_id = t2.promoter_id
+         left join rocket.kuaishou_item_list t3 on t2.item_id = t3.item_id
+where 1 = 1
+  and t2.stat_date =  #{statDate}
+  and t3.item_price >= 600
+group by t1.promoter_id;
+
+
+    </select>
+    <select id="getSamplesData" resultType="com.alibaba.fastjson.JSONObject" parameterType="java.lang.String">
+      select  id,courier_number as 'courierNumber',company_code as 'companyCode' from rocket.kuaishou_item_collect_samples
+      where courier_number_time  &gt;=  str_to_date(CONCAT(date_format(#{startDate}, '%Y-%m-%d'), '00:00:01'), '%Y-%m-%d %H:%i:%s')
+      and collect_sample_status  = 4
+      and collect_sample_desc = '单号异常'
+    </select>
+    <select id="cleanBytedancePromoterBindChannel" parameterType="java.lang.Long">
+          insert into rocket.promoter_bind_channel_date (promoter_id, promoter_name,promoter_url, user_id, user_name, stat_date,media_id)
+        select t1.promoter_id, t1.promoter_nick_name, t1.promoter_url,t1.user_id, t1.user_name, #{date},media_id
+        from rocket.kuaishou_promoter t1
+        left join rocket.sys_user_role t2
+        on t1.user_id = t2.user_id
+        left join rocket.sys_role t3
+        on t2.role_id = t3.role_id
+        where  1 = 1
+        and t1.media_id = '1'
+        and t3.role_key in ('bdManager', 'bd')
+        and date_format(t1.create_time, '%Y%m%d')  &lt;= #{date}
+        group by t1.promoter_id
+
+    </select>
+
+</mapper>

+ 6 - 1
module-kuaishou/src/main/java/cn/com/ctop/kuaishou/modules/batch/service/IKuaiShouActivityItemListService.java

@@ -7,13 +7,18 @@ import java.util.Map;
 
 /**
  * 快分销-招商商品列表
+ *
  * @author jeecg-boot
  * 2023-01-10
  * @version V1.0
  */
 public interface IKuaiShouActivityItemListService extends IService<KuaiShouActivityItemList> {
 
-    void getActivityItemList(String cookie, Integer offset,Long activityId, Integer activityStatus, Map<Long, Integer> itemMap) throws Exception;
+    void getActivityItemList(String cookie, Integer offset, Long activityId, Integer activityStatus, Map<Long, Integer> itemMap) throws Exception;
 
     Map<Long, Long> getItemMap();
+
+    Map<Long, Long> getMgsItemList();
+
+    Map<Long, Long> getRocketItemList();
 }

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

@@ -0,0 +1,31 @@
+package cn.com.ctop.kuaishou.modules.batch.service;
+
+import cn.com.ctop.kuaishou.modules.batch.entity.KuaishouSupplyChain;
+import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 快手电商-供应链订单信息
+ */
+public interface RocketSupplyChainService extends IService<KuaishouSupplyChain> {
+    void getOrderList(String cookie, Integer offset, Long orderCreateTimeStart, Long orderCreateTimeEnd, Map<Long,Long> itemMap) throws Exception;
+
+    List<JSONObject> getCookie();
+
+    void getSettlementData(String cookie, Integer offset, Long orderCreateTimeStart, Long orderCreateTimeEnd) throws Exception;
+
+    List<JSONObject> getDataList(Long statDate);
+
+    List<JSONObject> getPromoterDataList(Long statDate);
+
+    void deletePromoterBindChannelByDate(Long date);
+
+    void cleanKuaiShouPromoterBindChannel(Long date);
+
+    List<JSONObject> getSamplesData(String startDate);
+
+    void cleanBytedancePromoterBindChannel(Long date);
+}

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

@@ -161,6 +161,34 @@ public class KuaiShouActivityItemListServiceImpl extends ServiceImpl<KuaiShouAct
         return returnMap;
     }
 
+    @Override
+    public Map<Long, Long> getMgsItemList() {
+        Map<Long, Long> returnMap = new HashMap<>();
+        List<JSONObject> list = activityItemListMapper.getMgsItemList();
+        if (!Check.isNull(list)) {
+            for (int i = 0; i < list.size(); i++) {
+                JSONObject jsonObject = list.get(i);
+                returnMap.put(jsonObject.getLong("itemId"), jsonObject.getLong("itemCommissionRate"));
+            }
+        }
+
+        return returnMap;
+    }
+
+    @Override
+    public Map<Long, Long> getRocketItemList() {
+        Map<Long, Long> returnMap = new HashMap<>();
+        List<JSONObject> list = activityItemListMapper.getRocketItemList();
+        if (!Check.isNull(list)) {
+            for (int i = 0; i < list.size(); i++) {
+                JSONObject jsonObject = list.get(i);
+                returnMap.put(jsonObject.getLong("itemId"), jsonObject.getLong("itemCommissionRate"));
+            }
+        }
+
+        return returnMap;
+    }
+
     public static String filterSupplement(String content) {
         StringBuilder sb = new StringBuilder();
         for (char ch : content.toCharArray()) {

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

@@ -0,0 +1,245 @@
+package cn.com.ctop.kuaishou.modules.batch.service.impl;
+
+
+import cn.com.ctop.common.module.service.ISendMessageService;
+import cn.com.ctop.common.module.utils.Check;
+import cn.com.ctop.common.module.utils.HttpUtils;
+import cn.com.ctop.kuaishou.modules.batch.entity.KuaishouSupplyChain;
+import cn.com.ctop.kuaishou.modules.batch.entity.KuaishouSupplyChainSettlement;
+import cn.com.ctop.kuaishou.modules.batch.mapper.KuaishouSupplyChainMapper;
+import cn.com.ctop.kuaishou.modules.batch.mapper.RocketSupplyChainMapper;
+import cn.com.ctop.kuaishou.modules.batch.service.RocketSupplyChainService;
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import lombok.extern.slf4j.Slf4j;
+import org.jeecg.common.util.DateUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 快手电商-供应链订单信息
+ *
+ * @author jeecg-boot
+ * 2022-12-01
+ * @version V1.0
+ */
+@Slf4j
+@Service
+public class RocketSupplyChainServiceImpl extends ServiceImpl<KuaishouSupplyChainMapper, KuaishouSupplyChain> implements RocketSupplyChainService {
+    private static String url = "https://cps.kwaixiaodian.com/distribute/pc/investment/order/list";
+    @Autowired
+    private ISendMessageService sendMessageService;
+    @Autowired
+    private RocketSupplyChainMapper rocketSupplyChainMapper;
+
+    public static void main(String[] args) {
+        System.err.println(DateUtils.tempToLongDateStr(1706112000000L));
+    }
+
+
+    @Transactional
+    @Override
+    public void getOrderList(String cookie, Integer offset, Long orderCreateTimeStart, Long orderCreateTimeEnd, Map<Long, Long> itemMap) throws Exception {
+        Thread.sleep(1000);
+        log.info("rocket团长抓取订单数据入参,开始时间:{},结束时间:{},数据:{}", DateUtils.tempToLongDateStr(orderCreateTimeStart), DateUtils.tempToLongDateStr(orderCreateTimeEnd), offset);
+        Map<String, Object> params = new HashMap<>();
+        if (!Check.isNull(orderCreateTimeStart)) {
+            params.put("orderCreateTimeStart", orderCreateTimeStart);
+        }
+        if (!Check.isNull(orderCreateTimeEnd)) {
+            params.put("orderCreateTimeEnd", orderCreateTimeEnd);
+        }
+        params.put("fundType", 1);
+        params.put("timeType", 1);
+        params.put("limit", 100);
+        params.put("offset", offset);
+
+        Map<String, String> headers = new HashMap<>();
+        headers.put("Cookie", cookie);
+
+        String resultStr = HttpUtils.KuaiShouttpGetRequest(url, params, headers);
+        JSONObject result = JSONObject.parseObject(resultStr);
+        if (Check.isNull(result)) {
+            log.error("快分销数据返回为空");
+            return;
+        }
+        Integer code = result.getInteger("result");
+        if (code != 1) {
+            log.info("rocket快分销数据返回异常:", resultStr);
+            sendMessageService.sendMessage("113dee46c7df464da78c07a985e92cd1", "rocketcookie失效,请及时更新。媒体返回信息:" + resultStr);
+            return;
+        }
+        JSONObject dataJson = result.getJSONObject("data");
+        if (Check.isNull(dataJson)) {
+            log.error("rocket数据返回为data数据为空");
+            return;
+        }
+        JSONArray list = dataJson.getJSONArray("list");
+        if (Check.isNull(list)) {
+            log.error("rocket数据返回为list数据为空");
+            return;
+        }
+        log.info("rocket当前数据条数:{}", list.size());
+        List<KuaishouSupplyChain> supplyChains = new ArrayList<>();
+        for (int i = 0; i < list.size(); i++) {
+            JSONObject jsonObject = list.getJSONObject(i);
+            KuaishouSupplyChain supplyChain = new KuaishouSupplyChain();
+            supplyChain.setOid(jsonObject.getLong("oid"));
+            JSONObject item = jsonObject.getJSONArray("itemList").getJSONObject(0);
+            if (!Check.isNull(item)) {
+                supplyChain.setItemId(item.getLong("itemId"));
+                supplyChain.setItemTitle(item.getString("itemTitle"));
+                supplyChain.setReservePrice(item.getLong("reservePrice"));
+                supplyChain.setImageUrl(item.getString("imageUrl"));
+            }
+            supplyChain.setOrderStatus(jsonObject.getInteger("orderStatus"));
+            supplyChain.setOrderCreateTime(jsonObject.getLong("orderCreateTime"));
+            supplyChain.setSendStatus(jsonObject.getInteger("sendStatus"));
+            supplyChain.setSettlementBizType(jsonObject.getInteger("settlementBizType"));
+            supplyChain.setSettlementBizTypeDesc(jsonObject.getString("settlementBizTypeDesc"));
+            supplyChain.setSendTime(jsonObject.getLong("sendTime"));
+            supplyChain.setRecvTime(jsonObject.getLong("recvTime"));
+            supplyChain.setSellerId(jsonObject.getLong("sellerId"));
+            supplyChain.setPromoterId(jsonObject.getLong("promoterId"));
+            supplyChain.setPromoterNickName(filterSupplement(jsonObject.getString("promoterNickName")));
+            supplyChain.setActivityId(jsonObject.getLong("activityId"));
+            supplyChain.setOrderAmount(jsonObject.getLong("orderAmount"));
+            supplyChain.setPayAmount(jsonObject.getLong("payAmount"));
+            supplyChain.setRegimentalPromotionRate(jsonObject.getLong("regimentalPromotionRate"));
+            supplyChain.setShareRate(jsonObject.getLong("shareRate"));
+            supplyChain.setBaseAmount(jsonObject.getLong("baseAmount"));
+            supplyChain.setServiceAmount(jsonObject.getLong("serviceAmount"));
+            supplyChain.setRegimentalPromotionAmount(jsonObject.getLong("regimentalPromotionAmount"));
+            supplyChain.setTotalRegimentalSettleAmount(jsonObject.getLong("totalRegimentalSettleAmount"));
+            supplyChain.setStatDate(DateUtils.tempToDate(jsonObject.getLong("orderCreateTime")));
+            supplyChain.setStatHour(DateUtils.getHour(jsonObject.getLong("orderCreateTime")));
+            supplyChain.setItemCommissionRate(itemMap.get(item.getLong("itemId")));
+            supplyChains.add(supplyChain);
+        }
+        try {
+            rocketSupplyChainMapper.replace(supplyChains);
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+
+        if (list.size() >= 100) {
+            getOrderList(cookie, offset + 100, orderCreateTimeStart, orderCreateTimeEnd, itemMap);
+        }
+
+    }
+
+    @Override
+    public List<JSONObject> getCookie() {
+        return rocketSupplyChainMapper.getCookie();
+    }
+
+    @Override
+    public void getSettlementData(String cookie, Integer offset, Long orderCreateTimeStart, Long orderCreateTimeEnd) throws Exception {
+
+        String getUrl = "https://cps.kwaixiaodian.com/distribute/pc/investment/bill/list";
+        Map<String, Object> params = new HashMap<>();
+        if (!Check.isNull(orderCreateTimeStart)) {
+            params.put("settlementTimeStart", orderCreateTimeStart);
+        }
+        if (!Check.isNull(orderCreateTimeEnd)) {
+            params.put("settlementTimeEnd", orderCreateTimeEnd);
+        }
+
+        params.put("limit", 5000);
+        params.put("offset", offset);
+        params.put("activityUserType", 1);
+
+        Map<String, String> headers = new HashMap<>();
+        headers.put("Cookie", cookie);
+
+        String resultStr = HttpUtils.KuaiShouttpGetRequest(getUrl, params, headers);
+        JSONObject result = JSONObject.parseObject(resultStr);
+        if (Check.isNull(result)) {
+            log.error("rocket数据返回为空");
+            return;
+        }
+        Integer code = result.getInteger("result");
+        if (code != 1) {
+            log.info("rocket返回异常:", resultStr);
+            sendMessageService.sendMessage("113dee46c7df464da78c07a985e92cd1", "rocket供应链cookie失效,请及时更新。媒体返回信息:" + resultStr);
+            return;
+        }
+        JSONObject dataJson = result.getJSONObject("data");
+        if (Check.isNull(dataJson)) {
+            log.error("快分销数据返回为data数据为空");
+            return;
+        }
+        JSONArray list = dataJson.getJSONArray("list");
+        if (Check.isNull(list)) {
+            log.error("快分销数据返回为list数据为空");
+            return;
+        }
+        log.info("快分销当前数据条数:{}", list.size());
+        List<KuaishouSupplyChainSettlement> supplyChains = new ArrayList<>();
+        for (int i = 0; i < list.size(); i++) {
+            JSONObject jsonObject = list.getJSONObject(i);
+            KuaishouSupplyChainSettlement supplyChain = new KuaishouSupplyChainSettlement();
+            supplyChain.setOid(jsonObject.getLong("oid"));
+            supplyChain.setSettlementAmount(jsonObject.getLong("settlementAmount"));
+            supplyChain.setSettlementTime(jsonObject.getLong("settlementTime"));
+
+            supplyChains.add(supplyChain);
+        }
+        rocketSupplyChainMapper.replaceSettlement(supplyChains);
+        Thread.sleep(2000L);
+        if (list.size() >= 5000) {
+            getSettlementData(cookie, offset + 5000, orderCreateTimeStart, orderCreateTimeEnd);
+        }
+    }
+
+    @Override
+    public List<JSONObject> getDataList(Long statDate) {
+        return rocketSupplyChainMapper.getDataList(statDate);
+    }
+
+    @Override
+    public List<JSONObject> getPromoterDataList(Long statDate) {
+        return rocketSupplyChainMapper.getPromoterDataList(statDate);
+    }
+
+    @Override
+    public void deletePromoterBindChannelByDate(Long date) {
+        rocketSupplyChainMapper.deletePromoterBindChannelByDate(date);
+    }
+
+    @Override
+    public void cleanKuaiShouPromoterBindChannel(Long date) {
+        rocketSupplyChainMapper.cleanKuaiShouPromoterBindChannel(date);
+    }
+
+    @Override
+    public List<JSONObject> getSamplesData(String startDate) {
+        return rocketSupplyChainMapper.getSamplesData(startDate);
+    }
+
+    @Override
+    public void cleanBytedancePromoterBindChannel(Long date) {
+        rocketSupplyChainMapper.cleanBytedancePromoterBindChannel(date);
+    }
+
+    public static String filterSupplement(String content) {
+        StringBuilder sb = new StringBuilder();
+        for (char ch : content.toCharArray()) {
+            if (!Character.isHighSurrogate(ch) && !Character.isLowSurrogate(ch)) {
+                sb.append(ch);
+            }
+        }
+        return sb.toString();
+    }
+
+}
+
+
+

+ 1 - 1
module-oa/src/main/java/cn/com/ctop/oa/modules/enums/DepartEnum.java

@@ -21,7 +21,7 @@ public enum DepartEnum {
     depart13("头条直播销售部"),
     depart14("BD"),
     depart15("业务管理部"),
-    depart16("运营部"),
+   // depart16("运营部"),
     depart161("运营一部"),
     depart162("运营二部"),
     //    depart17("聚星事业部"),