From 74aaaab01e109d3f408cf586ea2c4661872190f1 Mon Sep 17 00:00:00 2001
From: xuhy <3313886187@qq.com>
Date: 星期二, 05 八月 2025 18:40:42 +0800
Subject: [PATCH] 先用后付

---
 DriverZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/DriverAlipayServiceImpl.java |  127 ++++++++++++++++++++++++++++++++---------
 1 files changed, 98 insertions(+), 29 deletions(-)

diff --git a/DriverZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/DriverAlipayServiceImpl.java b/DriverZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/DriverAlipayServiceImpl.java
index 7afd8c7..967a7b8 100644
--- a/DriverZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/DriverAlipayServiceImpl.java
+++ b/DriverZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/DriverAlipayServiceImpl.java
@@ -1,38 +1,21 @@
 package com.stylefeng.guns.modular.system.service.impl;
 
-import com.alibaba.fastjson.JSONArray;
-import com.alibaba.fastjson.JSONObject;
-import com.baomidou.mybatisplus.mapper.EntityWrapper;
 import com.baomidou.mybatisplus.service.impl.ServiceImpl;
-import com.stylefeng.guns.core.common.constant.JwtConstants;
-import com.stylefeng.guns.core.shiro.ShiroKit;
-import com.stylefeng.guns.core.shiro.ShiroUser;
-import com.stylefeng.guns.core.util.JwtTokenUtil;
-import com.stylefeng.guns.core.util.ToolUtil;
-import com.stylefeng.guns.modular.smallLogistics.server.IOrderLogisticsService;
-import com.stylefeng.guns.modular.system.dao.*;
-import com.stylefeng.guns.modular.system.model.*;
-import com.stylefeng.guns.modular.system.service.*;
-import com.stylefeng.guns.modular.system.util.*;
-import com.stylefeng.guns.modular.system.warpper.ActivityWarpper;
-import com.stylefeng.guns.modular.system.warpper.BaseWarpper;
-import com.stylefeng.guns.modular.system.warpper.LoginWarpper;
-import com.stylefeng.guns.modular.system.warpper.RegisteredWarpper;
-import com.stylefeng.guns.modular.taxi.service.IOrderTaxiService;
-import org.apache.shiro.authc.SimpleAuthenticationInfo;
-import org.apache.shiro.authc.UsernamePasswordToken;
-import org.apache.shiro.authc.credential.HashedCredentialsMatcher;
-import org.apache.shiro.crypto.hash.Md5Hash;
-import org.apache.shiro.util.ByteSource;
+import com.stylefeng.guns.core.util.DateUtil;
+import com.stylefeng.guns.modular.system.dao.DriverAlipayMapper;
+import com.stylefeng.guns.modular.system.dao.DriverMapper;
+import com.stylefeng.guns.modular.system.dao.WithdrawalMapper;
+import com.stylefeng.guns.modular.system.model.Driver;
+import com.stylefeng.guns.modular.system.model.DriverAlipay;
+import com.stylefeng.guns.modular.system.model.Withdrawal;
+import com.stylefeng.guns.modular.system.service.IDriverAlipayService;
+import com.stylefeng.guns.modular.system.util.ResultUtil;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Service;
 
-import javax.annotation.Resource;
-import javax.servlet.http.HttpServletRequest;
 import java.math.BigDecimal;
-import java.text.SimpleDateFormat;
-import java.util.*;
+import java.util.Date;
+import java.util.List;
 
 
 @Service
@@ -40,6 +23,10 @@
 
     @Autowired
     private DriverAlipayMapper driverAlipayMapper;
