chart_framework.go 8.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319
  1. package chart_framework
  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 eta_business.EtaBusinessAddReq 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 eta_training_video.EtaTrainingVideoRemoveReq 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. // // 参数校验
  243. // var req eta_training_video.EtaTrainingVideoRemoveReq
  244. // if e := json.Unmarshal(this.Ctx.Input.RequestBody, &req); e != nil {
  245. // br.Msg = "参数解析异常!"
  246. // br.ErrMsg = "参数解析失败,Err:" + e.Error()
  247. // return
  248. // }
  249. // if req.VideoId <= 0 {
  250. // br.Msg = "参数有误"
  251. // br.ErrMsg = fmt.Sprint("参数有误, 视频ID: ", req.VideoId)
  252. // return
  253. // }
  254. //
  255. // ob := new(eta_training_video.EtaTrainingVideo)
  256. // item, e := ob.GetItemById(req.VideoId)
  257. // if e != nil {
  258. // if e.Error() == utils.ErrNoRow() {
  259. // br.Ret = 200
  260. // br.Success = true
  261. // br.Msg = "操作成功"
  262. // return
  263. // }
  264. // br.Msg = "操作失败"
  265. // br.ErrMsg = "获取ETA培训视频失败, Err: " + e.Error()
  266. // return
  267. // }
  268. // if e := item.Del(); e != nil {
  269. // br.Msg = "操作失败"
  270. // br.ErrMsg = "删除ETA培训视频失败, Err: " + e.Error()
  271. // return
  272. // }
  273. //
  274. // // 移除分类、标签关联, 更新标签引用数
  275. // go func() {
  276. // cr := new(eta_training_video.EtaTrainingVideoClassifyRelate)
  277. // _ = cr.RemoveRelateByVideoId(item.EtaTrainingVideoId)
  278. //
  279. // tr := new(eta_training_video.EtaTrainingVideoTagRelate)
  280. // _ = tr.RemoveRelateByVideoId(item.EtaTrainingVideoId)
  281. //
  282. // t := new(eta_training_video.EtaTrainingVideoTag)
  283. // _ = t.RemoveVideoTotalByVideoId(item.EtaTrainingVideoId)
  284. // }()
  285. //
  286. // // 操作日志
  287. // go func() {
  288. // logItem := new(eta_training_video.EtaTrainingVideoOpLog)
  289. // logItem.EtaTrainingVideoId = item.EtaTrainingVideoId
  290. // logItem.SysUserId = sysUser.AdminId
  291. // logItem.SysRealName = sysUser.RealName
  292. // logItem.OpType = eta_training_video.VideoOpTypeRemove
  293. // b, e := json.Marshal(item)
  294. // if e != nil {
  295. // return
  296. // }
  297. // logItem.OpData = string(b)
  298. // logItem.CreateTime = time.Now().Local()
  299. // _ = logItem.Create()
  300. // }()
  301. //
  302. // br.Ret = 200
  303. // br.Success = true
  304. // br.Msg = "操作成功"
  305. //}