Kaynağa Gözat

分时数据

yumeng 1 yıl önce
ebeveyn
işleme
0c4a9b5c31

+ 1 - 0
ruixuan-framework/src/main/java/com/ruixuan/framework/config/SecurityConfig.java

@@ -130,6 +130,7 @@ public class SecurityConfig extends WebSecurityConfigurerAdapter {
                 .antMatchers("/bytedance/**").permitAll()
                 .antMatchers("/jy/material/**").permitAll()
                 .antMatchers("/jy/report/**").permitAll()
+                .antMatchers("/testVideo/**").permitAll()
 
                 // 除上面外的所有请求全部需要鉴权认证
                 .anyRequest().authenticated()

+ 26 - 0
ruixuan-live/src/main/java/com/ruixuan/isc/controller/KuaishouItemCollectSamplesController.java

@@ -772,6 +772,32 @@ public class KuaishouItemCollectSamplesController extends BaseController {
         return returnJson;
     }
 
+
+    @GetMapping("/getGmvHour")
+    @ApiOperation(value = "工作台——订单数据")
+    public JSONObject getGmvHour(@ApiParam("创建人ID") @RequestParam(value = "userId", required = true) Long userId,
+                                 @ApiParam("类型,1-渠道;2-招商") @RequestParam(value = "type", required = true) String type,
+                                 @ApiParam("媒体,1-抖音;2-快手") @RequestParam(value = "mediaId", required = false) String mediaId
+    ) {
+        JSONObject returnJson = new JSONObject();
+        try {
+            if (Check.isNull(userId)) {
+                throw new Exception("请传入人员ID");
+            }
+            if ("2".equals(mediaId)) {
+                return kuaishouItemCollectSamplesService.getKsGmvHour(userId, type, mediaId);
+            } else if("1".equals(mediaId)){
+                return kuaishouItemCollectSamplesService.getBytedanceGmvHour(userId, type, mediaId);
+            }
+        } catch (Exception e) {
+            e.printStackTrace();
+            returnJson.put("code", 500);
+            returnJson.put("message", e.getMessage());
+        }
+        return returnJson;
+    }
+
+
     @GetMapping("/getOrderHourData")
     @ApiOperation(value = "工作台——订单小时数据")
     public JSONObject getOrderHourData(@ApiParam("媒体,1-抖音;2-快手") @RequestParam(value = "mediaId", required = false) String mediaId

+ 3 - 3
ruixuan-live/src/main/java/com/ruixuan/isc/controller/SupplyChainController.java

@@ -934,7 +934,7 @@ public class SupplyChainController extends BaseController {
                 }
 
 
-                Map<String, Object> map = new HashMap<>();
+               /* Map<String, Object> map = new HashMap<>();
                 map.put("promoterId", promoterId);
                 map.put("start", DateUtils.getStartLongTime(requestJson.getString("orderStartDate")));
                 map.put("end", DateUtils.getEndLongTime(requestJson.getString("orderEndDate")));
@@ -972,12 +972,12 @@ public class SupplyChainController extends BaseController {
                                 .append("链接:").append(top3.getString("imageUrl"));
                         export.add(top3StringBuffer);
                     }
-                }
+                }*/
                 exportList.add(export);
             }
 
         }
-        String[] headers = {"达人名称", "订单数", "有效订单数", "有效订单率", "GVM", "有效GMV", "发货数", "发货率", "未发货数", "绑定人", "top1", "top2", "top3"};
+        String[] headers = {"达人名称", "订单数", "有效订单数", "有效订单率", "GVM", "有效GMV", "发货数", "发货率", "未发货数", "绑定人"};
         OutputStream os = response.getOutputStream();
         ExportExcelUtils eeu = new ExportExcelUtils();
         XSSFWorkbook workbook = new XSSFWorkbook();

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

