Bläddra i källkod

Merge branch 'distribute_field'

zoujiajian 3 år sedan
förälder
incheckning
1e43ed6f0f

+ 2 - 0
netflix-dao/src/main/java/com/cyksj/mapper/manage/distribute/UserDistributeMapper.java

@@ -11,4 +11,6 @@ import com.cyksj.model.entity.UserDistribute;
  */
 public interface UserDistributeMapper extends BaseMapper<UserDistribute> {
 	Integer count(Long userId);
+
+	Integer countUserNum(Long userId);
 }

+ 1 - 1
netflix-dao/src/main/java/com/cyksj/model/views/DistributeOrdersView.java

@@ -16,7 +16,7 @@ import java.util.Date;
  */
 @Getter
 @Setter
-@SearchBean(tables = "order_don od left join distribute_waiting_send_points dp on dp.order_id = od.id",
+@SearchBean(tables = "order_don od inner join distribute_waiting_send_points dp on dp.order_id = od.id",
 		where = "od.is_distribute is true and od.status not in ('close','noPayment')")
 public class DistributeOrdersView {
 	@DbField("od.id")

+ 56 - 0
netflix-dao/src/main/java/com/cyksj/model/views/RegisterDistributeOrdersDetailView.java

@@ -0,0 +1,56 @@
+package com.cyksj.model.views;
+
+import com.cyksj.model.entity.OrderDon;
+import com.ejlchina.searcher.bean.DbField;
+import com.ejlchina.searcher.bean.DbIgnore;
+import com.ejlchina.searcher.bean.SearchBean;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.math.BigDecimal;
+import java.util.Date;
+
+/*
+ *项目名: netflix
+ *文件名: RegisterDistributeOrdersDetailView
+ *创建者: JavaZou
+ *创建时间:2022/12/15 11:22
+ */
+@Getter
+@Setter
+@SearchBean(tables = "distribute_waiting_send_points dp left join order_don od on od.id = dp.order_id" +
+		" left join goods_don gd on gd.id = od.goods_id")
+public class RegisterDistributeOrdersDetailView {
+
+	@DbField("od.created_time")
+	private Date createdTime;
+
+	@DbField("od.money")
+	private BigDecimal money;
+
+	@DbField("od.status")
+	private OrderDon.Status status;
+
+	@DbField("dp.shared_id")
+	@JsonIgnore
+	private Long sharedId;
+
+	@DbField("dp.user_id")
+	private Long userId;
+
+	@DbIgnore
+	private String nickname;
+
+	@DbField("gd.id")
+	private Long goodsId;
+
+	@DbField("gd.title")
+	private String platform;
+
+	@DbField("od.sku_id")
+	private Long skuId;
+
+	@DbIgnore
+	private String specVal;
+}

+ 42 - 0
netflix-dao/src/main/java/com/cyksj/model/views/RegisterDistributeOrdersView.java

@@ -0,0 +1,42 @@
+package com.cyksj.model.views;
+
+import com.ejlchina.searcher.bean.DbField;
+import com.ejlchina.searcher.bean.DbIgnore;
+import com.ejlchina.searcher.bean.SearchBean;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.math.BigDecimal;
+import java.util.Date;
+
+/*
+ *项目名: netflix
+ *文件名: RegisterDistributeOrdersView
+ *创建者: JavaZou
+ *创建时间:2022/12/16 17:04
+ */
+@Getter
+@Setter
+@SearchBean(tables = "user_distribute_shared us left join user u on u.id = us.user_id")
+public class RegisterDistributeOrdersView {
+	@DbField("us.id")
+	private Long id;
+
+	@DbField("us.shared_id")
+	private Long sharedId;
+
+	@DbField("u.created_time")
+	private Date registerDate;
+
+	@DbField("u.nickname")
+	private String nickname;
+
+	@DbField("us.user_id")
+	private Long userId;
+
+	@DbIgnore
+	private Integer orderNums;
+
+	@DbIgnore
+	private BigDecimal money;
+}

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

@@ -38,6 +38,12 @@ public class UserDistributeViews {
 	@TableField(exist = false)
 	private Integer orders;
 
+	/**
+	 * 分销人数
+	 */
+	@DbIgnore
+	private Integer distributeUserNum;
+
 	@DbIgnore
 	@TableField(exist = false)
 	private BigDecimal availableMoney;

+ 6 - 0
netflix-dao/src/main/resources/mapper/UserDistributeMapper.xml

@@ -12,4 +12,10 @@
         where us.shared_id = #{userId}
           and od.status not in ('close', 'noPayment')
     </select>
+
+    <select id="countUserNum" resultType="java.lang.Integer">
+        select count(distinct us.user_id)
+        from `user_distribute_shared` us
+        where us.shared_id = #{userId}
+    </select>
 </mapper>

+ 34 - 0
netflix-web/src/main/java/com/cyksj/web/controller/manage/distribute/DistributeController.java

@@ -6,6 +6,7 @@ import com.cyksj.common.exception.BusinessRuntimeException;
 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;
@@ -60,6 +61,8 @@ public class DistributeController {
 
 	private final UserMapper userMapper;
 
+	private final GoodsDonSkuMapper goodsDonSkuMapper;
+
 	/**
 	 * 添加固定推广者
 	 */
@@ -116,6 +119,7 @@ public class DistributeController {
 			view.setGotMoney(money.isPresent() ? money.get() : BigDecimal.ZERO);
 			Integer orders = userDistributeMapper.count(view.getUserId());
 			view.setOrders(orders);
+			view.setDistributeUserNum(userDistributeMapper.countUserNum(view.getUserId()));
 		}));
 		return GatewayResponse.SUCCESS.newBuilder().toResult(search);
 	}
@@ -137,6 +141,36 @@ public class DistributeController {
 		return GatewayResponse.SUCCESS.newBuilder().toResult(search);
 	}
 
+	/**
+	 * 新注册分销人数
+	 */
+	@GetMapping("/get/register/distribute/user")
+	public Result<SearchResult<RegisterDistributeOrdersView>> getRegisterDistributeUserDetail(HttpServletRequest request) {
+		SearchResult<RegisterDistributeOrdersView> search = beanSearcher.search(RegisterDistributeOrdersView.class, MapUtils.flatBuilder(request.getParameterMap()).build());
+		search.getDataList().forEach(data->{
+			List<RegisterDistributeOrdersDetailView> ordersDetailViewList = beanSearcher.searchAll(RegisterDistributeOrdersDetailView.class, MapUtils.builder().field(RegisterDistributeOrdersDetailView::getUserId, data.getUserId()).op(Operator.Equal).build());
+			data.setOrderNums(ordersDetailViewList.size());
+			Optional<BigDecimal> money = ordersDetailViewList.stream().map(RegisterDistributeOrdersDetailView::getMoney).reduce(BigDecimal::add);
+			data.setMoney(money.isPresent() ? money.get() : BigDecimal.ZERO);
+		});
+		return GatewayResponse.SUCCESS.newBuilder().toResult(search);
+	}
+
+	/**
+	 * 获取新注册的分销用户订单数据
+	 */
+	@GetMapping("/get/register/distribute/user/order/detail")
+	public Result<SearchResult<RegisterDistributeOrdersDetailView>> getRegisterDistributeOrderDetail(HttpServletRequest request) {
+		SearchResult<RegisterDistributeOrdersDetailView> search = beanSearcher.search(RegisterDistributeOrdersDetailView.class, MapUtils.flatBuilder(request.getParameterMap()).build());
+		search.getDataList().forEach(data -> {
+			User user = userMapper.selectById(data.getUserId());
+			GoodsDonSku sku = goodsDonSkuMapper.selectById(data.getSkuId());
+			data.setNickname(user != null ? user.getNickname() : "");
+			data.setSpecVal(sku != null ? sku.getSpecVal() : "");
+		});
+		return GatewayResponse.SUCCESS.newBuilder().toResult(search);
+	}
+
 	/**
 	 * 平台分销比例修改
 	 */