diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/SysWithdrawal.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/SysWithdrawal.java index ac48bcb..8e810be 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/SysWithdrawal.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/SysWithdrawal.java @@ -7,6 +7,7 @@ import lombok.EqualsAndHashCode; import java.io.Serial; import java.math.BigDecimal; +import java.util.Date; /** * 系统提现对象 sys_withdrawal @@ -113,5 +114,8 @@ public class SysWithdrawal extends BaseEntity { private String transferInfo; private String callback; - + /** + * 同意时间 + */ + private Date agreeTime; } diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/bo/SysWithdrawalBo.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/bo/SysWithdrawalBo.java index 71ea185..96ec2bc 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/bo/SysWithdrawalBo.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/bo/SysWithdrawalBo.java @@ -116,6 +116,10 @@ public class SysWithdrawalBo extends BaseEntity { private String businessName; + /** + * 同意时间 + */ + private Date agreeTime; } diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/vo/SysWithdrawalVo.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/vo/SysWithdrawalVo.java index 6859c0d..418d693 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/vo/SysWithdrawalVo.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/vo/SysWithdrawalVo.java @@ -140,5 +140,8 @@ public class SysWithdrawalVo implements Serializable { private String transferInfo; private String callback; - + /** + * 同意时间 + */ + private Date agreeTime; } diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysWithdrawalServiceImpl.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysWithdrawalServiceImpl.java index dabd9f4..0d78457 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysWithdrawalServiceImpl.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysWithdrawalServiceImpl.java @@ -1,5 +1,6 @@ package org.dromara.system.service.impl; +import cn.hutool.core.date.DateUtil; import cn.hutool.core.lang.UUID; import com.alibaba.fastjson.JSON; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; @@ -40,10 +41,7 @@ import org.springframework.transaction.annotation.Transactional; import java.math.BigDecimal; import java.math.RoundingMode; import java.security.cert.X509Certificate; -import java.util.ArrayList; -import java.util.List; -import java.util.Map; -import java.util.Collection; +import java.util.*; /** @@ -321,6 +319,7 @@ public class SysWithdrawalServiceImpl implements ISysWithdrawalService { if (bo.isAgree()) { updateWrapper.set("status", 1); updateWrapper.set("remark", ""); + updateWrapper.set("agree_time", new Date()); Long type = sysWithdrawalVo.getType(); //发起微信转账api if(type == 2){ @@ -437,4 +436,24 @@ public class SysWithdrawalServiceImpl implements ISysWithdrawalService { } } } + + @Override + @Transactional + public void cancelWxByAgreeTime() { + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(SysWithdrawal::getStatus, 1); + queryWrapper.le(SysWithdrawal::getAgreeTime, DateUtil.offsetDay(new Date(), -1).toJdkDate()); + queryWrapper.isNotNull(SysWithdrawal::getAgreeTime); + queryWrapper.eq(SysWithdrawal::getType, 1); + List sysWithdrawalVos = baseMapper.selectVoList(queryWrapper); + for (SysWithdrawalVo sysWithdrawalVo : sysWithdrawalVos) { + UpdateWrapper updateWrapper = new UpdateWrapper<>(); + updateWrapper.eq("id", sysWithdrawalVo.getId()); + updateWrapper.set("status", 2); + updateWrapper.set("remark", "长时间为确认,已取消"); + //增加余额 + sysBusinessBalanceService.addBalance(sysWithdrawalVo.getAmount(), sysWithdrawalVo.getBusinessId(), "提现驳回", sysWithdrawalVo.getId(),"withdrawal"); + + } + } } diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/task/SysWithdrawalExecutor.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/task/SysWithdrawalExecutor.java new file mode 100644 index 0000000..c35c668 --- /dev/null +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/task/SysWithdrawalExecutor.java @@ -0,0 +1,51 @@ +package org.dromara.system.task; + +import cn.dev33.satoken.annotation.SaCheckPermission; +import cn.dev33.satoken.annotation.SaIgnore; +import cn.hutool.core.date.DateUtil; +import jakarta.annotation.Resource; +import jakarta.servlet.http.HttpServletResponse; +import jakarta.validation.constraints.NotEmpty; +import jakarta.validation.constraints.NotNull; +import lombok.extern.slf4j.Slf4j; +import org.dromara.common.core.domain.R; +import org.dromara.common.core.validate.AddGroup; +import org.dromara.common.excel.utils.ExcelUtil; +import org.dromara.common.idempotent.annotation.RepeatSubmit; +import org.dromara.common.log.annotation.Log; +import org.dromara.common.log.enums.BusinessType; +import org.dromara.common.mybatis.core.page.PageQuery; +import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.common.web.core.BaseController; +import org.dromara.system.domain.bo.ExamineBo; +import org.dromara.system.domain.bo.SysWithdrawalBo; +import org.dromara.system.domain.vo.SysWithdrawalVo; +import org.dromara.system.service.ISysWithdrawalService; +import org.springframework.scheduling.annotation.EnableScheduling; +import org.springframework.scheduling.annotation.Scheduled; +import org.springframework.stereotype.Component; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +import java.util.Date; +import java.util.List; + +/** + * 系统提现 + * + * @author William + * @date 2025-02-20 + */ +@Component +@EnableScheduling +@Slf4j +public class SysWithdrawalExecutor extends BaseController { + @Resource + private ISysWithdrawalService sysWithdrawalService; + @Scheduled(cron = "0 * * * * ?") + public void run(){ + log.info("定时处理同意未提现的订单...开始:{}", DateUtil.format(new Date(), "yyyy-MM-dd HH:mm:ss")); + sysWithdrawalService.cancelWxByAgreeTime(); + log.info("定时处理同意未提现的订单...结束:{}", DateUtil.format(new Date(), "yyyy-MM-dd HH:mm:ss")); + } +}