@@ -171,4 +171,11 @@ public interface SupplyChainMapper {
 
     List<JSONObject> exportItemDetail(Map<String, Object> requestMap);
 
+    List<JSONObject> getKsChannelGmvHourByDate(@Param("userList") List<Long> userList, @Param("date") String date);
+
+    List<JSONObject> getKsCourtshipGmvHourByDate(@Param("userList") List<Long> userList, @Param("date") String date);
+
+    List<JSONObject> getBytedanceChannelGmvHourByDate(@Param("userList") List<Long> userList, @Param("date") Long date);
+
+    List<JSONObject> getBytedanceCourtshipGmvHourByDate(@Param("userList") List<Long> userList, @Param("date") Long date);
 }

+ 4 - 0
ruixuan-live/src/main/java/com/ruixuan/isc/service/IKuaishouItemCollectSamplesService.java

@@ -117,5 +117,9 @@ public interface IKuaishouItemCollectSamplesService {
     List<JSONObject> getBigDataAnalysis(String mediaId);
 
     JSONObject getOrderHourData( String mediaId);
+
+    JSONObject getKsGmvHour(Long userId, String type, String mediaId);
+
+    JSONObject getBytedanceGmvHour(Long userId, String type, String mediaId);
 }
 

+ 8 - 0
ruixuan-live/src/main/java/com/ruixuan/isc/service/ISupplyChainService.java

@@ -191,4 +191,12 @@ public interface ISupplyChainService {
     List<JSONObject> getTopOrders(Map<String, Object> requestMap);
 
     List<JSONObject> exportItemDetail(Map<String, Object> requestMap);
+
+    List<JSONObject> getKsChannelGmvHourByDate(List<Long> userList, String nowDate);
+
+    List<JSONObject> getKsCourtshipGmvHourByDate(List<Long> userList, String nowDate);
+
+    List<JSONObject> getBytedanceChannelGmvHourByDate(List<Long> userList, Long nowDate);
+
+    List<JSONObject> getBytedanceCourtshipGmvHourByDate(List<Long> userList, Long dataNow);
 }

+ 73 - 0
ruixuan-live/src/main/java/com/ruixuan/isc/service/impl/KuaishouItemCollectSamplesServiceImpl.java

@@ -778,6 +778,79 @@ public class KuaishouItemCollectSamplesServiceImpl implements IKuaishouItemColle
         return returnJson;
     }
 
