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  }