|
@@ -4,6 +4,7 @@ import (
|
|
|
"fmt"
|
|
|
"hongze/hongze_api/utils"
|
|
|
"rdluck_tools/orm"
|
|
|
+ "rdluck_tools/paging"
|
|
|
)
|
|
|
|
|
|
type HomeList struct {
|
|
@@ -77,50 +78,55 @@ func ListHome(userId, maxPermission, userPermission int, permissionStr string) (
|
|
|
return
|
|
|
}
|
|
|
|
|
|
-func PcListHome() (items []*HomeList, err error) {
|
|
|
+type PcHomeClassifyItem struct {
|
|
|
+ ClassifyId int `orm:"column(id)"`
|
|
|
+ ClassifyName string `description:"分类名称"`
|
|
|
+ ReportInfo *PcReport
|
|
|
+}
|
|
|
+
|
|
|
+func PcListHomeCount(classifyId int) (count int, 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)
|
|
|
+ sql := `SELECT COUNT(1) AS count FROM classify WHERE parent_id=? `
|
|
|
+ err = o.Raw(sql, classifyId).QueryRow(&count)
|
|
|
+ return
|
|
|
+}
|
|
|
+
|
|
|
+func PcListHome(classifyId, startSize, pageSize int) (items []*PcHomeClassifyItem, err error) {
|
|
|
+ o := orm.NewOrm()
|
|
|
+ o.Using("rddp")
|
|
|
+ subSql := ` SELECT id ,classify_name FROM classify WHERE parent_id=? `
|
|
|
+ subSql += ` ORDER BY create_time ASC LIMIT ?,? `
|
|
|
+ _, err = o.Raw(subSql, classifyId, startSize, pageSize).QueryRows(&items)
|
|
|
if err != nil {
|
|
|
- fmt.Println("Get classify Err:" + err.Error())
|
|
|
+ fmt.Println("Sub 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.*,
|
|
|
+ lenSub := len(items)
|
|
|
+ for k := 0; k < lenSub; k++ {
|
|
|
+ subItem := items[k]
|
|
|
+ reportSql := ` SELECT a.id,a.classify_name,b.*,c.*,
|
|
|
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
|
|
|
+ INNER JOIN report_author AS c ON b.author=c.report_author
|
|
|
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
|
|
|
- }
|
|
|
+ report := new(PcReport)
|
|
|
+ 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
|
|
|
+ items[k].ReportInfo = report
|
|
|
}
|
|
|
return
|
|
|
}
|
|
|
+
|
|
|
+type PcListHomeResp struct {
|
|
|
+ Paging *paging.PagingItem
|
|
|
+ List []*PcHomeClassifyItem
|
|
|
+}
|