github.com/insionng/yougam@v0.0.0-20170714101924-2bc18d833463/routers/root/RReadReport.go (about) 1 package root 2 3 import ( 4 "github.com/insionng/makross" 5 6 "github.com/insionng/yougam/models" 7 ) 8 9 func GetRReadReportHandler(self *makross.Context) error { 10 11 12 TplNames := "" 13 self.Set("catpage", "RReadReportHandler") 14 switch rid := self.Param("rid").MustInt64(); { 15 //单独模式 16 case rid > 0: 17 { 18 TplNames = "root/read_report.html" 19 20 if rm, err := models.GetReport(rid); rm != nil && err == nil { 21 self.Set("report", *rm) 22 23 if Reports, err := models.GetReports(0, 0, "id", 0); Reports != nil && err == nil { 24 self.Set("reports", Reports) 25 } 26 27 } else { 28 self.Flash.Error(err.Error()) 29 return self.Render(TplNames) 30 31 } 32 } 33 //列表模式 34 case rid <= 0: 35 { 36 37 TplNames = "root/report_table" 38 offset := self.Args("offset").MustInt64() 39 limit := self.Args("limit").MustInt64() 40 field := self.FormValue("field") 41 ctype := self.Args("ctype").MustInt64() 42 43 if limit == 0 { 44 limit = 1000 //默认限制显示最近1000条,需要显示全部请在提交请求的时候设置limit字段为-1 45 } 46 47 if field == "" { 48 field = "id" 49 } 50 51 if ctype != -1 || ctype != 1 { 52 53 switch name := self.Param("name").String(); { 54 case name == "topic": 55 self.Set("sidebar", "rtopics") 56 ctype = 1 57 case name == "reply": 58 self.Set("sidebar", "rreplys") 59 ctype = -1 60 default: 61 self.Set("sidebar", "reports") 62 ctype = 0 63 } 64 65 } 66 67 if rms, err := models.GetReports(int(offset), int(limit), field, ctype); err == nil && rms != nil { 68 self.Set("reports", rms) 69 } 70 } 71 } 72 73 return self.Render(TplNames) 74 75 }