morning_meeting_review.go 21 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692
  1. package cygx
  2. import (
  3. "encoding/json"
  4. "errors"
  5. "fmt"
  6. "github.com/rdlucklib/rdluck_tools/paging"
  7. "hongze/hz_crm_api/controllers"
  8. "hongze/hz_crm_api/models"
  9. "hongze/hz_crm_api/models/cygx"
  10. "hongze/hz_crm_api/services"
  11. cygxService "hongze/hz_crm_api/services/cygx"
  12. "hongze/hz_crm_api/services/elastic"
  13. "hongze/hz_crm_api/utils"
  14. "strconv"
  15. "strings"
  16. "time"
  17. )
  18. // 晨会点评
  19. type MorningMeetingController struct {
  20. controllers.BaseAuthController
  21. }
  22. // @Title 晨会点评列表
  23. // @Description 活动客户列表接口
  24. // @Param PageSize query int true "每页数据条数"
  25. // @Param CurrentIndex query int true "当前页页码,从1开始"
  26. // @Param KeyWord query string false "关键词搜索"
  27. // @Param MeetingTime query string false "晨会日期"
  28. // @Param Status query string false "发布状态,1,已发布,0未发布"
  29. // @Param PublishSort query string true "desc:降序,asc 升序(预留)"
  30. // @Success 200 {object} cygx.CygxMorningMeetingReviewsList
  31. // @router /morningMeeting/list [get]
  32. func (this *MorningMeetingController) List() {
  33. br := new(models.BaseResponse).Init()
  34. defer func() {
  35. this.Data["json"] = br
  36. this.ServeJSON()
  37. }()
  38. sysUser := this.SysUser
  39. if sysUser == nil {
  40. br.Msg = "请登录"
  41. br.ErrMsg = "请登录,SysUser Is Empty"
  42. br.Ret = 408
  43. return
  44. }
  45. pageSize, _ := this.GetInt("PageSize")
  46. currentIndex, _ := this.GetInt("CurrentIndex")
  47. keyWord := this.GetString("KeyWord")
  48. meetingTimeDate := this.GetString("MeetingTime")
  49. status := this.GetString("Status")
  50. var startSize int
  51. var condition string
  52. var pars []interface{}
  53. if status != "" {
  54. condition += ` AND status = ` + status + ` `
  55. }
  56. if keyWord != "" {
  57. condition += ` AND ( industry_names LIKE '%` + keyWord + `%' )`
  58. }
  59. if meetingTimeDate != "" {
  60. //meetingTime := utils.StrDateToDate(meetingTimeDate) //时间字符串格式转时间格式
  61. //meetingTimeString := meetingTime.Format(utils.FormatDateTime)
  62. condition += ` AND meeting_time = ? `
  63. pars = append(pars, meetingTimeDate)
  64. }
  65. if pageSize <= 0 {
  66. pageSize = utils.PageSize20
  67. }
  68. if currentIndex <= 0 {
  69. currentIndex = 1
  70. }
  71. startSize = utils.StartIndex(currentIndex, pageSize)
  72. total, err := cygx.GetCygxMorningMeetingReviewsListCount(condition, pars)
  73. if err != nil {
  74. br.Msg = "获取失败"
  75. br.ErrMsg = "获取数据失败,Err:" + err.Error()
  76. return
  77. }
  78. condition += ` ORDER BY meeting_time DESC `
  79. resp := new(cygx.CygxMorningMeetingReviewsList)
  80. list, err := cygx.GetCygxMorningMeetingReviewsList(condition, pars, startSize, pageSize)
  81. if err != nil {
  82. br.Msg = "获取失败"
  83. br.ErrMsg = "获取数据失败,Err:" + err.Error()
  84. return
  85. }
  86. for _, item := range list {
  87. respItem := cygx.CygxMorningMeetingReviewItem{
  88. Id: item.Id,
  89. MeetingTime: item.MeetingTime.Local().Format(utils.FormatDate),
  90. CreateTime: item.CreateTime.Local().Format(utils.FormatDateTime),
  91. ModifyTime: item.ModifyTime.Local().Format(utils.FormatDateTime),
  92. Status: item.Status,
  93. PartNums: item.PartNums,
  94. IndustryNames: item.IndustryNames,
  95. }
  96. if item.Status == 1 {
  97. respItem.PublishTime = item.PublishTime.Local().Format(utils.FormatDateTime)
  98. }
  99. resp.List = append(resp.List, &respItem)
  100. }
  101. page := paging.GetPaging(currentIndex, pageSize, total)
  102. resp.Paging = page
  103. br.Ret = 200
  104. br.Success = true
  105. br.Msg = "获取成功"
  106. br.Data = resp
  107. }
  108. // @Title 新增晨会点评
  109. // @Description 新增晨会点评接口
  110. // @Param request body cygx.AddMorningMeetingReviewsReq true "type json string"
  111. // @Success 200 {object} "保存成功"
  112. // @router /morningMeeting/preserveAndPublish [post]
  113. func (this *MorningMeetingController) PreserveAndPublish() {
  114. br := new(models.BaseResponse).Init()
  115. defer func() {
  116. this.Data["json"] = br
  117. this.ServeJSON()
  118. }()
  119. sysUser := this.SysUser
  120. if sysUser == nil {
  121. br.Msg = "请登录"
  122. br.ErrMsg = "请登录,SysUser Is Empty"
  123. br.Ret = 408
  124. return
  125. }
  126. var reqList cygx.AddMorningMeetingReviewsReq
  127. err := json.Unmarshal(this.Ctx.Input.RequestBody, &reqList)
  128. if err != nil {
  129. br.Msg = "参数解析异常!"
  130. br.ErrMsg = "参数解析失败,Err:" + err.Error()
  131. return
  132. }
  133. meetingTime := utils.StrDateToDate(reqList.MeetingTime) //时间字符串格式转时间格式
  134. var industryNameslice []string
  135. for _, item := range reqList.List {
  136. industryNameslice = append(industryNameslice, item.IndustryName)
  137. }
  138. industryNames := strings.Join(industryNameslice, ",")
  139. if reqList.MeetingId <= 0 {
  140. //先新增主表
  141. reviewItem := cygx.CygxMorningMeetingReviews{
  142. MeetingTime: meetingTime,
  143. CreateTime: time.Now(),
  144. ModifyTime: time.Now(),
  145. PartNums: len(reqList.List),
  146. IndustryNames: industryNames,
  147. }
  148. if reqList.DoType == 1 {
  149. reviewItem.PublishTime = time.Now()
  150. reviewItem.Status = 1
  151. }
  152. meetingId, err := cygx.AddCygxMorningMeetingReviews(&reviewItem)
  153. if err != nil {
  154. br.Msg = "新增晨报点评失败!"
  155. br.ErrMsg = "新增晨报点评失败,Err:" + err.Error()
  156. return
  157. }
  158. for _, req := range reqList.List {
  159. if req.ChartPermissionId <= 0 || req.ChartPermissionName == "" {
  160. br.Msg = "行业不可为空"
  161. br.ErrMsg = "行业不可为空"
  162. return
  163. }
  164. if req.IndustryId <= 0 || req.ChartPermissionName == "" {
  165. br.Msg = "产业不可为空"
  166. br.ErrMsg = "产业不可为空"
  167. return
  168. }
  169. // 标的ID校验
  170. industrialSubjectIds := req.IndustrialSubjectIds
  171. if industrialSubjectIds != "" {
  172. industrialSubjectIdList := strings.Split(industrialSubjectIds, ",")
  173. for _, v := range industrialSubjectIdList {
  174. _, err := strconv.Atoi(v)
  175. if err != nil {
  176. br.Msg = "参数解析异常!"
  177. br.ErrMsg = "标的ID不规范,Err:" + err.Error() + industrialSubjectIds
  178. return
  179. }
  180. }
  181. }
  182. item := cygx.CygxMorningMeetingReviewChapter{
  183. MeetingTime: meetingTime,
  184. CreateTime: time.Now(),
  185. ModifyTime: time.Now(),
  186. IndustryId: req.IndustryId,
  187. IndustryName: req.IndustryName,
  188. ChartPermissionName: req.ChartPermissionName,
  189. ChartPermissionId: req.ChartPermissionId,
  190. IndustrialSubjectIds: req.IndustrialSubjectIds,
  191. MeetingId: meetingId,
  192. Content: req.Content,
  193. }
  194. err := cygx.AddCygxMorningMeetingReviewChapter(&item)
  195. if err != nil {
  196. br.Msg = "新增晨报点评章节失败!"
  197. br.ErrMsg = "新增晨报点评章节失败,Err:" + err.Error()
  198. return
  199. }
  200. go cygxService.GetIndustrialManagementArticleNewPublishData(req.IndustryId)
  201. }
  202. br.Ret = 200
  203. br.Success = true
  204. if reqList.DoType == 0 {
  205. br.Msg = "保存成功"
  206. br.Data = meetingId
  207. } else {
  208. for _, item := range reqList.List {
  209. go services.SendWxMsgWithCygxMorningMeeting(int(meetingId), item.IndustryId, item.IndustryName)
  210. }
  211. //添加到首页最新
  212. listchapter, err := cygx.GetCygxMorningMeetingReviewsListById(int(meetingId))
  213. if err != nil {
  214. br.Msg = "获取失败"
  215. br.ErrMsg = "获取数据失败,Err:" + err.Error()
  216. return
  217. }
  218. for _, itemchapter := range listchapter {
  219. //go cygxService.UpdateResourceData(itemchapter.Id, "meetingreviewchapt", "add", time.Now().Format(utils.FormatDateTime))
  220. go cygxService.UpdateMeetingreviewchaptResourceData(itemchapter.Id) //写入首页最新 cygx_resource_data 表
  221. go elastic.AddComprehensiveMeetingreviewchapt(itemchapter.Id) //Es添加晨会精华
  222. }
  223. br.Msg = "发布成功"
  224. br.Data = meetingId
  225. }
  226. } else {
  227. //更新
  228. reviewInfo, err := cygx.GetMorningMeetingReviewById(reqList.MeetingId)
  229. if err != nil {
  230. err = errors.New("报告信息有误, Err: " + err.Error())
  231. return
  232. }
  233. if reviewInfo == nil {
  234. br.Msg = "文章不存在"
  235. return
  236. }
  237. reviewItem := cygx.CygxMorningMeetingReviews{
  238. Id: reqList.MeetingId,
  239. MeetingTime: meetingTime,
  240. ModifyTime: time.Now(),
  241. PartNums: len(reqList.List),
  242. IndustryNames: industryNames,
  243. }
  244. if reqList.DoType == 1 {
  245. reviewItem.PublishTime = time.Now()
  246. reviewItem.Status = 1
  247. } else {
  248. reviewItem.PublishTime = reviewInfo.PublishTime
  249. reviewItem.Status = reviewInfo.Status
  250. }
  251. err = cygx.UpdateCygxMorningMeetingReviews(&reviewItem)
  252. if err != nil {
  253. br.Msg = "更新晨报点评失败!"
  254. br.ErrMsg = "更新晨报点评失败,Err:" + err.Error()
  255. return
  256. }
  257. if reviewInfo.PartNums > len(reqList.List) {
  258. //有删除
  259. chapterList, err := cygx.GetCygxMorningMeetingReviewsListById(reqList.MeetingId)
  260. if err != nil {
  261. br.Msg = "获取失败"
  262. br.ErrMsg = "获取数据失败,Err:" + err.Error()
  263. return
  264. }
  265. chapterIdMap := make(map[int]int, 0)
  266. for _, chapter := range reqList.List {
  267. chapterIdMap[chapter.ChapterId] = chapter.ChapterId
  268. }
  269. for _, item := range chapterList {
  270. if _, ok := chapterIdMap[item.Id]; !ok {
  271. //删除该id
  272. err := cygx.DeleteMorningMeetingChapterById(item.Id)
  273. if err != nil {
  274. br.Msg = "删除失败"
  275. br.ErrMsg = "删除章节失败,Err:" + err.Error()
  276. return
  277. }
  278. go elastic.DeleteComprehensiveMeetingreviewchapt(item.Id) //Es删除晨会精华
  279. }
  280. }
  281. }
  282. for _, req := range reqList.List {
  283. if req.ChartPermissionId <= 0 || req.ChartPermissionName == "" {
  284. br.Msg = "行业不可为空"
  285. br.ErrMsg = "行业不可为空"
  286. return
  287. }
  288. if req.IndustryId <= 0 || req.ChartPermissionName == "" {
  289. br.Msg = "产业不可为空"
  290. br.ErrMsg = "产业不可为空"
  291. return
  292. }
  293. // 标的ID校验
  294. industrialSubjectIds := req.IndustrialSubjectIds
  295. if industrialSubjectIds != "" {
  296. industrialSubjectIdList := strings.Split(industrialSubjectIds, ",")
  297. for _, v := range industrialSubjectIdList {
  298. _, err := strconv.Atoi(v)
  299. if err != nil {
  300. br.Msg = "参数解析异常!"
  301. br.ErrMsg = "标的ID不规范,Err:" + err.Error() + industrialSubjectIds
  302. return
  303. }
  304. }
  305. }
  306. //有可能在编辑时新增了段落
  307. if req.ChapterId == 0 {
  308. item := cygx.CygxMorningMeetingReviewChapter{
  309. MeetingTime: meetingTime,
  310. CreateTime: time.Now(),
  311. ModifyTime: time.Now(),
  312. IndustryId: req.IndustryId,
  313. IndustryName: req.IndustryName,
  314. ChartPermissionName: req.ChartPermissionName,
  315. ChartPermissionId: req.ChartPermissionId,
  316. IndustrialSubjectIds: req.IndustrialSubjectIds,
  317. MeetingId: int64(reqList.MeetingId),
  318. Content: req.Content,
  319. }
  320. err := cygx.AddCygxMorningMeetingReviewChapter(&item)
  321. if err != nil {
  322. br.Msg = "新增晨报点评章节失败!"
  323. br.ErrMsg = "新增晨报点评章节失败,Err:" + err.Error()
  324. return
  325. }
  326. } else {
  327. item := cygx.CygxMorningMeetingReviewChapter{
  328. Id: req.ChapterId,
  329. MeetingTime: meetingTime,
  330. ModifyTime: time.Now(),
  331. IndustryId: req.IndustryId,
  332. IndustryName: req.IndustryName,
  333. ChartPermissionName: req.ChartPermissionName,
  334. ChartPermissionId: req.ChartPermissionId,
  335. IndustrialSubjectIds: req.IndustrialSubjectIds,
  336. MeetingId: int64(reqList.MeetingId),
  337. Content: req.Content,
  338. }
  339. err := cygx.UpdateCygxMorningMeetingReviewChapter(&item)
  340. if err != nil {
  341. br.Msg = "编辑晨报点评章节失败!"
  342. br.ErrMsg = "编辑晨报点评章节失败,Err:" + err.Error()
  343. return
  344. }
  345. }
  346. go cygxService.GetIndustrialManagementArticleNewPublishData(req.IndustryId)
  347. }
  348. for _, item := range reqList.List {
  349. // 更新产业布局时间 2023-05-22
  350. var industryIds []int
  351. industryIds = append(industryIds, item.IndustryId)
  352. go cygxService.UpdateIndustryLayoutTime(industryIds, false)
  353. }
  354. //添加到首页最新
  355. listchapter, err := cygx.GetCygxMorningMeetingReviewsListById(reqList.MeetingId)
  356. if err != nil {
  357. br.Msg = "获取失败"
  358. br.ErrMsg = "获取数据失败,Err:" + err.Error()
  359. return
  360. }
  361. for _, itemchapter := range listchapter {
  362. go elastic.AddComprehensiveMeetingreviewchapt(itemchapter.Id) //Es添加晨会精华
  363. }
  364. br.Ret = 200
  365. br.Success = true
  366. if reqList.DoType == 0 {
  367. br.Msg = "保存成功"
  368. } else {
  369. for _, item := range reqList.List {
  370. go services.SendWxMsgWithCygxMorningMeeting(reqList.MeetingId, item.IndustryId, item.IndustryName)
  371. }
  372. for _, itemchapter := range listchapter {
  373. //go cygxService.UpdateResourceData(itemchapter.Id, "meetingreviewchapt", "add", time.Now().Format(utils.FormatDateTime))
  374. go cygxService.UpdateMeetingreviewchaptResourceData(itemchapter.Id) //写入首页最新 cygx_resource_data 表
  375. }
  376. br.Msg = "发布成功"
  377. }
  378. }
  379. }
  380. // @Title 晨会点评列表
  381. // @Description 活动客户列表接口
  382. // @Param MeetingId query int true "晨会点评id"
  383. // @Success 200 {object} cygx.ActivityCcustomerTypeList
  384. // @router /morningMeeting/detail [get]
  385. func (this *MorningMeetingController) Detail() {
  386. br := new(models.BaseResponse).Init()
  387. defer func() {
  388. this.Data["json"] = br
  389. this.ServeJSON()
  390. }()
  391. sysUser := this.SysUser
  392. if sysUser == nil {
  393. br.Msg = "请登录"
  394. br.ErrMsg = "请登录,SysUser Is Empty"
  395. br.Ret = 408
  396. return
  397. }
  398. meetingId, _ := this.GetInt("MeetingId")
  399. if meetingId <= 0 {
  400. br.Msg = "参数错误"
  401. br.ErrMsg = "晨会点评id有误!"
  402. return
  403. }
  404. list, err := cygx.GetCygxMorningMeetingReviewsListById(meetingId)
  405. if err != nil {
  406. br.Msg = "获取失败"
  407. br.ErrMsg = "获取数据失败,Err:" + err.Error()
  408. return
  409. }
  410. reviewItem, err := cygx.GetMorningMeetingReviewById(meetingId)
  411. if err != nil {
  412. br.Msg = "获取失败"
  413. br.ErrMsg = "获取数据失败,Err:" + err.Error()
  414. return
  415. }
  416. var resp cygx.CygxMorningMeetingReviewChapterResp
  417. var meetingTime string
  418. for _, chapter := range list {
  419. var subjectItemList []*cygx.IndustrialSubjectItem
  420. if chapter.IndustrialSubjectIds != "" {
  421. subjectList, err := cygx.GetIndustrySubjectListByIds(chapter.IndustrialSubjectIds)
  422. if err != nil {
  423. br.Msg = "获取失败"
  424. br.ErrMsg = "获取数据失败,Err:" + err.Error()
  425. return
  426. }
  427. for _, subject := range subjectList {
  428. subjectItem := cygx.IndustrialSubjectItem{
  429. IndustrialSubjectId: subject.IndustrialSubjectId,
  430. SubjectName: subject.SubjectName,
  431. }
  432. subjectItemList = append(subjectItemList, &subjectItem)
  433. }
  434. }
  435. meetingTime = chapter.MeetingTime.Local().Format(utils.FormatDate)
  436. respItem := cygx.CygxMorningMeetingReviewChapterRespItem{
  437. Id: chapter.Id,
  438. MeetingTime: chapter.MeetingTime,
  439. CreateTime: chapter.CreateTime,
  440. ModifyTime: chapter.ModifyTime,
  441. IndustryId: chapter.IndustryId,
  442. IndustryName: chapter.IndustryName,
  443. ChartPermissionName: chapter.ChartPermissionName,
  444. ChartPermissionId: chapter.ChartPermissionId,
  445. IndustrialSubjectList: subjectItemList,
  446. MeetingId: chapter.MeetingId,
  447. Content: chapter.Content,
  448. }
  449. resp.List = append(resp.List, &respItem)
  450. }
  451. resp.MeetingTime = meetingTime
  452. resp.Status = reviewItem.Status
  453. br.Ret = 200
  454. br.Success = true
  455. br.Msg = "获取成功"
  456. br.Data = resp
  457. }
  458. // @Title 发布报告接口
  459. // @Description 发布报告
  460. // @Param request body cygx.MorningReviewPublishReq true "type json string"
  461. // @Success 200 Ret=200 发布成功
  462. // @router /morningMeeting/publish [post]
  463. func (this *MorningMeetingController) PublishReport() {
  464. br := new(models.BaseResponse).Init()
  465. defer func() {
  466. this.Data["json"] = br
  467. this.ServeJSON()
  468. }()
  469. var req cygx.MorningReviewPublishReq
  470. err := json.Unmarshal(this.Ctx.Input.RequestBody, &req)
  471. if err != nil {
  472. br.Msg = "参数解析异常!"
  473. br.ErrMsg = "参数解析失败,Err:" + err.Error()
  474. return
  475. }
  476. reviewIds := req.ReviewIds
  477. if reviewIds == "" {
  478. br.Msg = "参数错误"
  479. br.ErrMsg = "参数错误,报告id不可为空"
  480. return
  481. }
  482. reviewArr := strings.Split(reviewIds, ",")
  483. for _, v := range reviewArr {
  484. vint, err := strconv.Atoi(v)
  485. if err != nil {
  486. br.Msg = "参数错误"
  487. br.ErrMsg = "参数错误,Err:" + err.Error()
  488. return
  489. }
  490. review, err := cygx.GetMorningMeetingReviewById(vint)
  491. if err != nil {
  492. br.Msg = "获取晨会点评信息失败"
  493. br.ErrMsg = "获取晨会点评信息失败,Err:" + err.Error()
  494. return
  495. }
  496. if review == nil {
  497. br.Msg = "晨会点评不存在"
  498. return
  499. }
  500. var tmpErr error
  501. if tmpErr = cygx.PublishMorningMeetingReviewById(review.Id); tmpErr != nil {
  502. br.Msg = "晨会点评发布失败"
  503. br.ErrMsg = "晨会点评发布失败, Err:" + tmpErr.Error() + ", review_id:" + strconv.Itoa(review.Id)
  504. return
  505. }
  506. list, err := cygx.GetCygxMorningMeetingReviewsListById(vint)
  507. if err != nil {
  508. br.Msg = "获取失败"
  509. br.ErrMsg = "获取数据失败,Err:" + err.Error()
  510. return
  511. }
  512. for _, item := range list {
  513. fmt.Println(item.Id)
  514. go services.SendWxMsgWithCygxMorningMeeting(vint, item.IndustryId, item.IndustryName)
  515. //go cygxService.UpdateResourceData(item.Id, "meetingreviewchapt", "add", time.Now().Format(utils.FormatDateTime))
  516. go cygxService.UpdateMeetingreviewchaptResourceData(item.Id) //写入首页最新 cygx_resource_data 表
  517. go elastic.AddComprehensiveMeetingreviewchapt(item.Id) //Es添加晨会精华
  518. }
  519. }
  520. br.Ret = 200
  521. br.Success = true
  522. br.Msg = "发布成功"
  523. }
  524. // @Title 取消发布报告接口
  525. // @Description 取消发布报告
  526. // @Param request body cygx.MorningReviewPublishCancelReq true "type json string"
  527. // @Success 200 Ret=200 取消发布成功
  528. // @router /morningMeeting/publish/cancel [post]
  529. func (this *MorningMeetingController) PublishCancleReport() {
  530. br := new(models.BaseResponse).Init()
  531. defer func() {
  532. this.Data["json"] = br
  533. this.ServeJSON()
  534. }()
  535. var req cygx.MorningReviewPublishCancelReq
  536. err := json.Unmarshal(this.Ctx.Input.RequestBody, &req)
  537. if err != nil {
  538. br.Msg = "参数解析异常!"
  539. br.ErrMsg = "参数解析失败,Err:" + err.Error()
  540. return
  541. }
  542. if req.ReviewId <= 0 {
  543. br.Msg = "参数错误"
  544. br.ErrMsg = "参数错误,晨会id不可为空"
  545. return
  546. }
  547. err = cygx.PublishCancelMorningMeetingReview(req.ReviewId)
  548. if err != nil {
  549. br.Msg = "取消发布失败"
  550. br.ErrMsg = "取消发布失败,Err:" + err.Error()
  551. return
  552. }
  553. list, err := cygx.GetCygxMorningMeetingReviewsListById(req.ReviewId)
  554. if err != nil {
  555. br.Msg = "获取失败"
  556. br.ErrMsg = "获取数据失败,Err:" + err.Error()
  557. return
  558. }
  559. for _, item := range list {
  560. //go cygxService.UpdateResourceData(item.Id, "meetingreviewchapt", "delete", time.Now().Format(utils.FormatDateTime))
  561. go cygxService.UpdateMeetingreviewchaptResourceData(item.Id) //写入首页最新 cygx_resource_data 表
  562. go elastic.DeleteComprehensiveMeetingreviewchapt(item.Id) //Es删除晨会精华
  563. }
  564. var condition string
  565. var pars []interface{}
  566. condition += ` AND meeting_ids like '%` + strconv.Itoa(req.ReviewId) + `%' `
  567. listMeetingGather, err := cygx.GetCygxMorningMeetingGatherList(condition, pars, 0, 9999)
  568. if err != nil && err.Error() != utils.ErrNoRow() {
  569. br.Msg = "获取失败"
  570. br.ErrMsg = "获取数据失败,Err:" + err.Error()
  571. return
  572. }
  573. if len(listMeetingGather) > 0 {
  574. var meetingGatherId int
  575. //var middelete string
  576. var meetingsliceId []string
  577. for _, v := range listMeetingGather {
  578. sliceId := strings.Split(v.MeetingIds, ",")
  579. for _, mid := range sliceId {
  580. if mid == strconv.Itoa(req.ReviewId) {
  581. meetingGatherId = v.Id
  582. meetingsliceId = sliceId
  583. }
  584. }
  585. }
  586. var newMeetingIds string
  587. if meetingGatherId > 0 {
  588. for _, v := range meetingsliceId {
  589. if strconv.Itoa(req.ReviewId) == v {
  590. continue
  591. }
  592. newMeetingIds += v + ","
  593. }
  594. newMeetingIds = strings.TrimRight(newMeetingIds, ",")
  595. err = cygx.UpdateCygxMorningMeetingGather(newMeetingIds, meetingGatherId)
  596. if err != nil {
  597. br.Msg = "取消发布失败"
  598. br.ErrMsg = "取消发布失败,Err:" + err.Error()
  599. return
  600. }
  601. }
  602. }
  603. br.Ret = 200
  604. br.Success = true
  605. br.Msg = "取消发布成功"
  606. }
  607. // @Title 删除报告接口
  608. // @Description 删除报告
  609. // @Param request body cygx.MorningReviewDeleteReq true "type json string"
  610. // @Success 200 Ret=200 删除成功
  611. // @router /morningMeeting/delete [post]
  612. func (this *MorningMeetingController) Delete() {
  613. br := new(models.BaseResponse).Init()
  614. defer func() {
  615. this.Data["json"] = br
  616. this.ServeJSON()
  617. }()
  618. var req cygx.MorningReviewDeleteReq
  619. err := json.Unmarshal(this.Ctx.Input.RequestBody, &req)
  620. if err != nil {
  621. br.Msg = "参数解析异常!"
  622. br.ErrMsg = "参数解析失败,Err:" + err.Error()
  623. return
  624. }
  625. if req.ReviewId <= 0 {
  626. br.Msg = "参数错误"
  627. br.ErrMsg = "参数错误,报告id不可为空"
  628. return
  629. }
  630. if err := cygx.DeleteMorningReviewAndChapter(req.ReviewId); err != nil {
  631. br.Msg = "删除失败"
  632. br.ErrMsg = "删除报告失败, Err: " + err.Error()
  633. return
  634. }
  635. br.Ret = 200
  636. br.Success = true
  637. br.Msg = "删除成功"
  638. }