report_selection.go 36 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181
  1. package cygx
  2. import (
  3. "encoding/json"
  4. "fmt"
  5. "github.com/rdlucklib/rdluck_tools/paging"
  6. "github.com/tealeg/xlsx"
  7. "hongze/hz_crm_api/controllers"
  8. "hongze/hz_crm_api/models"
  9. "hongze/hz_crm_api/models/cygx"
  10. "hongze/hz_crm_api/models/system"
  11. "hongze/hz_crm_api/services"
  12. cygxService "hongze/hz_crm_api/services/cygx"
  13. "hongze/hz_crm_api/utils"
  14. "os"
  15. "path/filepath"
  16. "strconv"
  17. "strings"
  18. "time"
  19. )
  20. // 报告精选
  21. type ReportSelectionController struct {
  22. controllers.BaseAuthController
  23. }
  24. // @Title 报告精选内容的保存与发布
  25. // @Description 报告精选内容的保存与发布接口
  26. // @Param request body cygx.AddCygxReportSelection true "type json string"
  27. // @Success 200 操作成功
  28. // @router /reportSelection/PreserveAndPublish [post]
  29. func (this *ReportSelectionController) PreserveAndPublish() {
  30. br := new(models.BaseResponse).Init()
  31. defer func() {
  32. this.Data["json"] = br
  33. this.ServeJSON()
  34. }()
  35. AdminUser := this.SysUser
  36. if AdminUser == nil {
  37. br.Msg = "请登录"
  38. br.ErrMsg = "请登录,用户信息为空"
  39. br.Ret = 408
  40. return
  41. }
  42. var req cygx.AddCygxReportSelection
  43. err := json.Unmarshal(this.Ctx.Input.RequestBody, &req)
  44. if err != nil {
  45. br.Msg = "参数解析异常!"
  46. br.ErrMsg = "参数解析失败,Err:" + err.Error()
  47. return
  48. }
  49. if req.AddType != "1" && req.AddType != "2" {
  50. br.Msg = "请选择正确的添加方式!"
  51. return
  52. }
  53. if req.AddType == "2" && req.InheritPeriods == "" {
  54. br.Msg = "请选择继承第几期!"
  55. return
  56. }
  57. list := req.List
  58. listChartSummary := req.ListChartSummary
  59. reportLink := req.ReportLink
  60. if len(list) < 1 {
  61. br.Msg = "产业资源内容不可为空!"
  62. return
  63. }
  64. if len(listChartSummary) < 1 {
  65. br.Msg = "行业核心逻辑汇总不能为空!"
  66. return
  67. }
  68. if reportLink == "" {
  69. br.Msg = "详细报告链接,不能为空!"
  70. return
  71. }
  72. articleIdLink, err := cygxService.GetReportLinkToArticleid(reportLink)
  73. if err != nil {
  74. br.Msg = "操作失败"
  75. br.ErrMsg = "解析报告链接ID失败,Err:" + err.Error()
  76. return
  77. }
  78. if articleIdLink == 0 {
  79. br.Msg = "详细报告链接格式错误"
  80. br.ErrMsg = "解析报告链接ID失败,报告链接:" + reportLink
  81. return
  82. }
  83. var items []*cygx.CygxReportSelectionLog
  84. var itemsChart []*cygx.CygxReportSelectionChartLog
  85. condition := ` AND have_publish = 1 `
  86. var pars []interface{}
  87. total, err := cygx.GetCygxReportSelection(condition, pars)
  88. if err != nil {
  89. br.Msg = "获取失败"
  90. br.ErrMsg = "获取失败,Err:" + err.Error()
  91. return
  92. }
  93. itemCrs := new(cygx.CygxReportSelection)
  94. itemCrs.AdminId = AdminUser.AdminId
  95. itemCrs.AdminName = AdminUser.RealName
  96. itemCrs.Title = req.Title
  97. itemCrs.Department = req.Department
  98. itemCrs.AddType = req.AddType
  99. itemCrs.PublishStatus = req.DoType
  100. if req.DoType == 1 {
  101. itemCrs.HavePublish = 1
  102. itemCrs.Periods = strconv.Itoa(total + 1)
  103. }
  104. itemCrs.PublishDate = utils.StrTimeToTime(req.PublishDate + " 00:00:00")
  105. itemCrs.CreateTime = time.Now()
  106. itemCrs.LastUpdatedTime = time.Now()
  107. itemCrs.InheritPeriods = req.InheritPeriods
  108. itemCrs.ProductDescription = req.ProductDescription
  109. itemCrs.UpdateDescription = req.UpdateDescription
  110. itemCrs.ReportLink = req.ReportLink
  111. itemCrs.FocusOn = cygxService.GetRichtext(req.FocusOn)
  112. itemCrs.MarketStrategy = cygxService.GetRichtext(req.MarketStrategy)
  113. for _, v := range list {
  114. item := new(cygx.CygxReportSelectionLog)
  115. item.ChartPermissionId = v.ChartPermissionId
  116. item.CreateTime = time.Now()
  117. item.Body = cygxService.GetRichtext(v.Body)
  118. item.IndustrialSubjectId = v.IndustrialSubjectId
  119. item.SubjectName = v.IndustrialSubjectName
  120. item.IndustrialManagementId = v.IndustrialManagementId
  121. item.IndustrialManagementNames = v.IndustrialManagementName
  122. if v.IndustrialManagementNames != "" {
  123. item.IndustrialManagementNames = v.IndustrialManagementNames
  124. }
  125. item.ThirdId = v.ThirdId
  126. item.ThirdName = v.ThirdName
  127. item.OverviewArticleId = v.OverviewArticleId
  128. item.IsNew = v.IsNew
  129. item.IsShowOverviewArticle = v.IsShowOverviewArticle
  130. if len(v.CompanyLabel) > 0 {
  131. item.CompanyLabel = cygxService.ArticleComPanyLabelToStr(v.CompanyLabel)
  132. }
  133. items = append(items, item)
  134. }
  135. for _, v := range listChartSummary {
  136. item := new(cygx.CygxReportSelectionChartLog)
  137. item.ChartPermissionId = v.ChartPermissionId
  138. item.CreateTime = time.Now()
  139. item.Body = cygxService.GetRichtext(v.BodyChartSummary)
  140. itemsChart = append(itemsChart, item)
  141. }
  142. if req.ArticleId == 0 {
  143. articleId, err := cygx.AddCygxReportSelectionOrm(itemCrs, items, itemsChart)
  144. if err != nil {
  145. br.Msg = "操作失败"
  146. br.ErrMsg = "发布失败,Err:" + err.Error()
  147. return
  148. }
  149. req.ArticleId = int(articleId)
  150. } else {
  151. detail, err := cygx.GetCygxReportSelectionInfoById(req.ArticleId)
  152. if err != nil {
  153. br.Msg = "内容不存在"
  154. br.ErrMsg = "操作失败,Err:" + err.Error()
  155. return
  156. }
  157. if itemCrs.PublishStatus == 0 {
  158. itemCrs.PublishStatus = detail.PublishStatus
  159. itemCrs.AdminId = detail.AdminId
  160. itemCrs.AdminName = detail.AdminName
  161. }
  162. if detail.HavePublish == 1 {
  163. itemCrs.Periods = detail.Periods
  164. itemCrs.HavePublish = detail.HavePublish
  165. }
  166. itemCrs.ArticleId = req.ArticleId
  167. _, err = cygx.UpdateCygxReportSelectionOrm(itemCrs, items, itemsChart)
  168. if err != nil {
  169. br.Msg = "操作失败"
  170. br.ErrMsg = "发布失败,Err:" + err.Error()
  171. return
  172. }
  173. }
  174. //if req.DoType == 1 {
  175. //cygxService.DoThisWeekLastWeekWxTemplateMsg(itemCrs.Title, itemCrs.PublishDate.Format(utils.FormatDateTime), itemCrs.ProductDescription, req.ArticleId, 1)
  176. //}
  177. //生成音频文件
  178. //articleId := req.ArticleId
  179. //existMap := make(map[int]int)
  180. //var content string
  181. //content = "产品说明" + req.ProductDescription + "变更说明" + req.UpdateDescription + "近期重点关注方向" + req.FocusOn
  182. //listLog, err := cygx.GetReportSelectionlogListAll(articleId)
  183. //if err != nil {
  184. // br.Msg = "获取失败"
  185. // br.ErrMsg = "获取失败,Err:" + err.Error()
  186. // return
  187. //}
  188. //for _, v := range listLog {
  189. // if existMap[v.ChartPermissionId] == 0 {
  190. // content += v.PermissionName + "领域深度调研和报告"
  191. // listSonLog, err := cygx.GetReportSelectionlogSonListAll(articleId, v.ChartPermissionId)
  192. // if err != nil && err.Error() != utils.ErrNoRow() {
  193. // br.Msg = "获取信息失败"
  194. // br.ErrMsg = "获取信息失败,Err:" + err.Error()
  195. // return
  196. // }
  197. // if len(listSonLog) > 0 {
  198. // for _, v2 := range listSonLog {
  199. // content += v2.SubjectName + v2.Body
  200. // }
  201. // }
  202. // }
  203. // existMap[v.ChartPermissionId] = v.ChartPermissionId
  204. //}
  205. go cygxService.UpdateReportSelectionResourceData(req.ArticleId) //首页最新页面数据逻辑处理 V11.1.1
  206. go cygxService.UpdateReportSelectionSubjectNameList() //获取报告精选最新一期标的名称
  207. br.Ret = 200
  208. br.Success = true
  209. br.Msg = "操作成功"
  210. br.IsAddLog = true
  211. }
  212. // @Title 删除报告精选内容
  213. // @Description 删除报告精选内容接口
  214. // @Param request body cygx.ResearchSummaryId true "type json string"
  215. // @Success Ret=200
  216. // @router /reportSelection/delete [post]
  217. func (this *ReportSelectionController) Delete() {
  218. br := new(models.BaseResponse).Init()
  219. defer func() {
  220. this.Data["json"] = br
  221. this.ServeJSON()
  222. }()
  223. AdminUser := this.SysUser
  224. if AdminUser == nil {
  225. br.Msg = "请登录"
  226. br.ErrMsg = "请登录,SysUser Is Empty"
  227. br.Ret = 408
  228. return
  229. }
  230. var req cygx.ResearchSummaryId
  231. err := json.Unmarshal(this.Ctx.Input.RequestBody, &req)
  232. if err != nil {
  233. br.Msg = "参数解析异常!"
  234. br.ErrMsg = "参数解析失败,Err:" + err.Error()
  235. return
  236. }
  237. articleId := req.ArticleId
  238. detail, err := cygx.GetCygxReportSelectionInfoById(articleId)
  239. if err != nil {
  240. br.Msg = "内容不存在"
  241. br.ErrMsg = "操作失败,Err:" + err.Error()
  242. return
  243. }
  244. if detail.HavePublish != 0 {
  245. br.Msg = "删除失败"
  246. br.ErrMsg = "已经存在期数无法删除"
  247. return
  248. }
  249. err = cygx.DeleteCygxReportSelection(articleId)
  250. if err != nil {
  251. br.Msg = "删除信息失败"
  252. br.ErrMsg = "删除信息失败,Err:" + err.Error()
  253. return
  254. }
  255. br.Ret = 200
  256. br.Success = true
  257. br.Msg = "已删除"
  258. br.IsAddLog = true
  259. }
  260. // @Title 报告精选内容详情
  261. // @Description 报告精选内容详情接口
  262. // @Param ArticleId query int true "报告Id"
  263. // @Param Periods query string true "期数Id"
  264. // @Success Ret=200 {object} cygx.DetailCygxReportSelectionRep
  265. // @router /reportSelection/detail [get]
  266. func (this *ReportSelectionController) Detail() {
  267. br := new(models.BaseResponse).Init()
  268. defer func() {
  269. this.Data["json"] = br
  270. this.ServeJSON()
  271. }()
  272. AdminUser := this.SysUser
  273. if AdminUser == nil {
  274. br.Msg = "请登录"
  275. br.ErrMsg = "请登录,用户信息为空"
  276. br.Ret = 408
  277. return
  278. }
  279. var errArt error
  280. detail := new(cygx.CygxReportSelectionRep)
  281. articleId, _ := this.GetInt("ArticleId")
  282. periods := this.GetString("Periods")
  283. if articleId > 0 && periods == "" {
  284. detail, errArt = cygx.GetCygxReportSelectionInfoById(articleId)
  285. if errArt != nil {
  286. br.Msg = "内容不存在"
  287. br.ErrMsg = "内容不存在,Err:" + errArt.Error()
  288. return
  289. }
  290. } else {
  291. detail, errArt = cygx.GetCygxReportSelectionInfoByPeriods(periods)
  292. if errArt != nil {
  293. br.Msg = "内容不存在"
  294. br.ErrMsg = "内容不存在通过期数获取详情错误,Err:" + errArt.Error() + "期数:" + periods
  295. return
  296. }
  297. }
  298. articleId = detail.ArticleId
  299. resp := new(cygx.DetailCygxReportSelectionRep)
  300. resp.ArticleId = detail.ArticleId
  301. resp.AddType = detail.AddType
  302. resp.InheritPeriods = detail.InheritPeriods
  303. resp.Title = detail.Title
  304. resp.Department = detail.Department
  305. resp.PublishStatus = detail.PublishStatus
  306. resp.PublishDate = utils.StrTimeToTime(detail.PublishDate).Format("2006-01-02")
  307. resp.ProductDescription = detail.ProductDescription
  308. resp.UpdateDescription = detail.UpdateDescription
  309. resp.FocusOn = detail.FocusOn
  310. resp.MarketStrategy = detail.MarketStrategy
  311. resp.ReportLink = detail.ReportLink
  312. if detail.InheritPeriods != "" {
  313. resp.InheritPeriodsName = "第" + detail.InheritPeriods + "期"
  314. }
  315. var condition string
  316. condition = ` AND chart_permission_id IN (19,20,21,22) `
  317. listMore, err := cygx.GetChartPermissionDetail(condition)
  318. var list []*cygx.CygxReportSelectionChart
  319. //排序方式修改
  320. permissionNameList := []cygx.CygxChartPermissionName{}
  321. //获取行业核心逻辑汇总
  322. listChartLog, err := cygx.GetCygxReportSelectionChartLogRepList(articleId)
  323. if err != nil {
  324. br.Msg = "获取失败"
  325. br.ErrMsg = "获取失败,Err:" + err.Error()
  326. return
  327. }
  328. permissionNameMap, err := services.GetPermissionNameMap()
  329. if err != nil {
  330. br.Msg = "获取失败"
  331. br.ErrMsg = "获取失败 GetPermissionNameMap,Err:" + err.Error()
  332. return
  333. }
  334. mapChartLog := make(map[string]string)
  335. for _, v := range listChartLog {
  336. v.ChartPermissionName = permissionNameMap[v.ChartPermissionId]
  337. mapChartLog[v.ChartPermissionName] = v.BodyChartSummary
  338. permissionNameList = append(permissionNameList, cygx.CygxChartPermissionName{v.ChartPermissionName})
  339. }
  340. for _, v := range permissionNameList {
  341. for _, v2 := range listMore {
  342. v2.ChartPermissionName = permissionNameMap[v2.ChartPermissionId]
  343. if v.ChartPermissionName == v2.ChartPermissionName {
  344. item := new(cygx.CygxReportSelectionChart)
  345. item.ChartPermissionName = v2.ChartPermissionName
  346. item.ChartPermissionId = v2.ChartPermissionId
  347. //item.List = make([]string, 0)
  348. list = append(list, item)
  349. }
  350. }
  351. }
  352. //获取关联的文章信息
  353. mapArticle := make(map[int]string)
  354. listSelectionLog, err := cygx.GetReportSelectionlogListAll(articleId)
  355. if err != nil {
  356. br.Msg = "获取失败"
  357. br.ErrMsg = "GetReportSelectionlogListAll,Err:" + err.Error()
  358. return
  359. }
  360. articleStockMap, _ := cygxService.GetArticleStockMap()
  361. var overviewArticleIdArr []int
  362. for _, v := range listSelectionLog {
  363. if v.OverviewArticleId > 0 {
  364. overviewArticleIdArr = append(overviewArticleIdArr, v.OverviewArticleId)
  365. }
  366. }
  367. for _, v := range articleStockMap {
  368. overviewArticleIdArr = append(overviewArticleIdArr, v)
  369. }
  370. lenActivityIds := len(overviewArticleIdArr)
  371. if lenActivityIds > 0 {
  372. var pars []interface{}
  373. conditionArticle := ` AND article_id IN (` + utils.GetOrmInReplace(lenActivityIds) + `) `
  374. pars = append(pars, overviewArticleIdArr)
  375. articleList, err := cygx.GetCygxArticleList(conditionArticle, pars, 0, lenActivityIds)
  376. if err != nil {
  377. br.Msg = "获取失败"
  378. br.ErrMsg = "GetCygxArticleList,Err:" + err.Error()
  379. return
  380. }
  381. for _, v := range articleList {
  382. mapArticle[v.ArticleId] = v.Title
  383. }
  384. }
  385. //获取标的关联的日志
  386. for k, v := range list {
  387. listSon, err := cygx.GetCygxReportSelectionLogRepListSon(articleId, v.ChartPermissionId)
  388. if err != nil {
  389. br.Msg = "获取失败"
  390. br.ErrMsg = "获取子分类失败,Err:" + err.Error()
  391. return
  392. }
  393. for kIndustrial, vIndustrial := range listSon {
  394. var industrialNames string
  395. //如果报告精选关联的产业被删除了 则做以下处理
  396. if vIndustrial.IndustrialSubjectName == "" {
  397. industrialNames = vIndustrial.IndustrialManagementNames
  398. } else {
  399. industrialNames, err = cygx.GetindustrialManagementNamesBySubjectName(vIndustrial.IndustrialSubjectName, vIndustrial.ChartPermissionId)
  400. if err != nil {
  401. br.Msg = "获取失败!"
  402. br.ErrMsg = "获取删除删除之后的产业失败,Err:" + err.Error() + vIndustrial.IndustrialSubjectId
  403. return
  404. }
  405. }
  406. if vIndustrial.Label != "" {
  407. vIndustrial.CompanyLabel = strings.Split(vIndustrial.Label, "{|}")
  408. }
  409. listSon[kIndustrial].IndustrialManagementName = industrialNames
  410. listSon[kIndustrial].IndustrialManagementNames = industrialNames
  411. listSon[kIndustrial].OverviewArticleId = articleStockMap[vIndustrial.IndustrialSubjectName]
  412. listSon[kIndustrial].OverviewArticleTitle = mapArticle[listSon[kIndustrial].OverviewArticleId]
  413. if periods != "" {
  414. listSon[kIndustrial].IsNew = 0
  415. }
  416. if vIndustrial.ThirdName != "" {
  417. listSon[kIndustrial].ShowName = vIndustrial.ThirdName
  418. } else if vIndustrial.SubjectName == "" {
  419. listSon[kIndustrial].ShowName = vIndustrial.IndustrialManagementNames
  420. } else {
  421. listSon[kIndustrial].ShowName = vIndustrial.SubjectName
  422. }
  423. }
  424. list[k].List = listSon
  425. list[k].BodyChartSummary = mapChartLog[v.ChartPermissionName]
  426. }
  427. resp.List = list
  428. br.Ret = 200
  429. br.Success = true
  430. br.Msg = "获取成功"
  431. br.Data = resp
  432. }
  433. // @Title 报告精选列表
  434. // @Description 获取报告精选列表接口
  435. // @Param PageSize query int true "每页数据条数"
  436. // @Param CurrentIndex query int true "当前页页码,从1开始"
  437. // @Param PublishStatus query int false "发布状态 ,1未发布,1已发布,传2查询所有"
  438. // @Param StartDate query string false "开始时间 ,列如2021-03-06 "
  439. // @Param EndDate query string false "结束时间,列如2021-03-06 "
  440. // @Success 200 {object} cygx.CygxReportSelectionListRep
  441. // @router /reportSelection/list [get]
  442. func (this *ReportSelectionController) List() {
  443. br := new(models.BaseResponse).Init()
  444. defer func() {
  445. this.Data["json"] = br
  446. this.ServeJSON()
  447. }()
  448. AdminUser := this.SysUser
  449. if AdminUser == nil {
  450. br.Msg = "请登录"
  451. br.ErrMsg = "请登录,SysUser Is Empty"
  452. return
  453. }
  454. pageSize, _ := this.GetInt("PageSize")
  455. currentIndex, _ := this.GetInt("CurrentIndex")
  456. publishStatus, _ := this.GetInt("PublishStatus")
  457. startDate := this.GetString("StartDate")
  458. endDate := this.GetString("EndDate")
  459. var startSize int
  460. if pageSize <= 0 {
  461. pageSize = utils.PageSize20
  462. }
  463. if currentIndex <= 0 {
  464. currentIndex = 1
  465. }
  466. startSize = utils.StartIndex(currentIndex, pageSize)
  467. var condition string
  468. var pars []interface{}
  469. if startDate != "" {
  470. condition += ` AND rs.publish_date >= ` + "'" + startDate + " 00:00:00'"
  471. }
  472. if endDate != "" {
  473. condition += ` AND rs.publish_date <= ` + "'" + endDate + " 23:59:59'"
  474. }
  475. if publishStatus == 0 || publishStatus == 1 {
  476. condition += ` AND rs.publish_status = ` + strconv.Itoa(publishStatus)
  477. }
  478. total, err := cygx.GetCygxReportSelection(condition, pars)
  479. if err != nil {
  480. br.Msg = "获取失败"
  481. br.ErrMsg = "获取失败,Err:" + err.Error()
  482. return
  483. }
  484. list, err := cygx.GetReportSelectionList(condition, pars, startSize, pageSize)
  485. if err != nil {
  486. br.Msg = "获取失败"
  487. br.ErrMsg = "获取失败,Err:" + err.Error()
  488. return
  489. }
  490. for k, v := range list {
  491. if v.Periods != "" && v.Periods != "0" {
  492. list[k].Periods = "第" + v.Periods + "期"
  493. } else {
  494. list[k].Periods = ""
  495. }
  496. list[k].PublishDate = utils.StrTimeToTime(v.PublishDate).Format("2006-01-02")
  497. }
  498. page := paging.GetPaging(currentIndex, pageSize, total)
  499. resp := new(cygx.CygxReportSelectionListRep)
  500. resp.List = list
  501. resp.Paging = page
  502. br.Ret = 200
  503. br.Success = true
  504. br.Msg = "获取成功"
  505. br.Data = resp
  506. }
  507. // @Title 报告精选的发布与取消发布
  508. // @Description 报告精选的发布与取消发布接口
  509. // @Param request body cygx.ResearchSummaryId true "type json string"
  510. // @Success 200 操作成功
  511. // @router /reportSelection/PublishAndCancel [post]
  512. func (this *ReportSelectionController) PublishAndCancel() {
  513. br := new(models.BaseResponse).Init()
  514. defer func() {
  515. this.Data["json"] = br
  516. this.ServeJSON()
  517. }()
  518. AdminUser := this.SysUser
  519. if AdminUser == nil {
  520. br.Msg = "请登录"
  521. br.ErrMsg = "请登录,用户信息为空"
  522. br.Ret = 408
  523. return
  524. }
  525. var req cygx.ResearchSummaryId
  526. err := json.Unmarshal(this.Ctx.Input.RequestBody, &req)
  527. if err != nil {
  528. br.Msg = "参数解析异常!"
  529. br.ErrMsg = "参数解析失败,Err:" + err.Error()
  530. return
  531. }
  532. articleId := req.ArticleId
  533. detail, err := cygx.GetCygxReportSelectionInfoById(articleId)
  534. if err != nil {
  535. br.Msg = "内容不存在"
  536. br.ErrMsg = "操作失败,Err:" + err.Error()
  537. return
  538. }
  539. item := new(cygx.CygxReportSelectionRep)
  540. item.ArticleId = articleId
  541. if detail.PublishStatus == 0 {
  542. item.PublishStatus = 1
  543. item.AdminId = AdminUser.AdminId
  544. item.AdminName = AdminUser.RealName
  545. //cygxService.DoThisWeekLastWeekWxTemplateMsg(detail.Title, detail.PublishDate, detail.ProductDescription, req.ArticleId, 1)
  546. } else {
  547. item.AdminId = detail.AdminId
  548. item.AdminName = detail.AdminName
  549. item.PublishStatus = 0
  550. }
  551. if detail.HavePublish == 0 {
  552. condition := ` AND have_publish = 1 `
  553. var pars []interface{}
  554. total, err := cygx.GetCygxReportSelection(condition, pars)
  555. if err != nil {
  556. br.Msg = "获取失败"
  557. br.ErrMsg = "获取失败,Err:" + err.Error()
  558. return
  559. }
  560. item.Periods = strconv.Itoa(total + 1)
  561. } else {
  562. item.Periods = detail.Periods
  563. }
  564. err = cygx.ReportSelectionPublishAndCancel(item)
  565. if err != nil {
  566. br.Msg = "操作失败"
  567. br.ErrMsg = "操作失败,Err:" + err.Error()
  568. return
  569. }
  570. go cygxService.UpdateReportSelectionResourceData(articleId) //首页最新页面数据逻辑处理 V11.1.1
  571. go cygxService.UpdateReportSelectionSubjectNameList() //获取报告精选最新一期标的名称
  572. br.Ret = 200
  573. br.Success = true
  574. br.Msg = "操作成功"
  575. br.IsAddLog = true
  576. }
  577. // @Title 报告精选初始模板
  578. // @Description 报告精选初始模板接口
  579. // @Success Ret=200 {object} cygx.CygxRSlChartPermissionIcoTmpList
  580. // @router /reportSelection/detailTemplate [get]
  581. func (this *ReportSelectionController) DetailTemplate() {
  582. br := new(models.BaseResponse).Init()
  583. defer func() {
  584. this.Data["json"] = br
  585. this.ServeJSON()
  586. }()
  587. AdminUser := this.SysUser
  588. if AdminUser == nil {
  589. br.Msg = "请登录"
  590. br.ErrMsg = "请登录,用户信息为空"
  591. br.Ret = 408
  592. return
  593. }
  594. resp := new(cygx.CygxRSlChartPermissionIcoTmpList)
  595. var condition string
  596. var list []*cygx.CygxRSlChartPermissionIcoTmp
  597. condition = ` AND chart_permission_id IN (19,20,21,22) `
  598. listMore, err := cygx.GetChartPermissionIcoNew(condition)
  599. if err != nil {
  600. br.Msg = "获取失败"
  601. br.ErrMsg = "获取失败,Err:" + err.Error()
  602. return
  603. }
  604. //排序方式修改
  605. permissionNameList := []cygx.CygxChartPermissionName{{ChartPermissionName: "消费"}, {ChartPermissionName: "医药"}, {ChartPermissionName: "科技"}, {ChartPermissionName: "智造"}}
  606. for _, v := range permissionNameList {
  607. for _, v2 := range listMore {
  608. if v.ChartPermissionName == v2.ChartPermissionName {
  609. item := new(cygx.CygxRSlChartPermissionIcoTmp)
  610. item.ChartPermissionName = v2.ChartPermissionName
  611. item.ChartPermissionSort = v2.ChartPermissionSort
  612. item.ChartPermissionId = v2.ChartPermissionId
  613. item.IcoLink = v2.IcoLink
  614. item.List = make([]string, 0)
  615. list = append(list, item)
  616. }
  617. }
  618. }
  619. resp.List = list
  620. br.Ret = 200
  621. br.Success = true
  622. br.Msg = "获取成功"
  623. br.Data = resp
  624. }
  625. // @Title 期数列表
  626. // @Description 获取期数列表接口
  627. // @Param PageSize query int true "每页数据条数"
  628. // @Param CurrentIndex query int true "当前页页码,从1开始"
  629. // @Success 200 {object} cygx.CygxReportSelectionPeriodsListRep
  630. // @router /reportSelection/listPeriods [get]
  631. func (this *ReportSelectionController) ListPeriods() {
  632. br := new(models.BaseResponse).Init()
  633. defer func() {
  634. this.Data["json"] = br
  635. this.ServeJSON()
  636. }()
  637. AdminUser := this.SysUser
  638. if AdminUser == nil {
  639. br.Msg = "请登录"
  640. br.ErrMsg = "请登录,SysUser Is Empty"
  641. return
  642. }
  643. pageSize, _ := this.GetInt("PageSize")
  644. currentIndex, _ := this.GetInt("CurrentIndex")
  645. var startSize int
  646. if pageSize <= 0 {
  647. pageSize = 1000
  648. }
  649. if currentIndex <= 0 {
  650. currentIndex = 1
  651. }
  652. startSize = utils.StartIndex(currentIndex, pageSize)
  653. var condition string
  654. var pars []interface{}
  655. total, err := cygx.GetCygxReportSelection(condition, pars)
  656. if err != nil {
  657. br.Msg = "获取失败"
  658. br.ErrMsg = "获取失败,Err:" + err.Error()
  659. return
  660. }
  661. condition += ` GROUP BY periods `
  662. list, err := cygx.GetReportSelectionListPeriods(condition, pars, startSize, pageSize)
  663. if err != nil {
  664. br.Msg = "获取失败"
  665. br.ErrMsg = "获取失败,Err:" + err.Error()
  666. return
  667. }
  668. for k, v := range list {
  669. if v.Periods != "" {
  670. list[k].InheritPeriodsName = "第" + v.Periods + "期"
  671. }
  672. }
  673. page := paging.GetPaging(currentIndex, pageSize, total)
  674. resp := new(cygx.CygxReportSelectionPeriodsListRep)
  675. resp.List = list
  676. resp.Paging = page
  677. br.Ret = 200
  678. br.Success = true
  679. br.Msg = "获取成功"
  680. br.Data = resp
  681. }
  682. // @Title 阅读明细下载
  683. // @Description 获取阅读明细下载接口
  684. // @Param ArticleId query int true "文章ID"
  685. // @Param Source query int true "来源 1:报告精选、2:路演精华、3:本周研究汇总、4:上周纪要汇总"
  686. // @Success 200 导出成功
  687. // @router /reportSelection/articleHistoryExport [get]
  688. func (this *ReportSelectionController) ArticleHistoryExport() {
  689. br := new(models.BaseResponse).Init()
  690. defer func() {
  691. this.Data["json"] = br
  692. this.ServeJSON()
  693. }()
  694. AdminUser := this.SysUser
  695. if AdminUser == nil {
  696. br.Msg = "请登录"
  697. br.ErrMsg = "请登录,SysUser Is Empty"
  698. return
  699. }
  700. articleId, _ := this.GetInt("ArticleId")
  701. source, _ := this.GetInt("Source")
  702. resp := new(cygx.CanDownload)
  703. adminInfo, errAdmin := system.GetSysUserById(AdminUser.AdminId)
  704. if errAdmin != nil {
  705. br.Msg = "获取失败"
  706. br.ErrMsg = "获取失败,Err:" + errAdmin.Error()
  707. return
  708. }
  709. if adminInfo.Role == "admin" || adminInfo.Role == "researcher" || adminInfo.RealName == "汪洋" {
  710. resp.IsCanDownload = true
  711. }
  712. var condition string
  713. if resp.IsCanDownload == false {
  714. //权益申请销售只能看到自己名下的客户的申请
  715. companyIds, err := cygxService.GetAdminLookUserCompanyIds(AdminUser)
  716. if err != nil {
  717. br.Msg = "获取失败"
  718. br.ErrMsg = "获取失败,GetAdminLookUserCompanyIds Err:" + err.Error()
  719. return
  720. }
  721. var companyIdstr []string
  722. for _, v := range companyIds {
  723. companyIdstr = append(companyIdstr, strconv.Itoa(v))
  724. }
  725. condition = ` AND h.company_id IN (` + strings.Join(companyIdstr, ",") + `)`
  726. }
  727. condition += ` AND h.company_id != ` + strconv.Itoa(utils.HZ_COMPANY_ID) // 过滤弘则来源
  728. var list []*cygx.ArticleHistoryRep
  729. var err error
  730. var table string
  731. //"来源 1:报告精选、2:路演精华、3:本周研究汇总、4:上周纪要汇总"
  732. //报告类型,bgjx:报告精选、bzyjhz:本周研究汇总、szjyhz:上周纪要汇总
  733. if source != 2 {
  734. if source == 1 {
  735. table = "cygx_report_selection"
  736. condition += ` AND h.report_type = 'bgjx'`
  737. } else if source == 3 {
  738. table = "cygx_research_summary"
  739. condition += ` AND h.report_type = 'bzyjhz'`
  740. } else {
  741. table = "cygx_minutes_summary"
  742. condition += ` AND h.report_type = 'szjyhz'`
  743. }
  744. list, err = cygx.GetReportSelectionHistoryList(articleId, condition)
  745. if err != nil {
  746. br.Msg = "获取失败"
  747. br.ErrMsg = "获取失败,Err:" + err.Error()
  748. return
  749. }
  750. } else {
  751. table = "cygx_article"
  752. list, err = cygx.GetArticleHistoryListOld(articleId, condition)
  753. if err != nil {
  754. br.Msg = "获取失败"
  755. br.ErrMsg = "获取失败,Err:" + err.Error()
  756. return
  757. }
  758. }
  759. //根据不同类型获取不同报告的详情
  760. articleInfo, err := cygx.GetArticleInfoByIdAndTable(table, articleId)
  761. if err != nil {
  762. br.Msg = "获取失败"
  763. br.ErrMsg = "获取报告详情失败,Err:" + err.Error()
  764. return
  765. }
  766. fmt.Println(articleInfo)
  767. //
  768. //创建excel
  769. dir, err := os.Executable()
  770. exPath := filepath.Dir(dir)
  771. downLoadnFilePath := exPath + "/" + time.Now().Format(utils.FormatDateTimeUnSpace) + ".xlsx"
  772. xlsxFile := xlsx.NewFile()
  773. if err != nil {
  774. br.Msg = "生成文件失败"
  775. br.ErrMsg = "生成文件失败"
  776. return
  777. }
  778. style := xlsx.NewStyle()
  779. alignment := xlsx.Alignment{
  780. Horizontal: "center",
  781. Vertical: "center",
  782. WrapText: true,
  783. }
  784. style.Alignment = alignment
  785. style.ApplyAlignment = true
  786. sheet, err := xlsxFile.AddSheet("名单")
  787. if err != nil {
  788. br.Msg = "新增Sheet失败"
  789. br.ErrMsg = "新增Sheet失败,Err:" + err.Error()
  790. return
  791. }
  792. //标头
  793. rowTitle := sheet.AddRow()
  794. cellA := rowTitle.AddCell()
  795. cellA.Value = "姓名"
  796. cellB := rowTitle.AddCell()
  797. cellB.Value = "手机号"
  798. cellC := rowTitle.AddCell()
  799. cellC.Value = "公司名称"
  800. cellD := rowTitle.AddCell()
  801. cellD.Value = "所属权益销售"
  802. cellF := rowTitle.AddCell()
  803. cellF.Value = "阅读时间"
  804. for _, item := range list {
  805. row := sheet.AddRow()
  806. cellA := row.AddCell()
  807. cellA.Value = item.RealName
  808. cellB := row.AddCell()
  809. cellB.Value = item.Mobile
  810. cellC := row.AddCell()
  811. cellC.Value = item.CompanyName
  812. cellD := row.AddCell()
  813. cellD.Value = item.SellerName
  814. cellF := row.AddCell()
  815. cellF.Value = item.CreateTime
  816. }
  817. err = xlsxFile.Save(downLoadnFilePath)
  818. if err != nil {
  819. br.Msg = "保存文件失败"
  820. br.ErrMsg = "保存文件失败"
  821. return
  822. }
  823. //randStr := time.Now().Format(utils.FormatDateTimeUnSpace)
  824. downloadFileName := articleInfo.Title + ".xlsx"
  825. this.Ctx.Output.Download(downLoadnFilePath, downloadFileName)
  826. defer func() {
  827. //os.Remove(downLoadnFilePath)
  828. }()
  829. br.Success = true
  830. br.Ret = 200
  831. br.Msg = "导出成功"
  832. }
  833. // @Title 通过标的ID获取相关连的产文章信息
  834. // @Description 通过标的ID获取相关连的产文章信息接口
  835. // @Param IndustrialSubjectId query int true "标的id "
  836. // @Success 200 {object} cygx.OverviewArticle
  837. // @router /reportSelection/getArticle [get]
  838. func (this *ReportSelectionController) GetArticle() {
  839. br := new(models.BaseResponse).Init()
  840. defer func() {
  841. this.Data["json"] = br
  842. this.ServeJSON()
  843. }()
  844. AdminUser := this.SysUser
  845. if AdminUser == nil {
  846. br.Msg = "请登录"
  847. br.ErrMsg = "请登录,SysUser Is Empty"
  848. return
  849. }
  850. resp := new(cygx.OverviewArticle)
  851. industrialSubjectId, _ := this.GetInt("IndustrialSubjectId")
  852. if industrialSubjectId > 0 {
  853. detailSubjecj, err := cygx.GetIndustrialSubjectDetailById(industrialSubjectId)
  854. if err != nil && err.Error() != utils.ErrNoRow() {
  855. br.Msg = "获取信息失败"
  856. br.ErrMsg = "获取品种信息失败,Err:" + err.Error()
  857. return
  858. }
  859. if detailSubjecj != nil {
  860. var pars []interface{}
  861. conditionArticle := ` AND type_name = '综述报告' AND stock LIKE ? `
  862. subjectName := "%" + detailSubjecj.SubjectName + "%"
  863. pars = append(pars, subjectName)
  864. articleList, err := cygx.GetCygxArticleList(conditionArticle, pars, 0, 10)
  865. if err != nil {
  866. br.Msg = "获取失败"
  867. br.ErrMsg = "GetCygxArticleList,Err:" + err.Error()
  868. return
  869. }
  870. //一对一精准匹配
  871. for _, v := range articleList {
  872. sliceSubjects := strings.Split(v.Stock, "/")
  873. if len(sliceSubjects) > 0 {
  874. for _, vSubject := range sliceSubjects {
  875. sliceKuohao := strings.Split(vSubject, "(") //过滤括号
  876. sliceXiahuaxian := strings.Split(sliceKuohao[0], "-") //过滤下划线
  877. subject := sliceXiahuaxian[0]
  878. if subject == detailSubjecj.SubjectName {
  879. resp.ArticleId = v.ArticleId
  880. resp.Title = v.Title
  881. continue
  882. }
  883. }
  884. }
  885. }
  886. }
  887. }
  888. br.Ret = 200
  889. br.Success = true
  890. br.Msg = "获取成功"
  891. br.Data = resp
  892. }
  893. // @Title 报告精选的可见范围修改
  894. // @Description 报告精选的可见范围修改接口
  895. // @Param request body cygx.ResearchSummaryId true "type json string"
  896. // @Success 200 操作成功
  897. // @router /reportSelection/visibleRange [post]
  898. func (this *ReportSelectionController) VisibleRange() {
  899. br := new(models.BaseResponse).Init()
  900. defer func() {
  901. this.Data["json"] = br
  902. this.ServeJSON()
  903. }()
  904. AdminUser := this.SysUser
  905. if AdminUser == nil {
  906. br.Msg = "请登录"
  907. br.ErrMsg = "请登录,用户信息为空"
  908. br.Ret = 408
  909. return
  910. }
  911. var req cygx.ResearchSummaryId
  912. err := json.Unmarshal(this.Ctx.Input.RequestBody, &req)
  913. if err != nil {
  914. br.Msg = "参数解析异常!"
  915. br.ErrMsg = "参数解析失败,Err:" + err.Error()
  916. return
  917. }
  918. articleId := req.ArticleId
  919. detail, err := cygx.GetCygxReportSelectionInfoById(articleId)
  920. if err != nil {
  921. br.Msg = "内容不存在"
  922. br.ErrMsg = "操作失败,Err:" + err.Error()
  923. return
  924. }
  925. item := new(cygx.CygxReportSelectionRep)
  926. item.ArticleId = articleId
  927. if detail.VisibleRange == 0 {
  928. item.VisibleRange = 1
  929. item.AdminId = AdminUser.AdminId
  930. item.AdminName = AdminUser.RealName
  931. if detail.IsSendWxMsg == 0 {
  932. cygxService.DoThisWeekLastWeekWxTemplateMsg(detail.Title, detail.PublishDate, detail.ProductDescription, req.ArticleId, 1)
  933. }
  934. } else {
  935. item.AdminId = detail.AdminId
  936. item.AdminName = detail.AdminName
  937. item.VisibleRange = 0
  938. }
  939. err = cygx.ReportSelectionVisibleRange(item)
  940. if err != nil {
  941. br.Msg = "操作失败"
  942. br.ErrMsg = "操作失败,Err:" + err.Error()
  943. return
  944. }
  945. go cygxService.UpdateReportSelectionResourceData(articleId) //首页最新页面数据逻辑处理 V11.1.1
  946. go cygxService.UpdateReportSelectionSubjectNameList() //获取报告精选最新一期标的名称
  947. br.Ret = 200
  948. br.Success = true
  949. br.Msg = "操作成功"
  950. br.IsAddLog = true
  951. }
  952. // @Title 报告精选内容详情
  953. // @Description 报告精选内容详情接口
  954. // @Param ArticleId query int true "报告Id"
  955. // @Success Ret=200 {object} cygx.DetailCygxReportSelectionRep
  956. // @router /reportSelection/history [get]
  957. func (this *ReportSelectionController) History() {
  958. br := new(models.BaseResponse).Init()
  959. defer func() {
  960. this.Data["json"] = br
  961. this.ServeJSON()
  962. }()
  963. AdminUser := this.SysUser
  964. if AdminUser == nil {
  965. br.Msg = "请登录"
  966. br.ErrMsg = "请登录,用户信息为空"
  967. br.Ret = 408
  968. return
  969. }
  970. var errArt error
  971. detail := new(cygx.CygxReportSelectionRep)
  972. articleId, _ := this.GetInt("ArticleId")
  973. detail, errArt = cygx.GetCygxReportSelectionInfoById(articleId)
  974. if errArt != nil {
  975. br.Msg = "内容不存在"
  976. br.ErrMsg = "内容不存在,Err:" + errArt.Error()
  977. return
  978. }
  979. articleId = detail.ArticleId
  980. resp := new(cygx.HistoryReportSelectionRep)
  981. permissionNameMap, err := services.GetPermissionNameMap()
  982. if err != nil {
  983. br.Msg = "获取失败"
  984. br.ErrMsg = "获取失败 GetPermissionNameMap,Err:" + err.Error()
  985. return
  986. }
  987. listSelectionLog, err := cygx.GetReportSelectionlogListAll(articleId)
  988. if err != nil {
  989. br.Msg = "获取失败"
  990. br.ErrMsg = "GetReportSelectionlogListAll,Err:" + err.Error()
  991. return
  992. }
  993. for k, v := range listSelectionLog {
  994. listSelectionLog[k].PermissionName = permissionNameMap[v.ChartPermissionId]
  995. }
  996. //获取标的的点击次数
  997. listSelectionSubjectHistory, err := cygx.GetCygxReportSelectionSubjectHistoryList(articleId)
  998. if err != nil && err.Error() != utils.ErrNoRow() {
  999. br.Msg = "获取失败"
  1000. br.ErrMsg = "GetCygxReportSelectionSubjectHistoryList,Err:" + err.Error()
  1001. return
  1002. }
  1003. mapSubjectHistory := make(map[string]int) // 标的点击数量
  1004. mapIndustrialHistory := make(map[string]int) // 产业点击数量
  1005. mapThirdIdHistory := make(map[int]int) // 三方产业点击数量
  1006. for _, v := range listSelectionSubjectHistory {
  1007. if v.ThirdId > 0 {
  1008. mapThirdIdHistory[v.ThirdId]++
  1009. }
  1010. mapSubjectHistory[v.IndustrialSubjectId]++
  1011. if v.IndustrialSubjectId == "0" && v.IndustrialManagementId > 0 {
  1012. mapIndustrialHistory[strconv.Itoa(v.IndustrialManagementId)]++
  1013. }
  1014. }
  1015. //排序方式修改
  1016. permissionNameList := []*cygx.HistoryReportSelectionChart{{ChartPermissionName: "消费"}, {ChartPermissionName: "医药"}, {ChartPermissionName: "科技"}, {ChartPermissionName: "智造"}}
  1017. for _, v := range permissionNameList {
  1018. v.List = make([]*cygx.HistoryReportSelectionLogResp, 0)
  1019. for _, v2 := range listSelectionLog {
  1020. if v.ChartPermissionName == v2.PermissionName {
  1021. item := new(cygx.HistoryReportSelectionLogResp)
  1022. if v2.ThirdId > 0 {
  1023. item.SubjectName = v2.ThirdName
  1024. item.Count = mapThirdIdHistory[v2.ThirdId]
  1025. } else if (v2.IndustrialSubjectId == "" || v2.IndustrialSubjectId == "0") && v2.IndustrialManagementId != "" {
  1026. item.SubjectName = v2.IndustrialManagementNames
  1027. item.Count = mapIndustrialHistory[v2.IndustrialManagementId]
  1028. } else {
  1029. item.SubjectName = v2.SubjectName
  1030. item.IndustrialSubjectId = v2.IndustrialSubjectId
  1031. item.Count = mapSubjectHistory[v2.IndustrialSubjectId]
  1032. }
  1033. item.IsNew = v2.IsNew
  1034. resp.Count += item.Count
  1035. v.List = append(v.List, item)
  1036. }
  1037. }
  1038. }
  1039. resp.List = permissionNameList
  1040. br.Ret = 200
  1041. br.Success = true
  1042. br.Msg = "获取成功"
  1043. br.Data = resp
  1044. }
  1045. // @Title 报告精选申请记录
  1046. // @Description 报告精选申请记录接口
  1047. // @Param ArticleId query int true "报告Id"
  1048. // @Success Ret=200 {object} cygx.DetailCygxReportSelectionRep
  1049. // @router /reportSelection/tarryList [get]
  1050. func (this *ReportSelectionController) RarryList() {
  1051. br := new(models.BaseResponse).Init()
  1052. defer func() {
  1053. this.Data["json"] = br
  1054. this.ServeJSON()
  1055. }()
  1056. AdminUser := this.SysUser
  1057. if AdminUser == nil {
  1058. br.Msg = "请登录"
  1059. br.ErrMsg = "请登录,用户信息为空"
  1060. br.Ret = 408
  1061. return
  1062. }
  1063. articleId, _ := this.GetInt("ArticleId")
  1064. resp := new(cygx.CygxReportSelectionLogApplyListResp)
  1065. var condition string
  1066. var pars []interface{}
  1067. condition = " AND article_id = ? ORDER BY create_time DESC "
  1068. pars = append(pars, articleId)
  1069. list, err := cygx.GetCygxReportSelectionLogApplyRespList(condition, pars, 0, 0)
  1070. if err != nil {
  1071. br.Msg = "获取信息失败"
  1072. br.ErrMsg = "获取信息失败,Err:" + err.Error()
  1073. return
  1074. }
  1075. if len(list) == 0 {
  1076. list = make([]*cygx.CygxReportSelectionLogApplyResp, 0)
  1077. }
  1078. resp.List = list
  1079. br.Ret = 200
  1080. br.Success = true
  1081. br.Msg = "获取成功"
  1082. br.Data = resp
  1083. }
  1084. // @Title 添加三方名称
  1085. // @Description 添加三方名称接口
  1086. // @Param request body cygx.AddReportSelectionThirdNameReq true "type json string"
  1087. // @Success Ret=200 {object} cygx.AddReportSelectionThirdNameResp
  1088. // @router /reportSelection/add/third_name [post]
  1089. func (this *ReportSelectionController) AddThirdName() {
  1090. br := new(models.BaseResponse).Init()
  1091. defer func() {
  1092. this.Data["json"] = br
  1093. this.ServeJSON()
  1094. }()
  1095. AdminUser := this.SysUser
  1096. if AdminUser == nil {
  1097. br.Msg = "请登录"
  1098. br.ErrMsg = "请登录,用户信息为空"
  1099. br.Ret = 408
  1100. return
  1101. }
  1102. var req cygx.AddReportSelectionThirdNameReq
  1103. err := json.Unmarshal(this.Ctx.Input.RequestBody, &req)
  1104. if err != nil {
  1105. br.Msg = "参数解析异常!"
  1106. br.ErrMsg = "参数解析失败,Err:" + err.Error()
  1107. return
  1108. }
  1109. thirdName := req.ThirdName
  1110. chartPermissionId := req.ChartPermissionId
  1111. if thirdName == "" {
  1112. br.Msg = "名称不能为空"
  1113. return
  1114. }
  1115. // 品种信息
  1116. chartPermission, err := models.GetChartPermissionById(chartPermissionId)
  1117. if err != nil {
  1118. br.Msg = "品种信息有误"
  1119. br.ErrMsg = "获取品种信息失败,Err:" + err.Error()
  1120. return
  1121. }
  1122. item := new(cygx.CygxReportSelectionThirdName)
  1123. item.ThirdName = thirdName
  1124. item.ChartPermissionId = chartPermissionId
  1125. item.ChartPermissionName = chartPermission.ChartPermissionName
  1126. item.CreateTime = time.Now()
  1127. newId, err := cygx.AddCygxReportSelectionThirdName(item)
  1128. if err != nil {
  1129. br.Msg = "操作失败"
  1130. br.ErrMsg = "操作失败,Err:" + err.Error()
  1131. return
  1132. }
  1133. resp := new(cygx.AddReportSelectionThirdNameResp)
  1134. resp.ThirdName = thirdName
  1135. resp.ThirdId = fmt.Sprint(newId)
  1136. br.Ret = 200
  1137. br.Data = resp
  1138. br.Success = true
  1139. br.Msg = "操作成功"
  1140. br.IsAddLog = true
  1141. }