From 1321922b30833ab0075edc9be8fcf8526ab0f2df Mon Sep 17 00:00:00 2001 From: cun-nan <19819293608@163.com> Date: Tue, 16 Jan 2024 16:10:03 +0800 Subject: [PATCH 01/11] bug --- .../pagesRefuel/orderDetail/index.vue | 177 ++++++++++++++---- 1 file changed, 144 insertions(+), 33 deletions(-) diff --git a/gasStation-uni/pagesRefuel/orderDetail/index.vue b/gasStation-uni/pagesRefuel/orderDetail/index.vue index d484ed2dd..23b79610c 100644 --- a/gasStation-uni/pagesRefuel/orderDetail/index.vue +++ b/gasStation-uni/pagesRefuel/orderDetail/index.vue @@ -38,15 +38,6 @@ - - - 囤油卡 - (余额:{{refuelBalance}}L) - - - - {{oilCardRedece}}L - - @@ -54,7 +45,32 @@ (主卡余额:¥{{user.cardBalance}}) - -¥{{balanceRedece}} + + -¥{{balanceRedece}} + + + + + + + + + + + + + 囤油卡 + (余额:{{refuelBalance}}L) + + + + - {{oilCardRedece}}L + + + + + + @@ -64,19 +80,33 @@ - -¥{{fullRedece}} + + -¥{{fullRedece}} + + + + + + - + @@ -84,7 +114,14 @@ - -¥{{gradeRedece}} + + -¥{{gradeRedece}} + + + + + + 无优惠 @@ -189,6 +226,8 @@ isGradePreferential:false, // 是否存在可使用的满减或折扣优惠 isFullPreferential:false, + // 是否存在可使用的优惠券 + isCoupons:false, transferDTO:{ type:0, amount:0, @@ -198,11 +237,24 @@ }, fixingLevel:{}, isUseChildCard:false, + cardsList:[], + query: { + storeId: uni.getStorageSync("storeId"), + couponType: '', + useStatus: 0, + pageNo: 1, + pageSize: 10 + }, + checkBalance:false, + checkOilCard:false, + checkFull:false, + checkCoupon:false, + checkGrade:false, } }, onLoad(e) { this.orderNo = e.orderNo - // this.orderNo = "234520240113160238a6efad" + // this.orderNo = "2345202401161204280406d3" }, onShow() { this.getOilOrder(); @@ -211,13 +263,52 @@ }, methods: { + // 选择储值卡 + changeBalance(val){ + console.log("balance",this.checkBalance,val); + }, + // 选择囤油卡 + changeOilCard(val){ + console.log("oilcard",this.checkBalance,val); + if (val){ + // this.payAmount = this.deductAmount - this.gradeRedece + } + }, + // 选择满减或折扣 + changeFull(val){ + console.log("balance",this.checkBalance,val); + if (val){ + this.payAmount = this.deductAmount - this.fullRedece + }else{ + this.payAmount = this.deductAmount + } + }, + // 选择优惠券 + changeCoupon(val){ + console.log("balance",this.checkBalance,val); + if (val){ + this.payAmount = this.deductAmount - this.couponRedece + }else{ + this.payAmount = this.deductAmount + } + }, + // 选择会员等级 + changeGrade(val){ + console.log("balance",this.checkBalance,val); + if (val){ + this.payAmount = this.deductAmount - this.gradeRedece + }else{ + this.payAmount = this.deductAmount + } + }, + // 支付接口 payment(){ let map = { orderNo : this.orderNo, payAmount : this.payAmount, // payAmount : "0.01", - discountAmount : this.fullRedece+this.gradeRedece+this.couponRedece, + discountAmount : (this.fullRedece*100+this.gradeRedece*100+this.couponRedece*100)/100, oilCardAmount : JSON.stringify(this.refuelMoneyAfter), oilCardLiters : this.oilCardRedece, balanceAmount : this.balanceRedece, @@ -232,7 +323,6 @@ method: 'post', data: map, }).then(res => { - // console.log(res,_this.appltType) let payProvider = "wxpay" if (_this.appltType== "WECHAT"){ payProvider = "wxpay" @@ -244,9 +334,7 @@ url: "/business/allOrderInfo/orderStatus", method: 'post', data: {"orderNo":_this.orderNo,"status":"payFail"}, - }).then((ress)=>{ - console.log(ress); - }) + }).then((ress)=>{}) uni.showToast({ title:res.data.error, icon:"none" @@ -321,10 +409,13 @@ // 查看是否有可使用的囤油卡 chooseRefuelMoney(){ + console.log("oilCard"); let falg = false; for(let i = 0;i0 ){ + falg = true + } this.refuelBalance = this.refuelMoney[i].refuelMoney if (this.refuelMoney[i].refuelMoney>0){ this.isOilStorageCard = true @@ -335,23 +426,26 @@ }else{ this.oilCardRedece = this.refuelMoney[i].refuelMoney this.refuelMoneyAfter[i].refuelMoney = 0 - this.chooseCardBalance(1) + if (falg) { + this.chooseCardBalance(1) + } } } } if (falg == false) { this.chooseCardBalance(0) - this.chooseGrade(this.user.id,this.user.gradeId) + // this.chooseGrade(this.user.id,this.user.gradeId) } }, // 查看是否有可使用的储值卡金额 chooseCardBalance(val){ + console.log("balance"); if (this.user.cardBalance>0) { this.isStoreValueCard = true; if (val == 0) { // 没有使用囤油卡 - if (this.user.cardBalance >= this.oilOrder.orderAmount){ - this.balanceRedece = this.oilOrder.orderAmount + if (this.user.cardBalance >= (this.oilOrder.orderAmount - this.couponRedece)){ + this.balanceRedece = this.oilOrder.orderAmount - this.couponRedece } else { this.balanceRedece = this.user.cardBalance this.deductAmount = (this.oilOrder.orderAmount*100-this.balanceRedece*100)/100 @@ -380,6 +474,7 @@ }, // 查看是否有可使用的会员等级优惠 chooseGrade(userId,gradeId){ + console.log("userGrade"); let that = this; request({ url: "business/userManager/userGrade/isUse", @@ -676,6 +771,7 @@ }, // 查看是否有可使用的优惠活动 chooseFullOrCoupon(){ + console.log("full"); this.transferDTO.amount = this.deductAmount this.transferDTO.mtUserLevel = this.userGrade.id this.transferDTO.oilId = this.oilId @@ -685,7 +781,6 @@ method: 'post', data:_this.transferDTO, }).then((res) => { - // console.log(res) if (res.data.amount>0){ _this.payAmount = res.data.amount - _this.gradeRedece _this.fullRedece = res.data.favorableAmount @@ -693,10 +788,28 @@ } }) }, + // 查看是否有可使用的优惠券 + chooseCoupons(){ + console.log("coupons"); + request({ + url: 'business/marketingActivity/cardFavorable/applet', + method: 'get', + params: this.query + }).then(res => { + if (res.data.records) { + console.log(res.data.records); + this.cardsList = res.data.records + if (this.cardsList.length>0){ + this.couponRedece = this.cardsList[0].couponAmount + } + } + }) + }, // 计算用户应付金额 countPayMent(){ - this.payAmount = this.deductAmount - this.gradeRedece - this.fullRedece - this.couponRedece; + this.payAmount = this.deductAmount; + console.log("111",this.deductAmount, this.gradeRedece, this.fullRedece, this.couponRedece); }, // 根据店铺id查询用户信息 @@ -714,15 +827,14 @@ } _this.user = res.data.userVo; _this.user = res.data.userVo; - // console.log(res.data.userVo.refuelMoney); - if (res.data.userVo.refuelMoney!=null && res.data.userVo.refuelMoney!=""){ + if (res.data.userVo.refuelMoney){ _this.refuelMoney = JSON.parse(res.data.userVo.refuelMoney) _this.refuelMoneyAfter = JSON.parse(res.data.userVo.refuelMoney) _this.chooseRefuelMoney() }else{ _this.chooseCardBalance(0) - _this.chooseGrade(res.data.userVo.gradeId) } + _this.chooseGrade(res.data.userVo.id,res.data.userVo.gradeId) }) }, // 获取油品订单 @@ -735,12 +847,12 @@ orderNo: _this.orderNo }, }).then((res) => { - // console.log(res) if(res.data!=null){ _this.oilOrder = res.data _this.getStaffList(res.data.staffId) _this.getStore(res.data.storeId) _this.getOilNumber(res.data.storeId) + _this.chooseCoupons() _this.getUser(res.data.userId) } }) @@ -776,7 +888,6 @@ method: 'get', }).then((res) => { res.data.forEach(item => { - // console.log(item); if (item.oilName == _this.oilOrder.oils) { _this.oilPrice = item.gbPrice; _this.oilName = item.oilNames; From 82a739ce7555dbf6c9d37577a810f7cdb85d44c5 Mon Sep 17 00:00:00 2001 From: wangh <9483> Date: Tue, 16 Jan 2024 16:10:28 +0800 Subject: [PATCH 02/11] =?UTF-8?q?=E9=80=80=E6=AC=BE=E5=A4=84=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../convenienceSore/dto/LJGoodsDto.java | 3 + .../service/impl/LJGoodsServiceImpl.java | 1 + .../controller/AllOrderInfoController.java | 5 ++ .../order/service/AllOrderInfoService.java | 3 + .../service/impl/AllOrderInfoServiceImpl.java | 79 +++++++++++------ .../mapper/OilTankMapper.java | 2 +- .../mapper/xml/OilTankMapper.xml | 2 +- .../service/impl/OilTankServiceImpl.java | 2 +- fuintCashierWeb/src/api/cashier/refund.js | 7 ++ .../cashier/orderComponents/order_Cashier.vue | 45 ++++++++-- .../cashier/orderComponents/order_Goods.vue | 84 ++++++++++++++++--- .../cashier/orderComponents/order_Oil.vue | 59 +++++++++++-- .../orderComponents/order_Ordinary.vue | 6 +- .../cashier/orderComponents/order_Vip.vue | 6 +- 14 files changed, 243 insertions(+), 61 deletions(-) diff --git a/fuintBackend/fuint-application/src/main/java/com/fuint/business/convenienceSore/dto/LJGoodsDto.java b/fuintBackend/fuint-application/src/main/java/com/fuint/business/convenienceSore/dto/LJGoodsDto.java index c3b407af4..a3bf8439f 100644 --- a/fuintBackend/fuint-application/src/main/java/com/fuint/business/convenienceSore/dto/LJGoodsDto.java +++ b/fuintBackend/fuint-application/src/main/java/com/fuint/business/convenienceSore/dto/LJGoodsDto.java @@ -12,5 +12,8 @@ public class LJGoodsDto extends LJGoods { // 变动原因 private String document; + private String oddNumber; + + } diff --git a/fuintBackend/fuint-application/src/main/java/com/fuint/business/convenienceSore/service/impl/LJGoodsServiceImpl.java b/fuintBackend/fuint-application/src/main/java/com/fuint/business/convenienceSore/service/impl/LJGoodsServiceImpl.java index 562f31aac..59fe44af6 100644 --- a/fuintBackend/fuint-application/src/main/java/com/fuint/business/convenienceSore/service/impl/LJGoodsServiceImpl.java +++ b/fuintBackend/fuint-application/src/main/java/com/fuint/business/convenienceSore/service/impl/LJGoodsServiceImpl.java @@ -257,6 +257,7 @@ public class LJGoodsServiceImpl extends ServiceImpl impl stockTrack.setStoreId(goods.getStoreId()); stockTrack.setDocument(goods.getDocument()); stockTrack.setChangeNumber(goods.getNumberOfChanges()); + stockTrack.setOddNumber(goods.getOddNumber()); int i = trackService.insertStockTrack(stockTrack); return i>0; } diff --git a/fuintBackend/fuint-application/src/main/java/com/fuint/business/order/controller/AllOrderInfoController.java b/fuintBackend/fuint-application/src/main/java/com/fuint/business/order/controller/AllOrderInfoController.java index 130a6341f..abe68fe90 100644 --- a/fuintBackend/fuint-application/src/main/java/com/fuint/business/order/controller/AllOrderInfoController.java +++ b/fuintBackend/fuint-application/src/main/java/com/fuint/business/order/controller/AllOrderInfoController.java @@ -71,4 +71,9 @@ public class AllOrderInfoController extends BaseController { public ResponseObject refund(@RequestBody Map map){ return getSuccessResult(allOrderInfoService.refund(map)); } + + @GetMapping("/getOrderInfo") + public ResponseObject getOrderInfo(String orderNo, String type) { + return getSuccessResult(allOrderInfoService.getOrderInfo(orderNo,type)); + } } diff --git a/fuintBackend/fuint-application/src/main/java/com/fuint/business/order/service/AllOrderInfoService.java b/fuintBackend/fuint-application/src/main/java/com/fuint/business/order/service/AllOrderInfoService.java index bfb51dade..2968f2251 100644 --- a/fuintBackend/fuint-application/src/main/java/com/fuint/business/order/service/AllOrderInfoService.java +++ b/fuintBackend/fuint-application/src/main/java/com/fuint/business/order/service/AllOrderInfoService.java @@ -60,4 +60,7 @@ public interface AllOrderInfoService { public int getOrderNum(Integer StoreId); + Integer getOrderInfo(String orderNo, String type); + + } diff --git a/fuintBackend/fuint-application/src/main/java/com/fuint/business/order/service/impl/AllOrderInfoServiceImpl.java b/fuintBackend/fuint-application/src/main/java/com/fuint/business/order/service/impl/AllOrderInfoServiceImpl.java index 4cb1657bf..f9c390c69 100644 --- a/fuintBackend/fuint-application/src/main/java/com/fuint/business/order/service/impl/AllOrderInfoServiceImpl.java +++ b/fuintBackend/fuint-application/src/main/java/com/fuint/business/order/service/impl/AllOrderInfoServiceImpl.java @@ -24,7 +24,9 @@ import com.fuint.business.order.mapper.AllOrderInfoMapper; import com.fuint.business.order.service.*; import com.fuint.business.order.vo.AllOrderInfoVo; import com.fuint.business.order.vo.OrderGoodsVo; +import com.fuint.business.petrolStationManagement.entity.OilGun; import com.fuint.business.petrolStationManagement.entity.OilTracking; +import com.fuint.business.petrolStationManagement.service.OilGunService; import com.fuint.business.petrolStationManagement.service.OilTankService; import com.fuint.business.petrolStationManagement.service.OilTrackingService; import com.fuint.repository.mapper.MtOpenGiftMapper; @@ -32,6 +34,7 @@ import com.fuint.repository.model.MtOrderGoods; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; import java.math.BigDecimal; @@ -133,28 +136,29 @@ public class AllOrderInfoServiceImpl extends ServiceImpl map) { - Map refund = null; + Map refund = new HashMap<>(); try { AllOrderInfo allOrderInfo = selectAllOrderInfoByOrderNo(map.get("orderNo")); if (ObjectUtil.isEmpty(map.get("type"))) { throw new RuntimeException("该订单不支持退款,无退款类别!"); - }else if ("oilOrder".equals(map.get("type")) || "goodsOrder".equals(map.get("type"))) { + }else if ("canRefund".equals(map.get("type"))) { // 根据订单号查询订单 if ("APPLET_CODE".equals(allOrderInfo.getPayType())) { // 储值卡不支持退款 throw new RuntimeException("该订单不支持退款!"); } - // 判断是否有退款金额 - if (ObjectUtil.isNotEmpty(allOrderInfo.getPayMoney()) && ObjectUtil.isNotEmpty(map.get("refundAmt"))) { + // 判断是否有退款金额 && ObjectUtil.isNotEmpty(map.get("refundAmt") // 目前全退 + if (ObjectUtil.isNotEmpty(allOrderInfo.getPayMoney())) { // 总金额(金钱的传值需要×100) BigDecimal payMoneyBig = new BigDecimal(allOrderInfo.getPayMoney().toString()); BigDecimal payMoneyBefBig = payMoneyBig.multiply(new BigDecimal("100")); // 退款金额(暂不支持部分退款) // BigDecimal refundAmtBig = new BigDecimal(map.get("refundAmt")); // BigDecimal refundAmtBefBig = refundAmtBig.multiply(new BigDecimal("100")); - map.put("totalAmt",payMoneyBefBig.toString()); - map.put("refundAmt",payMoneyBefBig.toString()); + map.put("totalAmt",payMoneyBefBig.stripTrailingZeros().toString()); + map.put("refundAmt",payMoneyBefBig.stripTrailingZeros().toString()); map.put("orderNo",allOrderInfo.getOrderNo()); map.put("payType",allOrderInfo.getPayType()); @@ -169,15 +173,20 @@ public class AllOrderInfoServiceImpl extends ServiceImpl oilOrders = oilOrderService.selectOilOrder(oilOrder.getOrderNo()); // 获取油罐数据 for (OilOrder order : oilOrders) { + OilGun oilGun = oilGunService.queryById(Integer.valueOf(order.getOilGunNum())); // 处理库存 - oilTankService.addStoredQuantity(order.getTankId(),order.getOilNum()); + oilTankService.addStoredQuantity(oilGun.getTankId(),order.getOilNum()); // 处理库存跟踪 OilTracking oilTracking = new OilTracking(); oilTracking.setDocument("油品退款"); - oilTracking.setQuantityChange(-order.getOilNum()); + oilTracking.setQuantityChange(order.getOilNum()); oilTracking.setStoreId(order.getStoreId()); - oilTracking.setTankId(order.getTankId()); + oilTracking.setTankId(oilGun.getTankId()); + oilTracking.setOrderNumber(refundOrderNo); OilTracking insert = oilTrackingService.insert(oilTracking); } -/** - * todo - * 油品总价计算 - */ + } // 处理商品 - private void disposeGoods(LJOrder ljOrder) { + private void disposeGoods(LJOrder ljOrder,String refundOrderNo) { // 处理订单状态 ljOrder.setStatus("refund"); ljOrderService.updateById(ljOrder); @@ -261,11 +270,33 @@ public class AllOrderInfoServiceImpl extends ServiceImpl - discounted_price = #{discountedPrice} + discounted_price = #{discountedPrice}, update_time = NOW() where id = #{tankId} diff --git a/fuintBackend/fuint-application/src/main/java/com/fuint/business/petrolStationManagement/service/impl/OilTankServiceImpl.java b/fuintBackend/fuint-application/src/main/java/com/fuint/business/petrolStationManagement/service/impl/OilTankServiceImpl.java index 4e421f948..dd7542e34 100644 --- a/fuintBackend/fuint-application/src/main/java/com/fuint/business/petrolStationManagement/service/impl/OilTankServiceImpl.java +++ b/fuintBackend/fuint-application/src/main/java/com/fuint/business/petrolStationManagement/service/impl/OilTankServiceImpl.java @@ -196,7 +196,7 @@ public class OilTankServiceImpl implements OilTankService { // 单价*油量 BigDecimal disPrice = new BigDecimal(oilTank.getDiscountedPrice().toString()); BigDecimal multiply = disPrice.multiply(new BigDecimal(changeNum)); - return this.oilTankDao.addStoredQuantityByLock(tankId, changeNum, multiply.doubleValue(),null) >0 ; + return this.oilTankDao.addStoredQuantityByLock(tankId, changeNum, Double.valueOf(multiply.toString()),null) >0 ; } /** diff --git a/fuintCashierWeb/src/api/cashier/refund.js b/fuintCashierWeb/src/api/cashier/refund.js index 09a070a28..5609d3c54 100644 --- a/fuintCashierWeb/src/api/cashier/refund.js +++ b/fuintCashierWeb/src/api/cashier/refund.js @@ -8,3 +8,10 @@ export function refundApi(data) { data: data }) } +export function getOrderInfoApi(data) { + return request({ + url: '/business/allOrderInfo/getOrderInfo', + method: 'get', + params: data + }) +} diff --git a/fuintCashierWeb/src/views/cashier/orderComponents/order_Cashier.vue b/fuintCashierWeb/src/views/cashier/orderComponents/order_Cashier.vue index 7a2cd9ade..5a4dbc67b 100644 --- a/fuintCashierWeb/src/views/cashier/orderComponents/order_Cashier.vue +++ b/fuintCashierWeb/src/views/cashier/orderComponents/order_Cashier.vue @@ -110,8 +110,9 @@ @@ -129,6 +130,7 @@ @click="patchwork(scope.row)" type="primary" plain round>补打 退款 @@ -356,23 +358,48 @@ import {refundApi} from "@/api/cashier/refund"; }, // 退款 handleRefund(id){ - this.dialogRefund = true; - cashierOrder(id).then( response => { - this.cashierOrder = response.data - }) + //退款确定 + this.$confirm('是否将该收银台下的订单全部退款, 是否继续?', '提示', { + confirmButtonText: '确定', + cancelButtonText: '取消', + type: 'warning' + }).then(() => { + this.dialogRefund = true; + cashierOrder(id).then( response => { + this.cashierOrder = response.data + if (response.data.status === "refund") { + this.$message({ + type: 'info', + message: '该订单已经退款' + }); + this.dialogRefund = false; + } + }) + }).catch(() => { + this.$message({ + type: 'info', + message: '已取消删除' + }); + }); }, refundConfirmed() { this.dialogRefund = false; - // 退款确定 - // cashierOrder console.log("cashierOrder",this.cashierOrder) let map={ orderNo: this.cashierOrder.orderNo, storeId: this.cashierOrder.storeId, - type: "cashierOrder" + refundRemark:this.radio1 +"-"+ this.refundRemark, + type: "canRefund" } refundApi(map).then(res=>{ + this.$message({ + type: 'info', + message: '退款成功' + }); + this.getList(); + this.getOrderStatistics(); + this.getStaffList(); }) }, diff --git a/fuintCashierWeb/src/views/cashier/orderComponents/order_Goods.vue b/fuintCashierWeb/src/views/cashier/orderComponents/order_Goods.vue index 5eb7d488a..d5bab2916 100644 --- a/fuintCashierWeb/src/views/cashier/orderComponents/order_Goods.vue +++ b/fuintCashierWeb/src/views/cashier/orderComponents/order_Goods.vue @@ -140,6 +140,7 @@ @@ -154,17 +155,14 @@ {{ parseTime(scope.row.payTime) }} - - - - - - - - - - - + + + @@ -225,10 +223,12 @@ diff --git a/fuintAdmin/src/views/order/order_Ordinary.vue b/fuintAdmin/src/views/order/order_Ordinary.vue index 4aa743d38..c94070ce2 100644 --- a/fuintAdmin/src/views/order/order_Ordinary.vue +++ b/fuintAdmin/src/views/order/order_Ordinary.vue @@ -1,6 +1,6 @@