From 6b6886f3f347f6644cc2f65a2cbdb0cd17fe9441 Mon Sep 17 00:00:00 2001 From: "kuang.yife" Date: Thu, 5 Oct 2023 01:24:05 +0800 Subject: [PATCH] =?UTF-8?q?=E5=8A=A0=E4=BB=B7=E6=8B=86=E5=88=86=E9=80=BB?= =?UTF-8?q?=E8=BE=91/=E4=B8=8B=E5=8D=95=E5=88=B0=E4=BB=98=E9=80=BB?= =?UTF-8?q?=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../web/controller/order/OrderController.java | 1 + .../templates/goods/standard/addTemplate.html | 11 ++- .../resources/templates/order/pc-master.html | 15 +++- .../com/ghy/order/domain/OrderMaster.java | 2 + .../com/ghy/order/domain/OrderTemplate.java | 1 + .../order/request/SysOrderAssignRequest.java | 2 + .../service/impl/OrderDetailServiceImpl.java | 73 +++++++++++++++++++ .../mapper/order/OrderMasterMapper.xml | 5 ++ .../mapper/order/OrderTemplateMapper.xml | 5 +- .../payment/domain/FinancialChangeRecord.java | 32 +++++--- .../financial/FinancialChangeRecordMapper.xml | 28 +++++++ 11 files changed, 156 insertions(+), 19 deletions(-) diff --git a/ghy-admin/src/main/java/com/ghy/web/controller/order/OrderController.java b/ghy-admin/src/main/java/com/ghy/web/controller/order/OrderController.java index 30f8b522..b3469d4b 100644 --- a/ghy-admin/src/main/java/com/ghy/web/controller/order/OrderController.java +++ b/ghy-admin/src/main/java/com/ghy/web/controller/order/OrderController.java @@ -230,6 +230,7 @@ public class OrderController extends BaseController { orderMaster.setGoodsId(goods.getGoodsId()); orderMaster.setPayType(0); orderMaster.setOrderMode(request.getOrderMode()); + orderMaster.setPayMode(request.getPayMode()); // 存在登陆用户的情况下 if(getSysUser() != null){ orderMaster.setCreateBy(getSysUser().getUserId().toString()); diff --git a/ghy-admin/src/main/resources/templates/goods/standard/addTemplate.html b/ghy-admin/src/main/resources/templates/goods/standard/addTemplate.html index 41467a06..5efef8f4 100644 --- a/ghy-admin/src/main/resources/templates/goods/standard/addTemplate.html +++ b/ghy-admin/src/main/resources/templates/goods/standard/addTemplate.html @@ -348,7 +348,7 @@
- +
@@ -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},