report_selection.go 36 KB

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