Przeglądaj źródła

Merge remote-tracking branch 'origin/master'

yumeng 1 rok temu
rodzic
commit
42cbb68eb2

+ 2 - 0
ruixuan-live/src/main/java/com/ruixuan/isc/mapper/AccessTokenMapper.java

@@ -16,4 +16,6 @@ public interface AccessTokenMapper {
     void updateBytedance(KuaishouAccessToken update);
 
     List<KuaishouAccessToken> getMgsTokenInfos();
+
+    List<KuaishouAccessToken> getRocketTokenInfos();
 }

+ 5 - 0
ruixuan-live/src/main/java/com/ruixuan/isc/mapper/SupplyChainMapper.java

@@ -159,11 +159,16 @@ public interface SupplyChainMapper {
 
     void replaceMgsKuaishouActivityInfo(@Param("list") List<KuaiShouActivityInfo> list);
 
+    void replaceRocketKuaishouActivityInfo(@Param("list") List<KuaiShouActivityInfo> list);
+
     void updateMgsKuaishouSupplyChain(@Param("list") List<Long> list);
 
+    void updateRocketKuaishouSupplyChain(@Param("list") List<Long> list);
+
     List<JSONObject> getBytedanceOrderHourDataList(@Param("date") Long date);
 
     List<JSONObject> getKuaishouOrderHourDataList(@Param("date") String date);
 
     List<JSONObject> exportItemDetail(Map<String, Object> requestMap);
+
 }

+ 2 - 0
ruixuan-live/src/main/java/com/ruixuan/isc/service/IAccessTokenService.java

@@ -15,4 +15,6 @@ public interface IAccessTokenService {
     List<KuaishouAccessToken> getTokenInfos();
 
     List<KuaishouAccessToken> getMgsTokenInfos();
+
+    List<KuaishouAccessToken> getRocketTokenInfos();
 }

+ 5 - 0
ruixuan-live/src/main/java/com/ruixuan/isc/service/impl/AccessTokenServiceImpl.java

@@ -116,4 +116,9 @@ public class AccessTokenServiceImpl implements IAccessTokenService {
     public List<KuaishouAccessToken> getMgsTokenInfos() {
         return accessTokenMapper.getMgsTokenInfos();
     }
+
+    @Override
+    public List<KuaishouAccessToken> getRocketTokenInfos() {
+        return accessTokenMapper.getRocketTokenInfos();
+    }
 }

+ 115 - 2
ruixuan-live/src/main/java/com/ruixuan/isc/service/impl/SupplyChainServiceImpl.java

@@ -434,6 +434,12 @@ public class SupplyChainServiceImpl implements ISupplyChainService {
             getMgsInfo(accessToken, beginTime, endTime, url, pcursor, 1);
         }
 
+        Thread.sleep(600000);
+        List<KuaishouAccessToken> rocketTokens = accessTokenService.getRocketTokenInfos();
+        for (KuaishouAccessToken accessToken : rocketTokens) {
+            getRocketInfo(accessToken, beginTime, endTime, url, pcursor, 1);
+        }
+
     }
 
     private void getInfo(KuaishouAccessToken accessToken, Long beginTime, Long endTime, String url, String pcursor, Integer counts) throws InterruptedException {
@@ -541,8 +547,8 @@ public class SupplyChainServiceImpl implements ISupplyChainService {
                 }
             }
         } else {
-            log.error("===查询分销团长订单列表(open.distribution.cps.leader.order.cursor.list)失败,信息:{}", obj.getString("error_msg"));
-            log.error("游标:{},执行次数:{}", pcursor, counts);
+            log.error("===MGS查询分销团长订单列表(open.distribution.cps.leader.order.cursor.list)失败,信息:{}", obj.getString("error_msg"));
+            log.error("MGS游标:{},执行次数:{}", pcursor, counts);
             if (counts <= 3) {
                 getMgsInfo(accessToken, beginTime, endTime, url, pcursor, counts + 1);
             }
@@ -556,6 +562,66 @@ public class SupplyChainServiceImpl implements ISupplyChainService {
         }
     }
 
