package demo import ( "dashoo.cn/micro_libary/request" "dashoo.cn/micro_libary/response" "dashoo.cn/modi_webapi/app/model/demo/student" service "dashoo.cn/modi_webapi/app/service/demo" "github.com/gogf/gf/net/ghttp" "github.com/gogf/gf/os/glog" "strconv" "strings" ) // 学生管理Controller type StudentController struct { } // GetDetailById 根据id获取学生详情信息 func (c *StudentController) GetDetailById(r *ghttp.Request) { // tenant 租户模式 tenant := r.Header.Get("Tenant") // 学生id StId := r.GetInt("id") glog.Info(StId) // 初始化学生service servcie, err := service.NewStudentService(tenant) if err != nil { response.Json(r, 1, err.Error()) } // 调用service方法 if student, err := servcie.GetStudentByID(StId); err != nil { response.Json(r, 1, err.Error()) } else { response.Json(r, 0, "", student) } } // SaveStudent 保存学生信息 func (c *StudentController) SaveStudent(r *ghttp.Request) { // tenant 租户模式 tenant := r.Header.Get("Tenant") var addOrUpdateReq *student.AddOrUpdateReq // 赋值并// 校验参数 if err := r.Parse(&addOrUpdateReq); err != nil { response.Json(r, 1, err.Error()) } // 初始化学生service servcie, err := service.NewStudentService(tenant) if err != nil { response.Json(r, 1, err.Error()) } subject := "" subjectName := "" // 多选课程处理,判断多选时,转存为字符串 subIds := r.GetInts("Subject") subNames := r.GetStrings("SubjectName") if len(subIds) > 0 { subArray := make([]string, len(subIds)) subNameArray := make([]string, len(subNames)) for i, arg := range subIds { subArray[i] = strconv.Itoa(arg) } for i, arg := range subNames { subNameArray[i] = arg } subject = strings.Join(subArray, ",") subjectName = strings.Join(subNameArray, ",") } addOrUpdateReq.Subject = subject addOrUpdateReq.SubjectName = subjectName // 判断是新增还是删除,获取的id为空新增,不为空则更新 if addOrUpdateReq.Id > 0 { if newStudent, err := servcie.Update(addOrUpdateReq); err != nil { response.Json(r, 1, err.Error()) } else { response.Json(r, 0, "更新成功", newStudent) } } else { addOrUpdateReq.Id = 0 if newId, err := servcie.Add(addOrUpdateReq); err != nil { response.Json(r, 1, err.Error()) } else { response.Json(r, 0, "新建成功", newId) } } } // DeleteStudentById 删除学生信息,更新学生删除状态isDel=1 func (c *StudentController) DeleteStudentById(r *ghttp.Request) { // tenant 租户模式 tenant := r.Header.Get("Tenant") Ids := r.GetInts("ids") // 初始化学生service servcie, err := service.NewStudentService(tenant) if err != nil { response.Json(r, 1, err.Error()) } delReq := new(student.DeleteReq) delReq.Ids = Ids delReq.IsDel = 1 if err := servcie.Delete(delReq); err != nil { response.Json(r, 1, err.Error()) } else { response.Json(r, 0, "删除成功") } } // GetPageList 分页查询学生列表信息 func (c *StudentController) GetPageList(r *ghttp.Request) { // tenant 租户模式 tenant := r.Header.Get("Tenant") page := request.GetPageInfo(r) // 初始化学生service servcie, err := service.NewStudentService(tenant) if err != nil { response.Json(r, 1, err.Error()) } glog.Info(page) pageInfo := student.PageInfo{ Current: page.Current, PagesSize: page.Size, } selectPageReq := student.SelectPageReq{ Tenant: tenant, Name: "", Page: &pageInfo, // 排序 Prop: r.GetString("prop"), Order: r.GetString("order"), } if name := r.GetString("name"); name != "" { selectPageReq.Name = name } // 分页查询学生列表 if studentList, total, err := servcie.GetPageList(&selectPageReq); err != nil { response.Json(r, 1, err.Error()) } else { var records response.PagedRecords records.Current = page.Current records.Size = page.Size if total > 0 { records.Total = total records.Records = studentList } response.Json(r, 0, "", records) } }