config_dict.go 6.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228
  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. //字典列表
  15. func (c *Dict) List(r *ghttp.Request) {
  16. var req *sys_dict_type.SelectPageReq
  17. //获取参数
  18. if err := r.Parse(&req); err != nil {
  19. response.FailJson(true, r, err.(*gvalid.Error).FirstString())
  20. }
  21. total, page, list, err := dict_service.SelectListByPage(req)
  22. if err != nil {
  23. response.FailJson(true, r, err.Error())
  24. }
  25. //菜单正常or停用状态
  26. statusOptions, err := dict_service.GetDictWithDataByType("sys_normal_disable", "", "")
  27. if err != nil {
  28. response.FailJson(true, r, err.Error())
  29. }
  30. result := g.Map{
  31. "currentPage": page,
  32. "total": total,
  33. "list": list,
  34. "searchStatus": statusOptions,
  35. }
  36. response.SusJson(true, r, "字典列表", result)
  37. }
  38. //添加字典
  39. func (c *Dict) Add(r *ghttp.Request) {
  40. if r.Method == "POST" {
  41. var req *sys_dict_type.AddReq
  42. //获取参数
  43. if err := r.Parse(&req); err != nil {
  44. response.FailJson(true, r, err.(*gvalid.Error).FirstString())
  45. }
  46. if !dict_service.CheckDictTypeUniqueAll(req.DictType) {
  47. response.FailJson(true, r, "字典类型已经存在")
  48. }
  49. userId := user_service.GetLoginID(r) //获取登陆用户id
  50. _, err := dict_service.AddSave(req, userId)
  51. if err != nil {
  52. g.Log().Error(err.Error())
  53. response.FailJson(true, r, "字典类型添加失败")
  54. }
  55. //清除tag缓存
  56. cache_service.New().RemoveByTag(cache_service.AdminSysConfigTag)
  57. response.SusJson(true, r, "添加字典成功")
  58. }
  59. }
  60. //修改字典
  61. func (c *Dict) Edit(r *ghttp.Request) {
  62. if r.Method == "POST" {
  63. var req *sys_dict_type.EditReq
  64. //获取参数
  65. if err := r.Parse(&req); err != nil {
  66. response.FailJson(true, r, err.(*gvalid.Error).FirstString())
  67. }
  68. if !dict_service.CheckDictTypeUnique(req) {
  69. response.FailJson(true, r, "字典类型已经存在")
  70. }
  71. userId := user_service.GetLoginID(r) //获取登陆用户id
  72. _, err := dict_service.EditSave(req, userId)
  73. if err != nil {
  74. response.FailJson(true, r, err.Error())
  75. }
  76. //清除tag缓存
  77. cache_service.New().RemoveByTag(cache_service.AdminSysConfigTag)
  78. response.SusJson(true, r, "修改成功")
  79. }
  80. id := r.GetInt("dictId")
  81. entity, err := dict_service.GetDictById(id)
  82. if err != nil {
  83. response.FailJson(true, r, "字典数据获取失败")
  84. }
  85. response.SusJson(true, r, "ok", entity)
  86. }
  87. //字典数据列表
  88. func (c *Dict) DataList(r *ghttp.Request) {
  89. var req *sys_dict_data.SelectDataPageReq
  90. //获取参数
  91. if err := r.Parse(&req); err != nil {
  92. response.FailJson(true, r, err.(*gvalid.Error).FirstString())
  93. }
  94. total, page, list, err := dict_service.SelectDataListByPage(req)
  95. if err != nil {
  96. response.FailJson(true, r, err.Error())
  97. }
  98. //菜单正常or停用状态
  99. statusOptions, err := dict_service.GetDictWithDataByType("sys_normal_disable", "", "")
  100. if err != nil {
  101. response.FailJson(true, r, err.Error())
  102. }
  103. result := g.Map{
  104. "currentPage": page,
  105. "total": total,
  106. "list": list,
  107. "searchStatus": statusOptions,
  108. }
  109. response.SusJson(true, r, "ok", result)
  110. }
  111. //添加数据字典
  112. func (c *Dict) DataAdd(r *ghttp.Request) {
  113. if r.Method == "POST" {
  114. var req *sys_dict_data.AddDataReq
  115. //获取参数
  116. if err := r.Parse(&req); err != nil {
  117. response.FailJson(true, r, err.(*gvalid.Error).FirstString())
  118. }
  119. userId := user_service.GetLoginID(r) //获取登陆用户id
  120. _, err := dict_service.AddSaveData(req, userId)
  121. if err != nil {
  122. response.FailJson(true, r, err.Error())
  123. }
  124. //清除tag缓存
  125. cache_service.New().RemoveByTag(cache_service.AdminSysConfigTag)
  126. response.SusJson(true, r, "添加字典数据成功")
  127. }
  128. }
  129. //修改字典数据
  130. func (c *Dict) DataEdit(r *ghttp.Request) {
  131. if r.Method == "POST" {
  132. var req *sys_dict_data.EditDataReq
  133. //获取参数
  134. if err := r.Parse(&req); err != nil {
  135. response.FailJson(true, r, err.(*gvalid.Error).FirstString())
  136. }
  137. userId := user_service.GetLoginID(r)
  138. _, err := dict_service.EditSaveData(req, userId)
  139. if err != nil {
  140. response.FailJson(true, r, err.Error())
  141. }
  142. //清除tag缓存
  143. cache_service.New().RemoveByTag(cache_service.AdminSysConfigTag)
  144. response.SusJson(true, r, "修改字典数据成功")
  145. }
  146. dictCode := r.GetInt("dictCode")
  147. dictData, err := dict_service.GetDictDataById(dictCode)
  148. if err != nil {
  149. response.FailJson(true, r, err.Error())
  150. }
  151. response.SusJson(true, r, "ok", dictData)
  152. }
  153. //删除字典
  154. func (c *Dict) Delete(r *ghttp.Request) {
  155. dictIds := r.GetInts("dictIds")
  156. if len(dictIds) == 0 {
  157. response.FailJson(true, r, "删除失败")
  158. }
  159. err := dict_service.DeleteDictByIds(dictIds)
  160. if err != nil {
  161. response.FailJson(true, r, "删除失败")
  162. }
  163. //清除tag缓存
  164. cache_service.New().RemoveByTag(cache_service.AdminSysConfigTag)
  165. response.SusJson(true, r, "删除成功")
  166. }
  167. //删除字典数据
  168. func (c *Dict) DataDelete(r *ghttp.Request) {
  169. dictCodes := r.GetInts("ids")
  170. if len(dictCodes) == 0 {
  171. response.FailJson(true, r, "删除失败")
  172. }
  173. err := dict_service.DeleteDictDataByIds(dictCodes)
  174. if err != nil {
  175. response.FailJson(true, r, "删除失败")
  176. }
  177. //清除tag缓存
  178. cache_service.New().RemoveByTag(cache_service.AdminSysConfigTag)
  179. response.SusJson(true, r, "删除成功")
  180. }
  181. /**
  182. 状态
  183. */
  184. func (c *Dict) SysNormalDisable(r *ghttp.Request) {
  185. //菜单正常or停用状态
  186. statusOptions, err := dict_service.GetDictWithDataByType("sys_normal_disable", "", "")
  187. if err != nil {
  188. response.FailJson(true, r, err.Error())
  189. }
  190. response.SusJson(true, r, "", statusOptions)
  191. }
  192. func (c *Dict) SysCommonStatus(r *ghttp.Request) {
  193. //获取相关选项
  194. logStatus, err := dict_service.GetDictWithDataByType("sys_oper_log_status", "", "全部")
  195. if err != nil {
  196. response.FailJson(true, r, err.Error())
  197. }
  198. response.SusJson(true, r, "ok", logStatus)
  199. }
  200. // 获取字典选择框列表
  201. func (c *Dict) OptionSelect(r *ghttp.Request) {
  202. //获取所有字典类型列表
  203. list, err := dict_service.GetAllDictType()
  204. if err != nil {
  205. response.FailJson(true, r, err.Error())
  206. }
  207. response.SusJson(true, r, "ok", list)
  208. }