123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231 |
- package report
- import (
- "encoding/json"
- "eta_mini_ht_api/common/exception"
- "eta_mini_ht_api/common/utils/page"
- "eta_mini_ht_api/controllers"
- "eta_mini_ht_api/service/report"
- "eta_mini_ht_api/service/user"
- "fmt"
- )
- type ReportController struct {
- controllers.ListController
- }
- // Search 搜索报告列表
- // @Description 搜索报告列表
- // @Success 200 {object}
- // @router /search [get]
- func (r *ReportController) 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
- }
- pageReq := page.Page{
- Current: r.PageInfo.Current,
- PageSize: r.PageInfo.PageSize,
- }
- if r.PageInfo.LatestId == 0 {
- pageReq.LatestId = report.SearchMaxReportId()
- r.PageInfo.LatestId = pageReq.LatestId
- } else {
- pageReq.LatestId = r.PageInfo.LatestId
- }
- pageReq.Total = pageReq.LatestId
- list, err := report.SearchReportList(key, r.PageInfo)
- if err != nil {
- r.FailedResult("分页搜索报告列表失败", result)
- return
- }
- reports := new(page.PageResult)
- reports.Data = list
- reports.Page = pageReq
- r.SuccessResult("分页搜索报告列表成功", reports, result)
- return
- })
- }
- // List 获取报告列表
- // @Description 获取报告列表
- // @Success 200 {object}
- // @router /list [get]
- func (r *ReportController) List() {
- controllers.Wrap(&r.BaseController, func() (result *controllers.WrapData, err error) {
- result = r.InitWrapData("分页查询报告列表失败")
- pageReq := page.Page{
- Current: r.PageInfo.Current,
- PageSize: r.PageInfo.PageSize,
- }
- if r.PageInfo.LatestId == 0 {
- pageReq.LatestId = report.GetTotalPageCount()
- r.PageInfo.LatestId = pageReq.LatestId
- } else {
- pageReq.LatestId = r.PageInfo.LatestId
- }
- pageReq.Total = pageReq.LatestId
- list, err := report.GetReportPage(r.PageInfo)
- if err != nil {
- r.FailedResult("分页查询报告列表失败", result)
- return
- }
- reports := new(page.PageResult)
- reports.Data = list
- reports.Page = pageReq
- r.SuccessResult("查询报告列表成功", reports, result)
- return
- })
- }
- // HotRanked @Title 获取本周最热的报告列表
- // @Description 获取本周最热的报告列表
- // @Success 200 {object}
- // @router /hotRankedList [get]
- func (r *ReportController) HotRanked() {
- controllers.Wrap(&r.BaseController, func() (result *controllers.WrapData, err error) {
- limit, _ := r.GetInt("size")
- if limit <= 0 {
- limit = 3
- }
- result = r.InitWrapData("获取本周最热报告列表失败")
- list, err := report.GetRandedReportByWeeklyHot(limit)
- if err != nil {
- r.FailedResult("获取本周最热报告列表成功", result)
- return
- }
- r.SuccessResult("获取本周最热报告列表成功", list, result)
- return
- })
- }
- // PublishRanked @Title 获取最新发布的报告列表
- // @Description 获取最新发布的报告列表
- // @Success 200 {object}
- // @router /publishRankedList [get]
- func (r *ReportController) PublishRanked() {
- controllers.Wrap(&r.BaseController, func() (result *controllers.WrapData, err error) {
- result = r.InitWrapData("获取最新发布报告列表失败")
- //获取最新的报告列表
- list, err := report.GetRandedReportByPublishTime()
- if err != nil {
- r.FailedResult("获取最新发布报告列表失败", result)
- return
- }
- r.SuccessResult("获取最新发布报告列表成功", list, result)
- return
- })
- }
- // AnalystReportList @Title 获取最新发布的报告列表
- // @Description 获取最新发布的报告列表
- // @Success 200 {object}
- // @router /AnalystReportList [get]
- func (r *ReportController) AnalystReportList(authorId int) {
- controllers.Wrap(&r.BaseController, func() (result *controllers.WrapData, err error) {
- result = r.InitWrapData("分页获取研究员报告列表失败")
- pageReq := page.Page{
- Current: r.PageInfo.Current,
- PageSize: r.PageInfo.PageSize,
- }
- if r.PageInfo.LatestId == 0 {
- pageReq.LatestId = report.GetTotalPageCount()
- r.PageInfo.LatestId = pageReq.LatestId
- } else {
- pageReq.LatestId = r.PageInfo.LatestId
- }
- pageReq.Total = pageReq.LatestId
- list, err := report.GetReportPage(r.PageInfo)
- if err != nil {
- r.FailedResult("分页查询报告列表失败", result)
- return
- }
- reports := new(page.PageResult)
- reports.Data = list
- reports.Page = pageReq
- r.SuccessResult("查询报告列表成功", reports, result)
- return
- })
- }
- // GetPermissions @Title 获取品种列表
- // @Description 获取最新发布的报告列表
- // @Success 200 {object}
- // @router /permissionList [get]
- func (r *ReportController) GetPermissions() {
- controllers.Wrap(&r.BaseController, func() (result *controllers.WrapData, err error) {
- result = r.InitWrapData("获取品种列表失败")
- //获取最新的报告列表
- json, err := report.GetPermissionList()
- if err != nil {
- r.FailedResult("获取品种列表失败", result)
- return
- }
- r.SuccessResult("获取最新发布报告列表成功", json.Children, result)
- return
- })
- }
- type RecordCountReq struct {
- ReportId int `json:"report_id"`
- IpAddress string `json:"ip_address"`
- Location string `json:"location"`
- Referer string `json:"referer"`
- Additional interface{} `json:"additional"`
- }
- // Count 获取品种列表
- // @Description 获取最新发布的报告列表
- // @Success 200 {object}
- // @router /count [post]
- func (r *ReportController) Count() {
- controllers.Wrap(&r.BaseController, func() (result *controllers.WrapData, err error) {
- result = r.InitWrapData("研报点击记录失败")
- var userInfo user.User
- userInfo = r.Data["user"].(user.User)
- recordReq := new(RecordCountReq)
- r.GetPostParams(recordReq)
- record := convertToRecordCount(recordReq)
- record.UserId = userInfo.Id
- record.Mobile = userInfo.Mobile
- err = report.CountReport(record)
- if err != nil {
- err = exception.New(exception.ReportRecordClickCountFailed)
- return
- }
- r.SuccessResult("研报点击记录成功", nil, result)
- return
- })
- }
- // GetReport 获取研报详情
- // @Description 获取研报详情
- // @Success 200 {object}
- // @router /report [get]
- func (r *ReportController) GetReport(reportId int) {
- controllers.Wrap(&r.BaseController, func() (result *controllers.WrapData, err error) {
- result = r.InitWrapData("获取研报详情失败")
- fmt.Println(reportId)
- reportDetail, err := report.GetReportById(reportId)
- if err != nil {
- err = exception.New(exception.GetReportFailed)
- return
- }
- r.SuccessResult("获取研报详情成功", reportDetail, result)
- return
- })
- }
- func convertToRecordCount(req *RecordCountReq) report.RecordCount {
- additionStr, _ := json.Marshal(req.Additional)
- return report.RecordCount{
- ReportId: req.ReportId,
- IpAddress: req.IpAddress,
- Location: req.Location,
- Referer: req.Referer,
- Additional: string(additionStr),
- }
- }
|