document_manage_controller.go 8.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330
  1. // Package document_manange
  2. // @Author gmy 2024/9/19 14:09:00
  3. package document_manange
  4. import (
  5. "encoding/json"
  6. "eta/eta_api/controllers"
  7. "eta/eta_api/models"
  8. "eta/eta_api/models/document_manage_model"
  9. "eta/eta_api/services/document_manage_service"
  10. "eta/eta_api/utils"
  11. "strings"
  12. )
  13. // DocumentManageController 文档管理库
  14. type DocumentManageController struct {
  15. controllers.BaseAuthController
  16. }
  17. // HandleResponseWithValidation
  18. // 处理响应和校验
  19. func HandleResponseWithValidation(this *DocumentManageController, br *models.BaseResponse) bool {
  20. defer func() {
  21. if br.ErrMsg == "" {
  22. br.IsSendEmail = false
  23. }
  24. this.Data["json"] = br
  25. this.ServeJSON()
  26. }()
  27. // 验证用户是否已登录
  28. sysUser := this.SysUser
  29. if sysUser == nil {
  30. br.Msg = "请登录"
  31. br.ErrMsg = "请登录,SysUser Is Empty"
  32. br.Ret = 408
  33. return false
  34. }
  35. return true
  36. }
  37. // DocumentClassifyList
  38. // @Title 文档分类列表
  39. // @Description 文档分类列表
  40. // @Success 200 {object} []models.ClassifyVO
  41. // @router /document/classify/list [get]
  42. func (this *DocumentManageController) DocumentClassifyList() {
  43. br := new(models.BaseResponse).Init()
  44. if !HandleResponseWithValidation(this, br) {
  45. return
  46. }
  47. classifyList, err := document_manage_service.DocumentClassifyList()
  48. if err != nil {
  49. br.Msg = "获取分类列表失败"
  50. br.ErrMsg = "获取分类列表失败,Err:" + err.Error()
  51. return
  52. }
  53. br.Ret = 200
  54. br.Success = true
  55. br.Msg = "获取成功"
  56. br.Data = classifyList
  57. return
  58. }
  59. // DocumentVarietyList
  60. // @Title 文档品种列表
  61. // @Description 文档品种列表
  62. // @Success 200 {object} []models.ChartPermission
  63. // @router /document/variety/list [get]
  64. func (this *DocumentManageController) DocumentVarietyList() {
  65. br := new(models.BaseResponse).Init()
  66. if !HandleResponseWithValidation(this, br) {
  67. return
  68. }
  69. chartPermissionList, err := document_manage_service.DocumentVarietyList()
  70. if err != nil {
  71. br.Msg = "获取品种列表失败"
  72. br.ErrMsg = "获取品种列表失败,Err:" + err.Error()
  73. return
  74. }
  75. br.Ret = 200
  76. br.Success = true
  77. br.Msg = "获取成功"
  78. br.Data = chartPermissionList
  79. return
  80. }
  81. // DocumentReportList
  82. // @Title 文档管理库报告列表
  83. // @Description 文档管理库报告列表
  84. // @Success 200 {object} document_manage_model.OutsideReportPage
  85. // @router /document/report/list [get]
  86. func (this *DocumentManageController) DocumentReportList() {
  87. br := new(models.BaseResponse).Init()
  88. if !HandleResponseWithValidation(this, br) {
  89. return
  90. }
  91. // 文档类型 1-文档管理库 2-战研中心-pci
  92. documentType, err := this.GetInt("DocumentType")
  93. if err != nil {
  94. br.Msg = "获取文档类型失败"
  95. br.ErrMsg = "获取文档类型失败,Err:" + err.Error()
  96. return
  97. }
  98. if documentType == 0 {
  99. br.Msg = "文档类型不能为空"
  100. br.ErrMsg = "文档类型不能为空"
  101. return
  102. }
  103. chartPermissionId, err := this.GetInt("ChartPermissionId")
  104. if err != nil {
  105. br.Msg = "获取品种ID失败"
  106. br.ErrMsg = "获取品种ID失败,Err:" + err.Error()
  107. return
  108. }
  109. classifyId, err := this.GetInt("ClassifyId")
  110. if err != nil {
  111. br.Msg = "获取分类ID失败"
  112. br.ErrMsg = "获取分类ID失败,Err:" + err.Error()
  113. return
  114. }
  115. keyword := this.GetString("Keyword")
  116. orderField := this.GetString("OrderField")
  117. orderType := this.GetString("OrderType")
  118. pageSize, _ := this.GetInt("PageSize")
  119. currentIndex, _ := this.GetInt("CurrentIndex")
  120. if pageSize <= 0 {
  121. pageSize = utils.PageSize20
  122. }
  123. if currentIndex <= 0 {
  124. currentIndex = 1
  125. }
  126. documentReportPage, err := document_manage_service.DocumentReportList(documentType, chartPermissionId, classifyId, keyword, orderField, orderType, currentIndex, pageSize)
  127. if err != nil {
  128. br.Msg = "获取报告列表失败"
  129. br.ErrMsg = "获取报告列表失败,Err:" + err.Error()
  130. return
  131. }
  132. br.Ret = 200
  133. br.Success = true
  134. br.Msg = "获取成功"
  135. br.Data = documentReportPage
  136. return
  137. }
  138. // RuiSiReportList
  139. // @Title 睿思报告列表
  140. // @Description 睿思报告列表
  141. // @Success 200 {object} models.ReportListResp
  142. // @router /document/report/list [get]
  143. func (this *DocumentManageController) RuiSiReportList() {
  144. br := new(models.BaseResponse).Init()
  145. if !HandleResponseWithValidation(this, br) {
  146. return
  147. }
  148. classifyIdSting := this.GetString("ClassifyIdList")
  149. classifyIdList := strings.Split(classifyIdSting, ",")
  150. keyword := this.GetString("Keyword")
  151. orderField := this.GetString("OrderField")
  152. orderType := this.GetString("OrderType")
  153. pageSize, _ := this.GetInt("PageSize")
  154. currentIndex, _ := this.GetInt("CurrentIndex")
  155. if pageSize <= 0 {
  156. pageSize = utils.PageSize20
  157. }
  158. if currentIndex <= 0 {
  159. currentIndex = 1
  160. }
  161. RuiSiReportPage, err := document_manage_service.RuiSiReportList(classifyIdList, keyword, orderField, orderType, currentIndex, pageSize)
  162. if err != nil {
  163. br.Msg = "获取报告列表失败"
  164. br.ErrMsg = "获取报告列表失败,Err:" + err.Error()
  165. return
  166. }
  167. br.Ret = 200
  168. br.Success = true
  169. br.Msg = "获取成功"
  170. br.Data = RuiSiReportPage
  171. return
  172. }
  173. // DocumentSave
  174. // @Title 新建文档
  175. // @Description 新建文档
  176. // @Success 200 “操作成功”
  177. // @router /document/save [post]
  178. func (this *DocumentManageController) DocumentSave() {
  179. br := new(models.BaseResponse).Init()
  180. if !HandleResponseWithValidation(this, br) {
  181. return
  182. }
  183. sysUser := this.SysUser
  184. var req *document_manage_model.OutsideReportBO
  185. if e := json.Unmarshal(this.Ctx.Input.RequestBody, &req); e != nil {
  186. br.Msg = "参数解析异常!"
  187. br.ErrMsg = "参数解析失败,Err:" + e.Error()
  188. return
  189. }
  190. req.SysUserId = sysUser.AdminId
  191. req.SysUserName = sysUser.AdminName
  192. err := document_manage_service.DocumentSave(req)
  193. if err != nil {
  194. br.Msg = "保存文档失败"
  195. br.ErrMsg = "保存文档失败,Err:" + err.Error()
  196. return
  197. }
  198. br.Ret = 200
  199. br.Success = true
  200. br.Msg = "操作成功"
  201. return
  202. }
  203. // DocumentDetail
  204. // @Title 文档详情
  205. // @Description 文档详情
  206. // @Success 200 “操作成功”
  207. // @router /document/detail [get]
  208. func (this *DocumentManageController) DocumentDetail() {
  209. br := new(models.BaseResponse).Init()
  210. if !HandleResponseWithValidation(this, br) {
  211. return
  212. }
  213. // 获取指标数据列表
  214. this.GetString("ChartPermissionId")
  215. outsideReportId, err := this.GetInt("OutsideReportId")
  216. if err != nil {
  217. br.Msg = "获取报告ID失败"
  218. br.ErrMsg = "获取报告ID失败,Err:" + err.Error()
  219. return
  220. }
  221. reportDetail, err := document_manage_service.DocumentReportDetail(outsideReportId)
  222. if err != nil {
  223. return
  224. }
  225. br.Ret = 200
  226. br.Success = true
  227. br.Msg = "获取成功"
  228. br.Data = &reportDetail
  229. return
  230. }
  231. // DocumentUpdate
  232. // @Title 编辑文档
  233. // @Description 编辑文档
  234. // @Success 200 “操作成功”
  235. // @router /document/update [post]
  236. func (this *DocumentManageController) DocumentUpdate() {
  237. br := new(models.BaseResponse).Init()
  238. if !HandleResponseWithValidation(this, br) {
  239. return
  240. }
  241. var req *document_manage_model.OutsideReportBO
  242. if e := json.Unmarshal(this.Ctx.Input.RequestBody, &req); e != nil {
  243. br.Msg = "参数解析异常!"
  244. br.ErrMsg = "参数解析失败,Err:" + e.Error()
  245. return
  246. }
  247. err := document_manage_service.DocumentUpdate(req)
  248. if err != nil {
  249. br.Msg = "修改文档失败"
  250. br.ErrMsg = "修改文档失败,Err:" + err.Error()
  251. return
  252. }
  253. br.Ret = 200
  254. br.Success = true
  255. br.Msg = "操作成功"
  256. return
  257. }
  258. // DocumentDelete
  259. // @Title 删除文档
  260. // @Description 删除文档
  261. // @Success 200 “操作成功”
  262. // @router /document/delete [post]
  263. func (this *DocumentManageController) DocumentDelete() {
  264. br := new(models.BaseResponse).Init()
  265. if !HandleResponseWithValidation(this, br) {
  266. return
  267. }
  268. type DocumentDelete struct {
  269. OutsideReportId int `json:"OutsideReportId"`
  270. }
  271. var req *DocumentDelete
  272. if e := json.Unmarshal(this.Ctx.Input.RequestBody, &req); e != nil {
  273. br.Msg = "参数解析异常!"
  274. br.ErrMsg = "参数解析失败,Err:" + e.Error()
  275. return
  276. }
  277. err := document_manage_service.DocumentDelete(req.OutsideReportId)
  278. if err != nil {
  279. br.Msg = "删除文档失败"
  280. br.ErrMsg = "删除文档失败,Err:" + err.Error()
  281. return
  282. }
  283. br.Ret = 200
  284. br.Success = true
  285. br.Msg = "操作成功"
  286. return
  287. }