balance_table.go 4.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176
  1. package excel
  2. import (
  3. "encoding/json"
  4. "eta/eta_api/models"
  5. "eta/eta_api/models/data_manage/excel"
  6. "eta/eta_api/models/data_manage/excel/request"
  7. "eta/eta_api/models/data_manage/excel/response"
  8. "eta/eta_api/services/data/data_manage_permission"
  9. excel2 "eta/eta_api/services/data/excel"
  10. "eta/eta_api/utils"
  11. "strings"
  12. "time"
  13. )
  14. // GetChildTable
  15. // @Title 获取子表
  16. // @Description 获取子表
  17. // @Param request body request.MixedTableCellDataReq true "type json string"
  18. // @router /excel_info/child_table [get]
  19. func (c *ExcelInfoController) GetChildTable() {
  20. br := new(models.BaseResponse).Init()
  21. defer func() {
  22. c.Data["json"] = br
  23. c.ServeJSON()
  24. }()
  25. sysUser := c.SysUser
  26. if sysUser == nil {
  27. br.Msg = "请登录"
  28. br.ErrMsg = "请登录,SysUser Is Empty"
  29. br.Ret = 408
  30. return
  31. }
  32. parentId, _ := c.GetInt("ParentId")
  33. if parentId <= 0 {
  34. br.Msg = "请选择父表"
  35. return
  36. }
  37. list := make([]*excel.ExcelInfo, 0)
  38. // 查询所有子表
  39. childList, err := excel.GetChildExcelInfoByParentId(parentId)
  40. if err != nil {
  41. br.Msg = "查询子表失败"
  42. return
  43. }
  44. if len(childList) > 0 {
  45. list = childList
  46. }
  47. data := &response.BalanceChildTableResp{List: list}
  48. br.Ret = 200
  49. br.Success = true
  50. br.Msg = "查询成功"
  51. br.Data = data
  52. }
  53. // Rename
  54. // @Title 表格重命名接口
  55. // @Description 表格重命名接口
  56. // @Param request body request.EditExcelInfoReq true "type json string"
  57. // @Success 200 {object} response.AddExcelInfoResp
  58. // @router /excel_info/rename [post]
  59. func (c *ExcelInfoController) Rename() {
  60. br := new(models.BaseResponse).Init()
  61. defer func() {
  62. c.Data["json"] = br
  63. c.ServeJSON()
  64. }()
  65. sysUser := c.SysUser
  66. if sysUser == nil {
  67. br.Msg = "请登录"
  68. br.ErrMsg = "请登录,SysUser Is Empty"
  69. br.Ret = 408
  70. return
  71. }
  72. var req request.RenameExcelInfoReq
  73. err := json.Unmarshal(c.Ctx.Input.RequestBody, &req)
  74. if err != nil {
  75. br.Msg = "参数解析异常!"
  76. br.ErrMsg = "参数解析失败,Err:" + err.Error()
  77. return
  78. }
  79. if req.ExcelInfoId <= 0 {
  80. br.Msg = "请传入ETA表格标识!"
  81. return
  82. }
  83. req.ExcelName = strings.Trim(req.ExcelName, " ")
  84. if req.ExcelName == "" {
  85. br.Msg = "请填写表格名称!"
  86. br.IsSendEmail = false
  87. return
  88. }
  89. excelInfo, err := excel.GetExcelInfoById(req.ExcelInfoId)
  90. if err != nil {
  91. br.Msg = "获取ETA表格失败"
  92. br.ErrMsg = "获取ETA表格失败,Err:" + err.Error()
  93. return
  94. }
  95. //判断表格是否存在
  96. var condition string
  97. var pars []interface{}
  98. condition += " AND excel_info_id != ? "
  99. pars = append(pars, req.ExcelInfoId)
  100. condition += " AND excel_classify_id=? "
  101. pars = append(pars, excelInfo.ExcelClassifyId)
  102. condition += " AND excel_name=? "
  103. pars = append(pars, req.ExcelName)
  104. // 获取分类下是否存在该表格名称
  105. count, err := excel.GetExcelInfoCountByCondition(condition, pars)
  106. if err != nil {
  107. br.Msg = "ETA判断表格名称是否存在失败"
  108. br.ErrMsg = "判断ETA表格名称是否存在失败,Err:" + err.Error()
  109. return
  110. }
  111. if count > 0 {
  112. br.Msg = "ETA表格名称已存在,请重新填写"
  113. br.IsSendEmail = false
  114. return
  115. }
  116. // todo 操作权限校验, 增加协作人判断
  117. {
  118. // 数据权限
  119. haveOperaAuth, err := data_manage_permission.CheckExcelPermissionByExcelInfoId(excelInfo.ExcelInfoId, excelInfo.ExcelClassifyId, excelInfo.IsJoinPermission, c.SysUser.AdminId)
  120. if err != nil {
  121. br.Msg = "获取ETA表格失败"
  122. br.ErrMsg = "获取ETA表格权限失败,Err:" + err.Error()
  123. return
  124. }
  125. button := excel2.GetExcelInfoOpButton(sysUser, excelInfo.SysUserId, excelInfo.Source, haveOperaAuth)
  126. if !button.OpButton {
  127. br.Msg = "无操作权限"
  128. br.Msg = "无操作权限"
  129. br.IsSendEmail = false
  130. return
  131. }
  132. }
  133. excelInfo.ModifyTime = time.Now()
  134. excelInfo.ExcelName = req.ExcelName
  135. excelInfo.UpdateUserId = sysUser.AdminId
  136. excelInfo.UpdateUserRealName = sysUser.RealName
  137. // 自动保存时不会传缩略图,也就不更新这个字段
  138. updateExcelInfoParams := []string{"ModifyTime", "ExcelName", "UpdateUserId", "UpdateUserRealName"}
  139. err = excelInfo.Update(updateExcelInfoParams)
  140. if err != nil {
  141. br.Msg = "保存失败"
  142. br.ErrMsg = "保存失败,Err:" + err.Error()
  143. return
  144. }
  145. resp := response.AddExcelInfoResp{
  146. ExcelInfoId: excelInfo.ExcelInfoId,
  147. UniqueCode: excelInfo.UniqueCode,
  148. }
  149. //删除公共图库那边的缓存
  150. _ = utils.Rc.Delete(utils.HZ_CHART_LIB_EXCEL_TABLE_DETAIL + ":" + excelInfo.UniqueCode)
  151. br.Ret = 200
  152. br.Success = true
  153. br.Msg = "修改成功"
  154. br.Data = resp
  155. br.IsAddLog = true
  156. }