代码拉取完成,页面将自动刷新
package service
import (
"context"
"database/sql"
"gitee.com/WisdomClassroom/Course/glb"
"gitee.com/WisdomClassroom/core"
"gitee.com/WisdomClassroom/core/models"
"gitee.com/WisdomClassroom/core/protobufs/v1/pb"
"google.golang.org/grpc/metadata"
"gorm.io/gorm"
)
func (s *Service) UpdateCourse(ctx context.Context, request *pb.UpdateCourseRequest) (*pb.UpdateCourseResponse, error) {
md, ok := metadata.FromIncomingContext(ctx)
if !ok {
glb.Logger.Error("no metadata")
}
token, err := core.UnpackTokenFromMetadata(md)
if err != nil {
return &pb.UpdateCourseResponse{Status: &pb.ResponseStatus{
Code: core.ResponseStatusCodeNotAuth, Message: err.Error(),
}}, nil
}
course := &models.Course{UUID: request.GetUUID()}
err = glb.DB.Select("uuid").Take(course).Error
if err != nil {
if err == gorm.ErrRecordNotFound {
return &pb.UpdateCourseResponse{Status: &pb.ResponseStatus{
Code: core.ResponseStatusCodeOtherError,
Message: "课程不存在",
}}, nil
}
glb.Logger.Error(err.Error())
return updateCourseRespSvrErr, nil
}
if !token.IsManager {
managers := make([]models.User, 0, 1)
err = glb.DB.Model(course).Association("Managers").Find(&managers, "manager_id = ?", token.AccountID)
if err != nil {
glb.Logger.Error(err.Error())
return updateCourseRespSvrErr, nil
}
if len(managers) == 0 {
return &pb.UpdateCourseResponse{Status: &pb.ResponseStatus{
Code: core.ResponseStatusCodeNotAuth,
Message: "用户没有权限",
}}, nil
}
}
course.Name = sql.NullString{String: request.GetName(), Valid: true}
course.Description = sql.NullString{String: request.GetDescription(), Valid: true}
err = glb.DB.Model(course).Updates(course).Error
if err != nil {
glb.Logger.Error(err.Error())
return updateCourseRespSvrErr, nil
}
return &pb.UpdateCourseResponse{
Status: &pb.ResponseStatus{Code: core.ResponseStatusCodeSuccess},
}, nil
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。