优化response重用性

This commit is contained in:
yxh
2020-11-02 16:02:15 +08:00
parent 41df38b6a6
commit f5708f4e2e
6 changed files with 60 additions and 61 deletions
+9 -3
View File
@@ -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,
+12 -2
View File
@@ -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...)
} }
+39 -13
View File
@@ -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...)
}
-15
View File
@@ -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>
-8
View File
@@ -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>
-20
View File
@@ -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>