This commit is contained in:
hero920103 committed 2026-10-19 01:13:17 +08:00
1 parent 5718a00e31
commit 1850ac640e
226 files changed
+37772 -12071

No files matched your search

+26 -28
View File
@@ -10,6 +10,7 @@ import (
"time"
"server/models"
"server/pkg/identity"
"server/pkg/jwtutil"
"github.com/beego/beego/v2/client/orm"
@@ -38,22 +39,7 @@ var dictTagTypes = map[string]bool{
}
func (c *PlatformDictController) dictClaims() (*jwtutil.Claims, error) {
auth := c.Ctx.Request.Header.Get("Authorization")
if auth == "" {
return nil, fmt.Errorf("未登录")
}
parts := strings.SplitN(auth, " ", 2)
if len(parts) != 2 || parts[0] != "Bearer" {
return nil, fmt.Errorf("认证信息格式错误")
}
claims, err := jwtutil.ParseToken(parts[1])
if err != nil {
return nil, fmt.Errorf("无效的token")
}
if claims.UserType != "platform" {
return nil, fmt.Errorf("无权访问")
}
return claims, nil
return identity.Claims(c.Ctx.Request.Header.Get("Authorization"), identity.EndPlatform)
}
func (c *PlatformDictController) dictErr(httpStatus, bizCode int, msg string) {
@@ -142,7 +128,8 @@ func dictPathID(c *beego.Controller) uint64 {
// 参数:page / pageSize / keyword(名称或编码模糊)/ status
func (c *PlatformDictController) ListTypes() {
if _, err := c.dictClaims(); err != nil {
c.dictErr(401, 401, err.Error())
code := identity.Status(err)
c.dictErr(code, code, err.Error())
return
}
page, pageSize, offset := dictPageSize(&c.Controller)
@@ -184,7 +171,8 @@ func (c *PlatformDictController) ListTypes() {
func (c *PlatformDictController) CreateType() {
claims, err := c.dictClaims()
if err != nil {
c.dictErr(401, 401, err.Error())
code := identity.Status(err)
c.dictErr(code, code, err.Error())
return
}
p, err := parseDictTypeBody(&c.Controller)
@@ -236,7 +224,8 @@ func (c *PlatformDictController) CreateType() {
// 编码是业务取值依据,不允许修改。
func (c *PlatformDictController) UpdateType() {
if _, err := c.dictClaims(); err != nil {
c.dictErr(401, 401, err.Error())
code := identity.Status(err)
c.dictErr(code, code, err.Error())
return
}
id := dictPathID(&c.Controller)
@@ -281,7 +270,8 @@ func (c *PlatformDictController) UpdateType() {
// 字典下还有字典项时拒绝删除,避免留下孤儿数据。
func (c *PlatformDictController) DeleteType() {
if _, err := c.dictClaims(); err != nil {
c.dictErr(401, 401, err.Error())
code := identity.Status(err)
c.dictErr(code, code, err.Error())
return
}
id := dictPathID(&c.Controller)
@@ -322,7 +312,8 @@ func (c *PlatformDictController) DeleteType() {
// 参数:dict_id(必填)/ page / pageSize / keyword(名称或值模糊)/ status
func (c *PlatformDictController) ListItems() {
if _, err := c.dictClaims(); err != nil {
c.dictErr(401, 401, err.Error())
code := identity.Status(err)
c.dictErr(code, code, err.Error())
return
}
dictID, _ := c.GetInt64("dict_id")
@@ -370,7 +361,8 @@ func (c *PlatformDictController) ListItems() {
// CreateItem POST /platform/dict/items
func (c *PlatformDictController) CreateItem() {
if _, err := c.dictClaims(); err != nil {
c.dictErr(401, 401, err.Error())
code := identity.Status(err)
c.dictErr(code, code, err.Error())
return
}
p, err := parseDictItemBody(&c.Controller)
@@ -446,7 +438,8 @@ func (c *PlatformDictController) CreateItem() {
// 字典项值是业务入库值,不允许修改,避免存量数据对不上。
func (c *PlatformDictController) UpdateItem() {
if _, err := c.dictClaims(); err != nil {
c.dictErr(401, 401, err.Error())
code := identity.Status(err)
c.dictErr(code, code, err.Error())
return
}
id := dictPathID(&c.Controller)
@@ -498,7 +491,8 @@ func (c *PlatformDictController) UpdateItem() {
// ToggleItemStatus POST /platform/dict/items/:id/status
func (c *PlatformDictController) ToggleItemStatus() {
if _, err := c.dictClaims(); err != nil {
c.dictErr(401, 401, err.Error())
code := identity.Status(err)
c.dictErr(code, code, err.Error())
return
}
id := dictPathID(&c.Controller)
@@ -540,7 +534,8 @@ func (c *PlatformDictController) ToggleItemStatus() {
// DeleteItem DELETE /platform/dict/items/:id
func (c *PlatformDictController) DeleteItem() {
if _, err := c.dictClaims(); err != nil {
c.dictErr(401, 401, err.Error())
code := identity.Status(err)
c.dictErr(code, code, err.Error())
return
}
id := dictPathID(&c.Controller)
@@ -573,7 +568,8 @@ func (c *PlatformDictController) DeleteItem() {
// 之后页面按任意 dict_code 都能同步读到,新增字典不用改前端。
func (c *PlatformDictController) OptionsAll() {
if _, err := c.dictClaims(); err != nil {
c.dictErr(401, 401, err.Error())
code := identity.Status(err)
c.dictErr(code, code, err.Error())
return
}
result := map[string][]models.PlatformDictItem{}
@@ -622,7 +618,8 @@ func (c *PlatformDictController) OptionsAll() {
// 注意:这里刻意与 GET /options/:code 分开成「同段不同方法」,避免静态段与通配段同级。
func (c *PlatformDictController) OptionsBatch() {
if _, err := c.dictClaims(); err != nil {
c.dictErr(401, 401, err.Error())
code := identity.Status(err)
c.dictErr(code, code, err.Error())
return
}
body, _ := io.ReadAll(c.Ctx.Request.Body)
@@ -695,7 +692,8 @@ func (c *PlatformDictController) OptionsBatch() {
// 业务页面按编码取选项:只返回「字典与字典项都启用」的项,按 sort 升序。
func (c *PlatformDictController) Options() {
if _, err := c.dictClaims(); err != nil {
c.dictErr(401, 401, err.Error())
code := identity.Status(err)
c.dictErr(code, code, err.Error())
return
}
code := strings.TrimSpace(c.Ctx.Input.Param(":code"))