+    private void getRocketInfo(KuaishouAccessToken accessToken, Long beginTime, Long endTime, String url, String pcursor, Integer counts) throws InterruptedException {
+        List<Long> list = new ArrayList<>();
+        String appKey = accessToken.getAppKey();
+        String signSecret = accessToken.getSignSecret();
+        if (Check.isNull(signSecret) || Check.isNull(appKey)) {
+            return;
+        }
+        AccessTokenKsMerchantClient client = new AccessTokenKsMerchantClient(url, appKey, signSecret);
+        OpenDistributionCpsLeaderOrderCursorListRequest request = new OpenDistributionCpsLeaderOrderCursorListRequest();
+        request.setAccessToken(accessToken.getAccessToken());
+        request.setApiMethodVersion(1L);
+
+        //排序类型 [1:按指定查询类型降序] [2:按指定查询类型升序]
+        request.setSortType(1);
+        //查询类型 [1:按分销订单创建时间查询] [2:按分销订单更新时间查询][4:按订单实际创建时间查询]
+        request.setQueryType(2);
+        //分销订单状态 [0:全部订单] [30:已付款] [50:已收货] [60:已结算] [80:已失效]
+        request.setCpsOrderStatus(0);
+        request.setDistributorId(0l);
+        request.setBeginTime(beginTime);
+        request.setEndTime(endTime);
+        request.setPcursor(pcursor);
+        request.setPageize(100);
+        request.setFundType(1);
+
+        OpenDistributionCpsLeaderOrderCursorListResponse response = null;
+        try {
+            response = client.execute(request);
+        } catch (KsMerchantApiException e) {
+            e.printStackTrace();
+        }
+        JSONObject obj = JSONObject.parseObject(GsonUtils.toJSON(response));
+        String code = obj.getString("code");
+        if ("1".equals(code)) {
+            JSONObject data = obj.getJSONObject("data");
+            pcursor = data.getString("pcursor");
+            JSONArray orderView = data.getJSONArray("orderView");
+            for (int i = 0; i < orderView.size(); i++) {
+                JSONObject info = orderView.getJSONObject(i);
+                Integer sendStatus = info.getInteger("sendStatus");
+                if (Check.isNotNull(sendStatus) && sendStatus == 1) {
+                    list.add(info.getLong("oid"));
+                }
+            }
+        } else {
+            log.error("===Rocket查询分销团长订单列表(open.distribution.cps.leader.order.cursor.list)失败,信息:{}", obj.getString("error_msg"));
+            log.error("Rocket游标:{},执行次数:{}", pcursor, counts);
+            if (counts <= 3) {
+                getRocketInfo(accessToken, beginTime, endTime, url, pcursor, counts + 1);
+            }
+        }
+        if (Check.isNotNull(list) && list.size() > 0) {
+            supplyChainMapper.updateRocketKuaishouSupplyChain(list);
+            Thread.sleep(200);
+        }
+        if (!"nomore".equals(pcursor)) {
+            getRocketInfo(accessToken, beginTime, endTime, url, pcursor, 1);
+        }
+    }
+
 
     private KuaishouSupplyChain organizeData(JSONObject jsonObject, Map<Long, Long> itemMap) {
         KuaishouSupplyChain supplyChain = new KuaishouSupplyChain();
@@ -622,6 +688,11 @@ public class SupplyChainServiceImpl implements ISupplyChainService {
         for (KuaishouAccessToken mgsToken : mgsTokens) {
             getMgsInfoKuaishouActivityInfo(mgsToken, url);
         }
+       Thread.sleep(600000);
+        List<KuaishouAccessToken> rocketTokens = accessTokenService.getRocketTokenInfos();
+        for (KuaishouAccessToken token : rocketTokens) {
+            getRocketInfoKuaishouActivityInfo(token, url);
+        }
 
     }
 
@@ -745,5 +816,47 @@ public class SupplyChainServiceImpl implements ISupplyChainService {
             supplyChainMapper.replaceMgsKuaishouActivityInfo(list);
         }
     }
+
+
+    private void getRocketInfoKuaishouActivityInfo(KuaishouAccessToken accessToken, String url) {
+        List<KuaiShouActivityInfo> list = new ArrayList<>();
+        String appKey = accessToken.getAppKey();
+        String signSecret = accessToken.getSignSecret();
+        if (Check.isNull(signSecret) || Check.isNull(appKey)) {
+            return;
+        }
+        AccessTokenKsMerchantClient client = new AccessTokenKsMerchantClient(url, appKey, signSecret);
+        OpenDistributionInvestmentActivityOpenListRequest request = new OpenDistributionInvestmentActivityOpenListRequest();
+
+        request.setAccessToken(accessToken.getAccessToken());
+        request.setApiMethodVersion(1L);
+
+        //每页活动数量
+        request.setLimit(5000);
+        OpenDistributionInvestmentActivityOpenListResponse response = null;
+        try {
+            response = client.execute(request);
+        } catch (KsMerchantApiException e) {
+            e.printStackTrace();
+        }
+        JSONObject obj = JSONObject.parseObject(GsonUtils.toJSON(response));
+        String code = obj.getString("code");
+        if ("1".equals(code)) {
+            JSONObject data = obj.getJSONObject("data");
+            JSONArray result = data.getJSONArray("result");
+            for (int i = 0; i < result.size(); i++) {
+                JSONObject info = result.getJSONObject(i);
+                KuaiShouActivityInfo activityInfo = organizeKuaishouActivityInfo(info);
+                list.add(activityInfo);
+            }
+        } else {
+            log.error("===Rocket团长查询招商活动列表(open.distribution.investment.activity.open.list)失败,信息:{}" + obj.getString("msg"));
+            return;
+        }
+
+        if (Check.isNotNull(list) && list.size() > 0) {
+            supplyChainMapper.replaceRocketKuaishouActivityInfo(list);
+        }
+    }
 }
 

