From 26ffb618e472c3681f17b8b1b1a19ea55383928c Mon Sep 17 00:00:00 2001
From: xiaoyong931011 <15274802129@163.com>
Date: Fri, 12 Mar 2021 18:28:43 +0800
Subject: [PATCH] Merge branch 'score_shop' of http://120.27.238.55:7000/r/beauty-erp into score_shop
---
zq-erp/src/main/resources/templates/views/admin/hive/beautySalon/cz-form.html | 140 +++++++++++---
zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WxSalesmanAction.java | 11 +
zq-erp/pom.xml | 4
zq-erp/src/main/java/com/matrix/system/shopXcx/mqTask/OrderTask.java | 75 ++++++--
zq-erp/src/main/java/com/matrix/system/shopXcx/vo/SalesmanCenterInfo.java | 41 ++++
zq-erp/src/main/java/com/matrix/system/shopXcx/vo/SalesOrderVo.java | 27 +++
zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WxSalesOrderAction.java | 71 +++++++
zq-erp/src/main/java/com/matrix/system/fenxiao/dao/ShopSalesmanApplyDao.java | 2
zq-erp/src/main/java/com/matrix/system/hive/service/imp/SysOrderServiceImpl.java | 84 +++++++++
zq-erp/src/main/resources/mybatis/mapper/fenxiao/ShopSalesmanApplyDao.xml | 58 ++++++
10 files changed, 457 insertions(+), 56 deletions(-)
diff --git a/zq-erp/pom.xml b/zq-erp/pom.xml
index 6590214..f11f7a0 100644
--- a/zq-erp/pom.xml
+++ b/zq-erp/pom.xml
@@ -394,12 +394,12 @@
<exclude>config/test/*</exclude>
<exclude>config/xcx/*</exclude>
- <!--
+ <!---->
<exclude>config/config.json</exclude>
<exclude>config/application.properties</exclude>
<exclude>config/system.properties</exclude>
--->
+
<exclude>**/*.woff</exclude>
<exclude>**/*.woff2</exclude>
diff --git a/zq-erp/src/main/java/com/matrix/system/fenxiao/dao/ShopSalesmanApplyDao.java b/zq-erp/src/main/java/com/matrix/system/fenxiao/dao/ShopSalesmanApplyDao.java
index 3658015..af0d1eb 100644
--- a/zq-erp/src/main/java/com/matrix/system/fenxiao/dao/ShopSalesmanApplyDao.java
+++ b/zq-erp/src/main/java/com/matrix/system/fenxiao/dao/ShopSalesmanApplyDao.java
@@ -8,6 +8,7 @@
import com.matrix.system.fenxiao.entity.ShopSalesmanApply;
import com.matrix.system.fenxiao.vo.ShopSalesmanAppliingVo;
import com.matrix.system.fenxiao.vo.ShopSalesmanApplyVo;
+import com.matrix.system.shopXcx.vo.SalesmanCenterInfo;
import com.matrix.system.shopXcx.vo.SalesmanVo;
import org.apache.ibatis.annotations.Param;
@@ -31,4 +32,5 @@
IPage<ShopSalesmanAppliingVo> selectBizUserApplyList(Page<ShopSalesmanAppliingVo> page,
@Param("record")ShopSalesmanAppliingDto shopSalesmanAppliingDto);
+ SalesmanCenterInfo selectSalesmanCenterInfo(String openId);
}
\ No newline at end of file
diff --git a/zq-erp/src/main/java/com/matrix/system/hive/service/imp/SysOrderServiceImpl.java b/zq-erp/src/main/java/com/matrix/system/hive/service/imp/SysOrderServiceImpl.java
index 7fac417..9417d73 100644
--- a/zq-erp/src/main/java/com/matrix/system/hive/service/imp/SysOrderServiceImpl.java
+++ b/zq-erp/src/main/java/com/matrix/system/hive/service/imp/SysOrderServiceImpl.java
@@ -529,7 +529,7 @@
ShoppingGoods goods = shoppingGoodsDao.selectById(goodsId);
flow.setFlowContent(goods.getName() + "等" + sourceOrder.getItems().size() + "件产品");
// 若是退款,则取负数
- if (SysOrder.ORDER_TYPE_REFUND==sourceOrder.getOrderType()) {
+ if (Dictionary.ORDER_STATU_TK.equals(sourceOrder.getStatu())) {
flow.setFlowType(SysOrderFlow.FLOW_TYPE_REFUND);
flow.setAmount(flow.getAmount().negate());
flow.setOrderId(sourceOrder.getOldOrderId());
@@ -1316,6 +1316,88 @@
}
+ private void addRefundOrderFlow(SysOrder sourceOrder) {
+ //处理支付流水
+ int flowCount = 1;
+ for (SysOrderFlow flow : sourceOrder.getFlows()) {
+ //支付内容摘要设置
+ Long goodsId = sourceOrder.getItems().get(0).getGoodsId();
+ ShoppingGoods goods = shoppingGoodsDao.selectById(goodsId);
+ flow.setFlowContent(goods.getName() + "等" + sourceOrder.getItems().size() + "件产品");
+ // 退款,则取负数
+ flow.setFlowType(SysOrderFlow.FLOW_TYPE_REFUND);
+ flow.setAmount(flow.getAmount().negate());
+ flow.setOrderId(sourceOrder.getOldOrderId());
+
+ //统计储值卡支付
+ if (SysOrderFlow.PAY_METHOD_CARD.equals(flow.getPayMethod())) {
+ if (flow.getCardId() != null) {
+ MoneyCardUse moneyCardUse = moneyCardUseDao.selectById(flow.getCardId());
+ //修改储值卡余额
+ cardPaySk(moneyCardUse, sourceOrder, flow);
+ }else{
+ throw new GlobleException("无效的储值卡支付方式");
+ }
+ }
+
+ flow.setFlowNo(codeService.getFlowCode() + "-" + flowCount);
+ flow.setVipId(sourceOrder.getVipId());
+ flow.setShopId(sourceOrder.getShopId());
+ flow.setCompanyId(sourceOrder.getCompanyId());
+ sysOrderFlowDao.insert(flow);
+ flowCount++;
+ }
+ }
+
+ private void refundCard(MoneyCardUse moneyCardUse, SysOrder sourceOrder, SysOrderFlow flow) {
+ SysUsers user = (SysUsers) WebUtil.getSession().getAttribute(MatrixConstance.LOGIN_KEY);
+
+ MoneyCardUseFlow moneyCardUseFlow = new MoneyCardUseFlow();
+ if (SysOrderFlow.IS_GIFT_Y.equals(flow.getIsGift())) {
+ if (moneyCardUse.getGiftMoney() >= flow.getAmount().doubleValue()) {
+ double surplus = MoneyUtil.sub(moneyCardUse.getGiftMoney(), flow.getAmount().doubleValue());
+ moneyCardUse.setGiftMoney(surplus);
+ moneyCardUseFlow.setGiftMoney(0D - flow.getAmount().doubleValue());
+ } else {
+ throw new GlobleException(moneyCardUse.getCardName() + "余额不足");
+ }
+ } else {
+ if (moneyCardUse.getRealMoney() >= flow.getAmount().doubleValue()) {
+ double surplus = MoneyUtil.sub(moneyCardUse.getRealMoney(), flow.getAmount().doubleValue());
+ moneyCardUse.setRealMoney(surplus);
+ moneyCardUseFlow.setTotal(0 - flow.getAmount().doubleValue());
+ } else {
+ throw new GlobleException(moneyCardUse.getCardName() + "余额不足");
+ }
+ }
+
+ if (moneyCardUse.getIsVipCar().equals(Dictionary.FLAG_NO_N)) {
+ //余额为0时充值卡变为无效
+ if (moneyCardUse.getRealMoney().equals(0D) && moneyCardUse.getGiftMoney().equals(0D)) {
+ moneyCardUse.setIsOver(Dictionary.FLAG_YES_Y);
+ moneyCardUse.setStatus(Dictionary.MONEYCARD_STATUS_WX);
+ }
+ }
+
+ ShoppingGoods shoppingGoods = shoppingGoodsService.findById(moneyCardUse.getGoodsId());
+ if (shoppingGoods != null) {
+ Date invalidTime = shoppingGoodsService.calInvalidTime(shoppingGoods, 2, moneyCardUse.getFailTime());
+ moneyCardUse.setFailTime(invalidTime);
+ }
+ // 更新充值卡信息
+ moneyCardUseDao.update(moneyCardUse);
+ //设置卡项使用流水
+ moneyCardUseFlow.setCarUseId(moneyCardUse.getId());
+ moneyCardUseFlow.setOrderNo(sourceOrder.getOrderNo());
+ moneyCardUseFlow.setVipId(sourceOrder.getVipId());
+ moneyCardUseFlow.setTimes(-1);
+ moneyCardUseFlow.setType(MoneyCardUseFlow.USE_TYPE_CONSUMER);
+ moneyCardUseFlow.setCreateTime(new Date());
+ moneyCardUseFlow.setOperationId(user.getSuId());
+ moneyCardUseFlow.setBalance(moneyCardUse.getGiftMoney() + moneyCardUse.getRealMoney());
+ moneyCardUseFlowDao.insert(moneyCardUseFlow);
+ }
+
/**
* 退款退项目,套餐,卡项
* @param sysOrder
diff --git a/zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WxSalesOrderAction.java b/zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WxSalesOrderAction.java
new file mode 100644
index 0000000..94ee2bf
--- /dev/null
+++ b/zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WxSalesOrderAction.java
@@ -0,0 +1,71 @@
+package com.matrix.system.shopXcx.api.action;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.matrix.biz.bean.BizUser;
+import com.matrix.biz.dao.BizUserDao;
+import com.matrix.component.redis.RedisUserLoginUtils;
+import com.matrix.core.pojo.AjaxResult;
+import com.matrix.core.pojo.BasePageQueryDto;
+import com.matrix.system.common.dao.BusParameterSettingsDao;
+import com.matrix.system.fenxiao.dao.ShopSalesmanApplyDao;
+import com.matrix.system.fenxiao.dao.ShopSalesmanOrderDao;
+import com.matrix.system.fenxiao.service.ShopSalesmanApplyService;
+import com.matrix.system.shopXcx.vo.SalesmanVo;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import io.swagger.annotations.ApiResponse;
+import io.swagger.annotations.ApiResponses;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * @author jyy
+ * @date 2021-03-10
+ **/
+@Api(tags = "分销订单接口类")
+@RestController
+@RequestMapping(value = "/wxapi/salesOrder")
+public class WxSalesOrderAction {
+
+ @Autowired
+ BusParameterSettingsDao busParameterSettingsDao;
+
+ @Autowired
+ ShopSalesmanApplyDao salesmanApplyDao;
+
+
+ @Autowired
+ ShopSalesmanApplyService shopSalesmanApplyService;
+
+ @Autowired
+ private RedisUserLoginUtils redisUserLoginUtils;
+
+ @Autowired
+ private BizUserDao bizUserDao;
+
+ @Autowired
+ private ShopSalesmanOrderDao shopSalesmanOrderDao;
+
+
+ @ApiOperation(value = "获取下级列表", notes = "keywords=1 推广订单,keywords=2 邀请订单")
+ @PostMapping(value = "/getOrderList")
+ @ApiResponses({
+ @ApiResponse(code = 200, message = "ok", response = SalesmanVo.class)
+ })
+ AjaxResult getInvitationuserList(@RequestBody BasePageQueryDto pageDto) {
+ BizUser loginUser = redisUserLoginUtils.getLoginUser(BizUser.class);
+ Page<SalesmanVo> page=new Page<>(pageDto.getPageNum(),pageDto.getPageSize());
+ IPage<SalesmanVo> shopSalesmanApplyIPage = salesmanApplyDao.selectInvitationuserInPage(page, loginUser.getOpenId(),pageDto.getKeywords());
+ AjaxResult result=AjaxResult.buildSuccessInstance(shopSalesmanApplyIPage.getRecords());
+ return result;
+ }
+
+
+
+
+
+}
diff --git a/zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WxSalesmanAction.java b/zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WxSalesmanAction.java
index eaaf173..f2c9a3a 100644
--- a/zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WxSalesmanAction.java
+++ b/zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WxSalesmanAction.java
@@ -23,6 +23,7 @@
import com.matrix.system.fenxiao.entity.ShopSalesmanApply;
import com.matrix.system.fenxiao.service.ShopSalesmanApplyService;
import com.matrix.system.shopXcx.api.WeChatApiTools;
+import com.matrix.system.shopXcx.vo.SalesmanCenterInfo;
import com.matrix.system.shopXcx.vo.SalesmanVo;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
@@ -213,6 +214,16 @@
}
+ @ApiOperation(value = "查询分销员中心信息", notes = "")
+ @PostMapping(value = "/getSalesmanCenterInfo")
+ @ApiResponses({
+ @ApiResponse(code = 200, message = "ok", response = SalesmanCenterInfo.class)
+ })
+ AjaxResult getSalesmanCenterInfo() {
+ BizUser loginUser = redisUserLoginUtils.getLoginUser(BizUser.class);
+ SalesmanCenterInfo salesmanCenterInfo= salesmanApplyDao.selectSalesmanCenterInfo(loginUser.getOpenId());
+ return AjaxResult.buildSuccessInstance(salesmanCenterInfo);
+ }
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 2979ca3..a61c024 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
@@ -11,6 +11,7 @@
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.ShopSalesmanGrade;
import com.matrix.system.fenxiao.entity.ShopSalesmanOrder;
import com.matrix.system.hive.bean.*;
import com.matrix.system.hive.dao.*;
@@ -25,6 +26,7 @@
import com.matrix.system.shopXcx.dao.ShopSkuDao;
import com.rabbitmq.client.DeliverCallback;
import com.rabbitmq.client.Delivery;
+import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import org.springframework.transaction.annotation.Transactional;
@@ -265,38 +267,73 @@
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;
+ ShopSalesmanOrder salesmanOrder=new ShopSalesmanOrder();
+ salesmanOrder.setCompanyId(order.getCompanyId());
+ salesmanOrder.setCreateBy(MatrixConstance.SYSTEM_USER);
+ salesmanOrder.setUpdateBy(MatrixConstance.SYSTEM_USER);
+ salesmanOrder.setCreateTime(new Date());
+ salesmanOrder.setUpdateTime(new Date());
+ salesmanOrder.setOrderId(Long.parseLong(order.getId()+""));
+ salesmanOrder.setUserId(order.getUserId());
+ salesmanOrder.setSalesUserId(bizUser.getParentOpenId());
+ salesmanOrder.setRevenueType(ShopSalesmanOrder.REVENUE_TYPE_SALES);
+ salesmanOrder.setOrderStatus(ShopSalesmanOrder.STATUS_DJS);
+ Double salesAmount=0D;
+ Double invitationAmount=0D;
+ Double orderTotal=0D;
+ Double zk=1D;
+
+ BizUser salesMan=bizUserService.findByOpenId(bizUser.getParentOpenId());
+ BizUser invitationMan=null;
+ ShopSalesmanOrder invitationOrder=null;
+ boolean hasInvitationMan=StringUtils.isNotBlank(salesMan.getParentOpenId());
+
+ //判断推广员是否还存在上级,存在则计算邀请收益
+ if(hasInvitationMan){
+ invitationMan=bizUserService.findByOpenId(salesMan.getParentOpenId());
+ invitationOrder=new ShopSalesmanOrder();
+ BeanUtils.copyProperties(salesmanOrder,invitationOrder);
+ invitationOrder.setSalesUserId(invitationMan.getOpenId());
+ invitationOrder.setRevenueType(ShopSalesmanOrder.REVENUE_TYPE_INVITATION);
+ }
+
+ //收益计算
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());
+ ShopSalesmanGrade shopSalesmanGrade = shopSalesmanGradeDao.selectById(salesMan.getSalesmanGrade());
+ salesAmount+=item.getTotalPrice().doubleValue()*(shopSalesmanGrade.getSealesCommission()/100);
+
+ if(hasInvitationMan){
+ ShopSalesmanGrade invitationManGrade = shopSalesmanGradeDao.selectById(invitationMan.getSalesmanGrade());
+ invitationAmount+=item.getTotalPrice().doubleValue()*(invitationManGrade.getInvitationCommission()/100);
+ }
}else{
- //按产品设置的金额计算
- amount+=item.getShopSku().getSealesPrice().doubleValue();
+ //按产品设置的推广金额计算
+ salesAmount+=item.getShopSku().getSealesPrice().doubleValue()*item.getCount();
+ if(hasInvitationMan){
+ invitationAmount+=item.getShopSku().getInvitationPrice().doubleValue()*item.getCount();
+ }
}
-
+ orderTotal+=item.getTotalPrice().doubleValue();
}
}
+ //整体的优惠金额折算成折扣,* 佣金
+ zk=order.getOrderMoney().doubleValue()/orderTotal;
+ salesAmount=salesAmount*zk;
+ salesmanOrder.setAmount(salesAmount);
+ shopSalesmanOrderDao.insert(salesmanOrder);
-
-
+ if(hasInvitationMan){
+ invitationAmount=invitationAmount*zk;
+ invitationOrder.setAmount(invitationAmount);
+ shopSalesmanOrderDao.insert(invitationOrder);
+ }
}else{
LogUtil.debug("不存在父级userOpid={}",bizUser.getOpenId());
diff --git a/zq-erp/src/main/java/com/matrix/system/shopXcx/vo/SalesOrderVo.java b/zq-erp/src/main/java/com/matrix/system/shopXcx/vo/SalesOrderVo.java
new file mode 100644
index 0000000..794706e
--- /dev/null
+++ b/zq-erp/src/main/java/com/matrix/system/shopXcx/vo/SalesOrderVo.java
@@ -0,0 +1,27 @@
+package com.matrix.system.shopXcx.vo;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.Date;
+
+@Data
+@ApiModel(value = "SalesOrderVo", description = " 推广订单信息返回类")
+public class SalesOrderVo {
+
+
+ @ApiModelProperty(value = "订单id")
+ private Long orderId ;
+
+
+ @ApiModelProperty(value = "创建时间")
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+ private Date createTime;
+
+
+
+
+
+}
diff --git a/zq-erp/src/main/java/com/matrix/system/shopXcx/vo/SalesmanCenterInfo.java b/zq-erp/src/main/java/com/matrix/system/shopXcx/vo/SalesmanCenterInfo.java
new file mode 100644
index 0000000..f75ff89
--- /dev/null
+++ b/zq-erp/src/main/java/com/matrix/system/shopXcx/vo/SalesmanCenterInfo.java
@@ -0,0 +1,41 @@
+package com.matrix.system.shopXcx.vo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+@ApiModel(value = "SalesmanCenterInfo", description = " 销售员中心返回参数")
+public class SalesmanCenterInfo {
+
+ @ApiModelProperty(value = "累计收益")
+ private String totalRevenue;
+
+
+ @ApiModelProperty(value = "分销佣金")
+ private String salesRevenue;
+
+ @ApiModelProperty(value = "邀请奖励")
+ private String invitationRevenue;
+
+
+
+ @ApiModelProperty(value = "待结算收益")
+ private String djsRevenue;
+
+
+ @ApiModelProperty(value = "可提现金额")
+ private String withdrawalCash;
+
+ @ApiModelProperty(value = "推广订单数")
+ private String orderCount;
+
+
+ @ApiModelProperty(value = "客户数")
+ private Double customerCount;
+
+ @ApiModelProperty(value = "邀请下级数")
+ private Double invitationCount;
+
+
+}
diff --git a/zq-erp/src/main/resources/mybatis/mapper/fenxiao/ShopSalesmanApplyDao.xml b/zq-erp/src/main/resources/mybatis/mapper/fenxiao/ShopSalesmanApplyDao.xml
index 7c8028c..aa9d95c 100644
--- a/zq-erp/src/main/resources/mybatis/mapper/fenxiao/ShopSalesmanApplyDao.xml
+++ b/zq-erp/src/main/resources/mybatis/mapper/fenxiao/ShopSalesmanApplyDao.xml
@@ -46,7 +46,7 @@
shop_salesman_order b
WHERE
b.user_id = a.open_id
- and order_status=1
+ and order_status=2
AND b.sales_user_id = #{openId}
) AS revenueAmount,
@@ -136,4 +136,60 @@
</if>
</select>
+ <select id="selectSalesmanCenterInfo" resultType="com.matrix.system.shopXcx.vo.SalesmanCenterInfo">
+ select
+ IFNULL(withdrawal_cash,0) as withdrawal_cash,
+ (
+ SELECT
+ IFNULL(sum(IFNULL( b.amount, 0 )),0)
+ FROM
+ shop_salesman_order b
+ WHERE
+ b.user_id = a.open_id
+ and order_status=2
+ AND b.sales_user_id = #{openId}
+
+ ) AS totalRevenue,
+ (
+ SELECT
+ IFNULL(sum(IFNULL( b.amount, 0 )),0)
+ FROM
+ shop_salesman_order b
+ WHERE
+ b.user_id = a.open_id
+ and order_status=2 and revenue_type=1
+ AND b.sales_user_id = #{openId}
+
+ ) AS salesRevenue,
+ (
+ SELECT
+ IFNULL(sum(IFNULL( b.amount, 0 )),0)
+ FROM
+ shop_salesman_order b
+ WHERE
+ b.user_id = a.open_id
+ and order_status=2 and revenue_type=2
+ AND b.sales_user_id = #{openId}
+
+ ) AS invitationRevenue,
+ IFNULL(withdrawal_cash,0) as withdrawal_cash,
+ (
+ SELECT
+ IFNULL(sum(IFNULL( b.amount, 0 )),0)
+ FROM
+ shop_salesman_order b
+ WHERE
+ b.user_id = a.open_id
+ and order_status=1
+ AND b.sales_user_id = #{openId}
+
+ ) AS djsRevenue,
+ ( SELECT count( * ) FROM shop_salesman_order c WHERE c.user_id = a.open_id AND c.sales_user_id = #{openId} ) AS orderCount,
+ (select count(*) from biz_user where parent_open_id=#{openId} and is_sales=1) as invitationCount,
+ (select count(*) from biz_user where parent_open_id=#{openId} and is_sales=2) as customerCount
+ from biz_user a where
+ a.open_id=#{openId}
+
+ </select>
+
</mapper>
\ No newline at end of file
diff --git a/zq-erp/src/main/resources/templates/views/admin/hive/beautySalon/cz-form.html b/zq-erp/src/main/resources/templates/views/admin/hive/beautySalon/cz-form.html
index 12f1b8c..1d204ba 100644
--- a/zq-erp/src/main/resources/templates/views/admin/hive/beautySalon/cz-form.html
+++ b/zq-erp/src/main/resources/templates/views/admin/hive/beautySalon/cz-form.html
@@ -101,9 +101,22 @@
width="50">
</el-table-column>
<el-table-column
+ label="业绩类型" width="150">
+ <template slot-scope="scope">
+ <el-select v-model="scope.row.achieveType" @change="calculationAchieve" placeholder="请选择业绩类型">
+ <el-option
+ v-for="item in achieveTypeList"
+ :key="item.value"
+ :label="item.value"
+ :value="item.value">
+ </el-option>
+ </el-select>
+ </template>
+ </el-table-column>
+ <el-table-column
label="业绩" width="100">
<template slot-scope="scope">
- <el-input v-model="scope.row.achieveMoney"></el-input>
+ <el-input @input="checkAchieveMoney" v-model="scope.row.goodsCash"></el-input>
</template>
</el-table-column>
<el-table-column
@@ -169,6 +182,7 @@
cardInfo : "",
loginUser : "",
rechargeMoney : 0,
+ achieveTypeList : [],
payMethods: [{
value: '现金支付',
img: '/images/pay/cash.png',
@@ -219,28 +233,40 @@
}
});
- //获取登录用户信息
+
+ // 业绩类型
AjaxProxy.requst({
app: _this,
- url: basePath + '/admin/getLoginUser',
+ url: basePath + '/admin/customerDictionary/getListByParentCode/YJLX',
callback: function (data) {
- _this.loginUser = data.mapInfo.user;
+ _this.achieveTypeList = data.rows;
- _this.achieveList.push({
- saleId: _this.loginUser.suId,
- achieveMoney: 0,
- commission : 0,
- isShare: false,
+ //获取登录用户信息
+ AjaxProxy.requst({
+ app: _this,
+ url: basePath + '/admin/getLoginUser',
+ callback: function (data) {
+ _this.loginUser = data.mapInfo.user;
+
+ _this.achieveList.push({
+ saleId: _this.loginUser.suId,
+ goodsCash: 0,
+ achieveType : _this.achieveTypeList[0].value,
+ commission : 0,
+ isShare: false,
+ });
+ }
});
}
});
+
},
methods : {
//修改充值金额同步修改业绩
changeRechargeMoney(){
let aMoeny=(this.rechargeMoney/this.achieveList.length).toFixed(2);
this.achieveList.forEach(item=>{
- item.achieveMoney=aMoeny;
+ item.goodsCash=aMoeny;
});
},
submitRecharge() {
@@ -280,37 +306,39 @@
_this.achieveList.forEach(achieve => {
let achieveNew = {
beaultId: achieve.saleId,
- t1: achieve.achieveMoney,
- t3: '现金业绩',
+ goodsCash: achieve.goodsCash,
+ achieveType: achieve.achieveType,
projPercentage: achieve.commission,
};
achaeveList.push(achieveNew);
})
_this.cardInfo.bjmoney = _this.rechargeMoney;
_this.cardInfo.achaeveList = achaeveList;
- let url = basePath + "/admin/moneyCardUse/cz";
+ if (_this.checkAchieveMoney()) {
+ let url = basePath + "/admin/moneyCardUse/cz";
- console.log(_this.cardInfo);
- AjaxProxy.requst({
- app: _this,
- data: _this.cardInfo,
- url: url,
- callback: function (data) {
- if (_this.printPaper) {
- _this.print();
+ console.log(_this.cardInfo);
+ AjaxProxy.requst({
+ app: _this,
+ data: _this.cardInfo,
+ url: url,
+ callback: function (data) {
+ if (_this.printPaper) {
+ _this.print();
+ }
+
+ if(parent.myGrid) {
+ parent.myGrid.serchData();
+ }
+
+ if (parent.app) {
+ parent.app.vipInfoFn();
+ }
+
+ _this.closeFrame();
}
-
- if(parent.myGrid) {
- parent.myGrid.serchData();
- }
-
- if (parent.app) {
- parent.app.vipInfoFn();
- }
-
- _this.closeFrame();
- }
- });
+ });
+ }
},
cancelSubmit() {
this.closeFrame();
@@ -379,10 +407,56 @@
row2 = JSON.parse(JSON.stringify(row));
row2.isShare = true;
this.achieveList.push(row2);
+ this.calculationAchieve();
+ },
+ calculationAchieve() {
+ let _this = this;
+ let jsqMap = {};
+ this.achieveList.forEach(achieve=>{
+ key=achieve.achieveType;
+ if(!jsqMap[key]) {
+ jsqMap[key]=1;
+ } else {
+ jsqMap[key]++;
+ }
+ });
+ this.achieveList.forEach(achieve=>{
+ key = achieve.achieveType;
+ achieve.goodsCash=(_this.rechargeMoney/jsqMap[key]).toFixed(2);
+ });
},
//删除业绩
delAchieve(index, row) {
this.achieveList.splice(index, 1);
+ this.calculationAchieve();
+ },
+ checkAchieveMoney(){
+ console.log("校验业绩是否大于订单收款金额");
+ let _this = this;
+ let jsqMap={};
+ let isOk=true;
+ for(let i=0 ; i< this.achieveList.length; i++){
+ let achieve=this.achieveList[i];
+ if(!isNaN(achieve.goodsCash) ){
+ key=achieve.achieveType;
+ if(!jsqMap[key]){
+ jsqMap[key]=parseFloat(achieve.goodsCash);
+ }else{
+ jsqMap[key]=jsqMap[key]+parseFloat(achieve.goodsCash);
+ }
+ if(jsqMap[key]>_this.rechargeMoney) {
+ this.$message.error("业绩分配金额大于支付金额");
+ isOk = false;
+ return;
+ }
+ }else{
+ this.$message.error("业绩分配金额请填写数字");
+ isOk=false;
+ return;
+ }
+ };
+ console.log("isOk",isOk);
+ return isOk;
},
}
});
--
Gitblit v1.9.1