From 0d8b60c9ed72d996280688a82ffa8eac3afbbff9 Mon Sep 17 00:00:00 2001
From: puzhibing <393733352@qq.com>
Date: 星期五, 02 六月 2023 15:28:24 +0800
Subject: [PATCH] 新增加充值和提现功能
---
driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/service/impl/OrderServiceImpl.java | 119 +++++++++++++++++++++++++++++++++++++----------------------
1 files changed, 75 insertions(+), 44 deletions(-)
diff --git a/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/service/impl/OrderServiceImpl.java b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/service/impl/OrderServiceImpl.java
index 797f285..47b1267 100644
--- a/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/service/impl/OrderServiceImpl.java
+++ b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/service/impl/OrderServiceImpl.java
@@ -136,7 +136,7 @@
*/
int count = this.selectCount(new EntityWrapper<Order>().eq("userPhone", addOrderWarpper.getPhone()).eq("status", 1).in("state", Arrays.asList(101, 102, 103, 104, 105, 106, 201)));
if(count > 0){
- return ResultUtil.error("该用户还有未完成的订单");
+ return ResultUtil.error("该用户还有未完成的订单", "");
}
Driver driver = driverService.selectById(uid);
DriverWork driverWork = driverWorkService.selectOne(new EntityWrapper<DriverWork>().eq("driverId", uid).eq("status", 1));
@@ -168,7 +168,7 @@
if(ToolUtil.isNotEmpty(addOrderWarpper.getEndAddress())){
Map<String, String> distance = MapUtil.getDistance(order.getStartLng() + "," + order.getStartLat(), order.getEndLng() + "," + order.getEndLat(), 1);
if(null == distance){
- return ResultUtil.error("获取预估距离出错");
+ return ResultUtil.error("获取预估距离出错", "");
}
d = Double.valueOf(distance.get("distance")) / 1000;
order.setEstimatedMileage(d);
@@ -929,7 +929,11 @@
pushOrderInfoWarpper.setDriverLat(split[1]);
pushOrderInfoWarpper.setDriverLng(split[0]);
}
- pushOrderInfoWarpper.setWaitTime(order.getWaitTime());
+ int w = 0;
+ if(null != order.getStartWaitTime()){
+ w = Double.valueOf((System.currentTimeMillis() - order.getStartWaitTime().getTime()) / 60000).intValue();
+ }
+ pushOrderInfoWarpper.setWaitTime(order.getWaitTime() + w);
pushOrderInfoWarpper.setState(order.getState());
pushOrderInfoWarpper.setActualMileage(Double.valueOf(order.getActualMileage() / 1000));
pushOrderInfoWarpper.setTravelTime(0);
@@ -1147,23 +1151,19 @@
Order order = this.selectById(orderId);
order.setState(state);
- // TODO: 2023/5/18 临时
- payType = 1;
- if(state == 108){
- payType = 2;
- }
-
if(payType == 2 && state == 107){
+ order.setPayType(3);
Coupon coupon = userToCouponService.queryCoupon(order.getUserId(), order.getOrderMoney());
if(null != coupon){
order.setCouponId(coupon.getId());
order.setDiscountAmount(coupon.getCouponPreferentialAmount());
order.setPayMoney(order.getOrderMoney() - coupon.getCouponPreferentialAmount());
+ }else{
+ order.setPayMoney(order.getOrderMoney());
}
}
if(payType == 2 && state == 108){
- order.setPayType(3);
order.setPayTime(new Date());
if(null != order.getCouponId()){
UserToCoupon userToCoupon = userToCouponService.selectById(order.getCouponId());
@@ -1171,9 +1171,6 @@
userToCoupon.setValidCount(userToCoupon.getValidCount() - 1);
userToCouponService.updateById(userToCoupon);
Coupon coupon = couponService.selectById(userToCoupon.getCouponId());
- order.setPayMoney(order.getPayMoney() - coupon.getCouponPreferentialAmount());
- order.setCouponId(coupon.getId());
- order.setDiscountedPrice(coupon.getCouponPreferentialAmount());
Driver driver = driverService.selectById(order.getDriverId());
AccountChangeDetail accountChangeDetail = new AccountChangeDetail();
@@ -1181,13 +1178,13 @@
accountChangeDetail.setUserType(2);
accountChangeDetail.setUserId(order.getDriverId());
accountChangeDetail.setCreateTime(new Date());
- accountChangeDetail.setOldData(driver.getCouponBalance());
+ accountChangeDetail.setOldData(driver.getBalance() + driver.getBackgroundBalance() + driver.getCouponBalance() + driver.getCommission());
accountChangeDetail.setType(1);
accountChangeDetail.setChangeType(7);
accountChangeDetail.setOrderId(order.getId());
accountChangeDetail.setExplain("优惠券收入");
driver.setCouponBalance(driver.getCouponBalance() + coupon.getCouponPreferentialAmount());
- accountChangeDetail.setNewData(driver.getCouponBalance());
+ accountChangeDetail.setNewData(driver.getBalance() + driver.getBackgroundBalance() + driver.getCouponBalance() + driver.getCommission());
driverService.updateById(driver);
accountChangeDetailService.insert(accountChangeDetail);
}
@@ -1195,7 +1192,7 @@
}
this.updateById(order);
- if(state == 108){//计算抽成
+ if(payType == 2 && state == 108){//计算抽成
saveRevenue(order);
}
@@ -1247,11 +1244,11 @@
accountChangeDetail.setUserId(driver1.getId());
accountChangeDetail.setType(1);
accountChangeDetail.setChangeType(5);
- accountChangeDetail.setOldData(driver1.getCommission());
+ accountChangeDetail.setOldData(driver1.getBalance() + driver1.getBackgroundBalance() + driver1.getCouponBalance() + driver1.getCommission());
accountChangeDetail.setExplain("订单分佣收入");
accountChangeDetail.setCreateTime(new Date());
driver1.setCommission(driver1.getCommission() + num1);
- accountChangeDetail.setNewData(driver1.getCommission());
+ accountChangeDetail.setNewData(driver1.getBalance() + driver1.getBackgroundBalance() + driver1.getCouponBalance() + driver1.getCommission());
driverService.updateById(driver1);
accountChangeDetailService.saveData(accountChangeDetail);
@@ -1294,11 +1291,11 @@
accountChangeDetail.setUserId(driver1.getId());
accountChangeDetail.setType(1);
accountChangeDetail.setChangeType(5);
- accountChangeDetail.setOldData(driver1.getCommission());
+ accountChangeDetail.setOldData(driver1.getBalance() + driver1.getBackgroundBalance() + driver1.getCouponBalance() + driver1.getCommission());
accountChangeDetail.setExplain("订单分佣收入");
accountChangeDetail.setCreateTime(new Date());
driver1.setCommission(driver1.getCommission() + num5);
- accountChangeDetail.setNewData(driver1.getCommission());
+ accountChangeDetail.setNewData(driver1.getBalance() + driver1.getBackgroundBalance() + driver1.getCouponBalance() + driver1.getCommission());
driverService.updateById(driver1);
accountChangeDetailService.saveData(accountChangeDetail);
num3 = (num3 >= num5 ? num3 - num5 : 0);
@@ -1320,11 +1317,11 @@
accountChangeDetail.setUserId(driver2.getId());
accountChangeDetail.setType(1);
accountChangeDetail.setChangeType(5);
- accountChangeDetail.setOldData(driver2.getCommission());
+ accountChangeDetail.setOldData(driver2.getBalance() + driver2.getBackgroundBalance() + driver2.getCouponBalance() + driver2.getCommission());
accountChangeDetail.setExplain("订单分佣收入");
accountChangeDetail.setCreateTime(new Date());
driver2.setCommission(driver2.getCommission() + num6);
- accountChangeDetail.setNewData(driver2.getCommission());
+ accountChangeDetail.setNewData(driver2.getBalance() + driver2.getBackgroundBalance() + driver2.getCouponBalance() + driver2.getCommission());
driverService.updateById(driver2);
accountChangeDetailService.saveData(accountChangeDetail);
num3 = (num3 >= num6 ? num3 - num6 : 0);
@@ -1346,11 +1343,11 @@
accountChangeDetail.setUserId(driver3.getId());
accountChangeDetail.setType(1);
accountChangeDetail.setChangeType(5);
- accountChangeDetail.setOldData(driver3.getCommission());
+ accountChangeDetail.setOldData(driver3.getBalance() + driver3.getBackgroundBalance() + driver3.getCouponBalance() + driver3.getCommission());
accountChangeDetail.setExplain("订单分佣收入");
accountChangeDetail.setCreateTime(new Date());
driver3.setCommission(driver3.getCommission() + num7);
- accountChangeDetail.setNewData(driver3.getCommission());
+ accountChangeDetail.setNewData(driver3.getBalance() + driver3.getBackgroundBalance() + driver3.getCouponBalance() + driver3.getCommission());
driverService.updateById(driver3);
accountChangeDetailService.saveData(accountChangeDetail);
num3 = (num3 >= num7 ? num3 - num7 : 0);
@@ -1375,11 +1372,11 @@
accountChangeDetail.setUserId(driver1.getId());
accountChangeDetail.setType(1);
accountChangeDetail.setChangeType(5);
- accountChangeDetail.setOldData(driver1.getCommission());
+ accountChangeDetail.setOldData(driver1.getBalance() + driver1.getBackgroundBalance() + driver1.getCouponBalance() + driver1.getCommission());
accountChangeDetail.setExplain("订单分佣收入");
accountChangeDetail.setCreateTime(new Date());
driver1.setCommission(driver1.getCommission() + num3_);
- accountChangeDetail.setNewData(driver1.getCommission());
+ accountChangeDetail.setNewData(driver1.getBalance() + driver1.getBackgroundBalance() + driver1.getCouponBalance() + driver1.getCommission());
driverService.updateById(driver1);
accountChangeDetailService.saveData(accountChangeDetail);
num3 = (num3 >= num3_ ? num3 - num3_ : 0);
@@ -1401,11 +1398,11 @@
accountChangeDetail.setUserId(driver2.getId());
accountChangeDetail.setType(1);
accountChangeDetail.setChangeType(5);
- accountChangeDetail.setOldData(driver2.getCommission());
+ accountChangeDetail.setOldData(driver2.getBalance() + driver2.getBackgroundBalance() + driver2.getCouponBalance() + driver2.getCommission());
accountChangeDetail.setExplain("订单分佣收入");
accountChangeDetail.setCreateTime(new Date());
driver2.setCommission(driver2.getCommission() + num4);
- accountChangeDetail.setNewData(driver2.getCommission());
+ accountChangeDetail.setNewData(driver2.getBalance() + driver2.getBackgroundBalance() + driver2.getCouponBalance() + driver2.getCommission());
driverService.updateById(driver2);
accountChangeDetailService.saveData(accountChangeDetail);
num3 = (num3 >= num4 ? num3 - num4 : 0);
@@ -1430,11 +1427,11 @@
accountChangeDetail.setUserId(driver1.getId());
accountChangeDetail.setType(1);
accountChangeDetail.setChangeType(5);
- accountChangeDetail.setOldData(driver1.getCommission());
+ accountChangeDetail.setOldData(driver1.getBalance() + driver1.getBackgroundBalance() + driver1.getCouponBalance() + driver1.getCommission());
accountChangeDetail.setExplain("订单分佣收入");
accountChangeDetail.setCreateTime(new Date());
driver1.setCommission(driver1.getCommission() + num2_);
- accountChangeDetail.setNewData(driver1.getCommission());
+ accountChangeDetail.setNewData(driver1.getBalance() + driver1.getBackgroundBalance() + driver1.getCouponBalance() + driver1.getCommission());
driverService.updateById(driver1);
accountChangeDetailService.saveData(accountChangeDetail);
num3 = (num3 >= num2_ ? num3 - num2_ : 0);
@@ -1464,11 +1461,11 @@
accountChangeDetail.setType(1);
accountChangeDetail.setChangeType(9);
accountChangeDetail.setOrderId(order.getId());
- accountChangeDetail.setOldData(driver.getBalance());
+ accountChangeDetail.setOldData(driver.getBalance() + driver.getBackgroundBalance() + driver.getCouponBalance() + driver.getCommission());
accountChangeDetail.setExplain("线下收款服务费支出");
accountChangeDetail.setCreateTime(new Date());
driver.setBalance(driver.getBalance() - n);
- accountChangeDetail.setNewData(driver.getBalance());
+ accountChangeDetail.setNewData(driver.getBalance() + driver.getBackgroundBalance() + driver.getCouponBalance() + driver.getCommission());
driverService.updateById(driver);
accountChangeDetailService.saveData(accountChangeDetail);
}
@@ -1521,9 +1518,7 @@
List<Integer> state = Arrays.asList(107, 108, 109);
int count = this.selectCount(new EntityWrapper<Order>().eq("driverId", driverId).in("state", state).eq("status", 1));
performanceSummaryWarpper.setTotalOrder(count);
- List<PerformanceRankingWarpper> list = new ArrayList<>();
int position = 0;
- Double d = 0D;
List<PerformanceRankingWarpper> performanceRankingWarppers = null;
if(type == 1){//订单量
performanceRankingWarppers = this.baseMapper.queryDriverRank(time, dayType);
@@ -1532,24 +1527,17 @@
performanceRankingWarppers = revenueService.queryDriverRank(2, time, dayType);
}
if(type == 3){//收入
- performanceRankingWarppers = revenueService.queryDriverRank(null, time, dayType);
+ performanceRankingWarppers = revenueService.queryDriverRank(1, time, dayType);
}
for (int i = 0; i < performanceRankingWarppers.size(); i++) {
PerformanceRankingWarpper performanceRankingWarpper = performanceRankingWarppers.get(i);
- Double amountOfData = performanceRankingWarpper.getAmountOfData();
- if(amountOfData.compareTo(d) != 0){
- position++;
- d = amountOfData;
- }
- if(position <= 10){
- list.add(performanceRankingWarpper);
- }
if(performanceRankingWarpper.getDriverId().compareTo(driverId) == 0){
+ position = i + 1;
break;
}
}
performanceSummaryWarpper.setPosition(position);
- performanceSummaryWarpper.setList(list);
+ performanceSummaryWarpper.setList(performanceRankingWarppers.size() > 10 ? performanceRankingWarppers.subList(0, 10) : performanceRankingWarppers.subList(0, performanceRankingWarppers.size()));
return performanceSummaryWarpper;
}
@@ -1632,4 +1620,47 @@
list.add(myAchievementWarpper);
return list;
}
+
+
+ /**
+ * 主动完成线下收款
+ */
+ @Override
+ public void completeCollection() {
+ List<Order> orders = this.selectList(new EntityWrapper<Order>().eq("state", 107).eq("status", 1).eq("payType", 3));
+ for (Order order : orders) {
+ order.setPayTime(new Date());
+ if(null != order.getCouponId()){
+ UserToCoupon userToCoupon = userToCouponService.selectById(order.getCouponId());
+ if(userToCoupon.getValidCount() > 0){
+ userToCoupon.setValidCount(userToCoupon.getValidCount() - 1);
+ userToCouponService.updateById(userToCoupon);
+ Coupon coupon = couponService.selectById(userToCoupon.getCouponId());
+
+ Driver driver = driverService.selectById(order.getDriverId());
+ AccountChangeDetail accountChangeDetail = new AccountChangeDetail();
+ accountChangeDetail.setCode(System.currentTimeMillis() + UUIDUtil.getNumberRandom(3));
+ accountChangeDetail.setUserType(2);
+ accountChangeDetail.setUserId(order.getDriverId());
+ accountChangeDetail.setCreateTime(new Date());
+ accountChangeDetail.setOldData(driver.getBalance() + driver.getBackgroundBalance() + driver.getCouponBalance() + driver.getCommission());
+ accountChangeDetail.setType(1);
+ accountChangeDetail.setChangeType(7);
+ accountChangeDetail.setOrderId(order.getId());
+ accountChangeDetail.setExplain("优惠券收入");
+ driver.setCouponBalance(driver.getCouponBalance() + coupon.getCouponPreferentialAmount());
+ accountChangeDetail.setNewData(driver.getBalance() + driver.getBackgroundBalance() + driver.getCouponBalance() + driver.getCommission());
+ driverService.updateById(driver);
+ accountChangeDetailService.insert(accountChangeDetail);
+ }
+ }
+ this.updateById(order);
+
+ try {
+ saveRevenue(order);
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ }
+ }
}
--
Gitblit v1.7.1