支付调整
This commit is contained in:
parent
6181876f6c
commit
c2d14d1022
@ -31,9 +31,9 @@ public class OrderInfo extends BaseEntity {
|
||||
private Long orderNo;
|
||||
|
||||
/**
|
||||
* 订单状态: 0:待支付 1:已付款待发货 2:配送中 3:待取货 4:支付超时系统结束 5:客户自主取消 6:已完成
|
||||
* 订单状态: 订单状态: 0:待支付 1:已付款 2:支付超时系统结束 3:客户自主取消 4:已完成
|
||||
*/
|
||||
@Excel(name = "订单状态: 0:待支付 1:已付款待发货 2:配送中 3:待取货 4:支付超时系统结束 5:客户自主取消 6:已完成 ")
|
||||
@Excel(name = "订单状态: 0:待支付 1:已付款 2:支付超时系统结束 3:客户自主取消 4:已完成")
|
||||
private Long orderStatus;
|
||||
|
||||
/**
|
||||
|
@ -36,7 +36,7 @@ public class HuaweiPaymentController {
|
||||
|
||||
|
||||
/**
|
||||
* 华为购买验证
|
||||
* 华为购买验证(订购会员)
|
||||
*/
|
||||
@PostMapping("/huawei/purchases/verify")
|
||||
public AjaxResult purchasesVerify(@Validated @RequestBody HuaweiPurchasesVerifyDTO verifyDTO) {
|
||||
|
@ -92,8 +92,6 @@ public class HuaweiPaymentServiceImpl implements IHuaweiPaymentService {
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public void purchasesVerify(HuaweiPurchasesVerifyDTO verifyDTO) {
|
||||
// 待发放会员商品
|
||||
PurchaseOrderPayload huaweiQueryResponsePurchaseOrderPayload;
|
||||
// 验证 TODO 证书验签官网未实现
|
||||
if (GoodsConstants.GOODS_TYPE_CONSUMABLE.equals(verifyDTO.getType())
|
||||
|| GoodsConstants.GOODS_TYPE_NON_CONSUMABLE.equals(verifyDTO.getType())) {
|
||||
@ -144,28 +142,29 @@ public class HuaweiPaymentServiceImpl implements IHuaweiPaymentService {
|
||||
SubGroupStatusPayload subGroupStatusPayload = JSON.parseObject(decodeHuaweiQueryResponsepayload, SubGroupStatusPayload.class);
|
||||
PurchaseOrderPayload huaweiQueryResponsePurchaseOrderPayload = subGroupStatusPayload.getLastSubscriptionStatus().getLastPurchaseOrder();
|
||||
// 发货
|
||||
return delivery(lastPurchaseOrder, huaweiQueryResponsePurchaseOrderPayload);
|
||||
return delivery(lastPurchaseOrder, huaweiQueryResponsePurchaseOrderPayload, subGroupStatusPayload.getLastSubscriptionStatus());
|
||||
}
|
||||
|
||||
/**
|
||||
* 发货
|
||||
*
|
||||
* @param purchaseOrder
|
||||
* @param huaweiQueryResponsePurchaseOrderPayload
|
||||
* @param lastSubscriptionStatus
|
||||
* @return
|
||||
*/
|
||||
private PurchaseOrderPayload delivery(PurchaseOrderPayload purchaseOrder, PurchaseOrderPayload huaweiQueryResponsePurchaseOrderPayload) {
|
||||
private PurchaseOrderPayload delivery(PurchaseOrderPayload purchaseOrder, PurchaseOrderPayload huaweiQueryResponsePurchaseOrderPayload, SubscriptionStatus lastSubscriptionStatus) {
|
||||
Assert.isTrue(purchaseOrder.getPurchaseOrderId().equals(huaweiQueryResponsePurchaseOrderPayload.getPurchaseOrderId()), "订单不一致,发货失败!");
|
||||
if (2 == huaweiQueryResponsePurchaseOrderPayload.getFinishStatus()) {
|
||||
// 还未发货
|
||||
// 查询平台是否配置该商品
|
||||
// 查询平台是否配置该商品
|
||||
GoodsMessages goods = goodsMessagesService.selectGoodsMessagesByCode(huaweiQueryResponsePurchaseOrderPayload.getProductId());
|
||||
Assert.notNull(goods, "未配置此商品,请检查商品配置");
|
||||
Assert.isTrue(goods.getOriginalPrice().equals(huaweiQueryResponsePurchaseOrderPayload.getPrice()), "商品价格与订单价格不一致,请检查价格配置");
|
||||
// 创建完成订单
|
||||
createOrder(huaweiQueryResponsePurchaseOrderPayload, goods);
|
||||
// 发放会员权益
|
||||
distributeMembershipBenefits(huaweiQueryResponsePurchaseOrderPayload);
|
||||
distributeMembershipBenefits(huaweiQueryResponsePurchaseOrderPayload, lastSubscriptionStatus);
|
||||
} else {
|
||||
log.info("华为应用内支付订单已发货!{}", JSON.toJSONString(huaweiQueryResponsePurchaseOrderPayload));
|
||||
}
|
||||
@ -210,7 +209,7 @@ public class HuaweiPaymentServiceImpl implements IHuaweiPaymentService {
|
||||
|
||||
PurchaseOrderPayload huaweiQueryResponsePurchaseOrderPayload = JSON.parseObject(decodehuaweiQueryResponsepayload, PurchaseOrderPayload.class);
|
||||
// 暂时只做简单验证
|
||||
return delivery(appPurchaseOrderPayload, huaweiQueryResponsePurchaseOrderPayload);
|
||||
return delivery(appPurchaseOrderPayload, huaweiQueryResponsePurchaseOrderPayload, null);
|
||||
}
|
||||
|
||||
private void createOrder(PurchaseOrderPayload appPurchaseOrderPayload, GoodsMessages goods) {
|
||||
@ -237,17 +236,18 @@ public class HuaweiPaymentServiceImpl implements IHuaweiPaymentService {
|
||||
|
||||
}
|
||||
|
||||
private void distributeMembershipBenefits(PurchaseOrderPayload purchaseOrderPayload) {
|
||||
private void distributeMembershipBenefits(PurchaseOrderPayload purchaseOrderPayload, SubscriptionStatus lastSubscriptionStatus) {
|
||||
// 发放会员权益
|
||||
Long userId = SecurityUtils.getUserId();
|
||||
UserMember userMember = userMemberService.selectUserMemberByUserId(userId);
|
||||
boolean isSubscription = GoodsConstants.GOODS_TYPE_AUTOMATIC_RENEWAL_SUBSCRIPTION.equals(purchaseOrderPayload.getProductType());
|
||||
int subscriptionStatus = isSubscription ? lastSubscriptionStatus.getStatus() : 0;
|
||||
if (userMember == null) {
|
||||
// 添加会员信息
|
||||
boolean isSubscription = GoodsConstants.GOODS_TYPE_AUTOMATIC_RENEWAL_SUBSCRIPTION.equals(purchaseOrderPayload.getProductType());
|
||||
DateTime payTime = DateUtil.date(purchaseOrderPayload.getPurchaseTime());
|
||||
userMember = new UserMember();
|
||||
userMember.setMemberLevel(isSubscription ? 1 : 2);
|
||||
userMember.setSubscriptionStatus(isSubscription ? 1 : 0);
|
||||
userMember.setSubscriptionStatus(subscriptionStatus);
|
||||
userMember.setUserId(userId);
|
||||
userMember.setIntegration(0L);
|
||||
DateTime expirationTime = DateUtil.offset(payTime, DateField.MONTH, 1);
|
||||
@ -257,6 +257,8 @@ public class HuaweiPaymentServiceImpl implements IHuaweiPaymentService {
|
||||
userMemberService.insertUserMember(userMember);
|
||||
} else {
|
||||
// 更新
|
||||
userMember.setMemberLevel(isSubscription ? 1 : 2);
|
||||
userMember.setSubscriptionStatus(subscriptionStatus);
|
||||
DateTime expirationTime = DateUtil.offset(userMember.getExpirationTime(), DateField.MONTH, 1);
|
||||
userMember.setExpirationTime(expirationTime);
|
||||
userMember.setUpdateTime(new Date());
|
||||
|
@ -48,7 +48,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
</select>
|
||||
<select id="selectGoodsMessagesByCode" parameterType="String" resultMap="GoodsMessagesResult">
|
||||
<include refid="selectGoodsMessagesVo"/>
|
||||
where goods_code = #{goodsCode}
|
||||
where goods_code = #{goodsCode} limit 1
|
||||
</select>
|
||||
|
||||
<insert id="insertGoodsMessages" parameterType="GoodsMessages" useGeneratedKeys="true" keyProperty="id">
|
||||
|
@ -24,8 +24,15 @@ public class UserMember extends BaseEntity
|
||||
@Excel(name = "用户会员等级", readConverterExp = "0=普通会员,1=订阅会员,2=月度会员")
|
||||
private Integer memberLevel;
|
||||
|
||||
/** 会员等级为订阅会员时的订阅状态,未订阅就是取消了(0未订阅 1已订阅) */
|
||||
@Excel(name = "会员等级为订阅会员时的订阅状态,未订阅就是取消了", readConverterExp = "0=未订阅,1=已订阅")
|
||||
/** 会员等级为订阅会员时的订阅状态,
|
||||
* 订阅状态。
|
||||
0:未订阅
|
||||
1:生效状态
|
||||
2:已到期
|
||||
3:尝试扣费
|
||||
5:撤销
|
||||
6:暂停 */
|
||||
@Excel(name = "会员等级为订阅会员时的订阅状态", readConverterExp = "0=未订阅,1=已订阅生效状态")
|
||||
private Integer subscriptionStatus;
|
||||
|
||||
/** 关联的用户id */
|
||||
|
Loading…
x
Reference in New Issue
Block a user