From f1ba329891967bca6d083a9d5722683a9fa2080b Mon Sep 17 00:00:00 2001
From: Pu Zhibing <393733352@qq.com>
Date: 星期一, 22 九月 2025 09:17:10 +0800
Subject: [PATCH] Merge branch 'dev' of http://120.76.84.145:10101/gitblit/r/java/ZhaoYangChuXing

---
 DriverZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/DriverAlipayServiceImpl.java |  157 ++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 157 insertions(+), 0 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
new file mode 100644
index 0000000..967a7b8
--- /dev/null
+++ b/DriverZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/DriverAlipayServiceImpl.java
@@ -0,0 +1,157 @@
+package com.stylefeng.guns.modular.system.service.impl;
+
+import com.baomidou.mybatisplus.service.impl.ServiceImpl;
+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.stereotype.Service;
+
+import java.math.BigDecimal;
+import java.util.Date;
+import java.util.List;
+
+
+@Service
+public class DriverAlipayServiceImpl extends ServiceImpl<DriverAlipayMapper, DriverAlipay> implements IDriverAlipayService {
+
+    @Autowired
+    private DriverAlipayMapper driverAlipayMapper;
+    @Autowired
+    private DriverMapper driverMapper;
+    @Autowired
+    private WithdrawalMapper withdrawalMapper;
+
+    @Override
+    public ResultUtil saveAlipay(String userName, String account, Integer driverId) {
+        DriverAlipay query = driverAlipayMapper.query(driverId, account);
+        if(null != query){
+            return ResultUtil.error("支付宝账号已存在");
+        }
+        DriverAlipay driverAlipay = new DriverAlipay();
+        driverAlipay.setUserName(userName);
+        driverAlipay.setAccount(account);
+        driverAlipay.setDriverId(driverId);
+        driverAlipay.setCreateTime(new Date());
+        this.insert(driverAlipay);
+        return ResultUtil.success();
+    }
+
+    @Override
+    public ResultUtil updateAlipay(Integer id, String userName, String account, Integer driverId) {
+        DriverAlipay query = driverAlipayMapper.query(driverId, account);
+        if(null != query && !id.equals(query.getId())){
+            return ResultUtil.error("支付宝账号已存在");
+        }
+        DriverAlipay driverAlipay = query;
+        driverAlipay.setUserName(userName);
+        driverAlipay.setAccount(account);
+        driverAlipay.setDriverId(driverId);
+        this.updateById(driverAlipay);
+        return ResultUtil.success();
+    }
+
+    @Override
+    public ResultUtil delAlipay(Integer id, Integer driverId) {
+        DriverAlipay driverAlipay = this.selectById(id);
+        if(driverAlipay.getDriverId().compareTo(driverId) != 0){
+            return ResultUtil.error("你无权删除此账号");
+        }
+        this.deleteById(id);
+        return ResultUtil.success();
+    }
+
+    @Override
+    public List<DriverAlipay> queryAlipay(Integer pageNum, Integer size, Integer driverId) {
+        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