From 99779e641505b5d5d480e7094672a4b957a50b61 Mon Sep 17 00:00:00 2001 From: Echo <1711788888@qq.com> Date: Sat, 11 Oct 2025 16:16:42 +0800 Subject: [PATCH] =?UTF-8?q?:art:=20=E4=BC=98=E5=8C=96=E8=AE=B2=E5=B8=88?= =?UTF-8?q?=E5=8C=85=E6=9C=88=E6=A8=A1=E5=9D=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- api/v1/app/teacher_vip.go | 5 ++++- initialize/router_biz.go | 2 +- service/app/teacher_vip.go | 34 +++++++++++++++++++++++++++++++--- 3 files changed, 36 insertions(+), 5 deletions(-) diff --git a/api/v1/app/teacher_vip.go b/api/v1/app/teacher_vip.go index d629182..3f81ad5 100644 --- a/api/v1/app/teacher_vip.go +++ b/api/v1/app/teacher_vip.go @@ -7,6 +7,7 @@ import ( common "git.echol.cn/loser/lckt/model/common/request" r "git.echol.cn/loser/lckt/model/common/response" "git.echol.cn/loser/lckt/utils" + "git.echol.cn/loser/lckt/utils/user_jwt" "github.com/gin-gonic/gin" "go.uber.org/zap" ) @@ -78,7 +79,9 @@ func (a *TeacherVip) GetTeacherVipList(context *gin.Context) { return } - vips, total, err := teacherVipService.GetTeacherVipList(p) + userId := user_jwt.GetUserID(context) + + vips, total, err := teacherVipService.GetTeacherVipList(p, userId) if err != nil { global.GVA_LOG.Error("获取讲师VIP列表失败", zap.Error(err)) r.FailWithMessage("获取讲师VIP列表失败", context) diff --git a/initialize/router_biz.go b/initialize/router_biz.go index 33223d7..f71af35 100644 --- a/initialize/router_biz.go +++ b/initialize/router_biz.go @@ -26,7 +26,7 @@ func initBizRouter(routers ...*gin.RouterGroup) { } { articleRouter := router.RouterGroupApp.Article - articleRouter.InitBotRouter(privateGroup, publicGroup, appGroup) + articleRouter.InitBotRouter(privateGroup, appGroup) } { userRouter := router.RouterGroupApp.User diff --git a/service/app/teacher_vip.go b/service/app/teacher_vip.go index 0020029..b749120 100644 --- a/service/app/teacher_vip.go +++ b/service/app/teacher_vip.go @@ -5,20 +5,22 @@ import ( "git.echol.cn/loser/lckt/global" "git.echol.cn/loser/lckt/model/app" "git.echol.cn/loser/lckt/model/app/request" + "git.echol.cn/loser/lckt/model/app/vo" user2 "git.echol.cn/loser/lckt/model/user" "go.uber.org/zap" + "gorm.io/gorm" ) type TeacherVipService struct{} // GetTeacherVipList 获取讲师包月列表 -func (u *TeacherVipService) GetTeacherVipList(p request.GetTeacherVipList) (list []app.TeacherVip, total int64, err error) { +func (u *TeacherVipService) GetTeacherVipList(p request.GetTeacherVipList, userId uint) (list []vo.TeacherVipList, total int64, err error) { limit := p.PageSize offset := (p.Page - 1) * p.PageSize db := global.GVA_DB.Model(&app.TeacherVip{}) if p.TeacherId != 0 { - db.Where("teacher_id = ? ", p.TeacherId) + db = db.Where("teacher_id = ? ", p.TeacherId) } if p.Keyword != "" { @@ -30,11 +32,37 @@ func (u *TeacherVipService) GetTeacherVipList(p request.GetTeacherVipList) (list global.GVA_LOG.Error("查询讲师包月总数失败", zap.Error(err)) return nil, 0, err } - err = db.Limit(limit).Offset(offset).Find(&list).Error + + var teacherVips []app.TeacherVip + err = db.Limit(limit).Offset(offset).Find(&teacherVips).Error if err != nil { global.GVA_LOG.Error("查询讲师包月列表失败", zap.Error(err)) return nil, 0, err } + list = make([]vo.TeacherVipList, len(teacherVips)) + for i, vip := range teacherVips { + list[i] = vo.TeacherVipList{ + TeacherVip: vip, + } + } + + for i := range list { + var userVip app.UserTeacherVip + err = global.GVA_DB.Where("user_id = ? AND teacher_vip_id = ?", userId, list[i].ID).First(&userVip).Error + if err != nil && !errors.Is(err, gorm.ErrRecordNotFound) { + global.GVA_LOG.Error("查询用户讲师VIP失败", zap.Error(err)) + return + } + if errors.Is(err, gorm.ErrRecordNotFound) { + err = nil + list[i].IsBuy = 0 + continue + } + list[i].IsBuy = 1 + list[i].ExpireAt = userVip.ExpireAt + list[i].IsExpire = userVip.IsExpire + } + return }