Browse Source

优化response重用性

yxh 5 năm trước cách đây
mục cha
commit
f5708f4e2e

+ 9 - 3
app/controller/home/index.go

@@ -12,7 +12,7 @@ type Index struct{}
 
 // 首页
 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 {
 		tmp = "list/list.html"
 	}
-	home.Response(r, tmp, g.Map{
+	home.WriteTpl(r, tmp, g.Map{
 		"list":      list,
 		"pageStyle": r.GetPage(total, pageSize).GetContent(4),
 		"menu":      menu,
@@ -67,10 +67,16 @@ func (c *Index) Show(r *ghttp.Request) {
 	newsInfo, _ := cms_service.GetNewsById(int(newsId))
 	newsInfo.NewsHits++
 	newsInfo.Save()
+	if newsInfo.IsJump == 1 {
+		//跳转连接
+		home.ResponseInstance.Redirect(r, newsInfo.JumpUrl)
+		r.Exit()
+	}
 	cateId := cateIds[0]
 	// 获取当前栏目
 	menu, _ := cms_service.GetMenuInfoById(cateId)
-	home.Response(r, menu.ContentTemplate, g.Map{
+
+	home.WriteTpl(r, menu.ContentTemplate, g.Map{
 		"content":  res[0],
 		"author":   res[1],
 		"newsInfo": newsInfo,

+ 12 - 2
library/response/home/response.go

@@ -16,7 +16,17 @@ import (
 	"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.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{}})
-	return response.WriteTpl(r, tpl, v, params...)
+	return res.Response.WriteTpl(r, tpl, v, params...)
 }

+ 39 - 13
library/response/response.go

@@ -23,9 +23,31 @@ type Response struct {
 	Msg string `json:"msg"`
 }
 
-// 返回JSON数据并退出当前HTTP执行函数。
+var response *Response
+
 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()
 }
 
@@ -34,38 +56,38 @@ func JsonExit(r *ghttp.Request, code int, msg string, data ...interface{}) {
 // code:  状态码(200:成功,302跳转,和http请求状态码一至);
 // msg:  请求结果信息;
 // 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)
 	if len(data) > 0 {
 		responseData = data[0]
 	}
-	result := Response{
+	response = &Response{
 		Code: code,
 		Msg:  msg,
 		Data: responseData,
 	}
-	r.SetParam("apiReturnRes", result)
-	r.Response.WriteJson(result)
+	r.SetParam("apiReturnRes", response)
+	r.Response.WriteJson(response)
 }
 
 //成功返回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 {
-		JsonExit(r, SuccessCode, msg, data...)
+		res.JsonExit(r, SuccessCode, msg, data...)
 	}
-	RJson(r, SuccessCode, msg, data...)
+	res.RJson(r, SuccessCode, msg, data...)
 }
 
 //失败返回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 {
-		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{
 		// 根据长度i来切割字符串
@@ -107,3 +129,7 @@ func WriteTpl(r *ghttp.Request, tpl string, view *gview.View, params ...gview.Pa
 	})
 	return r.Response.WriteTpl(tpl, params...)
 }
+
+func (res *Response) Redirect(r *ghttp.Request, location string, code ...int) {
+	r.Response.RedirectTo(location, code...)
+}

+ 0 - 15
template/cms/index.html

@@ -47,17 +47,10 @@
                     <div class="swiper-wrapper">
                         ${range $index,$article := $listSlide}
                         <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">
                                 <img src="${$.domain}${$article.Thumbnail}">
                                 <h3 class="slide-title">${$article.NewsTitle}</h3>
                             </a>
-                            ${end}
                         </div>
                         ${end}
                     </div>
@@ -74,11 +67,7 @@
                 ${range $index,$article := $list}
                 <div class="lista">
                     <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>
-                        ${end}
                     </h3>
                     <div class="pov">
                         <div class="sview">
@@ -99,11 +88,7 @@
                             </div>
                             ${if ne $article.Thumbnail ""}
                             <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>
-                                ${end}
                             </div>
                             ${end}
                         </div>

+ 0 - 8
template/cms/list/list.html

@@ -29,11 +29,7 @@
                 ${range $index,$article := .list}
                 <div class="lista">
                     <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>
-                        ${end}
                     </h3>
                     <div class="pov">
                         <div class="sview">
@@ -53,11 +49,7 @@
                                 </div>
                             </div>
                             <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>
-                                ${end}
                             </div>
                         </div>
                     </div>

+ 0 - 20
template/cms/sitebar/sitebar.html

@@ -21,24 +21,14 @@ ${define "sitebar"}
                 ${range $index,$article := $listRec}
                 <li>
                     <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">
                             <p>${subStr $article.NewsTitle 20}</p>
                         </a>
-                        ${end}
                         <label>${$article.PublishedTime|timeFormatYear}</label>
                     </div>
                     ${if ne $article.Thumbnail ""}
                     <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>
-                        ${end}
                     </div>
                     ${end}
                 </li>
@@ -63,24 +53,14 @@ ${define "sitebar"}
                 ${range $index,$article := $listHits}
                 <li>
                     <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">
                             <p>${subStr $article.NewsTitle 20}</p>
                         </a>
-                        ${end}
                         <label>${$article.PublishedTime|timeFormatYear}</label>
                     </div>
                     ${if ne $article.Thumbnail ""}
                     <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>
-                        ${end}
                     </div>
                     ${end}
                 </li>