student.go 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151
  1. package demo
  2. import (
  3. "dashoo.cn/micro_libary/request"
  4. "dashoo.cn/micro_libary/response"
  5. "dashoo.cn/modi_webapi/app/model/demo/student"
  6. service "dashoo.cn/modi_webapi/app/service/demo"
  7. "github.com/gogf/gf/net/ghttp"
  8. "github.com/gogf/gf/os/glog"
  9. "strconv"
  10. "strings"
  11. )
  12. // 学生管理Controller
  13. type StudentController struct {
  14. }
  15. // GetDetailById 根据id获取学生详情信息
  16. func (c *StudentController) GetDetailById(r *ghttp.Request) {
  17. // tenant 租户模式
  18. tenant := r.Header.Get("Tenant")
  19. // 学生id
  20. StId := r.GetInt("id")
  21. glog.Info(StId)
  22. // 初始化学生service
  23. servcie, err := service.NewStudentService(tenant)
  24. if err != nil {
  25. response.Json(r, 1, err.Error())
  26. }
  27. // 调用service方法
  28. if student, err := servcie.GetStudentByID(StId); err != nil {
  29. response.Json(r, 1, err.Error())
  30. } else {
  31. response.Json(r, 0, "", student)
  32. }
  33. }
  34. // SaveStudent 保存学生信息
  35. func (c *StudentController) SaveStudent(r *ghttp.Request) {
  36. // tenant 租户模式
  37. tenant := r.Header.Get("Tenant")
  38. var addOrUpdateReq *student.AddOrUpdateReq
  39. // 赋值并// 校验参数
  40. if err := r.Parse(&addOrUpdateReq); err != nil {
  41. response.Json(r, 1, err.Error())
  42. }
  43. // 初始化学生service
  44. servcie, err := service.NewStudentService(tenant)
  45. if err != nil {
  46. response.Json(r, 1, err.Error())
  47. }
  48. subject := ""
  49. subjectName := ""
  50. // 多选课程处理,判断多选时,转存为字符串
  51. subIds := r.GetInts("Subject")
  52. subNames := r.GetStrings("SubjectName")
  53. if len(subIds) > 0 {
  54. subArray := make([]string, len(subIds))
  55. subNameArray := make([]string, len(subNames))
  56. for i, arg := range subIds {
  57. subArray[i] = strconv.Itoa(arg)
  58. }
  59. for i, arg := range subNames {
  60. subNameArray[i] = arg
  61. }
  62. subject = strings.Join(subArray, ",")
  63. subjectName = strings.Join(subNameArray, ",")
  64. }
  65. addOrUpdateReq.Subject = subject
  66. addOrUpdateReq.SubjectName = subjectName
  67. // 判断是新增还是删除,获取的id为空新增,不为空则更新
  68. if addOrUpdateReq.Id > 0 {
  69. if newStudent, err := servcie.Update(addOrUpdateReq); err != nil {
  70. response.Json(r, 1, err.Error())
  71. } else {
  72. response.Json(r, 0, "更新成功", newStudent)
  73. }
  74. } else {
  75. addOrUpdateReq.Id = 0
  76. if newId, err := servcie.Add(addOrUpdateReq); err != nil {
  77. response.Json(r, 1, err.Error())
  78. } else {
  79. response.Json(r, 0, "新建成功", newId)
  80. }
  81. }
  82. }
  83. // DeleteStudentById 删除学生信息,更新学生删除状态isDel=1
  84. func (c *StudentController) DeleteStudentById(r *ghttp.Request) {
  85. // tenant 租户模式
  86. tenant := r.Header.Get("Tenant")
  87. Ids := r.GetInts("ids")
  88. // 初始化学生service
  89. servcie, err := service.NewStudentService(tenant)
  90. if err != nil {
  91. response.Json(r, 1, err.Error())
  92. }
  93. delReq := new(student.DeleteReq)
  94. delReq.Ids = Ids
  95. delReq.IsDel = 1
  96. if err := servcie.Delete(delReq); err != nil {
  97. response.Json(r, 1, err.Error())
  98. } else {
  99. response.Json(r, 0, "删除成功")
  100. }
  101. }
  102. // GetPageList 分页查询学生列表信息
  103. func (c *StudentController) GetPageList(r *ghttp.Request) {
  104. // tenant 租户模式
  105. tenant := r.Header.Get("Tenant")
  106. page := request.GetPageInfo(r)
  107. // 初始化学生service
  108. servcie, err := service.NewStudentService(tenant)
  109. if err != nil {
  110. response.Json(r, 1, err.Error())
  111. }
  112. glog.Info(page)
  113. pageInfo := student.PageInfo{
  114. Current: page.Current,
  115. PagesSize: page.Size,
  116. }
  117. selectPageReq := student.SelectPageReq{
  118. Tenant: tenant,
  119. Name: "",
  120. Page: &pageInfo,
  121. // 排序
  122. Prop: r.GetString("prop"),
  123. Order: r.GetString("order"),
  124. }
  125. if name := r.GetString("name"); name != "" {
  126. selectPageReq.Name = name
  127. }
  128. // 分页查询学生列表
  129. if studentList, total, err := servcie.GetPageList(&selectPageReq); err != nil {
  130. response.Json(r, 1, err.Error())
  131. } else {
  132. var records response.PagedRecords
  133. records.Current = page.Current
  134. records.Size = page.Size
  135. if total > 0 {
  136. records.Total = total
  137. records.Records = studentList
  138. }
  139. response.Json(r, 0, "", records)
  140. }
  141. }