110 lines
2.9 KiB
Go
110 lines
2.9 KiB
Go
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{})
|
||
if p.TeacherId != 0 {
|
||
db.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")
|
||
}
|
||
p.Avatar = user.Avatar
|
||
|
||
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) {
|
||
// 查询讲师头像
|
||
avatar := ""
|
||
err = global.GVA_DB.Model(&user2.User{}).Where("id = ?", p.TeacherId).Pluck("avatar", &avatar).Error
|
||
if err != nil {
|
||
global.GVA_LOG.Error("查询讲师头像失败", zap.Error(err))
|
||
}
|
||
p.Avatar = avatar
|
||
|
||
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
|
||
}
|
||
|
||
func (u *TeacherVipService) UpdatePriceBatch(p request.UpdateTeacherVipPriceBatch) (err error) {
|
||
err = global.GVA_DB.Model(&app.TeacherVip{}).Where("id IN ?", p.Ids).Update("price", p.Price).Error
|
||
if err != nil {
|
||
global.GVA_LOG.Error("批量更新讲师VIP价格失败", zap.Error(err))
|
||
return
|
||
}
|
||
return
|
||
}
|
||
|
||
// ===========================管理后台接口===========================
|