ppt_v2_group.go 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518
  1. package controllers
  2. import (
  3. "encoding/json"
  4. "eta_gn/eta_api/models"
  5. "eta_gn/eta_api/services"
  6. "eta_gn/eta_api/services/ppt"
  7. "fmt"
  8. "strings"
  9. )
  10. type PptV2GroupController struct {
  11. BaseAuthController
  12. }
  13. // @router /groups [get]
  14. func (this *PptV2GroupController) GroupList() {
  15. br := new(models.BaseResponse).Init()
  16. defer func() {
  17. this.Data["json"] = br
  18. this.ServeJSON()
  19. }()
  20. IsNewPpt, _ := this.GetInt("IsNewPpt")
  21. data, err := ppt.GetGroupsByAdminIdV2(IsNewPpt, this.SysUser.AdminId, this.Lang)
  22. if err != nil {
  23. br.Msg = err.Error()
  24. return
  25. }
  26. br.Ret = 200
  27. br.Success = true
  28. br.Msg = "查询成功"
  29. br.Data = data
  30. return
  31. }
  32. // @router /group/add [post]
  33. func (this *PptV2GroupController) AddGroup() {
  34. br := new(models.BaseResponse).Init()
  35. defer func() {
  36. this.Data["json"] = br
  37. this.ServeJSON()
  38. }()
  39. var req models.ReqAddPptGroup
  40. err := json.Unmarshal(this.Ctx.Input.RequestBody, &req)
  41. if err != nil {
  42. br.Msg = "参数解析异常!"
  43. br.ErrMsg = "参数解析失败,Err:" + err.Error()
  44. return
  45. }
  46. if req.GroupName == "" {
  47. br.Msg = "请输入目录名称"
  48. return
  49. }
  50. newId, err := ppt.AddGroup(req.GroupName, this.SysUser.AdminId, 0, 0)
  51. if err != nil {
  52. br.Msg = err.Error()
  53. return
  54. }
  55. resp := models.RespAddPptGroup{
  56. GroupId: newId,
  57. }
  58. br.Ret = 200
  59. br.Success = true
  60. br.Msg = "新增成功"
  61. br.Data = resp
  62. }
  63. // @router /group/delete [post]
  64. func (this *PptV2GroupController) DeleteGroup() {
  65. br := new(models.BaseResponse).Init()
  66. defer func() {
  67. this.Data["json"] = br
  68. this.ServeJSON()
  69. }()
  70. var req models.ReqPptGroup
  71. err := json.Unmarshal(this.Ctx.Input.RequestBody, &req)
  72. if err != nil {
  73. br.Msg = "参数解析异常!"
  74. br.ErrMsg = "参数解析失败,Err:" + err.Error()
  75. return
  76. }
  77. if req.GroupId <= 0 {
  78. br.Msg = "请输入目录ID"
  79. return
  80. }
  81. err = ppt.DelGroup(req.GroupId, this.SysUser.AdminId)
  82. if err != nil {
  83. br.Msg = err.Error()
  84. return
  85. }
  86. br.Ret = 200
  87. br.Success = true
  88. br.Msg = "删除成功"
  89. }
  90. // @router /group/share [post]
  91. func (this *PptV2GroupController) ShareGroup() {
  92. br := new(models.BaseResponse).Init()
  93. defer func() {
  94. this.Data["json"] = br
  95. this.ServeJSON()
  96. }()
  97. var req models.ReqPptGroup
  98. err := json.Unmarshal(this.Ctx.Input.RequestBody, &req)
  99. if err != nil {
  100. br.Msg = "参数解析异常!"
  101. br.ErrMsg = "参数解析失败,Err:" + err.Error()
  102. return
  103. }
  104. if req.GroupId <= 0 {
  105. br.Msg = "请输入目录ID"
  106. return
  107. }
  108. data, err := ppt.ShareGroup(req.GroupId, this.SysUser.AdminId)
  109. if err != nil {
  110. br.Msg = err.Error()
  111. return
  112. }
  113. br.Ret = 200
  114. br.Success = true
  115. br.Msg = "操作成功"
  116. br.Data = data
  117. return
  118. }
  119. // @router /group/copy [post]
  120. func (this *PptV2GroupController) CopyGroup() {
  121. br := new(models.BaseResponse).Init()
  122. defer func() {
  123. this.Data["json"] = br
  124. this.ServeJSON()
  125. }()
  126. var req models.ReqPptGroup
  127. err := json.Unmarshal(this.Ctx.Input.RequestBody, &req)
  128. if err != nil {
  129. br.Msg = "参数解析异常!"
  130. br.ErrMsg = "参数解析失败,Err:" + err.Error()
  131. return
  132. }
  133. if req.GroupId <= 0 {
  134. br.Msg = "请输入目录ID"
  135. return
  136. }
  137. err = ppt.CopyGroup(req.GroupId, this.SysUser.AdminId, this.SysUser.RealName)
  138. if err != nil {
  139. br.Msg = err.Error()
  140. return
  141. }
  142. br.Ret = 200
  143. br.Success = true
  144. br.Msg = "复制成功"
  145. return
  146. }
  147. // @router /group/rename [post]
  148. func (this *PptV2GroupController) RenameGroup() {
  149. br := new(models.BaseResponse).Init()
  150. defer func() {
  151. this.Data["json"] = br
  152. this.ServeJSON()
  153. }()
  154. var req models.ReqRenamePptGroup
  155. err := json.Unmarshal(this.Ctx.Input.RequestBody, &req)
  156. if err != nil {
  157. br.Msg = "参数解析异常!"
  158. br.ErrMsg = "参数解析失败,Err:" + err.Error()
  159. return
  160. }
  161. if req.GroupId <= 0 {
  162. br.Msg = "请输入目录ID"
  163. return
  164. }
  165. if req.GroupName == "" {
  166. br.Msg = "请输入目录名称"
  167. return
  168. }
  169. err = ppt.RenameGroupName(req.GroupId, req.GroupName, this.SysUser.AdminId)
  170. if err != nil {
  171. br.Msg = err.Error()
  172. return
  173. }
  174. br.Ret = 200
  175. br.Success = true
  176. br.Msg = "重命名成功"
  177. return
  178. }
  179. // @router /share [post]
  180. func (this *PptV2GroupController) SharePpt() {
  181. br := new(models.BaseResponse).Init()
  182. defer func() {
  183. this.Data["json"] = br
  184. this.ServeJSON()
  185. }()
  186. var req models.ReqPptShareV2
  187. err := json.Unmarshal(this.Ctx.Input.RequestBody, &req)
  188. if err != nil {
  189. br.Msg = "参数解析异常!"
  190. br.ErrMsg = "参数解析失败,Err:" + err.Error()
  191. return
  192. }
  193. if req.PptId <= 0 {
  194. br.Msg = "请输入目录里的ppt序号"
  195. return
  196. }
  197. pptInfo, err := ppt.ShareSingleGroupPptV2(req.PptId, this.SysUser.AdminId)
  198. if err != nil {
  199. br.Msg = err.Error()
  200. return
  201. }
  202. br.Ret = 200
  203. br.Success = true
  204. br.Msg = "操作成功"
  205. br.Data = models.RespPptShareV2{
  206. PptId: pptInfo.PptId,
  207. IsShare: pptInfo.IsShare,
  208. }
  209. return
  210. }
  211. // @router /group/ppt/list [get]
  212. func (this *PptV2GroupController) GroupPptList() {
  213. br := new(models.BaseResponse).Init()
  214. defer func() {
  215. this.Data["json"] = br
  216. this.ServeJSON()
  217. }()
  218. sysUser := this.SysUser
  219. if sysUser == nil {
  220. br.Msg = "请登录"
  221. br.ErrMsg = "请登录,SysUser Is Empty"
  222. br.Ret = 408
  223. return
  224. }
  225. groupId, _ := this.GetInt("GroupId")
  226. data, err := ppt.GetGroupPptList(int64(groupId), this.SysUser.AdminId)
  227. if err != nil {
  228. br.Msg = err.Error()
  229. br.IsSendEmail = false
  230. return
  231. }
  232. for _, v := range data.List {
  233. editor, e := services.UpdatePptEditing(int(v.PptId), 0, sysUser.AdminId, sysUser.RealName, false)
  234. if e != nil {
  235. br.Msg = "获取失败"
  236. br.ErrMsg = fmt.Sprintf("获取PPT编辑状态失败, err: %s", e.Error())
  237. return
  238. }
  239. v.Editor = editor
  240. }
  241. br.Ret = 200
  242. br.Success = true
  243. br.Msg = "查询成功"
  244. br.Data = data
  245. return
  246. }
  247. // @router /move [post]
  248. func (this *PptV2GroupController) MoveGroupPpt() {
  249. br := new(models.BaseResponse).Init()
  250. defer func() {
  251. this.Data["json"] = br
  252. this.ServeJSON()
  253. }()
  254. var req models.ReqMoveGroupPpt
  255. err := json.Unmarshal(this.Ctx.Input.RequestBody, &req)
  256. if err != nil {
  257. br.Msg = "参数解析异常!"
  258. br.ErrMsg = "参数解析失败,Err:" + err.Error()
  259. return
  260. }
  261. if req.GroupId <= 0 {
  262. br.Msg = "请输入目录ID"
  263. return
  264. }
  265. err = ppt.MoveGroupPpt(req.GroupId, req.GroupPptId, req.PrevGroupPptId, req.NextGroupPptId, this.SysUser.AdminId)
  266. if err != nil {
  267. br.Msg = err.Error()
  268. return
  269. }
  270. br.Ret = 200
  271. br.Success = true
  272. br.Msg = "移动成功"
  273. }
  274. // @router /group/move [post]
  275. func (this *PptV2GroupController) MoveGroup() {
  276. br := new(models.BaseResponse).Init()
  277. defer func() {
  278. this.Data["json"] = br
  279. this.ServeJSON()
  280. }()
  281. var req models.ReqMoveGroup
  282. err := json.Unmarshal(this.Ctx.Input.RequestBody, &req)
  283. if err != nil {
  284. br.Msg = "参数解析异常!"
  285. br.ErrMsg = "参数解析失败,Err:" + err.Error()
  286. return
  287. }
  288. if req.GroupId <= 0 {
  289. br.Msg = "请输入目录ID"
  290. return
  291. }
  292. err = ppt.MoveGroup(req.GroupId, req.PrevGroupId, req.NextGroupId, this.SysUser.AdminId)
  293. if err != nil {
  294. br.Msg = err.Error()
  295. return
  296. }
  297. br.Ret = 200
  298. br.Success = true
  299. br.Msg = "移动成功"
  300. }
  301. // @router /copy [post]
  302. func (this *PptV2GroupController) CopyPpt() {
  303. br := new(models.BaseResponse).Init()
  304. defer func() {
  305. this.Data["json"] = br
  306. this.ServeJSON()
  307. }()
  308. var req models.ReqCopyPpt
  309. err := json.Unmarshal(this.Ctx.Input.RequestBody, &req)
  310. if err != nil {
  311. br.Msg = "参数解析异常!"
  312. br.ErrMsg = "参数解析失败,Err:" + err.Error()
  313. return
  314. }
  315. if req.GroupId <= 0 {
  316. br.Msg = "请输入目录ID"
  317. return
  318. }
  319. if req.PptId <= 0 {
  320. br.Msg = "请输入ppt ID"
  321. return
  322. }
  323. data, err := ppt.CopyPpt(req.PptId, req.GroupId, this.SysUser.AdminId, this.SysUser.RealName)
  324. if err != nil {
  325. br.Msg = err.Error()
  326. return
  327. }
  328. br.Ret = 200
  329. br.Success = true
  330. br.Msg = "复制成功"
  331. br.Data = data
  332. return
  333. }
  334. // @router /group/name [get]
  335. func (this *PptV2GroupController) GroupNameList() {
  336. br := new(models.BaseResponse).Init()
  337. defer func() {
  338. this.Data["json"] = br
  339. this.ServeJSON()
  340. }()
  341. list, err := models.GetPptGroupIdAndGroupNameByAdminId(this.SysUser.AdminId)
  342. if err != nil {
  343. br.Msg = "查询目录名称出错" + err.Error()
  344. return
  345. }
  346. data := &models.RespPptGroupNameList{
  347. List: list,
  348. }
  349. br.Ret = 200
  350. br.Success = true
  351. br.Msg = "查询成功"
  352. br.Data = data
  353. return
  354. }
  355. // @router /group/ppt/search [get]
  356. func (this *PptV2GroupController) SearchGroupPptList() {
  357. br := new(models.BaseResponse).Init()
  358. defer func() {
  359. this.Data["json"] = br
  360. this.ServeJSON()
  361. }()
  362. keyWord := this.GetString("KeyWord")
  363. data, err := ppt.SearchGroupPpt(keyWord)
  364. if err != nil {
  365. br.Msg = err.Error()
  366. return
  367. }
  368. br.Ret = 200
  369. br.Success = true
  370. br.Msg = "查询成功"
  371. br.Data = data
  372. return
  373. }
  374. // @router /share/ppt/list [get]
  375. func (this *PptV2GroupController) SharePptList() {
  376. br := new(models.BaseResponse).Init()
  377. defer func() {
  378. this.Data["json"] = br
  379. this.ServeJSON()
  380. }()
  381. sysUser := this.SysUser
  382. if sysUser == nil {
  383. br.Msg = "请登录"
  384. br.ErrMsg = "请登录,SysUser Is Empty"
  385. br.Ret = 408
  386. return
  387. }
  388. adminId, _ := this.GetInt("AdminId")
  389. keyword := this.GetString("Keyword")
  390. isPrivate, _ := this.GetBool("IsPrivate", false)
  391. if isPrivate && adminId <= 0 {
  392. br.Msg = "参数有误, 私有PPT创建人ID不可为空"
  393. return
  394. }
  395. data, err := ppt.GetSharePptList(adminId, keyword, isPrivate)
  396. if err != nil {
  397. br.Msg = err.Error()
  398. return
  399. }
  400. for _, v := range data.List {
  401. editor, e := services.UpdatePptEditing(int(v.PptId), 0, sysUser.AdminId, sysUser.RealName, false)
  402. if e != nil {
  403. br.Msg = "获取失败"
  404. br.ErrMsg = fmt.Sprintf("获取PPT编辑状态失败, err: %s", e.Error())
  405. return
  406. }
  407. v.Editor = editor
  408. }
  409. br.Ret = 200
  410. br.Success = true
  411. br.Msg = "查询成功"
  412. br.Data = data
  413. return
  414. }
  415. // @router /grant/ppt/list [get]
  416. func (this *PptV2GroupController) GrantPptList() {
  417. br := new(models.BaseResponse).Init()
  418. defer func() {
  419. this.Data["json"] = br
  420. this.ServeJSON()
  421. }()
  422. sysUser := this.SysUser
  423. if sysUser == nil {
  424. br.Msg = "请登录"
  425. br.ErrMsg = "请登录,SysUser Is Empty"
  426. br.Ret = 408
  427. return
  428. }
  429. groupId, _ := this.GetInt("GroupId")
  430. keyword := this.GetString("Keyword")
  431. var sourceType string
  432. switch groupId {
  433. case 1:
  434. sourceType = "my"
  435. case 2:
  436. sourceType = "other"
  437. default:
  438. br.Msg = "错误的来源"
  439. br.IsSendEmail = false
  440. return
  441. }
  442. data, err := ppt.GetGrantPptList(this.SysUser.AdminId, keyword, sourceType)
  443. if err != nil {
  444. br.Msg = err.Error()
  445. return
  446. }
  447. for _, v := range data.List {
  448. editor, e := services.UpdatePptEditing(int(v.PptId), 0, sysUser.AdminId, sysUser.RealName, false)
  449. if e != nil {
  450. br.Msg = "获取失败"
  451. br.ErrMsg = fmt.Sprintf("获取PPT编辑状态失败, err: %s", e.Error())
  452. return
  453. }
  454. v.Editor = editor
  455. }
  456. br.Ret = 200
  457. br.Success = true
  458. br.Msg = "查询成功"
  459. br.Data = data
  460. return
  461. }
  462. // @router /ppt/search [get]
  463. func (this *PptV2GroupController) ListSearch() {
  464. br := new(models.BaseResponse).Init()
  465. defer func() {
  466. if br.ErrMsg == "" {
  467. br.IsSendEmail = false
  468. }
  469. this.Data["json"] = br
  470. this.ServeJSON()
  471. }()
  472. sysUser := this.SysUser
  473. if sysUser == nil {
  474. br.Msg = "请登录"
  475. br.ErrMsg = "请登录,SysUser Is Empty"
  476. br.Ret = 408
  477. return
  478. }
  479. keyword := this.GetString("Keyword")
  480. keyword = strings.TrimSpace(keyword)
  481. data, err := ppt.SearchPptList(sysUser.AdminId, keyword)
  482. if err != nil {
  483. br.Msg = err.Error()
  484. return
  485. }
  486. br.Ret = 200
  487. br.Success = true
  488. br.Msg = "查询成功"
  489. br.Data = data
  490. }