document_manage_controller.go 9.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368
  1. // Package document_manage
  2. // @Author gmy 2024/9/19 14:09:00
  3. package document_manage
  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. // 下面段代码能否统一处理???
  45. defer func() {
  46. if br.ErrMsg == "" {
  47. br.IsSendEmail = false
  48. }
  49. this.Data["json"] = br
  50. this.ServeJSON()
  51. }()
  52. sysUser := this.SysUser
  53. if sysUser == nil {
  54. br.Msg = "请登录"
  55. br.ErrMsg = "请登录,SysUser Is Empty"
  56. br.Ret = 408
  57. return
  58. }
  59. classifyList, err := document_manage_service.DocumentClassifyList()
  60. if err != nil {
  61. br.Msg = "获取分类列表失败"
  62. br.ErrMsg = "获取分类列表失败,Err:" + err.Error()
  63. return
  64. }
  65. br.Ret = 200
  66. br.Success = true
  67. br.Msg = "获取成功"
  68. br.Data = classifyList
  69. return
  70. }
  71. // DocumentVarietyList
  72. // @Title 文档品种列表
  73. // @Description 文档品种列表
  74. // @Success 200 {object} []models.ChartPermission
  75. // @router /document/variety/list [get]
  76. func (this *DocumentManageController) DocumentVarietyList() {
  77. br := new(models.BaseResponse).Init()
  78. if !HandleResponseWithValidation(this, br) {
  79. return
  80. }
  81. chartPermissionList, err := document_manage_service.DocumentVarietyList()
  82. if err != nil {
  83. br.Msg = "获取品种列表失败"
  84. br.ErrMsg = "获取品种列表失败,Err:" + err.Error()
  85. return
  86. }
  87. br.Ret = 200
  88. br.Success = true
  89. br.Msg = "获取成功"
  90. br.Data = chartPermissionList
  91. return
  92. }
  93. // DocumentReportList
  94. // @Title 文档管理库报告列表
  95. // @Description 文档管理库报告列表
  96. // @Success 200 {object} document_manage_model.OutsideReportPage
  97. // @router /document/report/list [get]
  98. func (this *DocumentManageController) DocumentReportList() {
  99. br := new(models.BaseResponse).Init()
  100. if !HandleResponseWithValidation(this, br) {
  101. return
  102. }
  103. // 文档类型 1-文档管理库 2-战研中心-pci
  104. documentType, err := this.GetInt("DocumentType")
  105. if err != nil {
  106. br.Msg = "获取文档类型失败"
  107. br.ErrMsg = "获取文档类型失败,Err:" + err.Error()
  108. return
  109. }
  110. if documentType == 0 {
  111. br.Msg = "文档类型不能为空"
  112. br.ErrMsg = "文档类型不能为空"
  113. return
  114. }
  115. chartPermissionIdString := this.GetString("ChartPermissionIdList")
  116. chartPermissionIdList := strings.Split(chartPermissionIdString, ",")
  117. classifyIdString := this.GetString("ClassifyIdList")
  118. classifyIdList := strings.Split(classifyIdString, ",")
  119. keyword := this.GetString("Keyword")
  120. orderField := this.GetString("OrderField")
  121. orderType := this.GetString("OrderType")
  122. pageSize, _ := this.GetInt("PageSize")
  123. currentIndex, _ := this.GetInt("CurrentIndex")
  124. if pageSize <= 0 {
  125. pageSize = utils.PageSize20
  126. }
  127. if currentIndex <= 0 {
  128. currentIndex = 1
  129. }
  130. documentReportPage, err := document_manage_service.DocumentReportList(documentType, chartPermissionIdList, classifyIdList, keyword, orderField, orderType, currentIndex, pageSize)
  131. if err != nil {
  132. br.Msg = "获取报告列表失败"
  133. br.ErrMsg = "获取报告列表失败,Err:" + err.Error()
  134. return
  135. }
  136. br.Ret = 200
  137. br.Success = true
  138. br.Msg = "获取成功"
  139. br.Data = documentReportPage
  140. return
  141. }
  142. // RuiSiReportList
  143. // @Title 睿思报告列表
  144. // @Description 睿思报告列表
  145. // @Success 200 {object} models.ReportListResp
  146. // @router /document/rui/si/report/list [get]
  147. func (this *DocumentManageController) RuiSiReportList() {
  148. br := new(models.BaseResponse).Init()
  149. if !HandleResponseWithValidation(this, br) {
  150. return
  151. }
  152. classifyIdFirst, _ := this.GetInt("ClassifyIdFirst", 0)
  153. classifyIdSecond, _ := this.GetInt("ClassifyIdSecond", 0)
  154. classifyIdThird, _ := this.GetInt("ClassifyIdThird", 0)
  155. keyword := this.GetString("Keyword")
  156. orderField := this.GetString("OrderField")
  157. orderType := this.GetString("OrderType")
  158. pageSize, _ := this.GetInt("PageSize")
  159. currentIndex, _ := this.GetInt("CurrentIndex")
  160. if pageSize <= 0 {
  161. pageSize = utils.PageSize20
  162. }
  163. if currentIndex <= 0 {
  164. currentIndex = 1
  165. }
  166. RuiSiReportPage, err := document_manage_service.RuiSiReportList(classifyIdFirst, classifyIdSecond, classifyIdThird, keyword, orderField, orderType, currentIndex, pageSize)
  167. if err != nil {
  168. br.Msg = "获取报告列表失败"
  169. br.ErrMsg = "获取报告列表失败,Err:" + err.Error()
  170. return
  171. }
  172. br.Ret = 200
  173. br.Success = true
  174. br.Msg = "获取成功"
  175. br.Data = RuiSiReportPage
  176. return
  177. }
  178. // DocumentRuiSiDetail
  179. // @Title 睿思报告详情
  180. // @Description 睿思报告详情
  181. // @Success 200 “获取成功”
  182. // @router /document/rui/si/detail [get]
  183. func (this *DocumentManageController) DocumentRuiSiDetail() {
  184. br := new(models.BaseResponse).Init()
  185. if !HandleResponseWithValidation(this, br) {
  186. return
  187. }
  188. // 获取指标数据列表
  189. this.GetString("DocumentRuiSiDetail")
  190. reportId, err := this.GetInt("ReportId")
  191. if err != nil {
  192. br.Msg = "获取报告ID失败"
  193. br.ErrMsg = "获取报告ID失败,Err:" + err.Error()
  194. return
  195. }
  196. reportDetail, err := document_manage_service.DocumentRuiSiDetail(reportId)
  197. if err != nil {
  198. return
  199. }
  200. br.Ret = 200
  201. br.Success = true
  202. br.Msg = "获取成功"
  203. br.Data = &reportDetail
  204. return
  205. }
  206. // DocumentSave
  207. // @Title 新建文档
  208. // @Description 新建文档
  209. // @Success 200 “操作成功”
  210. // @router /document/save [post]
  211. func (this *DocumentManageController) DocumentSave() {
  212. br := new(models.BaseResponse).Init()
  213. if !HandleResponseWithValidation(this, br) {
  214. return
  215. }
  216. sysUser := this.SysUser
  217. var req *document_manage_model.OutsideReportBO
  218. if e := json.Unmarshal(this.Ctx.Input.RequestBody, &req); e != nil {
  219. br.Msg = "参数解析异常!"
  220. br.ErrMsg = "参数解析失败,Err:" + e.Error()
  221. return
  222. }
  223. req.SysUserId = sysUser.AdminId
  224. req.SysUserName = sysUser.AdminName
  225. err := document_manage_service.DocumentSave(req)
  226. if err != nil {
  227. br.Msg = "保存文档失败"
  228. br.ErrMsg = "保存文档失败,Err:" + err.Error()
  229. return
  230. }
  231. br.Ret = 200
  232. br.Success = true
  233. br.Msg = "操作成功"
  234. return
  235. }
  236. // DocumentDetail
  237. // @Title 文档详情
  238. // @Description 文档详情
  239. // @Success 200 “操作成功”
  240. // @router /document/detail [get]
  241. func (this *DocumentManageController) DocumentDetail() {
  242. br := new(models.BaseResponse).Init()
  243. if !HandleResponseWithValidation(this, br) {
  244. return
  245. }
  246. // 获取指标数据列表
  247. outsideReportId, err := this.GetInt("OutsideReportId")
  248. if err != nil {
  249. br.Msg = "获取报告ID失败"
  250. br.ErrMsg = "获取报告ID失败,Err:" + err.Error()
  251. return
  252. }
  253. reportDetail, err := document_manage_service.DocumentReportDetail(outsideReportId)
  254. if err != nil {
  255. return
  256. }
  257. br.Ret = 200
  258. br.Success = true
  259. br.Msg = "获取成功"
  260. br.Data = &reportDetail
  261. return
  262. }
  263. // DocumentUpdate
  264. // @Title 编辑文档
  265. // @Description 编辑文档
  266. // @Success 200 “操作成功”
  267. // @router /document/update [post]
  268. func (this *DocumentManageController) DocumentUpdate() {
  269. br := new(models.BaseResponse).Init()
  270. if !HandleResponseWithValidation(this, br) {
  271. return
  272. }
  273. var req *document_manage_model.OutsideReportBO
  274. if e := json.Unmarshal(this.Ctx.Input.RequestBody, &req); e != nil {
  275. br.Msg = "参数解析异常!"
  276. br.ErrMsg = "参数解析失败,Err:" + e.Error()
  277. return
  278. }
  279. err := document_manage_service.DocumentUpdate(req)
  280. if err != nil {
  281. br.Msg = "修改文档失败"
  282. br.ErrMsg = "修改文档失败,Err:" + err.Error()
  283. return
  284. }
  285. br.Ret = 200
  286. br.Success = true
  287. br.Msg = "操作成功"
  288. return
  289. }
  290. // DocumentDelete
  291. // @Title 删除文档
  292. // @Description 删除文档
  293. // @Success 200 “操作成功”
  294. // @router /document/delete [post]
  295. func (this *DocumentManageController) DocumentDelete() {
  296. br := new(models.BaseResponse).Init()
  297. if !HandleResponseWithValidation(this, br) {
  298. return
  299. }
  300. type DocumentDelete struct {
  301. OutsideReportId int `json:"OutsideReportId"`
  302. }
  303. var req *DocumentDelete
  304. if e := json.Unmarshal(this.Ctx.Input.RequestBody, &req); e != nil {
  305. br.Msg = "参数解析异常!"
  306. br.ErrMsg = "参数解析失败,Err:" + e.Error()
  307. return
  308. }
  309. err := document_manage_service.DocumentDelete(req.OutsideReportId)
  310. if err != nil {
  311. br.Msg = "删除文档失败"
  312. br.ErrMsg = "删除文档失败,Err:" + err.Error()
  313. return
  314. }
  315. br.Ret = 200
  316. br.Success = true
  317. br.Msg = "操作成功"
  318. return
  319. }