|
@@ -5,6 +5,10 @@ import (
|
|
|
"eta/eta_mini_api/models/response"
|
|
|
"eta/eta_mini_api/services"
|
|
|
"eta/eta_mini_api/utils"
|
|
|
+ "sort"
|
|
|
+ "time"
|
|
|
+
|
|
|
+ "github.com/rdlucklib/rdluck_tools/paging"
|
|
|
)
|
|
|
|
|
|
type ReportController struct {
|
|
@@ -61,12 +65,12 @@ func (this *ReportController) Detail() {
|
|
|
}
|
|
|
if result.Ret == 200 && result.Data.Report == nil {
|
|
|
|
|
|
- models.DeleteMyReportByUserIdAndReportId(user.UserId, reportId)
|
|
|
+ models.DeleteMyReportByUserIdAndReportId(user.UserId, reportId, utils.ReportTypeEta)
|
|
|
br.Msg = "该报告已删除或不存在,请刷新页面"
|
|
|
return
|
|
|
}
|
|
|
|
|
|
- count, err := models.GetMyReportCountByUserIdAndReportId(user.UserId, reportId)
|
|
|
+ count, err := models.GetMyReportCountByUserIdAndReportId(user.UserId, reportId, utils.ReportTypeEta)
|
|
|
if err != nil {
|
|
|
br.Msg = "查询收藏数量失败"
|
|
|
br.ErrMsg = "查询收藏数量失败,Err:" + err.Error()
|
|
@@ -94,6 +98,7 @@ func (this *ReportController) Detail() {
|
|
|
|
|
|
|
|
|
|
|
|
+
|
|
|
|
|
|
|
|
|
func (this *ReportController) List() {
|
|
@@ -108,7 +113,8 @@ func (this *ReportController) List() {
|
|
|
chartPermissionId, _ := this.GetInt("ChartPermissionId")
|
|
|
level, _ := this.GetInt("Level")
|
|
|
rangeType, _ := this.GetInt("RangeType")
|
|
|
- reports, err := services.GetReportList(chartPermissionId, level, rangeType, currentIndex, pageSize)
|
|
|
+ classifyId, _ := this.GetInt("ClassifyId")
|
|
|
+ reports, err := services.GetReportList(chartPermissionId, level, rangeType, classifyId, currentIndex, pageSize)
|
|
|
if err != nil {
|
|
|
br.Msg = "研报列表查询失败"
|
|
|
br.ErrMsg = "研报列表查询失败,系统异常,Err:" + err.Error()
|
|
@@ -126,33 +132,266 @@ func (this *ReportController) List() {
|
|
|
br.Success = true
|
|
|
}
|
|
|
|
|
|
-
|
|
|
-
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
|
|
|
|
|
|
-
|
|
|
-
|
|
|
-func (this *ReportController) DailyList() {
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+func (this *ReportController) PdfList() {
|
|
|
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")
|
|
|
+ classifyId, _ := this.GetInt("ClassifyId")
|
|
|
+ rangeType, _ := this.GetInt("RangeType")
|
|
|
+
|
|
|
if pageSize <= 0 {
|
|
|
pageSize = utils.PageSize20
|
|
|
}
|
|
|
+ if currentIndex <= 0 {
|
|
|
+ currentIndex = 1
|
|
|
+ }
|
|
|
+ if chartPermissionId <= 0 {
|
|
|
+ br.Msg = "请输入品种ID"
|
|
|
+ return
|
|
|
+ }
|
|
|
+ var condition string
|
|
|
+ var pars []interface{}
|
|
|
+ switch rangeType {
|
|
|
+ case 1:
|
|
|
+ condition += ` AND DATE(publish_time)=DATE(NOW()) `
|
|
|
+ case 2:
|
|
|
+ condition += ` AND DATE(publish_time) BETWEEN DATE_SUB(NOW(),INTERVAL 1 WEEK) AND NOW() `
|
|
|
+ case 3:
|
|
|
+ condition += ` AND DATE(publish_time) BETWEEN DATE_SUB(NOW(),INTERVAL 6 MONTH) AND NOW() `
|
|
|
+ }
|
|
|
|
|
|
- reports, err := services.GetReportDailyList(currentIndex, pageSize)
|
|
|
+ startSize := utils.StartIndex(currentIndex, pageSize)
|
|
|
+
|
|
|
+ if classifyId != 0 {
|
|
|
+ condition += ` AND classify_id_second=?`
|
|
|
+ pars = append(pars, classifyId)
|
|
|
+ } else if chartPermissionId != 0 {
|
|
|
+ resp, err := services.GetClassifyListByChartPermission(chartPermissionId)
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "获取分类失败"
|
|
|
+ br.ErrMsg = "获取分类失败,系统异常,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if resp.Ret != 200 {
|
|
|
+ br.Msg = resp.Msg
|
|
|
+ br.ErrMsg = resp.ErrMsg
|
|
|
+ return
|
|
|
+ }
|
|
|
+ classifyList := resp.Data
|
|
|
+ condition += ` AND classify_id_second IN (` + utils.GetOrmReplaceHolder(len(classifyList)) + `)`
|
|
|
+ for _, item := range classifyList {
|
|
|
+ pars = append(pars, item.Id)
|
|
|
+ }
|
|
|
+ }
|
|
|
+ total, err := models.GetReportPdfCountByCondition(condition, pars)
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "研报列表查询失败"
|
|
|
+ br.ErrMsg = "研报列表统计查询失败,系统异常,Err:" + err.Error()
|
|
|
+ return
|
|
|
+
|
|
|
+ }
|
|
|
+ reportPdfList, err := models.GetReportPdfListByCondition(condition, pars, startSize, pageSize)
|
|
|
if err != nil {
|
|
|
br.Msg = "研报列表查询失败"
|
|
|
br.ErrMsg = "研报列表查询失败,系统异常,Err:" + err.Error()
|
|
|
return
|
|
|
}
|
|
|
+ page := paging.GetPaging(currentIndex, pageSize, total)
|
|
|
+
|
|
|
+ resp := new(response.ReportPdfResp)
|
|
|
+ resp.List = reportPdfList
|
|
|
+ resp.Paging = page
|
|
|
|
|
|
- br.Data = reports.Data
|
|
|
+ br.Msg = "查询成功"
|
|
|
+ br.Ret = 200
|
|
|
+ br.Success = true
|
|
|
+ br.Data = resp
|
|
|
+}
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+func (this *ReportController) PdfDetail() {
|
|
|
+ br := new(models.BaseResponse).Init()
|
|
|
+ defer func() {
|
|
|
+ this.Data["json"] = br
|
|
|
+ this.ServeJSON()
|
|
|
+ }()
|
|
|
+ user := this.User
|
|
|
+
|
|
|
+
|
|
|
+ var vailStatus int
|
|
|
+ if user.Status == utils.UserStatusFormal || user.Status == utils.UserStatusNo {
|
|
|
+ if user.ValidEndTime.After(time.Now()) && user.ValidStartTime.Before(time.Now()) {
|
|
|
+ vailStatus = 2
|
|
|
+ } else {
|
|
|
+
|
|
|
+ vailStatus = 1
|
|
|
+ user.Status = utils.UserStatusNo
|
|
|
+ }
|
|
|
+ }
|
|
|
+ reportPdfId, _ := this.GetInt("ReportPdfId")
|
|
|
+
|
|
|
+ if reportPdfId <= 0 {
|
|
|
+ br.Msg = "研报不存在或已删除"
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ reportPdf, err := models.GetReportPdfById(reportPdfId)
|
|
|
+ if err != nil {
|
|
|
+ if err.Error() == utils.ErrNoRow() {
|
|
|
+ br.Msg = "研报不存在或已删除"
|
|
|
+ return
|
|
|
+ }
|
|
|
+ br.Msg = "研报不存在或已删除"
|
|
|
+ br.ErrMsg = "研报不存在或已删除,系统异常,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ permissionResp, err := services.GetChartPermissionListByClassifyId(reportPdf.ClassifyIdSecond, 1)
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "研报不存在或已删除"
|
|
|
+ br.ErrMsg = "获取权限失败,系统异常,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if permissionResp.Ret != 200 {
|
|
|
+ br.Msg = permissionResp.Msg
|
|
|
+ br.ErrMsg = permissionResp.ErrMsg
|
|
|
+ return
|
|
|
+ }
|
|
|
+ var IsHas bool
|
|
|
+ var IsPublic bool
|
|
|
+ permissionMap := make(map[int]struct{})
|
|
|
+ for _, v := range permissionResp.Data {
|
|
|
+ if v.ChartPermissionId == 1 {
|
|
|
+ IsPublic = true
|
|
|
+ }
|
|
|
+ permissionMap[v.ChartPermissionId] = struct{}{}
|
|
|
+ }
|
|
|
+ resp := new(response.ReportPdfDetailResp)
|
|
|
+ if !IsPublic {
|
|
|
+
|
|
|
+ if vailStatus == 1 {
|
|
|
+ resp.Report = reportPdf
|
|
|
+ resp.Status = utils.ReportPermissionStatusExpired
|
|
|
+ br.Ret = 200
|
|
|
+ br.Data = resp
|
|
|
+ br.Msg = "用户权限不足"
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ if user.Status == utils.UserStatusNo || user.Status == utils.UserStatusPotential {
|
|
|
+ resp.Report = reportPdf
|
|
|
+ resp.Status = utils.ReportPermissionStatusNo
|
|
|
+ br.Ret = 200
|
|
|
+ br.Data = resp
|
|
|
+ br.Msg = "用户权限不足"
|
|
|
+ return
|
|
|
+ }
|
|
|
+ userChartPermissionIds, err := models.GetUserChartPermissionIdByUserId(user.UserId)
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "获取用户权限失败"
|
|
|
+ br.ErrMsg = "获取用户权限失败,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if len(userChartPermissionIds) == 0 {
|
|
|
+ resp.Report = reportPdf
|
|
|
+ resp.Status = utils.ReportPermissionStatusNo
|
|
|
+ br.Ret = 200
|
|
|
+ br.Data = resp
|
|
|
+ br.Msg = "用户权限不足"
|
|
|
+ return
|
|
|
+ }
|
|
|
+ for _, v := range userChartPermissionIds {
|
|
|
+ if _, ok := permissionMap[v]; ok {
|
|
|
+ IsHas = true
|
|
|
+ break
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if !IsHas {
|
|
|
+ resp.Report = reportPdf
|
|
|
+ resp.Status = utils.ReportPermissionStatusNoPermission
|
|
|
+ br.Ret = 200
|
|
|
+ br.Data = resp
|
|
|
+ br.Msg = "用户权限不足"
|
|
|
+ return
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ reportPdf.IsPublic = IsPublic
|
|
|
+ }
|
|
|
+ resp.Report = reportPdf
|
|
|
+ resp.Status = utils.ReportPermissionStatusHas
|
|
|
+
|
|
|
+ br.Msg = "查询成功"
|
|
|
+ br.Ret = 200
|
|
|
+ br.Success = true
|
|
|
+ br.Data = resp
|
|
|
+}
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+func (this *ReportController) DailyList() {
|
|
|
+ br := new(models.BaseResponse).Init()
|
|
|
+ defer func() {
|
|
|
+ this.Data["json"] = br
|
|
|
+ this.ServeJSON()
|
|
|
+ }()
|
|
|
+
|
|
|
+ resp, err := services.GetReportDailyList()
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "研报列表查询失败"
|
|
|
+ br.ErrMsg = "研报列表查询失败,系统异常,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if resp.Ret != 200 {
|
|
|
+ br.Msg = resp.Msg
|
|
|
+ br.ErrMsg = resp.ErrMsg
|
|
|
+ return
|
|
|
+ }
|
|
|
+ reportPdfList, err := models.GetReportPdfDailyList()
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "研报列表查询失败"
|
|
|
+ br.ErrMsg = "研报列表查询失败,系统异常,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ reportList := resp.Data
|
|
|
+ for _, v := range reportList.List {
|
|
|
+ v.ReportType = utils.ReportTypeEta
|
|
|
+ }
|
|
|
+ for _, v := range reportPdfList {
|
|
|
+ reportList.List = append(reportList.List, &models.ReportView{
|
|
|
+ Id: v.ReportPdfId,
|
|
|
+ ClassifyIdFirst: v.ClassifyIdFirst,
|
|
|
+ ClassifyNameFirst: v.ClassifyNameFirst,
|
|
|
+ ClassifyIdSecond: v.ClassifyIdSecond,
|
|
|
+ ClassifyNameSecond: v.ClassifyNameSecond,
|
|
|
+ Title: v.Title,
|
|
|
+ Abstract: v.Abstract,
|
|
|
+ Stage: v.Stage,
|
|
|
+ Author: v.Author,
|
|
|
+ ReportType: utils.ReportTypePdf,
|
|
|
+ })
|
|
|
+ }
|
|
|
+
|
|
|
+ br.Data = reportList
|
|
|
br.Msg = "查询成功"
|
|
|
br.Ret = 200
|
|
|
br.Success = true
|
|
@@ -177,14 +416,43 @@ func (this *ReportController) RecentList() {
|
|
|
pageSize = 3
|
|
|
}
|
|
|
|
|
|
- reports, err := services.GetReportRecentList(currentIndex, pageSize)
|
|
|
+ resp, err := services.GetReportRecentList(currentIndex, pageSize)
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "研报列表查询失败"
|
|
|
+ br.ErrMsg = "研报列表查询失败,系统异常,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ reportPdfList, err := models.GetReportPdfListByCondition("", []interface{}{}, 1, 3)
|
|
|
if err != nil {
|
|
|
br.Msg = "研报列表查询失败"
|
|
|
br.ErrMsg = "研报列表查询失败,系统异常,Err:" + err.Error()
|
|
|
return
|
|
|
}
|
|
|
|
|
|
- br.Data = reports.Data
|
|
|
+ reportList := resp.Data
|
|
|
+ for _, v := range reportList.List {
|
|
|
+ v.ReportType = utils.ReportTypeEta
|
|
|
+ }
|
|
|
+ for _, v := range reportPdfList {
|
|
|
+ reportList.List = append(reportList.List, &models.ReportView{
|
|
|
+ Id: v.ReportPdfId,
|
|
|
+ ClassifyIdFirst: v.ClassifyIdFirst,
|
|
|
+ ClassifyNameFirst: v.ClassifyNameFirst,
|
|
|
+ ClassifyIdSecond: v.ClassifyIdSecond,
|
|
|
+ ClassifyNameSecond: v.ClassifyNameSecond,
|
|
|
+ Title: v.Title,
|
|
|
+ Abstract: v.Abstract,
|
|
|
+ Stage: v.Stage,
|
|
|
+ Author: v.Author,
|
|
|
+ ReportType: utils.ReportTypePdf,
|
|
|
+ })
|
|
|
+ }
|
|
|
+ sort.Sort(models.ByPublishTimeReportView(reportList.List))
|
|
|
+ endIdx := len(reportList.List)
|
|
|
+ if endIdx > 3 {
|
|
|
+ endIdx = 3
|
|
|
+ }
|
|
|
+ br.Data = reportList.List[:endIdx]
|
|
|
br.Msg = "查询成功"
|
|
|
br.Ret = 200
|
|
|
br.Success = true
|