Преглед изворни кода

实物订单来源饼图数据展示

zoujiajian пре 2 година
родитељ
комит
5e568f7d75

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

@@ -70,4 +70,6 @@ public interface OrderDonMapper extends BaseMapper<OrderDon> {
 	Page<UserOrderDetailView> getTagUserDataPage(@Param("page") Page<UserOrderDetailView> page, @Param("tagIdStr") String tagIdStr, @Param("startTime") String startTime, @Param("endTime") String endTime);
 
 	Page<CorpTagUserOrderDataView> getTagUserTimeOrderData(@Param("page") Page<Object> objectPage, @Param("tagIdStr") String tagIdStr, @Param("toDate") String toDate, @Param("startTime") String startTime, @Param("endTime") String endTime);
+
+	List<RealGoodsSourceData> getRealGoodsSourceData(@Param("startDate") String startDate, @Param("endDate") String endDate);
 }

+ 3 - 0
netflix-dao/src/main/java/com/cyksj/model/entity/OrderDon.java

@@ -346,6 +346,9 @@ public class OrderDon extends BaseEntity implements Serializable {
         red_book("小红书"),
         guang_dian("广点通"),
         tik_tok("抖音付费"),
+        bz("B站"),
+        py("朋友"),
+        yh("银河官网"),
         ;
         String desc;
 

+ 4 - 0
netflix-dao/src/main/java/com/cyksj/model/views/GroupsDataStatisticsView.java

@@ -4,6 +4,7 @@ import lombok.Getter;
 import lombok.Setter;
 
 import java.math.BigDecimal;
+import java.util.List;
 
 /**
  * 项目名: yhlxj2
@@ -91,4 +92,7 @@ public class GroupsDataStatisticsView {
 	 * 解绑渠道 设备销售金额
 	 */
 	private BigDecimal unBIndGroupsEpOrderMoney;
+
+	private List<RealGoodsSourceData> realGoodsSourceDataList;
+
 }

+ 18 - 0
netflix-dao/src/main/java/com/cyksj/model/views/RealGoodsSourceData.java

@@ -0,0 +1,18 @@
+package com.cyksj.model.views;
+
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+import lombok.NoArgsConstructor;
+import lombok.Setter;
+
+import java.math.BigDecimal;
+
+@Setter
+@Getter
+@AllArgsConstructor
+@NoArgsConstructor
+public class RealGoodsSourceData {
+	private String labelSource;
+
+	private BigDecimal orderMoney;
+}

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

@@ -395,4 +395,19 @@
         left join goods_don_sku sku on sku.id = o.sku_id
         order by o.created_time desc
     </select>
+
+    <select id="getRealGoodsSourceData" resultType="com.cyksj.model.views.RealGoodsSourceData">
+        select label_source, sum(money) as orderMoney
+        from order_don
+        where goods_id = 15
+        and status not in ('close', 'noPayment', 'refund')
+        <if test="startDate != null">
+            and created_time >= #{startDate}
+        </if>
+        <if test="endDate != null">
+            and created_time &lt; #{endDate}
+        </if>
+        and label_source != ''
+        group by label_source
+    </select>
 </mapper>

+ 22 - 0
netflix-service/src/main/java/com/cyksj/service/mange/statistics/impl/StatisticsDataServiceImpl.java

@@ -12,6 +12,7 @@ import com.cyksj.enums.GatewayResponse;
 import com.cyksj.mapper.*;
 import com.cyksj.mapper.manage.statistics.*;
 import com.cyksj.mapper.shop.YhShopMapper;
+import com.cyksj.mapper.sys.SysConfigMapper;
 import com.cyksj.model.dto.MonthlyUserOrderDetailDto;
 import com.cyksj.model.dto.NatureOrderDataDto;
 import com.cyksj.model.entity.*;
@@ -86,6 +87,8 @@ public class StatisticsDataServiceImpl implements StatisticsDataService {
 
 	private final YhShopMapper yhShopMapper;
 
+	private final SysConfigMapper sysConfigMapper;
+
 	private static final GlobalThreadPoolTaskExecutor TASK_POOL = GlobalThreadPoolTaskExecutor.getInstance();
 
 	@Override
@@ -430,6 +433,9 @@ public class StatisticsDataServiceImpl implements StatisticsDataService {
 			case 5:
 				getUnbindChannelOrderData(groupsDataStatisticsView, startDate, endDate);
 				break;
+			case 6:
+				getRealGoodsSourceData(groupsDataStatisticsView, startDate, endDate);
+				break;
 			default:
 				getSynthesisData(groupsDataStatisticsView, startDate, endDate);
 		}
@@ -526,6 +532,7 @@ public class StatisticsDataServiceImpl implements StatisticsDataService {
 				getGroupsOrderCategoryData(groupsDataStatisticsView, startDate, endDate);
 				getRenewOrderData(groupsDataStatisticsView, startDate, endDate);
 				getUnbindChannelOrderData(groupsDataStatisticsView, startDate, endDate);
+				getRealGoodsSourceData(groupsDataStatisticsView, startDate, endDate);
 			} finally {
 				latch.countDown();
 			}
@@ -533,6 +540,21 @@ public class StatisticsDataServiceImpl implements StatisticsDataService {
 		latch.await();
 	}
 
+	private void getRealGoodsSourceData(GroupsDataStatisticsView groupsDataStatisticsView, String startDate, String endDate) {
+		List<RealGoodsSourceData> realGoodsSourceDataList = orderDonMapper.getRealGoodsSourceData(startDate, endDate);
+		Map<String, List<RealGoodsSourceData>> collect = realGoodsSourceDataList.stream().collect(Collectors.groupingBy(RealGoodsSourceData::getLabelSource));
+		OrderDon.LabelSource[] values = OrderDon.LabelSource.values();
+		BigDecimal zero = BigDecimal.ZERO;
+		RealGoodsSourceData realGoodsSourceData = null;
+		for (OrderDon.LabelSource sysSource : values) {
+			if (collect.get(sysSource.name()) == null) {
+				realGoodsSourceData = new RealGoodsSourceData(sysSource.name(), zero);
+				realGoodsSourceDataList.add(realGoodsSourceData);
+			}
+		}
+		groupsDataStatisticsView.setRealGoodsSourceDataList(realGoodsSourceDataList);
+	}
+
 	private void exportBusinessMonthlyData(List<ExcelSheetAndData> excelSheetDataList, Long startTime, Long endTime) {
 		//月付、季付、年付
 		Long nf_goodsId = 1l;