sys_config.go 7.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313
  1. package apis
  2. import (
  3. "github.com/gin-gonic/gin"
  4. "github.com/gin-gonic/gin/binding"
  5. "github.com/go-admin-team/go-admin-core/sdk/api"
  6. "github.com/go-admin-team/go-admin-core/sdk/pkg/jwtauth/user"
  7. "go-admin/app/admin/models"
  8. "go-admin/app/admin/service"
  9. "go-admin/app/admin/service/dto"
  10. )
  11. type SysConfig struct {
  12. api.Api
  13. }
  14. // GetPage 获取配置管理列表
  15. // @Summary 获取配置管理列表
  16. // @Description 获取配置管理列表
  17. // @Tags 配置管理
  18. // @Param configName query string false "名称"
  19. // @Param configKey query string false "key"
  20. // @Param configType query string false "类型"
  21. // @Param isFrontend query int false "是否前端"
  22. // @Param pageSize query int false "页条数"
  23. // @Param pageIndex query int false "页码"
  24. // @Success 200 {object} response.Response{data=response.Page{list=[]models.SysApi}} "{"code": 200, "data": [...]}"
  25. // @Router /api/v1/sys-config [get]
  26. // @Security Bearer
  27. func (e SysConfig) GetPage(c *gin.Context) {
  28. s := service.SysConfig{}
  29. req := dto.SysConfigGetPageReq{}
  30. err := e.MakeContext(c).
  31. MakeOrm().
  32. Bind(&req, binding.Form).
  33. MakeService(&s.Service).
  34. Errors
  35. if err != nil {
  36. e.Logger.Error(err)
  37. return
  38. }
  39. list := make([]models.SysConfig, 0)
  40. var count int64
  41. err = s.GetPage(&req, &list, &count)
  42. if err != nil {
  43. e.Error(500, err, "查询失败")
  44. return
  45. }
  46. e.PageOK(list, int(count), req.GetPageIndex(), req.GetPageSize(), "查询成功")
  47. }
  48. // Get 获取配置管理
  49. // @Summary 获取配置管理
  50. // @Description 获取配置管理
  51. // @Tags 配置管理
  52. // @Param id path string false "id"
  53. // @Success 200 {object} response.Response{data=models.SysConfig} "{"code": 200, "data": [...]}"
  54. // @Router /api/v1/sys-config/{id} [get]
  55. // @Security Bearer
  56. func (e SysConfig) Get(c *gin.Context) {
  57. req := dto.SysConfigGetReq{}
  58. s := service.SysConfig{}
  59. err := e.MakeContext(c).
  60. MakeOrm().
  61. Bind(&req, binding.JSON, nil).
  62. MakeService(&s.Service).
  63. Errors
  64. if err != nil {
  65. e.Logger.Error(err)
  66. e.Error(500, err, err.Error())
  67. return
  68. }
  69. var object models.SysConfig
  70. err = s.Get(&req, &object)
  71. if err != nil {
  72. e.Error(500, err, err.Error())
  73. return
  74. }
  75. e.OK(object, "查询成功")
  76. }
  77. // Insert 创建配置管理
  78. // @Summary 创建配置管理
  79. // @Description 创建配置管理
  80. // @Tags 配置管理
  81. // @Accept application/json
  82. // @Product application/json
  83. // @Param data body dto.SysConfigControl true "body"
  84. // @Success 200 {object} response.Response "{"code": 200, "message": "创建成功"}"
  85. // @Router /api/v1/sys-config [post]
  86. // @Security Bearer
  87. func (e SysConfig) Insert(c *gin.Context) {
  88. s := service.SysConfig{}
  89. req := dto.SysConfigControl{}
  90. err := e.MakeContext(c).
  91. MakeOrm().
  92. Bind(&req, binding.JSON).
  93. MakeService(&s.Service).
  94. Errors
  95. if err != nil {
  96. e.Logger.Error(err)
  97. e.Error(500, err, err.Error())
  98. return
  99. }
  100. req.SetCreateBy(user.GetUserId(c))
  101. err = s.Insert(&req)
  102. if err != nil {
  103. e.Error(500, err, "创建失败")
  104. return
  105. }
  106. e.OK(req.GetId(), "创建成功")
  107. }
  108. // Update 修改配置管理
  109. // @Summary 修改配置管理
  110. // @Description 修改配置管理
  111. // @Tags 配置管理
  112. // @Accept application/json
  113. // @Product application/json
  114. // @Param data body dto.SysConfigControl true "body"
  115. // @Success 200 {object} response.Response "{"code": 200, "message": "修改成功"}"
  116. // @Router /api/v1/sys-config/{id} [put]
  117. // @Security Bearer
  118. func (e SysConfig) Update(c *gin.Context) {
  119. s := service.SysConfig{}
  120. req := dto.SysConfigControl{}
  121. err := e.MakeContext(c).
  122. MakeOrm().
  123. Bind(&req, binding.JSON, nil).
  124. MakeService(&s.Service).
  125. Errors
  126. if err != nil {
  127. e.Logger.Error(err)
  128. e.Error(500, err, err.Error())
  129. return
  130. }
  131. req.SetUpdateBy(user.GetUserId(c))
  132. err = s.Update(&req)
  133. if err != nil {
  134. e.Error(500, err, "更新失败")
  135. return
  136. }
  137. e.OK(req.GetId(), "更新成功")
  138. }
  139. // Delete 删除配置管理
  140. // @Summary 删除配置管理
  141. // @Description 删除配置管理
  142. // @Tags 配置管理
  143. // @Param ids body []int false "ids"
  144. // @Success 200 {object} response.Response "{"code": 200, "message": "删除成功"}"
  145. // @Router /api/v1/sys-config [delete]
  146. // @Security Bearer
  147. func (e SysConfig) Delete(c *gin.Context) {
  148. s := service.SysConfig{}
  149. req := dto.SysConfigDeleteReq{}
  150. err := e.MakeContext(c).
  151. MakeOrm().
  152. Bind(&req, binding.JSON, nil).
  153. MakeService(&s.Service).
  154. Errors
  155. if err != nil {
  156. e.Logger.Error(err)
  157. e.Error(500, err, err.Error())
  158. return
  159. }
  160. req.SetUpdateBy(user.GetUserId(c))
  161. err = s.Remove(&req)
  162. if err != nil {
  163. e.Error(500, err, "删除失败")
  164. return
  165. }
  166. e.OK(req.GetId(), "删除成功")
  167. }
  168. // Get2SysApp 获取系统配置信息
  169. // @Summary 获取系统前台配置信息,主要注意这里不在验证权限
  170. // @Description 获取系统配置信息,主要注意这里不在验证权限
  171. // @Tags 配置管理
  172. // @Success 200 {object} response.Response{data=map[string]string} "{"code": 200, "data": [...]}"
  173. // @Router /api/v1/app-config [get]
  174. func (e SysConfig) Get2SysApp(c *gin.Context) {
  175. req := dto.SysConfigGetToSysAppReq{}
  176. s := service.SysConfig{}
  177. err := e.MakeContext(c).
  178. MakeOrm().
  179. Bind(&req, binding.Form).
  180. MakeService(&s.Service).
  181. Errors
  182. if err != nil {
  183. e.Logger.Error(err)
  184. return
  185. }
  186. // 控制只读前台的数据
  187. req.IsFrontend = "1"
  188. list := make([]models.SysConfig, 0)
  189. err = s.GetWithKeyList(&req, &list)
  190. if err != nil {
  191. e.Error(500, err, "查询失败")
  192. return
  193. }
  194. mp := make(map[string]string)
  195. for i := 0; i < len(list); i++ {
  196. key := list[i].ConfigKey
  197. if key != "" {
  198. mp[key] = list[i].ConfigValue
  199. }
  200. }
  201. e.OK(mp, "查询成功")
  202. }
  203. // Get2Set 获取配置
  204. // @Summary 获取配置
  205. // @Description 界面操作设置配置值的获取
  206. // @Tags 配置管理
  207. // @Accept application/json
  208. // @Product application/json
  209. // @Success 200 {object} response.Response{data=map[string]interface{}} "{"code": 200, "message": "修改成功"}"
  210. // @Router /api/v1/set-config [get]
  211. // @Security Bearer
  212. func (e SysConfig) Get2Set(c *gin.Context) {
  213. s := service.SysConfig{}
  214. req := make([]dto.GetSetSysConfigReq, 0)
  215. err := e.MakeContext(c).
  216. MakeOrm().
  217. MakeService(&s.Service).
  218. Errors
  219. if err != nil {
  220. e.Logger.Error(err)
  221. e.Error(500, err, err.Error())
  222. return
  223. }
  224. err = s.GetForSet(&req)
  225. if err != nil {
  226. e.Error(500, err, "查询失败")
  227. return
  228. }
  229. m := make(map[string]interface{}, 0)
  230. for _, v := range req {
  231. m[v.ConfigKey] = v.ConfigValue
  232. }
  233. e.OK(m, "查询成功")
  234. }
  235. // Update2Set 设置配置
  236. // @Summary 设置配置
  237. // @Description 界面操作设置配置值
  238. // @Tags 配置管理
  239. // @Accept application/json
  240. // @Product application/json
  241. // @Param data body []dto.GetSetSysConfigReq true "body"
  242. // @Success 200 {object} response.Response "{"code": 200, "message": "修改成功"}"
  243. // @Router /api/v1/set-config [put]
  244. // @Security Bearer
  245. func (e SysConfig) Update2Set(c *gin.Context) {
  246. s := service.SysConfig{}
  247. req := make([]dto.GetSetSysConfigReq, 0)
  248. err := e.MakeContext(c).
  249. MakeOrm().
  250. Bind(&req, binding.JSON).
  251. MakeService(&s.Service).
  252. Errors
  253. if err != nil {
  254. e.Logger.Error(err)
  255. e.Error(500, err, err.Error())
  256. return
  257. }
  258. err = s.UpdateForSet(&req)
  259. if err != nil {
  260. e.Error(500, err, err.Error())
  261. return
  262. }
  263. e.OK("", "更新成功")
  264. }
  265. // GetSysConfigByKEYForService 根据Key获取SysConfig的Service
  266. // @Summary 根据Key获取SysConfig的Service
  267. // @Description 根据Key获取SysConfig的Service
  268. // @Tags 配置管理
  269. // @Param configKey path string false "configKey"
  270. // @Success 200 {object} response.Response{data=dto.SysConfigByKeyReq} "{"code": 200, "data": [...]}"
  271. // @Router /api/v1/sys-config/{id} [get]
  272. // @Security Bearer
  273. func (e SysConfig) GetSysConfigByKEYForService(c *gin.Context) {
  274. var s = new(service.SysConfig)
  275. var req = new(dto.SysConfigByKeyReq)
  276. var resp = new(dto.GetSysConfigByKEYForServiceResp)
  277. err := e.MakeContext(c).
  278. MakeOrm().
  279. Bind(req, nil).
  280. MakeService(&s.Service).
  281. Errors
  282. if err != nil {
  283. e.Logger.Error(err)
  284. e.Error(500, err, err.Error())
  285. return
  286. }
  287. err = s.GetWithKey(req, resp)
  288. if err != nil {
  289. e.Error(500, err, err.Error())
  290. return
  291. }
  292. e.OK(resp, s.Msg)
  293. }