浏览代码

订阅中心

kobe6258 4 月之前
父节点
当前提交
5dfb111bae
共有 4 个文件被更改,包括 83 次插入1 次删除
  1. 75 0
      controllers/home/home_controller.go
  2. 1 0
      middleware/auth_middleware.go
  3. 1 1
      models/merchant/merchant_product.go
  4. 6 0
      routers/router.go

+ 75 - 0
controllers/home/home_controller.go

@@ -0,0 +1,75 @@
+package home
+
+import (
+	"eta/eta_mini_ht_api/common/exception"
+	"eta/eta_mini_ht_api/common/utils/page"
+	"eta/eta_mini_ht_api/controllers"
+	reportService "eta/eta_mini_ht_api/domian/report"
+	"eta/eta_mini_ht_api/service/report"
+)
+
+type HomeController struct {
+	controllers.ListController
+}
+
+// Search 搜索报告列表
+// @Description 搜索报告列表
+// @Success 200 {object}
+// @router /search [get]
+func (r *HomeController) Search(key string) {
+	controllers.Wrap(&r.BaseController, func() (result *controllers.WrapData, err error) {
+		result = r.InitWrapData("分页搜索报告列表失败")
+		if key == "" {
+			err = exception.New(exception.SearchKeyEmptyError)
+			r.FailedResult("分页搜索报告列表失败", result)
+			return
+		}
+		detailType := r.Data["detailType"].(string)
+		userInfo := r.Data["user"].(user.User)
+		pageRes := page.Page{
+			Current:  r.PageInfo.Current,
+			PageSize: r.PageInfo.PageSize,
+		}
+		//获取当前可以被搜索的报告原始ID
+		//先要限制查询的id范围
+		var reportIds []int
+		pageRes.Total, pageRes.LatestId, reportIds, err = report.RangeSearch(key, isLogin(detailType), userInfo.Id)
+		if err != nil {
+			logger.Error("获取报告原始ID列表失败:%v", err)
+			r.FailedResult("分页搜索报告列表失败", result)
+			return
+		}
+		if len(reportIds) == 0 {
+			reports := new(page.PageResult)
+			reports.Data = []reportService.ReportDTO{}
+			reports.Page = pageRes
+			logger.Info("没有可以查询的报告列表")
+			r.SuccessResult("分页搜索报告列表成功", reports, result)
+			return
+		}
+
+		if r.PageInfo.LatestId == 0 {
+			//pageRes.Total, pageRes.LatestId = report.SearchMaxReportId(key)
+			r.PageInfo.LatestId = pageRes.LatestId
+			r.PageInfo.Total = pageRes.Total
+		} else {
+			pageRes.LatestId = r.PageInfo.LatestId
+			pageRes.Total = r.PageInfo.Total
+		}
+		pageRes.TotalPage = page.TotalPages(pageRes.Total, pageRes.PageSize)
+		list := make([]reportService.ReportDTO, 0)
+		if pageRes.LatestId > 0 {
+			//订阅 TODO
+			list, err = report.SearchReportList(key, reportIds, r.PageInfo, isLogin(detailType), userInfo.Id)
+			if err != nil {
+				r.FailedResult("分页搜索报告列表失败", result)
+				return
+			}
+		}
+		reports := new(page.PageResult)
+		reports.Data = list
+		reports.Page = pageRes
+		r.SuccessResult("分页搜索报告列表成功", reports, result)
+		return
+	})
+}

+ 1 - 0
middleware/auth_middleware.go

@@ -47,6 +47,7 @@ var detailRoutes = []string{
 	"/report/search",
 	"/report/hotRankedList",
 	"/report/publishRankedList",
+	"/home/search",
 }
 var publicRoutes = []string{
 	"/auth/areaCodes",

+ 1 - 1
models/merchant/merchant_product.go

@@ -228,6 +228,6 @@ func PackageListBySort(weightMap map[int]*atomic.Int32, id int64, offset int, si
 		idSort = append(idSort, v.SourceId)
 	}
 	db := models.Main()
-	err = db.Select(detailColumns).Where("id <= ?  and type =? and deleted =? and source_id in ? order by Field(id,?) desc limit ?,? ", id, Package, false, idSort, offset, size).Find(&productList).Error
+	err = db.Select(detailColumns).Where("id <= ?  and type =? and deleted =? and source_id in ? order by Field(id,?) desc limit ?,? ", id, Package, false, idSort, strings.Join(stringUtils.IntToStringSlice(idSort), ","), offset, size).Find(&productList).Error
 	return
 }

+ 6 - 0
routers/router.go

@@ -2,6 +2,7 @@ package routers
 
 import (
 	"eta/eta_mini_ht_api/controllers"
+	"eta/eta_mini_ht_api/controllers/home"
 	"eta/eta_mini_ht_api/controllers/media"
 	"eta/eta_mini_ht_api/controllers/order"
 	"eta/eta_mini_ht_api/controllers/payment"
@@ -36,6 +37,11 @@ func init() {
 				&user.UserController{},
 			),
 		),
+		web.NSNamespace("/home",
+			web.NSInclude(
+				&home.HomeController{},
+			),
+		),
 		web.NSNamespace("/auth",
 			web.NSInclude(
 				&user.AuthController{},