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 79ba4f5..b6671e2 100644 --- a/src/main/java/cn/com/tenlion/operator/remote/IOperatorPluginRemoteService.java +++ b/src/main/java/cn/com/tenlion/operator/remote/IOperatorPluginRemoteService.java @@ -9,6 +9,7 @@ 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 ink.wgink.pojo.result.SuccessResultData; import java.util.HashMap; import java.util.List; @@ -23,7 +24,7 @@ public interface IOperatorPluginRemoteService { * @return */ @RemotePostMethod("/resource/packageorder/update-close/{packageNo}") - SuccessResult updateClose(@RemoteServerParams String server, + SuccessResultData updateClose(@RemoteServerParams String server, @RemotePathParams("packageNo") String packageNo, @RemoteQueryParams("access_token") String accessToken); @@ -33,10 +34,24 @@ public interface IOperatorPluginRemoteService { * @param accessToken * @return */ - @RemotePostMethod("/resource/packageorder/update-pay/{packageNo}") - SuccessResult updatePay(@RemoteServerParams String server, - @RemotePathParams("packageNo") String packageNo, - @RemoteQueryParams("access_token") String accessToken); + @RemotePostMethod("/resource/packageorder/update-pay/{packageNo}/{packageAccountItem}") + SuccessResultData updatePay(@RemoteServerParams String server, + @RemotePathParams("packageNo") String packageNo, + @RemotePathParams("packageAccountItem") String packageAccountItem, + @RemoteQueryParams("access_token") String accessToken); + + + /** + * 获取套餐包信息 + * @param server + * @param accessToken + * @return + */ + @RemoteGetMethod("/resource/packageorder/getByNo/{packageNo}") + PackageOrderDTO getByNo(@RemoteServerParams String server, + @RemotePathParams("packageNo") String packageNo, + @RemoteQueryParams("access_token") String accessToken); + /** * 创建套餐包购买记录 @@ -46,7 +61,7 @@ public interface IOperatorPluginRemoteService { * @return */ @RemotePostMethod("/resource/packageorder/save") - SuccessResult saveOrder(@RemoteServerParams String server, + SuccessResultData saveOrder(@RemoteServerParams String server, @RemoteJsonBodyParams PackageOrderAppVO appVO, @RemoteQueryParams("access_token") String accessToken); diff --git a/src/main/java/cn/com/tenlion/operator/remote/PackageInfoAppDTO.java b/src/main/java/cn/com/tenlion/operator/remote/PackageInfoAppDTO.java new file mode 100644 index 0000000..2ef6eb6 --- /dev/null +++ b/src/main/java/cn/com/tenlion/operator/remote/PackageInfoAppDTO.java @@ -0,0 +1,138 @@ +package cn.com.tenlion.operator.remote; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; + +/** + * + * @ClassName: PackageInfoAppDTO + * @Description: 套餐包 + * @Author: CodeFactory + * @Date: 2025-02-26 14:46:41 + * @Version: 3.0 + **/ +@ApiModel +public class PackageInfoAppDTO { + + @ApiModelProperty(name = "packageInfoId", value = "套餐ID") + private String packageInfoId; + @ApiModelProperty(name = "packageName", value = "套餐名称") + private String packageName; + @ApiModelProperty(name = "packageType", value = "类型 MATERIAL 写材料 . ALL 全托管") + private String packageType; + @ApiModelProperty(name = "packageMode", value = "可购买次数 single(每个用户可购买1次), all(不限)") + private String packageMode; + @ApiModelProperty(name = "packageOriginalPrice", value = "原价/单位分") + private Integer packageOriginalPrice; + @ApiModelProperty(name = "packageMoney", value = "套餐价/单位分") + private Integer packageMoney; + @ApiModelProperty(name = "packageCount", value = "套餐次数") + private Integer packageCount; + @ApiModelProperty(name = "packageAvgMoney", value = "单次均价/单位分") + private Integer packageAvgMoney; + @ApiModelProperty(name = "packageOrder", value = "排序") + private Integer packageOrder; + @ApiModelProperty(name = "packageDescription", value = "说明") + private String packageDescription; + @ApiModelProperty(name = "packageOnlienTime", value = "发布时间") + private String packageOnlienTime; + @ApiModelProperty(name = "createTime", value = "") + private String createTime; + + public String getPackageOnlienTime() { + return packageOnlienTime == null ? "" : packageOnlienTime.trim(); + } + + public void setPackageOnlienTime(String packageOnlienTime) { + this.packageOnlienTime = packageOnlienTime; + } + + public String getPackageInfoId() { + return packageInfoId == null ? "" : packageInfoId.trim(); + } + + public void setPackageInfoId(String packageInfoId) { + this.packageInfoId = packageInfoId; + } + + public String getPackageName() { + return packageName == null ? "" : packageName.trim(); + } + + public void setPackageName(String packageName) { + this.packageName = packageName; + } + + public String getPackageType() { + return packageType == null ? "" : packageType.trim(); + } + + public void setPackageType(String packageType) { + this.packageType = packageType; + } + + public String getPackageMode() { + return packageMode == null ? "" : packageMode.trim(); + } + + public void setPackageMode(String packageMode) { + this.packageMode = packageMode; + } + + public Integer getPackageOriginalPrice() { + return packageOriginalPrice == null ? 0 : packageOriginalPrice; + } + + public void setPackageOriginalPrice(Integer packageOriginalPrice) { + this.packageOriginalPrice = packageOriginalPrice; + } + + public Integer getPackageMoney() { + return packageMoney == null ? 0 : packageMoney; + } + + public void setPackageMoney(Integer packageMoney) { + this.packageMoney = packageMoney; + } + + public Integer getPackageCount() { + return packageCount == null ? 0 : packageCount; + } + + public void setPackageCount(Integer packageCount) { + this.packageCount = packageCount; + } + + public Integer getPackageAvgMoney() { + return packageAvgMoney == null ? 0 : packageAvgMoney; + } + + public void setPackageAvgMoney(Integer packageAvgMoney) { + this.packageAvgMoney = packageAvgMoney; + } + + public Integer getPackageOrder() { + return packageOrder == null ? 0 : packageOrder; + } + + public void setPackageOrder(Integer packageOrder) { + this.packageOrder = packageOrder; + } + + public String getPackageDescription() { + return packageDescription == null ? "" : packageDescription.trim(); + } + + public void setPackageDescription(String packageDescription) { + this.packageDescription = packageDescription; + } + + public String getCreateTime() { + return createTime == null ? "" : createTime.trim(); + } + + public void setCreateTime(String createTime) { + this.createTime = createTime; + } + +} diff --git a/src/main/java/cn/com/tenlion/operator/remote/PackageInfoDTO.java b/src/main/java/cn/com/tenlion/operator/remote/PackageInfoDTO.java new file mode 100644 index 0000000..6bbe4d9 --- /dev/null +++ b/src/main/java/cn/com/tenlion/operator/remote/PackageInfoDTO.java @@ -0,0 +1,251 @@ +package cn.com.tenlion.operator.remote; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import java.util.ArrayList; +import java.util.List; + +/** + * + * @ClassName: PackageInfoDTO + * @Description: 套餐包 + * @Author: CodeFactory + * @Date: 2025-02-26 14:46:41 + * @Version: 3.0 + **/ +@ApiModel +public class PackageInfoDTO { + + @ApiModelProperty(name = "packageInfoId", value = "套餐ID") + private String packageInfoId; + @ApiModelProperty(name = "packageName", value = "套餐名称") + private String packageName; + @ApiModelProperty(name = "packageType", value = "类型写材料 . 全托管等的枚举名") + private String packageType; + @ApiModelProperty(name = "packageMode", value = "可购买次数 single(每个用户可购买1次), infinite(不限)") + private String packageMode; + @ApiModelProperty(name = "packageOriginalPrice", value = "原价/单位分") + private Integer packageOriginalPrice; + @ApiModelProperty(name = "packageMoney", value = "套餐价/单位分") + private Integer packageMoney; + @ApiModelProperty(name = "packageCount", value = "套餐次数") + private Integer packageCount; + @ApiModelProperty(name = "packageLimitUsers", value = "限定购买人,为空则不限定") + private String packageLimitUsers; + @ApiModelProperty(name = "packageLimitCount", value = "限定售卖数量,为空则不限定") + private Integer packageLimitCount; + @ApiModelProperty(name = "packageActivity", value = "是否为活动套餐") + private String packageActivity; + @ApiModelProperty(name = "packageActivityStart", value = "活动开始时间") + private String packageActivityStart; + @ApiModelProperty(name = "packageActivityEnd", value = "活动结束时间") + private String packageActivityEnd; + @ApiModelProperty(name = "packageAvgMoney", value = "单次均价/单位分") + private Integer packageAvgMoney; + @ApiModelProperty(name = "packageOrder", value = "排序") + private Integer packageOrder; + @ApiModelProperty(name = "packageDescription", value = "说明") + private String packageDescription; + @ApiModelProperty(name = "packageStatus", value = "发布状态(发布过的不允许再修改)") + private String packageStatus; + @ApiModelProperty(name = "packageOnlien", value = "上架状态") + private String packageOnlien; + @ApiModelProperty(name = "packageOnlienTime", value = "状态改变时间") + private String packageOnlienTime; + @ApiModelProperty(name = "createTime", value = "") + private String createTime; + @ApiModelProperty(name = "creator", value = "") + private String creator; + @ApiModelProperty(name = "gmtModified", value = "") + private String gmtModified; + @ApiModelProperty(name = "modifier", value = "") + private String modifier; + @ApiModelProperty(name = "isDelete", value = "") + private String isDelete; + + public String getPackageInfoId() { + return packageInfoId == null ? "" : packageInfoId.trim(); + } + + public void setPackageInfoId(String packageInfoId) { + this.packageInfoId = packageInfoId; + } + + public String getPackageName() { + return packageName == null ? "" : packageName.trim(); + } + + public void setPackageName(String packageName) { + this.packageName = packageName; + } + + public String getPackageType() { + return packageType == null ? "" : packageType.trim(); + } + + public void setPackageType(String packageType) { + this.packageType = packageType; + } + + public String getPackageMode() { + return packageMode == null ? "" : packageMode.trim(); + } + + public void setPackageMode(String packageMode) { + this.packageMode = packageMode; + } + + public Integer getPackageOriginalPrice() { + return packageOriginalPrice == null ? 0 : packageOriginalPrice; + } + + public void setPackageOriginalPrice(Integer packageOriginalPrice) { + this.packageOriginalPrice = packageOriginalPrice; + } + + public Integer getPackageMoney() { + return packageMoney == null ? 0 : packageMoney; + } + + public void setPackageMoney(Integer packageMoney) { + this.packageMoney = packageMoney; + } + + public Integer getPackageCount() { + return packageCount == null ? 0 : packageCount; + } + + public void setPackageCount(Integer packageCount) { + this.packageCount = packageCount; + } + + public String getPackageLimitUsers() { + return packageLimitUsers == null ? "" : packageLimitUsers.trim(); + } + + public void setPackageLimitUsers(String packageLimitUsers) { + this.packageLimitUsers = packageLimitUsers; + } + + public Integer getPackageLimitCount() { + return packageLimitCount == null ? 0 : packageLimitCount; + } + + public void setPackageLimitCount(Integer packageLimitCount) { + this.packageLimitCount = packageLimitCount; + } + + public String getPackageActivity() { + return packageActivity == null ? "" : packageActivity.trim(); + } + + public void setPackageActivity(String packageActivity) { + this.packageActivity = packageActivity; + } + + public String getPackageActivityStart() { + return packageActivityStart == null ? "" : packageActivityStart.trim(); + } + + public void setPackageActivityStart(String packageActivityStart) { + this.packageActivityStart = packageActivityStart; + } + + public String getPackageActivityEnd() { + return packageActivityEnd == null ? "" : packageActivityEnd.trim(); + } + + public void setPackageActivityEnd(String packageActivityEnd) { + this.packageActivityEnd = packageActivityEnd; + } + + public Integer getPackageAvgMoney() { + return packageAvgMoney == null ? 0 : packageAvgMoney; + } + + public void setPackageAvgMoney(Integer packageAvgMoney) { + this.packageAvgMoney = packageAvgMoney; + } + + public Integer getPackageOrder() { + return packageOrder == null ? 0 : packageOrder; + } + + public void setPackageOrder(Integer packageOrder) { + this.packageOrder = packageOrder; + } + + public String getPackageDescription() { + return packageDescription == null ? "" : packageDescription.trim(); + } + + public void setPackageDescription(String packageDescription) { + this.packageDescription = packageDescription; + } + + public String getPackageStatus() { + return packageStatus == null ? "" : packageStatus.trim(); + } + + public void setPackageStatus(String packageStatus) { + this.packageStatus = packageStatus; + } + + public String getPackageOnlien() { + return packageOnlien == null ? "" : packageOnlien.trim(); + } + + public void setPackageOnlien(String packageOnlien) { + this.packageOnlien = packageOnlien; + } + + public String getPackageOnlienTime() { + return packageOnlienTime == null ? "" : packageOnlienTime.trim(); + } + + public void setPackageOnlienTime(String packageOnlienTime) { + this.packageOnlienTime = packageOnlienTime; + } + + public String getCreateTime() { + return createTime == null ? "" : createTime.trim(); + } + + public void setCreateTime(String createTime) { + this.createTime = createTime; + } + + public String getCreator() { + return creator == null ? "" : creator.trim(); + } + + public void setCreator(String creator) { + this.creator = creator; + } + + public String getGmtModified() { + return gmtModified == null ? "" : gmtModified.trim(); + } + + public void setGmtModified(String gmtModified) { + this.gmtModified = gmtModified; + } + + public String getModifier() { + return modifier == null ? "" : modifier.trim(); + } + + public void setModifier(String modifier) { + this.modifier = modifier; + } + + public String getIsDelete() { + return isDelete == null ? "" : isDelete.trim(); + } + + public void setIsDelete(String isDelete) { + this.isDelete = isDelete; + } + + +} diff --git a/src/main/java/cn/com/tenlion/operator/remote/PackageOrderDTO.java b/src/main/java/cn/com/tenlion/operator/remote/PackageOrderDTO.java new file mode 100644 index 0000000..05e9bf3 --- /dev/null +++ b/src/main/java/cn/com/tenlion/operator/remote/PackageOrderDTO.java @@ -0,0 +1,219 @@ +package cn.com.tenlion.operator.remote; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; + +/** + * + * @ClassName: PackageOrderDTO + * @Description: 套餐包-订单 + * @Author: CodeFactory + * @Date: 2025-02-26 14:48:15 + * @Version: 3.0 + **/ +@ApiModel +public class PackageOrderDTO { + + @ApiModelProperty(name = "packageOrderId", value = "套餐订单") + private String packageOrderId; + @ApiModelProperty(name = "packageInfoId", value = "套餐ID") + private String packageInfoId; + @ApiModelProperty(name = "packageName", value = "套餐名称") + private String packageName; + @ApiModelProperty(name = "packageTotalMoney", value = "套餐订单总金额/单位分") + private Integer packageTotalMoney; + @ApiModelProperty(name = "packageTotalCount", value = "套餐订单总次数/单位分") + private Integer packageTotalCount; + @ApiModelProperty(name = "packageTotalAvgMoney", value = "套餐订单单次均价/单位分") + private Integer packageTotalAvgMoney; + @ApiModelProperty(name = "packageTotalSurplusCount", value = "当前剩余次数") + private Integer packageTotalSurplusCount; + @ApiModelProperty(name = "packageNo", value = "充值交易ID") + private String packageNo; + @ApiModelProperty(name = "packagePayStatus", value = "充值到账0未到账,1已到账") + private String packagePayStatus; + @ApiModelProperty(name = "packageAccountItem", value = "充值到账ID") + private String packageAccountItem; + @ApiModelProperty(name = "packagePay", value = "订单付款时间") + private String packagePay; + @ApiModelProperty(name = "creator", value = "订单创建人") + private String creator; + @ApiModelProperty(name = "gmtCreate", value = "下单时间") + private String gmtCreate; + @ApiModelProperty(name = "modifier", value = "") + private String modifier; + @ApiModelProperty(name = "gmtModified", value = "") + private String gmtModified; + @ApiModelProperty(name = "isDelete", value = "状态") + private String isDelete; + @ApiModelProperty(name = "userName", value = "创建者名称") + private String userName; + @ApiModelProperty(name = "userType", value = "创建者类型") + private String userType; + @ApiModelProperty(name = "userUsername", value = "") + private String userUsername; + @ApiModelProperty(name = "packageInfoAppDTO", value = "") + private PackageInfoAppDTO packageInfoAppDTO; + + public PackageInfoAppDTO getPackageInfoAppDTO() { + return packageInfoAppDTO; + } + + public void setPackageInfoAppDTO(PackageInfoAppDTO packageInfoAppDTO) { + this.packageInfoAppDTO = packageInfoAppDTO; + } + + public String getPackagePayStatus() { + return packagePayStatus == null ? "" : packagePayStatus.trim(); + } + + public void setPackagePayStatus(String packagePayStatus) { + this.packagePayStatus = packagePayStatus; + } + + public String getPackageAccountItem() { + return packageAccountItem == null ? "" : packageAccountItem.trim(); + } + + public void setPackageAccountItem(String packageAccountItem) { + this.packageAccountItem = packageAccountItem; + } + + public String getPackageName() { + return packageName == null ? "" : packageName.trim(); + } + + public void setPackageName(String packageName) { + this.packageName = packageName; + } + + public String getUserName() { + return userName == null ? "" : userName.trim(); + } + + public void setUserName(String userName) { + this.userName = userName; + } + + public String getUserType() { + return userType == null ? "" : userType.trim(); + } + + public void setUserType(String userType) { + this.userType = userType; + } + + public String getUserUsername() { + return userUsername == null ? "" : userUsername.trim(); + } + + public void setUserUsername(String userUsername) { + this.userUsername = userUsername; + } + + public String getPackageOrderId() { + return packageOrderId == null ? "" : packageOrderId.trim(); + } + + public void setPackageOrderId(String packageOrderId) { + this.packageOrderId = packageOrderId; + } + + public String getPackageInfoId() { + return packageInfoId == null ? "" : packageInfoId.trim(); + } + + public void setPackageInfoId(String packageInfoId) { + this.packageInfoId = packageInfoId; + } + + public Integer getPackageTotalMoney() { + return packageTotalMoney == null ? 0 : packageTotalMoney; + } + + public void setPackageTotalMoney(Integer packageTotalMoney) { + this.packageTotalMoney = packageTotalMoney; + } + + public Integer getPackageTotalCount() { + return packageTotalCount == null ? 0 : packageTotalCount; + } + + public void setPackageTotalCount(Integer packageTotalCount) { + this.packageTotalCount = packageTotalCount; + } + + public Integer getPackageTotalAvgMoney() { + return packageTotalAvgMoney == null ? 0 : packageTotalAvgMoney; + } + + public void setPackageTotalAvgMoney(Integer packageTotalAvgMoney) { + this.packageTotalAvgMoney = packageTotalAvgMoney; + } + + public Integer getPackageTotalSurplusCount() { + return packageTotalSurplusCount == null ? 0 : packageTotalSurplusCount; + } + + public void setPackageTotalSurplusCount(Integer packageTotalSurplusCount) { + this.packageTotalSurplusCount = packageTotalSurplusCount; + } + + public String getPackageNo() { + return packageNo == null ? "" : packageNo.trim(); + } + + public void setPackageNo(String packageNo) { + this.packageNo = packageNo; + } + + public String getPackagePay() { + return packagePay == null ? "" : packagePay.trim(); + } + + public void setPackagePay(String packagePay) { + this.packagePay = packagePay; + } + + public String getCreator() { + return creator == null ? "" : creator.trim(); + } + + public void setCreator(String creator) { + this.creator = creator; + } + + public String getGmtCreate() { + return gmtCreate == null ? "" : gmtCreate.trim(); + } + + public void setGmtCreate(String gmtCreate) { + this.gmtCreate = gmtCreate; + } + + public String getModifier() { + return modifier == null ? "" : modifier.trim(); + } + + public void setModifier(String modifier) { + this.modifier = modifier; + } + + public String getGmtModified() { + return gmtModified == null ? "" : gmtModified.trim(); + } + + public void setGmtModified(String gmtModified) { + this.gmtModified = gmtModified; + } + + public String getIsDelete() { + return isDelete == null ? "" : isDelete.trim(); + } + + public void setIsDelete(String isDelete) { + this.isDelete = isDelete; + } + + +} diff --git a/src/main/java/cn/com/tenlion/operator/service/accountrecharge/IAccountRechargeService.java b/src/main/java/cn/com/tenlion/operator/service/accountrecharge/IAccountRechargeService.java index f9cf0df..3838e2a 100644 --- a/src/main/java/cn/com/tenlion/operator/service/accountrecharge/IAccountRechargeService.java +++ b/src/main/java/cn/com/tenlion/operator/service/accountrecharge/IAccountRechargeService.java @@ -22,6 +22,8 @@ import java.util.Map; **/ public interface IAccountRechargeService { + List listPOByOnlineNotCheck(String queryOnline); + /** * 新增账户充值 * 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 1d0a7ce..1dcbcdc 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 @@ -11,7 +11,9 @@ 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.PackageInfoDTO; import cn.com.tenlion.operator.remote.PackageOrderAppVO; +import cn.com.tenlion.operator.remote.PackageOrderDTO; import cn.com.tenlion.operator.service.account.IAccountService; import cn.com.tenlion.operator.service.accountbank.IAccountBankService; import cn.com.tenlion.operator.service.accountitem.IAccountItemService; @@ -36,6 +38,7 @@ 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.SuccessResultData; import ink.wgink.pojo.result.SuccessResultList; import ink.wgink.util.date.DateUtil; import ink.wgink.util.map.HashMapUtil; @@ -315,8 +318,11 @@ public class AccountRechargeServiceImpl extends DefaultBaseService implements IA // 创建套餐包关闭支付 if(!StringUtils.isEmpty(dto.getPackageInfoId())) { String accessToken = OAuth2ClientTokenManager.getInstance().getToken().getAccessToken(); - SuccessResult result = operatorPluginRemoteService.updateClose(systemApiPathProperties.getOperatorPlugin(), accountRechargeId, accessToken); - System.out.println("调用套餐包关闭结果 : " + result); + SuccessResultData result = operatorPluginRemoteService.updateClose(systemApiPathProperties.getOperatorPlugin(), accountRechargeId, accessToken); + if (!result.getData().equals("Success")) { + System.out.println("调用套餐包关闭结果 : " + result); + throw new SaveException(result.getData()); + } } } @@ -358,23 +364,41 @@ public class AccountRechargeServiceImpl extends DefaultBaseService implements IA AccountRechargeDTO dto = get(accountRechargeId); // 绑定了套餐包 & 已对账 & 已到账 if(!StringUtils.isEmpty(dto.getPackageInfoId()) && dto.getReconciliationStatus().equals("1") && dto.getRechargeCheck().equals("2")) { - // 远程更改套餐包的付款到账状态 String accessToken = OAuth2ClientTokenManager.getInstance().getToken().getAccessToken(); - SuccessResult result = operatorPluginRemoteService.updatePay(systemApiPathProperties.getOperatorPlugin(), accountRechargeId, accessToken); - System.out.println("调用套餐包到账结果 : " + result); + PackageOrderDTO packageInfoDTO = operatorPluginRemoteService.getByNo(systemApiPathProperties.getOperatorPlugin(), accountRechargeId , accessToken); + /** + * 1. 创建流水 + */ + AccountItemVO vo = new AccountItemVO(); + vo.setType(2); + vo.setMode(2); + vo.setAccountId(dto.getCreator()); + vo.setOrderId(packageInfoDTO.getPackageOrderId()); + vo.setAccountMoney(packageInfoDTO.getPackageTotalMoney()); + vo.setDescription("购买" + (packageInfoDTO.getPackageInfoAppDTO().getPackageType().equals("ALL") ? "全托管" : "写材料" ) + "套餐包 " + packageInfoDTO.getPackageInfoAppDTO().getPackageCount() + " 件:" + packageInfoDTO.getPackageInfoAppDTO().getPackageName()); + String accountItemId1 = iAccountItemService.saveReturnId(vo); + // 远程更改套餐包的付款到账状态 + SuccessResultData result = operatorPluginRemoteService.updatePay(systemApiPathProperties.getOperatorPlugin(), accountRechargeId, accountItemId1, accessToken); + if (!result.getData().equals("Success")) { + System.out.println("调用套餐包到账结果 : " + result); + throw new SaveException(result.getData()); + } } // 绑定了套餐包 & 已对账 & 已关闭 if(!StringUtils.isEmpty(dto.getPackageInfoId()) && dto.getReconciliationStatus().equals("1") && dto.getRechargeCheck().equals("-1")) { String accessToken = OAuth2ClientTokenManager.getInstance().getToken().getAccessToken(); - SuccessResult result = operatorPluginRemoteService.updateClose(systemApiPathProperties.getOperatorPlugin(), accountRechargeId, accessToken); - System.out.println("调用套餐包关闭结果 : " + result); + SuccessResultData result = operatorPluginRemoteService.updateClose(systemApiPathProperties.getOperatorPlugin(), accountRechargeId, accessToken); + if (!result.getData().equals("Success")) { + System.out.println("调用套餐包关闭结果 : " + result); + throw new SaveException(result.getData()); + } } } @Override public AccountRechargePayDTO saveAccount(String thirdParty, AccountRechargeVO accountRechargeVO) { AccountRechargePayDTO payDTO = new AccountRechargePayDTO(); - synchronized (lock) { + // synchronized (lock) { String userId = accountRechargeVO.getUserId(); // 未支付的订单 Integer count = countByUserIdAndRechargeCheck(userId, RechargeCheckEnum.UN_RECHARGE); @@ -432,8 +456,11 @@ public class AccountRechargeServiceImpl extends DefaultBaseService implements IA appVO.setAccountRechargeId(payDTO.getAccountRechargeId()); String accessToken = OAuth2ClientTokenManager.getInstance().getToken().getAccessToken(); - SuccessResult result = operatorPluginRemoteService.saveOrder(systemApiPathProperties.getOperatorPlugin(), appVO, accessToken); - System.out.println("调用套餐包创建结果 : " + result); + SuccessResultData result = operatorPluginRemoteService.saveOrder(systemApiPathProperties.getOperatorPlugin(), appVO, accessToken); + if (!result.getData().equals("Success")) { + System.out.println("调用套餐包创建结果 : " + result); + throw new SaveException(result.getData()); + } } if (ThirdPartyEnum.DGZZ.getValue().equals(thirdParty)) { /** @@ -451,7 +478,7 @@ public class AccountRechargeServiceImpl extends DefaultBaseService implements IA templateParams.put("money", PayUtil.buiderMoney(totalMoney) + ""); TenlionSMS.sendMessage(UUIDUtil.getUUID(), "M00005", templateParams, phoneArray); } - } + // } return payDTO; } @@ -485,6 +512,13 @@ public class AccountRechargeServiceImpl extends DefaultBaseService implements IA return listPO(params); } + @Override + public List listPOByOnlineNotCheck(String queryOnline) { + Map params = getHashMap(2); + params.put("queryOnline", queryOnline); + return listPO(params); + } + /** * 对公转账 * diff --git a/src/main/java/cn/com/tenlion/operator/util/task/WxPayResultCheckTask.java b/src/main/java/cn/com/tenlion/operator/util/task/WxPayResultCheckTask.java index 5d59b11..c3f0346 100644 --- a/src/main/java/cn/com/tenlion/operator/util/task/WxPayResultCheckTask.java +++ b/src/main/java/cn/com/tenlion/operator/util/task/WxPayResultCheckTask.java @@ -40,23 +40,35 @@ public class WxPayResultCheckTask { } /** - * 线上已支付订单的核对(10分钟之内的) + * 线上微信近10分钟未核对的订单 */ - @Scheduled(fixedDelay = 60 * 1000 * 2) - public void updateStatus() { - LOG.debug("检查支付宝和微信,已支付未核对的订单"); + @Scheduled(fixedDelay = 60 * 1000 * 1) + public void updateWxStatus() { + LOG.debug("检查微信近10分钟未核对的订单"); // 未充值的订单 - List accountRechargePOS = iAccountRechargeService.listPOByRechargeCheck(RechargeCheckEnum.RECHARGED); + List accountRechargePOS = iAccountRechargeService.listPOByOnlineNotCheck(ThirdPartyEnum.WX.getValue()); accountRechargePOS.forEach(po -> { - LocalDateTime now = LocalDateTime.now(); - LocalDateTime gmtCreateDateTime = LocalDateTime.parse(po.getGmtCreate(), DateTimeFormatter.ofPattern(ISystemConstant.DATE_FORMATTER_YYYY_MM_DD_HH_MM_SS)); - if (StringUtils.equals(po.getThirdParty(), ThirdPartyEnum.WX.getValue()) && now.isAfter(gmtCreateDateTime.plusMinutes(10))) { + if (StringUtils.equals(po.getThirdParty(), ThirdPartyEnum.WX.getValue())) { PayResultDTO payResultDTO = WXPay.queryPay(po.getAccountRechargeId()); // 成功 if (payResultDTO.getOrderStatus().equals("1") && payResultDTO.getMoney().equals(PayUtil.buiderMoney(po.getRechargeMoney())) ) { iAccountRechargeStaticService.saveConfirmOnline(po.getAccountRechargeId(), payResultDTO.getOrderId(), payResultDTO.getOrderSuccessTime()); } - } else if (StringUtils.equals(po.getThirdParty(), ThirdPartyEnum.ZFB.getValue()) && now.isAfter(gmtCreateDateTime.plusMinutes(10))) { + } + }); + } + + + /** + * 线上支付宝近10分钟未核对的订单 + */ + @Scheduled(fixedDelay = 60 * 1000 * 1) + public void updateZfbStatus() { + LOG.debug("检查支付宝近10分钟未核对的订单"); + // 未充值的订单 + List accountRechargePOS = iAccountRechargeService.listPOByOnlineNotCheck(ThirdPartyEnum.ZFB.getValue()); + accountRechargePOS.forEach(po -> { + if (StringUtils.equals(po.getThirdParty(), ThirdPartyEnum.ZFB.getValue())) { PayResultDTO payResultDTO = ALiPay.queryPay(po.getAccountRechargeId()); // 成功 if (payResultDTO.getOrderStatus().equals("1") && payResultDTO.getMoney().equals(PayUtil.buiderMoney(po.getRechargeMoney())) ) { 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 dc10486..6527848 100644 --- a/src/main/resources/mybatis/mapper/accountrecharge/account-recharge-mapper.xml +++ b/src/main/resources/mybatis/mapper/accountrecharge/account-recharge-mapper.xml @@ -567,6 +567,9 @@ AND t1.recharge_check = #{rechargeCheck} + + AND (t1.recharge_check = '0' OR t1.recharge_check = '1' ) AND t1.recharge_type = '2' AND t1.third_party = #{queryOnline} AND t1.recharge_final_time = '' >= NOW() - INTERVAL 10 MINUTE + AND t1.account_recharge_id IN diff --git a/src/main/resources/static/assets/images/headicon1.png b/src/main/resources/static/assets/images/headicon1.png index 071acb4..8681960 100644 Binary files a/src/main/resources/static/assets/images/headicon1.png and b/src/main/resources/static/assets/images/headicon1.png differ