morning_meeting_review.go 20 KB

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