package controllers import ( "eta/eta_mini_api/models" "eta/eta_mini_api/models/response" "eta/eta_mini_api/services" "eta/eta_mini_api/utils" ) type ReportController struct { BaseAuthController } // @Title 研报详情 // @Description 研报详情接口 // @Param ReportId query int true "报告id" // @Success 200 {object} models.ReportDetailResp // @router /detail [get] func (this *ReportController) Detail() { br := new(models.BaseResponse).Init() defer func() { this.Data["json"] = br this.ServeJSON() }() reportId, _ := this.GetInt("ReportId") if reportId <= 0 { br.Msg = "报告不存在" return } user := this.User if user == nil { // 如果没有用户没有绑定信息,单独处理 resp, er := services.GetReportDetailNoUser(reportId) if er != nil { br.Msg = "查询报告详情失败" br.ErrMsg = "查询报告失败,系统异常,Err:" + er.Error() return } if resp.Ret != 200 { br.Msg = resp.Msg br.ErrMsg = resp.ErrMsg return } br.Msg = "查询成功" br.Data = resp.Data br.Success = true br.Ret = 200 return } result, err := services.GetReportDetail(reportId, user.UserId) if err != nil { br.Msg = "查询报告详情失败" br.ErrMsg = "查询报告失败,系统异常,Err:" + err.Error() return } if result.Ret == 403 { br.Msg = result.Msg br.ErrMsg = result.ErrMsg return } if result.Ret == 200 && result.Data.Report == nil { // 后台没有这个报告,那么尝试删除我的收藏 models.DeleteMyReportByUserIdAndReportId(user.UserId, reportId) br.Msg = "该报告已删除或不存在,请刷新页面" return } count, err := models.GetMyReportCountByUserIdAndReportId(user.UserId, reportId) if err != nil { br.Msg = "查询收藏数量失败" br.ErrMsg = "查询收藏数量失败,Err:" + err.Error() return } if count > 0 { result.Data.IsCollect = true } else { result.Data.IsCollect = false } if user.UserId != 0 { result.Data.IsSignIn = true } br.Msg = "查询成功" br.Success = true br.Ret = 200 br.Data = result.Data } // @Title 研报列表 // @Description 研报列表 // @Param ChartPermissionId query int true "品种ID" // @Param Level query int true "品种层级" // @Param PageSize query int true "每页数据条数" // @Param CurrentIndex query int true "当前页页码,从1开始" // @Param RangeType query string true "范围类型,1-一天内,2-一周内,3-半年内" // @Success 200 {object} response.ReportList // @router /list [get] func (this *ReportController) List() { br := new(models.BaseResponse).Init() defer func() { this.Data["json"] = br this.ServeJSON() }() pageSize, _ := this.GetInt("PageSize") currentIndex, _ := this.GetInt("CurrentIndex") chartPermissionId, _ := this.GetInt("ChartPermissionId") level, _ := this.GetInt("Level") rangeType, _ := this.GetInt("RangeType") reports, err := services.GetReportList(chartPermissionId, level, rangeType, currentIndex, pageSize) if err != nil { br.Msg = "研报列表查询失败" br.ErrMsg = "研报列表查询失败,系统异常,Err:" + err.Error() return } if reports.Ret != 200 { br.Msg = reports.Msg br.ErrMsg = reports.ErrMsg return } br.Data = reports.Data br.Msg = "查询成功" br.Ret = 200 br.Success = true } // @Title 研报列表 // @Description 研报列表 // @Param ReportId query int true "报告id" // @Param chartPermissionId query int true "品种ID" // @Param PageSize query int true "每页数据条数" // @Param CurrentIndex query int true "当前页页码,从1开始" // @Success 200 {object} models.ReportDetailResp // @router /daily/list [get] func (this *ReportController) DailyList() { br := new(models.BaseResponse).Init() defer func() { this.Data["json"] = br this.ServeJSON() }() pageSize, _ := this.GetInt("PageSize") currentIndex, _ := this.GetInt("CurrentIndex") if pageSize <= 0 { pageSize = 3 } reports, err := services.GetReportDailyList(currentIndex, pageSize) if err != nil { br.Msg = "研报列表查询失败" br.ErrMsg = "研报列表查询失败,系统异常,Err:" + err.Error() return } br.Data = reports.Data br.Msg = "查询成功" br.Ret = 200 br.Success = true } // @Title 研报列表 // @Description 研报列表 // @Param ReportId query int true "报告id" // @Param chartPermissionId query int true "品种ID" // @Param PageSize query int true "每页数据条数" // @Param CurrentIndex query int true "当前页页码,从1开始" // @Success 200 {object} models.ReportDetailResp // @router /search [get] func (this *ReportController) Search() { br := new(models.BaseResponse).Init() defer func() { this.Data["json"] = br this.ServeJSON() }() keyWord := this.GetString("KeyWord") pageSize, _ := this.GetInt("PageSize") currentIndex, _ := this.GetInt("CurrentIndex") if pageSize <= 0 { pageSize = utils.PageSize30 } if keyWord == "" { br.Msg = "请输入关键字" return } reports, err := services.SearchReport(keyWord, currentIndex, pageSize) if err != nil { br.Msg = "研报列表查询失败" br.ErrMsg = "研报列表查询失败,系统异常,Err:" + err.Error() return } if reports.Ret != 200 { br.Msg = reports.Msg br.ErrMsg = reports.ErrMsg return } resp := new(response.ReportSearchViewResp) list := make([]*response.ReportSearchListView, 0) for _, v := range reports.Data.List { tmpReport := &response.ReportSearchListView{ ReportId: v.ReportId, ReportChapterId: v.ReportChapterId, ClassifyIdFirst: v.ClassifyIdFirst, ClassifyNameFirst: v.ClassifyNameFirst, ClassifyIdSecond: v.ClassifyIdSecond, ClassifyNameSecond: v.ClassifyNameSecond, ReportChapterTypeId: v.ReportChapterTypeId, PublishTime: v.PublishTime.Format(utils.FormatDate), Title: v.Title, ContentSub: v.ContentSub, Abstract: v.Abstract, Stage: v.Stage, Author: v.Author, } if v.PublishTime.IsZero() { tmpReport.PublishTime = "" } list = append(list, tmpReport) } resp.List = list resp.Paging = reports.Data.Paging br.Data = resp br.Msg = "查询成功" br.Ret = 200 br.Success = true }