diff --git a/src/main/java/cn/com/tenlion/operator/pojo/dtos/accountrecharge/AccountRechargeDTO.java b/src/main/java/cn/com/tenlion/operator/pojo/dtos/accountrecharge/AccountRechargeDTO.java
index 44b4bdb..f04a1f5 100644
--- a/src/main/java/cn/com/tenlion/operator/pojo/dtos/accountrecharge/AccountRechargeDTO.java
+++ b/src/main/java/cn/com/tenlion/operator/pojo/dtos/accountrecharge/AccountRechargeDTO.java
@@ -64,6 +64,16 @@ public class AccountRechargeDTO {
private String rechargeRemark;
@ApiModelProperty(name = "selfData", value = "平台账户/自定义数据")
private String selfData;
+ @ApiModelProperty(name = "packageInfoId", value = "套餐包")
+ private String packageInfoId;
+
+ public String getPackageInfoId() {
+ return packageInfoId == null ? "" : packageInfoId.trim();
+ }
+
+ public void setPackageInfoId(String packageInfoId) {
+ this.packageInfoId = packageInfoId;
+ }
public String getOrgName() {
return orgName == null ? "" : orgName.trim();
diff --git a/src/main/java/cn/com/tenlion/operator/pojo/vos/accountrecharge/AccountRechargeVO.java b/src/main/java/cn/com/tenlion/operator/pojo/vos/accountrecharge/AccountRechargeVO.java
index f370946..e451ed0 100644
--- a/src/main/java/cn/com/tenlion/operator/pojo/vos/accountrecharge/AccountRechargeVO.java
+++ b/src/main/java/cn/com/tenlion/operator/pojo/vos/accountrecharge/AccountRechargeVO.java
@@ -53,6 +53,16 @@ public class AccountRechargeVO {
private String rechargeRemark;
@ApiModelProperty(name = "selfData", value = "平台账户/自定义数据")
private String selfData;
+ @ApiModelProperty(name = "packageInfoId", value = "自定义回调函数/2025年2月28日10:03:44/CBC新增")
+ private String packageInfoId;
+
+ public String getPackageInfoId() {
+ return packageInfoId == null ? "" : packageInfoId.trim();
+ }
+
+ public void setPackageInfoId(String packageInfoId) {
+ this.packageInfoId = packageInfoId;
+ }
public String getUserId() {
return userId == null ? "" : userId.trim();
diff --git a/src/main/java/cn/com/tenlion/operator/remote/IOperatorPluginRemoteService.java b/src/main/java/cn/com/tenlion/operator/remote/IOperatorPluginRemoteService.java
index 64fd612..879fc35 100644
--- a/src/main/java/cn/com/tenlion/operator/remote/IOperatorPluginRemoteService.java
+++ b/src/main/java/cn/com/tenlion/operator/remote/IOperatorPluginRemoteService.java
@@ -8,6 +8,7 @@ import ink.wgink.annotation.rpc.rest.params.RemoteJsonBodyParams;
import ink.wgink.annotation.rpc.rest.params.RemotePathParams;
import ink.wgink.annotation.rpc.rest.params.RemoteQueryParams;
import ink.wgink.annotation.rpc.rest.params.RemoteServerParams;
+import ink.wgink.pojo.result.SuccessResult;
import java.util.HashMap;
import java.util.List;
@@ -15,6 +16,16 @@ import java.util.List;
@RemoteService
public interface IOperatorPluginRemoteService {
+ @RemotePostMethod("/resource/packageorder/update")
+ SuccessResult updateOrder(@RemoteServerParams String server,
+ @RemoteJsonBodyParams PackageOrderAppVO appVO,
+ @RemoteQueryParams("access_token") String accessToken);
+
+ @RemotePostMethod("/resource/packageorder/save")
+ SuccessResult saveOrder(@RemoteServerParams String server,
+ @RemoteJsonBodyParams PackageOrderAppVO appVO,
+ @RemoteQueryParams("access_token") String accessToken);
+
@RemoteGetMethod("/resource/useric/get/{usericId}")
UsericDTO getUseric(@RemoteServerParams String server,
@RemotePathParams("usericId") String usericId,
@@ -31,4 +42,5 @@ public interface IOperatorPluginRemoteService {
@RemoteQueryParams("access_token") String accessToken,
@RemoteQueryParams("page") int page,
@RemoteQueryParams("rows") int rows);
+
}
diff --git a/src/main/java/cn/com/tenlion/operator/remote/PackageOrderAppVO.java b/src/main/java/cn/com/tenlion/operator/remote/PackageOrderAppVO.java
new file mode 100644
index 0000000..13591f5
--- /dev/null
+++ b/src/main/java/cn/com/tenlion/operator/remote/PackageOrderAppVO.java
@@ -0,0 +1,61 @@
+package cn.com.tenlion.operator.remote;
+
+import ink.wgink.annotation.CheckEmptyAnnotation;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
+/**
+ *
+ * @ClassName: PackageOrderAppVO
+ * @Description: 套餐包-订单
+ * @Author: CodeFactory
+ * @Date: 2025-02-26 14:48:15
+ * @Version: 3.0
+ **/
+@ApiModel
+public class PackageOrderAppVO {
+
+ @ApiModelProperty(name = "packageInfoId", value = "套餐ID")
+ @CheckEmptyAnnotation(name = "套餐ID")
+ private String packageInfoId;
+ @ApiModelProperty(name = "userId", value = "用户ID")
+ @CheckEmptyAnnotation(name = "用户ID")
+ private String userId;
+ @ApiModelProperty(name = "accountRechargeId", value = "用户充值记录ID")
+ @CheckEmptyAnnotation(name = "用户充值记录")
+ private String accountRechargeId;
+ @ApiModelProperty(name = "accountItemId", value = "用户充值流水记录ID")
+ private String accountItemId;
+
+ public String getAccountItemId() {
+ return accountItemId == null ? "" : accountItemId.trim();
+ }
+
+ public void setAccountItemId(String accountItemId) {
+ this.accountItemId = accountItemId;
+ }
+
+ public String getAccountRechargeId() {
+ return accountRechargeId == null ? "" : accountRechargeId.trim();
+ }
+
+ public void setAccountRechargeId(String accountRechargeId) {
+ this.accountRechargeId = accountRechargeId;
+ }
+
+ public String getUserId() {
+ return userId == null ? "" : userId.trim();
+ }
+
+ public void setUserId(String userId) {
+ this.userId = userId;
+ }
+
+ public String getPackageInfoId() {
+ return packageInfoId == null ? "" : packageInfoId.trim();
+ }
+
+ public void setPackageInfoId(String packageInfoId) {
+ this.packageInfoId = packageInfoId;
+ }
+}
diff --git a/src/main/java/cn/com/tenlion/operator/service/accountrecharge/impl/AccountRechargeServiceImpl.java b/src/main/java/cn/com/tenlion/operator/service/accountrecharge/impl/AccountRechargeServiceImpl.java
index e1551f8..8f0345c 100644
--- a/src/main/java/cn/com/tenlion/operator/service/accountrecharge/impl/AccountRechargeServiceImpl.java
+++ b/src/main/java/cn/com/tenlion/operator/service/accountrecharge/impl/AccountRechargeServiceImpl.java
@@ -7,8 +7,11 @@ import cn.com.tenlion.operator.enums.ThirdPartyEnum;
import cn.com.tenlion.operator.pojo.dtos.accountbank.AccountBankDTO;
import cn.com.tenlion.operator.pojo.dtos.accountrecharge.AccountRechargePayDTO;
import cn.com.tenlion.operator.pojo.dtos.accountrecharge.AccountRechargePayResultDTO;
+import cn.com.tenlion.operator.pojo.dtos.ic.UsericDTO;
import cn.com.tenlion.operator.pojo.vos.accountitem.AccountItemVO;
import cn.com.tenlion.operator.properties.SystemApiPathProperties;
+import cn.com.tenlion.operator.remote.IOperatorPluginRemoteService;
+import cn.com.tenlion.operator.remote.PackageOrderAppVO;
import cn.com.tenlion.operator.service.account.IAccountService;
import cn.com.tenlion.operator.service.accountbank.IAccountBankService;
import cn.com.tenlion.operator.service.accountitem.IAccountItemService;
@@ -27,8 +30,10 @@ import ink.wgink.exceptions.ParamsException;
import ink.wgink.exceptions.SaveException;
import ink.wgink.exceptions.SearchException;
import ink.wgink.interfaces.user.IUserBaseService;
+import ink.wgink.module.oauth2.manager.OAuth2ClientTokenManager;
import ink.wgink.pojo.ListPage;
import ink.wgink.pojo.dtos.user.UserDTO;
+import ink.wgink.pojo.result.SuccessResult;
import ink.wgink.pojo.result.SuccessResultList;
import ink.wgink.util.date.DateUtil;
import ink.wgink.util.map.HashMapUtil;
@@ -79,6 +84,8 @@ public class AccountRechargeServiceImpl extends DefaultBaseService implements IA
private SysCallbackService sysCallbackService;
@Autowired
private SystemApiPathProperties systemApiPathProperties;
+ @Autowired
+ private IOperatorPluginRemoteService operatorPluginRemoteService;
@Override
public void save(AccountRechargeVO accountRechargeVO) {
@@ -337,8 +344,22 @@ public class AccountRechargeServiceImpl extends DefaultBaseService implements IA
}
params.put("gmtModified", DateUtil.getTime());
accountRechargeDao.updateCheck(params);
- }
+ // 2025年2月28日11:12:47 CBC 新增 套餐包 逻辑
+ AccountRechargeDTO dto = get(accountRechargeId);
+ // 绑定了套餐包 & 已对账 & 已到账
+ if(!StringUtils.isEmpty(dto.getPackageInfoId()) && dto.getReconciliationStatus().equals("1") && dto.getRechargeCheck().equals("2")) {
+ // 远程更改套餐包的到账状态
+ PackageOrderAppVO appVO = new PackageOrderAppVO();
+ appVO.setAccountItemId(dto.getAccountItemId());
+ appVO.setPackageInfoId(dto.getPackageInfoId());
+ appVO.setUserId(dto.getCreator());
+ appVO.setAccountRechargeId(dto.getAccountRechargeId());
+
+ String accessToken = OAuth2ClientTokenManager.getInstance().getToken().getAccessToken();
+ operatorPluginRemoteService.updateOrder(systemApiPathProperties.getOperatorPlugin(), appVO, accessToken);
+ }
+ }
@Override
public AccountRechargePayDTO saveAccount(String thirdParty, AccountRechargeVO accountRechargeVO) {
@@ -392,6 +413,17 @@ public class AccountRechargeServiceImpl extends DefaultBaseService implements IA
params.put("gmtModified", currentDate);
params.put("isDelete", 0);
accountRechargeDao.save(params);
+
+ // 创建套餐包购买记录
+ if(!StringUtils.isEmpty(accountRechargeVO.getPackageInfoId())) {
+ PackageOrderAppVO appVO = new PackageOrderAppVO();
+ appVO.setPackageInfoId(accountRechargeVO.getPackageInfoId());
+ appVO.setUserId(userId);
+ appVO.setAccountRechargeId(payDTO.getAccountRechargeId());
+
+ String accessToken = OAuth2ClientTokenManager.getInstance().getToken().getAccessToken();
+ operatorPluginRemoteService.saveOrder(systemApiPathProperties.getOperatorPlugin(), appVO, accessToken);
+ }
}
return payDTO;
}
@@ -568,6 +600,9 @@ public class AccountRechargeServiceImpl extends DefaultBaseService implements IA
updateCheck(dto.getAccountRechargeId(), RechargeCheckEnum.RECHARGE_SUCCESS, "线上充值", accountItemId, orderId, successTime);
// 3. 调用第三方接口, 告知充值到账
sysCallbackService.save("项目充值到账", systemApiPathProperties.getCopyright() + "api/pay/recharge-success/user-id/" + dto.getAccountId(), null);
+ // 2025年2月28日10:34:10 CBC 新增 套餐包购买
+
+
}
}
diff --git a/src/main/resources/mybatis/mapper/accountrecharge/account-recharge-mapper.xml b/src/main/resources/mybatis/mapper/accountrecharge/account-recharge-mapper.xml
index 17c6f34..dc10486 100644
--- a/src/main/resources/mybatis/mapper/accountrecharge/account-recharge-mapper.xml
+++ b/src/main/resources/mybatis/mapper/accountrecharge/account-recharge-mapper.xml
@@ -16,6 +16,7 @@
+
@@ -79,6 +80,7 @@
reconciliation_status,
reconciliation_time,
account_item_id,
+ package_info_id,
org_name,
org_bank,
org_number,
@@ -103,6 +105,7 @@
#{reconciliationStatus},
#{reconciliationTime},
#{accountItemId},
+ #{packageInfoId},
#{orgName},
#{orgBank},
#{orgNumber},
@@ -268,13 +271,15 @@
t1.reconciliation_status,
t1.reconciliation_time,
t1.account_item_id,
+ t1.package_info_id,
t1.account_recharge_id,
t1.recharge_money,
t1.org_name,
t1.org_bank,
t1.org_number,
t1.self_data,
- t1.recharge_remark
+ t1.recharge_remark,
+ t1.creator
FROM
operator_account_recharge t1
WHERE
@@ -428,6 +433,7 @@
t1.reconciliation_status,
t1.reconciliation_time,
t1.account_item_id,
+ t1.package_info_id,
t1.creator,
t1.gmt_create,
t1.modifier,