@@ -540,9 +540,11 @@
}
function changePayOnDoorMode(e) {
-
-
-
+ if ($(e).is(':checked')) {
+ $('#payOnDoorMode').prop("value", '01');
+ } else {
+ $('#payOnDoorMode').prop("value", '02');
+ }
}
function validSpecialComponent() {
@@ -597,6 +599,7 @@
params.cityId = areaCascader.getCheckedPaths()[0][1];
params.districtId = areaCascader.getCheckedPaths()[0][2];
params.streetId = areaCascader.getCheckedPaths()[0][3];
+ params.payMode = $('#payOnDoorMode').val();
return params;
}
diff --git a/ghy-admin/src/main/resources/templates/order/pc-master.html b/ghy-admin/src/main/resources/templates/order/pc-master.html
index 27601ead..7363da48 100644
--- a/ghy-admin/src/main/resources/templates/order/pc-master.html
+++ b/ghy-admin/src/main/resources/templates/order/pc-master.html
@@ -189,6 +189,7 @@
var payTypes = [[${@dict.getType('pay_type')}]];
var orderTypes = [[${@dict.getType('goods_category_type')}]];
var orderModes = [[${@dict.getType('order_mode')}]];
+ var payModes = [[${@dict.getType('pay_mode')}]];
var payStatus = [[${@dict.getType('pay_status')}]];
var orderStatus = [[${@dict.getType('order_status')}]];
@@ -463,8 +464,18 @@
{
field: 'changeMoney',
title: '商家追加金额',
- align: 'center'
- },{
+ align: 'center',
+ visible: false
+ },
+ {
+ field: 'payMode',
+ title: '商家付费模式',
+ align: 'center',
+ formatter: function (value, row, index) {
+ return $.table.selectDictLabel(payModes, value);
+ }
+ },
+ {
field: 'orderMode',
title: '下单模式',
align: 'center',
diff --git a/ghy-order/src/main/java/com/ghy/order/domain/OrderMaster.java b/ghy-order/src/main/java/com/ghy/order/domain/OrderMaster.java
index 6e2b2596..772db79b 100644
--- a/ghy-order/src/main/java/com/ghy/order/domain/OrderMaster.java
+++ b/ghy-order/src/main/java/com/ghy/order/domain/OrderMaster.java
@@ -144,6 +144,8 @@ public class OrderMaster extends BaseEntity {
private String orderMode;
+ private String payMode;
+
private Integer sysPayStatus;
/**
diff --git a/ghy-order/src/main/java/com/ghy/order/domain/OrderTemplate.java b/ghy-order/src/main/java/com/ghy/order/domain/OrderTemplate.java
index 93546990..fe34ffa0 100644
--- a/ghy-order/src/main/java/com/ghy/order/domain/OrderTemplate.java
+++ b/ghy-order/src/main/java/com/ghy/order/domain/OrderTemplate.java
@@ -37,6 +37,7 @@ public class OrderTemplate extends BaseEntity {
private String customerPhone;
// 下单模式 1=带价发布 2=一票价发布 3=回收模式
private Integer orderMode;
+ private String payMode;
// 发布价格(限制整数)
private Integer price;
// 上门代收款(限制整数)
diff --git a/ghy-order/src/main/java/com/ghy/order/request/SysOrderAssignRequest.java b/ghy-order/src/main/java/com/ghy/order/request/SysOrderAssignRequest.java
index 5ef23d23..394755f3 100644
--- a/ghy-order/src/main/java/com/ghy/order/request/SysOrderAssignRequest.java
+++ b/ghy-order/src/main/java/com/ghy/order/request/SysOrderAssignRequest.java
@@ -50,4 +50,6 @@ public class SysOrderAssignRequest {
private String orderMode;
+ private String payMode;
+
}
diff --git a/ghy-order/src/main/java/com/ghy/order/service/impl/OrderDetailServiceImpl.java b/ghy-order/src/main/java/com/ghy/order/service/impl/OrderDetailServiceImpl.java
index ef7dea89..06cd130e 100644
--- a/ghy-order/src/main/java/com/ghy/order/service/impl/OrderDetailServiceImpl.java
+++ b/ghy-order/src/main/java/com/ghy/order/service/impl/OrderDetailServiceImpl.java
@@ -900,6 +900,23 @@ public class OrderDetailServiceImpl implements OrderDetailService {
if (orderDetail == null) {
throw new BaseException("子单不存在!");
}
+ // 主单
+ OrderMaster orderMaster = orderMasterService.selectById(orderDetail.getOrderMasterId());
+ // 主师傅
+ Worker workerMaster = workerService.selectById(orderMaster.getWorkerId());
+ // 三级类目
+ List
orderGoods = orderGoodsService.selectByOrderDetailId(orderDetailId);
+ if (CollectionUtils.isEmpty(orderGoods)) {
+ throw new BaseException("找不到子订单对应的商品");
+ }
+
+ Long goodsStandardId = orderGoods.get(0).getGoodsStandardId();
+ GoodsStandard goodsStandard = goodsStandardService.selectById(goodsStandardId);
+ // 第四级规格
+ DeptGoodsCategory childCategory = deptGoodsCategoryService.get(goodsStandard.getDeptGoodsCategoryId());
+ // 需要找第三级规格
+ DeptGoodsCategory deptGoodsCategory = deptGoodsCategoryService.selectOneByGoodsCategoryId(childCategory.getParentCategoryId());
+
FinancialChangeRecord param = new FinancialChangeRecord();
param.setPayStatus(0);
param.setOrderDetailId(orderDetailId);
@@ -918,6 +935,7 @@ public class OrderDetailServiceImpl implements OrderDetailService {
financialChangeRecord.setChangeMoney(changeMoney);
financialChangeRecord.setType(type);
financialChangeRecord.setRemark(remark);
+ this.buildSettle(financialChangeRecord, deptGoodsCategory, workerMaster);
affectedRows = financialChangeRecordService.update(financialChangeRecord);
} else {
// 创建改单记录
@@ -929,6 +947,7 @@ public class OrderDetailServiceImpl implements OrderDetailService {
financialChangeRecord.setPayStatus(0);
financialChangeRecord.setType(type);
financialChangeRecord.setRemark(remark);
+ this.buildSettle(financialChangeRecord, deptGoodsCategory, workerMaster);
affectedRows = financialChangeRecordService.insert(financialChangeRecord);
}
if (changeMoney.compareTo(BigDecimal.ZERO) != 0 && affectedRows != 1) {
@@ -938,6 +957,60 @@ public class OrderDetailServiceImpl implements OrderDetailService {
return affectedRows;
}
+ /**
+ * 构建各分销所得金额
+ * @param deptGoodsCategory 三级类目,用来计算扣点
+ * @param financialChangeRecord 加价记录
+ *
+ */
+ private void buildSettle(FinancialChangeRecord financialChangeRecord, DeptGoodsCategory deptGoodsCategory, Worker workerMaster){
+ // 一级分销追加扣点
+ BigDecimal saleRateOne = new BigDecimal(deptGoodsCategory.getOneRate());
+ saleRateOne = MoneyUtil.lt0(saleRateOne) ? BigDecimal.ZERO : saleRateOne;
+ BigDecimal saleOneMoney = financialChangeRecord.getChangeMoney().multiply(saleRateOne);
+ financialChangeRecord.setOneMoney(saleOneMoney);
+
+ // 二级分销追加扣点
+ BigDecimal saleRateTwo = new BigDecimal(deptGoodsCategory.getTwoRate());
+ saleRateTwo = MoneyUtil.lt0(saleRateTwo) ? BigDecimal.ZERO : saleRateTwo;
+ BigDecimal saleTwoMoney = financialChangeRecord.getChangeMoney().multiply(saleRateTwo);
+ financialChangeRecord.setTwoMoney(saleTwoMoney);
+
+ // 三级分销追加扣点
+ BigDecimal saleRateThree = new BigDecimal(deptGoodsCategory.getThreeRate());
+ saleRateThree = MoneyUtil.lt0(saleRateThree) ? BigDecimal.ZERO : saleRateThree;
+ BigDecimal saleThreeMoney = financialChangeRecord.getChangeMoney().multiply(saleRateThree);
+ financialChangeRecord.setThreeMoney(saleThreeMoney);
+
+ // 大师傅提成
+ BigDecimal teamRete = new BigDecimal(workerMaster.getLeaderTeamRate());
+ teamRete = MoneyUtil.lt0(teamRete) ? BigDecimal.ZERO : teamRete;
+ BigDecimal teamMoney = new BigDecimal(workerMaster.getLeaderTeamMoney());
+ teamMoney = MoneyUtil.lt0(teamMoney) ? BigDecimal.ZERO : teamMoney;
+ BigDecimal leaderMoney = financialChangeRecord.getChangeMoney().multiply(teamRete).add(teamMoney);
+ financialChangeRecord.setLeaderMoney(leaderMoney);
+
+ // 平台加价抽成
+ BigDecimal deptRate = new BigDecimal(deptGoodsCategory.getDeptRate());
+ deptRate = MoneyUtil.lt0(deptRate) ? BigDecimal.ZERO : deptRate;
+ BigDecimal deptMoney = MoneyUtil.lt0(deptGoodsCategory.getDeptMoney()) ? BigDecimal.ZERO : deptGoodsCategory.getDeptMoney();
+ BigDecimal deptChangeMoney = deptMoney.add(financialChangeRecord.getChangeMoney().multiply(deptRate));
+ financialChangeRecord.setDeptMoney(deptChangeMoney);
+
+ // 截留扣点
+ BigDecimal pcDeptRate = new BigDecimal(deptGoodsCategory.getPcDeptRate());
+ pcDeptRate = MoneyUtil.lt0(pcDeptRate) ? BigDecimal.ZERO : pcDeptRate;
+ BigDecimal pcDeptMoney = MoneyUtil.lt0(deptGoodsCategory.getPcDeptMoney()) ? BigDecimal.ZERO : deptGoodsCategory.getPcDeptMoney();
+ BigDecimal deptAddMoney = financialChangeRecord.getChangeMoney().multiply(pcDeptRate).add(pcDeptMoney);
+ financialChangeRecord.setDeptAddMoney(deptAddMoney);
+
+ // 师傅剩余服务金额
+ financialChangeRecord.setWorkerMoney(financialChangeRecord.getChangeMoney().subtract(saleOneMoney)
+ .subtract(saleTwoMoney).subtract(saleThreeMoney).subtract(leaderMoney)
+ .subtract(deptChangeMoney).subtract(deptAddMoney));
+
+ }
+
@Override
public int sureChange(Long financialChangeRecordId) {
return 0;
diff --git a/ghy-order/src/main/resources/mapper/order/OrderMasterMapper.xml b/ghy-order/src/main/resources/mapper/order/OrderMasterMapper.xml
index 1df0a335..519040ac 100644
--- a/ghy-order/src/main/resources/mapper/order/OrderMasterMapper.xml
+++ b/ghy-order/src/main/resources/mapper/order/OrderMasterMapper.xml
@@ -12,6 +12,7 @@
+
@@ -42,6 +43,7 @@
address_id,
order_type,
order_mode,
+ pay_mode,
order_status,
pay_type,
pay_status,
@@ -70,6 +72,7 @@
om.address_id,
om.order_type,
om.order_mode,
+ om.pay_mode,
om.order_status,
om.pay_type,
om.pay_status,
@@ -352,6 +355,7 @@
goods_id,
order_type,
order_mode,
+ pay_mode,
order_status,
pay_type,
pay_status,
@@ -371,6 +375,7 @@
#{goodsId},
#{orderType},
#{orderMode},
+ #{payMode},
#{orderStatus},
#{payType},
#{payStatus},
diff --git a/ghy-order/src/main/resources/mapper/order/OrderTemplateMapper.xml b/ghy-order/src/main/resources/mapper/order/OrderTemplateMapper.xml
index 3c896b8c..319f42de 100644
--- a/ghy-order/src/main/resources/mapper/order/OrderTemplateMapper.xml
+++ b/ghy-order/src/main/resources/mapper/order/OrderTemplateMapper.xml
@@ -18,6 +18,7 @@
+
@@ -75,6 +76,7 @@
customer_name,
customer_phone,
order_mode,
+ pay_mode,
price,
agency_fund,
information_fee,
@@ -97,6 +99,7 @@
#{customerName},
#{customerPhone},
#{orderMode},
+ #{payMode},
#{price},
#{agencyFund},
#{informationFee},
@@ -142,7 +145,7 @@
SELECT id, user_id, template_name,goods_brand, goods_specification, video_url, image_url,
- address_id, street_id, full_address, customer_name, customer_phone, order_mode,
+ address_id, street_id, full_address, customer_name, customer_phone, order_mode,pay_mode,
price, agency_fund, information_fee, bonus, logistics_code, need_wagon, need_carry, floor,
create_by, create_time, update_by, update_time, remark
FROM order_template
diff --git a/ghy-payment/src/main/java/com/ghy/payment/domain/FinancialChangeRecord.java b/ghy-payment/src/main/java/com/ghy/payment/domain/FinancialChangeRecord.java
index b6311efb..24cc170a 100644
--- a/ghy-payment/src/main/java/com/ghy/payment/domain/FinancialChangeRecord.java
+++ b/ghy-payment/src/main/java/com/ghy/payment/domain/FinancialChangeRecord.java
@@ -70,16 +70,24 @@ public class FinancialChangeRecord extends BaseEntity {
@Excel(name = "剩余分账金额")
private BigDecimal leftMoney;
- @Override
- public String toString() {
- return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
- .append("id", getId())
- .append("orderDetailId", getOrderDetailId())
- .append("changeMoney", getChangeMoney())
- .append("status", getStatus())
- .append("payStatus", getPayStatus())
- .append("type", getType())
- .append("leftMoney", getLeftMoney())
- .toString();
- }
+ @Excel(name = "一级分销")
+ private BigDecimal oneMoney;
+
+ @Excel(name = "二级分销")
+ private BigDecimal twoMoney;
+
+ @Excel(name = "三级分销")
+ private BigDecimal threeMoney;
+
+ @Excel(name = "平台扣点")
+ private BigDecimal deptMoney;
+
+ @Excel(name = "平台追加扣点")
+ private BigDecimal deptAddMoney;
+
+ @Excel(name = "团队师傅扣点")
+ private BigDecimal leaderMoney;
+
+ @Excel(name = "工作师傅剩余金额")
+ private BigDecimal workerMoney;
}
diff --git a/ghy-payment/src/main/resources/mapper/financial/FinancialChangeRecordMapper.xml b/ghy-payment/src/main/resources/mapper/financial/FinancialChangeRecordMapper.xml
index b6bd28c0..1c8ef742 100644
--- a/ghy-payment/src/main/resources/mapper/financial/FinancialChangeRecordMapper.xml
+++ b/ghy-payment/src/main/resources/mapper/financial/FinancialChangeRecordMapper.xml
@@ -11,6 +11,13 @@
+
+
+
+
+
+
+
@@ -59,6 +66,13 @@
order_master_id,
payment_id,
reverse_id,
+ one_money,
+ two_money,
+ three_money,
+ dept_money,
+ dept_add_money,
+ leader_money,
+ worker_money,
change_money,
status,
pay_status,
@@ -70,6 +84,13 @@
#{orderMasterId},
#{paymentId},
#{reverseId},
+ #{oneMoney},
+ #{twoMoney},
+ #{threeMoney},
+ #{deptMoney},
+ #{deptAddMoney},
+ #{leaderMoney},
+ #{workerMoney},
#{changeMoney},
#{status},
#{payStatus},
@@ -86,6 +107,13 @@
payment_id = #{paymentId},
reverse_id = #{reverseId},
change_money = #{changeMoney},
+ one_money = #{oneMoney},
+ two_money = #{twoMoney},
+ three_money = #{threeMoney},
+ dept_money = #{deptMoney},
+ dept_add_money = #{deptAddMoney},
+ leader_money = #{leaderMoney},
+ worker_money = #{workerMoney},
status = #{status},
pay_status = #{payStatus},
type = #{type},