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 } // ===========================管理后台接口===========================