Commit 8cbaffa1 by renyizhao

获取apiKey充值流程完成

parent 691af29b
......@@ -15,4 +15,5 @@ public class AiTokenRespVO {
private String apiKey;
private String message;
private String balance;
private String baseUrl;
}
\ No newline at end of file
package com.luhu.computility.module.apihub.controller.app;
import com.luhu.computility.framework.security.core.util.SecurityFrameworkUtils;
import com.luhu.computility.module.apihub.config.NewApiProperties;
import com.luhu.computility.module.apihub.controller.admin.newapi.AiTokenRespVO;
import com.luhu.computility.module.apihub.controller.admin.newapi.NewApiResponse;
import com.luhu.computility.module.apihub.service.newapi.AiTokenService;
......@@ -27,6 +28,9 @@ public class AppAiTokenController {
@Resource
private NewApiClient newApiClient;
@Resource
private NewApiProperties newApiProperties;
@PostMapping("/get")
public AiTokenRespVO getToken() {
Long userId = SecurityFrameworkUtils.getLoginUserId();
......@@ -120,7 +124,8 @@ public class AppAiTokenController {
.success(true)
.hasToken(hasToken)
.apiKey(user.getNewapiKey())
.balance(balance);
.balance(balance)
.baseUrl(newApiProperties.getBaseUrl());
return builder.build();
}
......
......@@ -68,8 +68,8 @@ public class MemberRechargeWpgjPayController {
// 2. 根据订单状态更新充值记录
if (WpgjOrderStatusEnum.isSuccess(orderStatus)) {
// 支付成功:更新充值状态为已支付
memberRechargeService.updateRechargeStatus(Long.parseLong(merOrderId), 1);
// 支付成功:更新充值状态为已支付,回调状态为已处理
memberRechargeService.updateRechargeStatus(Long.parseLong(merOrderId), 1, 1);
// 3. 执行充值兑换(调用 new API 增加额度)
try {
......@@ -81,8 +81,8 @@ public class MemberRechargeWpgjPayController {
log.info("[notifyWpgjPay][Member] 支付成功处理完成,商户订单号: {}", merOrderId);
} else if (WpgjOrderStatusEnum.isFailedOrClosed(orderStatus)) {
// 支付失败/关闭:更新充值状态为支付失败
memberRechargeService.updateRechargeStatus(Long.parseLong(merOrderId), -1);
// 支付失败/关闭:更新充值状态为支付失败,回调状态为已处理
memberRechargeService.updateRechargeStatus(Long.parseLong(merOrderId), -1, 1);
log.info("[notifyWpgjPay][Member] 支付失败/关闭处理完成,商户订单号: {}", merOrderId);
} else {
log.info("[notifyWpgjPay][Member] 订单状态无需处理,商户订单号: {}, 状态: {}", merOrderId, orderStatus);
......
......@@ -16,6 +16,11 @@ public class MemberRechargeRespVO {
@Schema(description = "用户ID", example = "1")
private Long userId;
/**
* 用户名/手机号
*/
private String userMobile;
@Schema(description = "充值金额(元)")
private java.math.BigDecimal amount;
......@@ -43,6 +48,9 @@ public class MemberRechargeRespVO {
@Schema(description = "回调状态", example = "1")
private Integer callbackStatus;
@Schema(description = "回调状态名称")
private String callbackStatusName;
@Schema(description = "备注")
private String remark;
......
......@@ -21,7 +21,7 @@ public interface MemberRechargeService {
/**
* 更新充值记录状态
*/
void updateRechargeStatus(Long id, Integer payStatus);
void updateRechargeStatus(Long id, Integer payStatus, Integer callbackStatus);
/**
* 更新支付回调状态
......
......@@ -43,6 +43,11 @@ public class MemberRechargeServiceImpl implements MemberRechargeService {
2, "已退款"
);
private static final Map<Integer, String> CALLBACK_STATUS_NAMES = Map.of(
0, "未处理",
1, "已处理"
);
private static final Map<Integer, String> REDEEM_STATUS_NAMES = Map.of(
-1, "兑换失败",
0, "未兑换",
......@@ -78,15 +83,18 @@ public class MemberRechargeServiceImpl implements MemberRechargeService {
}
@Override
public void updateRechargeStatus(Long id, Integer payStatus) {
public void updateRechargeStatus(Long id, Integer payStatus, Integer callbackStatus) {
MemberRechargeDO updateDO = MemberRechargeDO.builder().build();
updateDO.setId(id);
updateDO.setPayStatus(payStatus);
if (payStatus == 1) {
updateDO.setPayTime(LocalDateTime.now());
}
if (callbackStatus != null) {
updateDO.setCallbackStatus(callbackStatus);
}
rechargeMapper.updateById(updateDO);
log.info("[更新充值状态] id={}, payStatus={}", id, payStatus);
log.info("[更新充值状态] id={}, payStatus={}, callbackStatus={}", id, payStatus, callbackStatus);
}
@Override
......@@ -113,8 +121,25 @@ public class MemberRechargeServiceImpl implements MemberRechargeService {
@Override
public PageResult<MemberRechargeRespVO> getRechargePage(MemberRechargePageReqVO reqVO) {
PageResult<MemberRechargeDO> pageResult = rechargeMapper.selectPage(reqVO);
// 批量获取所有用户信息
List<Long> userIds = pageResult.getList().stream()
.map(MemberRechargeDO::getUserId)
.distinct()
.collect(Collectors.toList());
java.util.Map<Long, MemberUserDO> userMap = new java.util.HashMap<>();
for (Long uid : userIds) {
if (uid != null) {
MemberUserDO user = memberUserService.getUser(uid);
if (user != null) {
userMap.put(uid, user);
}
}
}
final java.util.Map<Long, MemberUserDO> finalUserMap = userMap;
List<MemberRechargeRespVO> voList = pageResult.getList().stream()
.map(this::convertToRespVO)
.map(recharge -> convertToRespVO(recharge, finalUserMap.get(recharge.getUserId())))
.collect(Collectors.toList());
return new PageResult<>(voList, pageResult.getTotal());
}
......@@ -234,10 +259,10 @@ public class MemberRechargeServiceImpl implements MemberRechargeService {
rechargeMapper.updateById(updateDO);
}
private MemberRechargeRespVO convertToRespVO(MemberRechargeDO recharge) {
private MemberRechargeRespVO convertToRespVO(MemberRechargeDO recharge, MemberUserDO user) {
MemberRechargeRespVO vo = new MemberRechargeRespVO();
vo.setId(recharge.getId());
vo.setUserId(recharge.getUserId());
vo.setUserMobile(user != null ? user.getMobile() : null);
vo.setAmount(recharge.getAmount());
vo.setQuota(recharge.getQuota());
vo.setPayChannel(recharge.getPayChannel());
......@@ -246,7 +271,9 @@ public class MemberRechargeServiceImpl implements MemberRechargeService {
vo.setPayStatusName(PAY_STATUS_NAMES.getOrDefault(recharge.getPayStatus(), "未知"));
vo.setPayTime(recharge.getPayTime());
vo.setTransactionId(recharge.getTransactionId());
vo.setCallbackStatus(recharge.getCallbackStatus());
vo.setCallbackStatus(recharge.getPayStatus() == 1 ? 1 : (recharge.getCallbackStatus() != null ? recharge.getCallbackStatus() : 0));
vo.setCallbackStatusName(CALLBACK_STATUS_NAMES.getOrDefault(
recharge.getPayStatus() == 1 ? 1 : (recharge.getCallbackStatus() != null ? recharge.getCallbackStatus() : 0), "未知"));
vo.setRemark(recharge.getRemark());
vo.setCreateTime(recharge.getCreateTime());
vo.setUpdateTime(recharge.getUpdateTime());
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment