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