Ver Fonte

Merge remote-tracking branch 'origin/master'

yumeng há 11 meses atrás
pai
commit
47eadbdc6f

+ 30 - 0
ruixuan-live/src/main/java/com/ruixuan/isc/entity/KuaiShouActivityOpenItemList.java

@@ -43,6 +43,30 @@ public class KuaiShouActivityOpenItemList {
      */
     private Long investmentPromotionRate;
     /**
+     * 小店星级
+     */
+    private String shopStar;
+    /**
+     * 店铺物流分
+     */
+    private String mallLogisticsScore;
+    /**
+     * 店铺评分
+     */
+    private String shopScore;
+    /**
+     * 店铺服务分
+     */
+    private String mallServiceScore;
+    /**
+     * 店铺质量分
+     */
+    private String mallQualityScore;
+    /**
+     * 单量达成状态
+     */
+    private String baseOrderStatus;
+    /**
      * 创建时间
      */
     private Date createTime;
@@ -63,6 +87,12 @@ public class KuaiShouActivityOpenItemList {
         this.setItemLeafCategoryId(info.getLong("itemLeafCategoryId"));
         this.setItemCommissionRate(info.getLong("itemCommissionRate"));
         this.setInvestmentPromotionRate(info.getLong("investmentPromotionRate"));
+        this.setShopStar(info.getString("shopStar"));
+        this.setMallLogisticsScore(info.getString("mallLogisticsScore"));
+        this.setMallQualityScore(info.getString("mallQualityScore"));
+        this.setShopScore(info.getString("shopScore"));
+        this.setMallServiceScore(info.getString("mallServiceScore"));
+        this.setBaseOrderStatus(info.getString("baseOrderStatus"));
     }
 
 }

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

@@ -205,4 +205,12 @@ public interface SupplyChainMapper {
     int updateMgsOrder(@Param("oid") Long oid, @Param("cpsOrderStatus") Integer cpsOrderStatus);
 
     int updateRocketOrder(@Param("oid") Long oid, @Param("cpsOrderStatus") Integer cpsOrderStatus);
+
+    void updateKuaiShouActivityOpenItemList(KuaiShouActivityOpenItemList list);
+
+    void updateMgsKuaiShouActivityOpenItemList(KuaiShouActivityOpenItemList list);
+
+    void updateRocketKuaiShouActivityOpenItemList(KuaiShouActivityOpenItemList list);
+
+
 }

+ 63 - 84
ruixuan-live/src/main/java/com/ruixuan/isc/service/impl/SupplyChainServiceImpl.java

@@ -2,18 +2,25 @@ package com.ruixuan.isc.service.impl;
 
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
+import com.google.common.collect.Lists;
 import com.kuaishou.merchant.open.api.KsMerchantApiException;
 import com.kuaishou.merchant.open.api.client.AccessTokenKsMerchantClient;
 import com.kuaishou.merchant.open.api.common.utils.GsonUtils;
 import com.kuaishou.merchant.open.api.request.distribution.OpenDistributionCpsLeaderOrderCursorListRequest;
+import com.kuaishou.merchant.open.api.request.distribution.OpenDistributionInvestmentActivityItemDetailRequest;
 import com.kuaishou.merchant.open.api.request.distribution.OpenDistributionInvestmentActivityOpenItemListRequest;
 import com.kuaishou.merchant.open.api.request.distribution.OpenDistributionInvestmentActivityOpenListRequest;
 import com.kuaishou.merchant.open.api.response.distribution.OpenDistributionCpsLeaderOrderCursorListResponse;
+import com.kuaishou.merchant.open.api.response.distribution.OpenDistributionInvestmentActivityItemDetailResponse;
 import com.kuaishou.merchant.open.api.response.distribution.OpenDistributionInvestmentActivityOpenItemListResponse;
 import com.kuaishou.merchant.open.api.response.distribution.OpenDistributionInvestmentActivityOpenListResponse;
 import com.ruixuan.common.utils.Check;
 import com.ruixuan.common.utils.DateUtils;
