sys_service.go 6.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265
  1. package controller
  2. import (
  3. "Medical_OAuth/app/admin/model"
  4. "Medical_OAuth/app/admin/service"
  5. "Medical_OAuth/app/admin/service/dto"
  6. "Medical_OAuth/common/actions"
  7. "github.com/gin-gonic/gin"
  8. "github.com/gin-gonic/gin/binding"
  9. "gogs.baozhida.cn/zoie/OAuth-core/api"
  10. coreModel "gogs.baozhida.cn/zoie/OAuth-core/model"
  11. "gogs.baozhida.cn/zoie/OAuth-core/pkg/jwtauth/user"
  12. _ "gogs.baozhida.cn/zoie/OAuth-core/pkg/response"
  13. "strconv"
  14. )
  15. type SysService struct {
  16. api.Api
  17. }
  18. // GetPage 获取服务列表
  19. // @Summary 获取服务列表
  20. // @Description 获取服务列表
  21. // @Tags 服务
  22. // @Param name query string false "服务名称"
  23. // @Param status query int false "状态 1-停用 2-正常"
  24. // @Param pageSize query int false "页条数"
  25. // @Param pageIndex query int false "页码"
  26. // @Success 200 {object} response.Response{data=response.Page{list=[]model.SysService}} "{"code": 200, "data": [...]}"
  27. // @Router /api/service [get]
  28. // @Security Bearer
  29. func (e SysService) GetPage(c *gin.Context) {
  30. s := service.SysService{}
  31. req := dto.SysServicePageReq{}
  32. err := e.MakeContext(c).
  33. MakeOrm().
  34. Bind(&req, binding.Form).
  35. MakeService(&s.Service).
  36. Errors
  37. if err != nil {
  38. e.Logger.Error(err)
  39. e.Error(500, err, err.Error())
  40. return
  41. }
  42. list := make([]model.SysService, 0)
  43. var count int64
  44. //数据权限检查
  45. p := actions.GetPermissionFromContext(c)
  46. err = s.GetPage(&req, &list, &count, p)
  47. if err != nil {
  48. e.Error(500, err, err.Error())
  49. return
  50. }
  51. e.PageOK(list, int(count), req.GetPageIndex(), req.GetPageSize(), "查询成功")
  52. }
  53. // Get 通过id获取服务
  54. // @Summary 通过id获取服务
  55. // @Description 通过id获取服务
  56. // @Tags 服务
  57. // @Param id path int true "服务id"
  58. // @Success 200 {object} response.Response{data=model.SysService} "{"code": 200, "data": [...]}"
  59. // @Router /api/service/{id} [get]
  60. // @Security Bearer
  61. func (e SysService) Get(c *gin.Context) {
  62. s := service.SysService{}
  63. req := dto.SysServiceGetReq{}
  64. err := e.MakeContext(c).
  65. MakeOrm().
  66. Bind(&req, nil).
  67. MakeService(&s.Service).
  68. Errors
  69. if err != nil {
  70. e.Logger.Error(err)
  71. e.Error(500, err, err.Error())
  72. return
  73. }
  74. var object model.SysService
  75. //数据权限检查
  76. p := actions.GetPermissionFromContext(c)
  77. err = s.Get(&req, &object, p)
  78. if err != nil {
  79. e.Error(500, err, err.Error())
  80. return
  81. }
  82. e.OK(object, "查询成功")
  83. }
  84. // Insert 添加服务
  85. // @Summary 添加服务
  86. // @Description 添加服务
  87. // @Tags 服务
  88. // @Accept application/json
  89. // @Product application/json
  90. // @Param data body dto.SysServiceInsertReq true "data"
  91. // @Success 200 {object} response.Response "{"code": 200, "data": [...]}"
  92. // @Router /api/service [post]
  93. // @Security Bearer
  94. func (e SysService) Insert(c *gin.Context) {
  95. s := service.SysService{}
  96. req := dto.SysServiceInsertReq{}
  97. err := e.MakeContext(c).
  98. MakeOrm().
  99. Bind(&req, binding.JSON).
  100. MakeService(&s.Service).
  101. Errors
  102. if err != nil {
  103. e.Logger.Error(err)
  104. e.Error(500, err, err.Error())
  105. return
  106. }
  107. req.SetCreateBy(user.GetUserId(c))
  108. err = s.Insert(&req)
  109. if err != nil {
  110. e.Error(500, err, err.Error())
  111. return
  112. }
  113. e.OK(req.GetId(), "创建成功")
  114. }
  115. // Update 修改服务
  116. // @Summary 修改服务
  117. // @Description 修改服务
  118. // @Tags 服务
  119. // @Accept application/json
  120. // @Product application/json
  121. // @Param id path int true "服务id"
  122. // @Param data body dto.SysServiceUpdateReq true "body"
  123. // @Success 200 {object} response.Response "{"code": 200, "data": [...]}"
  124. // @Router /api/service/{id} [put]
  125. // @Security Bearer
  126. func (e SysService) Update(c *gin.Context) {
  127. s := service.SysService{}
  128. req := dto.SysServiceUpdateReq{}
  129. err := e.MakeContext(c).
  130. MakeOrm().
  131. Bind(&req, binding.JSON, nil).
  132. MakeService(&s.Service).
  133. Errors
  134. if err != nil {
  135. e.Logger.Error(err)
  136. e.Error(500, err, err.Error())
  137. return
  138. }
  139. req.SetUpdateBy(user.GetUserId(c))
  140. err = s.Update(&req)
  141. if err != nil {
  142. e.Error(500, err, err.Error())
  143. return
  144. }
  145. e.OK(req.GetId(), "更新成功")
  146. }
  147. // Delete 删除服务
  148. // @Summary 删除服务
  149. // @Description 删除服务
  150. // @Tags 服务
  151. // @Accept application/json
  152. // @Product application/json
  153. // @Param id body dto.SysServiceDeleteReq true "请求参数"
  154. // @Success 200 {object} response.Response "{"code": 200, "data": [...]}"
  155. // @Router /api/service [delete]
  156. // @Security Bearer
  157. func (e SysService) Delete(c *gin.Context) {
  158. s := service.SysService{}
  159. req := dto.SysServiceDeleteReq{}
  160. err := e.MakeContext(c).
  161. MakeOrm().
  162. Bind(&req, binding.JSON).
  163. MakeService(&s.Service).
  164. Errors
  165. if err != nil {
  166. e.Logger.Error(err)
  167. e.Error(500, err, err.Error())
  168. return
  169. }
  170. req.SetUpdateBy(user.GetUserId(c))
  171. err = s.Remove(&req)
  172. if err != nil {
  173. e.Error(500, err, err.Error())
  174. return
  175. }
  176. e.OK(req.GetId(), "删除成功")
  177. }
  178. // Discovery 服务发现
  179. // @Summary 服务发现
  180. // @Description 服务发现,服务主动推送到数据库保存,有则更新,没有则删除。
  181. // @Tags 服务
  182. // @Accept application/json
  183. // @Product application/json
  184. // @Param data body dto.SysServiceDiscoveryReq true "data"
  185. // @Success 200 {object} response.Response "{"code": 200, "data": [...]}"
  186. // @Router /api/service-disco [post]
  187. func (e SysService) Discovery(c *gin.Context) {
  188. s := service.SysService{}
  189. req := dto.SysServiceDiscoveryReq{}
  190. err := e.MakeContext(c).
  191. MakeOrm().
  192. Bind(&req, binding.JSON).
  193. MakeService(&s.Service).
  194. Errors
  195. if err != nil {
  196. e.Logger.Error(err)
  197. e.Error(500, err, err.Error())
  198. return
  199. }
  200. err = s.Discovery(&req)
  201. if err != nil {
  202. e.Error(500, err, err.Error())
  203. return
  204. }
  205. e.OK(req.GetId(), "创建成功")
  206. }
  207. // UserInfo 服务获取用户信息
  208. // @Summary 服务获取用户信息
  209. // @Description 服务获取用户信息,验证登录
  210. // @Tags 服务
  211. // @Accept application/json
  212. // @Product application/json
  213. // @Success 200 {object} response.Response{data=coreModel.UserInfo} "{"code": 200, "data": [...]}"
  214. // @Router /api/userinfo [get]
  215. func (e SysService) UserInfo(c *gin.Context) {
  216. s := service.SysService{}
  217. err := e.MakeContext(c).
  218. MakeOrm().
  219. MakeService(&s.Service).
  220. Errors
  221. if err != nil {
  222. e.Logger.Error(err)
  223. e.Error(500, err, err.Error())
  224. return
  225. }
  226. info := coreModel.UserInfo{
  227. Uuid: user.GetUUID(c),
  228. UserId: user.GetUserId(c),
  229. RoleId: user.GetRoleId(c),
  230. DeptId: user.GetDeptId(c),
  231. UserName: user.GetUserName(c),
  232. RoleName: user.GetRoleName(c),
  233. RoleKey: user.GetRoleKey(c),
  234. DataScope: user.GetDataScope(c),
  235. DeptName: user.GetDeptName(c),
  236. }
  237. if deptIdStr, err := e.Cache.Get(model.GetEnterDeptCacheKey(c)); err == nil {
  238. info.DeptId, _ = strconv.Atoi(deptIdStr)
  239. }
  240. if deptNameStr, err := e.Cache.Get(model.GetEnterDeptNameCacheKey(c)); err == nil {
  241. info.DeptName = deptNameStr
  242. }
  243. e.Logger.Debug("info", info)
  244. e.OK(info, "ok")
  245. }