chart_framework.go 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504
  1. package data_manage
  2. import (
  3. "encoding/json"
  4. "eta/eta_api/controllers"
  5. "eta/eta_api/models"
  6. "eta/eta_api/models/data_manage"
  7. "eta/eta_api/utils"
  8. "fmt"
  9. "strings"
  10. "time"
  11. )
  12. // ChartFrameworkController 图库框架
  13. type ChartFrameworkController struct {
  14. controllers.BaseAuthController
  15. }
  16. // List
  17. // @Title 列表
  18. // @Description 列表
  19. // @Param Visibility query int false "可见度: 0-所有(默认); 1-我的; 2-公开"
  20. // @Param Keyword query string false "关键词"
  21. // @Success 200 Ret=200 获取成功
  22. // @router /list [get]
  23. func (this *ChartFrameworkController) List() {
  24. br := new(models.BaseResponse).Init()
  25. defer func() {
  26. if br.ErrMsg == "" {
  27. br.IsSendEmail = false
  28. }
  29. this.Data["json"] = br
  30. this.ServeJSON()
  31. }()
  32. sysUser := this.SysUser
  33. if sysUser == nil {
  34. br.Msg = "请登录"
  35. br.ErrMsg = "请登录,SysUser Is Empty"
  36. br.Ret = 408
  37. return
  38. }
  39. br.Ret = 200
  40. br.Success = true
  41. br.Msg = "获取成功"
  42. }
  43. // Add
  44. // @Title 新增框架
  45. // @Description 新增框架
  46. // @Param request body data_manage.ChartFrameworkAddReq true "type json string"
  47. // @Success 200 Ret=200 操作成功
  48. // @router /add [post]
  49. func (this *ChartFrameworkController) Add() {
  50. br := new(models.BaseResponse).Init()
  51. defer func() {
  52. if br.ErrMsg == "" {
  53. br.IsSendEmail = false
  54. }
  55. this.Data["json"] = br
  56. this.ServeJSON()
  57. }()
  58. sysUser := this.SysUser
  59. if sysUser == nil {
  60. br.Msg = "请登录"
  61. br.ErrMsg = "请登录,SysUser Is Empty"
  62. br.Ret = 408
  63. return
  64. }
  65. // 参数校验
  66. var req data_manage.ChartFrameworkAddReq
  67. if e := json.Unmarshal(this.Ctx.Input.RequestBody, &req); e != nil {
  68. br.Msg = "参数解析异常!"
  69. br.ErrMsg = "参数解析失败,Err:" + e.Error()
  70. return
  71. }
  72. req.FrameworkName = strings.TrimSpace(req.FrameworkName)
  73. if req.FrameworkName == "" {
  74. br.Msg = "框架名称不可为空"
  75. return
  76. }
  77. // 重名校验
  78. {
  79. ob := new(data_manage.ChartFramework)
  80. cond := fmt.Sprintf(` AND %s = ?`, data_manage.ChartFrameworkColumns.FrameworkName)
  81. pars := make([]interface{}, 0)
  82. pars = append(pars, req.FrameworkName)
  83. exist, e := ob.GetItemByCondition(cond, pars)
  84. if e != nil && e.Error() != utils.ErrNoRow() {
  85. br.Msg = "操作失败"
  86. br.ErrMsg = "获取重名框架失败, Err: " + e.Error()
  87. return
  88. }
  89. if exist != nil {
  90. br.Msg = "框架名称已存在"
  91. return
  92. }
  93. }
  94. now := time.Now().Local()
  95. frameworkCode := utils.MD5(fmt.Sprint(now.UnixMilli()))
  96. item := new(data_manage.ChartFramework)
  97. item.FrameworkName = req.FrameworkName
  98. item.FrameworkCode = frameworkCode
  99. item.FrameworkImg = req.FrameworkImg
  100. item.FrameworkContent = req.FrameworkContent
  101. item.AdminId = sysUser.AdminId
  102. item.AdminName = sysUser.RealName
  103. item.CreateTime = now
  104. item.ModifyTime = now
  105. nodes := make([]*data_manage.ChartFrameworkNode, 0)
  106. if len(req.Nodes) > 0 {
  107. for _, v := range req.Nodes {
  108. if v <= 0 {
  109. continue
  110. }
  111. t := new(data_manage.ChartFrameworkNode)
  112. t.MyChartClassifyId = v
  113. t.CreateTime = now
  114. }
  115. }
  116. if e := item.CreateFrameworkAndNodes(item, nodes); e != nil {
  117. br.Msg = "操作失败"
  118. br.ErrMsg = "新增框架及节点失败, Err: " + e.Error()
  119. return
  120. }
  121. br.Ret = 200
  122. br.Success = true
  123. br.Msg = "操作成功"
  124. }
  125. // Edit
  126. // @Title 编辑框架
  127. // @Description 编辑框架
  128. // @Param request body data_manage.ChartFrameworkEditReq true "type json string"
  129. // @Success 200 Ret=200 操作成功
  130. // @router /edit [post]
  131. func (this *ChartFrameworkController) Edit() {
  132. br := new(models.BaseResponse).Init()
  133. defer func() {
  134. if br.ErrMsg == "" {
  135. br.IsSendEmail = false
  136. }
  137. this.Data["json"] = br
  138. this.ServeJSON()
  139. }()
  140. sysUser := this.SysUser
  141. if sysUser == nil {
  142. br.Msg = "请登录"
  143. br.ErrMsg = "请登录,SysUser Is Empty"
  144. br.Ret = 408
  145. return
  146. }
  147. // 参数校验
  148. var req data_manage.ChartFrameworkEditReq
  149. if e := json.Unmarshal(this.Ctx.Input.RequestBody, &req); e != nil {
  150. br.Msg = "参数解析异常!"
  151. br.ErrMsg = "参数解析失败,Err:" + e.Error()
  152. return
  153. }
  154. if req.ChartFrameworkId <= 0 {
  155. br.Msg = "参数有误"
  156. br.ErrMsg = fmt.Sprintf("参数有误, ChartFrameworkId: %d", req.ChartFrameworkId)
  157. return
  158. }
  159. req.FrameworkName = strings.TrimSpace(req.FrameworkName)
  160. if req.FrameworkName == "" {
  161. br.Msg = "框架名称不可为空"
  162. return
  163. }
  164. frameworkOb := new(data_manage.ChartFramework)
  165. item, e := frameworkOb.GetItemById(req.ChartFrameworkId)
  166. if e != nil {
  167. if e.Error() == utils.ErrNoRow() {
  168. br.Msg = "框架不存在, 请刷新页面"
  169. return
  170. }
  171. br.Msg = "操作失败"
  172. br.ErrMsg = "获取框架失败, Err: " + e.Error()
  173. return
  174. }
  175. // 重名校验
  176. {
  177. ob := new(data_manage.ChartFramework)
  178. cond := fmt.Sprintf(` AND %s <> ? AND %s = ?`, ob.PrimaryId(), data_manage.ChartFrameworkColumns.FrameworkName)
  179. pars := make([]interface{}, 0)
  180. pars = append(pars, req.FrameworkName)
  181. exist, e := ob.GetItemByCondition(cond, pars)
  182. if e != nil && e.Error() != utils.ErrNoRow() {
  183. br.Msg = "操作失败"
  184. br.ErrMsg = "获取重名框架失败, Err: " + e.Error()
  185. return
  186. }
  187. if exist != nil {
  188. br.Msg = "框架名称已存在"
  189. return
  190. }
  191. }
  192. now := time.Now().Local()
  193. item.FrameworkName = req.FrameworkName
  194. item.FrameworkImg = req.FrameworkImg
  195. item.FrameworkContent = req.FrameworkContent
  196. item.ModifyTime = now
  197. updateCols := []string{"FrameworkName", "FrameworkImg", "FrameworkContent", "ModifyTime"}
  198. nodes := make([]*data_manage.ChartFrameworkNode, 0)
  199. if len(req.Nodes) > 0 {
  200. for _, v := range req.Nodes {
  201. if v <= 0 {
  202. continue
  203. }
  204. t := new(data_manage.ChartFrameworkNode)
  205. t.ChartFrameworkId = item.ChartFrameworkId
  206. t.MyChartClassifyId = v
  207. t.CreateTime = now
  208. }
  209. }
  210. if e := item.EditFrameworkAndNodes(item, updateCols, nodes); e != nil {
  211. br.Msg = "操作失败"
  212. br.ErrMsg = "编辑框架及节点失败, Err: " + e.Error()
  213. return
  214. }
  215. br.Ret = 200
  216. br.Success = true
  217. br.Msg = "操作成功"
  218. }
  219. // Remove
  220. // @Title 删除框架
  221. // @Description 删除视频
  222. // @Param request body data_manage.ChartFrameworkRemoveReq true "type json string"
  223. // @Success 200 Ret=200 操作成功
  224. // @router /remove [post]
  225. func (this *ChartFrameworkController) Remove() {
  226. br := new(models.BaseResponse).Init()
  227. defer func() {
  228. if br.ErrMsg == "" {
  229. br.IsSendEmail = false
  230. }
  231. this.Data["json"] = br
  232. this.ServeJSON()
  233. }()
  234. sysUser := this.SysUser
  235. if sysUser == nil {
  236. br.Msg = "请登录"
  237. br.ErrMsg = "请登录,SysUser Is Empty"
  238. br.Ret = 408
  239. return
  240. }
  241. // 参数校验
  242. var req data_manage.ChartFrameworkRemoveReq
  243. if e := json.Unmarshal(this.Ctx.Input.RequestBody, &req); e != nil {
  244. br.Msg = "参数解析异常!"
  245. br.ErrMsg = "参数解析失败,Err:" + e.Error()
  246. return
  247. }
  248. if req.ChartFrameworkId <= 0 {
  249. br.Msg = "参数有误"
  250. br.ErrMsg = fmt.Sprintf("参数有误, ChartFrameworkId: %d", req.ChartFrameworkId)
  251. return
  252. }
  253. ob := new(data_manage.ChartFramework)
  254. item, e := ob.GetItemById(req.ChartFrameworkId)
  255. if e != nil {
  256. if e.Error() == utils.ErrNoRow() {
  257. br.Ret = 200
  258. br.Success = true
  259. br.Msg = "操作成功"
  260. return
  261. }
  262. br.Msg = "操作失败"
  263. br.ErrMsg = "获取框架失败, Err: " + e.Error()
  264. return
  265. }
  266. if e := item.RemoveFrameworkAndNodes(req.ChartFrameworkId); e != nil {
  267. br.Msg = "操作失败"
  268. br.ErrMsg = "删除框架失败, Err: " + e.Error()
  269. return
  270. }
  271. br.Ret = 200
  272. br.Success = true
  273. br.Msg = "操作成功"
  274. }
  275. // Rename
  276. // @Title 重命名框架
  277. // @Description 重命名框架
  278. // @Param request body data_manage.ChartFrameworkRenameReq true "type json string"
  279. // @Success 200 Ret=200 操作成功
  280. // @router /rename [post]
  281. func (this *ChartFrameworkController) Rename() {
  282. br := new(models.BaseResponse).Init()
  283. defer func() {
  284. if br.ErrMsg == "" {
  285. br.IsSendEmail = false
  286. }
  287. this.Data["json"] = br
  288. this.ServeJSON()
  289. }()
  290. sysUser := this.SysUser
  291. if sysUser == nil {
  292. br.Msg = "请登录"
  293. br.ErrMsg = "请登录,SysUser Is Empty"
  294. br.Ret = 408
  295. return
  296. }
  297. // 参数校验
  298. var req data_manage.ChartFrameworkRenameReq
  299. if e := json.Unmarshal(this.Ctx.Input.RequestBody, &req); e != nil {
  300. br.Msg = "参数解析异常!"
  301. br.ErrMsg = "参数解析失败,Err:" + e.Error()
  302. return
  303. }
  304. if req.ChartFrameworkId <= 0 {
  305. br.Msg = "参数有误"
  306. br.ErrMsg = fmt.Sprintf("参数有误, ChartFrameworkId: %d", req.ChartFrameworkId)
  307. return
  308. }
  309. req.FrameworkName = strings.TrimSpace(req.FrameworkName)
  310. if req.FrameworkName == "" {
  311. br.Msg = "框架名称不可为空"
  312. return
  313. }
  314. frameworkOb := new(data_manage.ChartFramework)
  315. item, e := frameworkOb.GetItemById(req.ChartFrameworkId)
  316. if e != nil {
  317. if e.Error() == utils.ErrNoRow() {
  318. br.Msg = "框架不存在, 请刷新页面"
  319. return
  320. }
  321. br.Msg = "操作失败"
  322. br.ErrMsg = "获取框架失败, Err: " + e.Error()
  323. return
  324. }
  325. // 重名校验
  326. {
  327. ob := new(data_manage.ChartFramework)
  328. cond := fmt.Sprintf(` AND %s <> ? AND %s = ?`, ob.PrimaryId(), data_manage.ChartFrameworkColumns.FrameworkName)
  329. pars := make([]interface{}, 0)
  330. pars = append(pars, req.FrameworkName)
  331. exist, e := ob.GetItemByCondition(cond, pars)
  332. if e != nil && e.Error() != utils.ErrNoRow() {
  333. br.Msg = "操作失败"
  334. br.ErrMsg = "获取重名框架失败, Err: " + e.Error()
  335. return
  336. }
  337. if exist != nil {
  338. br.Msg = "框架名称已存在"
  339. return
  340. }
  341. }
  342. now := time.Now().Local()
  343. item.FrameworkName = req.FrameworkName
  344. item.ModifyTime = now
  345. updateCols := []string{"FrameworkName", "ModifyTime"}
  346. if e := item.Update(updateCols); e != nil {
  347. br.Msg = "操作失败"
  348. br.ErrMsg = "框架重命名失败, Err: " + e.Error()
  349. return
  350. }
  351. br.Ret = 200
  352. br.Success = true
  353. br.Msg = "操作成功"
  354. }
  355. // EditPublic
  356. // @Title 公开/隐藏框架
  357. // @Description 公开/隐藏框架
  358. // @Param request body data_manage.ChartFrameworkEditPublicReq true "type json string"
  359. // @Success 200 Ret=200 操作成功
  360. // @router /edit_public [post]
  361. func (this *ChartFrameworkController) EditPublic() {
  362. br := new(models.BaseResponse).Init()
  363. defer func() {
  364. if br.ErrMsg == "" {
  365. br.IsSendEmail = false
  366. }
  367. this.Data["json"] = br
  368. this.ServeJSON()
  369. }()
  370. sysUser := this.SysUser
  371. if sysUser == nil {
  372. br.Msg = "请登录"
  373. br.ErrMsg = "请登录,SysUser Is Empty"
  374. br.Ret = 408
  375. return
  376. }
  377. // 参数校验
  378. var req data_manage.ChartFrameworkEditPublicReq
  379. if e := json.Unmarshal(this.Ctx.Input.RequestBody, &req); e != nil {
  380. br.Msg = "参数解析异常!"
  381. br.ErrMsg = "参数解析失败,Err:" + e.Error()
  382. return
  383. }
  384. if req.ChartFrameworkId <= 0 {
  385. br.Msg = "参数有误"
  386. br.ErrMsg = fmt.Sprintf("参数有误, ChartFrameworkId: %d", req.ChartFrameworkId)
  387. return
  388. }
  389. if req.IsPublic != 0 && req.IsPublic != 1 {
  390. br.Msg = "参数有误"
  391. br.ErrMsg = fmt.Sprintf("参数有误, IsPublic: %d", req.IsPublic)
  392. return
  393. }
  394. frameworkOb := new(data_manage.ChartFramework)
  395. item, e := frameworkOb.GetItemById(req.ChartFrameworkId)
  396. if e != nil {
  397. if e.Error() == utils.ErrNoRow() {
  398. br.Msg = "框架不存在, 请刷新页面"
  399. return
  400. }
  401. br.Msg = "操作失败"
  402. br.ErrMsg = "获取框架失败, Err: " + e.Error()
  403. return
  404. }
  405. now := time.Now().Local()
  406. item.IsPublic = req.IsPublic
  407. item.ModifyTime = now
  408. updateCols := []string{"IsPublic", "ModifyTime"}
  409. if e := item.Update(updateCols); e != nil {
  410. br.Msg = "操作失败"
  411. br.ErrMsg = "更新框架是否公开失败, Err: " + e.Error()
  412. return
  413. }
  414. br.Ret = 200
  415. br.Success = true
  416. br.Msg = "操作成功"
  417. }
  418. // Move
  419. // @Title 移动排序
  420. // @Description 移动排序
  421. // @Param request body data_manage.ChartFrameworkMoveReq true "type json string"
  422. // @Success 200 Ret=200 操作成功
  423. // @router /move [post]
  424. func (this *ChartFrameworkController) Move() {
  425. br := new(models.BaseResponse).Init()
  426. defer func() {
  427. if br.ErrMsg == "" {
  428. br.IsSendEmail = false
  429. }
  430. this.Data["json"] = br
  431. this.ServeJSON()
  432. }()
  433. sysUser := this.SysUser
  434. if sysUser == nil {
  435. br.Msg = "请登录"
  436. br.ErrMsg = "请登录,SysUser Is Empty"
  437. br.Ret = 408
  438. return
  439. }
  440. // 参数校验
  441. var req data_manage.ChartFrameworkMoveReq
  442. if e := json.Unmarshal(this.Ctx.Input.RequestBody, &req); e != nil {
  443. br.Msg = "参数解析异常!"
  444. br.ErrMsg = "参数解析失败,Err:" + e.Error()
  445. return
  446. }
  447. if req.ChartFrameworkId <= 0 {
  448. br.Msg = "参数有误"
  449. br.ErrMsg = fmt.Sprintf("参数有误, ChartFrameworkId: %d", req.ChartFrameworkId)
  450. return
  451. }
  452. //frameworkOb := new(data_manage.ChartFramework)
  453. //item, e := frameworkOb.GetItemById(req.ChartFrameworkId)
  454. //if e != nil {
  455. // if e.Error() == utils.ErrNoRow() {
  456. // br.Msg = "框架不存在, 请刷新页面"
  457. // return
  458. // }
  459. // br.Msg = "操作失败"
  460. // br.ErrMsg = "获取框架失败, Err: " + e.Error()
  461. // return
  462. //}
  463. //now := time.Now().Local()
  464. //item.IsPublic = req.IsPublic
  465. //item.ModifyTime = now
  466. //updateCols := []string{"IsPublic", "ModifyTime"}
  467. //if e := item.Update(updateCols); e != nil {
  468. // br.Msg = "操作失败"
  469. // br.ErrMsg = "更新框架是否公开失败, Err: " + e.Error()
  470. // return
  471. //}
  472. br.Ret = 200
  473. br.Success = true
  474. br.Msg = "操作成功"
  475. }