-import com.ruixuan.isc.entity.*;
+import com.ruixuan.isc.entity.ItemCheck;
+import com.ruixuan.isc.entity.KuaiShouActivityInfo;
+import com.ruixuan.isc.entity.KuaiShouActivityOpenItemList;
+import com.ruixuan.isc.entity.KuaishouAccessToken;
+import com.ruixuan.isc.entity.KuaishouSupplyChain;
 import com.ruixuan.isc.mapper.KuaishouItemListMapper;
 import com.ruixuan.isc.mapper.SupplyChainMapper;
 import com.ruixuan.isc.service.IAccessTokenService;
@@ -918,26 +925,25 @@ public class SupplyChainServiceImpl implements ISupplyChainService {
         List<KuaishouAccessToken> mgsTokens = accessTokenService.getMgsTokenInfos();
         for (KuaishouAccessToken mgsToken : mgsTokens) {
             for (Long activityId : mgsActivityIds) {
-                getMgsKuaishouActivityOpenItemList(mgsToken, url, activityId, 1);
+                getKuaishouActivityOpenItemList(mgsToken, url, activityId, 1, "miaogousi");
             }
         }
 
-        Thread.sleep(300000);
+        Thread.sleep(30000);
         List<Long> rocketActivityIds = supplyChainMapper.getRocketKuaishouActivityInfoList();
-        Thread.sleep(600000);
         List<KuaishouAccessToken> rocketTokens = accessTokenService.getRocketTokenInfos();
         for (KuaishouAccessToken token : rocketTokens) {
             for (Long activityId : rocketActivityIds) {
-                getRocketKuaishouActivityOpenItemList(token, url, activityId, 1);
+                getKuaishouActivityOpenItemList(token, url, activityId, 1, "rocket");
             }
         }
 
-        Thread.sleep(300000);
+        Thread.sleep(30000);
         List<Long> activityIds = supplyChainMapper.getKuaishouActivityInfoList();
         List<KuaishouAccessToken> tokens = accessTokenService.getTokenInfos();
         for (KuaishouAccessToken accessToken : tokens) {
             for (Long activityId : activityIds) {
-                getKuaishouActivityOpenItemList(accessToken, url, activityId, 1);
+                getKuaishouActivityOpenItemList(accessToken, url, activityId, 1, "ruixuan");
             }
         }
 
@@ -1025,8 +1031,7 @@ public class SupplyChainServiceImpl implements ISupplyChainService {
     }
 
 
-    private void getKuaishouActivityOpenItemList(KuaishouAccessToken accessToken, String url, Long activityId, Integer page) {
-        List<KuaiShouActivityOpenItemList> list = new ArrayList<>();
+    private void getKuaishouActivityOpenItemList(KuaishouAccessToken accessToken, String url, Long activityId, Integer page, String dbtype) {
         String appKey = accessToken.getAppKey();
         String signSecret = accessToken.getSignSecret();
         if (Check.isNull(signSecret) || Check.isNull(appKey)) {
@@ -1055,26 +1060,45 @@ public class SupplyChainServiceImpl implements ISupplyChainService {
             JSONObject data = obj.getJSONObject("data");
             JSONArray result = data.getJSONArray("activityItemDataList");
             total = data.getInteger("total");
+            List<Long> itemIds = new ArrayList<>();
+            List<KuaiShouActivityOpenItemList> list = new ArrayList<>();
             for (int i = 0; i < result.size(); i++) {
                 JSONObject info = result.getJSONObject(i);
-                KuaiShouActivityOpenItemList activityInfo = new KuaiShouActivityOpenItemList(info);
-                list.add(activityInfo);
+                //商品活动审核状态:1-待审核,2-审核通过,3-审核拒绝,5-已失效
+                if (info.getLong("itemAuditStatus") == 1 || info.getLong("itemAuditStatus") == 2) {
+                    KuaiShouActivityOpenItemList activityInfo = new KuaiShouActivityOpenItemList(info);
+                    list.add(activityInfo);
+                }
+                //2-审核通过
+                if (info.getLong("itemAuditStatus") == 2) {
+                    itemIds.add(info.getLong("itemId"));
+                }
+            }
+            if (Check.isNotNull(list) && list.size() > 0) {
+                if ("ruixuan".equals(dbtype)) {
+                    supplyChainMapper.replaceKuaiShouActivityOpenItemList(list);
+                } else if ("miaogousi".equals(dbtype)) {
+                    supplyChainMapper.replaceMgsKuaiShouActivityOpenItemList(list);
+                } else if ("rocket".equals(dbtype)) {
+                    supplyChainMapper.replaceRocketKuaiShouActivityOpenItemList(list);
+                }
+            }
+
+            List<List<Long>> splits = Lists.newArrayList(Lists.partition(itemIds, 10));
+            for (List<Long> itIds : splits) {
+                getActivityItemDetail(accessToken, url, activityId, itIds, dbtype);
             }
         } else {
             log.error("===团长招商活动已报名商品列表(open.distribution.investment.activity.open.item.list)失败,信息:{}", obj.getString("error_msg"));
             return;
         }
 
-        if (Check.isNotNull(list) && list.size() > 0) {
-            supplyChainMapper.replaceKuaiShouActivityOpenItemList(list);
-        }
-
         if (total - page * 200 > 0) {
-            getKuaishouActivityOpenItemList(accessToken, url, activityId, page + 1);
+            getKuaishouActivityOpenItemList(accessToken, url, activityId, page + 1, dbtype);
         }
     }
 
-    private void getMgsKuaishouActivityOpenItemList(KuaishouAccessToken accessToken, String url, Long activityId, Integer page) {
+    private void getActivityItemDetail(KuaishouAccessToken accessToken, String url, Long activityId, List<Long> itemIds, String dbtype) {
         List<KuaiShouActivityOpenItemList> list = new ArrayList<>();
         String appKey = accessToken.getAppKey();
         String signSecret = accessToken.getSignSecret();
@@ -1082,94 +1106,49 @@ public class SupplyChainServiceImpl implements ISupplyChainService {
             return;
         }
         AccessTokenKsMerchantClient client = new AccessTokenKsMerchantClient(url, appKey, signSecret);
-        OpenDistributionInvestmentActivityOpenItemListRequest request = new OpenDistributionInvestmentActivityOpenItemListRequest();
+        OpenDistributionInvestmentActivityItemDetailRequest request = new OpenDistributionInvestmentActivityItemDetailRequest();
         request.setAccessToken(accessToken.getAccessToken());
         request.setApiMethodVersion(1L);
 
-        //每页活动数量
-        request.setLimit(200);
-        Integer offset = (page - 1) * 200;
-        request.setOffset(offset);
         request.setActivityId(activityId);
-        OpenDistributionInvestmentActivityOpenItemListResponse response = null;
+        request.setItemId(itemIds);
+
+        OpenDistributionInvestmentActivityItemDetailResponse response = null;
         try {
             response = client.execute(request);
         } catch (KsMerchantApiException e) {
             e.printStackTrace();
         }
         JSONObject obj = JSONObject.parseObject(GsonUtils.toJSON(response));
-        Integer total = null;
         String code = obj.getString("code");
         if ("1".equals(code)) {
-            JSONObject data = obj.getJSONObject("data");
-            JSONArray result = data.getJSONArray("activityItemDataList");
-            total = data.getInteger("total");
-            for (int i = 0; i < result.size(); i++) {
-                JSONObject info = result.getJSONObject(i);
+            JSONArray data = obj.getJSONArray("data");
+            for (int i = 0; i < data.size(); i++) {
+                JSONObject info = data.getJSONObject(i);
                 KuaiShouActivityOpenItemList activityInfo = new KuaiShouActivityOpenItemList(info);
                 list.add(activityInfo);
             }
-        } else {
-            log.error("===MGS团长招商活动已报名商品列表(open.distribution.investment.activity.open.item.list)失败,信息:{}", obj.getString("error_msg"));
-            return;
-        }
-
-        if (Check.isNotNull(list) && list.size() > 0) {
-            supplyChainMapper.replaceMgsKuaiShouActivityOpenItemList(list);
-        }
-
-        if (total - page * 200 > 0) {
-            getMgsKuaishouActivityOpenItemList(accessToken, url, activityId, page + 1);
-        }
-    }
+            if (Check.isNotNull(list) && list.size() > 0) {
+                if ("ruixuan".equals(dbtype)) {
+                for (KuaiShouActivityOpenItemList kuaiShouActivityOpenItemList : list) {
+                    supplyChainMapper.updateKuaiShouActivityOpenItemList(kuaiShouActivityOpenItemList);
+                }
+                } else if ("miaogousi".equals(dbtype)) {
+                    for (KuaiShouActivityOpenItemList kuaiShouActivityOpenItemList : list) {
+                        supplyChainMapper.updateMgsKuaiShouActivityOpenItemList(kuaiShouActivityOpenItemList);
+                    }
+                } else if ("rocket".equals(dbtype)) {
+                    for (KuaiShouActivityOpenItemList kuaiShouActivityOpenItemList : list) {
+                        supplyChainMapper.updateRocketKuaiShouActivityOpenItemList(kuaiShouActivityOpenItemList);
+                    }
+                }
 
-    private void getRocketKuaishouActivityOpenItemList(KuaishouAccessToken accessToken, String url, Long activityId, Integer page) {
-        List<KuaiShouActivityOpenItemList> 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);
-        OpenDistributionInvestmentActivityOpenItemListRequest request = new OpenDistributionInvestmentActivityOpenItemListRequest();
-        request.setAccessToken(accessToken.getAccessToken());
-        request.setApiMethodVersion(1L);
 
-        //每页活动数量
-        request.setLimit(200);
-        Integer offset = (page - 1) * 200;
-        request.setOffset(offset);
-        request.setActivityId(activityId);
-        OpenDistributionInvestmentActivityOpenItemListResponse response = null;
-        try {
-            response = client.execute(request);
-        } catch (KsMerchantApiException e) {
-            e.printStackTrace();
-        }
-        JSONObject obj = JSONObject.parseObject(GsonUtils.toJSON(response));
-        Integer total = null;
-        String code = obj.getString("code");
-        if ("1".equals(code)) {
-            JSONObject data = obj.getJSONObject("data");
-            JSONArray result = data.getJSONArray("activityItemDataList");
-            total = data.getInteger("total");
-            for (int i = 0; i < result.size(); i++) {
-                JSONObject info = result.getJSONObject(i);
-                KuaiShouActivityOpenItemList activityInfo = new KuaiShouActivityOpenItemList(info);
-                list.add(activityInfo);
             }
         } else {
-            log.error("===Rocket团长招商活动已报名商品列表(open.distribution.investment.activity.open.item.list)失败,信息:{}", obj.getString("error_msg"));
+            log.error("===招商活动商品详情接口(open.distribution.investment.activity.item.detail)失败,信息:{}", obj.getString("error_msg"));
             return;
         }
-
-        if (Check.isNotNull(list) && list.size() > 0) {
-            supplyChainMapper.replaceRocketKuaiShouActivityOpenItemList(list);
-        }
-
-        if (total - page * 200 > 0) {
-            getRocketKuaishouActivityOpenItemList(accessToken, url, activityId, page + 1);
-        }
     }
 
     private KuaiShouActivityInfo organizeKuaishouActivityInfo(JSONObject jsonObject) {

+ 3 - 0
ruixuan-live/src/main/resources/mapper/isc/KuaishouPromoterMapper.xml

@@ -355,6 +355,7 @@
         from jy_kuaishou_promoter
         where (promoter_nick_name = '' or promoter_nick_name is null)
           AND state = 1
+          AND media_id = 2
     </select>
 
 
@@ -748,6 +749,7 @@
         from miaogousi.kuaishou_promoter
         where (promoter_nick_name = '' or promoter_nick_name is null)
           AND state = 1
+          AND media_id = 2
     </select>
 
 
@@ -806,6 +808,7 @@
         from rocket.kuaishou_promoter
         where (promoter_nick_name = '' or promoter_nick_name is null)
           AND state = 1
+          AND media_id = 2
     </select>
 
 

+ 37 - 3
ruixuan-live/src/main/resources/mapper/isc/SupplyChainMapper.xml

@@ -16,7 +16,7 @@
 
     <update id="updateOrderRegimentalSettleAmount">
         update kuaishou_supply_chain
-        set order_status = #{cpsOrderStatus},
+        set order_status                   = #{cpsOrderStatus},
             total_regimental_settle_amount = regimental_promotion_amount
         where oid = #{oid}
     </update>
@@ -2741,14 +2741,14 @@
     </update>
     <update id="updateRuiXuanOrderRegimentalSettleAmount">
         update ruixuan.kuaishou_supply_chain
-        set order_status = #{cpsOrderStatus},
+        set order_status                   = #{cpsOrderStatus},
             total_regimental_settle_amount = regimental_promotion_amount
         where oid = #{oid}
 
     </update>
     <update id="updateMgsOrderRegimentalSettleAmount">
         update miaogousi.kuaishou_supply_chain
-        set order_status = #{cpsOrderStatus},
+        set order_status                   = #{cpsOrderStatus},
             total_regimental_settle_amount = regimental_promotion_amount
         where oid = #{oid}
     </update>
@@ -2768,6 +2768,7 @@
         set order_status = #{cpsOrderStatus}
         where oid = #{oid}
     </update>
+
     <update id="updateRocketOrder">
         update rocket.kuaishou_supply_chain
         set order_status = #{cpsOrderStatus}
@@ -3021,4 +3022,37 @@
         order by tag_oid_num desc limit 5
     </select>
 
+    <update id="updateKuaiShouActivityOpenItemList">
+        update ruixuan.kuaishou_activity_open_item_list
+        set shop_star            = #{shopStar},
+            mall_logistics_score = #{mallLogisticsScore},
+            shop_score           = #{shopScore},
+            mall_service_score   = #{mallServiceScore},
+            mall_quality_score   = #{mallQualityScore},
+            base_order_status    = #{baseOrderStatus}
+        where item_id = #{itemId}
+    </update>
+
+    <update id="updateMgsKuaiShouActivityOpenItemList">
+        update miaogousi.kuaishou_activity_open_item_list
+        set shop_star            = #{shopStar},
+            mall_logistics_score = #{mallLogisticsScore},
+            shop_score           = #{shopScore},
+            mall_service_score   = #{mallServiceScore},
+            mall_quality_score   = #{mallQualityScore},
+            base_order_status    = #{baseOrderStatus}
+        where item_id = #{itemId}
+    </update>
+
+    <update id="updateRocketKuaiShouActivityOpenItemList">
+        update rocket.kuaishou_activity_open_item_list
+        set shop_star            = #{shopStar},
+            mall_logistics_score = #{mallLogisticsScore},
+            shop_score           = #{shopScore},
+            mall_service_score   = #{mallServiceScore},
+            mall_quality_score   = #{mallQualityScore},
+            base_order_status    = #{baseOrderStatus}
+        where item_id = #{itemId}
+    </update>
+
 </mapper>