提现 失败 情况 处理

This commit is contained in:
wangw 2024-12-06 11:21:59 +08:00
parent c6dae69abc
commit 858bf4fc79
1 changed files with 39 additions and 14 deletions

View File

@ -5,6 +5,9 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.sqx.common.utils.DateUtils;
import com.sqx.common.utils.Result;
import com.sqx.modules.app.entity.UserEntity;
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.app.service.UserService;
import com.sqx.modules.invite.service.InviteService;
import com.sqx.modules.orders.entity.Orders;
@ -21,8 +24,10 @@ import com.sqx.modules.utils.AliPayOrderUtil;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import java.math.BigDecimal;
import java.text.SimpleDateFormat;
@ -43,16 +48,22 @@ public class WuyouController {
private final PayDetailsDao payDetailsDao;
private final UserService userService;
private final InviteService inviteService;
private final UserMoneyService userMoneyService;
private final UserMoneyDetailsService userMoneyDetailsService;
private final CashOutDao cashOutDao;
private final SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
WuyouController(OrdersService ordersService, PayDetailsDao payDetailsDao, UserService userService, InviteService inviteService, CashOutDao cashOutDao) {
WuyouController(OrdersService ordersService, PayDetailsDao payDetailsDao, UserService userService, InviteService inviteService, CashOutDao cashOutDao,
UserMoneyService userMoneyService, UserMoneyDetailsService userMoneyDetailsService) {
this.ordersService = ordersService;
this.payDetailsDao = payDetailsDao;
this.userService = userService;
this.inviteService = inviteService;
this.cashOutDao = cashOutDao;
this.userMoneyService = userMoneyService;
this.userMoneyDetailsService = userMoneyDetailsService;
}
@ApiOperation("支付订单")
@ -95,24 +106,38 @@ public class WuyouController {
@PostMapping("/extractNotify")
public String extractNotify(HttpServletRequest request, NotifyDto notifyDto) {
log.info("无忧支付提现回调, {}", notifyDto);
Map<String, Object> params = new HashMap<>();
params.put("callbacks", notifyDto.getCallbacks());
params.put("total", notifyDto.getTotal());
params.put("out_trade_no", notifyDto.getOut_trade_no());
params.put("status", notifyDto.getStatus());
params.put("msg", notifyDto.getMsg());
// Map<String, Object> params = new HashMap<>();
// params.put("callbacks", notifyDto.getCallbacks());
// params.put("total", notifyDto.getTotal());
// params.put("out_trade_no", notifyDto.getOut_trade_no());
// params.put("status", notifyDto.getStatus());
// params.put("msg", notifyDto.getMsg());
String sign = Encrypt.getParamsSign(params);
if (!sign.equals(notifyDto.getSign())) {
log.error("无忧支付提现回调签名错误, 参数: {},签名结果:{}", JSONObject.toJSONString(notifyDto), sign);
return "签名错误";
}
// String sign = Encrypt.getParamsSign(params);
// if (!sign.equals(notifyDto.getSign())) {
// log.error("无忧支付提现回调签名错误, 参数: {},签名结果:{}", JSONObject.toJSONString(notifyDto), sign);
// return "签名错误";
// }
CashOut cashOut = cashOutDao.selectOne(new QueryWrapper<CashOut>().eq("order_number", notifyDto.getOut_trade_no()));
if (cashOut != null) {
if("2".equals(notifyDto.getStatus())){
if ("2".equals(notifyDto.getStatus())) {
cashOut.setState(1);
}else {
} else {
cashOut.setRefund(notifyDto.getMsg());
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);
}
}
return "success";