From ab9cd2c82bd64de8e33510db1d1e78a5b3b4de70 Mon Sep 17 00:00:00 2001
From: rk <94314517@qq.com>
Date: 星期一, 20 四月 2026 19:37:20 +0800
Subject: [PATCH] 代码生成
---
server/services/src/main/java/com/doumee/service/business/impl/WithdrawalOrdersServiceImpl.java | 94 +++++++++++++++++++++++++++++++++++++++++++++--
1 files changed, 90 insertions(+), 4 deletions(-)
diff --git a/server/services/src/main/java/com/doumee/service/business/impl/WithdrawalOrdersServiceImpl.java b/server/services/src/main/java/com/doumee/service/business/impl/WithdrawalOrdersServiceImpl.java
index 3484958..0d0b4c4 100644
--- a/server/services/src/main/java/com/doumee/service/business/impl/WithdrawalOrdersServiceImpl.java
+++ b/server/services/src/main/java/com/doumee/service/business/impl/WithdrawalOrdersServiceImpl.java
@@ -19,6 +19,8 @@
import com.doumee.dao.business.model.ShopInfo;
import com.doumee.dao.business.model.WithdrawalOrders;
import com.doumee.dao.dto.WithdrawalApproveDTO;
+import com.doumee.config.alipay.AlipayFundTransUniTransfer;
+import com.doumee.dao.dto.AlipayTransferDTO;
import com.doumee.dao.dto.WithdrawalDTO;
import com.doumee.dao.system.SystemUserMapper;
import com.doumee.dao.system.model.SystemUser;
@@ -27,6 +29,7 @@
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
import java.math.BigDecimal;
import java.text.SimpleDateFormat;
@@ -229,6 +232,7 @@
}
@Override
+ @Transactional(rollbackFor = Exception.class)
public void approve(WithdrawalApproveDTO dto) {
if (dto == null || dto.getId() == null || dto.getStatus() == null) {
throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "瀹℃壒鍙傛暟涓嶅畬鏁�");
@@ -249,13 +253,95 @@
Integer currentUserId = getCurrentUserId();
Date now = new Date();
+ // 瀹℃壒閫氳繃鏃讹紝璋冪敤鏀粯瀹濇墦娆�
+ Integer finalStatus = dto.getStatus();
+ String doneInfo = null;
+ if (Constants.ONE.equals(dto.getStatus())) {
+ String aliAccount = order.getAliAccount();
+ String aliName = null;
+
+ // 浠庡徃鏈烘垨闂ㄥ簵鑾峰彇鏀粯瀹濊处鎴峰拰瀹炲悕濮撳悕
+ if (StringUtils.isBlank(aliAccount)) {
+ if (Constants.equalsInteger(order.getMemberType(), Constants.ONE)) {
+ DriverInfo driver = driverInfoMapper.selectOne(new QueryWrapper<DriverInfo>().lambda()
+ .eq(DriverInfo::getMemberId, order.getMemberId())
+ .eq(DriverInfo::getDeleted, Constants.ZERO)
+ .last("limit 1"));
+ if (driver != null) {
+ aliAccount = driver.getAliAccount();
+ aliName = driver.getAliName();
+ }
+ } else if (Constants.equalsInteger(order.getMemberType(), Constants.TWO)) {
+ ShopInfo shop = shopInfoMapper.selectOne(new QueryWrapper<ShopInfo>().lambda()
+ .eq(ShopInfo::getRegionMemberId, order.getMemberId())
+ .eq(ShopInfo::getDeleted, Constants.ZERO)
+ .last("limit 1"));
+ if (shop != null) {
+ aliAccount = shop.getAliAccount();
+ aliName = shop.getAliName();
+ }
+ }
+ } else {
+ // 浠� WithdrawalOrders 鐨� aliAccount 鏌ュ搴斿鍚�
+ if (Constants.equalsInteger(order.getMemberType(), Constants.ONE)) {
+ DriverInfo driver = driverInfoMapper.selectOne(new QueryWrapper<DriverInfo>().lambda()
+ .eq(DriverInfo::getMemberId, order.getMemberId())
+ .eq(DriverInfo::getDeleted, Constants.ZERO)
+ .last("limit 1"));
+ if (driver != null) {
+ aliName = driver.getAliName();
+ }
+ } else if (Constants.equalsInteger(order.getMemberType(), Constants.TWO)) {
+ ShopInfo shop = shopInfoMapper.selectOne(new QueryWrapper<ShopInfo>().lambda()
+ .eq(ShopInfo::getRegionMemberId, order.getMemberId())
+ .eq(ShopInfo::getDeleted, Constants.ZERO)
+ .last("limit 1"));
+ if (shop != null) {
+ aliName = shop.getAliName();
+ }
+ }
+ }
+
+ if (StringUtils.isBlank(aliAccount)) {
+ throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "鏀粯瀹濇彁鐜拌处鎴锋湭閰嶇疆锛屾棤娉曟墦娆�");
+ }
+
+ // 閲戦杞崲锛氬垎 鈫� 鍏�
+ Long amountFen = order.getAmount() != null ? order.getAmount() : 0L;
+ BigDecimal transAmount = new BigDecimal(amountFen).divide(new BigDecimal(100), 2, BigDecimal.ROUND_HALF_UP);
+
+ AlipayTransferDTO transferDTO = new AlipayTransferDTO();
+ transferDTO.setOutBizNo(order.getOutBillNo());
+ transferDTO.setTransAmount(transAmount);
+ transferDTO.setPayeeAccount(aliAccount);
+ transferDTO.setPayeeName(aliName);
+ transferDTO.setRemark("鎻愮幇鎵撴");
+
+ String alipayOrderId;
+ try {
+ alipayOrderId = AlipayFundTransUniTransfer.transfer(transferDTO);
+ } catch (BusinessException e) {
+ throw e;
+ } catch (Exception e) {
+ throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "鏀粯瀹濇墦娆惧け璐ワ細" + e.getMessage());
+ }
+ doneInfo = "鏀粯瀹濊浆璐﹀崟鍙凤細" + alipayOrderId;
+ }
+
WithdrawalOrders update = new WithdrawalOrders();
update.setId(dto.getId());
- update.setStatus(dto.getStatus());
+ update.setStatus(finalStatus);
update.setUserId(currentUserId);
update.setApproveTime(now);
update.setApproveRemark(dto.getApproveRemark());
update.setUpdateTime(now);
+ if (Constants.ONE.equals(finalStatus)) {
+ update.setDoneTime(now);
+ update.setDoneInfo(doneInfo);
+ } else if (doneInfo != null) {
+ update.setDoneTime(now);
+ update.setDoneInfo(doneInfo);
+ }
withdrawalOrdersMapper.updateById(update);
// 鏇存柊鍏宠仈鐨勬彁鐜� Revenue 璁板綍鐘舵��
@@ -267,15 +353,15 @@
.eq(Revenue::getDeleted, Constants.ZERO)
.last("limit 1"));
if (withdrawalRevenue != null) {
- Integer revenueStatus = Constants.ONE.equals(dto.getStatus()) ? Constants.ZERO : Constants.ONE; // 閫氳繃=0鎴愬姛, 椹冲洖=1澶辫触
+ Integer revenueStatus = Constants.ONE.equals(finalStatus) ? Constants.ZERO : Constants.ONE; // 閫氳繃=0鎴愬姛, 椹冲洖=1澶辫触
revenueMapper.update(new UpdateWrapper<Revenue>().lambda()
.set(Revenue::getStatus, revenueStatus)
.set(Revenue::getUpdateTime, now)
.eq(Revenue::getId, withdrawalRevenue.getId()));
}
- // 椹冲洖鏃堕��鍥炰綑棰�
- if (Constants.TWO.equals(dto.getStatus())) {
+ // 椹冲洖鎴栨墦娆惧け璐ユ椂閫�鍥炰綑棰�
+ if (Constants.TWO.equals(finalStatus)) {
Long amountFen = order.getAmount() != null ? order.getAmount() : 0L;
if (amountFen > 0 && order.getMemberId() != null) {
if (Constants.equalsInteger(order.getMemberType(), Constants.ONE)) {
--
Gitblit v1.9.3