| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272 |
- package admin
- import (
- "gfast/app/model/admin/sys_dict_data"
- "gfast/app/model/admin/sys_dict_type"
- "gfast/app/service/admin/dict_service"
- "gfast/app/service/admin/user_service"
- "gfast/app/service/cache_service"
- "gfast/library/response"
- "github.com/gogf/gf/frame/g"
- "github.com/gogf/gf/net/ghttp"
- "github.com/gogf/gf/util/gconv"
- "github.com/gogf/gf/util/gvalid"
- )
- type Dict struct{}
- // @Summary 字典列表
- // @Description 字典列表
- // @Tags 字典管理
- // @Param data body sys_dict_type.SelectPageReq true "data"
- // @Success 0 {object} response.Response "{"code": 200, "data": [...]}"
- // @Router /system/config/dict/list [get]
- // @Security
- func (c *Dict) List(r *ghttp.Request) {
- var req *sys_dict_type.SelectPageReq
- //获取参数
- if err := r.Parse(&req); err != nil {
- response.FailJson(true, r, err.(*gvalid.Error).FirstString())
- }
- total, page, list, err := dict_service.SelectListByPage(req)
- if err != nil {
- response.FailJson(true, r, err.Error())
- }
- //菜单正常or停用状态
- statusOptions, err := dict_service.GetDictWithDataByType("sys_normal_disable", "", "")
- if err != nil {
- response.FailJson(true, r, err.Error())
- }
- result := g.Map{
- "currentPage": page,
- "total": total,
- "list": list,
- "searchStatus": statusOptions,
- }
- response.SusJson(true, r, "字典列表", result)
- }
- // @Summary 添加字典
- // @Description 添加字典
- // @Tags 字典管理
- // @Param data body sys_dict_type.AddReq true "data"
- // @Success 0 {object} response.Response "{"code": 200, "data": [...]}"
- // @Router /system/config/dict/add [post]
- // @Security
- func (c *Dict) Add(r *ghttp.Request) {
- if r.Method == "POST" {
- var req *sys_dict_type.AddReq
- //获取参数
- if err := r.Parse(&req); err != nil {
- response.FailJson(true, r, err.(*gvalid.Error).FirstString())
- }
- if !dict_service.CheckDictTypeUniqueAll(req.DictType) {
- response.FailJson(true, r, "字典类型已经存在")
- }
- userId := user_service.GetLoginID(r) //获取登陆用户id
- _, err := dict_service.AddSave(req, userId)
- if err != nil {
- g.Log().Error(err.Error())
- response.FailJson(true, r, "字典类型添加失败")
- }
- //清除tag缓存
- cache_service.New().RemoveByTag(cache_service.AdminSysConfigTag)
- response.SusJson(true, r, "添加字典成功")
- }
- }
- // @Summary 修改字典
- // @Description 修改字典
- // @Tags 字典管理
- // @Param data body sys_dict_type.EditReq true "data"
- // @Success 0 {object} response.Response "{"code": 200, "data": [...]}"
- // @Router /system/config/dict/edit [post]
- // @Security
- func (c *Dict) Edit(r *ghttp.Request) {
- if r.Method == "POST" {
- var req *sys_dict_type.EditReq
- //获取参数
- if err := r.Parse(&req); err != nil {
- response.FailJson(true, r, err.(*gvalid.Error).FirstString())
- }
- if !dict_service.CheckDictTypeUnique(req) {
- response.FailJson(true, r, "字典类型已经存在")
- }
- userId := user_service.GetLoginID(r) //获取登陆用户id
- _, err := dict_service.EditSave(req, userId)
- if err != nil {
- response.FailJson(true, r, err.Error())
- }
- //清除tag缓存
- cache_service.New().RemoveByTag(cache_service.AdminSysConfigTag)
- response.SusJson(true, r, "修改成功")
- }
- id := r.GetInt("dictId")
- entity, err := dict_service.GetDictById(id)
- if err != nil {
- response.FailJson(true, r, "字典数据获取失败")
- }
- response.SusJson(true, r, "ok", entity)
- }
- // @Summary 字典数据列表
- // @Description 字典数据列表
- // @Tags 字典管理
- // @Param data body sys_dict_data.SelectDataPageReq true "data"
- // @Success 0 {object} response.Response "{"code": 200, "data": [...]}"
- // @Router /system/config/dict/dataList [get]
- // @Security
- func (c *Dict) DataList(r *ghttp.Request) {
- var req *sys_dict_data.SelectDataPageReq
- //获取参数
- if err := r.Parse(&req); err != nil {
- response.FailJson(true, r, err.(*gvalid.Error).FirstString())
- }
- total, page, list, err := dict_service.SelectDataListByPage(req)
- if err != nil {
- response.FailJson(true, r, err.Error())
- }
- //菜单正常or停用状态
- statusOptions, err := dict_service.GetDictWithDataByType("sys_normal_disable", "", "")
- if err != nil {
- response.FailJson(true, r, err.Error())
- }
- result := g.Map{
- "currentPage": page,
- "total": total,
- "list": list,
- "searchStatus": statusOptions,
- }
- response.SusJson(true, r, "ok", result)
- }
- // @Summary 添加数据字典
- // @Description 添加数据字典
- // @Tags 字典管理
- // @Param data body sys_dict_data.AddDataReq true "data"
- // @Success 0 {object} response.Response "{"code": 200, "data": [...]}"
- // @Router /system/config/dict/dataAdd [post]
- // @Security
- func (c *Dict) DataAdd(r *ghttp.Request) {
- if r.Method == "POST" {
- var req *sys_dict_data.AddDataReq
- //获取参数
- if err := r.Parse(&req); err != nil {
- response.FailJson(true, r, err.(*gvalid.Error).FirstString())
- }
- userId := user_service.GetLoginID(r) //获取登陆用户id
- _, err := dict_service.AddSaveData(req, gconv.Uint64(userId))
- if err != nil {
- response.FailJson(true, r, err.Error())
- }
- //清除tag缓存
- cache_service.New().RemoveByTag(cache_service.AdminSysConfigTag)
- response.SusJson(true, r, "添加字典数据成功")
- }
- }
- // @Summary 修改字典数据
- // @Description 修改字典数据
- // @Tags 字典管理
- // @Param data body sys_dict_data.EditDataReq true "data"
- // @Success 0 {object} response.Response "{"code": 200, "data": [...]}"
- // @Router /system/config/dict/dataEdit [post]
- // @Security
- func (c *Dict) DataEdit(r *ghttp.Request) {
- if r.Method == "POST" {
- var req *sys_dict_data.EditDataReq
- //获取参数
- if err := r.Parse(&req); err != nil {
- response.FailJson(true, r, err.(*gvalid.Error).FirstString())
- }
- userId := user_service.GetLoginID(r)
- _, err := dict_service.EditSaveData(req, gconv.Uint64(userId))
- if err != nil {
- response.FailJson(true, r, err.Error())
- }
- //清除tag缓存
- cache_service.New().RemoveByTag(cache_service.AdminSysConfigTag)
- response.SusJson(true, r, "修改字典数据成功")
- }
- dictCode := r.GetInt("dictCode")
- dictData, err := dict_service.GetDictDataById(dictCode)
- if err != nil {
- response.FailJson(true, r, err.Error())
- }
- response.SusJson(true, r, "ok", dictData)
- }
- // @Summary 删除字典
- // @Description 删除字典
- // @Tags 字典管理
- // @Param dictIds body string true "dictIds[1,2,3]"
- // @Success 0 {object} response.Response "{"code": 200, "data": [...]}"
- // @Router /system/config/dict/delete [delete]
- // @Security
- func (c *Dict) Delete(r *ghttp.Request) {
- dictIds := r.GetInts("dictIds")
- if len(dictIds) == 0 {
- response.FailJson(true, r, "删除失败")
- }
- err := dict_service.DeleteDictByIds(dictIds)
- if err != nil {
- response.FailJson(true, r, "删除失败")
- }
- //清除tag缓存
- cache_service.New().RemoveByTag(cache_service.AdminSysConfigTag)
- response.SusJson(true, r, "删除成功")
- }
- // @Summary 删除字典数据
- // @Description 删除字典数据
- // @Tags 字典管理
- // @Param ids body integer true "ids[1,2,3...]"
- // @Success 0 {object} response.Response "{"code": 200, "data": [...]}"
- // @Router /system/config/dict/dataDelete [delete]
- // @Security
- func (c *Dict) DataDelete(r *ghttp.Request) {
- dictCodes := r.GetInts("ids")
- if len(dictCodes) == 0 {
- response.FailJson(true, r, "删除失败")
- }
- err := dict_service.DeleteDictDataByIds(dictCodes)
- if err != nil {
- response.FailJson(true, r, "删除失败")
- }
- //清除tag缓存
- cache_service.New().RemoveByTag(cache_service.AdminSysConfigTag)
- response.SusJson(true, r, "删除成功")
- }
- // @Summary 获取字典对应选项
- // @Description 获取字典对应选项
- // @Tags 字典管理
- // @Param dictType query string true "dictType"
- // @Success 0 {object} response.Response "{"code": 200, "data": [...]}"
- // @Router /system/config/dict/sysNormalDisable [post]
- // @Security
- func (c *Dict) GetDicts(r *ghttp.Request) {
- dictType := r.GetString("dictType")
- //菜单正常or停用状态
- statusOptions, err := dict_service.GetDictWithDataByType(dictType, "", "")
- if err != nil {
- response.FailJson(true, r, err.Error())
- }
- response.SusJson(true, r, "ok", statusOptions)
- }
- // 获取字典选择框列表
- func (c *Dict) OptionSelect(r *ghttp.Request) {
- //获取所有字典类型列表
- list, err := dict_service.GetAllDictType()
- if err != nil {
- response.FailJson(true, r, err.Error())
- }
- response.SusJson(true, r, "ok", list)
- }
|