From f42432621c9259f9914f8fec56a73419e7ff239f Mon Sep 17 00:00:00 2001
From: jyy <935090232@qq.com>
Date: Fri, 12 Mar 2021 13:46:24 +0800
Subject: [PATCH] 新增申请成为分销员接口7

---
 zq-erp/src/main/java/com/matrix/biz/bean/BizUser.java                                    |    6 
 zq-erp/src/main/resources/mybatis/mapper/fenxiao/ShopSalesmanOrderItemDao.xml            |   33 ++++++
 zq-erp/src/main/java/com/matrix/system/fenxiao/dao/ShopSalesmanOrderItemDao.java         |   13 ++
 zq-erp/src/main/java/com/matrix/system/fenxiao/entity/ShopSalesmanOrder.java             |   19 +++
 zq-erp/src/main/java/com/matrix/system/fenxiao/entity/ShopSalesmanOrderItem.java         |   54 ++++++++++
 zq-erp/src/main/java/com/matrix/system/shopXcx/mqTask/OrderTask.java                     |   68 +++++++++++++
 zq-erp/src/main/resources/config/db/increment/推广员.sql                                    |   23 ++++
 zq-erp/src/main/java/com/matrix/system/fenxiao/service/ShopSalesmanOrderItemService.java |   20 ++++
 zq-erp/src/main/resources/config/test/application.properties                             |    2 
 zq-erp/src/main/resources/templates/views/admin/shop/shopProduct-form.html               |   47 +++++++--
 10 files changed, 267 insertions(+), 18 deletions(-)

diff --git a/zq-erp/src/main/java/com/matrix/biz/bean/BizUser.java b/zq-erp/src/main/java/com/matrix/biz/bean/BizUser.java
index b0a0338..8c94ca2 100644
--- a/zq-erp/src/main/java/com/matrix/biz/bean/BizUser.java
+++ b/zq-erp/src/main/java/com/matrix/biz/bean/BizUser.java
@@ -43,7 +43,7 @@
     /**
      *推广员等级
      */
