Pārlūkot izejas kodu

首页添加授课教师的查询框

luchm 4 gadi atpakaļ
vecāks
revīzija
58c515957f

+ 7 - 31
backend/src/dashoo.cn/modi_webapi/app/api/course/course.go

@@ -8,6 +8,7 @@ import (
 	"fmt"
 	"github.com/gogf/gf/net/ghttp"
 	"github.com/gogf/gf/os/glog"
+	"log"
 )
 
 // 课程管理API管理对象
@@ -17,49 +18,24 @@ type Controller struct {
 //  获取课程管理列表
 func (c *Controller) GetAllCourse(r *ghttp.Request) {
 	page := request.GetPageInfo(r)
-	where := ""
 
-	if year := r.GetInt("Year"); year != 0 {
-		if where == "" {
-			where = fmt.Sprintf(" Year = %v", year)
-		} else {
-			where += fmt.Sprintf(" AND Year = %v", year)
-		}
-	}
-
-	if term := r.GetInt("Term"); term != 0 {
-		if where == "" {
-			where = fmt.Sprintf(" Term = %v", term)
-		} else {
-			where += fmt.Sprintf(" AND Term = %v", term)
-		}
-	}
+	var req course.SearchReq
 
-	if classId := r.GetInt("ClassId"); classId != 0 {
-		if where == "" {
-			where = fmt.Sprintf(" ClassId = %v", classId)
-		} else {
-			where += fmt.Sprintf(" AND ClassId = %v", classId)
-		}
+	if err :=  r.Parse(&req);err!=nil{
+		response.Json(r, 1, err.Error())
 	}
 
-	if Status := r.GetInt("Status"); Status != 0 {
-		if where == "" {
-			where = fmt.Sprintf(" Status = %v", Status)
-		} else {
-			where += fmt.Sprintf(" AND Status = %v", Status)
-		}
-	}
+	log.Println("  req ",req)
 
 	var result []course.Entity
-	if err := course.GetAllCourse(page, where, &result); err != nil {
+	if err := course.GetAllCourse(page, req, &result); err != nil {
 		if err.Error() == "sql: no rows in result set" {
 			response.Json(r, 0, "")
 			return
 		}
 		response.Json(r, 1, err.Error())
 	} else {
-		count, err1 := course.FindCourseCount(where)
+		count, err1 := course.FindCourseCount(req)
 		if err1 != nil {
 			response.Json(r, 1, err1.Error())
 		} else {

+ 62 - 4
backend/src/dashoo.cn/modi_webapi/app/model/course/course.go

@@ -3,17 +3,75 @@ package course
 import (
 	"dashoo.cn/modi_webapi/library/request"
 	"github.com/gogf/gf/frame/g"
+	"github.com/gogf/gf/util/gconv"
 )
 
 var (
 	recordsTable = g.DB().Table("course").Safe()
 )
 
-func GetAllCourse(page request.PageInfo, where string, result *[]Entity) (err error) {
-	err = recordsTable.Where(where).Page(page.Current, page.Size).Order("CreatedTime desc").Scan(result)
+
+type SearchReq struct {
+	Year int `json:"Year"`
+	Term int `json:"Term"`
+	ClassId int `json:"ClassId"`
+	Status int `json:"Status"`
+	Teacher int `json:"Teacher"`
+}
+
+
+
+func GetAllCourse(page request.PageInfo, req  SearchReq, result *[]Entity) (err error) {
+
+
+	model:= g.DB().Table("  course   a ")
+
+	if req.Teacher !=0 {
+		model.LeftJoin( " ( select DISTINCT CourseId  from  course_detail where Teacher = "+gconv.String(req.Teacher)+" ) b  " ," a.id = b.CourseId ")
+		model.Where("  a.id = b.CourseId ")
+	}
+
+	if req.Status !=0 {
+		model.Where(" a.Status = "+gconv.String(req.Status)+" ")
+	}
+	if req.ClassId !=0 {
+		model.Where(" a.ClassId = "+gconv.String(req.ClassId)+" ")
+	}
+	if req.Year !=0 {
+		model.Where(" a.Year = "+gconv.String(req.Year)+" ")
+	}
+
+	if req.Term !=0 {
+		model.Where(" a.Term = "+gconv.String(req.Term)+" ")
+	}
+
+
+	err =  model.Order("a.CreatedTime desc").Scan(result)
 	return err
 }
 
-func FindCourseCount(where string) (int, error) {
-	return recordsTable.Where(where).Count()
+func FindCourseCount( req  SearchReq) (int, error) {
+
+
+	model:= g.DB().Table("  course   a ")
+
+	if req.Teacher !=0 {
+		model.LeftJoin( " ( select DISTINCT CourseId  from  course_detail where Teacher = "+gconv.String(req.Teacher)+" ) b  " ," a.id = b.CourseId ")
+		model.Where("  a.id = b.CourseId ")
+	}
+
+	if req.Status !=0 {
+		model.Where(" a.Status = "+gconv.String(req.Status)+" ")
+	}
+	if req.ClassId !=0 {
+		model.Where(" a.ClassId = "+gconv.String(req.ClassId)+" ")
+	}
+	if req.Year !=0 {
+		model.Where(" a.Year = "+gconv.String(req.Year)+" ")
+	}
+
+	if req.Term !=0 {
+		model.Where(" a.Term = "+gconv.String(req.Term)+" ")
+	}
+	return model.Count()
 }

+ 27 - 0
frontend_web/src/views/demo/page1/index.vue

@@ -95,6 +95,17 @@
                 </el-option>
               </el-select>
             </el-form-item>
+            <el-form-item label="授课教师"
+                            prop="Teacher">
+                <el-select v-model="searchcourse.Teacher" filterable
+                          style="width: 100%">
+                  <el-option v-for="item in TeacherList"
+                            :key="item.Teacher"
+                            :label="item.ItemName"
+                            :value="parseInt(item.ItemValue)">
+                  </el-option>
+                </el-select>
+              </el-form-item>
             <el-button size="mini"
                        type="primary"
                        @click="initDatasCourse()"
@@ -289,8 +300,10 @@ export default {
       years: [],
       details: false,
       classList: [], // 班级列表
+       TeacherList:[], // 教师列表
       statusList: [], // 状态列表
       termList: [], // 学期
+
       activities: [],
       activitiescourse: [],
       courselist: [],
@@ -324,6 +337,7 @@ export default {
         Year: '',
         Status: 1,
         ClassId: '',
+        Teacher:'',
         page: {
           total: 0,
           current: 1,
@@ -356,6 +370,7 @@ export default {
     this.initDatasCourse()
     this.initSelectYear()
     this.initDatas_duty()
+    this.getTeacherList()
     // this.initDatas_class()
     this.getClassList()
   },
@@ -421,6 +436,17 @@ export default {
           return this.classList[i].Name
         }
       }
+    },
+     // 获取教师列表
+    getTeacherList () {
+      let _this = this
+      itemDetailApi.getItemDetailByItemCode({ ItemCode: 'Teacher' })
+        .then(res => {
+          this.TeacherList = res
+        })
+        .catch(err => {
+          console.error(err)
+        })
     },
     // 获取学期
     getTerm () {
@@ -570,6 +596,7 @@ export default {
     clearSearch () {
       this.searchcourse.Year = ''
       this.searchcourse.ClassId = ''
+      this.searchcourse.Teacher =''
       this.initDatasCourse()
     },
     clearSearchduty () {