🎨 新增讲师包月功能,优化支付回调

This commit is contained in:
2025-09-07 02:11:22 +08:00
parent 7bcc2370bd
commit df46c7ab29
16 changed files with 508 additions and 43 deletions

View File

@@ -0,0 +1,86 @@
package app
import (
"errors"
"git.echol.cn/loser/lckt/global"
"git.echol.cn/loser/lckt/model/app"
"git.echol.cn/loser/lckt/model/app/request"
user2 "git.echol.cn/loser/lckt/model/user"
"go.uber.org/zap"
)
type TeacherVipService struct{}
// GetTeacherVipList 获取讲师包月列表
func (u *TeacherVipService) GetTeacherVipList(p request.GetTeacherVipList) (list []app.TeacherVip, total int64, err error) {
limit := p.PageSize
offset := (p.Page - 1) * p.PageSize
db := global.GVA_DB.Model(&app.TeacherVip{}).Where("teacher_id = ?", p.TeacherId)
if p.Keyword != "" {
db = db.Where("title LIKE ?", "%"+p.Keyword+"%")
}
err = db.Count(&total).Error
if err != nil {
global.GVA_LOG.Error("查询讲师包月总数失败", zap.Error(err))
return nil, 0, err
}
err = db.Limit(limit).Offset(offset).Find(&list).Error
if err != nil {
global.GVA_LOG.Error("查询讲师包月列表失败", zap.Error(err))
return nil, 0, err
}
return
}
func (u *TeacherVipService) CreateTeacherVip(p app.TeacherVip, userId uint) (err error) {
// 判断是否是讲师
var user user2.User
err = global.GVA_DB.Where("id = ?", userId).First(&user).Error
if err != nil {
global.GVA_LOG.Error("查询用户信息失败:", zap.Error(err))
return err
}
if user.UserType != 2 {
// 不是讲师
global.GVA_LOG.Error("当前用户不是讲师无法创建讲师VIP")
return errors.New("当前用户不是讲师无法创建讲师VIP")
}
err = global.GVA_DB.Create(&p).Error
if err != nil {
global.GVA_LOG.Error("创建讲师VIP失败", zap.Error(err))
return err
}
return nil
}
func (u *TeacherVipService) DeleteTeacherVip(p app.TeacherVip) (err error) {
err = global.GVA_DB.Delete(&p).Error
if err != nil {
global.GVA_LOG.Error("删除讲师VIP失败", zap.Error(err))
return err
}
return nil
}
func (u *TeacherVipService) Update(p app.TeacherVip) (err error) {
err = global.GVA_DB.Save(&p).Error
if err != nil {
global.GVA_LOG.Error("更新讲师VIP失败", zap.Error(err))
return err
}
return nil
}
func (u *TeacherVipService) GetTeacherVip(id int) (vip app.TeacherVip, err error) {
err = global.GVA_DB.Where("id = ?", id).First(&vip).Error
if err != nil {
global.GVA_LOG.Error("获取讲师VIP失败", zap.Error(err))
return vip, err
}
return vip, nil
}