浏览代码

新增首页接口

rdluck 4 年之前
父节点
当前提交
fac385d904
共有 4 个文件被更改,包括 94 次插入1 次删除
  1. 35 0
      controllers/home.go
  2. 49 1
      models/home.go
  3. 3 0
      routers/router.go
  4. 7 0
      services/home.go

+ 35 - 0
controllers/home.go

@@ -10,6 +10,10 @@ type HomeController struct {
 	BaseAuthController
 }
 
+type HomeCommonController struct {
+	BaseCommonController
+}
+
 // @Title 首页列表接口
 // @Description 首页列表接口
 // @Success 200 {object} models.HomeList
@@ -68,3 +72,34 @@ func (this *HomeController) ListBanner() {
 	br.Msg = "获取数据成功"
 	br.Data = list
 }
+
+
+// @Title pc-首页列表接口
+// @Description pc-首页列表接口
+// @Success 200 {object} models.HomeList
+// @router /pc/list [get]
+func (this *HomeCommonController) ListHome() {
+	br := new(models.BaseResponse).Init()
+	defer func() {
+		this.Data["json"] = br
+		this.ServeJSON()
+	}()
+	list, err := services.PcHomeList()
+	if err != nil {
+		br.Msg = "获取数据失败"
+		br.ErrMsg = "获取数据失败,Err:" + err.Error()
+		return
+	}
+	for i := 0; i < len(list); i++ {
+		item := list[i]
+		if item.ClassifyName == "权益研报" {
+			list[i].TitleType = "权益"
+		} else {
+			list[i].TitleType = "FICC"
+		}
+	}
+	br.Ret = 200
+	br.Success = true
+	br.Msg = "获取数据成功"
+	br.Data = list
+}

+ 49 - 1
models/home.go

@@ -10,7 +10,7 @@ type HomeList struct {
 	ClassifyId   int    `orm:"column(id)"`
 	ClassifyName string `description:"分类名称"`
 	Child        []*HomeClassifyItem
-	TitleType string `description:"标题类型,FICC或者权益"`
+	TitleType    string `description:"标题类型,FICC或者权益"`
 }
 
 type HomeClassifyItem struct {
@@ -76,3 +76,51 @@ func ListHome(userId, maxPermission, userPermission int, permissionStr string) (
 	}
 	return
 }
+
+func PcListHome() (items []*HomeList, err error) {
+	o := orm.NewOrm()
+	o.Using("rddp")
+	sql := `SELECT id,classify_name FROM classify WHERE parent_id=0 ORDER BY create_time ASC `
+	_, err = o.Raw(sql).QueryRows(&items)
+	if err != nil {
+		fmt.Println("Get classify Err:" + err.Error())
+		return
+	}
+	lenItem := len(items)
+	for i := 0; i < lenItem; i++ {
+		item := items[i]
+		subItems := make([]*HomeClassifyItem, 0)
+		subWhere := ``
+		subWhere = ` WHERE parent_id=? `
+		subSql := `SELECT id ,classify_name FROM classify   `
+		subSql += subWhere
+		subSql += ` ORDER BY create_time ASC `
+		_, err = o.Raw(subSql, item.ClassifyId).QueryRows(&subItems)
+		if err != nil {
+			fmt.Println("Sub Err:" + err.Error())
+			return
+		}
+		lenSub := len(subItems)
+		for k := 0; k < lenSub; k++ {
+			subItem := subItems[k]
+			reportSql := ` SELECT a.id,a.classify_name,b.*,
+                CASE WHEN DATE(b.modify_time)=DATE(NOW()) THEN 1 ELSE 0 END AS is_current_date
+                FROM classify AS a
+                INNER JOIN report AS b ON a.id=b.classify_id_second
+                WHERE b.state=2 AND a.id=?
+                ORDER BY b.publish_time DESC LIMIT 1  `
+			report := new(Report)
+			err = o.Raw(reportSql, subItem.ClassifyId).QueryRow(&report)
+			if err != nil {
+				if err.Error() != utils.ErrNoRow() {
+					return
+				} else {
+					err = nil
+				}
+			}
+			subItems[k].Child = report
+		}
+		items[i].Child = subItems
+	}
+	return
+}

+ 3 - 0
routers/router.go

@@ -27,6 +27,9 @@ func init() {
 			beego.NSInclude(
 				&controllers.HomeController{},
 			),
+			beego.NSInclude(
+				&controllers.HomeCommonController{},
+			),
 		),
 		beego.NSNamespace("/report",
 			beego.NSInclude(

+ 7 - 0
services/home.go

@@ -39,3 +39,10 @@ func HomeList(userId, companyId int) (items []*models.HomeList, err error) {
 	}
 	return
 }
+
+
+func PcHomeList() (items []*models.HomeList, err error) {
+	items, err = models.PcListHome()
+	return
+}
+