From d58a5eecbbf9db6a9469801273e537a55bc8e794 Mon Sep 17 00:00:00 2001 From: Helius <wangdoubleone@gmail.com> Date: Thu, 07 Jan 2021 21:24:58 +0800 Subject: [PATCH] modify --- zq-erp/src/main/resources/mybatis/mapper/hive/SysOrderFlowDao.xml | 57 +++++++ zq-erp/src/main/resources/mybatis/mybatis-config.xml | 1 zq-erp/src/main/java/com/matrix/system/hive/bean/SysOrder.java | 10 + zq-erp/src/main/java/com/matrix/system/hive/bean/SysOrderFlow.java | 155 +++++++++++++++++++ zq-erp/src/main/resources/templates/views/admin/hive/beautySalon/order-form.html | 137 ++++++++++------ zq-erp/src/main/java/com/matrix/system/hive/dao/SysOrderFlowDao.java | 8 + zq-erp/src/main/java/com/matrix/system/hive/service/imp/SysOrderServiceImpl.java | 95 ++++++----- 7 files changed, 367 insertions(+), 96 deletions(-) diff --git a/zq-erp/src/main/java/com/matrix/system/hive/bean/SysOrder.java b/zq-erp/src/main/java/com/matrix/system/hive/bean/SysOrder.java index 9c16a42..fc2f294 100644 --- a/zq-erp/src/main/java/com/matrix/system/hive/bean/SysOrder.java +++ b/zq-erp/src/main/java/com/matrix/system/hive/bean/SysOrder.java @@ -115,6 +115,8 @@ * 订单明细 */ private List<SysOrderItem> items; + + private List<SysOrderFlow> flows; /** * 会员姓名 */ @@ -163,6 +165,14 @@ private String type; + public List<SysOrderFlow> getFlows() { + return flows; + } + + public void setFlows(List<SysOrderFlow> flows) { + this.flows = flows; + } + public String getType() { return type; } diff --git a/zq-erp/src/main/java/com/matrix/system/hive/bean/SysOrderFlow.java b/zq-erp/src/main/java/com/matrix/system/hive/bean/SysOrderFlow.java new file mode 100644 index 0000000..6292e8f --- /dev/null +++ b/zq-erp/src/main/java/com/matrix/system/hive/bean/SysOrderFlow.java @@ -0,0 +1,155 @@ +package com.matrix.system.hive.bean; + +import java.io.Serializable; +import java.math.BigDecimal; +import java.util.Date; + +/** + * @author wzy + * @date 2021-01-07 + **/ +public class SysOrderFlow implements Serializable { + private static final long serialVersionUID = 7519131902836023680L; + + public static final String PAY_METHOD_CARD = "会员卡"; + + private String createBy; + + private Date createTime; + + private String updateBy; + + private Date updateTime; + + private Long id; + + private String flowNo; + + private Long orderId; + + private String flowContent; + + private String flowType; + + private BigDecimal amount; + + private String payMethod; + + private Long vipId; + + private Long cardId; + + private String isGift; + + public Long getCardId() { + return cardId; + } + + public void setCardId(Long cardId) { + this.cardId = cardId; + } + + public String getIsGift() { + return isGift; + } + + public void setIsGift(String isGift) { + this.isGift = isGift; + } + + public String getCreateBy() { + return createBy; + } + + public void setCreateBy(String createBy) { + this.createBy = createBy; + } + + public Date getCreateTime() { + return createTime; + } + + public void setCreateTime(Date createTime) { + this.createTime = createTime; + } + + public String getUpdateBy() { + return updateBy; + } + + public void setUpdateBy(String updateBy) { + this.updateBy = updateBy; + } + + public Date getUpdateTime() { + return updateTime; + } + + public void setUpdateTime(Date updateTime) { + this.updateTime = updateTime; + } + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getFlowNo() { + return flowNo; + } + + public void setFlowNo(String flowNo) { + this.flowNo = flowNo; + } + + public Long getOrderId() { + return orderId; + } + + public void setOrderId(Long orderId) { + this.orderId = orderId; + } + + public String getFlowContent() { + return flowContent; + } + + public void setFlowContent(String flowContent) { + this.flowContent = flowContent; + } + + public String getFlowType() { + return flowType; + } + + public void setFlowType(String flowType) { + this.flowType = flowType; + } + + public BigDecimal getAmount() { + return amount; + } + + public void setAmount(BigDecimal amount) { + this.amount = amount; + } + + public String getPayMethod() { + return payMethod; + } + + public void setPayMethod(String payMethod) { + this.payMethod = payMethod; + } + + public Long getVipId() { + return vipId; + } + + public void setVipId(Long vipId) { + this.vipId = vipId; + } +} diff --git a/zq-erp/src/main/java/com/matrix/system/hive/dao/SysOrderFlowDao.java b/zq-erp/src/main/java/com/matrix/system/hive/dao/SysOrderFlowDao.java new file mode 100644 index 0000000..c6b11db --- /dev/null +++ b/zq-erp/src/main/java/com/matrix/system/hive/dao/SysOrderFlowDao.java @@ -0,0 +1,8 @@ +package com.matrix.system.hive.dao; + +import com.matrix.system.hive.bean.SysOrderFlow; + +public interface SysOrderFlowDao { + + public int insert(SysOrderFlow sysOrderFlow); +} 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 b64d15a..00031d1 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 @@ -93,6 +93,9 @@ @Autowired private ShoppingGoodsService shoppingGoodsService; + @Autowired + private SysOrderFlowDao sysOrderFlowDao; + @Override public int add(SysOrder sysOrder) { return sysOrderDao.insert(sysOrder); @@ -180,10 +183,10 @@ // 如果支付方式是非现金则记录现金支付金额 if (!item.getPayMethod().equals(PayMethodEnum.VIP_CARD.getCode())) { xjMoney = MoneyUtil.add(xjMoney, item.getPayMoney()); - item.setCashPay(item.getPayMoney()); +// item.setCashPay(item.getPayMoney()); } else { cardMoney = MoneyUtil.add(cardMoney, item.getPayMoney()); - item.setCardPay(item.getPayMoney()); +// item.setCardPay(item.getPayMoney()); } @@ -191,27 +194,28 @@ // 订单欠款减去支付金额 设置实际欠款 Double itemZkTotal = MoneyUtil.mul(item.getZkPrice(), Double.valueOf(item.getCount())); zkTotal=MoneyUtil.add(zkTotal, itemZkTotal); - item.setArrears(MoneyUtil.sub(itemZkTotal, item.getPayMoney())); +// item.setArrears(MoneyUtil.sub(itemZkTotal, item.getPayMoney())); // 如果存在欠款,将条目状态设置为欠款 - if (item.getArrears() > 0) { - item.setStatus(Dictionary.ORDER_STATU_QK); - } else if (item.getArrears() < 0) { - item.setPayMoney(item.getZkPrice()); - item.setStatus(Dictionary.ORDER_STATU_DFK); - } else { - item.setStatus(Dictionary.ORDER_STATU_DFK); - } +// if (item.getArrears() > 0) { +// item.setStatus(Dictionary.ORDER_STATU_QK); +// } else if (item.getArrears() < 0) { +// item.setPayMoney(item.getZkPrice()); +// item.setStatus(Dictionary.ORDER_STATU_DFK); +// } else { +// item.setStatus(Dictionary.ORDER_STATU_DFK); +// } + item.setStatus(Dictionary.ORDER_STATU_DFK); } double arrears; SysUsers user = (SysUsers) WebUtil.getSession().getAttribute(MatrixConstance.LOGIN_KEY); // 如果是收款,收款可以改变订单价格,所以需要求和出 订单折后价来计算本次欠款 arrears = MoneyUtil.sub(zkTotal, MoneyUtil.add(cardMoney, xjMoney)); sysOrder.setZkTotal(zkTotal); - sysOrder.setArrears(arrears); - sysOrder.setCardPay(cardMoney); - sysOrder.setCashPay(xjMoney); +// sysOrder.setArrears(arrears); +// sysOrder.setCardPay(cardMoney); +// sysOrder.setCashPay(xjMoney); sysOrder.setStatu(Dictionary.ORDER_STATU_DFK); sysOrder.setStaffId(user.getSuId()); sysOrder.setCompanyId(user.getCompanyId()); @@ -499,40 +503,43 @@ */ private void changeOrderStatu(SysOrder sourceOrder) { - boolean haQk=false; + for (SysOrderFlow flow : sourceOrder.getFlows()) { + // 若使用储值卡付款 + if (SysOrderFlow.PAY_METHOD_CARD.equals(flow.getPayMethod())) { - for(SysOrderItem sysOrderItem:sourceOrder.getItems()){ - - if(!sysOrderItem.getStatus().equals(Dictionary.ORDER_STATU_QK)){ - SysOrderItem updateItem=new SysOrderItem(); - updateItem.setId(sysOrderItem.getId()); - updateItem.setStatus(Dictionary.ORDER_STATU_YFK); - - if (sysOrderItem.getPayMethod().equals(Dictionary.PAY_TYPE_MOENY_CARD ) ) { - - if(sysOrderItem.getPayMethodDetail()!=null){ - // 查询要支付的充值卡 - MoneyCardUse moneyCardUse = moneyCardUseDao.selectById(Long.parseLong(sysOrderItem.getPayMethodDetail())); - // 扣除付款卡金额并添加流水 - cardPaySk(moneyCardUse, sourceOrder, sysOrderItem); - }else{ - throw new GlobleException("请选择支付的会员卡"); - } - - - } - orderItemDao.update(updateItem); - }else { - haQk=true; } } - //更新收款状态 - if(haQk){ - sourceOrder.setStatu(Dictionary.ORDER_STATU_QK); - }else{ - sourceOrder.setStatu(Dictionary.ORDER_STATU_YFK); - } +// boolean haQk=false; +// +// for(SysOrderItem sysOrderItem:sourceOrder.getItems()){ +// +// if(!sysOrderItem.getStatus().equals(Dictionary.ORDER_STATU_QK)){ +// SysOrderItem updateItem=new SysOrderItem(); +// updateItem.setId(sysOrderItem.getId()); +// updateItem.setStatus(Dictionary.ORDER_STATU_YFK); +// +// if (sysOrderItem.getPayMethod().equals(Dictionary.PAY_TYPE_MOENY_CARD ) ) { +// +// if(sysOrderItem.getPayMethodDetail()!=null){ +// // 查询要支付的充值卡 +// MoneyCardUse moneyCardUse = moneyCardUseDao.selectById(Long.parseLong(sysOrderItem.getPayMethodDetail())); +// // 扣除付款卡金额并添加流水 +// cardPaySk(moneyCardUse, sourceOrder, sysOrderItem); +// }else{ +// throw new GlobleException("请选择支付的会员卡"); +// } +// +// +// } +// orderItemDao.update(updateItem); +// }else { +// haQk=true; +// } +// } + + // 更新收款状态 + sourceOrder.setStatu(Dictionary.ORDER_STATU_YFK); sysOrderDao.update(sourceOrder); diff --git a/zq-erp/src/main/resources/mybatis/mapper/hive/SysOrderFlowDao.xml b/zq-erp/src/main/resources/mybatis/mapper/hive/SysOrderFlowDao.xml new file mode 100644 index 0000000..0a4e880 --- /dev/null +++ b/zq-erp/src/main/resources/mybatis/mapper/hive/SysOrderFlowDao.xml @@ -0,0 +1,57 @@ +<?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.hive.dao.SysOrderFlowDao"> + + <resultMap id="SysOrderFlowMap" type="SysOrderFlow"> + <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="flowNo" column="flow_no" /> + <result property="orderId" column="order_id" /> + <result property="flowContent" column="flow_content" /> + <result property="flowType" column="flow_type" /> + <result property="amount" column="amount" /> + <result property="vipId" column="vip_id" /> + <result property="payMethod" column="pay_method" /> + <result property="cardId" column="card_id" /> + <result property="isGift" column="is_gift" /> + </resultMap> + + <insert id="insert" parameterType="SysOrderFlow" useGeneratedKeys="true" + keyProperty="id"> + INSERT INTO sys_order_flow ( + ID, + create_by, + create_time, + update_by, + update_time, + flow_no, + order_id, + flow_content, + flow_type, + amount, + vip_id, + pay_method, + card_id, + is_gift + ) + VALUES ( + #{id}, + #{createBy}, + now(), + #{updateBy}, + now(), + #{flowNo}, + #{orderId}, + #{flowContent}, + #{flowType}, + #{amount}, + #{vipId}, + #{payMethod}, + #{cardId}, + #{isGift} + ) + </insert> +</mapper> \ No newline at end of file diff --git a/zq-erp/src/main/resources/mybatis/mybatis-config.xml b/zq-erp/src/main/resources/mybatis/mybatis-config.xml index ac77a00..66fe1b7 100644 --- a/zq-erp/src/main/resources/mybatis/mybatis-config.xml +++ b/zq-erp/src/main/resources/mybatis/mybatis-config.xml @@ -63,5 +63,6 @@ <typeAlias alias="ServicesFlow" type="com.matrix.system.hive.bean.ServicesFlow" /> <typeAlias alias="VipAnswer" type="com.matrix.system.hive.bean.VipAnswer" /> <typeAlias alias="SysWorktime" type="com.matrix.system.hive.bean.SysWorktime" /> + <typeAlias alias="SysOrderFlow" type="com.matrix.system.hive.bean.SysOrderFlow" /> </typeAliases> </configuration> diff --git a/zq-erp/src/main/resources/templates/views/admin/hive/beautySalon/order-form.html b/zq-erp/src/main/resources/templates/views/admin/hive/beautySalon/order-form.html index bd53d6f..48a3070 100644 --- a/zq-erp/src/main/resources/templates/views/admin/hive/beautySalon/order-form.html +++ b/zq-erp/src/main/resources/templates/views/admin/hive/beautySalon/order-form.html @@ -112,6 +112,10 @@ border: 3px solid; border-color: transparent #4884ff #4884ff transparent; } + + .el-dialog__body { + padding-top: 10px !important; + } </style> </head> <body> @@ -451,9 +455,9 @@ </el-drawer> <el-dialog title="收款" :visible.sync="dialogSettleVisible"> - <el-row type="flex" align="middle" style="padding: 10px 0;"> + <el-row type="flex" align="middle" style="padding: 0 0 10px 0;"> <el-col :span="5" style="text-align: center;">应收</el-col> - <el-col :span="10" style="text-align: center; line-height: 50px;"><span style="color: red;">¥ 80</span></el-col> + <el-col :span="10" style="text-align: center; line-height: 50px;"><span style="color: red; font-size: 20px;">¥ {{order.payMoney}}</span></el-col> </el-row> <el-row type="flex" align="middle" style="padding: 10px 0;"> @@ -463,7 +467,7 @@ <ul> <span v-for="(item, index) in payMethods"> <el-popover - :disabled="item.type != 6" + :disabled="item.type != '会员卡'" placement="bottom" trigger="hover" @hide="popoverHide(item)"> @@ -486,13 +490,13 @@ </el-col> </el-row> - <el-row type="flex" align="middle" style="padding: 10px 0;"> + <el-row type="flex" align="middle" style="padding: 10px 0 50px 0;"> <el-col :span="5" style="text-align: center;">支付金额</el-col> <el-col :span="15"> <el-row style="line-height: 50px;" v-for="(item, index) in payMoneys"> - <el-col :span="5" style="text-align: right; padding-right: 10px; font-size: 12px;">{{item.value}}</el-col> - <el-col :span="8"><el-input v-model="item.money"></el-input></el-col> - <el-col :span="5" style="margin-left: 10px;" v-if="item.type == 6">余额:<span class="arrears">¥ {{item.balance}}</span></el-col> + <el-col :span="6" style="text-align: right; padding-right: 10px; font-size: 12px;">{{item.value}}</el-col> + <el-col :span="8"><el-input v-model.number="item.money"></el-input></el-col> + <el-col :span="6" style="margin-left: 10px;" v-if="item.type == '会员卡'">{{item.isGift == 1 ? '赠送余额' : '余额' }}:<span class="arrears">¥ {{item.balance}}</span></el-col> </el-row> </el-col> </el-row> @@ -552,31 +556,31 @@ payMethods: [{ value: '现金支付', isActive: false, - type: 1 + type: '现金支付' }, { value: '微信', isActive: false, - type: 2 + type: '微信' }, { value: '支付宝', isActive: false, - type: 3 + type: '支付宝' }, { value: '银行卡', isActive: false, - type: 4 + type: '银行卡' }, { value: '团购', isActive: false, - type: 5 + type: '团购' }, { value: '会员卡', isActive: false, - type: 6 + type: '会员卡' }, { value: '欠款', isActive: false, - type: 7 + type: '欠款' },], achieveList: [], //会员可用的充值卡 @@ -707,11 +711,24 @@ contentType: 'application/x-www-form-urlencoded', url: basePath + '/admin/moneyCardUse/getUseMoneyCard', callback: function (data) { - console.log(_this.moneyCards) if (data.rows.length > 0) { data.rows.forEach(function (item, index, input) { - item.showLable = item.cardName + "-余额:" + (item.realMoney + item.giftMoney) + item.showLable = item.cardName + "-余额:" + (item.realMoney) + item.uuid = MTools.uuid(); + if (item.giftMoney != 0) { + var children = []; + var gift = {}; + gift.id = item.id; + gift.giftMoney = item.giftMoney; + gift.showLable = item.cardName + '-赠送金额' + item.giftMoney; + gift.cardName = item.cardName; + gift.isGift = 1; + gift.uuid = MTools.uuid(); + children.push(gift); + item.children = children; + } }); + console.log(data.rows) _this.moneyCards = data.rows; } @@ -859,21 +876,30 @@ //检查支付方式 - let hasPayMethod=true; - _this.order.items.forEach(item=>{ - if(!item.payMethod){ - hasPayMethod=false; - return; + // let hasPayMethod=true; + // _this.order.items.forEach(item=>{ + // if(!item.payMethod){ + // hasPayMethod=false; + // return; + // } + // }); + // if(!hasPayMethod){ + // this.$message.warning("请选择支付方式"); + // return false; + // } + + let flows = [] + _this.payMoneys.forEach(item=>{ + let flow = {}; + flow.payMethod = item.type; + flow.amount = item.money; + if (item.type == 6) { + flow.isGift = item.isGift; + flow.cardId = item.id; } - }); - if(!hasPayMethod){ - this.$message.warning("请选择支付方式"); - return false; - } - - - - + flows.push(flow) + }) + _this.order.flows = flows; //匹配业绩 @@ -1159,37 +1185,44 @@ Vue.set(item, 'isActive', true) } }, - handleCheckChange(click, checked) { + handleCheckChange(clickNode, checked) { let _this = this; - let selectNodes = checked.checkedNodes; - this.treeSelect = selectNodes; - let payMoneys = this.payMoneys; - for(var i = 0; i < payMoneys.length; i++) { - if(payMoneys[i].type == 6) { - _this.payMoneys.splice(i, 1); + let nodes = checked.checkedNodes; + _this.treeSelect = nodes; + var index = -1; + // 判断点击节点是否在已展示支付方式中 + for(var i = 0; i < _this.payMoneys.length; i++) { + let node = _this.payMoneys[i]; + if (node.uuid === clickNode.uuid) { + index = i; + break; } } - for(var i = 0; i < selectNodes.length; i++) { - var node = selectNodes[i]; + // 若点击节点在选中节点中,且已展示支付方式不存在,则添加 + if (nodes.indexOf(clickNode) > -1 && index === -1) { + var node = clickNode; var item = {}; - item.value = node.cardName; - item.balance = node.money; - item.isGift = 0; - item.type = 6; - item.id = node.id; - if (node.giftMoney != 0) { - var giftItem = {}; - giftItem.value = node.cardName + "赠送金额"; - giftItem.id = node.id; - giftItem.balance = node.giftMoney; - giftItem.isGift = 1; - giftItem.type = 6; - _this.payMoneys.push(giftItem); + if (node.isGift) { + item.value = node.cardName; + item.balance = node.giftMoney; + item.isGift = 1; + } else { + item.value = node.cardName; + item.balance = node.realMoney; + item.isGift = 0; } + item.type = '会员卡'; + item.id = node.id; + item.uuid = clickNode.uuid; _this.payMoneys.push(item); } + + // 若点击节点不存在选中节点中,且已展示支付方式中存在,则移除 + if (nodes.indexOf(clickNode) === -1 && index > -1) { + _this.payMoneys.splice(index, 1); + } }, submitPay() { } -- Gitblit v1.9.1