excel_classify.go 18 KB

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