kra/internal/server/handler/system/sys_dictionary.go

244 lines
7.2 KiB
Go
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

package system
import (
"strconv"
"kra/internal/biz/system"
"kra/pkg/response"
"github.com/gin-gonic/gin"
)
type DictionaryApi struct{}
// CreateDictionaryRequest 创建字典请求
type CreateDictionaryRequest struct {
Name string `json:"name" binding:"required"`
Type string `json:"type" binding:"required"`
Status *bool `json:"status"`
Desc string `json:"desc"`
}
// UpdateDictionaryRequest 更新字典请求
type UpdateDictionaryRequest struct {
ID uint `json:"ID" binding:"required"`
Name string `json:"name"`
Type string `json:"type"`
Status *bool `json:"status"`
Desc string `json:"desc"`
}
// GetDictionaryListRequest 获取字典列表请求
type GetDictionaryListRequest struct {
Page int `json:"page"`
PageSize int `json:"pageSize"`
Name string `json:"name"`
}
// CreateSysDictionary
// @Tags SysDictionary
// @Summary 创建SysDictionary
// @Security ApiKeyAuth
// @accept application/json
// @Produce application/json
// @Param data body CreateDictionaryRequest true "SysDictionary模型"
// @Success 200 {object} response.Response{msg=string} "创建SysDictionary"
// @Router /sysDictionary/createSysDictionary [post]
func (d *DictionaryApi) CreateSysDictionary(c *gin.Context) {
var req CreateDictionaryRequest
if err := c.ShouldBindJSON(&req); err != nil {
response.FailWithMessage(err.Error(), c)
return
}
dict := &system.Dictionary{
Name: req.Name,
Type: req.Type,
Status: req.Status,
Desc: req.Desc,
}
if err := dictionaryUsecase.CreateDictionary(c, dict); err != nil {
response.FailWithMessage("创建失败: "+err.Error(), c)
return
}
response.OkWithMessage("创建成功", c)
}
// DeleteSysDictionary
// @Tags SysDictionary
// @Summary 删除SysDictionary
// @Security ApiKeyAuth
// @accept application/json
// @Produce application/json
// @Param ID query string true "字典ID"
// @Success 200 {object} response.Response{msg=string} "删除SysDictionary"
// @Router /sysDictionary/deleteSysDictionary [delete]
func (d *DictionaryApi) DeleteSysDictionary(c *gin.Context) {
idStr := c.Query("ID")
if idStr == "" {
response.FailWithMessage("参数错误", c)
return
}
id, err := strconv.ParseUint(idStr, 10, 64)
if err != nil {
response.FailWithMessage("参数错误", c)
return
}
if err := dictionaryUsecase.DeleteDictionary(c, uint(id)); err != nil {
response.FailWithMessage("删除失败: "+err.Error(), c)
return
}
response.OkWithMessage("删除成功", c)
}
// UpdateSysDictionary
// @Tags SysDictionary
// @Summary 更新SysDictionary
// @Security ApiKeyAuth
// @accept application/json
// @Produce application/json
// @Param data body UpdateDictionaryRequest true "SysDictionary模型"
// @Success 200 {object} response.Response{msg=string} "更新SysDictionary"
// @Router /sysDictionary/updateSysDictionary [put]
func (d *DictionaryApi) UpdateSysDictionary(c *gin.Context) {
var req UpdateDictionaryRequest
if err := c.ShouldBindJSON(&req); err != nil {
response.FailWithMessage(err.Error(), c)
return
}
dict := &system.Dictionary{
ID: req.ID,
Name: req.Name,
Type: req.Type,
Status: req.Status,
Desc: req.Desc,
}
if err := dictionaryUsecase.UpdateDictionary(c, dict); err != nil {
response.FailWithMessage("更新失败: "+err.Error(), c)
return
}
response.OkWithMessage("更新成功", c)
}
// FindSysDictionary
// @Tags SysDictionary
// @Summary 用id查询SysDictionary
// @Security ApiKeyAuth
// @accept application/json
// @Produce application/json
// @Param ID query string false "字典ID"
// @Param type query string false "字典英名"
// @Success 200 {object} response.Response{data=map[string]interface{},msg=string} "用id查询SysDictionary"
// @Router /sysDictionary/findSysDictionary [get]
func (d *DictionaryApi) FindSysDictionary(c *gin.Context) {
idStr := c.Query("ID")
dictType := c.Query("type")
var id uint
if idStr != "" {
idUint, err := strconv.ParseUint(idStr, 10, 64)
if err != nil {
response.FailWithMessage("参数错误", c)
return
}
id = uint(idUint)
}
dict, err := dictionaryUsecase.GetDictionary(c, dictType, id, nil)
if err != nil {
response.FailWithMessage("获取失败", c)
return
}
response.OkWithDetailed(gin.H{"resysDictionary": dict}, "获取成功", c)
}
// GetSysDictionaryList
// @Tags SysDictionary
// @Summary 分页获取SysDictionary列表
// @Security ApiKeyAuth
// @accept application/json
// @Produce application/json
// @Param name query string false "字典名称"
// @Success 200 {object} response.Response{data=response.PageResult,msg=string} "分页获取SysDictionary列表,返回包括列表,总数,页码,每页数量"
// @Router /sysDictionary/getSysDictionaryList [get]
func (d *DictionaryApi) GetSysDictionaryList(c *gin.Context) {
name := c.Query("name")
list, err := dictionaryUsecase.GetDictionaryList(c, name)
if err != nil {
response.FailWithMessage("获取失败", c)
return
}
response.OkWithDetailed(gin.H{"list": list}, "获取成功", c)
}
// ExportSysDictionary
// @Tags SysDictionary
// @Summary 导出字典JSON包含字典详情
// @Security ApiKeyAuth
// @accept application/json
// @Produce application/json
// @Param ID query string true "字典ID"
// @Success 200 {object} response.Response{data=map[string]interface{},msg=string} "导出字典JSON"
// @Router /sysDictionary/exportSysDictionary [get]
func (d *DictionaryApi) ExportSysDictionary(c *gin.Context) {
idStr := c.Query("ID")
if idStr == "" {
response.FailWithMessage("字典ID不能为空", c)
return
}
id, err := strconv.ParseUint(idStr, 10, 64)
if err != nil {
response.FailWithMessage("参数错误", c)
return
}
exportData, err := dictionaryUsecase.ExportDictionary(c, uint(id))
if err != nil {
response.FailWithMessage("导出失败: "+err.Error(), c)
return
}
response.OkWithDetailed(exportData, "导出成功", c)
}
// ImportSysDictionaryRequest 导入字典请求
type ImportSysDictionaryRequest struct {
Json string `json:"json" binding:"required"`
}
// ImportSysDictionary
// @Tags SysDictionary
// @Summary 导入字典JSON包含字典详情
// @Security ApiKeyAuth
// @accept application/json
// @Produce application/json
// @Param data body ImportSysDictionaryRequest true "字典JSON数据"
// @Success 200 {object} response.Response{msg=string} "导入字典"
// @Router /sysDictionary/importSysDictionary [post]
func (d *DictionaryApi) ImportSysDictionary(c *gin.Context) {
var req ImportSysDictionaryRequest
if err := c.ShouldBindJSON(&req); err != nil {
response.FailWithMessage(err.Error(), c)
return
}
if err := dictionaryUsecase.ImportDictionary(c, req.Json); err != nil {
response.FailWithMessage("导入失败: "+err.Error(), c)
return
}
response.OkWithMessage("导入成功", c)
}