config_dict.go 8.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279
  1. package admin
  2. import (
  3. "gfast/app/model/admin/sys_dict_data"
  4. "gfast/app/model/admin/sys_dict_type"
  5. "gfast/app/service/admin/dict_service"
  6. "gfast/app/service/admin/user_service"
  7. "gfast/app/service/cache_service"
  8. "gfast/library/response"
  9. "github.com/gogf/gf/frame/g"
  10. "github.com/gogf/gf/net/ghttp"
  11. "github.com/gogf/gf/util/gvalid"
  12. )
  13. type Dict struct{}
  14. // @Summary 字典列表
  15. // @Description 字典列表
  16. // @Tags 字典管理
  17. // @Param data body sys_dict_type.SelectPageReq true "data"
  18. // @Success 0 {object} response.Response "{"code": 200, "data": [...]}"
  19. // @Router /system/config/dict/list [get]
  20. // @Security
  21. func (c *Dict) List(r *ghttp.Request) {
  22. var req *sys_dict_type.SelectPageReq
  23. //获取参数
  24. if err := r.Parse(&req); err != nil {
  25. response.FailJson(true, r, err.(*gvalid.Error).FirstString())
  26. }
  27. total, page, list, err := dict_service.SelectListByPage(req)
  28. if err != nil {
  29. response.FailJson(true, r, err.Error())
  30. }
  31. //菜单正常or停用状态
  32. statusOptions, err := dict_service.GetDictWithDataByType("sys_normal_disable", "", "")
  33. if err != nil {
  34. response.FailJson(true, r, err.Error())
  35. }
  36. result := g.Map{
  37. "currentPage": page,
  38. "total": total,
  39. "list": list,
  40. "searchStatus": statusOptions,
  41. }
  42. response.SusJson(true, r, "字典列表", result)
  43. }
  44. // @Summary 添加字典
  45. // @Description 添加字典
  46. // @Tags 字典管理
  47. // @Param data body sys_dict_type.AddReq true "data"
  48. // @Success 0 {object} response.Response "{"code": 200, "data": [...]}"
  49. // @Router /system/config/dict/add [post]
  50. // @Security
  51. func (c *Dict) Add(r *ghttp.Request) {
  52. if r.Method == "POST" {
  53. var req *sys_dict_type.AddReq
  54. //获取参数
  55. if err := r.Parse(&req); err != nil {
  56. response.FailJson(true, r, err.(*gvalid.Error).FirstString())
  57. }
  58. if !dict_service.CheckDictTypeUniqueAll(req.DictType) {
  59. response.FailJson(true, r, "字典类型已经存在")
  60. }
  61. userId := user_service.GetLoginID(r) //获取登陆用户id
  62. _, err := dict_service.AddSave(req, userId)
  63. if err != nil {
  64. g.Log().Error(err.Error())
  65. response.FailJson(true, r, "字典类型添加失败")
  66. }
  67. //清除tag缓存
  68. cache_service.New().RemoveByTag(cache_service.AdminSysConfigTag)
  69. response.SusJson(true, r, "添加字典成功")
  70. }
  71. }
  72. // @Summary 修改字典
  73. // @Description 修改字典
  74. // @Tags 字典管理
  75. // @Param data body sys_dict_type.EditReq true "data"
  76. // @Success 0 {object} response.Response "{"code": 200, "data": [...]}"
  77. // @Router /system/config/dict/edit [post]
  78. // @Security
  79. func (c *Dict) Edit(r *ghttp.Request) {
  80. if r.Method == "POST" {
  81. var req *sys_dict_type.EditReq
  82. //获取参数
  83. if err := r.Parse(&req); err != nil {
  84. response.FailJson(true, r, err.(*gvalid.Error).FirstString())
  85. }
  86. if !dict_service.CheckDictTypeUnique(req) {
  87. response.FailJson(true, r, "字典类型已经存在")
  88. }
  89. userId := user_service.GetLoginID(r) //获取登陆用户id
  90. _, err := dict_service.EditSave(req, userId)
  91. if err != nil {
  92. response.FailJson(true, r, err.Error())
  93. }
  94. //清除tag缓存
  95. cache_service.New().RemoveByTag(cache_service.AdminSysConfigTag)
  96. response.SusJson(true, r, "修改成功")
  97. }
  98. id := r.GetInt("dictId")
  99. entity, err := dict_service.GetDictById(id)
  100. if err != nil {
  101. response.FailJson(true, r, "字典数据获取失败")
  102. }
  103. response.SusJson(true, r, "ok", entity)
  104. }
  105. // @Summary 字典数据列表
  106. // @Description 字典数据列表
  107. // @Tags 字典管理
  108. // @Param data body sys_dict_data.SelectDataPageReq true "data"
  109. // @Success 0 {object} response.Response "{"code": 200, "data": [...]}"
  110. // @Router /system/config/dict/dataList [get]
  111. // @Security
  112. func (c *Dict) DataList(r *ghttp.Request) {
  113. var req *sys_dict_data.SelectDataPageReq
  114. //获取参数
  115. if err := r.Parse(&req); err != nil {
  116. response.FailJson(true, r, err.(*gvalid.Error).FirstString())
  117. }
  118. total, page, list, err := dict_service.SelectDataListByPage(req)
  119. if err != nil {
  120. response.FailJson(true, r, err.Error())
  121. }
  122. //菜单正常or停用状态
  123. statusOptions, err := dict_service.GetDictWithDataByType("sys_normal_disable", "", "")
  124. if err != nil {
  125. response.FailJson(true, r, err.Error())
  126. }
  127. result := g.Map{
  128. "currentPage": page,
  129. "total": total,
  130. "list": list,
  131. "searchStatus": statusOptions,
  132. }
  133. response.SusJson(true, r, "ok", result)
  134. }
  135. // @Summary 添加数据字典
  136. // @Description 添加数据字典
  137. // @Tags 字典管理
  138. // @Param data body sys_dict_data.AddDataReq true "data"
  139. // @Success 0 {object} response.Response "{"code": 200, "data": [...]}"
  140. // @Router /system/config/dict/dataAdd [post]
  141. // @Security
  142. func (c *Dict) DataAdd(r *ghttp.Request) {
  143. if r.Method == "POST" {
  144. var req *sys_dict_data.AddDataReq
  145. //获取参数
  146. if err := r.Parse(&req); err != nil {
  147. response.FailJson(true, r, err.(*gvalid.Error).FirstString())
  148. }
  149. userId := user_service.GetLoginID(r) //获取登陆用户id
  150. _, err := dict_service.AddSaveData(req, userId)
  151. if err != nil {
  152. response.FailJson(true, r, err.Error())
  153. }
  154. //清除tag缓存
  155. cache_service.New().RemoveByTag(cache_service.AdminSysConfigTag)
  156. response.SusJson(true, r, "添加字典数据成功")
  157. }
  158. }
  159. // @Summary 修改字典数据
  160. // @Description 修改字典数据
  161. // @Tags 字典管理
  162. // @Param data body sys_dict_data.EditDataReq true "data"
  163. // @Success 0 {object} response.Response "{"code": 200, "data": [...]}"
  164. // @Router /system/config/dict/dataEdit [post]
  165. // @Security
  166. func (c *Dict) DataEdit(r *ghttp.Request) {
  167. if r.Method == "POST" {
  168. var req *sys_dict_data.EditDataReq
  169. //获取参数
  170. if err := r.Parse(&req); err != nil {
  171. response.FailJson(true, r, err.(*gvalid.Error).FirstString())
  172. }
  173. userId := user_service.GetLoginID(r)
  174. _, err := dict_service.EditSaveData(req, userId)
  175. if err != nil {
  176. response.FailJson(true, r, err.Error())
  177. }
  178. //清除tag缓存
  179. cache_service.New().RemoveByTag(cache_service.AdminSysConfigTag)
  180. response.SusJson(true, r, "修改字典数据成功")
  181. }
  182. dictCode := r.GetInt("dictCode")
  183. dictData, err := dict_service.GetDictDataById(dictCode)
  184. if err != nil {
  185. response.FailJson(true, r, err.Error())
  186. }
  187. response.SusJson(true, r, "ok", dictData)
  188. }
  189. // @Summary 删除字典
  190. // @Description 删除字典
  191. // @Tags 字典管理
  192. // @Param dictIds body string true "dictIds[1,2,3]"
  193. // @Success 0 {object} response.Response "{"code": 200, "data": [...]}"
  194. // @Router /system/config/dict/delete [delete]
  195. // @Security
  196. func (c *Dict) Delete(r *ghttp.Request) {
  197. dictIds := r.GetInts("dictIds")
  198. if len(dictIds) == 0 {
  199. response.FailJson(true, r, "删除失败")
  200. }
  201. err := dict_service.DeleteDictByIds(dictIds)
  202. if err != nil {
  203. response.FailJson(true, r, "删除失败")
  204. }
  205. //清除tag缓存
  206. cache_service.New().RemoveByTag(cache_service.AdminSysConfigTag)
  207. response.SusJson(true, r, "删除成功")
  208. }
  209. // @Summary 删除字典数据
  210. // @Description 删除字典数据
  211. // @Tags 字典管理
  212. // @Param ids body integer true "ids[1,2,3...]"
  213. // @Success 0 {object} response.Response "{"code": 200, "data": [...]}"
  214. // @Router /system/config/dict/dataDelete [delete]
  215. // @Security
  216. func (c *Dict) DataDelete(r *ghttp.Request) {
  217. dictCodes := r.GetInts("ids")
  218. if len(dictCodes) == 0 {
  219. response.FailJson(true, r, "删除失败")
  220. }
  221. err := dict_service.DeleteDictDataByIds(dictCodes)
  222. if err != nil {
  223. response.FailJson(true, r, "删除失败")
  224. }
  225. //清除tag缓存
  226. cache_service.New().RemoveByTag(cache_service.AdminSysConfigTag)
  227. response.SusJson(true, r, "删除成功")
  228. }
  229. // @Summary 字典状态
  230. // @Description 字典状态
  231. // @Tags 字典管理
  232. // @Success 0 {object} response.Response "{"code": 200, "data": [...]}"
  233. // @Router /system/config/dict/sysNormalDisable [post]
  234. // @Security
  235. func (c *Dict) SysNormalDisable(r *ghttp.Request) {
  236. //菜单正常or停用状态
  237. statusOptions, err := dict_service.GetDictWithDataByType("sys_normal_disable", "", "")
  238. if err != nil {
  239. response.FailJson(true, r, err.Error())
  240. }
  241. response.SusJson(true, r, "", statusOptions)
  242. }
  243. func (c *Dict) SysCommonStatus(r *ghttp.Request) {
  244. //获取相关选项
  245. logStatus, err := dict_service.GetDictWithDataByType("sys_oper_log_status", "", "全部")
  246. if err != nil {
  247. response.FailJson(true, r, err.Error())
  248. }
  249. response.SusJson(true, r, "ok", logStatus)
  250. }
  251. // 获取字典选择框列表
  252. func (c *Dict) OptionSelect(r *ghttp.Request) {
  253. //获取所有字典类型列表
  254. list, err := dict_service.GetAllDictType()
  255. if err != nil {
  256. response.FailJson(true, r, err.Error())
  257. }
  258. response.SusJson(true, r, "ok", list)
  259. }