excel_classify.go 19 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682
  1. package excel
  2. import (
  3. "encoding/json"
  4. "eta/eta_api/controllers"
  5. "eta/eta_api/models"
  6. "eta/eta_api/models/data_manage/excel"
  7. "eta/eta_api/models/data_manage/excel/request"
  8. response2 "eta/eta_api/models/data_manage/excel/response"
  9. excel2 "eta/eta_api/services/data/excel"
  10. "eta/eta_api/utils"
  11. "fmt"
  12. "sort"
  13. "strconv"
  14. "time"
  15. )
  16. // ExcelClassifyController ETA表格分类
  17. type ExcelClassifyController struct {
  18. controllers.BaseAuthController
  19. }
  20. // List
  21. // @Title excel表格分类列表
  22. // @Description excel表格分类列表接口
  23. // @Param Source query int true "格来源,1:excel插件的表格,2:自定义表格,3:混合表格,默认:1"
  24. // @Param IsShowMe query bool true "是否只看我的,true、false"
  25. // @Success 200 {object} response.ExcelClassifyListResp
  26. // @router /excel_classify/list [get]
  27. func (this *ExcelClassifyController) List() {
  28. br := new(models.BaseResponse).Init()
  29. defer func() {
  30. this.Data["json"] = br
  31. this.ServeJSON()
  32. }()
  33. source, _ := this.GetInt("Source")
  34. if source <= 0 {
  35. source = utils.EXCEL_DEFAULT
  36. }
  37. //只看我的
  38. isShowMe, _ := this.GetBool("IsShowMe")
  39. showUserId := 0
  40. if isShowMe {
  41. showUserId = this.SysUser.AdminId
  42. }
  43. classifyList, err := excel.GetExcelClassifyBySource(source)
  44. if err != nil {
  45. br.Msg = "获取失败"
  46. br.ErrMsg = "获取数据失败,Err:" + err.Error()
  47. return
  48. }
  49. // 获取二级分类
  50. // 获取三级分类
  51. // 根据来源获取所有excel表格(无内容)
  52. allExcelInfo, err := excel.GetNoContentExcelInfoAll(source, showUserId)
  53. if err != nil && err.Error() != utils.ErrNoRow() {
  54. br.Msg = "获取失败"
  55. br.ErrMsg = "获取表格信息失败,Err:" + err.Error()
  56. return
  57. }
  58. ExcelInfoMap := make(map[int][]*excel.ExcelClassifyItems)
  59. for _, v := range allExcelInfo {
  60. ExcelInfoMap[v.ExcelClassifyId] = append(ExcelInfoMap[v.ExcelClassifyId], v)
  61. }
  62. classifyMap := make(map[int][]*excel.ExcelClassifyItems)
  63. for _, v := range classifyList {
  64. if existItems, ok := ExcelInfoMap[v.ExcelClassifyId]; ok {
  65. v.Children = existItems
  66. }
  67. }
  68. for _, v := range classifyList {
  69. if v.ParentId > 0 {
  70. classifyMap[v.ParentId] = append(classifyMap[v.ParentId], v)
  71. }
  72. }
  73. // todo 整理第三层
  74. //组装三级分类
  75. for key, classify := range classifyList {
  76. subList, ok := classifyMap[classify.ExcelClassifyId]
  77. if ok && classify.Level == 3 {
  78. classifyList[key].Children = append(classifyList[key].Children, subList...)
  79. }
  80. }
  81. // todo 整理第二层
  82. for key, classify := range classifyList {
  83. subList, ok := classifyMap[classify.ExcelClassifyId]
  84. // 调用sort.Slice函数,传入切片、比较函数作为参数
  85. sort.Slice(subList, func(i, j int) bool { return excel.ExcelClassifyItemBySort(subList[i], subList[j]) })
  86. if ok && classify.Level == 2 {
  87. classifyList[key].Children = append(classifyList[key].Children, subList...)
  88. }
  89. }
  90. // todo 整理第一层
  91. for key, classify := range classifyList {
  92. subList, ok := classifyMap[classify.ExcelClassifyId]
  93. sort.Slice(subList, func(i, j int) bool { return excel.ExcelClassifyItemBySort(subList[i], subList[j]) })
  94. if ok && classify.Level == 1 {
  95. classifyList[key].Children = append(classifyList[key].Children, subList...)
  96. }
  97. }
  98. nodeAll := make([]*excel.ExcelClassifyItems, 0)
  99. for _, v := range classifyList {
  100. if v.ParentId == 0 {
  101. sort.Slice(v.Children, func(i, j int) bool { return excel.ExcelClassifyItemBySort(v.Children[i], v.Children[j]) })
  102. nodeAll = append(nodeAll, v)
  103. }
  104. }
  105. resp := response2.ExcelClassifyListResp{
  106. AllNodes: nodeAll,
  107. }
  108. br.Ret = 200
  109. br.Success = true
  110. br.Msg = "获取成功"
  111. br.Data = resp
  112. }
  113. // ExcelClassifyItems
  114. // @Title 获取所有excel表格分类接口-不包含表格
  115. // @Description 获取所有excel表格分类接口-不包含表格
  116. // @Param Source query int true "格来源,1:excel插件的表格,2:自定义表格,3:混合表格,默认:1"
  117. // @Success 200 {object} response.ExcelClassifyListResp
  118. // @router /excel_classify/items [get]
  119. func (this *ExcelClassifyController) ExcelClassifyItems() {
  120. br := new(models.BaseResponse).Init()
  121. defer func() {
  122. this.Data["json"] = br
  123. this.ServeJSON()
  124. }()
  125. source, _ := this.GetInt("Source")
  126. if source <= 0 {
  127. source = utils.EXCEL_DEFAULT
  128. }
  129. rootList, err := excel.GetExcelClassifyByParentId(0, source)
  130. if err != nil {
  131. br.Msg = "获取失败"
  132. br.ErrMsg = "获取数据失败,Err:" + err.Error()
  133. return
  134. }
  135. resp := response2.ExcelClassifyListResp{
  136. AllNodes: rootList,
  137. }
  138. br.Ret = 200
  139. br.Success = true
  140. br.Msg = "获取成功"
  141. br.Data = resp
  142. }
  143. // AddExcelClassify
  144. // @Title 新增excel表格分类
  145. // @Description 新增excel表格分类接口
  146. // @Param request body request.AddExcelClassifyReq true "type json string"
  147. // @Success 200 Ret=200 保存成功
  148. // @router /excel_classify/add [post]
  149. func (this *ExcelClassifyController) AddExcelClassify() {
  150. br := new(models.BaseResponse).Init()
  151. defer func() {
  152. this.Data["json"] = br
  153. this.ServeJSON()
  154. }()
  155. var req request.AddExcelClassifyReq
  156. err := json.Unmarshal(this.Ctx.Input.RequestBody, &req)
  157. if err != nil {
  158. br.Msg = "参数解析异常!"
  159. br.ErrMsg = "参数解析失败,Err:" + err.Error()
  160. return
  161. }
  162. if req.ExcelClassifyName == "" {
  163. br.Msg = "请输入分类名称"
  164. br.IsSendEmail = false
  165. return
  166. }
  167. if req.ParentId < 0 {
  168. br.Msg = "参数错误"
  169. br.IsSendEmail = false
  170. return
  171. }
  172. source := req.Source
  173. if source <= 0 {
  174. source = utils.EXCEL_DEFAULT
  175. }
  176. // 获取同级分类下存在同名分类的数量
  177. count, err := excel.GetExcelClassifyCount(req.ExcelClassifyName, req.ParentId, source)
  178. if err != nil {
  179. br.Msg = "判断名称是否已存在失败"
  180. br.ErrMsg = "判断名称是否已存在失败,Err:" + err.Error()
  181. return
  182. }
  183. if count > 0 {
  184. br.Msg = "分类名称已存在,请重新输入"
  185. br.IsSendEmail = false
  186. return
  187. }
  188. //获取该层级下最大的排序数
  189. maxSort, err := excel2.GetExcelClassifyMaxSort(req.ParentId, req.Source)
  190. if err != nil {
  191. br.Msg = "获取失败"
  192. br.ErrMsg = "查询排序信息失败,Err:" + err.Error()
  193. return
  194. }
  195. // 查询父级分类是否存在
  196. if req.ParentId > 0 {
  197. var parent *excel.ExcelClassify
  198. parent, err = excel.GetExcelClassifyById(req.ParentId)
  199. if err != nil {
  200. if err.Error() == utils.ErrNoRow() {
  201. br.Msg = "父级分类不存在"
  202. return
  203. }
  204. br.Msg = "获取失败"
  205. br.ErrMsg = "查询父级分类信息失败,Err:" + err.Error()
  206. return
  207. }
  208. req.Level = parent.Level + 1
  209. }
  210. // 入库
  211. timestamp := strconv.FormatInt(time.Now().UnixNano(), 10)
  212. classify := &excel.ExcelClassify{
  213. //ExcelClassifyId: 0,
  214. ExcelClassifyName: req.ExcelClassifyName,
  215. ParentId: req.ParentId,
  216. Source: source,
  217. SysUserId: this.SysUser.AdminId,
  218. SysUserRealName: this.SysUser.RealName,
  219. Level: req.Level,
  220. UniqueCode: utils.MD5(utils.EXCEL_DATA_PREFIX + "_" + timestamp),
  221. Sort: maxSort + 1,
  222. CreateTime: time.Now(),
  223. ModifyTime: time.Now(),
  224. }
  225. _, err = excel.AddExcelClassify(classify)
  226. if err != nil {
  227. br.Msg = "保存分类失败"
  228. br.ErrMsg = "保存分类失败,Err:" + err.Error()
  229. return
  230. }
  231. br.Ret = 200
  232. br.Msg = "保存成功"
  233. br.Success = true
  234. }
  235. // EditExcelClassify
  236. // @Title 修改excel表格分类
  237. // @Description 修改excel表格分类
  238. // @Param request body request.EditExcelClassifyReq true "type json string"
  239. // @Success 200 Ret=200 修改成功
  240. // @router /excel_classify/edit [post]
  241. func (this *ExcelClassifyController) EditExcelClassify() {
  242. br := new(models.BaseResponse).Init()
  243. defer func() {
  244. this.Data["json"] = br
  245. this.ServeJSON()
  246. }()
  247. var req request.EditExcelClassifyReq
  248. err := json.Unmarshal(this.Ctx.Input.RequestBody, &req)
  249. if err != nil {
  250. br.Msg = "参数解析异常!"
  251. br.ErrMsg = "参数解析失败,Err:" + err.Error()
  252. return
  253. }
  254. if req.ExcelClassifyName == "" {
  255. br.Msg = "请输入分类名称"
  256. br.IsSendEmail = false
  257. return
  258. }
  259. if req.ExcelClassifyId <= 0 {
  260. br.Msg = "参数错误"
  261. br.IsSendEmail = false
  262. return
  263. }
  264. item, err := excel.GetExcelClassifyById(req.ExcelClassifyId)
  265. if err != nil {
  266. br.Msg = "保存失败"
  267. br.Msg = "获取分类信息失败,Err:" + err.Error()
  268. return
  269. }
  270. // 名字一致的话,直接返回成功
  271. if item.ExcelClassifyName == req.ExcelClassifyName {
  272. br.Ret = 200
  273. br.Msg = "保存成功"
  274. br.Success = true
  275. return
  276. }
  277. // 获取同级分类下存在同名分类的数量
  278. count, err := excel.GetExcelClassifyCount(req.ExcelClassifyName, item.ParentId, item.Source)
  279. if err != nil {
  280. br.Msg = "判断名称是否已存在失败"
  281. br.ErrMsg = "判断名称是否已存在失败,Err:" + err.Error()
  282. return
  283. }
  284. if count > 0 {
  285. br.Msg = "分类名称已存在,请重新输入"
  286. br.IsSendEmail = false
  287. return
  288. }
  289. // 修改分类名称
  290. item.ExcelClassifyName = req.ExcelClassifyName
  291. err = item.Update([]string{"ExcelClassifyName"})
  292. if err != nil {
  293. br.Msg = "保存失败"
  294. br.ErrMsg = "保存失败,Err:" + err.Error()
  295. return
  296. }
  297. br.Ret = 200
  298. br.Msg = "修改成功"
  299. br.Success = true
  300. br.IsAddLog = true
  301. }
  302. // DeleteExcelClassifyCheck
  303. // @Title 删除表格检测接口
  304. // @Description 删除表格检测接口
  305. // @Param request body request.ExcelClassifyDeleteCheckReq true "type json string"
  306. // @Success 200 {object} response.ExcelClassifyDeleteCheckResp
  307. // @router /excel_classify/delete/check [post]
  308. func (this *ExcelClassifyController) DeleteExcelClassifyCheck() {
  309. br := new(models.BaseResponse).Init()
  310. defer func() {
  311. this.Data["json"] = br
  312. this.ServeJSON()
  313. }()
  314. var req request.ExcelClassifyDeleteCheckReq
  315. err := json.Unmarshal(this.Ctx.Input.RequestBody, &req)
  316. if err != nil {
  317. br.Msg = "参数解析异常!"
  318. br.ErrMsg = "参数解析失败,Err:" + err.Error()
  319. return
  320. }
  321. if req.ExcelClassifyId < 0 && req.ExcelInfoId <= 0 {
  322. br.Msg = "参数错误"
  323. br.IsSendEmail = false
  324. return
  325. }
  326. var deleteStatus int
  327. var tipsMsg string
  328. // 校验是否存在该分类
  329. ExcelClassifyInfo, err := excel.GetExcelClassifyById(req.ExcelClassifyId)
  330. if err != nil {
  331. if err.Error() == utils.ErrNoRow() {
  332. br.Msg = "该分类不存在"
  333. br.ErrMsg = "该分类不存在"
  334. return
  335. }
  336. br.Msg = "删除失败"
  337. br.ErrMsg = "查询该分类失败,Err:" + err.Error()
  338. return
  339. }
  340. if ExcelClassifyInfo == nil {
  341. br.Msg = "该分类不存在"
  342. br.ErrMsg = "该分类不存在"
  343. br.IsSendEmail = false
  344. return
  345. }
  346. //删除分类
  347. if req.ExcelClassifyId > 0 && req.ExcelInfoId == 0 {
  348. //判断表格分类下,是否含有表格
  349. count, err := excel.GetExcelInfoCountByClassifyId(req.ExcelClassifyId)
  350. if err != nil {
  351. br.Msg = "删除失败"
  352. br.ErrMsg = "分类下是否含有指标失败,Err:" + err.Error()
  353. return
  354. }
  355. if count > 0 {
  356. deleteStatus = 1
  357. tipsMsg = "该分类下关联表格不可删除"
  358. } else {
  359. childClassify, e := excel.GetChildClassifyById(req.ExcelClassifyId)
  360. if e != nil && e.Error() != utils.ErrNoRow() {
  361. br.Msg = "获取失败"
  362. br.ErrMsg = "获取分类信息失败, GetEdbClassify,Err:" + e.Error()
  363. return
  364. }
  365. if len(childClassify) > 0 {
  366. var classifyIds []int
  367. for _, v := range childClassify {
  368. classifyIds = append(classifyIds, v.ExcelClassifyId)
  369. }
  370. condition := fmt.Sprintf(` AND excel_classify_id IN (%s) `, utils.GetOrmInReplace(len(classifyIds)))
  371. var pars []interface{}
  372. pars = append(pars, classifyIds)
  373. childCount, err := excel.GetExcelInfoCountByCondition(condition, pars)
  374. if err != nil && err.Error() != utils.ErrNoRow() {
  375. br.Msg = "删除失败"
  376. br.ErrMsg = "查询分类下表格数量失败,Err:" + err.Error()
  377. return
  378. }
  379. if childCount > 0 {
  380. deleteStatus = 1
  381. tipsMsg = "该分类下关联表格不可删除"
  382. }
  383. }
  384. }
  385. }
  386. //if deleteStatus != 1 && req.ExcelInfoId == 0 {
  387. // classifyCount, err := data_manage.GetExcelClassifyCountByClassifyId(req.ExcelClassifyId)
  388. // if err != nil && err.Error() != utils.ErrNoRow() {
  389. // br.Msg = "删除失败"
  390. // br.ErrMsg = "分类下是否含有表格失败,Err:" + err.Error()
  391. // return
  392. // }
  393. // if classifyCount > 0 {
  394. // deleteStatus = 2
  395. // tipsMsg = "确认删除当前目录及包含的子目录吗?"
  396. // }
  397. //}
  398. if deleteStatus == 0 {
  399. tipsMsg = "可删除,进行删除操作"
  400. }
  401. resp := response2.ExcelClassifyDeleteCheckResp{
  402. DeleteStatus: deleteStatus,
  403. TipsMsg: tipsMsg,
  404. }
  405. br.Ret = 200
  406. br.Msg = "检测成功"
  407. br.Success = true
  408. br.Data = resp
  409. }
  410. // DeleteExcelClassify
  411. // @Title 删除表格分类/表格
  412. // @Description 删除表格分类/表格接口
  413. // @Param request body request.DeleteExcelClassifyReq true "type json string"
  414. // @Success 200 Ret=200 删除成功
  415. // @router /excel_classify/delete [post]
  416. func (this *ExcelClassifyController) DeleteExcelClassify() {
  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. var req request.DeleteExcelClassifyReq
  430. err := json.Unmarshal(this.Ctx.Input.RequestBody, &req)
  431. if err != nil {
  432. br.Msg = "参数解析异常!"
  433. br.ErrMsg = "参数解析失败,Err:" + err.Error()
  434. return
  435. }
  436. if req.ExcelClassifyId < 0 && req.ExcelInfoId <= 0 {
  437. br.Msg = "参数错误"
  438. br.IsSendEmail = false
  439. return
  440. }
  441. //删除分类
  442. if req.ExcelClassifyId > 0 && req.ExcelInfoId == 0 {
  443. //判断是否含有指标
  444. count, err := excel.GetExcelInfoCountByClassifyId(req.ExcelClassifyId)
  445. if err != nil && err.Error() != utils.ErrNoRow() {
  446. br.Msg = "删除失败"
  447. br.ErrMsg = "判断名称是否已存在失败,Err:" + err.Error()
  448. return
  449. }
  450. if count > 0 {
  451. br.Msg = "该目录下存在关联ETA表格,不可删除"
  452. br.IsSendEmail = false
  453. return
  454. } else {
  455. childClassify, e := excel.GetChildClassifyById(req.ExcelClassifyId)
  456. if e != nil && e.Error() != utils.ErrNoRow() {
  457. br.Msg = "获取失败"
  458. br.ErrMsg = "获取分类信息失败, GetEdbClassify,Err:" + e.Error()
  459. return
  460. }
  461. if len(childClassify) > 0 {
  462. var classifyIds []int
  463. for _, v := range childClassify {
  464. classifyIds = append(classifyIds, v.ExcelClassifyId)
  465. }
  466. condition := fmt.Sprintf(` AND excel_classify_id IN (%s) `, utils.GetOrmInReplace(len(classifyIds)))
  467. var pars []interface{}
  468. pars = append(pars, classifyIds)
  469. childCount, err := excel.GetExcelInfoCountByCondition(condition, pars)
  470. if err != nil && err.Error() != utils.ErrNoRow() {
  471. br.Msg = "删除失败"
  472. br.ErrMsg = "查询分类下表格数量失败,Err:" + err.Error()
  473. return
  474. }
  475. if childCount > 0 {
  476. br.Msg = "该目录下存在关联ETA表格,不可删除"
  477. br.IsSendEmail = false
  478. return
  479. }
  480. }
  481. }
  482. classifyItem, err := excel.GetExcelClassifyById(req.ExcelClassifyId)
  483. if err != nil {
  484. br.Msg = "删除失败"
  485. br.ErrMsg = "获取分类失败,Err:" + err.Error()
  486. if err.Error() == utils.ErrNoRow() {
  487. br.Msg = "分类不存在"
  488. br.ErrMsg = "分类不存在"
  489. }
  490. return
  491. }
  492. classifyItem.IsDelete = 1
  493. err = classifyItem.Update([]string{"IsDelete"})
  494. if err != nil {
  495. br.Msg = "删除失败"
  496. br.ErrMsg = "删除失败,Err:" + err.Error()
  497. return
  498. }
  499. }
  500. resp := response2.AddExcelInfoResp{}
  501. //删除表格
  502. if req.ExcelInfoId > 0 {
  503. excelInfo, err := excel.GetExcelInfoById(req.ExcelInfoId)
  504. if err != nil {
  505. if err.Error() == utils.ErrNoRow() {
  506. br.Msg = "表格已删除,请刷新页面"
  507. br.ErrMsg = "表格已删除,请刷新页面"
  508. return
  509. } else {
  510. br.Msg = "删除失败"
  511. br.ErrMsg = "删除失败,获取指标信息失败,Err:" + err.Error()
  512. return
  513. }
  514. }
  515. if excelInfo == nil {
  516. br.Msg = "表格已删除,请刷新页面"
  517. br.IsSendEmail = false
  518. return
  519. }
  520. // 删除excel
  521. err, errMsg, isSendEmail := excel2.Delete(excelInfo, sysUser)
  522. if err != nil {
  523. br.Msg = "删除失败"
  524. if errMsg != `` {
  525. br.Msg = errMsg
  526. }
  527. br.ErrMsg = "删除失败,Err:" + err.Error()
  528. br.IsSendEmail = isSendEmail
  529. return
  530. }
  531. // 返回下一个表格的信息
  532. {
  533. var nextItem *excel.ExcelInfo
  534. var condition string
  535. var pars []interface{}
  536. condition += " AND excel_classify_id=? "
  537. pars = append(pars, excelInfo.ExcelClassifyId)
  538. condition += " AND (sort>? OR (sort=? AND excel_info_id<?) ) "
  539. pars = append(pars, excelInfo.Sort, excelInfo.Sort, excelInfo.ExcelInfoId)
  540. nextItem, err = excel.GetNextExcelInfoByCondition(condition, pars)
  541. if err != nil && err.Error() != utils.ErrNoRow() {
  542. br.Msg = "删除失败"
  543. br.ErrMsg = "获取下一级表格信息失败,Err:" + err.Error()
  544. return
  545. }
  546. // 如果没找到,那么查找下一个分类的第一个表格
  547. if nextItem == nil {
  548. currClassifyInfo, err := excel.GetExcelClassifyById(excelInfo.ExcelClassifyId)
  549. if err != nil && err.Error() != utils.ErrNoRow() {
  550. br.Msg = "删除失败"
  551. br.ErrMsg = "获取当前表格分类信息失败,Err:" + err.Error()
  552. return
  553. }
  554. nextItem, err = excel.GetNextExcelInfo(excelInfo.ExcelClassifyId, currClassifyInfo.Sort, currClassifyInfo.Source)
  555. if err != nil && err.Error() != utils.ErrNoRow() {
  556. br.Msg = "删除失败"
  557. br.ErrMsg = "获取下一级表格信息失败,Err:" + err.Error()
  558. return
  559. }
  560. }
  561. // 如果找到下一个表格了,那么就返回
  562. if nextItem != nil {
  563. resp = response2.AddExcelInfoResp{
  564. ExcelInfoId: nextItem.ExcelInfoId,
  565. UniqueCode: nextItem.UniqueCode,
  566. }
  567. }
  568. }
  569. //新增操作日志
  570. //{
  571. // ExcelLog := new(data_manage.ExcelInfoLog)
  572. // ExcelLog.ExcelName = ExcelInfo.ExcelName
  573. // ExcelLog.ExcelInfoId = req.ExcelInfoId
  574. // ExcelLog.ExcelClassifyId = ExcelInfo.ExcelClassifyId
  575. // ExcelLog.SysUserId = sysUser.AdminId
  576. // ExcelLog.SysUserRealName = sysUser.RealName
  577. // ExcelLog.UniqueCode = ExcelInfo.UniqueCode
  578. // ExcelLog.CreateTime = time.Now()
  579. // ExcelLog.Content = string(this.Ctx.Input.RequestBody)
  580. // ExcelLog.Status = "删除表格"
  581. // ExcelLog.Method = this.Ctx.Input.URI()
  582. // go data_manage.AddExcelInfoLog(ExcelLog)
  583. //}
  584. }
  585. br.Ret = 200
  586. br.Msg = "删除成功"
  587. br.Success = true
  588. br.Data = resp
  589. br.IsAddLog = true
  590. }
  591. // ExcelClassifyMove
  592. // @Title 表格分类移动接口
  593. // @Description 表格分类移动接口
  594. // @Success 200 {object} request.MoveExcelClassifyReq
  595. // @router /excel_classify/move [post]
  596. func (this *ExcelClassifyController) ExcelClassifyMove() {
  597. br := new(models.BaseResponse).Init()
  598. defer func() {
  599. this.Data["json"] = br
  600. this.ServeJSON()
  601. }()
  602. sysUser := this.SysUser
  603. if sysUser == nil {
  604. br.Msg = "请登录"
  605. br.ErrMsg = "请登录,SysUser Is Empty"
  606. br.Ret = 408
  607. return
  608. }
  609. var req request.MoveExcelClassifyReq
  610. err := json.Unmarshal(this.Ctx.Input.RequestBody, &req)
  611. if err != nil {
  612. br.Msg = "参数解析异常!"
  613. br.ErrMsg = "参数解析失败,Err:" + err.Error()
  614. return
  615. }
  616. if req.ClassifyId <= 0 && req.ExcelInfoId <= 0 {
  617. br.Msg = "参数错误"
  618. br.ErrMsg = "请选择拖动目标,分类目录或者指标"
  619. return
  620. }
  621. //判断分类是否存在
  622. err, errMsg := excel2.MoveExcelClassify(req)
  623. if err != nil {
  624. br.Msg = err.Error()
  625. br.ErrMsg = errMsg
  626. return
  627. }
  628. br.Ret = 200
  629. br.Success = true
  630. br.IsAddLog = true
  631. br.Msg = "移动成功"
  632. }