Przeglądaj źródła

渠道会员订单数据

zoujiajian 1 rok temu
rodzic
commit
970b886518

+ 3 - 0
netflix-dao/src/main/java/com/cyksj/mapper/vip/VipOrderDonMapper.java

@@ -3,6 +3,7 @@ package com.cyksj.mapper.vip;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.cyksj.model.entity.VipOrderDon;
 import com.cyksj.model.views.ChannelPopularizeView;
+import com.cyksj.model.views.ChannelView;
 import org.apache.ibatis.annotations.Param;
 
 /**
@@ -13,4 +14,6 @@ import org.apache.ibatis.annotations.Param;
  */
 public interface VipOrderDonMapper extends BaseMapper<VipOrderDon> {
 	ChannelPopularizeView countPopularizeOrderDetail(@Param("popularizeId") Long popularizeId, @Param("goodsId") Long goodsId, @Param("startTime") String startTime, @Param("endTime") String endTime);
+
+	ChannelView getOrderDataByCid(@Param("channelId") Long channelId, @Param("st") String st, @Param("et") String et);
 }

+ 15 - 0
netflix-dao/src/main/resources/mapper/VipOrderDonMapper.xml

@@ -35,4 +35,19 @@
         and status = 'refund')
         s2
     </select>
+
+    <select id="getOrderDataByCid" resultType="com.cyksj.model.views.ChannelView">
+        select count(vod.id) as orderCount, IFNULL(sum(vod.money), 0) as orderMoney
+        from channel c
+        LEFT JOIN channel_popularize cp on c.id = cp.channel_id
+        LEFT JOIN vip_order_don vod on vod.popularize_id = cp.id
+        where c.id = #{channelId}
+        and vod.status not in ('close', 'noPayment')
+        <if test="st != null and st != ''">
+            and vod.created_time >= #{st}
+        </if>
+        <if test="et != null and et != ''">
+            and vod.created_time &lt; #{et}
+        </if>
+    </select>
 </mapper>

+ 10 - 0
netflix-web/src/main/java/com/cyksj/web/controller/manage/channel/CmsChannelController.java

@@ -4,6 +4,7 @@ import cn.dev33.satoken.stp.StpUtil;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.cyksj.dto.Result;
 import com.cyksj.enums.GatewayResponse;
+import com.cyksj.mapper.vip.VipOrderDonMapper;
 import com.cyksj.model.entity.Channel;
 import com.cyksj.model.entity.ChannelPopularize;
 import com.cyksj.model.views.ChannelView;
@@ -42,6 +43,8 @@ public class CmsChannelController {
 
     private final HttpServletRequest request;
 
+    private final VipOrderDonMapper vipOrderDonMapper;
+
     @GetMapping
     public Result<SearchResult<ChannelView>> get(String startTime, String endTime) {
         String timeSql = StringUtils.EMPTY;
@@ -59,6 +62,13 @@ public class CmsChannelController {
         }
         SearchResult<ChannelView> searchResult = beanSearcher.search(ChannelView.class,
                 builder.put("time", timeSql).build());
+        searchResult.getDataList().forEach(data->{
+            //AI会员订单数据
+            Long channelId = data.getId();
+            ChannelView vipView = vipOrderDonMapper.getOrderDataByCid(channelId, startTime, endTime);
+            data.setOrderCount(data.getOrderCount() + vipView.getOrderCount());
+            data.setOrderMoney(data.getOrderMoney().add(vipView.getOrderMoney()));
+        });
         return GatewayResponse.SUCCESS.newBuilder().toResult(searchResult);
     }