+    @Override
+    public JSONObject getKsGmvHour(Long userId, String type, String mediaId) {
+        JSONObject returnJson = new JSONObject();
+        String nowDate = DateUtils.getNowDate("yyyy-MM-dd");   // 当天
+        String lastDate = DateUtils.getAnotherDay("yyyy-MM-dd", nowDate, -1);  //  日期 -1
+        String roleKey = userService.getRoleKeyByUserId(userId);
+        List<Long> userList = null;
+        if ("courtshipManager".equals(roleKey) || "bdManager".equals(roleKey) || "associationManager".equals(roleKey)) {
+            Long deptId = deptService.getDeptIdByUserId(userId);
+            userList = deptService.getDeptUserListByDeptId(deptId);
+        } else if ("supplyChainAdmin".equals(roleKey) || "admin".equals(roleKey)) {
+            userList = null;
+        } else {
+            userList = Arrays.asList(userId);
+        }
+        List<JSONObject> today = new ArrayList<>();
+        List<JSONObject> yesterday = new ArrayList<>();
+        if ("1".equals(type)) { // 渠道
+            today = supplyChainService.getKsChannelGmvHourByDate(userList, nowDate);
+            yesterday = supplyChainService.getKsChannelGmvHourByDate(userList, lastDate);
+        } else if ("2".equals(type)) {
+            today = supplyChainService.getKsCourtshipGmvHourByDate(userList, nowDate);
+            yesterday = supplyChainService.getKsCourtshipGmvHourByDate(userList, lastDate);
+        }
+        JSONObject result = new JSONObject();
+        result.put("today", today);
+        result.put("yesterday", yesterday);
+        returnJson.put("result", result);
+        returnJson.put("success", true);
+        returnJson.put("message", "操作成功");
+        returnJson.put("code", 200);
+        return returnJson;
+    }
+
+    @Override
+    public JSONObject getBytedanceGmvHour(Long userId, String type, String mediaId) {
+        JSONObject returnJson = new JSONObject();
+        String nowDate = DateUtils.getNowDate("yyyy-MM-dd");   // 当天
+        String lastDate = DateUtils.getAnotherDay("yyyy-MM-dd", nowDate, -1);  //  日期 -1
+
+        Long dataNow = Long.valueOf(nowDate.replace("-", ""));
+        Long lastDateNow = Long.valueOf(lastDate.replace("-", ""));
+
+        String roleKey = userService.getRoleKeyByUserId(userId);
+        List<Long> userList = null;
+        if ("courtshipManager".equals(roleKey) || "bdManager".equals(roleKey) || "associationManager".equals(roleKey)) {
+            Long deptId = deptService.getDeptIdByUserId(userId);
+            userList = deptService.getDeptUserListByDeptId(deptId);
+        } else if ("supplyChainAdmin".equals(roleKey) || "admin".equals(roleKey)) {
+            userList = null;
+        } else {
+            userList = Arrays.asList(userId);
+        }
+        List<JSONObject> today = new ArrayList<>();
+        List<JSONObject> yesterday = new ArrayList<>();
+        if ("1".equals(type)) { // 渠道
+
+            today = supplyChainService.getBytedanceChannelGmvHourByDate(userList,dataNow);
+            yesterday = supplyChainService.getBytedanceChannelGmvHourByDate(userList, lastDateNow);
+        } else if ("2".equals(type)) {
+            today = supplyChainService.getBytedanceCourtshipGmvHourByDate(userList, dataNow);
+            yesterday = supplyChainService.getBytedanceCourtshipGmvHourByDate(userList, lastDateNow);
+        }
+        JSONObject result = new JSONObject();
+        result.put("today", today);
+        result.put("yesterday", yesterday);
+        returnJson.put("result", result);
+        returnJson.put("success", true);
+        returnJson.put("message", "操作成功");
+        returnJson.put("code", 200);
+        return returnJson;
+    }
+
     // 渠道—数据分析
     private JSONObject getDataAnalysisByChannel(List<Long> userList, String startDate, String endDate, String mediaId) {
         JSONObject data = new JSONObject();

+ 21 - 1
ruixuan-live/src/main/java/com/ruixuan/isc/service/impl/SupplyChainServiceImpl.java

@@ -688,7 +688,7 @@ public class SupplyChainServiceImpl implements ISupplyChainService {
         for (KuaishouAccessToken mgsToken : mgsTokens) {
             getMgsInfoKuaishouActivityInfo(mgsToken, url);
         }
-       Thread.sleep(600000);
+        Thread.sleep(600000);
         List<KuaishouAccessToken> rocketTokens = accessTokenService.getRocketTokenInfos();
         for (KuaishouAccessToken token : rocketTokens) {
             getRocketInfoKuaishouActivityInfo(token, url);
@@ -716,6 +716,26 @@ public class SupplyChainServiceImpl implements ISupplyChainService {
         return supplyChainMapper.exportItemDetail(requestMap);
     }
 
+    @Override
+    public List<JSONObject> getKsChannelGmvHourByDate(List<Long> userList, String nowDate) {
+        return supplyChainMapper.getKsChannelGmvHourByDate(userList, nowDate);
+    }
+
+    @Override
+    public List<JSONObject> getKsCourtshipGmvHourByDate(List<Long> userList, String nowDate) {
+        return supplyChainMapper.getKsCourtshipGmvHourByDate(userList, nowDate);
+    }
+
+    @Override
+    public List<JSONObject> getBytedanceChannelGmvHourByDate(List<Long> userList, Long date) {
+        return supplyChainMapper.getBytedanceChannelGmvHourByDate(userList, date);
+    }
+
+    @Override
+    public List<JSONObject> getBytedanceCourtshipGmvHourByDate(List<Long> userList, Long data) {
+        return supplyChainMapper.getBytedanceCourtshipGmvHourByDate(userList, data);
+    }
+
     private void getInfoKuaishouActivityInfo(KuaishouAccessToken accessToken, String url) {
         List<KuaiShouActivityInfo> list = new ArrayList<>();
         String appKey = accessToken.getAppKey();

+ 98 - 0
ruixuan-live/src/main/resources/mapper/isc/SupplyChainMapper.xml

@@ -2786,5 +2786,103 @@
         order by t.orderNum desc
 
     </select>
+    <select id="getKsChannelGmvHourByDate" resultType="com.alibaba.fastjson.JSONObject">
+        select stat_hour as 'time',
+        round(sum(t2.pay_amount) / 100, 2) as 'charge'
+        from (select promoter_id, user_id
+        from kuaishou_promoter where
+        1 = 1
+        <if test='userList != null and userList.size() > 0'>
+            and user_id in
+            <foreach collection="userList" item="item" separator=","
+                     open="(" close=")">
+                #{item}
+            </foreach>
+
+        </if>
+          group by promoter_id ) t1
+        inner join (select id, promoter_id, stat_hour, pay_amount
+        from kuaishou_supply_chain
+        where stat_date = #{date}
+        and order_status != 80) t2
+        on t1.promoter_id = t2.promoter_id
+        group by stat_hour
+        order by stat_hour asc
+    </select>
+
+
+    <select id="getKsCourtshipGmvHourByDate" resultType="com.alibaba.fastjson.JSONObject">
+        select stat_hour as 'time',
+        round(sum(t2.pay_amount) / 100, 2) as 'charge'
+        from (
+        select item_id, user_id
+        from kuaishou_item_list where
+        1 = 1
+        <if test='userList != null and userList.size() > 0'>
+            and user_id in
+            <foreach collection="userList" item="item" separator=","
+                     open="(" close=")">
+                #{item}
+            </foreach>
+
+        </if>
+        group by item_id) t1
+        inner join (select id, item_id, stat_hour, pay_amount
+        from kuaishou_supply_chain
+        where stat_date = #{date}
+        and order_status != 80) t2
+        on t1.item_id = t2.item_id
+        group by stat_hour
+        order by stat_hour asc
+
+
+    </select>
+    <select id="getBytedanceChannelGmvHourByDate" resultType="com.alibaba.fastjson.JSONObject">
+        select pay_success_time_hour as 'time',
+        round(sum(t2.total_pay_amount) / 100, 2) as 'charge'
+        from (select promoter_id, user_id
+        from kuaishou_promoter where
+        1 = 1
+        <if test='userList != null and userList.size() > 0'>
+            and user_id in
+            <foreach collection="userList" item="item" separator=","
+                     open="(" close=")">
+                #{item}
+            </foreach>
+
+        </if>
+        group by promoter_id ) t1
+        inner join (select order_id, author_short_id, pay_success_time_hour, total_pay_amount
+        from bytedance_order_list
+        where pay_success_time = #{date}
+        and flow_point != 'REFUND') t2
+        on t1.promoter_id = t2.author_short_id
+        group by pay_success_time_hour
+        order by pay_success_time_hour asc
+
+    </select>
+    <select id="getBytedanceCourtshipGmvHourByDate" resultType="com.alibaba.fastjson.JSONObject">
+        select pay_success_time_hour as 'time',
+        round(sum(t2.total_pay_amount) / 100, 2) as 'charge'
+        from (select item_id, user_id
+        from kuaishou_item_list where
+        1 = 1
+        <if test='userList != null and userList.size() > 0'>
+            and user_id in
+            <foreach collection="userList" item="item" separator=","
+                     open="(" close=")">
+                #{item}
+            </foreach>
+
+        </if>
+        group by item_id ) t1
+        inner join (select order_id, product_id, pay_success_time_hour, total_pay_amount
+        from bytedance_order_list
+        where pay_success_time = #{date}
+        and flow_point != 'REFUND') t2
+        on t1.item_id = t2.product_id
+        group by pay_success_time_hour
+        order by pay_success_time_hour asc
+    </select>
 
 </mapper>