Просмотр исходного кода

fix 返回折线图最大最小值

zoujiajian 3 лет назад
Родитель
Сommit
f5d78901d8

+ 5 - 0
netflix-dao/src/main/java/com/cyksj/mapper/OrderDonMapper.java

@@ -5,6 +5,7 @@ import com.cyksj.model.entity.OrderDon;
 import com.cyksj.model.entity.RealGoodsInterestUser;
 import com.cyksj.model.excel.ExcelOrderDonInfo;
 import com.cyksj.model.manage.views.OrderDonView;
+import com.cyksj.model.views.BrokenLineObjView;
 import org.apache.ibatis.annotations.Param;
 
 import java.util.Date;
@@ -28,4 +29,8 @@ public interface OrderDonMapper extends BaseMapper<OrderDon> {
 	void updateHasPaymentInterestRealGoodsPayTime();
 
 	OrderDonView getOrderDetail(Long orderId);
+
+	BrokenLineObjView selectPlatBrokenLineMoney(@Param("first") String first, @Param("end") String end);
+
+	BrokenLineObjView selectPersonDistributeBrokenLine(@Param("userId") Long userId, @Param("first") String first, @Param("end") String end);
 }

+ 32 - 0
netflix-dao/src/main/java/com/cyksj/model/views/BrokenLineObjView.java

@@ -0,0 +1,32 @@
+package com.cyksj.model.views;
+
+import com.fasterxml.jackson.annotation.JsonInclude;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.math.BigDecimal;
+import java.util.List;
+import java.util.Map;
+
+/*
+ *项目名: netflix
+ *文件名: BrokenLineObjView
+ *创建者: JavaZou
+ *创建时间:2023/3/9 11:02
+ */
+@Getter
+@Setter
+@JsonInclude(JsonInclude.Include.NON_NULL)
+public class BrokenLineObjView {
+	private Integer minOrdersCount;
+
+	private Integer maxOrdersCount;
+
+	private BigDecimal minMoney;
+
+	private BigDecimal maxMoney;
+
+	private Map<Long, List<PlatOrderDonBrokenLineView>> goodsData;
+
+	private Map<Long, List<PersonDistributeBrokenLineView>> distributeData;
+}

+ 36 - 0
netflix-dao/src/main/resources/mapper/OrderDonMapper.xml

@@ -91,4 +91,40 @@
                  left join `goods_don` gd on gd.id = od.goods_id
         where od.id = #{orderId}
     </select>
+
+    <select id="selectPlatBrokenLineMoney" resultType="com.cyksj.model.views.BrokenLineObjView">
+        select min(curdateMoney) as minMoney,
+               max(curdateMoney) as maxMoney
+        from (select cast(sum(od.money)/100 as decimal(10,2)) as curdateMoney,
+                     date_format(od.created_time,'%Y-%m-%d') curdate from order_don od
+        where od.status not in ('noPayment','close','refund')
+        group by od.goods_id,date_format(od.created_time,'%Y-%m-%d'))s
+        where 1 = 1
+        <if test="first != null">
+            and curdate >= #{first}
+        </if>
+        <if test="end != null">
+            and curdate &lt;= #{end}
+        </if>
+    </select>
+
+    <select id="selectPersonDistributeBrokenLine" resultType="com.cyksj.model.views.BrokenLineObjView">
+        select min(curdateOrderCount) as minOrdersCount,
+               max(curdateOrderCount) as maxOrdersCount
+        from (select date_format(od.created_time,'%Y-%m-%d') curdate,
+                     count(od.id) curdateOrderCount
+        from distribute_waiting_send_points dw
+        left join order_don od on od.id = dw.order_id
+        where dw.shared_id = #{userId}
+          and od.is_distribute is true
+          and dw.send_status not in ('not_exist', 'close')
+        group by od.goods_id, date_format(od.created_time, '%Y-%m-%d'))s
+        where 1 = 1
+        <if test="first != null">
+            and curdate >= #{first}
+        </if>
+        <if test="end != null">
+            and curdate &lt;= #{end}
+        </if>
+    </select>
 </mapper>

+ 7 - 6
netflix-web/src/main/java/com/cyksj/web/controller/manage/statistics/StatisticsDataController.java

@@ -12,6 +12,7 @@ import com.cyksj.dto.Result;
 import com.cyksj.enums.GatewayResponse;
 import com.cyksj.mapper.CustomerServiceRenewOrderRecordMapper;
 import com.cyksj.mapper.GroupsRelationMapper;
