Explorar el Código

fix 提成详情

zoujiajian hace 3 años
padre
commit
438f101f88

+ 18 - 0
netflix-dao/src/main/java/com/cyksj/model/entity/UserDistributeBusinessRate.java

@@ -1,5 +1,8 @@
 package com.cyksj.model.entity;
 
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.ejlchina.searcher.bean.DbField;
+import com.ejlchina.searcher.bean.SearchBean;
 import lombok.Getter;
 import lombok.Setter;
 
@@ -13,30 +16,45 @@ 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" +
+		" left join goods_don_sku gdk on gdk.id = ur.sku_id")
 public class UserDistributeBusinessRate extends BaseEntity{
 	/**
 	 * 商务用户id
 	 */
 	@NotNull
+	@DbField("ur.business_id")
 	private Long businessId;
 
 	/**
 	 * 平台id
 	 */
+	@DbField("ur.goods_id")
 	private Long goodsId;
 
+	@DbField("g.title")
+	@TableField(exist = false)
+	private String goodsName;
+
 	/**
 	 * 规格id
 	 */
+	@DbField("ur.sku_id")
 	private Long skuId;
 
+	@DbField("gdk.spec_val")
+	@TableField(exist = false)
+	private String specVal;
+
 	/**
 	 * 首单提成比例
 	 */
+	@DbField("ur.first_order_rate")
 	private Integer firstOrderRate;
 
 	/**
 	 * 首单续费提成比例
 	 */
+	@DbField("ur.renew_order_rate")
 	private Integer renewOrderRate;
 }

+ 58 - 0
netflix-dao/src/main/java/com/cyksj/model/views/BusinessTakeMoneyDetail.java

@@ -0,0 +1,58 @@
+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
+ *文件名: BusinessTakeMoneyDetail
+ *创建者: JavaZou
+ *创建时间:2023/3/27 10:47
+ */
+@Getter
+@Setter
+@SearchBean(tables = "user_distribute_business_order_don_record ubr",
+		where = ":time:"
+		, groupBy = "ubr.shared_id,ubr.business_id")
+public class BusinessTakeMoneyDetail {
+
+	@DbField("ubr.shared_id")
+	private Long userId;
+
+	@DbIgnore
+	private String nickname;
+
+	@DbIgnore
+	private Date createdTime;
+
+	@DbField("ubr.business_id")
+	private Long businessId;
+
+	@DbIgnore
+	private String businessName;
+
+	@DbField("count(distinct ubr.user_id)")
+	private Integer distributeNum;
+
+	@DbField("count(if(ubr.order_type = 1,1,NULL))")
+	private Integer numOfFirstOrderThisMonth;
+
+	@DbField("cast(sum(if(ubr.order_type = 1,ubr.take_money,0))/100 as decimal(10,2))")
+	private BigDecimal moneyOfFirstOrderThisMonth;
+
+	@DbField("count(if(ubr.order_type = 2,1,NULL))")
+	private Integer numOfRenewOrderThisMonth;
+
+	@DbField("cast(sum(if(ubr.order_type = 2,ubr.take_money,0))/100 as decimal(10,2))")
+	private BigDecimal moneyOfRenewOrderThisMonth;
+
+	@DbField("cast(sum(ubr.take_money)/100 as decimal(10,2))")
+	private BigDecimal takeMoney;
+
+}

+ 5 - 2
netflix-dao/src/main/java/com/cyksj/model/views/DistributeBusinessView.java

@@ -35,15 +35,18 @@ public class DistributeBusinessView {
 	@DbField("count(if(ubr.order_type = 1,1,NULL))")
 	private Integer numOfFirstOrderThisMonth;
 
-	@DbField("cast(sum(if(ubr.order_type = 1,ubr.take_money,0))/100 as decimal(10,0))")
+	@DbField("cast(sum(if(ubr.order_type = 1,ubr.take_money,0))/100 as decimal(10,2))")
 	private BigDecimal moneyOfFirstOrderThisMonth;
 
 	@DbField("count(if(ubr.order_type = 2,1,NULL))")
 	private Integer numOfRenewOrderThisMonth;
 
-	@DbField("cast(sum(if(ubr.order_type = 2,ubr.take_money,0))/100 as decimal(10,0))")
+	@DbField("cast(sum(if(ubr.order_type = 2,ubr.take_money,0))/100 as decimal(10,2))")
 	private BigDecimal moneyOfRenewOrderThisMonth;
 
+	@DbField("cast(sum(ubr.take_money)/100 as decimal(10,2))")
+	private BigDecimal takeMoney;
+
 	@DbField("date_format(ubr.order_created_time,'%Y-%m')")
 	private String monthDate;
 }

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

