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