mirror of
https://codeup.aliyun.com/67c68d4e484ca2f0a13ac3c1/ydc/jsowell-charger-web.git
synced 2026-04-20 11:05:18 +08:00
update 可提现金额,减去当天申请金额
This commit is contained in:
@@ -1,6 +1,7 @@
|
|||||||
import com.alibaba.fastjson2.JSON;
|
import com.alibaba.fastjson2.JSON;
|
||||||
import com.alibaba.fastjson2.JSONArray;
|
import com.alibaba.fastjson2.JSONArray;
|
||||||
import com.alibaba.fastjson2.JSONObject;
|
import com.alibaba.fastjson2.JSONObject;
|
||||||
|
import com.github.pagehelper.PageHelper;
|
||||||
import com.google.common.collect.Lists;
|
import com.google.common.collect.Lists;
|
||||||
import com.google.common.collect.Maps;
|
import com.google.common.collect.Maps;
|
||||||
import com.huifu.adapay.core.exception.BaseAdaPayException;
|
import com.huifu.adapay.core.exception.BaseAdaPayException;
|
||||||
@@ -28,8 +29,10 @@ import com.jsowell.pile.domain.OrderDetail;
|
|||||||
import com.jsowell.pile.domain.OrderUnsplitRecord;
|
import com.jsowell.pile.domain.OrderUnsplitRecord;
|
||||||
import com.jsowell.pile.dto.AfterSettleOrderDTO;
|
import com.jsowell.pile.dto.AfterSettleOrderDTO;
|
||||||
import com.jsowell.pile.dto.DebugOrderDTO;
|
import com.jsowell.pile.dto.DebugOrderDTO;
|
||||||
|
import com.jsowell.pile.service.AdapayUnsplitRecordService;
|
||||||
import com.jsowell.pile.service.OrderBasicInfoService;
|
import com.jsowell.pile.service.OrderBasicInfoService;
|
||||||
import com.jsowell.pile.service.OrderUnsplitRecordService;
|
import com.jsowell.pile.service.OrderUnsplitRecordService;
|
||||||
|
import com.jsowell.pile.vo.AdapayUnsplitRecordVO;
|
||||||
import org.apache.commons.collections4.CollectionUtils;
|
import org.apache.commons.collections4.CollectionUtils;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
import org.junit.runner.RunWith;
|
import org.junit.runner.RunWith;
|
||||||
@@ -75,6 +78,9 @@ public class PaymentTestController {
|
|||||||
@Autowired
|
@Autowired
|
||||||
private OrderBasicInfoService orderBasicInfoService;
|
private OrderBasicInfoService orderBasicInfoService;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private AdapayUnsplitRecordService adapayUnsplitRecordService;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 从payment_ids文件中获取支付id, 并批量查询分账信息
|
* 从payment_ids文件中获取支付id, 并批量查询分账信息
|
||||||
* 如需撤销分账, 请使用 {@link PaymentTestController#testCreateConfirmReverse()} 可以本地运行
|
* 如需撤销分账, 请使用 {@link PaymentTestController#testCreateConfirmReverse()} 可以本地运行
|
||||||
@@ -412,10 +418,10 @@ public class PaymentTestController {
|
|||||||
*/
|
*/
|
||||||
@Test
|
@Test
|
||||||
public void createPaymentReverseRequestTest() {
|
public void createPaymentReverseRequestTest() {
|
||||||
String paymentId = "002212025100513581210820790129447211008";
|
String paymentId = "002212025010720373310722683516795273216";
|
||||||
BigDecimal refundAmount = new BigDecimal("0.5");
|
BigDecimal refundAmount = new BigDecimal("1.08");
|
||||||
String memberId = "84488845";
|
String memberId = "48781184";
|
||||||
String orderCode = "C82180436213";
|
String orderCode = "C67335843091";
|
||||||
|
|
||||||
// 延迟分账未确认调撤销调撤销接口退款
|
// 延迟分账未确认调撤销调撤销接口退款
|
||||||
PaymentReverseOperation operation = new PaymentReverseOperation();
|
PaymentReverseOperation operation = new PaymentReverseOperation();
|
||||||
@@ -787,4 +793,26 @@ public class PaymentTestController {
|
|||||||
orderBasicInfoService.splittingMethodTemp(afterSettleOrderDTO);
|
orderBasicInfoService.splittingMethodTemp(afterSettleOrderDTO);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void processUnSettledOrder() {
|
||||||
|
// 现查询需要分账或者退款的数据
|
||||||
|
int pageNum = 1;
|
||||||
|
int pageSize = 3;
|
||||||
|
PageHelper.startPage(pageNum, pageSize);
|
||||||
|
List<AdapayUnsplitRecordVO> adapayUnsplitRecordVOS = adapayUnsplitRecordService.queryList();
|
||||||
|
for (AdapayUnsplitRecordVO adapayUnsplitRecordVO : adapayUnsplitRecordVOS) {
|
||||||
|
System.out.println(adapayUnsplitRecordVO);
|
||||||
|
// 获取待分账金额
|
||||||
|
String waitSplitAmount = adapayUnsplitRecordVO.getWaitSplitAmount();
|
||||||
|
// 如果waitSplitAmount > 0, 调用分账接口
|
||||||
|
if (waitSplitAmount != null && !"".equals(waitSplitAmount)) {
|
||||||
|
// 调用分账接口
|
||||||
|
}
|
||||||
|
|
||||||
|
// 获取待退款金额
|
||||||
|
String refundPayAmount = adapayUnsplitRecordVO.getRefundPayAmount();
|
||||||
|
}
|
||||||
|
PageHelper.clearPage();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@@ -15,6 +15,7 @@ import java.text.ParseException;
|
|||||||
import java.text.SimpleDateFormat;
|
import java.text.SimpleDateFormat;
|
||||||
import java.time.*;
|
import java.time.*;
|
||||||
import java.time.format.DateTimeFormatter;
|
import java.time.format.DateTimeFormatter;
|
||||||
|
import java.time.format.DateTimeParseException;
|
||||||
import java.time.temporal.ChronoUnit;
|
import java.time.temporal.ChronoUnit;
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
|
|
||||||
@@ -53,6 +54,9 @@ public class DateUtils extends org.apache.commons.lang3.time.DateUtils {
|
|||||||
"yyyy/MM/dd", "yyyy/MM/dd HH:mm:ss", "yyyy/MM/dd HH:mm", "yyyy/MM",
|
"yyyy/MM/dd", "yyyy/MM/dd HH:mm:ss", "yyyy/MM/dd HH:mm", "yyyy/MM",
|
||||||
"yyyy.MM.dd", "yyyy.MM.dd HH:mm:ss", "yyyy.MM.dd HH:mm", "yyyy.MM"};
|
"yyyy.MM.dd", "yyyy.MM.dd HH:mm:ss", "yyyy.MM.dd HH:mm", "yyyy.MM"};
|
||||||
|
|
||||||
|
public static final DateTimeFormatter DEFAULT_DATE_TIME_FORMATTER =
|
||||||
|
DateTimeFormatter.ofPattern(YYYY_MM_DD_HH_MM_SS);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 获取当前Date型日期
|
* 获取当前Date型日期
|
||||||
*
|
*
|
||||||
@@ -251,10 +255,10 @@ public class DateUtils extends org.apache.commons.lang3.time.DateUtils {
|
|||||||
*/
|
*/
|
||||||
public static long minutesSince(String dateString) {
|
public static long minutesSince(String dateString) {
|
||||||
// 定义日期时间格式
|
// 定义日期时间格式
|
||||||
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
|
// DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
|
||||||
|
|
||||||
// 解析给定的日期字符串
|
// 解析给定的日期字符串
|
||||||
LocalDateTime givenDateTime = LocalDateTime.parse(dateString, formatter);
|
LocalDateTime givenDateTime = LocalDateTime.parse(dateString, DEFAULT_DATE_TIME_FORMATTER);
|
||||||
|
|
||||||
// 获取当前时间
|
// 获取当前时间
|
||||||
LocalDateTime now = LocalDateTime.now();
|
LocalDateTime now = LocalDateTime.now();
|
||||||
@@ -283,6 +287,12 @@ public class DateUtils extends org.apache.commons.lang3.time.DateUtils {
|
|||||||
return Date.from(instant);
|
return Date.from(instant);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* LocalDate转Date
|
||||||
|
*
|
||||||
|
* @param localDate
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
public static Date localDate2Date(LocalDate localDate) {
|
public static Date localDate2Date(LocalDate localDate) {
|
||||||
if (localDate == null) {
|
if (localDate == null) {
|
||||||
return null;
|
return null;
|
||||||
@@ -393,8 +403,8 @@ public class DateUtils extends org.apache.commons.lang3.time.DateUtils {
|
|||||||
// 判断是否包含时间部分
|
// 判断是否包含时间部分
|
||||||
if (trimmed.contains(":")) {
|
if (trimmed.contains(":")) {
|
||||||
// 包含时间部分,按完整日期时间格式解析
|
// 包含时间部分,按完整日期时间格式解析
|
||||||
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
|
// DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
|
||||||
return DateUtils.formatDateTime(LocalDateTime.parse(trimmed, formatter).toLocalDate().atStartOfDay());
|
return DateUtils.formatDateTime(LocalDateTime.parse(trimmed, DEFAULT_DATE_TIME_FORMATTER).toLocalDate().atStartOfDay());
|
||||||
} else {
|
} else {
|
||||||
// 不包含时间部分,按日期格式解析
|
// 不包含时间部分,按日期格式解析
|
||||||
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
|
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
|
||||||
@@ -416,8 +426,8 @@ public class DateUtils extends org.apache.commons.lang3.time.DateUtils {
|
|||||||
// 判断是否包含时间部分
|
// 判断是否包含时间部分
|
||||||
if (trimmed.contains(":")) {
|
if (trimmed.contains(":")) {
|
||||||
// 包含时间部分,按完整日期时间格式解析
|
// 包含时间部分,按完整日期时间格式解析
|
||||||
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
|
// DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
|
||||||
return DateUtils.formatDateTime(LocalDateTime.parse(trimmed, formatter).toLocalDate().atTime(LocalTime.MAX));
|
return DateUtils.formatDateTime(LocalDateTime.parse(trimmed, DEFAULT_DATE_TIME_FORMATTER).toLocalDate().atTime(LocalTime.MAX));
|
||||||
} else {
|
} else {
|
||||||
// 不包含时间部分,按日期格式解析
|
// 不包含时间部分,按日期格式解析
|
||||||
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
|
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
|
||||||
@@ -425,6 +435,32 @@ public class DateUtils extends org.apache.commons.lang3.time.DateUtils {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 判断时间是否是今天
|
||||||
|
*
|
||||||
|
* @param dateTimeStr 日期时间字符串,格式为 "yyyy-MM-dd HH:mm:ss"
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
public static boolean isToday(String dateTimeStr) {
|
||||||
|
// 判断入参 时间是否在 今天
|
||||||
|
if (dateTimeStr == null || dateTimeStr.trim().isEmpty()) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
try {
|
||||||
|
// DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
|
||||||
|
LocalDateTime dateTime = LocalDateTime.parse(dateTimeStr, DEFAULT_DATE_TIME_FORMATTER);
|
||||||
|
LocalDate date = dateTime.toLocalDate();
|
||||||
|
LocalDate today = LocalDate.now();
|
||||||
|
|
||||||
|
return date.isEqual(today);
|
||||||
|
} catch (DateTimeParseException e) {
|
||||||
|
// 如果解析失败,说明格式不正确
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
public enum IntervalType {
|
public enum IntervalType {
|
||||||
DAY,
|
DAY,
|
||||||
HOUR,
|
HOUR,
|
||||||
@@ -632,6 +668,12 @@ public class DateUtils extends org.apache.commons.lang3.time.DateUtils {
|
|||||||
return c.getTime();
|
return c.getTime();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 时间格式化
|
||||||
|
*
|
||||||
|
* @param date
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
public static String formatDateTime(Date date) {
|
public static String formatDateTime(Date date) {
|
||||||
if (date == null) {
|
if (date == null) {
|
||||||
return "";
|
return "";
|
||||||
@@ -640,6 +682,11 @@ public class DateUtils extends org.apache.commons.lang3.time.DateUtils {
|
|||||||
return simpleDateFormat.format(date);
|
return simpleDateFormat.format(date);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 时间格式化
|
||||||
|
* @param localDateTime
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
public static String formatDateTime(LocalDateTime localDateTime) {
|
public static String formatDateTime(LocalDateTime localDateTime) {
|
||||||
if (localDateTime == null) {
|
if (localDateTime == null) {
|
||||||
return "";
|
return "";
|
||||||
@@ -648,6 +695,11 @@ public class DateUtils extends org.apache.commons.lang3.time.DateUtils {
|
|||||||
return formatDateTime(date);
|
return formatDateTime(date);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 时间格式化
|
||||||
|
* @param localTime
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
public static String formatDateTime(LocalTime localTime) {
|
public static String formatDateTime(LocalTime localTime) {
|
||||||
if (localTime == null) {
|
if (localTime == null) {
|
||||||
return "";
|
return "";
|
||||||
@@ -1239,7 +1291,7 @@ public class DateUtils extends org.apache.commons.lang3.time.DateUtils {
|
|||||||
return LocalDateTime.of(
|
return LocalDateTime.of(
|
||||||
LocalDate.now(),
|
LocalDate.now(),
|
||||||
LocalTime.parse(timeStr, DateTimeFormatter.ofPattern("HH:mm")).withSecond(0)
|
LocalTime.parse(timeStr, DateTimeFormatter.ofPattern("HH:mm")).withSecond(0)
|
||||||
).format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
|
).format(DEFAULT_DATE_TIME_FORMATTER);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -1251,15 +1303,15 @@ public class DateUtils extends org.apache.commons.lang3.time.DateUtils {
|
|||||||
public static String convertDateToDateTime(String dateStr) {
|
public static String convertDateToDateTime(String dateStr) {
|
||||||
LocalDate endLocalDate = LocalDate.parse(dateStr);
|
LocalDate endLocalDate = LocalDate.parse(dateStr);
|
||||||
LocalDateTime endLocalDateTime = endLocalDate.atStartOfDay();
|
LocalDateTime endLocalDateTime = endLocalDate.atStartOfDay();
|
||||||
return endLocalDateTime.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
|
return endLocalDateTime.format(DEFAULT_DATE_TIME_FORMATTER);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static String getEndTime(String dateStr) {
|
public static String getEndTime(String dateStr) {
|
||||||
DateTimeFormatter inputFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
|
DateTimeFormatter inputFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
|
||||||
LocalDate date = LocalDate.parse(dateStr, inputFormatter);
|
LocalDate date = LocalDate.parse(dateStr, inputFormatter);
|
||||||
LocalDateTime endTime = date.atTime(23, 59, 59);
|
LocalDateTime endTime = date.atTime(23, 59, 59);
|
||||||
DateTimeFormatter outputFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
|
// DateTimeFormatter outputFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
|
||||||
return endTime.format(outputFormatter);
|
return endTime.format(DEFAULT_DATE_TIME_FORMATTER);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -678,8 +678,8 @@ public class AdapayService {
|
|||||||
// if (CollectionUtils.isNotEmpty(withdrawInfoVOS)) {
|
// if (CollectionUtils.isNotEmpty(withdrawInfoVOS)) {
|
||||||
// totalWithdraw = withdrawInfoVOS.stream().map(WithdrawInfoVO::getCashAmt).reduce(BigDecimal.ZERO, BigDecimal::add);
|
// totalWithdraw = withdrawInfoVOS.stream().map(WithdrawInfoVO::getCashAmt).reduce(BigDecimal.ZERO, BigDecimal::add);
|
||||||
// }
|
// }
|
||||||
BigDecimal totalWithdraw = clearingWithdrawInfoService.queryTotalWithdraw(merchantId);
|
// BigDecimal totalWithdraw = clearingWithdrawInfoService.queryTotalWithdraw(merchantId);
|
||||||
vo.setTotalWithdraw(totalWithdraw);
|
vo.setTotalWithdraw(clearingWithdrawInfoService.queryTotalWithdraw(merchantId));
|
||||||
|
|
||||||
// 在途金额
|
// 在途金额
|
||||||
BigDecimal pendingAmount = BigDecimal.ZERO;
|
BigDecimal pendingAmount = BigDecimal.ZERO;
|
||||||
@@ -692,6 +692,13 @@ public class AdapayService {
|
|||||||
.reduce(BigDecimal.ZERO, BigDecimal::add);
|
.reduce(BigDecimal.ZERO, BigDecimal::add);
|
||||||
}
|
}
|
||||||
vo.setPendingAmount(pendingAmount);
|
vo.setPendingAmount(pendingAmount);
|
||||||
|
|
||||||
|
// 查询今天的提现金额
|
||||||
|
BigDecimal todayWithdrawalAmount = clearingWithdrawInfoService.queryTodayWithdrawalAmount(merchantId);
|
||||||
|
// 如果大于0,则重新更新LastAvlBalance
|
||||||
|
if (todayWithdrawalAmount.compareTo(BigDecimal.ZERO) > 0) {
|
||||||
|
vo.setLastAvlBalance(BigDecimal.ZERO.max(vo.getLastAvlBalance().subtract(todayWithdrawalAmount)));
|
||||||
|
}
|
||||||
return vo;
|
return vo;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -22,7 +22,7 @@ public class AdapayAccountBalanceVO {
|
|||||||
// 冻结余额,当配置了自动结算功能,在每日发起结算时会将可用余额转为冻结金额。该部分金额不允许取现。
|
// 冻结余额,当配置了自动结算功能,在每日发起结算时会将可用余额转为冻结金额。该部分金额不允许取现。
|
||||||
private BigDecimal frzBalance;
|
private BigDecimal frzBalance;
|
||||||
|
|
||||||
// 昨日日终余额。
|
// 昨日日终余额。(页面显示为可提现金额)
|
||||||
private BigDecimal lastAvlBalance;
|
private BigDecimal lastAvlBalance;
|
||||||
|
|
||||||
// 汇付会员id
|
// 汇付会员id
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
package com.jsowell.pile.mapper;
|
package com.jsowell.pile.mapper;
|
||||||
|
|
||||||
import com.jsowell.pile.domain.AdapayUnsplitRecord;
|
import com.jsowell.pile.domain.AdapayUnsplitRecord;
|
||||||
|
import com.jsowell.pile.vo.AdapayUnsplitRecordVO;
|
||||||
import org.apache.ibatis.annotations.Param;
|
import org.apache.ibatis.annotations.Param;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
@@ -29,4 +30,6 @@ public interface AdapayUnsplitRecordMapper {
|
|||||||
int batchInsert(@Param("list") List<AdapayUnsplitRecord> list);
|
int batchInsert(@Param("list") List<AdapayUnsplitRecord> list);
|
||||||
|
|
||||||
List<AdapayUnsplitRecord> queryUnsplitOrders(@Param("startTime") String startTime, @Param("endTime") String endTime);
|
List<AdapayUnsplitRecord> queryUnsplitOrders(@Param("startTime") String startTime, @Param("endTime") String endTime);
|
||||||
|
|
||||||
|
List<AdapayUnsplitRecordVO> queryList();
|
||||||
}
|
}
|
||||||
@@ -1,6 +1,8 @@
|
|||||||
package com.jsowell.pile.service;
|
package com.jsowell.pile.service;
|
||||||
|
|
||||||
import com.jsowell.pile.domain.AdapayUnsplitRecord;
|
import com.jsowell.pile.domain.AdapayUnsplitRecord;
|
||||||
|
import com.jsowell.pile.vo.AdapayUnsplitRecordVO;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
public interface AdapayUnsplitRecordService{
|
public interface AdapayUnsplitRecordService{
|
||||||
|
|
||||||
@@ -27,4 +29,6 @@ public interface AdapayUnsplitRecordService{
|
|||||||
int batchInsert(List<AdapayUnsplitRecord> list);
|
int batchInsert(List<AdapayUnsplitRecord> list);
|
||||||
|
|
||||||
List<AdapayUnsplitRecord> queryUnsplitOrders(String startTime, String endTime);
|
List<AdapayUnsplitRecord> queryUnsplitOrders(String startTime, String endTime);
|
||||||
|
|
||||||
|
List<AdapayUnsplitRecordVO> queryList();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -43,4 +43,7 @@ public interface ClearingWithdrawInfoService{
|
|||||||
PageResponse queryWithdrawList(QueryWithdrawListDTO dto) throws BaseAdaPayException;
|
PageResponse queryWithdrawList(QueryWithdrawListDTO dto) throws BaseAdaPayException;
|
||||||
|
|
||||||
BigDecimal queryTotalWithdraw(String merchantId);
|
BigDecimal queryTotalWithdraw(String merchantId);
|
||||||
|
|
||||||
|
// 获取今日提现总额
|
||||||
|
BigDecimal queryTodayWithdrawalAmount(String merchantId);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -5,7 +5,6 @@ import com.github.pagehelper.PageInfo;
|
|||||||
import com.google.common.collect.Lists;
|
import com.google.common.collect.Lists;
|
||||||
import com.huifu.adapay.core.exception.BaseAdaPayException;
|
import com.huifu.adapay.core.exception.BaseAdaPayException;
|
||||||
import com.jsowell.adapay.dto.QueryWithdrawListDTO;
|
import com.jsowell.adapay.dto.QueryWithdrawListDTO;
|
||||||
import com.jsowell.adapay.service.AdapayService;
|
|
||||||
import com.jsowell.common.constant.Constants;
|
import com.jsowell.common.constant.Constants;
|
||||||
import com.jsowell.common.core.page.PageResponse;
|
import com.jsowell.common.core.page.PageResponse;
|
||||||
import com.jsowell.common.util.DateUtils;
|
import com.jsowell.common.util.DateUtils;
|
||||||
@@ -13,11 +12,9 @@ import com.jsowell.common.util.StringUtils;
|
|||||||
import com.jsowell.pile.domain.ClearingWithdrawInfo;
|
import com.jsowell.pile.domain.ClearingWithdrawInfo;
|
||||||
import com.jsowell.pile.mapper.ClearingWithdrawInfoMapper;
|
import com.jsowell.pile.mapper.ClearingWithdrawInfoMapper;
|
||||||
import com.jsowell.pile.service.ClearingWithdrawInfoService;
|
import com.jsowell.pile.service.ClearingWithdrawInfoService;
|
||||||
import com.jsowell.pile.service.PileMerchantInfoService;
|
|
||||||
import com.jsowell.pile.vo.web.ClearingBillVO;
|
import com.jsowell.pile.vo.web.ClearingBillVO;
|
||||||
import com.jsowell.pile.vo.web.WithdrawInfoVO;
|
import com.jsowell.pile.vo.web.WithdrawInfoVO;
|
||||||
import org.apache.commons.collections4.CollectionUtils;
|
import org.apache.commons.collections4.CollectionUtils;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
import javax.annotation.Resource;
|
import javax.annotation.Resource;
|
||||||
@@ -164,4 +161,36 @@ public class ClearingWithdrawInfoServiceImpl implements ClearingWithdrawInfoServ
|
|||||||
return clearingWithdrawInfoMapper.queryTotalWithdraw(merchantId);
|
return clearingWithdrawInfoMapper.queryTotalWithdraw(merchantId);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询今日提现总额
|
||||||
|
* @param merchantId
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public BigDecimal queryTodayWithdrawalAmount(String merchantId) {
|
||||||
|
BigDecimal todayWithdrawalAmount = BigDecimal.ZERO;
|
||||||
|
QueryWithdrawListDTO dto = QueryWithdrawListDTO.builder()
|
||||||
|
.merchantId(merchantId)
|
||||||
|
.pageNum(1)
|
||||||
|
.pageSize(10)
|
||||||
|
.build();
|
||||||
|
PageResponse pageResponse = null;
|
||||||
|
try {
|
||||||
|
pageResponse = queryWithdrawList(dto);
|
||||||
|
} catch (BaseAdaPayException e) {
|
||||||
|
throw new RuntimeException(e);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (pageResponse != null && pageResponse.getList() != null && !pageResponse.getList().isEmpty()) {
|
||||||
|
List<WithdrawInfoVO> list = (List<WithdrawInfoVO>) pageResponse.getList();
|
||||||
|
for (WithdrawInfoVO vo : list) {
|
||||||
|
// 如果applicationTime在当天,则加到todayWithdrawalAmount中
|
||||||
|
if (DateUtils.isToday(vo.getApplicationTime())) {
|
||||||
|
todayWithdrawalAmount = todayWithdrawalAmount.add(vo.getCashAmt());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return todayWithdrawalAmount;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,30 @@
|
|||||||
|
package com.jsowell.pile.vo;
|
||||||
|
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
public class AdapayUnsplitRecordVO {
|
||||||
|
// 订单号
|
||||||
|
private String orderCode;
|
||||||
|
|
||||||
|
// 支付金额
|
||||||
|
private String payAmount;
|
||||||
|
|
||||||
|
// 结算金额
|
||||||
|
private String settleAmount;
|
||||||
|
|
||||||
|
// 确认分账金额
|
||||||
|
private String confirmedSplitAmount;
|
||||||
|
|
||||||
|
// 待分账金额
|
||||||
|
private String waitSplitAmount;
|
||||||
|
|
||||||
|
// 应退款金额
|
||||||
|
private String refundAmount;
|
||||||
|
|
||||||
|
// 已退款金额
|
||||||
|
private String paidAmount;
|
||||||
|
|
||||||
|
// 待退款金额
|
||||||
|
private String refundPayAmount;
|
||||||
|
}
|
||||||
@@ -3,6 +3,7 @@ package com.jsowell.web.controller.pile;
|
|||||||
import com.jsowell.pile.domain.AdapayUnsplitRecord;
|
import com.jsowell.pile.domain.AdapayUnsplitRecord;
|
||||||
import com.jsowell.pile.mapper.AdapayUnsplitRecordMapper;
|
import com.jsowell.pile.mapper.AdapayUnsplitRecordMapper;
|
||||||
import com.jsowell.pile.service.AdapayUnsplitRecordService;
|
import com.jsowell.pile.service.AdapayUnsplitRecordService;
|
||||||
|
import com.jsowell.pile.vo.AdapayUnsplitRecordVO;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
@@ -73,4 +74,9 @@ public class AdapayUnsplitRecordServiceImpl implements AdapayUnsplitRecordServic
|
|||||||
return adapayUnsplitRecordMapper.queryUnsplitOrders(startTime, endTime);
|
return adapayUnsplitRecordMapper.queryUnsplitOrders(startTime, endTime);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<AdapayUnsplitRecordVO> queryList() {
|
||||||
|
return adapayUnsplitRecordMapper.queryList();
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -706,4 +706,20 @@
|
|||||||
and settle_amount is null
|
and settle_amount is null
|
||||||
and order_code like 'C%'
|
and order_code like 'C%'
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
|
<select id="queryList" resultType="com.jsowell.pile.vo.AdapayUnsplitRecordVO">
|
||||||
|
SELECT
|
||||||
|
order_code as orderCode,
|
||||||
|
pay_amount as payAmount,
|
||||||
|
settle_amount as settleAmount,
|
||||||
|
confirmed_split_amount as confirmedSplitAmount,
|
||||||
|
GREATEST(0, settle_amount - confirmed_split_amount) AS waitSplitAmount,
|
||||||
|
due_refund_amount as refundAmount,
|
||||||
|
refund_amount as paidAmount,
|
||||||
|
GREATEST(0, due_refund_amount - refund_amount) AS refundPayAmount
|
||||||
|
FROM adapay_unsplit_record
|
||||||
|
WHERE
|
||||||
|
(due_refund_amount > confirmed_split_amount)
|
||||||
|
OR (due_refund_amount > refund_amount)
|
||||||
|
</select>
|
||||||
</mapper>
|
</mapper>
|
||||||
@@ -411,11 +411,15 @@ public class JsowellTask {
|
|||||||
// processUnSettledOrderOld(); // 旧方法
|
// processUnSettledOrderOld(); // 旧方法
|
||||||
for (int i = 0; i < 35; i++) {
|
for (int i = 0; i < 35; i++) {
|
||||||
int batchNum = i + 1;
|
int batchNum = i + 1;
|
||||||
processUnSettledOrderNew(batchNum); // 新方法
|
processUnSettledOrderV1(batchNum); // 新方法
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void processUnSettledOrderNew(int batchNum) {
|
/**
|
||||||
|
* V1方法,获取退款金额与结算金额
|
||||||
|
* @param batchNum
|
||||||
|
*/
|
||||||
|
private void processUnSettledOrderV1(int batchNum) {
|
||||||
String startTime = "2025-01-01 00:00:00";
|
String startTime = "2025-01-01 00:00:00";
|
||||||
String endTime = "2025-12-31 23:59:59";
|
String endTime = "2025-12-31 23:59:59";
|
||||||
|
|
||||||
@@ -456,6 +460,10 @@ public class JsowellTask {
|
|||||||
log.info("第{}批次,共更新{}条数据", batchNum, updateList.size());
|
log.info("第{}批次,共更新{}条数据", batchNum, updateList.size());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void processUnSettledOrderV2(int batchNum) {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
// private void processUnSettledOrderOld() {
|
// private void processUnSettledOrderOld() {
|
||||||
// String startTime = "2023-01-01 00:00:00";
|
// String startTime = "2023-01-01 00:00:00";
|
||||||
// String endTime = "2024-12-31 23:59:59";
|
// String endTime = "2024-12-31 23:59:59";
|
||||||
|
|||||||
Reference in New Issue
Block a user