+import com.cyksj.mapper.OrderDonMapper;
 import com.cyksj.mapper.UserMapper;
 import com.cyksj.mapper.corp.CorpUserAuthMapper;
 import com.cyksj.mapper.manage.CustomerServiceEveryMonthDetailMapper;
@@ -40,9 +41,7 @@ import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 import java.math.BigDecimal;
 import java.math.RoundingMode;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
 import java.util.stream.Collectors;
 
 /*
@@ -79,7 +78,7 @@ public class StatisticsDataController {
 
 	private final CorpUserAuthMapper corpUserAuthMapper;
 
-	private final HttpServletRequest request;
+	private final OrderDonMapper orderDonMapper;
 
 	/**
 	 * 查询统计数据
@@ -384,7 +383,7 @@ public class StatisticsDataController {
 	 * 获取每日平台订单折线数据
 	 */
 	@GetMapping("/get/plat/brokenLine")
-	public Result<Map<Long, List<PlatOrderDonBrokenLineView>>> getPlatBrokenLine(Long firstDate, Long lastDate) {
+	public Result<BrokenLineObjView> getPlatBrokenLine(Long firstDate, Long lastDate) {
 		String first = null;
 		String end = null;
 		if (firstDate != null) {
@@ -397,7 +396,9 @@ public class StatisticsDataController {
 				.field(PersonDistributeBrokenLineView::getDate, first, end).op(Operator.Between)
 				.orderBy(PersonDistributeBrokenLineView::getDate).asc()
 				.build());
+		BrokenLineObjView brokenLineObjView = orderDonMapper.selectPlatBrokenLineMoney(first, end);
 		Map<Long, List<PlatOrderDonBrokenLineView>> goodsMap = views.stream().collect(Collectors.groupingBy(PlatOrderDonBrokenLineView::getGoodsId));
-		return GatewayResponse.SUCCESS.newBuilder().toResult(goodsMap);
+		brokenLineObjView.setGoodsData(goodsMap);
+		return GatewayResponse.SUCCESS.newBuilder().toResult(brokenLineObjView);
 	}
 }

+ 8 - 3
netflix-web/src/main/java/com/cyksj/web/controller/user/DistributePopularizeController.java

@@ -13,6 +13,7 @@ import com.cyksj.dto.Result;
 import com.cyksj.enums.GatewayResponse;
 import com.cyksj.mapper.GoodsDonMapper;
 import com.cyksj.mapper.GoodsDonSkuMapper;
+import com.cyksj.mapper.OrderDonMapper;
 import com.cyksj.mapper.UserMapper;
 import com.cyksj.mapper.manage.distribute.DistributeMoneyApplyMapper;
 import com.cyksj.mapper.manage.distribute.DistributePointsExchangeMoneyMapper;
@@ -67,6 +68,8 @@ public class DistributePopularizeController {
 
 	private final DistributeWaitingSendPointsMapper distributeWaitingSendPointsMapper;
 
+	private final OrderDonMapper orderDonMapper;
+
 	/**
 	 * 推广订单明细
 	 */
@@ -144,7 +147,7 @@ public class DistributePopularizeController {
 	 * 个人推广用户每日订单情况折线图
 	 */
 	@GetMapping("/get/order/brokenLine")
-	public Result<Map<Long, List<PersonDistributeBrokenLineView>>> getPersonDistributeBrokenLineView(Long firstDate, Long lastDate) {
+	public Result<BrokenLineObjView> getPersonDistributeBrokenLineView(Long firstDate, Long lastDate) {
 		Long userId = StpUserUtil.getLoginIdAsLong();
 		String first = null;
 		String end = null;
@@ -159,8 +162,10 @@ public class DistributePopularizeController {
 				.put("userId", String.format("dw.shared_id = %s", userId))
 				.orderBy(PersonDistributeBrokenLineView::getDate).asc()
 				.build());
-		Map<Long, List<PersonDistributeBrokenLineView>> goodsMap = views.stream().collect(Collectors.groupingBy(PersonDistributeBrokenLineView::getGoodsId));
-		return GatewayResponse.SUCCESS.newBuilder().toResult(goodsMap);
+		BrokenLineObjView brokenLineObjView = orderDonMapper.selectPersonDistributeBrokenLine(userId, first, end);
+		Map<Long, List<PersonDistributeBrokenLineView>> distributeMap = views.stream().collect(Collectors.groupingBy(PersonDistributeBrokenLineView::getGoodsId));
+		brokenLineObjView.setDistributeData(distributeMap);
+		return GatewayResponse.SUCCESS.newBuilder().toResult(brokenLineObjView);
 	}