+    @Autowired
+    private DriverMapper driverMapper;
+    @Autowired
+    private WithdrawalMapper withdrawalMapper;
 
     @Override
     public ResultUtil saveAlipay(String userName, String account, Integer driverId) {
@@ -74,7 +61,7 @@
     public ResultUtil delAlipay(Integer id, Integer driverId) {
         DriverAlipay driverAlipay = this.selectById(id);
         if(driverAlipay.getDriverId().compareTo(driverId) != 0){
-            return ResultUtil.error("你无权删除此卡号");
+            return ResultUtil.error("你无权删除此账号");
         }
         this.deleteById(id);
         return ResultUtil.success();
@@ -85,4 +72,86 @@
         pageNum = (pageNum - 1) * size;
         return driverAlipayMapper.queryAlipay(pageNum, size, driverId);
     }
+
+    @Override
+    public ResultUtil aliWithdrawal(Double money, Integer id, Integer uid, Integer type) {
+        if(money.compareTo(0D) <= 0){
+            return ResultUtil.error("提现金额必须大于0");
+        }
+        Driver driver = driverMapper.selectById(uid);
+        Integer withdrawalRule = driverMapper.getWithdrawalRule();
+        if(withdrawalRule==null){
+            return ResultUtil.error("暂未设置提现时间,请联系平台");
+        }
+        String week =withdrawalRule==1?"星期一":
+                withdrawalRule==2?"星期二":
+                        withdrawalRule==3?"星期三":
+                                withdrawalRule==4?"星期四":
+                                        withdrawalRule==5?"星期五":
+                                                withdrawalRule==6?"星期六":"星期日";
+        String weeks = DateUtil.getAfterDayWeek("0");
+        if(!weeks.equals(week)){
+            return ResultUtil.error(" 每周"+(withdrawalRule==1?"一":
+                    withdrawalRule==2?"二":
+                            withdrawalRule==3?"三":
+                                    withdrawalRule==4?"四":
+                                            withdrawalRule==5?"五":
+                                                    withdrawalRule==6?"六":"日")+"统一申请提现,平台统一处理。");
+        }
+        if(null == type){
+            type = 1;
+        }
+
+        Withdrawal withdrawal = new Withdrawal();
+        if(type == 1){
+            if(null == driver.getLaveActivityMoney()){
+                return ResultUtil.error("账户没有余额,不能提现");
+            }
+            if(driver.getLaveActivityMoney().compareTo(money) < 0){
+                return ResultUtil.error("提现金额必须小于账户余额");
+            }
+            withdrawal.setBalance(driver.getLaveActivityMoney());
+        }
+        if(type == 2){
+            if(null == driver.getLaveBusinessMoney()){
+                return ResultUtil.error("账户没有余额,不能提现");
+            }
+
+            Double money1 = driverMapper.getThisWeekMoney(uid);
+            Double laveBusinessMoney =driver.getLaveBusinessMoney()-(money1==null?0d:money1);
+            if(laveBusinessMoney.compareTo(money) < 0){
+                return ResultUtil.error("提现金额必须小于账户余额");
+            }
+            withdrawal.setBalance(driver.getLaveBusinessMoney()-(money1==null?0d:money1));
+        }
+        DriverAlipay driverAlipay = this.selectById(id);
+        if(null == driverAlipay){
+            return ResultUtil.error("请选择提现账号");
+        }
+        withdrawal.setCode(driverAlipay.getAccount());
+        withdrawal.setFlag(1);
+        withdrawal.setInsertTime(new Date());
+        withdrawal.setMoney(money);
+        withdrawal.setName(driverAlipay.getUserName());
+        withdrawal.setState(1);
+        withdrawal.setUserId(uid);
+        withdrawal.setUserType(2);
+        withdrawal.setBankName("支付宝");
+        withdrawal.setType(type);
+        withdrawal.setWithdrawalType(1);//线上
+
+        if(type == 1){
+            double v = new BigDecimal(driver.getLaveActivityMoney()).subtract(new BigDecimal(money)).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue();
+            driver.setLaveActivityMoney(v);
+            v = new BigDecimal(driver.getBalance()).subtract(new BigDecimal(money)).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue();
+            driver.setBalance(v);
+        }
+        if(type == 2){
+            double v = new BigDecimal(driver.getLaveBusinessMoney()).subtract(new BigDecimal(money)).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue();
+            driver.setLaveBusinessMoney(v);
+        }
+        withdrawalMapper.insert(withdrawal);
+        driverMapper.updateById(driver);
+        return ResultUtil.success();
+    }
 }

--
Gitblit v1.7.1