add agent vip renew

This commit is contained in:
liangzai 2025-04-15 23:55:08 +08:00
parent 15a258efc2
commit ccf8b4e161
2 changed files with 13 additions and 0 deletions

View File

@ -66,6 +66,7 @@ func (l *ActivateAgentMembershipLogic) ActivateAgentMembership(req *types.AgentA
return nil, errors.Wrapf(xerr.NewErrCode(xerr.SERVER_COMMON_ERROR), return nil, errors.Wrapf(xerr.NewErrCode(xerr.SERVER_COMMON_ERROR),
"禁止降级操作(当前等级:%s请求等级%s", agentModel.LevelName, req.Type) "禁止降级操作(当前等级:%s请求等级%s", agentModel.LevelName, req.Type)
} }
// 同等级视为续费,允许操作
} }
outTradeNo := "A_" + l.svcCtx.AlipayService.GenerateOutTradeNo() outTradeNo := "A_" + l.svcCtx.AlipayService.GenerateOutTradeNo()
redisKey := fmt.Sprintf(types.AgentVipCacheKey, userID, outTradeNo) redisKey := fmt.Sprintf(types.AgentVipCacheKey, userID, outTradeNo)

View File

@ -151,8 +151,20 @@ func (l *AlipayCallbackLogic) handleAgentVipOrderPayment(w http.ResponseWriter,
if updateErr := l.svcCtx.AgentMembershipRechargeOrderModel.UpdateWithVersion(l.ctx, nil, agentOrder); updateErr != nil { if updateErr := l.svcCtx.AgentMembershipRechargeOrderModel.UpdateWithVersion(l.ctx, nil, agentOrder); updateErr != nil {
return fmt.Errorf("修改代理会员订单信息失败: %+v", updateErr) return fmt.Errorf("修改代理会员订单信息失败: %+v", updateErr)
} }
// 设置会员等级
agentModel.LevelName = agentOrder.LevelName agentModel.LevelName = agentOrder.LevelName
// 延长会员时间
// 检查是否是同级续费并记录到日志
isRenewal := agentModel.LevelName == agentOrder.LevelName && agentModel.MembershipExpiryTime.Valid
if isRenewal {
logx.Infof("代理会员续费成功会员ID%d等级%s", agentModel.Id, agentModel.LevelName)
} else {
logx.Infof("代理会员新购或升级成功会员ID%d等级%s", agentModel.Id, agentModel.LevelName)
}
agentModel.MembershipExpiryTime = RenewMembership(agentModel.MembershipExpiryTime) agentModel.MembershipExpiryTime = RenewMembership(agentModel.MembershipExpiryTime)
if updateErr := l.svcCtx.AgentModel.UpdateWithVersion(l.ctx, nil, agentModel); updateErr != nil { if updateErr := l.svcCtx.AgentModel.UpdateWithVersion(l.ctx, nil, agentModel); updateErr != nil {
return fmt.Errorf("修改代理信息失败: %+v", updateErr) return fmt.Errorf("修改代理信息失败: %+v", updateErr)
} }