@@ -374,6 +374,33 @@ public class DistributeController {
 		return GatewayResponse.SUCCESS.newBuilder().toResult(search);
 	}
 
+	/**
+	 * 商务人员提成详情
+	 */
+	@GetMapping("/get/takeMoney/detail")
+	public Result<SearchResult<BusinessTakeMoneyDetail>> getTakeMoneyDetail(String monthDate) {
+		long adminId = StpUtil.getLoginIdAsLong();
+		MapBuilder builder = MapUtils.flatBuilder(request.getParameterMap());
+		//是否是商务人员
+		if (userBusinessRateService.isBusiness(adminId)) {
+			builder.field(DistributeBusinessView::getBusinessId, adminId);
+		}
+		if (StrUtil.isNotBlank(monthDate)) {
+			builder.put("time", String.format("date_format(ubr.order_created_time,'%%Y-%%m') = '%s'", monthDate));
+		}
+		SearchResult<BusinessTakeMoneyDetail> search = beanSearcher.search(BusinessTakeMoneyDetail.class, builder.build());
+		search.getDataList().forEach(data -> {
+			User user = userMapper.selectById(data.getUserId());
+			Optional.ofNullable(user).ifPresent(u -> {
+				data.setNickname(u.getNickname());
+				data.setCreatedTime(u.getCreatedTime());
+			});
+			User business = userMapper.selectById(data.getBusinessId());
+			Optional.ofNullable(business).ifPresent(bs -> data.setBusinessName(bs.getNickname()));
+		});
+		return GatewayResponse.SUCCESS.newBuilder().toResult(search);
+	}
+
 	/**
 	 * 查看商务人员提成比例
 	 */

+ 17 - 0
netflix-web/src/main/java/com/cyksj/web/controller/manage/goods/CmsGoodsDonSkuController.java

@@ -13,9 +13,12 @@ import com.cyksj.model.entity.GoodsDonSpec;
 import com.cyksj.model.manage.request.ReqGoodsSkuInsert;
 import com.cyksj.model.manage.request.ReqGoodsSkuSpec;
 import com.cyksj.model.manage.request.ReqGoodsSpecSingle;
+import com.cyksj.model.views.GoodsDonSkuView;
 import com.cyksj.service.mange.CmsGoodsDonService;
 import com.cyksj.service.mange.CmsGoodsDonSkuService;
 import com.cyksj.service.mange.CmsGoodsDonSpecService;
+import com.ejlchina.searcher.BeanSearcher;
+import com.ejlchina.searcher.util.MapUtils;
 import com.fasterxml.jackson.databind.JavaType;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
@@ -24,6 +27,7 @@ import org.springframework.transaction.annotation.Transactional;
 import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.*;
 
+import javax.servlet.http.HttpServletRequest;
 import java.util.*;
 
 /**
@@ -43,6 +47,10 @@ public class CmsGoodsDonSkuController {
 
     private final CmsGoodsDonSkuService goodsDonSkuService;
 
+    private final BeanSearcher beanSearcher;
+
+    private final HttpServletRequest request;
+
 
     /**
      * 新增 商品spec & sku
@@ -235,4 +243,13 @@ public class CmsGoodsDonSkuController {
         goodsDonSkuService.removeById(skuId);
         return GatewayResponse.SUCCESS.newBuilder().toResult();
     }
+
+    /**
+     * 获取平台规格列表
+     */
+    @GetMapping("/get/list")
+    public Result<List<GoodsDonSkuView>> getGoodsSkuList() {
+        List<GoodsDonSkuView> skuViewList = beanSearcher.searchAll(GoodsDonSkuView.class, MapUtils.flatBuilder(request.getParameterMap()).build());
+        return GatewayResponse.SUCCESS.newBuilder().toResult(skuViewList);
+    }
 }