report.go 18 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641
  1. package controllers
  2. import (
  3. "eta/eta_mini_bridge/models"
  4. "eta/eta_mini_bridge/models/response"
  5. "eta/eta_mini_bridge/services"
  6. "eta/eta_mini_bridge/utils"
  7. "html"
  8. "strconv"
  9. "time"
  10. "github.com/rdlucklib/rdluck_tools/paging"
  11. )
  12. type ReportController struct {
  13. BaseAuthController
  14. }
  15. // @Title List
  16. // @Description create users
  17. // @Param ChartPermissionId query int true "品种ID"
  18. // @Param Level query int true "品种层级"
  19. // @Param PageSize query int true "每页数据条数"
  20. // @Param CurrentIndex query int true "当前页页码,从1开始"
  21. // @Param RangeType query string true "范围类型,1-一天内,2-一周内,3-半年内"
  22. // @Param ClassifyId query int true "分类id"
  23. // @Success 200 {object} response.ReportListResp
  24. // @router /list [get]
  25. func (this *ReportController) List() {
  26. br := new(models.BaseResponse).Init()
  27. defer func() {
  28. this.Data["json"] = br
  29. this.ServeJSON()
  30. }()
  31. pageSize, _ := this.GetInt("PageSize")
  32. currentIndex, _ := this.GetInt("CurrentIndex")
  33. chartPermissionId, _ := this.GetInt("ChartPermissionId")
  34. level, _ := this.GetInt("Level")
  35. rangeType, _ := this.GetInt("RangeType")
  36. classifyId, _ := this.GetInt("ClassifyId")
  37. if chartPermissionId <= 0 {
  38. br.Msg = "品种参数错误"
  39. return
  40. }
  41. var condition string
  42. switch rangeType {
  43. case 1:
  44. condition += ` AND DATE(a.modify_time)=DATE(NOW()) `
  45. case 2:
  46. condition += ` AND DATE(a.modify_time) BETWEEN DATE_SUB(NOW(),INTERVAL 1 WEEK) AND NOW() `
  47. case 3:
  48. condition += ` AND DATE(a.modify_time) BETWEEN DATE_SUB(NOW(),INTERVAL 6 MONTH) AND NOW() `
  49. }
  50. var startSize int
  51. if pageSize <= 0 {
  52. pageSize = utils.PageSize20
  53. }
  54. if currentIndex <= 0 {
  55. currentIndex = 1
  56. }
  57. startSize = utils.StartIndex(currentIndex, pageSize)
  58. var total int
  59. var reportList []*models.ReportList
  60. switch level {
  61. case 2:
  62. classifyIds, err := models.GetClassifyIdsListById(chartPermissionId)
  63. if err != nil {
  64. br.Msg = "获取报告列表失败"
  65. br.ErrMsg = "获取数据失败,Err:" + err.Error()
  66. return
  67. }
  68. if len(classifyIds) == 0 {
  69. br.Msg = "该品种下没有绑定分类"
  70. br.ErrMsg = "获取数据失败,品种id:" + strconv.Itoa(chartPermissionId)
  71. return
  72. }
  73. // 根据分类筛选报告
  74. var selectedClassifyId []int
  75. if classifyId > 0 {
  76. for _, v := range classifyIds {
  77. if v == classifyId {
  78. selectedClassifyId = append(selectedClassifyId, v)
  79. break
  80. }
  81. }
  82. } else {
  83. selectedClassifyId = classifyIds
  84. }
  85. tmptotal, err := models.GetReportCountByClassifyIds(selectedClassifyId, condition)
  86. if err != nil {
  87. br.Msg = "获取数据失败"
  88. br.ErrMsg = "获取数据失败,Err:" + err.Error()
  89. return
  90. }
  91. total = tmptotal
  92. tmpReportList, err := models.GetReportListByClassifyIds(selectedClassifyId, condition, startSize, pageSize)
  93. if err != nil {
  94. br.Msg = "获取报告列表失败"
  95. br.ErrMsg = "获取数据失败,Err:" + err.Error()
  96. return
  97. }
  98. reportList = tmpReportList
  99. case 1:
  100. chartPermissionIds, err := models.GetChildChartPermissionIdsById(chartPermissionId)
  101. if err != nil {
  102. br.Msg = "获取报告列表失败"
  103. br.ErrMsg = "获取数据失败,Err:" + err.Error()
  104. return
  105. }
  106. if len(chartPermissionIds) == 0 {
  107. br.Msg = "该品种下没有绑定分类"
  108. br.ErrMsg = "获取数据失败,品种id:" + strconv.Itoa(chartPermissionId)
  109. return
  110. }
  111. classifyIds, err := models.GetClassifyIdsListByIds(chartPermissionIds)
  112. if err != nil {
  113. br.Msg = "获取报告列表失败"
  114. br.ErrMsg = "获取报告列表失败,Err:" + err.Error()
  115. return
  116. }
  117. if len(classifyIds) == 0 {
  118. br.Msg = "该品种下没有绑定分类"
  119. return
  120. }
  121. // 根据分类筛选报告
  122. var selectedClassifyId []int
  123. if classifyId > 0 {
  124. for _, v := range classifyIds {
  125. if v == classifyId {
  126. selectedClassifyId = append(selectedClassifyId, v)
  127. break
  128. }
  129. }
  130. } else {
  131. selectedClassifyId = classifyIds
  132. }
  133. tmptotal, err := models.GetReportCountByClassifyIds(selectedClassifyId, condition)
  134. if err != nil {
  135. br.Msg = "获取数据失败"
  136. br.ErrMsg = "获取数据失败,Err:" + err.Error()
  137. return
  138. }
  139. total = tmptotal
  140. tmpReportList, err := models.GetReportListByClassifyIds(selectedClassifyId, condition, startSize, pageSize)
  141. if err != nil {
  142. br.Msg = "获取报告列表失败"
  143. br.ErrMsg = "获取报告列表失败,Err:" + err.Error()
  144. return
  145. }
  146. reportList = tmpReportList
  147. default:
  148. br.Msg = "层级参数错误"
  149. return
  150. }
  151. page := paging.GetPaging(currentIndex, pageSize, total)
  152. resp := new(response.ReportListResp)
  153. resp.Paging = page
  154. resp.List = reportList
  155. br.Ret = 200
  156. br.Success = true
  157. br.Msg = "获取成功"
  158. br.Data = resp
  159. }
  160. // @Title 研报详情
  161. // @Description 研报详情接口
  162. // @Param ReportId query int true "报告id"
  163. // @Param UserId query int true "用户id"
  164. // @Success 200 {object} response.ReportDetailResp
  165. // @router /detail [get]
  166. func (this *ReportController) Detail() {
  167. br := new(models.BaseResponse).Init()
  168. defer func() {
  169. this.Data["json"] = br
  170. this.ServeJSON()
  171. }()
  172. reportId, err := this.GetInt("ReportId")
  173. userId, err := this.GetInt("UserId")
  174. if err != nil {
  175. br.Msg = "参数获取失败"
  176. br.ErrMsg = "参数获取失败,Err:" + err.Error()
  177. return
  178. }
  179. if reportId <= 0 {
  180. br.Msg = "参数错误"
  181. br.ErrMsg = "参数错误,报告id小于等于0"
  182. return
  183. }
  184. if userId <= 0 {
  185. br.Msg = "参数错误"
  186. br.ErrMsg = "参数错误,用户id小于等于0"
  187. return
  188. }
  189. user, err := models.GetUserById(userId)
  190. if err != nil {
  191. br.Msg = "用户不存在"
  192. br.ErrMsg = "用户不存在,系统异常,Err:" + err.Error()
  193. return
  194. }
  195. // 有效期是否到期
  196. var vailStatus int
  197. if user.Status == utils.UserStatusFormal || user.Status == utils.UserStatusNo {
  198. if user.ValidEndTime.After(time.Now()) && user.ValidStartTime.Before(time.Now()) {
  199. vailStatus = 2
  200. } else {
  201. // 不在有效期时间则设置为过期, 将用户状态禁用
  202. vailStatus = 1
  203. user.Status = utils.UserStatusNo
  204. }
  205. }
  206. report, err := models.GetReportById(reportId)
  207. if err != nil {
  208. if err.Error() == utils.ErrNoRow() {
  209. br.Ret = 200
  210. br.Data = new(response.ReportDetailResp)
  211. br.Success = true
  212. br.Msg = "该报告已删除或不存在"
  213. return
  214. }
  215. br.Msg = "该报告已删除"
  216. br.ErrMsg = "获取报告详情失败,Err:" + err.Error()
  217. return
  218. }
  219. if report.HeadResourceId > 0 || report.EndResourceId > 0 {
  220. headImg, err := models.GetSmartReportResourceById(report.HeadResourceId)
  221. if err != nil && err.Error() != utils.ErrNoRow() {
  222. utils.FileLog.Warn("版头数据获取失败,Err:" + err.Error())
  223. }
  224. endImg, err := models.GetSmartReportResourceById(report.EndResourceId)
  225. if err != nil && err.Error() != utils.ErrNoRow() {
  226. utils.FileLog.Warn("版尾数据获取失败,Err:" + err.Error())
  227. }
  228. if headImg != nil {
  229. report.HeadResource = headImg
  230. }
  231. if endImg != nil {
  232. report.EndResource = endImg
  233. }
  234. }
  235. if report.HasChapter == 1 {
  236. chapterList, err := models.GetReportChapterList(report.Id)
  237. if err != nil {
  238. br.Msg = "该报告已删除"
  239. br.ErrMsg = "获取章节列表失败,Err:" + err.Error()
  240. return
  241. }
  242. report.ChapterContent = chapterList
  243. }
  244. report.ContentSub = html.UnescapeString(report.ContentSub)
  245. report.Content = html.UnescapeString(report.Content)
  246. if report == nil {
  247. br.Msg = "报告不存在"
  248. return
  249. }
  250. reportChartPermissionIds, err := models.GetChartPermissionIdsListByClassifyId(report.ClassifyIdSecond)
  251. if err != nil {
  252. br.Msg = "获取研报权限失败"
  253. br.ErrMsg = "获取研报权限失败,Err:" + err.Error()
  254. return
  255. }
  256. chartPermissionList, err := models.GetChartPermissionListByStrIds(reportChartPermissionIds)
  257. if err != nil {
  258. br.Msg = "获取研报权限失败"
  259. br.ErrMsg = "获取研报权限失败,Err:" + err.Error()
  260. return
  261. }
  262. var IsHas bool
  263. var IsPublic bool
  264. for _, v := range chartPermissionList {
  265. if v.IsPublic == 1 {
  266. IsPublic = true
  267. break
  268. }
  269. }
  270. resp := new(response.ReportDetailResp)
  271. if !IsPublic {
  272. // 如果是私有报告,用户权限过期直接返回有效期已过
  273. if vailStatus == 1 {
  274. resp.Report = report
  275. resp.Status = utils.ReportPermissionStatusExpired
  276. report.Content = ""
  277. br.Ret = 200
  278. br.Data = resp
  279. br.Msg = "用户权限不足"
  280. return
  281. }
  282. // 如果被禁用或是潜在用户,直接返回无阅读报告权限
  283. if user.Status == utils.UserStatusNo || user.Status == utils.UserStatusPotential {
  284. resp.Report = report
  285. resp.Status = utils.ReportPermissionStatusNo
  286. report.Content = ""
  287. br.Ret = 200
  288. br.Data = resp
  289. br.Msg = "用户权限不足"
  290. return
  291. }
  292. chartPermissionIds, err := models.GetChartPermissionIdByUserId(userId)
  293. if err != nil {
  294. br.Msg = "获取用户权限失败"
  295. br.ErrMsg = "获取用户权限失败,Err:" + err.Error()
  296. return
  297. }
  298. if len(chartPermissionIds) <= 0 {
  299. resp.Report = report
  300. resp.Status = utils.ReportPermissionStatusNo
  301. report.Content = ""
  302. br.Ret = 200
  303. br.Data = resp
  304. br.Msg = "用户权限不足"
  305. return
  306. }
  307. classifyIds, err := models.GetClassifyIdsListByIds(chartPermissionIds)
  308. if err != nil {
  309. br.Msg = "获取用户权限失败"
  310. br.ErrMsg = "获取用户分类权限失败,Err:" + err.Error()
  311. return
  312. }
  313. if len(classifyIds) <= 0 {
  314. resp.Report = report
  315. resp.Status = utils.ReportPermissionStatusNoPermission
  316. report.Content = ""
  317. br.Ret = 200
  318. br.Data = resp
  319. br.Msg = "用户权限不足"
  320. return
  321. }
  322. for _, v := range classifyIds {
  323. if v == report.ClassifyIdSecond {
  324. IsHas = true
  325. }
  326. }
  327. if !IsHas {
  328. resp.Report = report
  329. resp.Status = utils.ReportPermissionStatusNoPermission
  330. report.Content = ""
  331. br.Ret = 200
  332. br.Data = resp
  333. br.Msg = "用户权限不足"
  334. return
  335. }
  336. } else {
  337. report.IsPublic = IsPublic
  338. }
  339. resp.Report = report
  340. resp.Status = utils.ReportPermissionStatusHas
  341. br.Data = resp
  342. br.Ret = 200
  343. br.Success = true
  344. br.Msg = "获取成功"
  345. }
  346. // @Title 研报详情
  347. // @Description 研报详情接口
  348. // @Param ReportId query int true "报告id"
  349. // @Success 200 {object} response.ReportDetailResp
  350. // @router /detail/noUser [get]
  351. func (this *ReportController) DetailNoUser() {
  352. br := new(models.BaseResponse).Init()
  353. defer func() {
  354. this.Data["json"] = br
  355. this.ServeJSON()
  356. }()
  357. reportId, err := this.GetInt("ReportId")
  358. if err != nil {
  359. br.Msg = "参数获取失败"
  360. br.ErrMsg = "参数获取失败,Err:" + err.Error()
  361. return
  362. }
  363. if reportId <= 0 {
  364. br.Msg = "参数错误"
  365. br.ErrMsg = "参数错误,报告id小于等于0"
  366. return
  367. }
  368. report, err := models.GetReportById(reportId)
  369. if err != nil {
  370. if err.Error() == utils.ErrNoRow() {
  371. br.Ret = 200
  372. br.Data = new(response.ReportDetailResp)
  373. br.Success = true
  374. br.Msg = "该报告已删除或不存在"
  375. return
  376. }
  377. br.Msg = "该报告已删除"
  378. br.ErrMsg = "获取报告详情失败,Err:" + err.Error()
  379. return
  380. }
  381. report.ContentSub = html.UnescapeString(report.ContentSub)
  382. report.Content = ""
  383. if report == nil {
  384. br.Msg = "报告不存在"
  385. return
  386. }
  387. resp := new(response.ReportDetailResp)
  388. resp.Report = report
  389. resp.Status = utils.ReportPermissionStatusNoUser
  390. br.Data = resp
  391. br.Ret = 200
  392. br.Success = true
  393. br.Msg = "获取成功"
  394. }
  395. // @Title 今日研报列表
  396. // @Description 今日研报列表
  397. // @Success 200 {object} response.ReportListResp
  398. // @router /daily/list [get]
  399. func (this *ReportController) Today() {
  400. br := new(models.BaseResponse).Init()
  401. defer func() {
  402. this.Data["json"] = br
  403. this.ServeJSON()
  404. }()
  405. total, err := models.GetReportDailyListCount()
  406. if err != nil {
  407. br.Msg = "获取数据失败"
  408. br.ErrMsg = "获取数据失败,Err:" + err.Error()
  409. return
  410. }
  411. list, err := models.GetReportDailyList(0, total)
  412. if err != nil {
  413. br.Msg = "获取失败"
  414. br.ErrMsg = "获取失败,Err:" + err.Error()
  415. return
  416. }
  417. classifyIds := make([]string, 0)
  418. for _, v := range list {
  419. classifyIds = append(classifyIds, strconv.Itoa(v.ClassifyIdSecond))
  420. }
  421. classifyIds = utils.Unique(classifyIds)
  422. // 获取二级分类和二级品种权限的映射
  423. chartPermissionMapping, err := models.GetChartPermissionListByClassifyStrIds(classifyIds)
  424. if err != nil {
  425. br.Msg = "获取研报权限失败"
  426. br.ErrMsg = "获取研报权限失败,Err:" + err.Error()
  427. return
  428. }
  429. classifyToPermissionMap2 := make(map[int][]int)
  430. chartPermissionIds := make([]string, 0)
  431. for _, v := range chartPermissionMapping {
  432. classifyToPermissionMap2[v.ClassifyId] = append(classifyToPermissionMap2[v.ClassifyId], v.ChartPermissionId)
  433. chartPermissionIds = append(chartPermissionIds, strconv.Itoa(v.ChartPermissionId))
  434. }
  435. // 获取二级品种的权限,并建立映射
  436. chartPermissionList2, err := models.GetChartPermissionListByStrIds(chartPermissionIds)
  437. if err != nil {
  438. br.Msg = "获取研报二级品种权限失败"
  439. br.ErrMsg = "获取研报二级品种权限失败,Err:" + err.Error()
  440. return
  441. }
  442. chartPermissionViewMap2 := make(map[int]*models.ChartPermission)
  443. for _, v := range chartPermissionList2 {
  444. chartPermissionViewMap2[v.ChartPermissionId] = v
  445. }
  446. // 获取一级品种的权限,并建立映射
  447. chartPermissionList1, err := models.GetChildChartPermissionListById(0)
  448. if err != nil {
  449. br.Msg = "获取研报一级品种权限失败"
  450. br.ErrMsg = "获取研报一级品种权限失败,Err:" + err.Error()
  451. return
  452. }
  453. chartPermissionMap1 := make(map[int]*models.ChartPermission)
  454. for _, v := range chartPermissionList1 {
  455. chartPermissionMap1[v.ChartPermissionId] = v
  456. }
  457. // 组合数据
  458. for _, v := range list {
  459. var permissionNames []string
  460. for _, vv := range classifyToPermissionMap2[v.ClassifyIdSecond] {
  461. if item, ok := chartPermissionViewMap2[vv]; ok {
  462. parent2 := item.ParentId
  463. permissionNames = append(permissionNames, chartPermissionMap1[parent2].PermissionName)
  464. }
  465. }
  466. v.PermissionNames = utils.Unique(permissionNames)
  467. }
  468. resp := new(response.ReportListResp)
  469. resp.List = list
  470. br.Ret = 200
  471. br.Success = true
  472. br.Msg = "获取成功"
  473. br.Data = resp
  474. }
  475. // @Title 最新研报列表
  476. // @Description 最新研报列表
  477. // @Param PageSize query int true "每页数据条数"
  478. // @Param CurrentIndex query int true "当前页页码,从1开始"
  479. // @Success 200 {object} response.ReportListResp
  480. // @router /recent/list [get]
  481. func (this *ReportController) RecentList() {
  482. br := new(models.BaseResponse).Init()
  483. defer func() {
  484. this.Data["json"] = br
  485. this.ServeJSON()
  486. }()
  487. pageSize, _ := this.GetInt("PageSize")
  488. currentIndex, _ := this.GetInt("CurrentIndex")
  489. var startSize int
  490. if pageSize <= 0 {
  491. pageSize = utils.PageSize30
  492. }
  493. if currentIndex <= 0 {
  494. currentIndex = 1
  495. }
  496. startSize = utils.StartIndex(currentIndex, pageSize)
  497. total, err := models.GetReportRecentListCount()
  498. if err != nil {
  499. br.Msg = "获取数据失败"
  500. br.ErrMsg = "获取数据失败,Err:" + err.Error()
  501. return
  502. }
  503. list, err := models.GetReportRecentList(startSize, pageSize)
  504. if err != nil {
  505. br.Msg = "获取失败"
  506. br.ErrMsg = "获取失败,Err:" + err.Error()
  507. return
  508. }
  509. classifyIds := make([]string, 0)
  510. for _, v := range list {
  511. classifyIds = append(classifyIds, strconv.Itoa(v.ClassifyIdSecond))
  512. }
  513. classifyIds = utils.Unique(classifyIds)
  514. // 获取二级分类和二级品种权限的映射
  515. chartPermissionMapping, err := models.GetChartPermissionListByClassifyStrIds(classifyIds)
  516. if err != nil {
  517. br.Msg = "获取研报权限失败"
  518. br.ErrMsg = "获取研报权限失败,Err:" + err.Error()
  519. return
  520. }
  521. classifyToPermissionMap2 := make(map[int][]int)
  522. chartPermissionIds := make([]string, 0)
  523. for _, v := range chartPermissionMapping {
  524. classifyToPermissionMap2[v.ClassifyId] = append(classifyToPermissionMap2[v.ClassifyId], v.ChartPermissionId)
  525. chartPermissionIds = append(chartPermissionIds, strconv.Itoa(v.ChartPermissionId))
  526. }
  527. // 获取二级品种的权限,并建立映射
  528. chartPermissionList2, err := models.GetChartPermissionListByStrIds(chartPermissionIds)
  529. if err != nil {
  530. br.Msg = "获取研报二级品种权限失败"
  531. br.ErrMsg = "获取研报二级品种权限失败,Err:" + err.Error()
  532. return
  533. }
  534. chartPermissionViewMap2 := make(map[int]*models.ChartPermission)
  535. for _, v := range chartPermissionList2 {
  536. chartPermissionViewMap2[v.ChartPermissionId] = v
  537. }
  538. // 获取一级品种的权限,并建立映射
  539. chartPermissionList1, err := models.GetChildChartPermissionListById(0)
  540. if err != nil {
  541. br.Msg = "获取研报一级品种权限失败"
  542. br.ErrMsg = "获取研报一级品种权限失败,Err:" + err.Error()
  543. return
  544. }
  545. chartPermissionMap1 := make(map[int]*models.ChartPermission)
  546. for _, v := range chartPermissionList1 {
  547. chartPermissionMap1[v.ChartPermissionId] = v
  548. }
  549. // 组合数据
  550. for _, v := range list {
  551. var permissionNames []string
  552. for _, vv := range classifyToPermissionMap2[v.ClassifyIdSecond] {
  553. if item, ok := chartPermissionViewMap2[vv]; ok {
  554. parent2 := item.ParentId
  555. permissionNames = append(permissionNames, chartPermissionMap1[parent2].PermissionName)
  556. }
  557. }
  558. v.PermissionNames = utils.Unique(permissionNames)
  559. }
  560. page := paging.GetPaging(currentIndex, pageSize, total)
  561. resp := new(response.ReportListResp)
  562. resp.Paging = page
  563. resp.List = list
  564. br.Ret = 200
  565. br.Success = true
  566. br.Msg = "获取成功"
  567. br.Data = resp
  568. }
  569. // @Title 研报搜索
  570. // @Description 研报搜索
  571. // @Param PageSize query int true "每页数据条数"
  572. // @Param CurrentIndex query int true "当前页页码,从1开始"
  573. // @Param KeyWord query string true "关键字"
  574. // @Success 200 {object} response.ReportSearchResp
  575. // @router /search [get]
  576. func (this *ReportController) Search() {
  577. br := new(models.BaseResponse).Init()
  578. defer func() {
  579. this.Data["json"] = br
  580. this.ServeJSON()
  581. }()
  582. keyWord := this.GetString("KeyWord")
  583. pageSize, _ := this.GetInt("PageSize")
  584. currentIndex, _ := this.GetInt("CurrentIndex")
  585. if pageSize <= 0 {
  586. pageSize = utils.PageSize30
  587. }
  588. if currentIndex <= 0 {
  589. currentIndex = 1
  590. }
  591. if keyWord == "" {
  592. br.Msg = "请输入关键字"
  593. return
  594. }
  595. reportList, err, errMsg := services.SearchReport(keyWord, currentIndex, pageSize)
  596. if err != nil {
  597. br.Msg = "研报搜索失败"
  598. br.ErrMsg = errMsg + ",Err:" + err.Error()
  599. return
  600. }
  601. br.Data = reportList
  602. br.Msg = "查询成功"
  603. br.Ret = 200
  604. br.Success = true
  605. }