+ 5 - 0
ruixuan-live/src/main/resources/mapper/isc/AccessTokenMapper.xml

@@ -35,6 +35,11 @@
         from miaogousi.kuaishou_access_token
     </select>
 
+    <select id="getRocketTokenInfos" resultType="com.ruixuan.isc.entity.KuaishouAccessToken">
+        select *
+        from rocket.kuaishou_access_token
+    </select>
+
     <select id="getByteDanceTokenInfos" resultType="com.ruixuan.isc.entity.KuaishouAccessToken">
         select *
         from bytedance_access_token

+ 42 - 8
ruixuan-live/src/main/resources/mapper/isc/SupplyChainMapper.xml

@@ -598,7 +598,7 @@
         select
         t.promoter_id as 'promoterId',
         t.promoter_nick_name as 'promoterNickName',
-               tt.promoter_url as 'promoterUrl',
+        tt.promoter_url as 'promoterUrl',
         count(oid) as 'orderNum',
         sum(case when order_status != 80 then 1 else 0 end) as 'validOrderNUm',
         round(sum(case when order_status != 80 then 1 else 0 end) / count(oid),4) as 'validRadio'
@@ -2633,6 +2633,36 @@
         </foreach>
     </insert>
 
+    <insert id="replaceRocketKuaishouActivityInfo">
+        replace into rocket.kuaishou_activity_info(
+        activity_id,
+        regimental_id,
+        activity_title,
+        activity_type,
+        activity_begin_time,
+        activity_end_time,
+        activity_status,
+        apply_item_count,
+        wait_audit_item_count,
+        audit_pass_item_count
+        )
+        values
+        <foreach collection="list" item="add" separator=",">
+            (
+            #{add.activityId},
+            #{add.regimentalId},
+            #{add.activityTitle},
+            #{add.activityType},
+            #{add.activityBeginTime},
+            #{add.activityEndTime},
+            #{add.activityStatus},
+            #{add.applyItemCount},
+            #{add.waitAuditItemCount},
+            #{add.auditPassItemCount}
+            )
+        </foreach>
+    </insert>
+
     <update id="updateKuaishouSupplyChain">
         update kuaishou_supply_chain set send_status = 1
         where oid in
@@ -2651,10 +2681,17 @@
         </foreach>
     </update>
 
+    <update id="updateRocketKuaishouSupplyChain">
+        update rocket.kuaishou_supply_chain set send_status = 1
+        where oid in
+        <foreach collection="list" item="id" separator=","
+                 open="(" close=")">
+            #{id}
+        </foreach>
+    </update>
+
     <select id="getBytedanceOrderHourDataList" resultType="com.alibaba.fastjson.JSONObject">
-        SELECT pay_success_time_hour as 'hour',
-               IFNULL(SUM(CASE WHEN flow_point != 'REFUND' THEN 1 ELSE 0 END), 0) AS 'validOrderNum',
-               IFNULL(SUM(CASE WHEN flow_point != 'REFUND' THEN total_pay_amount ELSE 0 END), 0) AS 'baseAmount'
+        SELECT pay_success_time_hour as 'hour', IFNULL(SUM(CASE WHEN flow_point != 'REFUND' THEN 1 ELSE 0 END), 0) AS 'validOrderNum', IFNULL(SUM(CASE WHEN flow_point != 'REFUND' THEN total_pay_amount ELSE 0 END), 0) AS 'baseAmount'
         FROM bytedance_order_list
         WHERE pay_success_time = #{date}
         GROUP BY pay_success_time_hour
@@ -2662,10 +2699,7 @@
     </select>
 
     <select id="getKuaishouOrderHourDataList" resultType="com.alibaba.fastjson.JSONObject">
-        SELECT
-            stat_hour as 'hour',
-            IFNULL(SUM(CASE WHEN order_status != 80 THEN 1 ELSE 0 END), 0) AS 'validOrderNum',
-            IFNULL(SUM(CASE WHEN order_status != 80 THEN order_amount ELSE 0 END),0) as 'baseAmount'
+        SELECT stat_hour as 'hour', IFNULL(SUM(CASE WHEN order_status != 80 THEN 1 ELSE 0 END), 0) AS 'validOrderNum', IFNULL(SUM(CASE WHEN order_status != 80 THEN order_amount ELSE 0 END), 0) as 'baseAmount'
         FROM kuaishou_supply_chain
         where stat_date = #{date}
         GROUP BY stat_hour