Bladeren bron

商务编辑提成平台列表展示;同步新品渠道未有提成

zoujiajian 3 jaren geleden
bovenliggende
commit
40183ca2eb

+ 7 - 0
netflix-dao/src/main/java/com/cyksj/mapper/manage/distribute/UserDistributeBusinessRateMapper.java

@@ -2,6 +2,10 @@ package com.cyksj.mapper.manage.distribute;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.cyksj.model.entity.UserDistributeBusinessRate;
+import com.cyksj.model.entity.UserPlatDistributeRate;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
 
 /*
  *项目名: netflix
@@ -10,4 +14,7 @@ import com.cyksj.model.entity.UserDistributeBusinessRate;
  *创建时间:2023/3/22 18:13
  */
 public interface UserDistributeBusinessRateMapper extends BaseMapper<UserDistributeBusinessRate> {
+	List<Long> selectNoThisGoodsDistribute(Long goodsId);
+
+	void batchInsertDistributePlatRate(@Param("list") List<UserPlatDistributeRate> part);
 }

+ 9 - 8
netflix-dao/src/main/java/com/cyksj/model/views/UserDistributeBusinessRateRecordView.java

@@ -1,12 +1,11 @@
 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 javax.validation.constraints.NotNull;
-
 /*
  *项目名: netflix
  *文件名: UserDistributeBusinessRateRecordView
@@ -15,7 +14,7 @@ import javax.validation.constraints.NotNull;
  */
 @Getter
 @Setter
-@SearchBean(tables = "user_distribute_business_rate ur left join goods_don g on g.id = ur.goods_id" +
+@SearchBean(tables = "goods_don g left join user_distribute_business_rate ur on g.id = ur.goods_id :business_id:" +
 		" left join goods_don_sku gdk on gdk.id = ur.sku_id",
 		where = "g.deleted is true")
 public class UserDistributeBusinessRateRecordView {
@@ -25,14 +24,13 @@ public class UserDistributeBusinessRateRecordView {
 	/**
 	 * 商务用户id
 	 */
-	@NotNull
-	@DbField("ur.business_id")
+	@DbIgnore
 	private Long businessId;
 
 	/**
 	 * 平台id
 	 */
-	@DbField("ur.goods_id")
+	@DbField("g.id")
 	private Long goodsId;
 
 	@DbField("g.title")
@@ -50,12 +48,15 @@ public class UserDistributeBusinessRateRecordView {
 	/**
 	 * 首单提成比例
 	 */
-	@DbField("ur.first_order_rate")
+	@DbField("ifnull(ur.first_order_rate,0)")
 	private Integer firstOrderRate;
 
 	/**
 	 * 首单续费提成比例
 	 */
-	@DbField("ur.renew_order_rate")
+	@DbField("ifnull(ur.renew_order_rate,0)")
 	private Integer renewOrderRate;
+
+	@DbField("g.type")
+	private Integer type;
 }

+ 19 - 0
netflix-dao/src/main/resources/mapper/UserDistributeBusinessRateMapper.xml

@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.cyksj.mapper.manage.distribute.UserDistributeBusinessRateMapper">
+
+    <insert id="batchInsertDistributePlatRate">
+        insert into
+        user_plat_distribute_rate(`distribute_id`,`goods_id`,`rate`,`second_rate`,`created_time`,`update_time`)
+        values
+        <foreach collection="list" item="item" separator=",">
+            (#{item.distributeId},#{item.goodsId},#{item.rate},#{item.secondRate},now(),now())
+        </foreach>
+    </insert>
+
+    <select id="selectNoThisGoodsDistribute" resultType="java.lang.Long">
+        select distinct ud.id from user_distribute ud left join user_plat_distribute_rate ur
+        on ur.distribute_id = ud.id and ur.goods_id = #{goodsId}
+        where ur.id is null
+    </select>
+</mapper>

+ 22 - 2
netflix-web/src/main/java/com/cyksj/web/controller/manage/distribute/DistributeController.java

@@ -32,6 +32,7 @@ import com.ejlchina.searcher.SearchResult;
 import com.ejlchina.searcher.param.Operator;
 import com.ejlchina.searcher.util.MapBuilder;
 import com.ejlchina.searcher.util.MapUtils;
+import com.google.common.collect.Lists;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.dao.DuplicateKeyException;
@@ -42,6 +43,7 @@ import org.springframework.web.bind.annotation.*;
 import javax.servlet.http.HttpServletRequest;
 import javax.validation.constraints.NotNull;
 import java.math.BigDecimal;
+import java.util.ArrayList;
 import java.util.Date;
 import java.util.List;
 import java.util.Optional;
@@ -482,9 +484,11 @@ public class DistributeController {
 	 * 查看商务人员提成比例
 	 */
 	@GetMapping("/get/business/rate")
-	public Result<List<UserDistributeBusinessRateRecordView>> getUserDistributeBusinessRateDetail(Long businessId) {
+	public Result<List<UserDistributeBusinessRateRecordView>> getUserDistributeBusinessRateDetail(Long businessId, Integer type) {
+		if (type == null) type = 1;
 		List<UserDistributeBusinessRateRecordView> userDistributeBusinessRate = beanSearcher.searchAll(UserDistributeBusinessRateRecordView.class, MapUtils.builder()
-				.field(UserDistributeBusinessRateRecordView::getBusinessId, businessId)
+				.put("business_id", String.format(" and ur.business_id = %s", businessId))
+				.field(UserDistributeBusinessRateRecordView::getType, type)
 				.orderBy(UserDistributeBusinessRateRecordView::getGoodsId).asc()
 				.build());
 		return GatewayResponse.SUCCESS.newBuilder().toResult(userDistributeBusinessRate);
@@ -594,6 +598,22 @@ public class DistributeController {
 			if (id == null) {
 				try {
 					businessDefaultRateConfigMapper.insert(config);
+					//新品编辑成功 给渠道自动添加对应值
+					List<Long> distributeIds = userDistributeBusinessRateMapper.selectNoThisGoodsDistribute(config.getGoodsId());
+					if (!distributeIds.isEmpty()) {
+						List<UserPlatDistributeRate> save = new ArrayList<>(distributeIds.size());
+						distributeIds.forEach(distributeId->{
+							Integer secondRate = config.getSecondRate();
+							if (secondRate==null) secondRate = 0;
+							UserPlatDistributeRate userPlatDistributeRate = new UserPlatDistributeRate();
+							userPlatDistributeRate.setDistributeId(distributeId);
+							userPlatDistributeRate.setRate(rate);
+							userPlatDistributeRate.setGoodsId(config.getGoodsId());
+							userPlatDistributeRate.setSecondRate(secondRate);
+							save.add(userPlatDistributeRate);
+						});
+						Lists.partition(save, 100).forEach(part -> userDistributeBusinessRateMapper.batchInsertDistributePlatRate(part));
+					}
 				} catch (DuplicateKeyException e) {
 				}
 				return;