-    private Double  salesmanGrade;
+    private Long  salesmanGrade;
 
 
     /**
@@ -265,11 +265,11 @@
         this.withdrawalCash = withdrawalCash;
     }
 
-    public Double getSalesmanGrade() {
+    public Long getSalesmanGrade() {
         return salesmanGrade;
     }
 
-    public void setSalesmanGrade(Double salesmanGrade) {
+    public void setSalesmanGrade(Long salesmanGrade) {
         this.salesmanGrade = salesmanGrade;
     }
 
diff --git a/zq-erp/src/main/java/com/matrix/system/fenxiao/dao/ShopSalesmanOrderItemDao.java b/zq-erp/src/main/java/com/matrix/system/fenxiao/dao/ShopSalesmanOrderItemDao.java
new file mode 100644
index 0000000..8c4e87e
--- /dev/null
+++ b/zq-erp/src/main/java/com/matrix/system/fenxiao/dao/ShopSalesmanOrderItemDao.java
@@ -0,0 +1,13 @@
+package com.matrix.system.fenxiao.dao;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.matrix.system.fenxiao.entity.ShopSalesmanOrderItem;
+
+/**
+ * @description 分销单明细
+ * @author yourName
+ * @date 2021-03-12 13:17
+ */
+public interface ShopSalesmanOrderItemDao extends BaseMapper<ShopSalesmanOrderItem> {
+
+}
\ No newline at end of file
diff --git a/zq-erp/src/main/java/com/matrix/system/fenxiao/entity/ShopSalesmanOrder.java b/zq-erp/src/main/java/com/matrix/system/fenxiao/entity/ShopSalesmanOrder.java
index 5f16ee6..cc1647c 100644
--- a/zq-erp/src/main/java/com/matrix/system/fenxiao/entity/ShopSalesmanOrder.java
+++ b/zq-erp/src/main/java/com/matrix/system/fenxiao/entity/ShopSalesmanOrder.java
@@ -13,6 +13,25 @@
 @Data
 @TableName("shop_salesman_order")
 public class ShopSalesmanOrder  extends BaseEntity {
+	/**
+	 * 推广收益类型1推广收益
+	 */
+    public static final Integer REVENUE_TYPE_SALES = 1;
+
+	/**
+	 * 推广收益类型2邀请收益
+	 */
+	public static final Integer REVENUE_TYPE_INVITATION = 2;
+	/**
+	 * 分销单状态1待结算
+	 */
+	public static final Integer STATUS_DJS = 1;
+	/**
+	 * 分销单状态2已结算
+	 */
+	public static final Integer STATUS_YJS = 2;
+
+
 	@Extend
 	private static final long serialVersionUID = 1L; 
 
diff --git a/zq-erp/src/main/java/com/matrix/system/fenxiao/entity/ShopSalesmanOrderItem.java b/zq-erp/src/main/java/com/matrix/system/fenxiao/entity/ShopSalesmanOrderItem.java
new file mode 100644
index 0000000..a400637
--- /dev/null
+++ b/zq-erp/src/main/java/com/matrix/system/fenxiao/entity/ShopSalesmanOrderItem.java
@@ -0,0 +1,54 @@
+package com.matrix.system.fenxiao.entity;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.matrix.core.anotations.Extend;
+import com.matrix.system.score.entity.BaseEntity;
+import lombok.Data;
+
+/**
+ * @description 分销单明细
+ * @author yourName
+ * @date 2021-03-12 13:17
+ */
+@Data
+@TableName("shop_salesman_order_item")
+public class ShopSalesmanOrderItem  extends BaseEntity {
+	@Extend
+	private static final long serialVersionUID = 1L; 
+
+	
+
+
+	
+	/**
+	 * 订单id
+	 */
+
+
+	private Long  orderId ;
+	
+	/**
+	 * 分销订单id
+	 */
+
+
+	private Long  salesmanOrderId;
+	
+	/**
+	 * 订单明细id
+	 */
+
+
+	private Long  orderItemId;
+	
+	/**
+	 * 收益金额
+	 */
+
+
+	private Double  amount;
+
+
+
+  
+}
\ No newline at end of file
diff --git a/zq-erp/src/main/java/com/matrix/system/fenxiao/service/ShopSalesmanOrderItemService.java b/zq-erp/src/main/java/com/matrix/system/fenxiao/service/ShopSalesmanOrderItemService.java
new file mode 100644
index 0000000..fcfb554
--- /dev/null
+++ b/zq-erp/src/main/java/com/matrix/system/fenxiao/service/ShopSalesmanOrderItemService.java
@@ -0,0 +1,20 @@
+package com.matrix.system.fenxiao.service;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.matrix.system.fenxiao.dao.ShopSalesmanOrderItemDao;
+import com.matrix.system.fenxiao.entity.ShopSalesmanOrderItem;
+import org.springframework.stereotype.Service;
+
+/**
+ * @description 分销单明细
+ * @author yourName
+ * @date 2021-03-12 13:17
+ */
+@Service
+public class ShopSalesmanOrderItemService  extends ServiceImpl<ShopSalesmanOrderItemDao, ShopSalesmanOrderItem>{
+
+
+
+
+  
+}
\ No newline at end of file
diff --git a/zq-erp/src/main/java/com/matrix/system/shopXcx/mqTask/OrderTask.java b/zq-erp/src/main/java/com/matrix/system/shopXcx/mqTask/OrderTask.java
index 2c9ff6d..ddcf865 100644
--- a/zq-erp/src/main/java/com/matrix/system/shopXcx/mqTask/OrderTask.java
+++ b/zq-erp/src/main/java/com/matrix/system/shopXcx/mqTask/OrderTask.java
@@ -3,11 +3,15 @@
 
 import com.matrix.biz.bean.BizUser;
 import com.matrix.biz.service.BizUserService;
+import com.matrix.core.constance.MatrixConstance;
 import com.matrix.core.tools.LogUtil;
 import com.matrix.core.tools.StringUtils;
 import com.matrix.system.common.constance.AppConstance;
 import com.matrix.system.common.dao.BusParameterSettingsDao;
 import com.matrix.system.constance.Dictionary;
+import com.matrix.system.fenxiao.dao.ShopSalesmanGradeDao;
+import com.matrix.system.fenxiao.dao.ShopSalesmanOrderDao;
+import com.matrix.system.fenxiao.entity.ShopSalesmanOrder;
 import com.matrix.system.hive.bean.*;
 import com.matrix.system.hive.dao.*;
 import com.matrix.system.hive.service.CodeService;
@@ -78,8 +82,14 @@
     @Autowired
     private ShoppingGoodsDao shoppingGoodsDao;
 
+    @Autowired
+    private ShopSalesmanOrderDao shopSalesmanOrderDao;
+
+    @Autowired
+    private ShopSalesmanGradeDao shopSalesmanGradeDao;
+
     @Transactional(rollbackFor = Exception.class)
-    public void createOrder(ShopOrder orderDto) {
+    public void synchronizationOrderToErp(ShopOrder orderDto) {
 
         //判断是否存在需要同步的产品,只有绑定了erp中产品的才同步
         boolean needTb=false;
@@ -237,7 +247,61 @@
         //获取订单详情
         List<ShopOrderDetails> orderDetails = shopOrderDetailsDao.selectByOrderId(Integer.valueOf(orderId));
         order.setDetails(orderDetails);
-        createOrder(order);
+        //同步订单到erp
+        synchronizationOrderToErp(order);
+        //处理分销订单
+        handleExtensionOrder(order);
+
+    }
+
+    /**
+     * 处理分销订单
+     * @param order
+     */
+    @Transactional
+    void handleExtensionOrder(ShopOrder order) {
+        //判读客户是否存在上级,存在则产生上级的收益
+        BizUser bizUser = bizUserService.findByOpenId(order.getUserId());
+        if(StringUtils.isNotBlank(bizUser.getParentOpenId())){
+            LogUtil.debug("处理分销订单userOpid={}",bizUser.getOpenId());
+            //存在上级
+            ShopSalesmanOrder shopSalesmanOrder=new ShopSalesmanOrder();
+            shopSalesmanOrder.setCompanyId(order.getCompanyId());
+            shopSalesmanOrder.setCreateBy(MatrixConstance.SYSTEM_USER);
+            shopSalesmanOrder.setUpdateBy(MatrixConstance.SYSTEM_USER);
+            shopSalesmanOrder.setCreateTime(new Date());
+            shopSalesmanOrder.setUpdateTime(new Date());
+            shopSalesmanOrder.setOrderId(Long.parseLong(order.getId()+""));
+            shopSalesmanOrder.setUserId(order.getUserId());
+            shopSalesmanOrder.setSalesUserId(bizUser.getParentOpenId());
+            shopSalesmanOrder.setRevenueType(ShopSalesmanOrder.REVENUE_TYPE_SALES);
+            shopSalesmanOrder.setOrderStatus(ShopSalesmanOrder.STATUS_DJS);
+            Double amount=0D;
+            for (ShopOrderDetails item:order.getDetails() ){
+                if(StringUtils.isNotBlank(item.getShopProduct().getAttrValues())
+                && item.getShopProduct().getAttrValues().contains("分销商城")){
+                    if(item.getShopSku().getSealesPrice()==null
+                    ||item.getShopSku().getSealesPrice().doubleValue()==0){
+                        //按分销等级计算
+                        BizUser salesMan=bizUserService.findByOpenId(bizUser.getParentOpenId());
+                        shopSalesmanGradeDao.selectById(salesMan.getSalesmanGrade())
+
+                    }else{
+                        //按产品设置的金额计算
+                        amount+=item.getShopSku().getSealesPrice().doubleValue();
+                    }
+
+                }
+            }
+
+
+
+
+
+        }else{
+            LogUtil.debug("不存在父级userOpid={}",bizUser.getOpenId());
+        }
+
 
     }
 }
diff --git "a/zq-erp/src/main/resources/config/db/increment/\346\216\250\345\271\277\345\221\230.sql" "b/zq-erp/src/main/resources/config/db/increment/\346\216\250\345\271\277\345\221\230.sql"
index 4a54e0f..fc225f3 100644
--- "a/zq-erp/src/main/resources/config/db/increment/\346\216\250\345\271\277\345\221\230.sql"
+++ "b/zq-erp/src/main/resources/config/db/increment/\346\216\250\345\271\277\345\221\230.sql"
@@ -11,6 +11,29 @@
 
 
 /**
+ * 分销单明细
+ * @author yourName
+ * @date 2021-03-12 13:17
+ */
+CREATE TABLE shop_salesman_order_item(
+                                         create_by varchar(100) NOT NULL COMMENT '创建人',
+                                         create_time datetime NOT NULL COMMENT '创建时间',
+                                         update_by varchar(100) NOT NULL COMMENT '更新人',
+                                         update_time datetime NOT NULL COMMENT '更新时间',
+                                         id bigint(20)   NOT NULL  AUTO_INCREMENT  COMMENT '主键',
+
+                                         order_id  bigint(20)    COMMENT '订单id',
+
+                                         salesman_order_id bigint(20)    COMMENT '分销订单id',
+
+                                         order_item_id bigint(20)    COMMENT '订单明细id',
+
+                                         amount double(20,2)    COMMENT '收益金额',
+
+PRIMARY KEY(id)
+)ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='分销单明细';
+
+/**
  * 收益流水
  * @author yourName
  * @date 2021-03-10 17:34
diff --git a/zq-erp/src/main/resources/config/test/application.properties b/zq-erp/src/main/resources/config/test/application.properties
index 1e00a70..cd48b66 100644
--- a/zq-erp/src/main/resources/config/test/application.properties
+++ b/zq-erp/src/main/resources/config/test/application.properties
@@ -65,7 +65,7 @@
 #定时任务
 scheduling.enabled=false
 
-swagger.enable=false
+swagger.enable=true
 swagger.security.username=admin
 swagger.security.password=admin
 
diff --git a/zq-erp/src/main/resources/mybatis/mapper/fenxiao/ShopSalesmanOrderItemDao.xml b/zq-erp/src/main/resources/mybatis/mapper/fenxiao/ShopSalesmanOrderItemDao.xml
new file mode 100644
index 0000000..4d73645
--- /dev/null
+++ b/zq-erp/src/main/resources/mybatis/mapper/fenxiao/ShopSalesmanOrderItemDao.xml
@@ -0,0 +1,33 @@
+<?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.matrix.system.fenxiao.dao.ShopSalesmanOrderItemDao">
+	<!-- 定义ShopSalesmanOrderItem 的复杂关联map -->
+	<resultMap type="com.matrix.system.fenxiao.entity.ShopSalesmanOrderItem" id="ShopSalesmanOrderItemMap">
+		<id property="id" column="id" />
+		<result property="createBy" column="create_by" />
+		<result property="createTime" column="create_time" />
+		<result property="updateBy" column="update_by" />
+		<result property="updateTime" column="update_time" />
+			<result property="orderId " column="order_id " />
+			<result property="salesmanOrderId" column="salesman_order_id" />
+			<result property="orderItemId" column="order_item_id" />
+			<result property="amount" column="amount" />
+	</resultMap>
+	
+	
+	<!-- 定义ShopSalesmanOrderItem 的简单map  ,本map不添加其他的关联属性 -->
+	<resultMap type="com.matrix.system.fenxiao.entity.ShopSalesmanOrderItem" id="ShopSalesmanOrderItemSimpleMap">
+		<id property="id" column="id" />
+		<result property="createBy" column="create_by" />
+		<result property="createTime" column="create_time" />
+		<result property="updateBy" column="update_by" />
+		<result property="updateTime" column="update_time" />
+			<result property="orderId " column="order_id " />
+			<result property="salesmanOrderId" column="salesman_order_id" />
+			<result property="orderItemId" column="order_item_id" />
+			<result property="amount" column="amount" />
+	</resultMap>
+
+</mapper>
\ No newline at end of file
diff --git a/zq-erp/src/main/resources/templates/views/admin/shop/shopProduct-form.html b/zq-erp/src/main/resources/templates/views/admin/shop/shopProduct-form.html
index 47957c3..dec22fc 100644
--- a/zq-erp/src/main/resources/templates/views/admin/shop/shopProduct-form.html
+++ b/zq-erp/src/main/resources/templates/views/admin/shop/shopProduct-form.html
@@ -229,6 +229,8 @@
                                     <th>积分</th>
                                     <th>关联ERP产品</th>
                                     <th>排序</th>
+                                    <th>推广提成</th>
+                                    <th>邀请提成</th>
                                     <th>操作</th>
                                 </tr>
                             </table>
@@ -357,6 +359,8 @@
         <input autocomplete="off"   type="hidden" class="form-control" name="erpGoodsCode">
     </div></td>
     <td><input autocomplete="off"   type="text" class="form-control" name=""></td>
+        <td><input autocomplete="off"   type="text" class="form-control" name=""></td>
+        <td><input autocomplete="off"   type="text" class="form-control" name=""></td>
     <td><i class="fa fa-trash form-control-static" onclick="delThis('trId')"></i></td>
     </tr>
 </script>
@@ -526,6 +530,16 @@
                 goodsName = "";
             }
 
+            var sealesPrice = shopSkus[c].sealesPrice;
+            if (sealesPrice == null || typeof sealesPrice == 'undefined') {
+                sealesPrice = "";
+            }
+            var invitationPrice = shopSkus[c].invitationPrice;
+            if (invitationPrice == null || typeof invitationPrice == 'undefined') {
+                invitationPrice = "";
+            }
+
+
             var html=
                 '<tr id="'+trId+'">'
                 +'<td style="display:none;"><input autocomplete="off"   type="hidden" class="form-control" value="'+shopSkus[c].id+'" ></td>'
@@ -538,6 +552,8 @@
                 +'<td><div id="erpNoDiv"><button class="btn btn-info" onclick="selectProduct(\'shopIdValue\',\''+trId+'\')"><i class="fa fa-plus"></i></button>'
                 +'<p class="form-control-static erpGoodsName">'+ goodsName +'</p><input autocomplete="off" class="form-control" type="hidden"  value="'+stockCode+'" name="erpGoodsCode"></div></td>'
                 +'<td><input autocomplete="off"   type="text" class="form-control"  value="'+sort+'" name=""></td>'
+                +'<td><input autocomplete="off"   type="text" class="form-control"  value="'+sealesPrice+'" name=""></td>'
+                +'<td><input autocomplete="off"   type="text" class="form-control"  value="'+invitationPrice+'" name=""></td>'
                 +'<td><i class="fa fa-trash form-control-static"	onclick="delThis(\''+trId+'\')"></i></td>'
                 +'</tr>';
             $("#skutable").find("tbody").append(html);
@@ -617,7 +633,7 @@
 
     //初始化属性下拉选
     function initAttrSeclect(seler, def) {
-        $.AjaxProxy().invoke(basePath + "/admin/shopProductAttribute/showSonAttribute?attrCode=service",
+        $.AjaxProxy().invoke(basePath + "/admin/shopProductAttribute/showSonAttribute?attrCode=productColumn",
             function (loj) {
                 $(seler).createSelectTree(
                     loj.attr("result").rows,
@@ -708,61 +724,68 @@
             if (i != 0) {
                 var tds = $(this).find("td");
                 var length = tds.length - 1;
-                var id = tds.eq(length - 8).find("input").val();
+                var id = tds.eq(length - 10).find("input").val();
                 if(id == null){
                     id ="";
                 }
                 sku.id = id;
 
                 //规格名称
-                var name = tds.eq(length - 7).find("input").val();
+                var name = tds.eq(length - 9).find("input").val();
                 if(name == null){
                     name = "";
                 }
                 sku.name = name;
 
                 //图片地址
-                var path = tds.eq(length - 6).find("img").attr("src");
+                var path = tds.eq(length - 8).find("img").attr("src");
                 if(path == null){
                     path = "";
                 }
                 sku.imgPath = path;
 
                 //库存
-                var stock = tds.eq(length - 5).find("input").val();
+                var stock = tds.eq(length - 7).find("input").val();
                 if(stock == ""){
                     stock = 0;
                 }
                 sku.stock = stock;
 
                 //价格
-                var price = tds.eq(length - 4).find("input").val();
+                var price = tds.eq(length -6).find("input").val();
                 if(price == ""){
                     price =0;
                 }
                 sku.price = price;
 
                 //积分
-                var score = tds.eq(length - 3).find("input").val();
+                var score = tds.eq(length - 5).find("input").val();
                 if(score == ""){
                     score = 0;
                 }
                 sku.score = score;
 
                 //品种编码
-                var stockCode = tds.eq(length - 2).find("input").val();
+                var stockCode = tds.eq(length - 4).find("input").val();
                 if(stockCode == null || typeof stockCode == 'undefined'){
                     stockCode = '';
                 }
                 sku.stockCode = stockCode;
 
                 //排序
-                var sort = tds.eq(length - 1).find("input").val();
+                var sort = tds.eq(length - 3).find("input").val();
                 if(sort == ""){
                     sort = 0;
                 }
                 sku.sort = sort;
 
+                //推广提成
+                var sealesPrice = tds.eq(length - 2).find("input").val();
+                sku.sealesPrice = sealesPrice;
+
+                //邀请提成
+                var invitationPrice = tds.eq(length - 1).find("input").val();
+                sku.invitationPrice = invitationPrice;
 
                 skus.push(sku);
             }
@@ -780,7 +803,7 @@
             if (i != 0) {
                 var tds = $(this).find("td");
                 var length = tds.length - 1;
-                var name = tds.eq(length - 7).find("input").val();
+                var name = tds.eq(length - 9).find("input").val();
                 if(name == ""){
                     layer.msg("请填写规格名称",{
                         icon : 2,
@@ -798,7 +821,7 @@
                     return false;
                 }
 
-                var stock = tds.eq(length - 5).find("input").val();
+                var stock = tds.eq(length -7).find("input").val();
                 if(stock == ""){
                     layer.msg("请填写库存",{
                         icon : 2,
@@ -807,7 +830,7 @@
                     flag = true;
                     return false;
                 }
-                var price = tds.eq(length - 4).find("input").val();
+                var price = tds.eq(length - 6).find("input").val();
                 if(price == ""){
                     layer.msg("请填写价格",{
                         icon : 2,

--
Gitblit v1.9.1