diff --git a/app/user/cmd/api/internal/logic/agent/activateagentmembershiplogic.go b/app/user/cmd/api/internal/logic/agent/activateagentmembershiplogic.go index 58258f0..6d0814a 100644 --- a/app/user/cmd/api/internal/logic/agent/activateagentmembershiplogic.go +++ b/app/user/cmd/api/internal/logic/agent/activateagentmembershiplogic.go @@ -66,6 +66,7 @@ func (l *ActivateAgentMembershipLogic) ActivateAgentMembership(req *types.AgentA return nil, errors.Wrapf(xerr.NewErrCode(xerr.SERVER_COMMON_ERROR), "禁止降级操作(当前等级:%s,请求等级:%s)", agentModel.LevelName, req.Type) } + // 同等级视为续费,允许操作 } outTradeNo := "A_" + l.svcCtx.AlipayService.GenerateOutTradeNo() redisKey := fmt.Sprintf(types.AgentVipCacheKey, userID, outTradeNo) diff --git a/app/user/cmd/api/internal/logic/pay/alipaycallbacklogic.go b/app/user/cmd/api/internal/logic/pay/alipaycallbacklogic.go index 9bde985..bd56d02 100644 --- a/app/user/cmd/api/internal/logic/pay/alipaycallbacklogic.go +++ b/app/user/cmd/api/internal/logic/pay/alipaycallbacklogic.go @@ -151,8 +151,20 @@ func (l *AlipayCallbackLogic) handleAgentVipOrderPayment(w http.ResponseWriter, if updateErr := l.svcCtx.AgentMembershipRechargeOrderModel.UpdateWithVersion(l.ctx, nil, agentOrder); updateErr != nil { return fmt.Errorf("修改代理会员订单信息失败: %+v", updateErr) } + + // 设置会员等级 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) + if updateErr := l.svcCtx.AgentModel.UpdateWithVersion(l.ctx, nil, agentModel); updateErr != nil { return fmt.Errorf("修改代理信息失败: %+v", updateErr) }