report.go 43 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467
  1. package controllers
  2. import (
  3. "encoding/json"
  4. "fmt"
  5. "hongze/hongze_cygx/models"
  6. "hongze/hongze_cygx/services"
  7. "hongze/hongze_cygx/utils"
  8. "rdluck_tools/paging"
  9. "strconv"
  10. "strings"
  11. "time"
  12. )
  13. //报告
  14. type ReportController struct {
  15. BaseAuthController
  16. }
  17. type ReportCommonController struct {
  18. BaseCommonController
  19. }
  20. // @Title 行业报告分类列表接口
  21. // @Description 获取行业报告分类列表接口
  22. // @Param ChartPermissionId query int true "分类ID"
  23. // @Success 200 {object} models.IndustrialManagementList
  24. // @router /home/tradeList [get]
  25. func (this *ReportController) TradeList() {
  26. br := new(models.BaseResponse).Init()
  27. defer func() {
  28. this.Data["json"] = br
  29. this.ServeJSON()
  30. }()
  31. user := this.User
  32. if user == nil {
  33. br.Msg = "请重新登录"
  34. br.Ret = 408
  35. return
  36. }
  37. uid := user.UserId
  38. ChartPermissionId, _ := this.GetInt("ChartPermissionId")
  39. if ChartPermissionId < 1 {
  40. br.Msg = "请输入分类ID"
  41. return
  42. }
  43. list, err := models.GetTradeAll(ChartPermissionId)
  44. if err != nil {
  45. br.Msg = "获取信息失败"
  46. br.ErrMsg = "获取品种信息失败,Err:" + err.Error()
  47. return
  48. }
  49. for k, v := range list {
  50. list[k].UpdateTime = utils.TimeRemoveHms(v.UpdateTime)
  51. count, err := models.CheckThisCategoryNewArticleIsRead(uid, v.CategoryId)
  52. if err != nil {
  53. br.Msg = "获取信息失败"
  54. br.ErrMsg = "获取帖子总数失败,Err:" + err.Error()
  55. return
  56. }
  57. if count == 0 && user.CreatedTime.Before(utils.StrTimeToTime(v.UpdateTime)) && utils.StrTimeToTime(utils.OnlineTime).Before(utils.StrTimeToTime(v.UpdateTime)) {
  58. list[k].IsRed = true
  59. }
  60. }
  61. resp := new(models.TradeReportMappingResp)
  62. resp.List = list
  63. br.Ret = 200
  64. br.Success = true
  65. br.Msg = "获取成功"
  66. br.Data = resp
  67. }
  68. // @Title 产业报告分类列表接口
  69. // @Description 获取产业报告分类列表接口
  70. // @Param ChartPermissionId query int true "分类ID"
  71. // @Param IsNewLabel query string true "是否属于新标签,1是,0否"
  72. // @Param IsDeepLabel query string true "是否属于深标签,1是,0否"
  73. // @Param KeyWord query string true "搜索关键词"
  74. // @Param OrderColumn query int true "排序字段 ,NewTime 最近更新 ,Recommend弘则推荐"
  75. // @Param PageSize query int true "每页数据条数"
  76. // @Param CurrentIndex query int true "当前页页码,从1开始"
  77. // @Success 200 {object} models.IndustrialManagementList
  78. // @router /home/industryList [get]
  79. func (this *ReportController) IndustryList() {
  80. br := new(models.BaseResponse).Init()
  81. defer func() {
  82. this.Data["json"] = br
  83. this.ServeJSON()
  84. }()
  85. user := this.User
  86. if user == nil {
  87. br.Msg = "请重新登录"
  88. br.Ret = 408
  89. return
  90. }
  91. uid := user.UserId
  92. fmt.Println(uid)
  93. ChartPermissionId, _ := this.GetInt("ChartPermissionId")
  94. orderColumn := this.GetString("OrderColumn")
  95. isNewLabel := this.GetString("IsNewLabel")
  96. isDeepLabel := this.GetString("IsDeepLabel")
  97. keyWord := this.GetString("KeyWord")
  98. pageSize, _ := this.GetInt("PageSize")
  99. currentIndex, _ := this.GetInt("CurrentIndex")
  100. var orderSrt string
  101. var condition string
  102. var startSize int
  103. resp := new(models.IndustrialManagementList)
  104. if pageSize <= 0 {
  105. pageSize = utils.PageSize20
  106. }
  107. if currentIndex <= 0 {
  108. currentIndex = 1
  109. }
  110. startSize = paging.StartIndex(currentIndex, pageSize)
  111. if isNewLabel == "1" {
  112. condition += ` AND is_new_label = ` + isNewLabel
  113. }
  114. if isDeepLabel == "1" {
  115. condition += ` AND is_deep_label = ` + isDeepLabel
  116. }
  117. if keyWord != "" {
  118. keyWordArr, err := services.GetIndustryMapNameSliceV2(keyWord)
  119. if err != nil {
  120. br.Msg = "获取信息失败"
  121. br.ErrMsg = "获取品种信息失败,Err:" + err.Error()
  122. return
  123. }
  124. var conditionkeyWord string
  125. conditionkeyWord += ` subject_names LIKE '%` + keyWord + `%'`
  126. keyWordArr = services.RemoveDuplicatesAndEmpty(keyWordArr)
  127. keyWordLen := len(keyWordArr)
  128. if keyWordLen <= 0 {
  129. keyWordArr = append(keyWordArr, keyWord)
  130. keyWordLen = len(keyWordArr)
  131. }
  132. for _, v := range keyWordArr {
  133. conditionkeyWord += ` OR subject_names LIKE '%` + v + `%'`
  134. }
  135. industrialManagementIds, err := models.GetIndustrialManagementIdsBykeyWord(conditionkeyWord)
  136. if err != nil {
  137. br.Msg = "获取信息失败"
  138. br.ErrMsg = "获取客户信息失败,Err:" + err.Error()
  139. return
  140. }
  141. if industrialManagementIds == "" {
  142. br.Ret = 200
  143. br.Success = true
  144. br.Msg = "获取成功"
  145. br.Data = resp
  146. return
  147. }
  148. condition += ` AND man.industrial_management_id IN (` + industrialManagementIds + `)`
  149. }
  150. var sqlChartPermissionId string
  151. if ChartPermissionId > 0 {
  152. sqlChartPermissionId += ` AND man_g.industrial_management_id IN ( SELECT industrial_management_id FROM cygx_industrial_management WHERE chart_permission_id = ` + strconv.Itoa(ChartPermissionId) + ` ) `
  153. condition += ` AND man.chart_permission_id IN (` + strconv.Itoa(ChartPermissionId) + `)`
  154. }
  155. //var total int
  156. var list []*models.IndustrialManagement
  157. //totalTopList, errTop := models.GetIndustrialManagemenCountTop(sqlChartPermissionId, uid, condition)
  158. //totalTop := len(totalTopList)
  159. //if errTop != nil {
  160. // br.Msg = "获取信息失败"
  161. // br.ErrMsg = "获取品种信息失败,Err:" + errTop.Error()
  162. // return
  163. //}
  164. //totalNoTopList, errNoTop := models.GetIndustrialManagemenCountNoTop(sqlChartPermissionId, uid, condition)
  165. //totalNoTop := len(totalNoTopList)
  166. //if errNoTop != nil {
  167. // br.Msg = "获取信息失败"
  168. // br.ErrMsg = "获取品种信息失败,Err:" + errNoTop.Error()
  169. // return
  170. //}
  171. total, err := models.GetIndustrialManagementAllCount(condition)
  172. if err != nil {
  173. br.Msg = "获取信息失败"
  174. br.ErrMsg = "获取数量失败,Err:" + err.Error()
  175. return
  176. }
  177. page := paging.GetPaging(currentIndex, pageSize, total)
  178. if orderColumn == "" {
  179. orderColumn = "NewTime"
  180. }
  181. if orderColumn == "NewTime" {
  182. orderSrt = "update_time DESC"
  183. } else {
  184. orderSrt = "man.recommended_index DESC,update_time DESC"
  185. }
  186. //全部都是置顶
  187. //if totalTop >= currentIndex*pageSize {
  188. // listTop, err := models.GetIndustrialManagementTopAll(uid, condition, startSize, pageSize)
  189. // for k, _ := range listTop {
  190. // listTop[k].IsTop = true
  191. // }
  192. // if err != nil {
  193. // br.Msg = "获取信息失败"
  194. // br.ErrMsg = "获取品种信息失败,Err:" + err.Error()
  195. // return
  196. // }
  197. // list = listTop
  198. //} else if totalTop < (currentIndex-1)*pageSize { //全部都是不置顶
  199. // listNoTop, err := models.GetIndustrialManagementAll(uid, condition, orderSrt, startSize-totalTop, pageSize)
  200. // if err != nil {
  201. // br.Msg = "获取信息失败"
  202. // br.ErrMsg = "获取品种信息失败,Err:" + err.Error()
  203. // return
  204. // }
  205. // list = listNoTop
  206. //} else { //部分置顶,部分不置顶
  207. // listTop, err := models.GetIndustrialManagementTopAll(uid, condition, startSize, pageSize)
  208. // if err != nil {
  209. // br.Msg = "获取信息失败"
  210. // br.ErrMsg = "获取品种信息失败,Err:" + err.Error()
  211. // return
  212. // }
  213. // for k, _ := range listTop {
  214. // listTop[k].IsTop = true
  215. // }
  216. // listNoTop, err := models.GetIndustrialManagementAll(uid, condition, orderSrt, 0, pageSize-len(listTop))
  217. // if err != nil {
  218. // br.Msg = "获取信息失败"
  219. // br.ErrMsg = "获取品种信息失败,Err:" + err.Error()
  220. // return
  221. // }
  222. // list = append(listTop, listNoTop...)
  223. //}
  224. if ChartPermissionId == 0 {
  225. ChartPermissionId = 20
  226. }
  227. detailHot3, err := models.GetIndustrialManagementHot3(ChartPermissionId)
  228. if err != nil {
  229. br.Msg = "获取信息失败"
  230. br.ErrMsg = "获取信息失败,Err:" + err.Error()
  231. return
  232. }
  233. list, err = models.GetIndustrialManagementAll(uid, condition, orderSrt, startSize, pageSize)
  234. if err != nil {
  235. br.Msg = "获取信息失败"
  236. br.ErrMsg = "获取品种信息失败,Err:" + err.Error()
  237. return
  238. }
  239. for k, v := range list {
  240. //var analystStr string
  241. //analystList, err := models.GetIndustrialAnalystAll(v.IndustrialManagementId)
  242. //if err != nil {
  243. // br.Msg = "获取信息失败"
  244. // br.ErrMsg = "获取品种信息失败,Err:" + err.Error()
  245. // return
  246. //}
  247. industrialSubjectList, err := models.GetIndustrialSubjectAll(v.IndustrialManagementId)
  248. if err != nil {
  249. br.Msg = "获取信息失败"
  250. br.ErrMsg = "获取品种信息失败,Err:" + err.Error()
  251. return
  252. }
  253. list[k].IndustrialSubjectList = industrialSubjectList
  254. //if len(analystList) > 0 {
  255. // for _, v2 := range analystList {
  256. // analystStr += v2.AnalystName + "/"
  257. // }
  258. // analystStr = strings.TrimRight(analystStr, "/")
  259. //}
  260. //list[k].Analyst = analystStr
  261. list[k].LayoutTime = utils.TimeRemoveHms(v.LayoutTime)
  262. newArtinfo, err := models.GetIndustrialNewArticleDetail(v.IndustrialManagementId)
  263. if err != nil {
  264. br.Msg = "获取信息失败"
  265. br.ErrMsg = "获取品种信息失败,Err:" + err.Error()
  266. return
  267. }
  268. list[k].UpdateTime = utils.TimeRemoveHms(newArtinfo.PublishDate)
  269. recordCount, err := models.GetUserToArticleCount(uid, newArtinfo.ArticleId)
  270. if err != nil && err.Error() != utils.ErrNoRow() {
  271. br.Msg = "获取信息失败"
  272. br.ErrMsg = "获取信息失败,Err:" + strconv.Itoa(uid) + ";articleId" + strconv.Itoa(newArtinfo.ArticleId)
  273. return
  274. }
  275. if recordCount == 0 && user.CreatedTime.Before(utils.StrTimeToTime(newArtinfo.PublishDate)) && utils.StrTimeToTime(utils.OnlineTime).Before(utils.StrTimeToTime(newArtinfo.PublishDate)) {
  276. list[k].IsRed = true
  277. }
  278. if v.ArticleReadNum >= detailHot3.ArticleReadNum {
  279. list[k].IsHot = true
  280. }
  281. }
  282. resp.List = list
  283. resp.Paging = page
  284. br.Ret = 200
  285. br.Success = true
  286. br.Msg = "获取成功"
  287. br.Data = resp
  288. }
  289. // @Title 产业下所关联的文章分类列表
  290. // @Description 产业下所关联的文章分类列表接口
  291. // @Param IndustrialManagementId query int true "产业ID"
  292. // @Success 200 {object} models.IndustrialToArticleCategoryListRep
  293. // @router /toArticleCategoryList [get]
  294. func (this *ReportController) ArticleCategoryList() {
  295. br := new(models.BaseResponse).Init()
  296. defer func() {
  297. this.Data["json"] = br
  298. this.ServeJSON()
  299. }()
  300. user := this.User
  301. if user == nil {
  302. br.Msg = "请重新登录"
  303. br.Ret = 408
  304. return
  305. }
  306. uid := user.UserId
  307. industrialManagementId, _ := this.GetInt("IndustrialManagementId")
  308. if industrialManagementId < 1 {
  309. br.Msg = "请输入分类ID"
  310. return
  311. }
  312. list, err := models.IndustrialToArticleCategory(industrialManagementId)
  313. if err != nil {
  314. br.Msg = "获取信息失败"
  315. br.ErrMsg = "获取品种信息失败,Err:" + err.Error()
  316. return
  317. }
  318. for k, v := range list {
  319. recordCount, err := models.IndustrialUserRecordArticleCount(uid, industrialManagementId, v.CategoryId)
  320. if err != nil && err.Error() != utils.ErrNoRow() {
  321. br.Msg = "获取信息失败"
  322. br.ErrMsg = "判断是否已申请过试用失败,Err:" + err.Error()
  323. return
  324. }
  325. Newdetail, err := models.GetNewIndustrialUserRecordArticle(industrialManagementId, v.CategoryId)
  326. if err != nil {
  327. br.Msg = "获取信息失败"
  328. br.ErrMsg = "获取信息失败,Err:" + err.Error()
  329. return
  330. }
  331. if recordCount == 0 && user.CreatedTime.Before(utils.StrTimeToTime(Newdetail.PublishDate)) && utils.StrTimeToTime(utils.OnlineTime).Before(utils.StrTimeToTime(Newdetail.PublishDate)) {
  332. list[k].IsRed = true
  333. }
  334. }
  335. detail, err := models.GetIndustrialManagementDetail(industrialManagementId)
  336. if err != nil {
  337. br.Msg = "获取信息失败"
  338. br.ErrMsg = "获取信息失败,Err:" + err.Error()
  339. return
  340. }
  341. resp := new(models.IndustrialToArticleCategoryListRep)
  342. resp.List = list
  343. resp.LayoutTime = utils.TimeRemoveHms(detail.LayoutTime)
  344. resp.IndustryName = detail.IndustryName
  345. resp.IndustrialManagementId = industrialManagementId
  346. br.Ret = 200
  347. br.Success = true
  348. br.Msg = "获取成功"
  349. br.Data = resp
  350. }
  351. // @Title 产业文章列表接口
  352. // @Description 获取产业文章列表接口
  353. // @Param PageSize query int true "每页数据条数"
  354. // @Param CurrentIndex query int true "当前页页码,从1开始"
  355. // @Param CategoryId query int true "分类ID"
  356. // @Param IndustrialManagementId query int true "产业ID"
  357. // @Success 200 {object} models.TacticsListResp
  358. // @router /industry/ArticleList [get]
  359. func (this *ReportController) List() {
  360. br := new(models.BaseResponse).Init()
  361. defer func() {
  362. this.Data["json"] = br
  363. this.ServeJSON()
  364. }()
  365. user := this.User
  366. if user == nil {
  367. br.Msg = "请重新登录"
  368. br.Ret = 408
  369. return
  370. }
  371. uid := user.UserId
  372. pageSize, _ := this.GetInt("PageSize")
  373. currentIndex, _ := this.GetInt("CurrentIndex")
  374. categoryId, _ := this.GetInt("CategoryId")
  375. industrialManagementId, _ := this.GetInt("IndustrialManagementId")
  376. var startSize int
  377. if pageSize <= 0 {
  378. pageSize = utils.PageSize20
  379. }
  380. if currentIndex <= 0 {
  381. currentIndex = 1
  382. }
  383. startSize = paging.StartIndex(currentIndex, pageSize)
  384. var pars []interface{}
  385. var total int
  386. resp := new(models.TacticsListResp)
  387. page := paging.GetPaging(currentIndex, pageSize, total)
  388. if categoryId < 1 {
  389. br.Msg = "请输入分类ID"
  390. return
  391. }
  392. if industrialManagementId < 1 {
  393. br.Msg = "请输入产业ID"
  394. return
  395. }
  396. total, err := models.GetReportIndustrialCount(categoryId, industrialManagementId)
  397. if err != nil {
  398. br.Msg = "获取信息失败"
  399. br.ErrMsg = "获取帖子总数失败,Err:" + err.Error()
  400. return
  401. }
  402. page = paging.GetPaging(currentIndex, pageSize, total)
  403. list, err := models.GetReportIndustrialList(pars, categoryId, industrialManagementId, uid, startSize, pageSize)
  404. if err != nil {
  405. br.Msg = "获取信息失败"
  406. br.ErrMsg = "获取帖子数据失败,Err:" + err.Error()
  407. return
  408. }
  409. lenList := len(list)
  410. for i := 0; i < lenList; i++ {
  411. item := list[i]
  412. list[i].Body, _ = services.GetReportContentTextSub(item.Body)
  413. //list[i].Abstract = html.UnescapeString(item.Abstract)
  414. list[i].Abstract, _ = services.GetReportContentTextSub(item.Abstract)
  415. }
  416. for k, v := range list {
  417. if v.Readnum == 0 && user.CreatedTime.Before(utils.StrTimeToTime(v.PublishDate)) && utils.StrTimeToTime(utils.OnlineTime).Before(utils.StrTimeToTime(v.PublishDate)) {
  418. list[k].IsRed = true
  419. }
  420. }
  421. resp.List = list
  422. resp.Paging = page
  423. br.Ret = 200
  424. br.Success = true
  425. br.Msg = "获取成功"
  426. br.Data = resp
  427. }
  428. // @Title 置顶/取消置顶
  429. // @Description 置顶
  430. // @Param request body models.CygxIndustryTopRep true "type json string"
  431. // @Success 200
  432. // @router /top [post]
  433. func (this *ReportController) ArticleCollect() {
  434. br := new(models.BaseResponse).Init()
  435. defer func() {
  436. this.Data["json"] = br
  437. this.ServeJSON()
  438. }()
  439. user := this.User
  440. if user == nil {
  441. br.Msg = "请重新登录"
  442. br.Ret = 408
  443. return
  444. }
  445. uid := user.UserId
  446. var req models.CygxIndustryTopRep
  447. err := json.Unmarshal(this.Ctx.Input.RequestBody, &req)
  448. if err != nil {
  449. br.Msg = "参数解析异常!"
  450. br.ErrMsg = "参数解析失败,Err:" + err.Error()
  451. return
  452. }
  453. industrialManagementId := req.IndustrialManagementId
  454. countIndustrial, err := models.GetIndustrialManagementCount(industrialManagementId)
  455. if err != nil {
  456. br.Msg = "获取数据失败!"
  457. br.ErrMsg = "获取数据失败,Err:" + err.Error()
  458. return
  459. }
  460. if countIndustrial == 0 {
  461. br.Msg = "产业不存在!"
  462. br.ErrMsg = "产业ID不存在:" + strconv.Itoa(industrialManagementId)
  463. return
  464. }
  465. count, err := models.GetCygxIndustryTop(uid, industrialManagementId)
  466. if err != nil {
  467. br.Msg = "获取数据失败!"
  468. br.ErrMsg = "获取数据失败,Err:" + err.Error()
  469. return
  470. }
  471. resp := new(models.ArticleCollectResp)
  472. if count <= 0 {
  473. item := new(models.CygxIndustryTop)
  474. item.IndustrialManagementId = req.IndustrialManagementId
  475. item.UserId = uid
  476. item.CreateTime = time.Now()
  477. _, err = models.AddCygxIndustryTop(item)
  478. if err != nil {
  479. br.Msg = "置顶失败"
  480. br.ErrMsg = "置顶失败,Err:" + err.Error()
  481. return
  482. }
  483. br.Msg = "置顶成功"
  484. resp.Status = 1
  485. } else {
  486. err = models.RemoveCygxIndustryTop(uid, industrialManagementId)
  487. if err != nil {
  488. br.Msg = "取消置顶失败"
  489. br.ErrMsg = "取消置顶失败,Err:" + err.Error()
  490. return
  491. }
  492. br.Msg = "已取消置顶"
  493. resp.Status = 2
  494. }
  495. br.Ret = 200
  496. br.Success = true
  497. br.Data = resp
  498. }
  499. // @Title 关注/取消关注产业
  500. // @Description 关注/取消关注 接口
  501. // @Param request body models.CygxIndustryFllowRep true "type json string"
  502. // @Success 200
  503. // @router /fllow [post]
  504. func (this *ReportController) Fllow() {
  505. br := new(models.BaseResponse).Init()
  506. defer func() {
  507. this.Data["json"] = br
  508. this.ServeJSON()
  509. }()
  510. user := this.User
  511. if user == nil {
  512. br.Msg = "请重新登录"
  513. br.Ret = 408
  514. return
  515. }
  516. uid := user.UserId
  517. var req models.CygxIndustryFllowRep
  518. err := json.Unmarshal(this.Ctx.Input.RequestBody, &req)
  519. if err != nil {
  520. br.Msg = "参数解析异常!"
  521. br.ErrMsg = "参数解析失败,Err:" + err.Error()
  522. return
  523. }
  524. industrialManagementId := req.IndustrialManagementId
  525. var condition string
  526. countIndustrial, err := models.GetIndustrialManagementCount(industrialManagementId)
  527. if err != nil {
  528. br.Msg = "获取数据失败!"
  529. br.ErrMsg = "获取数据失败,Err:" + err.Error()
  530. return
  531. }
  532. if countIndustrial == 0 {
  533. br.Msg = "产业不存在!"
  534. br.ErrMsg = "产业ID不存在:" + strconv.Itoa(industrialManagementId)
  535. return
  536. }
  537. count, err := models.GetCountCygxIndustryFllow(uid, industrialManagementId, condition)
  538. if err != nil {
  539. br.Msg = "获取数据失败!"
  540. br.ErrMsg = "获取数据失败,Err:" + err.Error()
  541. return
  542. }
  543. resp := new(models.CygxIndustryFllowResp)
  544. countUser, err := models.GetCountCygxIndustryFllowByUid(uid)
  545. if countUser == 0 {
  546. resp.GoFollow = true
  547. }
  548. if count == 0 {
  549. item := new(models.CygxIndustryFllow)
  550. item.IndustrialManagementId = industrialManagementId
  551. item.UserId = uid
  552. item.Email = user.Email
  553. item.Mobile = user.Mobile
  554. item.CompanyId = user.CompanyId
  555. item.CompanyName = user.CompanyName
  556. item.Type = 1
  557. item.CreateTime = time.Now()
  558. item.ModifyTime = time.Now()
  559. _, err = models.AddCygxIndustryFllow(item)
  560. if err != nil {
  561. br.Msg = "操作失败"
  562. br.ErrMsg = "操作失败,Err:" + err.Error()
  563. return
  564. }
  565. resp.Status = 1
  566. } else {
  567. var doType int
  568. condition = ` AND type = 1`
  569. count, err = models.GetCountCygxIndustryFllow(uid, industrialManagementId, condition)
  570. if err != nil {
  571. br.Msg = "操作失败!"
  572. br.ErrMsg = "获取数据失败,Err:" + err.Error()
  573. return
  574. }
  575. if count == 1 {
  576. resp.Status = 2
  577. doType = 2
  578. } else {
  579. resp.Status = 1
  580. doType = 1
  581. }
  582. err = models.RemoveCygxIndustryFllow(uid, industrialManagementId, doType)
  583. if err != nil {
  584. br.Msg = "操作失败"
  585. br.ErrMsg = "取消关注失败,Err:" + err.Error()
  586. return
  587. }
  588. }
  589. br.Msg = "操作成功"
  590. br.Ret = 200
  591. br.Success = true
  592. br.Data = resp
  593. }
  594. // @Title 产业报告分类关联作者列表接口
  595. // @Description 获取产业报告分类关联作者列表接口
  596. // @Param ChartPermissionId query int true "分类ID"
  597. // @Param PageSize query int true "每页数据条数"
  598. // @Param CurrentIndex query int true "当前页页码,从1开始"
  599. // @Success 200 {object} models.CygxArticleDepartmentList
  600. // @router /industryListByDepartment [get]
  601. func (this *ReportController) IndustryListByDepartment() {
  602. br := new(models.BaseResponse).Init()
  603. defer func() {
  604. this.Data["json"] = br
  605. this.ServeJSON()
  606. }()
  607. user := this.User
  608. if user == nil {
  609. br.Msg = "请重新登录"
  610. br.Ret = 408
  611. return
  612. }
  613. uid := user.UserId
  614. pageSize, _ := this.GetInt("PageSize")
  615. currentIndex, _ := this.GetInt("CurrentIndex")
  616. //chartPermissionId, _ := this.GetInt("ChartPermissionId")
  617. var startSize int
  618. var condition string
  619. //condition = ` AND a.publish_status=1 AND m.chart_permission_id =` + strconv.Itoa(chartPermissionId)
  620. condition = ` AND a.publish_status=1 `
  621. if pageSize <= 0 {
  622. pageSize = utils.PageSize20
  623. }
  624. if currentIndex <= 0 {
  625. currentIndex = 1
  626. }
  627. startSize = paging.StartIndex(currentIndex, pageSize)
  628. total, err := models.GetArticleDepartmentCount(condition)
  629. page := paging.GetPaging(currentIndex, pageSize, total)
  630. resp := new(models.CygxArticleDepartmentList)
  631. userType, _, err := services.GetUserType(user.CompanyId)
  632. if err != nil {
  633. br.Msg = "获取信息失败"
  634. br.ErrMsg = "获取用户信息失败,Err:" + err.Error()
  635. return
  636. }
  637. if userType == 1 {
  638. resp.Paging = page
  639. br.Ret = 200
  640. br.Success = true
  641. br.Msg = "获取成功"
  642. br.Data = resp
  643. return
  644. }
  645. resp.HaveResearch = true
  646. //获取作者信息,并排序
  647. list, err := models.GetCygxArticleDepartmentList(startSize, pageSize, condition, uid)
  648. if err != nil {
  649. br.Msg = "获取信息失败"
  650. br.ErrMsg = "获取品种信息失败,Err:" + err.Error()
  651. return
  652. }
  653. for k, v := range list {
  654. artList, err := models.GetArticleByDepartmentId(v.DepartmentId)
  655. if err != nil {
  656. br.Msg = "获取信息失败"
  657. br.ErrMsg = "获取文章信息失败,Err:" + err.Error()
  658. return
  659. }
  660. for k2, v2 := range artList {
  661. subjectNames, err := models.GetSubjectNames(v2.ArticleId)
  662. if err != nil {
  663. br.Msg = "获取失败" + strconv.Itoa(v2.ArticleId)
  664. br.ErrMsg = "获取失败,Err:" + err.Error()
  665. return
  666. }
  667. var subjectNamesNew string
  668. if len(subjectNames) > 0 {
  669. slice := strings.Split(subjectNames, "/")
  670. for k3, v3 := range slice {
  671. if k3 < 4 {
  672. subjectNamesNew += v3 + "/"
  673. }
  674. }
  675. }
  676. industryName, err := models.GetIndustrialNames(v2.ArticleId)
  677. if err != nil && err.Error() != utils.ErrNoRow() {
  678. br.Msg = "获取失败" + strconv.Itoa(v2.ArticleId)
  679. br.ErrMsg = "获取失败,Err:" + err.Error()
  680. return
  681. }
  682. subjectNamesNew = strings.TrimRight(subjectNamesNew, "/")
  683. artList[k2].SubjectName = subjectNamesNew
  684. artList[k2].DepartmentId = v.DepartmentId
  685. if subjectNamesNew == "" {
  686. artList[k2].IndustryName = industryName
  687. } else {
  688. artList[k2].IndustryName = industryName + "-" + subjectNamesNew
  689. }
  690. if artList[k2].IsReport == "1" {
  691. artList[k2].IndustryName = "【观点】" + artList[k2].IndustryName
  692. } else {
  693. artList[k2].IndustryName = "【纪要】" + artList[k2].IndustryName
  694. }
  695. }
  696. list[k].List = artList
  697. if v.FollowNum > 0 {
  698. list[k].IsMyFollow = true
  699. }
  700. }
  701. listnNew, err := models.GetIndustrialSubjectByDepartmentNew()
  702. if err != nil {
  703. br.Msg = "获取信息失败"
  704. br.ErrMsg = "获取品种信息失败,Err:" + err.Error()
  705. return
  706. }
  707. if len(listnNew) > 0 {
  708. for _, v := range listnNew {
  709. firstStr := strings.Index(v.IndustrialAndSubjectIds, "—")
  710. Management := new(models.IndustrialManagementIdInt)
  711. if firstStr == 0 {
  712. Management.IndustryName = v.IndustryName
  713. } else {
  714. listSub, err := models.GetIndustrialManagementSubjectList(v.ArticleId)
  715. if err != nil {
  716. br.Msg = "获取信息失败"
  717. br.ErrMsg = "获取关联标的列表失败,Err:" + err.Error()
  718. return
  719. }
  720. var subjectNamesNew string
  721. for _, v1 := range listSub {
  722. subjectNamesNew += v1.SubjectName + "/"
  723. }
  724. subjectNamesNew = strings.TrimRight(subjectNamesNew, "/")
  725. Management.IndustryName = subjectNamesNew
  726. }
  727. Management.IndustrialManagementId = v.IndustrialManagementId
  728. Management.ArticleId = v.ArticleId
  729. resp.ListnNew = append(resp.ListnNew, Management)
  730. }
  731. }
  732. resp.List = list
  733. resp.Paging = page
  734. br.Ret = 200
  735. br.Success = true
  736. br.Msg = "获取成功"
  737. br.Data = resp
  738. }
  739. // @Title 关注作者/取消关注作者
  740. // @Description 关注作者/取消关注作者 接口
  741. // @Param request body models.CygxArticleDepartmentId true "type json string"
  742. // @Success 200
  743. // @router /fllowDepartment [post]
  744. func (this *ReportController) FllowDepartment() {
  745. br := new(models.BaseResponse).Init()
  746. defer func() {
  747. this.Data["json"] = br
  748. this.ServeJSON()
  749. }()
  750. user := this.User
  751. if user == nil {
  752. br.Msg = "请重新登录"
  753. br.Ret = 408
  754. return
  755. }
  756. uid := user.UserId
  757. var req models.CygxArticleDepartmentId
  758. err := json.Unmarshal(this.Ctx.Input.RequestBody, &req)
  759. if err != nil {
  760. br.Msg = "参数解析异常!"
  761. br.ErrMsg = "参数解析失败,Err:" + err.Error()
  762. return
  763. }
  764. departmentId := req.DepartmentId
  765. var condition string
  766. countDepartment, err := models.GetDepartmentCount(departmentId)
  767. if err != nil {
  768. br.Msg = "获取数据失败!"
  769. br.ErrMsg = "获取数据失败,Err:" + err.Error()
  770. return
  771. }
  772. if countDepartment == 0 {
  773. br.Msg = "作者不存在!"
  774. br.ErrMsg = "作者ID不存在:" + strconv.Itoa(departmentId)
  775. return
  776. }
  777. countUser, err := models.GetArticleDepartmentFollowByUid(uid)
  778. count, err := models.GetArticleDepartmentFollow(uid, departmentId, condition)
  779. if err != nil {
  780. br.Msg = "获取数据失败!"
  781. br.ErrMsg = "获取数据失败,Err:" + err.Error()
  782. return
  783. }
  784. resp := new(models.CygxArticleDepartmentFollowResp)
  785. if countUser == 0 {
  786. resp.GoFollow = true
  787. }
  788. if count == 0 {
  789. item := new(models.CygxArticleDepartmentFollow)
  790. item.DepartmentId = departmentId
  791. item.UserId = uid
  792. item.Email = user.Email
  793. item.Mobile = user.Mobile
  794. item.CompanyId = user.CompanyId
  795. item.CompanyName = user.CompanyName
  796. item.Type = 1
  797. item.CreateTime = time.Now()
  798. item.ModifyTime = time.Now()
  799. _, err = models.AddArticleDepartmentFollow(item)
  800. if err != nil {
  801. br.Msg = "操作失败"
  802. br.ErrMsg = "操作失败,Err:" + err.Error()
  803. return
  804. }
  805. resp.Status = 1
  806. } else {
  807. var doType int
  808. condition = ` AND type = 1`
  809. count, err = models.GetArticleDepartmentFollow(uid, departmentId, condition)
  810. if err != nil {
  811. br.Msg = "操作失败!"
  812. br.ErrMsg = "获取数据失败,Err:" + err.Error()
  813. return
  814. }
  815. if count == 1 {
  816. resp.Status = 2
  817. doType = 2
  818. } else {
  819. resp.Status = 1
  820. doType = 1
  821. }
  822. err = models.RemoveArticleDepartmentFollow(uid, departmentId, doType)
  823. if err != nil {
  824. br.Msg = "操作失败"
  825. br.ErrMsg = "取消关注失败,Err:" + err.Error()
  826. return
  827. }
  828. }
  829. br.Msg = "操作成功"
  830. br.Ret = 200
  831. br.Success = true
  832. br.Data = resp
  833. }
  834. // @Title 研选文章列表接口
  835. // @Description 获取研选文章列表接口
  836. // @Param PageSize query int true "每页数据条数"
  837. // @Param CurrentIndex query int true "当前页页码,从1开始"
  838. // @Param ArticleId query int true "文章id"
  839. // @Param DepartmentId query int true "作者ID"
  840. // @Param IndustrialManagementId query int true "产业ID"
  841. // @Success 200 {object} models.ReportArticleWhichIndustrialRepList
  842. // @router /industry/reportList [get]
  843. func (this *ReportController) ReportList() {
  844. br := new(models.BaseResponse).Init()
  845. defer func() {
  846. this.Data["json"] = br
  847. this.ServeJSON()
  848. }()
  849. user := this.User
  850. if user == nil {
  851. br.Msg = "请重新登录"
  852. br.Ret = 408
  853. return
  854. }
  855. uid := user.UserId
  856. pageSize, _ := this.GetInt("PageSize")
  857. currentIndex, _ := this.GetInt("CurrentIndex")
  858. departmentId, _ := this.GetInt("DepartmentId")
  859. industrialManagementId, _ := this.GetInt("IndustrialManagementId")
  860. articleId, _ := this.GetInt("ArticleId")
  861. var condition string
  862. var startSize int
  863. if pageSize <= 0 {
  864. pageSize = utils.PageSize20
  865. }
  866. if currentIndex <= 0 {
  867. currentIndex = 1
  868. }
  869. startSize = paging.StartIndex(currentIndex, pageSize)
  870. var pars []interface{}
  871. var total int
  872. resp := new(models.ReportArticleWhichIndustrialRepList)
  873. page := paging.GetPaging(currentIndex, pageSize, total)
  874. userType, _, err := services.GetUserType(user.CompanyId)
  875. if err != nil {
  876. br.Msg = "获取信息失败"
  877. br.ErrMsg = "获取用户信息失败,Err:" + err.Error()
  878. return
  879. }
  880. if userType == 1 {
  881. resp.Paging = page
  882. br.Ret = 200
  883. br.Success = true
  884. br.Msg = "获取成功"
  885. br.Data = resp
  886. return
  887. }
  888. resp.HaveResearch = true
  889. if departmentId > 0 {
  890. condition += ` AND art.department_id = ` + strconv.Itoa(departmentId)
  891. detail, err := models.GetArticleDepartmentDateilById(departmentId)
  892. if err != nil {
  893. br.Msg = "获取信息失败"
  894. br.ErrMsg = "获取信息失败,Err:" + err.Error()
  895. return
  896. }
  897. resp.NickName = detail.NickName
  898. }
  899. if industrialManagementId > 0 {
  900. condition += ` AND m.industrial_management_id = ` + strconv.Itoa(industrialManagementId)
  901. }
  902. if articleId > 0 {
  903. detail, err := models.GetArticleDetailById(articleId)
  904. if err != nil {
  905. br.Msg = "获取信息失败"
  906. br.ErrMsg = "获取信息失败,Err:" + err.Error()
  907. return
  908. }
  909. condition += ` AND art.subject_ids = '` + detail.SubjectIds + `'`
  910. }
  911. total, err = models.GetWhichDepartmentCount(condition)
  912. if err != nil {
  913. br.Msg = "获取信息失败"
  914. br.ErrMsg = "获取帖子总数失败,Err:" + err.Error()
  915. return
  916. }
  917. page = paging.GetPaging(currentIndex, pageSize, total)
  918. condition += ` GROUP BY art.article_id ORDER BY art.publish_date DESC`
  919. list, err := models.IndustrialToArticleWhichDepartment(condition, pars, uid, startSize, pageSize)
  920. if err != nil {
  921. br.Msg = "获取失败"
  922. br.ErrMsg = "获取失败,Err:" + err.Error()
  923. return
  924. }
  925. for k, v := range list {
  926. if v.Readnum == 0 {
  927. list[k].IsRed = true
  928. }
  929. list[k].IsResearch = true
  930. subjectNames, err := models.GetSubjectNames(v.ArticleId)
  931. if err != nil {
  932. br.Msg = "获取失败" + strconv.Itoa(v.ArticleId)
  933. br.ErrMsg = "获取失败,Err:" + err.Error()
  934. return
  935. }
  936. var subjectNamesNew string
  937. if len(subjectNames) > 0 {
  938. slice := strings.Split(subjectNames, "/")
  939. for k3, v3 := range slice {
  940. if k3 < 4 {
  941. subjectNamesNew += v3 + "/"
  942. }
  943. }
  944. }
  945. industryName, err := models.GetIndustrialNames(v.ArticleId)
  946. if err != nil && err.Error() != utils.ErrNoRow() {
  947. br.Msg = "获取失败" + strconv.Itoa(v.ArticleId)
  948. br.ErrMsg = "获取失败,Err:" + err.Error()
  949. return
  950. }
  951. subjectNamesNew = strings.TrimRight(subjectNamesNew, "/")
  952. list[k].SubjectName = subjectNamesNew
  953. if subjectNamesNew != "" {
  954. list[k].IndustryName = industryName + "-" + subjectNamesNew
  955. } else {
  956. list[k].IndustryName = industryName
  957. }
  958. resp.IndustryName = industryName
  959. }
  960. resp.List = list
  961. resp.Paging = page
  962. br.Ret = 200
  963. br.Success = true
  964. br.Msg = "获取成功"
  965. br.Data = resp
  966. }
  967. // @Title 研选最新主题关键词文章列表接口
  968. // @Description 获取研选最新主题关键词文章列表接口
  969. // @Param PageSize query int true "每页数据条数"
  970. // @Param CurrentIndex query int true "当前页页码,从1开始"
  971. // @Param ArticleId query int true "文章id"
  972. // @Success 200 {object} models.ReportArticleWhichIndustrialRepList
  973. // @router /industry/reportListNew [get]
  974. func (this *ReportController) ReportListNew() {
  975. br := new(models.BaseResponse).Init()
  976. defer func() {
  977. this.Data["json"] = br
  978. this.ServeJSON()
  979. }()
  980. user := this.User
  981. if user == nil {
  982. br.Msg = "请重新登录"
  983. br.Ret = 408
  984. return
  985. }
  986. uid := user.UserId
  987. pageSize, _ := this.GetInt("PageSize")
  988. currentIndex, _ := this.GetInt("CurrentIndex")
  989. articleId, _ := this.GetInt("ArticleId")
  990. var condition string
  991. var startSize int
  992. if pageSize <= 0 {
  993. pageSize = utils.PageSize20
  994. }
  995. if currentIndex <= 0 {
  996. currentIndex = 1
  997. }
  998. startSize = paging.StartIndex(currentIndex, pageSize)
  999. var pars []interface{}
  1000. var total int
  1001. resp := new(models.ReportArticleWhichIndustrialRepList)
  1002. page := paging.GetPaging(currentIndex, pageSize, total)
  1003. userType, _, err := services.GetUserType(user.CompanyId)
  1004. if err != nil {
  1005. br.Msg = "获取信息失败"
  1006. br.ErrMsg = "获取用户信息失败,Err:" + err.Error()
  1007. return
  1008. }
  1009. if userType == 1 {
  1010. resp.Paging = page
  1011. br.Ret = 200
  1012. br.Success = true
  1013. br.Msg = "获取成功"
  1014. br.Data = resp
  1015. return
  1016. }
  1017. resp.HaveResearch = true
  1018. if articleId > 0 {
  1019. detail, err := models.GetArticleDetailById(articleId)
  1020. if err != nil {
  1021. br.Msg = "获取信息失败"
  1022. br.ErrMsg = "获取信息失败,Err:" + err.Error()
  1023. return
  1024. }
  1025. firstStr := strings.Index(detail.IndustrialAndSubjectIds, "—")
  1026. if firstStr == 0 {
  1027. condition += ` AND art.industrial_management_id = '` + strconv.Itoa(detail.IndustrialManagementId) + `'`
  1028. } else {
  1029. condition += ` AND art.industrial_and_subject_ids = '` + detail.IndustrialAndSubjectIds + `'`
  1030. }
  1031. }
  1032. total, err = models.GetWhichDepartmentCount(condition)
  1033. if err != nil {
  1034. br.Msg = "获取信息失败"
  1035. br.ErrMsg = "获取帖子总数失败,Err:" + err.Error()
  1036. return
  1037. }
  1038. page = paging.GetPaging(currentIndex, pageSize, total)
  1039. condition += ` GROUP BY art.article_id ORDER BY art.publish_date DESC`
  1040. list, err := models.IndustrialToArticleWhichDepartment(condition, pars, uid, startSize, pageSize)
  1041. if err != nil {
  1042. br.Msg = "获取失败"
  1043. br.ErrMsg = "获取失败,Err:" + err.Error()
  1044. return
  1045. }
  1046. for k, v := range list {
  1047. if v.Readnum == 0 {
  1048. list[k].IsRed = true
  1049. }
  1050. list[k].IsResearch = true
  1051. subjectNames, err := models.GetSubjectNames(v.ArticleId)
  1052. if err != nil {
  1053. br.Msg = "获取失败" + strconv.Itoa(v.ArticleId)
  1054. br.ErrMsg = "获取失败,Err:" + err.Error()
  1055. return
  1056. }
  1057. var subjectNamesNew string
  1058. if len(subjectNames) > 0 {
  1059. slice := strings.Split(subjectNames, "/")
  1060. for k3, v3 := range slice {
  1061. if k3 < 4 {
  1062. subjectNamesNew += v3 + "/"
  1063. }
  1064. }
  1065. }
  1066. industryName, err := models.GetIndustrialNames(v.ArticleId)
  1067. if err != nil && err.Error() != utils.ErrNoRow() {
  1068. br.Msg = "获取失败" + strconv.Itoa(v.ArticleId)
  1069. br.ErrMsg = "获取失败,Err:" + err.Error()
  1070. return
  1071. }
  1072. subjectNamesNew = strings.TrimRight(subjectNamesNew, "/")
  1073. list[k].SubjectName = subjectNamesNew
  1074. if subjectNamesNew != "" {
  1075. list[k].IndustryName = industryName + "-" + subjectNamesNew
  1076. } else {
  1077. list[k].IndustryName = industryName
  1078. }
  1079. resp.IndustryName = industryName
  1080. }
  1081. resp.List = list
  1082. resp.Paging = page
  1083. br.Ret = 200
  1084. br.Success = true
  1085. br.Msg = "获取成功"
  1086. br.Data = resp
  1087. }
  1088. // @Title 是否展示绝密内参
  1089. // @Description 获取是否展示绝密内参接口
  1090. // @Param request body models.IsShow true "type json string"
  1091. // @Success 200
  1092. // @router /isShow [get]
  1093. func (this *ReportController) IsShow() {
  1094. br := new(models.BaseResponse).Init()
  1095. defer func() {
  1096. this.Data["json"] = br
  1097. this.ServeJSON()
  1098. }()
  1099. user := this.User
  1100. if user == nil {
  1101. br.Msg = "请重新登录"
  1102. br.Ret = 408
  1103. return
  1104. }
  1105. var resp models.IsShow
  1106. mobile := user.Mobile
  1107. if mobile == "" {
  1108. br.Ret = 200
  1109. br.Success = true
  1110. br.Data = resp
  1111. return
  1112. }
  1113. total, _ := models.GetUserIsAdminCount(mobile)
  1114. if total > 0 {
  1115. resp.IsShow = true
  1116. }
  1117. br.Ret = 200
  1118. br.Success = true
  1119. br.Data = resp
  1120. }
  1121. // @Title 报告精选、本周研究汇总、上周纪要汇总列表
  1122. // @Description 获取报告精选、本周研究汇总、上周纪要汇总列表接口
  1123. // @Param PageSize query int true "每页数据条数"
  1124. // @Param CurrentIndex query int true "当前页页码,从1开始"
  1125. // @Param ReportType string query true "报告类型 ,1报告精选、2本周研究汇总、3上周纪要汇总"
  1126. // @Success 200 {object} models.CygxReportSelectionListPublicRep
  1127. // @router /reportList/byType [get]
  1128. func (this *ReportController) ReportListByType() {
  1129. br := new(models.BaseResponse).Init()
  1130. defer func() {
  1131. this.Data["json"] = br
  1132. this.ServeJSON()
  1133. }()
  1134. user := this.User
  1135. if user == nil {
  1136. br.Msg = "请重新登录"
  1137. br.Ret = 408
  1138. return
  1139. }
  1140. //uid := user.UserId
  1141. pageSize, _ := this.GetInt("PageSize")
  1142. currentIndex, _ := this.GetInt("CurrentIndex")
  1143. reportType := this.GetString("ReportType")
  1144. var condition string
  1145. var startSize int
  1146. if pageSize <= 0 {
  1147. pageSize = utils.PageSize20
  1148. }
  1149. if currentIndex <= 0 {
  1150. currentIndex = 1
  1151. }
  1152. startSize = paging.StartIndex(currentIndex, pageSize)
  1153. var pars []interface{}
  1154. var total int
  1155. resp := new(models.CygxReportSelectionListPublicRep)
  1156. page := paging.GetPaging(currentIndex, pageSize, total)
  1157. var tbdb string
  1158. if reportType == "1" {
  1159. tbdb = "cygx_report_selection"
  1160. } else if reportType == "2" {
  1161. tbdb = "cygx_research_summary"
  1162. } else if reportType == "3" {
  1163. tbdb = "cygx_minutes_summary"
  1164. } else {
  1165. br.Msg = "请选择报告类型"
  1166. return
  1167. }
  1168. fmt.Println(tbdb)
  1169. condition = ` AND publish_status = 1`
  1170. total, err := models.GetCygxReportSelectionPublic(condition, tbdb, pars)
  1171. if err != nil {
  1172. br.Msg = "获取信息失败"
  1173. br.ErrMsg = "获取帖子总数失败,Err:" + err.Error()
  1174. return
  1175. }
  1176. page = paging.GetPaging(currentIndex, pageSize, total)
  1177. list, err := models.GetReportSelectionListPublic(condition, tbdb, pars, startSize, pageSize)
  1178. if err != nil {
  1179. br.Msg = "获取失败"
  1180. br.ErrMsg = "获取失败,Err:" + err.Error()
  1181. return
  1182. }
  1183. for k, v := range list {
  1184. if reportType == "1" {
  1185. list[k].Abstract = v.UpdateDescription
  1186. }
  1187. list[k].PublishDate = utils.StrTimeToTime(v.PublishDate).Format("2006-01-02")
  1188. }
  1189. resp.List = list
  1190. resp.Paging = page
  1191. br.Ret = 200
  1192. br.Success = true
  1193. br.Msg = "获取成功"
  1194. br.Data = resp
  1195. }
  1196. // @Title 获取报告精选详情
  1197. // @Description 获取报告精选详情接口
  1198. // @Param ArticleId query int true "报告ID"
  1199. // @Success 200 {object} models.ReportSelectionLetailResp
  1200. // @router /reportSelection/detail [get]
  1201. func (this *ReportController) Detail() {
  1202. br := new(models.BaseResponse).Init()
  1203. defer func() {
  1204. this.Data["json"] = br
  1205. this.ServeJSON()
  1206. }()
  1207. user := this.User
  1208. if user == nil {
  1209. br.Msg = "请重新登录"
  1210. br.Ret = 408
  1211. return
  1212. }
  1213. uid := user.UserId
  1214. articleId, _ := this.GetInt("ArticleId")
  1215. if articleId < 0 {
  1216. br.Msg = "参数错误"
  1217. br.ErrMsg = "参数错误"
  1218. return
  1219. }
  1220. resp := new(models.ReportSelectionLetailResp)
  1221. detail, err := models.GetCygxReportSelectionInfoById(articleId)
  1222. if err != nil {
  1223. br.Msg = "获取信息失败"
  1224. br.ErrMsg = "报告不存在,Err:" + err.Error() + "articleId:" + strconv.Itoa(articleId)
  1225. return
  1226. }
  1227. detail.PublishDate = utils.StrTimeToTime(detail.PublishDate).Format("2006-01-02")
  1228. existMap := make(map[int]int)
  1229. var items []*models.ReportSelectionChartPermission
  1230. listLog, err := models.GetReportSelectionlogListAll(articleId)
  1231. if err != nil {
  1232. br.Msg = "获取失败"
  1233. br.ErrMsg = "获取子类信息失败,Err:" + err.Error()
  1234. return
  1235. }
  1236. //var itemLogs []*models.CygxReportSelectionLogDetail
  1237. for _, v := range listLog {
  1238. item := new(models.ReportSelectionChartPermission)
  1239. if existMap[v.ChartPermissionId] == 0 {
  1240. item.PermissionName = v.PermissionName + "领域深度调研和报告"
  1241. listSonLog, err := models.GetReportSelectionlogSonListAll(articleId, v.ChartPermissionId)
  1242. if err != nil && err.Error() != utils.ErrNoRow() {
  1243. br.Msg = "获取信息失败"
  1244. br.ErrMsg = "获取信息失败,Err:" + err.Error()
  1245. return
  1246. }
  1247. for k2, v2 := range listSonLog {
  1248. if v2.IndustrialManagementId != "" {
  1249. listIndustrial, err := models.GetIndustrialByIds(v2.IndustrialManagementId)
  1250. if err != nil && err.Error() != utils.ErrNoRow() {
  1251. br.Msg = "获取信息失败"
  1252. br.ErrMsg = "获取信息失败,Err:" + err.Error()
  1253. return
  1254. }
  1255. listSonLog[k2].List = listIndustrial
  1256. }
  1257. }
  1258. item.List = listSonLog
  1259. items = append(items, item)
  1260. //itemLogs = make([]*models.CygxReportSelectionLogDetail, 0)
  1261. }
  1262. existMap[v.ChartPermissionId] = v.ChartPermissionId
  1263. }
  1264. historyRecord := new(models.CygxReportHistoryRecord)
  1265. historyRecord.UserId = uid
  1266. historyRecord.ArticleId = articleId
  1267. historyRecord.CreateTime = time.Now()
  1268. historyRecord.Mobile = user.Mobile
  1269. historyRecord.Email = user.Email
  1270. historyRecord.CompanyId = user.CompanyId
  1271. historyRecord.CompanyName = user.CompanyName
  1272. historyRecord.ReportType = "bgjx"
  1273. go models.AddCygxReportHistoryRecord(historyRecord)
  1274. resp.List = items
  1275. resp.Detail = detail
  1276. br.Ret = 200
  1277. br.Success = true
  1278. br.Msg = "获取成功"
  1279. br.Data = resp
  1280. }
  1281. // @Title 获取本周研究汇总详情
  1282. // @Description 获取本周研究汇总详情接口
  1283. // @Param ArticleId query int true "报告ID"
  1284. // @Success 200 {object} models.ResearchSummaryLetailResp
  1285. // @router /researchSummary/detail [get]
  1286. func (this *ReportController) ResearchDetail() {
  1287. br := new(models.BaseResponse).Init()
  1288. defer func() {
  1289. this.Data["json"] = br
  1290. this.ServeJSON()
  1291. }()
  1292. user := this.User
  1293. if user == nil {
  1294. br.Msg = "请重新登录"
  1295. br.Ret = 408
  1296. return
  1297. }
  1298. uid := user.UserId
  1299. articleId, _ := this.GetInt("ArticleId")
  1300. if articleId < 0 {
  1301. br.Msg = "参数错误"
  1302. br.ErrMsg = "参数错误"
  1303. return
  1304. }
  1305. resp := new(models.ResearchSummaryLetailResp)
  1306. detail, err := models.GetCygxResearchSummaryInfoById(articleId)
  1307. if err != nil {
  1308. br.Msg = "获取信息失败"
  1309. br.ErrMsg = "报告不存在,Err:" + err.Error() + "articleId:" + strconv.Itoa(articleId)
  1310. return
  1311. }
  1312. detail.PublishDate = utils.StrTimeToTime(detail.PublishDate).Format("2006-01-02")
  1313. listFirst, err := models.GetResearchSummarylogListFirst(articleId)
  1314. if err != nil {
  1315. br.Msg = "获取失败"
  1316. br.ErrMsg = "获取子类信息失败,Err:" + err.Error()
  1317. return
  1318. }
  1319. for k, v := range listFirst {
  1320. listSecond, err := models.GetResearchSummarylogSonListSecond(articleId, v.Type)
  1321. if err != nil && err.Error() != utils.ErrNoRow() {
  1322. br.Msg = "获取信息失败"
  1323. br.ErrMsg = "获取信息失败,Err:" + err.Error()
  1324. return
  1325. }
  1326. for k2, v2 := range listSecond {
  1327. listThird, err := models.GetResearchSummarylogSonListThird(articleId, v2.ChartPermissionId, v.Type)
  1328. if err != nil && err.Error() != utils.ErrNoRow() {
  1329. br.Msg = "获取信息失败"
  1330. br.ErrMsg = "获取信息失败,Err:" + err.Error()
  1331. return
  1332. }
  1333. fmt.Println(listThird)
  1334. if len(listThird) > 0 {
  1335. listSecond[k2].List = listThird
  1336. }
  1337. }
  1338. if len(listSecond) > 0 {
  1339. listFirst[k].List = listSecond
  1340. }
  1341. //`description:"类型'SDBG深度报告片篇,’CYDYJY:产业调研纪要’,’SJDP事件点评,’BZCHJH:本周晨会精华’"`
  1342. if v.Type == "SDBG" {
  1343. listFirst[k].ListName = "深度报告"
  1344. } else if v.Type == "BZCHJH" {
  1345. listFirst[k].ListName = "本周晨会精华"
  1346. } else if v.Type == "CYDYJY" {
  1347. listFirst[k].ListName = "产业调研纪要"
  1348. } else {
  1349. listFirst[k].ListName = "事件点评"
  1350. }
  1351. }
  1352. historyRecord := new(models.CygxReportHistoryRecord)
  1353. historyRecord.UserId = uid
  1354. historyRecord.ArticleId = articleId
  1355. historyRecord.CreateTime = time.Now()
  1356. historyRecord.Mobile = user.Mobile
  1357. historyRecord.Email = user.Email
  1358. historyRecord.CompanyId = user.CompanyId
  1359. historyRecord.CompanyName = user.CompanyName
  1360. historyRecord.ReportType = "bzyjhz"
  1361. go models.AddCygxReportHistoryRecord(historyRecord)
  1362. resp.List = listFirst
  1363. resp.Detail = detail
  1364. br.Ret = 200
  1365. br.Success = true
  1366. br.Msg = "获取成功"
  1367. br.Data = resp
  1368. }
  1369. // @Title 上周纪要汇总内容详情
  1370. // @Description 获取上周纪要汇总内容详情接口
  1371. // @Param ArticleId query int true "报告ID"
  1372. // @Success 200 {object} models.MinutesSummaryLetailResp
  1373. // @router /minutesSummary/detail [get]
  1374. func (this *ReportController) MinutesDetail() {
  1375. br := new(models.BaseResponse).Init()
  1376. defer func() {
  1377. this.Data["json"] = br
  1378. this.ServeJSON()
  1379. }()
  1380. user := this.User
  1381. if user == nil {
  1382. br.Msg = "请重新登录"
  1383. br.Ret = 408
  1384. return
  1385. }
  1386. uid := user.UserId
  1387. articleId, _ := this.GetInt("ArticleId")
  1388. if articleId < 0 {
  1389. br.Msg = "参数错误"
  1390. br.ErrMsg = "参数错误"
  1391. return
  1392. }
  1393. resp := new(models.MinutesSummaryLetailResp)
  1394. detail, err := models.GetCygxMinutesSummaryInfoById(articleId)
  1395. if err != nil {
  1396. br.Msg = "获取信息失败"
  1397. br.ErrMsg = "报告不存在,Err:" + err.Error() + "articleId:" + strconv.Itoa(articleId)
  1398. return
  1399. }
  1400. detail.PublishDate = utils.StrTimeToTime(detail.PublishDate).Format("2006-01-02")
  1401. listLog, err := models.GetMinutesSummarylogListAll(articleId)
  1402. if err != nil {
  1403. br.Msg = "获取失败"
  1404. br.ErrMsg = "获取子类信息失败,Err:" + err.Error()
  1405. return
  1406. }
  1407. for k, v := range listLog {
  1408. listSonLog, err := models.GetMinutesSummarylogSonListAll(articleId, v.ChartPermissionId)
  1409. if err != nil && err.Error() != utils.ErrNoRow() {
  1410. br.Msg = "获取信息失败"
  1411. br.ErrMsg = "获取信息失败,Err:" + err.Error()
  1412. return
  1413. }
  1414. if len(listSonLog) > 0 {
  1415. listLog[k].List = listSonLog
  1416. }
  1417. }
  1418. historyRecord := new(models.CygxReportHistoryRecord)
  1419. historyRecord.UserId = uid
  1420. historyRecord.ArticleId = articleId
  1421. historyRecord.CreateTime = time.Now()
  1422. historyRecord.Mobile = user.Mobile
  1423. historyRecord.Email = user.Email
  1424. historyRecord.CompanyId = user.CompanyId
  1425. historyRecord.CompanyName = user.CompanyName
  1426. historyRecord.ReportType = "szjyhz"
  1427. go models.AddCygxReportHistoryRecord(historyRecord)
  1428. resp.List = listLog
  1429. resp.Detail = detail
  1430. br.Ret = 200
  1431. br.Success = true
  1432. br.Msg = "获取成功"
  1433. br.Data = resp
  1434. }