提现定时任务修改
This commit is contained in:
parent
e34dd90fd0
commit
6b68ad9455
|
|
@ -0,0 +1,107 @@
|
|||
package com.sqx;
|
||||
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import cn.hutool.json.JSONUtil;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.sqx.modules.app.dao.UserDao;
|
||||
import com.sqx.modules.app.dao.UserMoneyDao;
|
||||
import com.sqx.modules.app.dao.UserMoneyDetailsDao;
|
||||
import com.sqx.modules.app.entity.UserMoney;
|
||||
import com.sqx.modules.app.service.InviteAchievementService;
|
||||
import com.sqx.modules.app.service.UserService;
|
||||
import com.sqx.modules.job.task.TempOrdersTask;
|
||||
import com.sqx.modules.orders.entity.Orders;
|
||||
import com.sqx.modules.orders.service.OrdersService;
|
||||
import com.sqx.modules.pay.dao.CashOutDao;
|
||||
import com.sqx.modules.pay.dao.PayDetailsDao;
|
||||
import com.sqx.modules.pay.entity.CashOut;
|
||||
import com.sqx.modules.pay.entity.PayDetails;
|
||||
import com.sqx.modules.pay.service.PayDetailsService;
|
||||
import com.sqx.modules.pay.wuyou.BaseResp;
|
||||
import com.sqx.modules.pay.wuyou.WuyouPay;
|
||||
import com.sqx.modules.sys.dao.SysUserMoneyDao;
|
||||
import com.sqx.modules.sys.entity.SysUserMoney;
|
||||
import com.sqx.modules.sys.service.SysUserService;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.boot.context.event.ApplicationReadyEvent;
|
||||
import org.springframework.context.ApplicationContext;
|
||||
import org.springframework.context.ApplicationListener;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
|
||||
@Component
|
||||
public class OneTimeTaskListener implements ApplicationListener<ApplicationReadyEvent> {
|
||||
|
||||
final ApplicationContext applicationContext;
|
||||
final UserService userService;
|
||||
final TempOrdersTask tempOrdersTask;
|
||||
final InviteAchievementService inviteAchievementService;
|
||||
final PayDetailsService payDetailsService;
|
||||
final PayDetailsDao payDetailsDao;
|
||||
final UserMoneyDetailsDao userMoneyDetailsDao;
|
||||
final UserMoneyDao userMoneyDao;
|
||||
|
||||
private final OrdersService ordersService;
|
||||
private final WuyouPay wuyouPay;
|
||||
private final SysUserMoneyDao sysUserMoneyDao;
|
||||
private Logger logger = LoggerFactory.getLogger(getClass());
|
||||
private final CashOutDao cashOutDao;
|
||||
|
||||
public OneTimeTaskListener(ApplicationContext applicationContext, UserService userService, TempOrdersTask tempOrdersTask, InviteAchievementService inviteAchievementService, PayDetailsService payDetailsService, PayDetailsDao payDetailsDao, UserMoneyDetailsDao userMoneyDetailsDao, UserMoneyDao userMoneyDao, OrdersService ordersService, WuyouPay wuyouPay, CashOutDao cashOutDao, SysUserMoneyDao sysUserMoneyDao) {
|
||||
this.applicationContext = applicationContext;
|
||||
this.userService = userService;
|
||||
this.tempOrdersTask = tempOrdersTask;
|
||||
this.inviteAchievementService = inviteAchievementService;
|
||||
this.payDetailsService = payDetailsService;
|
||||
this.payDetailsDao = payDetailsDao;
|
||||
this.userMoneyDetailsDao = userMoneyDetailsDao;
|
||||
this.userMoneyDao = userMoneyDao;
|
||||
this.ordersService = ordersService;
|
||||
this.wuyouPay = wuyouPay;
|
||||
this.cashOutDao = cashOutDao;
|
||||
this.sysUserMoneyDao = sysUserMoneyDao;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onApplicationEvent(ApplicationReadyEvent event) {
|
||||
logger.info("应用启动完成后执行一次性方法");
|
||||
|
||||
List<CashOut> cashOutList = cashOutDao.selectList(new LambdaQueryWrapper<CashOut>()
|
||||
.eq(CashOut::getState, 2)
|
||||
.isNull(CashOut::getOutAt)
|
||||
.eq(CashOut::getRefund, "订单不存在")
|
||||
.between(CashOut::getCreateAt, "2025-01-07 19:00:00", "2025-01-08 09:26:00"));
|
||||
for (CashOut cashOut : cashOutList) {
|
||||
logger.info("处理体现订单: {}", cashOut.getId());
|
||||
try {
|
||||
BaseResp baseResp = wuyouPay.queryExtractOrder(cashOut.getOrderNumber(), cashOut.getUserId(), cashOut.getUserType() != 2, cashOut.getMoney());
|
||||
logger.info("baseResp:{} ", JSONUtil.toJsonStr(baseResp));
|
||||
if (baseResp.getStatus() != null && (baseResp.getStatus().equals(2) || baseResp.getStatus().equals(10000))){
|
||||
logger.info("成功订单: {}, {}", cashOut.getId(), cashOut.getUserName());
|
||||
if (cashOut.getUserType() != null && cashOut.getUserType().equals(2)) {
|
||||
SysUserMoney sysUserMoney = sysUserMoneyDao.selectOne(new LambdaQueryWrapper<SysUserMoney>().eq(SysUserMoney::getUserId, cashOut.getUserId()));
|
||||
if (sysUserMoney != null) {
|
||||
sysUserMoneyDao.decrMoney(cashOut.getMoney(), cashOut.getUserId());
|
||||
}
|
||||
}else {
|
||||
UserMoney userMoney = userMoneyDao.selectOne(new LambdaQueryWrapper<UserMoney>().eq(UserMoney::getUserId, cashOut.getUserId()));
|
||||
if (userMoney != null) {
|
||||
userMoneyDao.decrMoney(cashOut.getMoney(), cashOut.getUserId());
|
||||
}
|
||||
}
|
||||
cashOut.setState(1);
|
||||
cashOut.setRefund("二次询问成功");
|
||||
cashOut.setOutAt(DateUtil.now());
|
||||
cashOutDao.update(cashOut, new LambdaQueryWrapper<CashOut>().eq(CashOut::getUserId, cashOut.getUserId()).eq(CashOut::getId, cashOut.getId()));
|
||||
}
|
||||
}catch (Exception e) {
|
||||
logger.error("", e);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -23,4 +23,7 @@ public interface UserMoneyDao extends BaseMapper<UserMoney> {
|
|||
|
||||
@Update("update user_money set amount=amount+#{money} where user_id=#{userId}")
|
||||
Boolean incrMoney(@Param("money") String money, @Param("userId") Long userId);
|
||||
|
||||
@Update("update user_money set amount=amount-#{money} where user_id=#{userId}")
|
||||
Boolean decrMoney(@Param("money") String money, @Param("userId") Long userId);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -4,7 +4,9 @@ import cn.hutool.core.date.DateUtil;
|
|||
import cn.hutool.json.JSONUtil;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.sqx.modules.app.dao.UserMoneyDao;
|
||||
import com.sqx.modules.app.dao.UserMoneyDetailsDao;
|
||||
import com.sqx.modules.app.entity.UserMoney;
|
||||
import com.sqx.modules.app.entity.UserMoneyDetails;
|
||||
import com.sqx.modules.pay.dao.CashOutDao;
|
||||
import com.sqx.modules.pay.entity.CashOut;
|
||||
import com.sqx.modules.pay.wuyou.BaseResp;
|
||||
|
|
@ -19,6 +21,7 @@ import org.springframework.scheduling.annotation.Scheduled;
|
|||
import org.springframework.stereotype.Component;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.math.BigDecimal;
|
||||
import java.util.List;
|
||||
|
||||
@Component
|
||||
|
|
@ -35,6 +38,8 @@ public class TempCashOutTask{
|
|||
private UserMoneyDao userMoneyDao;
|
||||
@Autowired
|
||||
private SysUserMoneyDao sysUserMoneyDao;
|
||||
@Autowired
|
||||
private UserMoneyDetailsDao userMoneyDetailsDao;
|
||||
|
||||
@Scheduled(cron = "0 0/8 * * * ? ")
|
||||
public void run() {
|
||||
|
|
@ -73,6 +78,18 @@ public class TempCashOutTask{
|
|||
cashOut.setState(2);
|
||||
cashOut.setRefund(baseResp.getMsg());
|
||||
cashOutDao.update(cashOut, new LambdaQueryWrapper<CashOut>().eq(CashOut::getUserId, cashOut.getUserId()).eq(CashOut::getId, cashOut.getId()));
|
||||
|
||||
UserMoneyDetails details = new UserMoneyDetails();
|
||||
details.setUserId(cashOut.getUserId());
|
||||
details.setTitle("提现失败存入余额" + cashOut.getMoney() + "元");
|
||||
details.setClassify(4);
|
||||
details.setType(1);
|
||||
details.setState(2);
|
||||
details.setMoney(new BigDecimal(cashOut.getMoney()));
|
||||
details.setContent("提现失败存入余额");
|
||||
details.setMoneyType(1);
|
||||
details.setCreateTime(DateUtil.date().toString());
|
||||
userMoneyDetailsDao.insert(details);
|
||||
}
|
||||
}catch (Exception e) {
|
||||
logger.error("体现定时任务查询出错", e);
|
||||
|
|
|
|||
|
|
@ -14,5 +14,9 @@ public interface SysUserMoneyDao extends BaseMapper<SysUserMoney> {
|
|||
|
||||
@Update("update sys_user_money set money=money+#{money} where user_id=#{userId}")
|
||||
Boolean incrMoney(@Param("money") String money, @Param("userId") Long userId);
|
||||
|
||||
|
||||
@Update("update sys_user_money set money=money-#{money} where user_id=#{userId}")
|
||||
Boolean decrMoney(@Param("money") String money, @Param("userId") Long userId);
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue