mirror of
https://github.com/tiger1103/gfast.git
synced 2026-09-22 02:27:54 +00:00
优化response重用性
This commit is contained in:
@@ -12,7 +12,7 @@ type Index struct{}
|
|||||||
|
|
||||||
// 首页
|
// 首页
|
||||||
func (c *Index) Index(r *ghttp.Request) {
|
func (c *Index) Index(r *ghttp.Request) {
|
||||||
home.Response(r, "index.html")
|
home.WriteTpl(r, "index.html")
|
||||||
}
|
}
|
||||||
|
|
||||||
// 列表页
|
// 列表页
|
||||||
@@ -43,7 +43,7 @@ func (c *Index) listInfo(r *ghttp.Request, args ...interface{}) {
|
|||||||
} else {
|
} else {
|
||||||
tmp = "list/list.html"
|
tmp = "list/list.html"
|
||||||
}
|
}
|
||||||
home.Response(r, tmp, g.Map{
|
home.WriteTpl(r, tmp, g.Map{
|
||||||
"list": list,
|
"list": list,
|
||||||
"pageStyle": r.GetPage(total, pageSize).GetContent(4),
|
"pageStyle": r.GetPage(total, pageSize).GetContent(4),
|
||||||
"menu": menu,
|
"menu": menu,
|
||||||
@@ -67,10 +67,16 @@ func (c *Index) Show(r *ghttp.Request) {
|
|||||||
newsInfo, _ := cms_service.GetNewsById(int(newsId))
|
newsInfo, _ := cms_service.GetNewsById(int(newsId))
|
||||||
newsInfo.NewsHits++
|
newsInfo.NewsHits++
|
||||||
newsInfo.Save()
|
newsInfo.Save()
|
||||||
|
if newsInfo.IsJump == 1 {
|
||||||
|
//跳转连接
|
||||||
|
home.ResponseInstance.Redirect(r, newsInfo.JumpUrl)
|
||||||
|
r.Exit()
|
||||||
|
}
|
||||||
cateId := cateIds[0]
|
cateId := cateIds[0]
|
||||||
// 获取当前栏目
|
// 获取当前栏目
|
||||||
menu, _ := cms_service.GetMenuInfoById(cateId)
|
menu, _ := cms_service.GetMenuInfoById(cateId)
|
||||||
home.Response(r, menu.ContentTemplate, g.Map{
|
|
||||||
|
home.WriteTpl(r, menu.ContentTemplate, g.Map{
|
||||||
"content": res[0],
|
"content": res[0],
|
||||||
"author": res[1],
|
"author": res[1],
|
||||||
"newsInfo": newsInfo,
|
"newsInfo": newsInfo,
|
||||||
|
|||||||
@@ -16,7 +16,17 @@ import (
|
|||||||
"github.com/gogf/gf/util/gconv"
|
"github.com/gogf/gf/util/gconv"
|
||||||
)
|
)
|
||||||
|
|
||||||
func Response(r *ghttp.Request, tpl string, params ...gview.Params) error {
|
type Response struct {
|
||||||
|
*response.Response
|
||||||
|
}
|
||||||
|
|
||||||
|
var ResponseInstance Response
|
||||||
|
|
||||||
|
func WriteTpl(r *ghttp.Request, tpl string, params ...gview.Params) error {
|
||||||
|
return ResponseInstance.WriteTpl(r, tpl, params...)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (res *Response) WriteTpl(r *ghttp.Request, tpl string, params ...gview.Params) error {
|
||||||
v := g.View()
|
v := g.View()
|
||||||
v.SetPath("template/cms")
|
v.SetPath("template/cms")
|
||||||
//绑定模板中需要用到的方法
|
//绑定模板中需要用到的方法
|
||||||
@@ -122,5 +132,5 @@ func Response(r *ghttp.Request, tpl string, params ...gview.Params) error {
|
|||||||
})
|
})
|
||||||
//文章参数
|
//文章参数
|
||||||
params = append(params, g.Map{"newsParams": g.Map{}})
|
params = append(params, g.Map{"newsParams": g.Map{}})
|
||||||
return response.WriteTpl(r, tpl, v, params...)
|
return res.Response.WriteTpl(r, tpl, v, params...)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -23,9 +23,31 @@ type Response struct {
|
|||||||
Msg string `json:"msg"`
|
Msg string `json:"msg"`
|
||||||
}
|
}
|
||||||
|
|
||||||
// 返回JSON数据并退出当前HTTP执行函数。
|
var response *Response
|
||||||
|
|
||||||
func JsonExit(r *ghttp.Request, code int, msg string, data ...interface{}) {
|
func JsonExit(r *ghttp.Request, code int, msg string, data ...interface{}) {
|
||||||
RJson(r, code, msg, data...)
|
response.JsonExit(r, code, msg, data...)
|
||||||
|
}
|
||||||
|
|
||||||
|
func RJson(r *ghttp.Request, code int, msg string, data ...interface{}) {
|
||||||
|
response.RJson(r, code, msg, data...)
|
||||||
|
}
|
||||||
|
|
||||||
|
func SusJson(isExit bool, r *ghttp.Request, msg string, data ...interface{}) {
|
||||||
|
response.SusJson(isExit, r, msg, data...)
|
||||||
|
}
|
||||||
|
|
||||||
|
func FailJson(isExit bool, r *ghttp.Request, msg string, data ...interface{}) {
|
||||||
|
response.FailJson(isExit, r, msg, data...)
|
||||||
|
}
|
||||||
|
|
||||||
|
func WriteTpl(r *ghttp.Request, tpl string, view *gview.View, params ...gview.Params) error {
|
||||||
|
return response.WriteTpl(r, tpl, view, params...)
|
||||||
|
}
|
||||||
|
|
||||||
|
// 返回JSON数据并退出当前HTTP执行函数。
|
||||||
|
func (res *Response) JsonExit(r *ghttp.Request, code int, msg string, data ...interface{}) {
|
||||||
|
res.RJson(r, code, msg, data...)
|
||||||
r.Exit()
|
r.Exit()
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -34,38 +56,38 @@ func JsonExit(r *ghttp.Request, code int, msg string, data ...interface{}) {
|
|||||||
// code: 状态码(200:成功,302跳转,和http请求状态码一至);
|
// code: 状态码(200:成功,302跳转,和http请求状态码一至);
|
||||||
// msg: 请求结果信息;
|
// msg: 请求结果信息;
|
||||||
// data: 请求结果,根据不同接口返回结果的数据结构不同;
|
// data: 请求结果,根据不同接口返回结果的数据结构不同;
|
||||||
func RJson(r *ghttp.Request, code int, msg string, data ...interface{}) {
|
func (res *Response) RJson(r *ghttp.Request, code int, msg string, data ...interface{}) {
|
||||||
responseData := interface{}(nil)
|
responseData := interface{}(nil)
|
||||||
if len(data) > 0 {
|
if len(data) > 0 {
|
||||||
responseData = data[0]
|
responseData = data[0]
|
||||||
}
|
}
|
||||||
result := Response{
|
response = &Response{
|
||||||
Code: code,
|
Code: code,
|
||||||
Msg: msg,
|
Msg: msg,
|
||||||
Data: responseData,
|
Data: responseData,
|
||||||
}
|
}
|
||||||
r.SetParam("apiReturnRes", result)
|
r.SetParam("apiReturnRes", response)
|
||||||
r.Response.WriteJson(result)
|
r.Response.WriteJson(response)
|
||||||
}
|
}
|
||||||
|
|
||||||
//成功返回JSON
|
//成功返回JSON
|
||||||
func SusJson(isExit bool, r *ghttp.Request, msg string, data ...interface{}) {
|
func (res *Response) SusJson(isExit bool, r *ghttp.Request, msg string, data ...interface{}) {
|
||||||
if isExit {
|
if isExit {
|
||||||
JsonExit(r, SuccessCode, msg, data...)
|
res.JsonExit(r, SuccessCode, msg, data...)
|
||||||
}
|
}
|
||||||
RJson(r, SuccessCode, msg, data...)
|
res.RJson(r, SuccessCode, msg, data...)
|
||||||
}
|
}
|
||||||
|
|
||||||
//失败返回JSON
|
//失败返回JSON
|
||||||
func FailJson(isExit bool, r *ghttp.Request, msg string, data ...interface{}) {
|
func (res *Response) FailJson(isExit bool, r *ghttp.Request, msg string, data ...interface{}) {
|
||||||
if isExit {
|
if isExit {
|
||||||
JsonExit(r, ErrorCode, msg, data...)
|
res.JsonExit(r, ErrorCode, msg, data...)
|
||||||
}
|
}
|
||||||
RJson(r, ErrorCode, msg, data...)
|
res.RJson(r, ErrorCode, msg, data...)
|
||||||
}
|
}
|
||||||
|
|
||||||
//模板输出
|
//模板输出
|
||||||
func WriteTpl(r *ghttp.Request, tpl string, view *gview.View, params ...gview.Params) error {
|
func (res *Response) WriteTpl(r *ghttp.Request, tpl string, view *gview.View, params ...gview.Params) error {
|
||||||
//绑定模板中需要用到的方法
|
//绑定模板中需要用到的方法
|
||||||
view.BindFuncMap(g.Map{
|
view.BindFuncMap(g.Map{
|
||||||
// 根据长度i来切割字符串
|
// 根据长度i来切割字符串
|
||||||
@@ -107,3 +129,7 @@ func WriteTpl(r *ghttp.Request, tpl string, view *gview.View, params ...gview.Pa
|
|||||||
})
|
})
|
||||||
return r.Response.WriteTpl(tpl, params...)
|
return r.Response.WriteTpl(tpl, params...)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (res *Response) Redirect(r *ghttp.Request, location string, code ...int) {
|
||||||
|
r.Response.RedirectTo(location, code...)
|
||||||
|
}
|
||||||
|
|||||||
@@ -47,17 +47,10 @@
|
|||||||
<div class="swiper-wrapper">
|
<div class="swiper-wrapper">
|
||||||
${range $index,$article := $listSlide}
|
${range $index,$article := $listSlide}
|
||||||
<div class="swiper-slide">
|
<div class="swiper-slide">
|
||||||
${if eq $article.IsJump 1}
|
|
||||||
<a href="${$article.JumpUrl}" target="_blank">
|
|
||||||
<img src="${$.domain}${$article.Thumbnail}">
|
|
||||||
<h3 class="slide-title">${$article.NewsTitle}</h3>
|
|
||||||
</a>
|
|
||||||
${else}
|
|
||||||
<a href="${$.domain}cms/show/${$article.CateList | getArticleCateId}/${$article.Id}" target="_blank">
|
<a href="${$.domain}cms/show/${$article.CateList | getArticleCateId}/${$article.Id}" target="_blank">
|
||||||
<img src="${$.domain}${$article.Thumbnail}">
|
<img src="${$.domain}${$article.Thumbnail}">
|
||||||
<h3 class="slide-title">${$article.NewsTitle}</h3>
|
<h3 class="slide-title">${$article.NewsTitle}</h3>
|
||||||
</a>
|
</a>
|
||||||
${end}
|
|
||||||
</div>
|
</div>
|
||||||
${end}
|
${end}
|
||||||
</div>
|
</div>
|
||||||
@@ -74,11 +67,7 @@
|
|||||||
${range $index,$article := $list}
|
${range $index,$article := $list}
|
||||||
<div class="lista">
|
<div class="lista">
|
||||||
<h3>
|
<h3>
|
||||||
${if eq $article.IsJump 1}
|
|
||||||
<a href="${$article.JumpUrl}" target="_blank">${subStr $article.NewsTitle 24}</a>
|
|
||||||
${else}
|
|
||||||
<a href="${$.domain}cms/show/${$article.CateList | getArticleCateId}/${$article.Id}" target="_blank">${subStr $article.NewsTitle 24}</a>
|
<a href="${$.domain}cms/show/${$article.CateList | getArticleCateId}/${$article.Id}" target="_blank">${subStr $article.NewsTitle 24}</a>
|
||||||
${end}
|
|
||||||
</h3>
|
</h3>
|
||||||
<div class="pov">
|
<div class="pov">
|
||||||
<div class="sview">
|
<div class="sview">
|
||||||
@@ -99,11 +88,7 @@
|
|||||||
</div>
|
</div>
|
||||||
${if ne $article.Thumbnail ""}
|
${if ne $article.Thumbnail ""}
|
||||||
<div class="sviewr">
|
<div class="sviewr">
|
||||||
${if eq $article.IsJump 1}
|
|
||||||
<a href="${$article.JumpUrl}" target="_blank"><img src="${$.domain}${$article.Thumbnail}"></a>
|
|
||||||
${else}
|
|
||||||
<a href="${$.domain}cms/show/${$article.CateList | getArticleCateId}/${$article.Id}" target="_blank"><img src="${$.domain}${$article.Thumbnail}"></a>
|
<a href="${$.domain}cms/show/${$article.CateList | getArticleCateId}/${$article.Id}" target="_blank"><img src="${$.domain}${$article.Thumbnail}"></a>
|
||||||
${end}
|
|
||||||
</div>
|
</div>
|
||||||
${end}
|
${end}
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -29,11 +29,7 @@
|
|||||||
${range $index,$article := .list}
|
${range $index,$article := .list}
|
||||||
<div class="lista">
|
<div class="lista">
|
||||||
<h3>
|
<h3>
|
||||||
${if eq $article.IsJump 1}
|
|
||||||
<a href="${$article.JumpUrl}" target="_blank">${subStr $article.NewsTitle 24}</a>
|
|
||||||
${else}
|
|
||||||
<a href="${$.domain}cms/show/${$article.CateList | getArticleCateId}/${$article.Id}" target="_blank">${subStr $article.NewsTitle 24}</a>
|
<a href="${$.domain}cms/show/${$article.CateList | getArticleCateId}/${$article.Id}" target="_blank">${subStr $article.NewsTitle 24}</a>
|
||||||
${end}
|
|
||||||
</h3>
|
</h3>
|
||||||
<div class="pov">
|
<div class="pov">
|
||||||
<div class="sview">
|
<div class="sview">
|
||||||
@@ -53,11 +49,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="sviewr">
|
<div class="sviewr">
|
||||||
${if eq $article.IsJump 1}
|
|
||||||
<a href="${$article.JumpUrl}" target="_blank"><img src="${$.domain}${$article.Thumbnail}"></a>
|
|
||||||
${else}
|
|
||||||
<a href="${$.domain}cms/show/${$article.CateList | getArticleCateId}/${$article.Id}" target="_blank"><img src="${$.domain}${$article.Thumbnail}"></a>
|
<a href="${$.domain}cms/show/${$article.CateList | getArticleCateId}/${$article.Id}" target="_blank"><img src="${$.domain}${$article.Thumbnail}"></a>
|
||||||
${end}
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -21,24 +21,14 @@ ${define "sitebar"}
|
|||||||
${range $index,$article := $listRec}
|
${range $index,$article := $listRec}
|
||||||
<li>
|
<li>
|
||||||
<div class="artl">
|
<div class="artl">
|
||||||
${if eq $article.IsJump 1}
|
|
||||||
<a href="${$article.JumpUrl}" target="_blank">
|
|
||||||
<p>${subStr $article.NewsTitle 20}</p>
|
|
||||||
</a>
|
|
||||||
${else}
|
|
||||||
<a href="${$.domain}cms/show/${$article.CateList | getArticleCateId}/${$article.Id}" target="_blank">
|
<a href="${$.domain}cms/show/${$article.CateList | getArticleCateId}/${$article.Id}" target="_blank">
|
||||||
<p>${subStr $article.NewsTitle 20}</p>
|
<p>${subStr $article.NewsTitle 20}</p>
|
||||||
</a>
|
</a>
|
||||||
${end}
|
|
||||||
<label>${$article.PublishedTime|timeFormatYear}</label>
|
<label>${$article.PublishedTime|timeFormatYear}</label>
|
||||||
</div>
|
</div>
|
||||||
${if ne $article.Thumbnail ""}
|
${if ne $article.Thumbnail ""}
|
||||||
<div class="artr">
|
<div class="artr">
|
||||||
${if eq $article.IsJump 1}
|
|
||||||
<a href="${$article.JumpUrl}" target="_blank"><img src="${$.domain}${$article.Thumbnail}"></a>
|
|
||||||
${else}
|
|
||||||
<a href="${$.domain}cms/show/${$article.CateList | getArticleCateId}/${$article.Id}" target="_blank"><img src="${$.domain}${$article.Thumbnail}"></a>
|
<a href="${$.domain}cms/show/${$article.CateList | getArticleCateId}/${$article.Id}" target="_blank"><img src="${$.domain}${$article.Thumbnail}"></a>
|
||||||
${end}
|
|
||||||
</div>
|
</div>
|
||||||
${end}
|
${end}
|
||||||
</li>
|
</li>
|
||||||
@@ -63,24 +53,14 @@ ${define "sitebar"}
|
|||||||
${range $index,$article := $listHits}
|
${range $index,$article := $listHits}
|
||||||
<li>
|
<li>
|
||||||
<div class="artl">
|
<div class="artl">
|
||||||
${if eq $article.IsJump 1}
|
|
||||||
<a href="${$article.JumpUrl}" target="_blank">
|
|
||||||
<p>${subStr $article.NewsTitle 20}</p>
|
|
||||||
</a>
|
|
||||||
${else}
|
|
||||||
<a href="${$.domain}cms/show/${$article.CateList | getArticleCateId}/${$article.Id}" target="_blank">
|
<a href="${$.domain}cms/show/${$article.CateList | getArticleCateId}/${$article.Id}" target="_blank">
|
||||||
<p>${subStr $article.NewsTitle 20}</p>
|
<p>${subStr $article.NewsTitle 20}</p>
|
||||||
</a>
|
</a>
|
||||||
${end}
|
|
||||||
<label>${$article.PublishedTime|timeFormatYear}</label>
|
<label>${$article.PublishedTime|timeFormatYear}</label>
|
||||||
</div>
|
</div>
|
||||||
${if ne $article.Thumbnail ""}
|
${if ne $article.Thumbnail ""}
|
||||||
<div class="artr">
|
<div class="artr">
|
||||||
${if eq $article.IsJump 1}
|
|
||||||
<a href="${$article.JumpUrl}" target="_blank"><img src="${$.domain}${$article.Thumbnail}"></a>
|
|
||||||
${else}
|
|
||||||
<a href="${$.domain}cms/show/${$article.CateList | getArticleCateId}/${$article.Id}" target="_blank"><img src="${$.domain}${$article.Thumbnail}"></a>
|
<a href="${$.domain}cms/show/${$article.CateList | getArticleCateId}/${$article.Id}" target="_blank"><img src="${$.domain}${$article.Thumbnail}"></a>
|
||||||
${end}
|
|
||||||
</div>
|
</div>
|
||||||
${end}
|
${end}
|
||||||
</li>
|
</li>
|
||||||
|
|||||||
Reference in New Issue
Block a user