From 16a823d330c25a2e4bc8e7ad2a01a21529c2283e Mon Sep 17 00:00:00 2001 From: GYJ <1157756119@qq.com> Date: Fri, 6 Dec 2024 11:14:08 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8F=90=E7=8E=B0=E5=A4=B1=E8=B4=A5=20?= =?UTF-8?q?=E5=A4=84=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/CourseServiceImpl.java | 2 +- .../controller/DiscSpinningController.java | 54 ++++++++++++------- .../com/sqx/modules/job/task/CashOutTask.java | 36 +++++++++++-- .../pay/service/impl/CashOutServiceImpl.java | 13 +++-- .../com/sqx/modules/pay/wuyou/BaseResp.java | 6 +++ .../com/sqx/modules/pay/wuyou/WuyouPay.java | 2 +- 6 files changed, 81 insertions(+), 32 deletions(-) diff --git a/src/main/java/com/sqx/modules/course/service/impl/CourseServiceImpl.java b/src/main/java/com/sqx/modules/course/service/impl/CourseServiceImpl.java index f98936ad..4536364c 100644 --- a/src/main/java/com/sqx/modules/course/service/impl/CourseServiceImpl.java +++ b/src/main/java/com/sqx/modules/course/service/impl/CourseServiceImpl.java @@ -1256,6 +1256,6 @@ public class CourseServiceImpl extends ServiceImpl implements courseDetailsDao.updateById(details); } - return null; + return Result.success(); } } diff --git a/src/main/java/com/sqx/modules/discSpinning/controller/DiscSpinningController.java b/src/main/java/com/sqx/modules/discSpinning/controller/DiscSpinningController.java index f12e0bf8..aa4b81da 100644 --- a/src/main/java/com/sqx/modules/discSpinning/controller/DiscSpinningController.java +++ b/src/main/java/com/sqx/modules/discSpinning/controller/DiscSpinningController.java @@ -144,29 +144,39 @@ public class DiscSpinningController { if (StringUtils.isNotBlank(userInfo.getZhiFuBao()) && StringUtils.isNotBlank(userInfo.getZhiFuBaoName())) { receive.setTarget("1"); //提现 - withdraw(receive, receive.getUserId(), receive.getNumber().doubleValue()); - }else { - UserMoneyDetails userMoneyDetails = new UserMoneyDetails(); - userMoneyDetails.setClassify(5); - userMoneyDetails.setMoney(receive.getNumber()); - userMoneyDetails.setUserId(receive.getUserId()); - SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); - userMoneyDetails.setCreateTime(simpleDateFormat.format(new Date())); - userMoneyDetails.setContent("现金大转盘:现金红包奖励"); - userMoneyDetails.setTitle("现金大转盘:现金红包奖励" + receive.getNumber() + "元"); - userMoneyDetails.setState(2); - userMoneyDetails.setType(1); - //存入余额 钱 - userMoneyService.updateAmount(1, receive.getUserId(), receive.getNumber().doubleValue()); - receive.setTarget("2"); - userMoneyDetailsService.save(userMoneyDetails); - receive.setTargetId(userMoneyDetails.getId()); + String result = withdraw(receive, receive.getUserId(), receive.getNumber().doubleValue()); + recordService.updateById(receive); + + if (StringUtils.isBlank(result)) { + return Result.success(); + } + + if ("提现成功,将在三个工作日内到账,请耐心等待!".equals(result)) { + return Result.success(result); + } } + + UserMoneyDetails userMoneyDetails = new UserMoneyDetails(); + userMoneyDetails.setClassify(5); + userMoneyDetails.setMoney(receive.getNumber()); + userMoneyDetails.setUserId(receive.getUserId()); + SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + userMoneyDetails.setCreateTime(simpleDateFormat.format(new Date())); + userMoneyDetails.setContent("现金大转盘:现金红包奖励"); + userMoneyDetails.setTitle("现金大转盘:现金红包奖励" + receive.getNumber() + "元"); + userMoneyDetails.setState(2); + userMoneyDetails.setType(1); + //存入余额 钱 + userMoneyService.updateAmount(1, receive.getUserId(), receive.getNumber().doubleValue()); + receive.setTarget("2"); + userMoneyDetailsService.save(userMoneyDetails); + receive.setTargetId(userMoneyDetails.getId()); + recordService.updateById(receive); return Result.success(); } - public void withdraw(DiscSpinningRecord record, Long userId, Double money) { + public String withdraw(DiscSpinningRecord record, Long userId, Double money) { UserEntity userInfo = userService.queryByUserId(userId); //最高提现金额 CommonInfo one2 = commonRepository.findOne(910); @@ -185,17 +195,21 @@ public class DiscSpinningController { cashOut.setCreateAt(date); if (one2 != null && money >= Double.parseDouble(one2.getValue())) { cashOutService.saveBody(cashOut); - return; + return "提现成功,将在三个工作日内到账,请耐心等待!"; } String outOrderNo = AliPayOrderUtil.createOrderId(); cashOut.setOrderNumber(outOrderNo); BaseResp baseResp = WuyouPay.extractOrder(outOrderNo, cashOut.getMoney(), cashOut.getZhifubao(), cashOut.getZhifubaoName()); - if (baseResp.getStatus().equals(2)) { + if (baseResp.getStatus() != null && baseResp.getStatus().equals(2)) { cashOut.setState(1); + } else if (StringUtils.isNotBlank(baseResp.getErrorMsg())) { + return baseResp.getErrorMsg(); } cashOutService.saveBody(cashOut); record.setTargetId(cashOut.getId()); + + return ""; } @Transactional diff --git a/src/main/java/com/sqx/modules/job/task/CashOutTask.java b/src/main/java/com/sqx/modules/job/task/CashOutTask.java index 141f54a3..aa583b5a 100644 --- a/src/main/java/com/sqx/modules/job/task/CashOutTask.java +++ b/src/main/java/com/sqx/modules/job/task/CashOutTask.java @@ -1,22 +1,34 @@ package com.sqx.modules.job.task; +import com.sqx.modules.app.entity.UserMoneyDetails; +import com.sqx.modules.app.service.UserMoneyDetailsService; +import com.sqx.modules.app.service.UserMoneyService; import com.sqx.modules.pay.dao.CashOutDao; import com.sqx.modules.pay.entity.CashOut; import com.sqx.modules.pay.wuyou.BaseResp; import com.sqx.modules.pay.wuyou.WuyouPay; import com.sqx.modules.utils.AliPayOrderUtil; +import org.apache.commons.lang3.StringUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; +import javax.annotation.Resource; +import java.math.BigDecimal; +import java.text.SimpleDateFormat; +import java.util.Date; import java.util.List; @Component("CashOutTask") -public class CashOutTask implements ITask{ +public class CashOutTask implements ITask { - @Autowired + @Resource private CashOutDao cashOutDao; + @Resource + private UserMoneyService userMoneyService; + @Resource + private UserMoneyDetailsService userMoneyDetailsService; private Logger logger = LoggerFactory.getLogger(getClass()); @@ -28,10 +40,24 @@ public class CashOutTask implements ITask{ String outOrderNo = AliPayOrderUtil.createOrderId(); cashOut.setOrderNumber(outOrderNo); BaseResp baseResp = WuyouPay.extractOrder(outOrderNo, cashOut.getMoney(), cashOut.getZhifubao(), cashOut.getZhifubaoName()); - if (baseResp.getStatus().equals(2)) { + if (baseResp.getStatus() != null && baseResp.getStatus().equals(2)) { cashOut.setState(1); - }else { - cashOut.setRefund(baseResp.getMsg()); + } else { + cashOut.setRefund(StringUtils.isNotBlank(baseResp.getMsg()) ? baseResp.getMsg() : baseResp.getErrorMsg()); + + UserMoneyDetails userMoneyDetails = new UserMoneyDetails(); + userMoneyDetails.setClassify(5); + userMoneyDetails.setMoney(new BigDecimal(cashOut.getMoney())); + userMoneyDetails.setUserId(cashOut.getUserId()); + SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + userMoneyDetails.setCreateTime(simpleDateFormat.format(new Date())); + userMoneyDetails.setContent("现金大转盘:提现失败存入余额"); + userMoneyDetails.setTitle("现金大转盘:现金红包奖励" + cashOut.getMoney() + "元"); + userMoneyDetails.setState(2); + userMoneyDetails.setType(1); + //存入余额 钱 + userMoneyService.updateAmount(1, cashOut.getUserId(), Double.parseDouble(cashOut.getMoney())); + userMoneyDetailsService.save(userMoneyDetails); } cashOutDao.updateById(cashOut); } diff --git a/src/main/java/com/sqx/modules/pay/service/impl/CashOutServiceImpl.java b/src/main/java/com/sqx/modules/pay/service/impl/CashOutServiceImpl.java index ee3f3ba6..2e396625 100644 --- a/src/main/java/com/sqx/modules/pay/service/impl/CashOutServiceImpl.java +++ b/src/main/java/com/sqx/modules/pay/service/impl/CashOutServiceImpl.java @@ -438,20 +438,23 @@ public class CashOutServiceImpl extends ServiceImpl impleme userMoneyDetails.setCreateTime(date); UserMoney userMoney = userMoneyService.selectUserMoneyByUserId(userId); //提现判断余额是否足够 - if (userMoney.getAmount().doubleValue() >= money) { //用户金豆足够 - //扣除可提现余额 - userMoneyService.updateAmount(2, userId, money); - }else { + if (userMoney.getAmount().doubleValue() < money) { return Result.success("可提现余额不足!"); } BaseResp baseResp = WuyouPay.extractOrder(outOrderNo, cashOut.getMoney(), cashOut.getZhifubao(), cashOut.getZhifubaoName()); - if (baseResp.getStatus().equals(2)) { + if (baseResp.getStatus() != null && baseResp.getStatus().equals(2)) { userMoneyDetails.setContent("成功提现:" + money); userMoneyDetails.setState(2); cashOut.setState(1); } + + if (baseResp.getErrorMsg() != null) { + return Result.error(baseResp.getErrorMsg()); + } + userMoneyDetailsService.save(userMoneyDetails); baseMapper.insert(cashOut); + userMoneyService.updateAmount(2, userId, money); return Result.success("提现成功,将在三个工作日内到账,请耐心等待!"); } diff --git a/src/main/java/com/sqx/modules/pay/wuyou/BaseResp.java b/src/main/java/com/sqx/modules/pay/wuyou/BaseResp.java index 7e7d3b57..bfbeba72 100644 --- a/src/main/java/com/sqx/modules/pay/wuyou/BaseResp.java +++ b/src/main/java/com/sqx/modules/pay/wuyou/BaseResp.java @@ -17,4 +17,10 @@ public class BaseResp { // 支付 只有 SUCCESS 是成功的 @JSONField(name = "pay_status") private String payStatus; + + @JSONField(name = "error_msg") + private String errorMsg; + + @JSONField(name = "error_code") + private String errorCode; } diff --git a/src/main/java/com/sqx/modules/pay/wuyou/WuyouPay.java b/src/main/java/com/sqx/modules/pay/wuyou/WuyouPay.java index 5de3f8ec..3c59b80d 100644 --- a/src/main/java/com/sqx/modules/pay/wuyou/WuyouPay.java +++ b/src/main/java/com/sqx/modules/pay/wuyou/WuyouPay.java @@ -121,7 +121,7 @@ public class WuyouPay { payOrder("20221118123456794", "0.1", "Mozilla/5.0"); // queryOrder("20221118123456791", "0.1", "Mozilla/5.0"); -// extractOrder("20221118123456793", "1", "1157756119@qq.com", "巩奕杰"); + extractOrder("20221118123456793", "1", "1157756119@qq.com", "巩奕杰"); // queryExtractOrder("20221118123456793", "1"); } }