Procházet zdrojové kódy

fix 分销订单金额、占比

zoujiajian před 3 roky
rodič
revize
ebd8139c4f

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

@@ -2,6 +2,10 @@ package com.cyksj.mapper.manage.distribute;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.cyksj.model.entity.UserDistribute;
+import org.apache.ibatis.annotations.Param;
+
+import java.math.BigDecimal;
+import java.util.List;
 
 /*
  *项目名: netflix
@@ -13,4 +17,8 @@ public interface UserDistributeMapper extends BaseMapper<UserDistribute> {
 	Integer count(Long userId);
 
 	Integer countUserNum(Long userId);
+
+	BigDecimal getHasPayOrdersBySharedId(@Param("userId") Long userId, @Param("noOrderStatus") List<String> noOrderStatus);
+
+	BigDecimal countHasPayBySharedId(@Param("userId") Long userId, @Param("noOrderStatus") List<String> noOrderStatus);
 }

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

@@ -44,6 +44,18 @@ public class UserDistributeViews {
 	@DbIgnore
 	private Integer distributeUserNum;
 
+	/**
+	 * 分销订单金额(无需产生积分)
+	 */
+	@DbIgnore
+	private BigDecimal distributeOrdersMoney;
+
+	/**
+	 * 分销消费占比
+	 */
+	@DbIgnore
+	private BigDecimal distributeConsumerRate;
+
 	@DbIgnore
 	@TableField(exist = false)
 	private BigDecimal availableMoney;

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

@@ -18,4 +18,22 @@
         from `user_distribute_shared` us
         where us.shared_id = #{userId}
     </select>
+
+    <select id="getHasPayOrdersBySharedId" resultType="java.math.BigDecimal">
+        select ifnull(sum(od.money),0) from `user_distribute_shared` us left join `order_don` od on od.user_id = us.user_id
+        where us.shared_id = #{userId}
+        and od.status not in
+        <foreach collection="noOrderStatus" item="item" open="(" separator="," close=")">
+            #{item}
+        </foreach>
+    </select>
+
+    <select id="countHasPayBySharedId" resultType="java.math.BigDecimal">
+        select count(distinct od.user_id) from `user_distribute_shared` us left join `order_don` od on od.user_id = us.user_id
+        where us.shared_id = #{userId}
+        and od.status not in
+        <foreach collection="noOrderStatus" item="item" open="(" separator="," close=")">
+            #{item}
+        </foreach>
+    </select>
 </mapper>

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

@@ -120,7 +120,11 @@ public class DistributeController {
 			view.setGotMoney(money.isPresent() ? money.get() : BigDecimal.ZERO);
 			Integer orders = userDistributeMapper.count(view.getUserId());
 			view.setOrders(orders);
+			BigDecimal hasPayMoney = userDistributeMapper.getHasPayOrdersBySharedId(view.getUserId(), OrderCustomerHandleScheduler.noOrderStatus);
+			BigDecimal hasPayCount = userDistributeMapper.countHasPayBySharedId(view.getUserId(), OrderCustomerHandleScheduler.noOrderStatus);
+			view.setDistributeOrdersMoney(hasPayMoney);
 			view.setDistributeUserNum(userDistributeMapper.countUserNum(view.getUserId()));
+			view.setDistributeConsumerRate(orders == 0 ? BigDecimal.ZERO : hasPayCount.divide(BigDecimal.valueOf(view.getDistributeUserNum()), 2, RoundingMode.HALF_DOWN));
 		}));
 		return GatewayResponse.SUCCESS.newBuilder().toResult(search);
 	}