268 lines
9.4 KiB
Go
268 lines
9.4 KiB
Go
package system
|
|
|
|
import (
|
|
"strconv"
|
|
|
|
"git.echol.cn/loser/st/server/global"
|
|
"git.echol.cn/loser/st/server/model/common/response"
|
|
"git.echol.cn/loser/st/server/model/system"
|
|
"git.echol.cn/loser/st/server/model/system/request"
|
|
"git.echol.cn/loser/st/server/utils"
|
|
"github.com/gin-gonic/gin"
|
|
"go.uber.org/zap"
|
|
)
|
|
|
|
type DictionaryDetailApi struct{}
|
|
|
|
// CreateSysDictionaryDetail
|
|
// @Tags SysDictionaryDetail
|
|
// @Summary 创建SysDictionaryDetail
|
|
// @Security ApiKeyAuth
|
|
// @accept application/json
|
|
// @Produce application/json
|
|
// @Param data body system.SysDictionaryDetail true "SysDictionaryDetail模型"
|
|
// @Success 200 {object} response.Response{msg=string} "创建SysDictionaryDetail"
|
|
// @Router /sysDictionaryDetail/createSysDictionaryDetail [post]
|
|
func (s *DictionaryDetailApi) CreateSysDictionaryDetail(c *gin.Context) {
|
|
var detail system.SysDictionaryDetail
|
|
err := c.ShouldBindJSON(&detail)
|
|
if err != nil {
|
|
response.FailWithMessage(err.Error(), c)
|
|
return
|
|
}
|
|
err = dictionaryDetailService.CreateSysDictionaryDetail(detail)
|
|
if err != nil {
|
|
global.GVA_LOG.Error("创建失败!", zap.Error(err))
|
|
response.FailWithMessage("创建失败", c)
|
|
return
|
|
}
|
|
response.OkWithMessage("创建成功", c)
|
|
}
|
|
|
|
// DeleteSysDictionaryDetail
|
|
// @Tags SysDictionaryDetail
|
|
// @Summary 删除SysDictionaryDetail
|
|
// @Security ApiKeyAuth
|
|
// @accept application/json
|
|
// @Produce application/json
|
|
// @Param data body system.SysDictionaryDetail true "SysDictionaryDetail模型"
|
|
// @Success 200 {object} response.Response{msg=string} "删除SysDictionaryDetail"
|
|
// @Router /sysDictionaryDetail/deleteSysDictionaryDetail [delete]
|
|
func (s *DictionaryDetailApi) DeleteSysDictionaryDetail(c *gin.Context) {
|
|
var detail system.SysDictionaryDetail
|
|
err := c.ShouldBindJSON(&detail)
|
|
if err != nil {
|
|
response.FailWithMessage(err.Error(), c)
|
|
return
|
|
}
|
|
err = dictionaryDetailService.DeleteSysDictionaryDetail(detail)
|
|
if err != nil {
|
|
global.GVA_LOG.Error("删除失败!", zap.Error(err))
|
|
response.FailWithMessage("删除失败", c)
|
|
return
|
|
}
|
|
response.OkWithMessage("删除成功", c)
|
|
}
|
|
|
|
// UpdateSysDictionaryDetail
|
|
// @Tags SysDictionaryDetail
|
|
// @Summary 更新SysDictionaryDetail
|
|
// @Security ApiKeyAuth
|
|
// @accept application/json
|
|
// @Produce application/json
|
|
// @Param data body system.SysDictionaryDetail true "更新SysDictionaryDetail"
|
|
// @Success 200 {object} response.Response{msg=string} "更新SysDictionaryDetail"
|
|
// @Router /sysDictionaryDetail/updateSysDictionaryDetail [put]
|
|
func (s *DictionaryDetailApi) UpdateSysDictionaryDetail(c *gin.Context) {
|
|
var detail system.SysDictionaryDetail
|
|
err := c.ShouldBindJSON(&detail)
|
|
if err != nil {
|
|
response.FailWithMessage(err.Error(), c)
|
|
return
|
|
}
|
|
err = dictionaryDetailService.UpdateSysDictionaryDetail(&detail)
|
|
if err != nil {
|
|
global.GVA_LOG.Error("更新失败!", zap.Error(err))
|
|
response.FailWithMessage("更新失败", c)
|
|
return
|
|
}
|
|
response.OkWithMessage("更新成功", c)
|
|
}
|
|
|
|
// FindSysDictionaryDetail
|
|
// @Tags SysDictionaryDetail
|
|
// @Summary 用id查询SysDictionaryDetail
|
|
// @Security ApiKeyAuth
|
|
// @accept application/json
|
|
// @Produce application/json
|
|
// @Param data query system.SysDictionaryDetail true "用id查询SysDictionaryDetail"
|
|
// @Success 200 {object} response.Response{data=map[string]interface{},msg=string} "用id查询SysDictionaryDetail"
|
|
// @Router /sysDictionaryDetail/findSysDictionaryDetail [get]
|
|
func (s *DictionaryDetailApi) FindSysDictionaryDetail(c *gin.Context) {
|
|
var detail system.SysDictionaryDetail
|
|
err := c.ShouldBindQuery(&detail)
|
|
if err != nil {
|
|
response.FailWithMessage(err.Error(), c)
|
|
return
|
|
}
|
|
err = utils.Verify(detail, utils.IdVerify)
|
|
if err != nil {
|
|
response.FailWithMessage(err.Error(), c)
|
|
return
|
|
}
|
|
reSysDictionaryDetail, err := dictionaryDetailService.GetSysDictionaryDetail(detail.ID)
|
|
if err != nil {
|
|
global.GVA_LOG.Error("查询失败!", zap.Error(err))
|
|
response.FailWithMessage("查询失败", c)
|
|
return
|
|
}
|
|
response.OkWithDetailed(gin.H{"reSysDictionaryDetail": reSysDictionaryDetail}, "查询成功", c)
|
|
}
|
|
|
|
// GetSysDictionaryDetailList
|
|
// @Tags SysDictionaryDetail
|
|
// @Summary 分页获取SysDictionaryDetail列表
|
|
// @Security ApiKeyAuth
|
|
// @accept application/json
|
|
// @Produce application/json
|
|
// @Param data query request.SysDictionaryDetailSearch true "页码, 每页大小, 搜索条件"
|
|
// @Success 200 {object} response.Response{data=response.PageResult,msg=string} "分页获取SysDictionaryDetail列表,返回包括列表,总数,页码,每页数量"
|
|
// @Router /sysDictionaryDetail/getSysDictionaryDetailList [get]
|
|
func (s *DictionaryDetailApi) GetSysDictionaryDetailList(c *gin.Context) {
|
|
var pageInfo request.SysDictionaryDetailSearch
|
|
err := c.ShouldBindQuery(&pageInfo)
|
|
if err != nil {
|
|
response.FailWithMessage(err.Error(), c)
|
|
return
|
|
}
|
|
list, total, err := dictionaryDetailService.GetSysDictionaryDetailInfoList(pageInfo)
|
|
if err != nil {
|
|
global.GVA_LOG.Error("获取失败!", zap.Error(err))
|
|
response.FailWithMessage("获取失败", c)
|
|
return
|
|
}
|
|
response.OkWithDetailed(response.PageResult{
|
|
List: list,
|
|
Total: total,
|
|
Page: pageInfo.Page,
|
|
PageSize: pageInfo.PageSize,
|
|
}, "获取成功", c)
|
|
}
|
|
|
|
// GetDictionaryTreeList
|
|
// @Tags SysDictionaryDetail
|
|
// @Summary 获取字典详情树形结构
|
|
// @Security ApiKeyAuth
|
|
// @accept application/json
|
|
// @Produce application/json
|
|
// @Param sysDictionaryID query int true "字典ID"
|
|
// @Success 200 {object} response.Response{data=[]system.SysDictionaryDetail,msg=string} "获取字典详情树形结构"
|
|
// @Router /sysDictionaryDetail/getDictionaryTreeList [get]
|
|
func (s *DictionaryDetailApi) GetDictionaryTreeList(c *gin.Context) {
|
|
sysDictionaryID := c.Query("sysDictionaryID")
|
|
if sysDictionaryID == "" {
|
|
response.FailWithMessage("字典ID不能为空", c)
|
|
return
|
|
}
|
|
|
|
var id uint
|
|
if idUint64, err := strconv.ParseUint(sysDictionaryID, 10, 32); err != nil {
|
|
response.FailWithMessage("字典ID格式错误", c)
|
|
return
|
|
} else {
|
|
id = uint(idUint64)
|
|
}
|
|
|
|
list, err := dictionaryDetailService.GetDictionaryTreeList(id)
|
|
if err != nil {
|
|
global.GVA_LOG.Error("获取失败!", zap.Error(err))
|
|
response.FailWithMessage("获取失败", c)
|
|
return
|
|
}
|
|
response.OkWithDetailed(gin.H{"list": list}, "获取成功", c)
|
|
}
|
|
|
|
// GetDictionaryTreeListByType
|
|
// @Tags SysDictionaryDetail
|
|
// @Summary 根据字典类型获取字典详情树形结构
|
|
// @Security ApiKeyAuth
|
|
// @accept application/json
|
|
// @Produce application/json
|
|
// @Param type query string true "字典类型"
|
|
// @Success 200 {object} response.Response{data=[]system.SysDictionaryDetail,msg=string} "获取字典详情树形结构"
|
|
// @Router /sysDictionaryDetail/getDictionaryTreeListByType [get]
|
|
func (s *DictionaryDetailApi) GetDictionaryTreeListByType(c *gin.Context) {
|
|
dictType := c.Query("type")
|
|
if dictType == "" {
|
|
response.FailWithMessage("字典类型不能为空", c)
|
|
return
|
|
}
|
|
|
|
list, err := dictionaryDetailService.GetDictionaryTreeListByType(dictType)
|
|
if err != nil {
|
|
global.GVA_LOG.Error("获取失败!", zap.Error(err))
|
|
response.FailWithMessage("获取失败", c)
|
|
return
|
|
}
|
|
response.OkWithDetailed(gin.H{"list": list}, "获取成功", c)
|
|
}
|
|
|
|
// GetDictionaryDetailsByParent
|
|
// @Tags SysDictionaryDetail
|
|
// @Summary 根据父级ID获取字典详情
|
|
// @Security ApiKeyAuth
|
|
// @accept application/json
|
|
// @Produce application/json
|
|
// @Param data query request.GetDictionaryDetailsByParentRequest true "查询参数"
|
|
// @Success 200 {object} response.Response{data=[]system.SysDictionaryDetail,msg=string} "获取字典详情列表"
|
|
// @Router /sysDictionaryDetail/getDictionaryDetailsByParent [get]
|
|
func (s *DictionaryDetailApi) GetDictionaryDetailsByParent(c *gin.Context) {
|
|
var req request.GetDictionaryDetailsByParentRequest
|
|
err := c.ShouldBindQuery(&req)
|
|
if err != nil {
|
|
response.FailWithMessage(err.Error(), c)
|
|
return
|
|
}
|
|
|
|
list, err := dictionaryDetailService.GetDictionaryDetailsByParent(req)
|
|
if err != nil {
|
|
global.GVA_LOG.Error("获取失败!", zap.Error(err))
|
|
response.FailWithMessage("获取失败", c)
|
|
return
|
|
}
|
|
response.OkWithDetailed(gin.H{"list": list}, "获取成功", c)
|
|
}
|
|
|
|
// GetDictionaryPath
|
|
// @Tags SysDictionaryDetail
|
|
// @Summary 获取字典详情的完整路径
|
|
// @Security ApiKeyAuth
|
|
// @accept application/json
|
|
// @Produce application/json
|
|
// @Param id query uint true "字典详情ID"
|
|
// @Success 200 {object} response.Response{data=[]system.SysDictionaryDetail,msg=string} "获取字典详情路径"
|
|
// @Router /sysDictionaryDetail/getDictionaryPath [get]
|
|
func (s *DictionaryDetailApi) GetDictionaryPath(c *gin.Context) {
|
|
idStr := c.Query("id")
|
|
if idStr == "" {
|
|
response.FailWithMessage("字典详情ID不能为空", c)
|
|
return
|
|
}
|
|
|
|
var id uint
|
|
if idUint64, err := strconv.ParseUint(idStr, 10, 32); err != nil {
|
|
response.FailWithMessage("字典详情ID格式错误", c)
|
|
return
|
|
} else {
|
|
id = uint(idUint64)
|
|
}
|
|
|
|
path, err := dictionaryDetailService.GetDictionaryPath(id)
|
|
if err != nil {
|
|
global.GVA_LOG.Error("获取失败!", zap.Error(err))
|
|
response.FailWithMessage("获取失败", c)
|
|
return
|
|
}
|
|
response.OkWithDetailed(gin.H{"path": path}, "获取成功", c)
|
|
}
|