zoujiajian 2 anni fa
parent
commit
f11e0bf70c

+ 0 - 6
netflix-dao/src/main/java/com/cyksj/model/views/BusinessDistributesDataView.java

@@ -53,10 +53,4 @@ public class BusinessDistributesDataView {
 	 */
 	@DbField("count(distinct us.id)")
 	private Integer numOfNewUser;
-
-	/**
-	 * 1本月,2历史
-	 */
-	@DbField(":type:")
-	private Integer type;
 }

+ 61 - 0
netflix-dao/src/main/java/com/cyksj/model/views/BusinessDistributesMonthlyDataView.java

@@ -0,0 +1,61 @@
+package com.cyksj.model.views;
+
+import com.ejlchina.searcher.bean.DbField;
+import com.ejlchina.searcher.bean.SearchBean;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.math.BigDecimal;
+
+/**
+ * 项目名: yhlxj
+ * 文件名: BusinessDistributesMonthlyDataView
+ * 创建者: JavaZou
+ * 创建时间:2023/9/22 14:08
+ */
+@Getter
+@Setter
+@SearchBean(tables = "(select distinct business_id from user_distribute_business_rate) ur inner join user_distribute ud on ud.business_id = ur.business_id and ud.deleted is true :time1:" +
+		" left join user_distribute_shared us on us.shared_id = ud.user_id :time2:" +
+		" left join order_don od on od.user_id = us.user_id and od.status not in ('close','refund','noPayment') and od.is_fixed_distribute = 1 :time3:",
+		groupBy = "ud.business_id")
+public class BusinessDistributesMonthlyDataView {
+	@DbField("ud.business_id")
+	private Long businessId;
+
+	/**
+	 * 商务名
+	 */
+	@DbField(":n:")
+	private String businessName;
+
+	/**
+	 * 渠道数量
+	 */
+	@DbField("count(distinct ud.id)")
+	private Integer numOfDistributor;
+
+	/**
+	 * 分销单数
+	 */
+	@DbField("count(od.id)")
+	private Integer numOfDistributeOrders;
+
+	/**
+	 * 分销金额
+	 */
+	@DbField("ifnull(sum(od.money),0)")
+	private BigDecimal distributeOrdersMoney;
+
+	/**
+	 * 拉新用户
+	 */
+	@DbField("count(distinct us.id)")
+	private Integer numOfNewUser;
+
+	/**
+	 * 1本月,2历史
+	 */
+	@DbField(":type:")
+	private Integer type;
+}

+ 7 - 6
netflix-web/src/main/java/com/cyksj/web/controller/manage/distribute/DistributeController.java

@@ -714,7 +714,7 @@ public class DistributeController {
 	 * 商务分销当月渠道商以及历史渠道商在当月的数据
 	 */
 	@GetMapping("/get/business/distribute/monthlyData")
-	public Result<List<BusinessDistributesDataView>> getBusinessMonthlyData(String firstMonthDate, String secondMonthDate) {
+	public Result<List<BusinessDistributesMonthlyDataView>> getBusinessMonthlyData(String firstMonthDate, String secondMonthDate) {
 		long adminId = StpUtil.getLoginIdAsLong();
 		if (StrUtil.isEmpty(firstMonthDate)) {
 			firstMonthDate = DateUtil.beginOfMonth(DateTime.now()).toDateStr();
@@ -726,8 +726,9 @@ public class DistributeController {
 		//是否是商务人员
 		Boolean isBusiness = userBusinessRateService.isBusiness(adminId);
 		if (isBusiness) {
-			builder.field(BusinessDistributesDataView::getBusinessId, adminId);
+			builder.field(BusinessDistributesMonthlyDataView::getBusinessId, adminId);
 		}
+		builder.put("n", "(select nickname from cms_user where id = ud.business_id limit 1)");
 		//当月渠道本月数据
 		String time1Sql = StrUtil.EMPTY;
 		String time2Sql = StrUtil.EMPTY;
@@ -752,7 +753,7 @@ public class DistributeController {
 			builder.put("time3", time3Sql);
 		}
 		builder.put("type", 1);
-		List<BusinessDistributesDataView> search = beanSearcher.searchAll(BusinessDistributesDataView.class, builder.build());
+		List<BusinessDistributesMonthlyDataView> search = beanSearcher.searchAll(BusinessDistributesMonthlyDataView.class, builder.build());
 		//历史渠道 当月数据
 		time1Sql = StrUtil.EMPTY;
 		time2Sql = StrUtil.EMPTY;
@@ -776,9 +777,9 @@ public class DistributeController {
 			builder.put("time3", time3Sql);
 		}
 		builder.put("type", 2);
-		List<BusinessDistributesDataView> search2 = beanSearcher.searchAll(BusinessDistributesDataView.class, builder.build());
-		Collection<BusinessDistributesDataView> businessDistributesDataViews = CollUtil.addAll(search, search2);
-		List<BusinessDistributesDataView> collect = businessDistributesDataViews.stream().sorted(Comparator.comparing(BusinessDistributesDataView::getBusinessId).thenComparing(BusinessDistributesDataView::getType)).collect(Collectors.toList());
+		List<BusinessDistributesMonthlyDataView> search2 = beanSearcher.searchAll(BusinessDistributesMonthlyDataView.class, builder.build());
+		Collection<BusinessDistributesMonthlyDataView> businessDistributesDataViews = CollUtil.addAll(search, search2);
+		List<BusinessDistributesMonthlyDataView> collect = businessDistributesDataViews.stream().sorted(Comparator.comparing(BusinessDistributesMonthlyDataView::getBusinessId).thenComparing(BusinessDistributesMonthlyDataView::getType)).collect(Collectors.toList());
 		return GatewayResponse.SUCCESS.newBuilder().toResult(collect);
 	}
 }