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  }