From 9174ae0f2562ce06e459e2da351278e979f3ddac Mon Sep 17 00:00:00 2001 From: tian <“184391138@qq.com”> Date: Tue, 27 Feb 2024 21:20:27 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20:zany=5Fface:=20=E8=AF=AD=E8=A8=80?= =?UTF-8?q?=E7=B1=BB=E5=9E=8B=E5=92=8C=E5=95=86=E5=93=81=E7=B1=BB=E5=9E=8B?= =?UTF-8?q?=E6=9E=9A=E4=B8=BE=20feat:=20:zany=5Fface:=20=E5=95=86=E5=93=81?= =?UTF-8?q?=E6=9F=A5=E8=AF=A2=E6=8E=A5=E5=8F=A3=E5=8E=BB=E9=99=A4token?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- server/api/v1/goods/goods_show.go | 33 ++++++++++++++++++++++ server/common/consts/consts.go | 28 ++++++++++++++++++ server/common/consts/goodstype_map.go | 36 ++++++++++++++++++++++++ server/common/consts/goodstype_string.go | 31 ++++++++++++++++++++ server/common/consts/langtype_map.go | 36 ++++++++++++++++++++++++ server/common/consts/langtype_string.go | 25 ++++++++++++++++ server/initialize/router.go | 1 + server/model/goods/goods_show.go | 28 ++++++++++++------ server/router/goods/goods_show.go | 11 ++++++++ 9 files changed, 220 insertions(+), 9 deletions(-) create mode 100644 server/common/consts/goodstype_map.go create mode 100644 server/common/consts/goodstype_string.go create mode 100644 server/common/consts/langtype_map.go create mode 100644 server/common/consts/langtype_string.go diff --git a/server/api/v1/goods/goods_show.go b/server/api/v1/goods/goods_show.go index 36275a8..61180fc 100644 --- a/server/api/v1/goods/goods_show.go +++ b/server/api/v1/goods/goods_show.go @@ -3,6 +3,7 @@ package goods import ( "github.com/gin-gonic/gin" "go.uber.org/zap" + common "pychr/common/consts" "pychr/global" "pychr/model/common/response" "pychr/model/goods" @@ -149,3 +150,35 @@ func (goodsShowApi *GoodsShowApi) GetGoodsShowList(c *gin.Context) { }, "获取成功", c) } } + +func (goodsShowApi *GoodsShowApi) GetLangTypeEnum(c *gin.Context) { + m := common.GetLangTypeReverseIntMap() + list := make([]goods.BaseData, 0) + for k, v := range m { + t := goods.BaseData{ + ID: v, + Name: k, + } + list = append(list, t) + } + response.OkWithDetailed(response.PageResult{ + List: list, + Total: int64(len(list)), + }, "获取成功", c) +} + +func (goodsShowApi *GoodsShowApi) GetGoodsTypeEnum(c *gin.Context) { + m := common.GetGoodsTypeReverseIntMap() + list := make([]goods.BaseData, 0) + for k, v := range m { + t := goods.BaseData{ + ID: v, + Name: k, + } + list = append(list, t) + } + response.OkWithDetailed(response.PageResult{ + List: list, + Total: int64(len(list)), + }, "获取成功", c) +} diff --git a/server/common/consts/consts.go b/server/common/consts/consts.go index 805d0c7..9765b40 100644 --- a/server/common/consts/consts.go +++ b/server/common/consts/consts.go @@ -1 +1,29 @@ package common + +// GoodsType 类型 +// +//go:generate stringer -type=GoodsType --linecomment +//go:generate generate --file=consts.go --type=GoodsType +type GoodsType int + +const ( + GoodsTypeSolidDoor GoodsType = 1 // 实木门 + GoodsTypeCompositeDoor GoodsType = 2 // 复合板门 + GoodsTypeChair GoodsType = 3 // 椅子 + GoodsTypeCombo GoodsType = 4 // 组合 + GoodsTypeVanity GoodsType = 5 // 浴室柜 + GoodsTypeCloset GoodsType = 6 // 衣柜 + GoodsTypeMDKitchen GoodsType = 7 // 现代橱柜 + GoodsTypeCCKitchen GoodsType = 8 // 古典橱柜 +) + +// LangType 文字类型 +// +//go:generate stringer -type=LangType --linecomment +//go:generate generate --file=consts.go --type=LangType +type LangType int + +const ( + LangTypeChinese LangType = 1 // 中文 + LangTypeEnglish LangType = 2 // 英文 +) diff --git a/server/common/consts/goodstype_map.go b/server/common/consts/goodstype_map.go new file mode 100644 index 0000000..ac59057 --- /dev/null +++ b/server/common/consts/goodstype_map.go @@ -0,0 +1,36 @@ +package common + +func GetGoodsTypeMap() (r map[GoodsType]string) { + l := []GoodsType{GoodsTypeSolidDoor, GoodsTypeCompositeDoor, GoodsTypeChair, GoodsTypeCombo, GoodsTypeVanity, GoodsTypeCloset, GoodsTypeMDKitchen, GoodsTypeCCKitchen} + r = make(map[GoodsType]string) + for _, k := range l { + r[k] = k.ToString() + } + return r +} +func GetGoodsTypeReverseMap() (r map[string]GoodsType) { + l := []GoodsType{GoodsTypeSolidDoor, GoodsTypeCompositeDoor, GoodsTypeChair, GoodsTypeCombo, GoodsTypeVanity, GoodsTypeCloset, GoodsTypeMDKitchen, GoodsTypeCCKitchen} + r = make(map[string]GoodsType) + for _, k := range l { + r[k.ToString()] = k + } + return r +} +func GetGoodsTypeReverseIntMap() (r map[string]int) { + l := []GoodsType{GoodsTypeSolidDoor, GoodsTypeCompositeDoor, GoodsTypeChair, GoodsTypeCombo, GoodsTypeVanity, GoodsTypeCloset, GoodsTypeMDKitchen, GoodsTypeCCKitchen} + r = make(map[string]int) + for _, k := range l { + r[k.ToString()] = int(k) + } + return r +} + +func (t GoodsType) Check() bool { + l := []GoodsType{GoodsTypeSolidDoor, GoodsTypeCompositeDoor, GoodsTypeChair, GoodsTypeCombo, GoodsTypeVanity, GoodsTypeCloset, GoodsTypeMDKitchen, GoodsTypeCCKitchen} + for i := range l { + if l[i] == t { + return true + } + } + return false +} diff --git a/server/common/consts/goodstype_string.go b/server/common/consts/goodstype_string.go new file mode 100644 index 0000000..9f9cfde --- /dev/null +++ b/server/common/consts/goodstype_string.go @@ -0,0 +1,31 @@ +// Code generated by "stringer -type=GoodsType --linecomment"; DO NOT EDIT. + +package common + +import "strconv" + +func _() { + // An "invalid array index" compiler error signifies that the constant values have changed. + // Re-run the stringer command to generate them again. + var x [1]struct{} + _ = x[GoodsTypeSolidDoor-1] + _ = x[GoodsTypeCompositeDoor-2] + _ = x[GoodsTypeChair-3] + _ = x[GoodsTypeCombo-4] + _ = x[GoodsTypeVanity-5] + _ = x[GoodsTypeCloset-6] + _ = x[GoodsTypeMDKitchen-7] + _ = x[GoodsTypeCCKitchen-8] +} + +const _GoodsType_name = "实木门复合板门椅子组合浴室柜衣柜现代橱柜古典橱柜" + +var _GoodsType_index = [...]uint8{0, 6, 12} + +func (i GoodsType) ToString() string { + i -= 1 + if i < 0 || i >= GoodsType(len(_GoodsType_index)-1) { + return "GoodsType(" + strconv.FormatInt(int64(i+1), 10) + ")" + } + return _GoodsType_name[_GoodsType_index[i]:_GoodsType_index[i+1]] +} diff --git a/server/common/consts/langtype_map.go b/server/common/consts/langtype_map.go new file mode 100644 index 0000000..608a34c --- /dev/null +++ b/server/common/consts/langtype_map.go @@ -0,0 +1,36 @@ +package common + +func GetLangTypeMap() (r map[LangType]string) { + l := []LangType{LangTypeChinese, LangTypeEnglish} + r = make(map[LangType]string) + for _, k := range l { + r[k] = k.ToString() + } + return r +} +func GetLangTypeReverseMap() (r map[string]LangType) { + l := []LangType{LangTypeChinese, LangTypeEnglish} + r = make(map[string]LangType) + for _, k := range l { + r[k.ToString()] = k + } + return r +} +func GetLangTypeReverseIntMap() (r map[string]int) { + l := []LangType{LangTypeChinese, LangTypeEnglish} + r = make(map[string]int) + for _, k := range l { + r[k.ToString()] = int(k) + } + return r +} + +func (t LangType) Check() bool { + l := []LangType{LangTypeChinese, LangTypeEnglish} + for i := range l { + if l[i] == t { + return true + } + } + return false +} diff --git a/server/common/consts/langtype_string.go b/server/common/consts/langtype_string.go new file mode 100644 index 0000000..28a54b5 --- /dev/null +++ b/server/common/consts/langtype_string.go @@ -0,0 +1,25 @@ +// Code generated by "stringer -type=LangType --linecomment"; DO NOT EDIT. + +package common + +import "strconv" + +func _() { + // An "invalid array index" compiler error signifies that the constant values have changed. + // Re-run the stringer command to generate them again. + var x [1]struct{} + _ = x[LangTypeChinese-1] + _ = x[LangTypeEnglish-2] +} + +const _LangType_name = "中文英文" + +var _LangType_index = [...]uint8{0, 6, 12} + +func (i LangType) ToString() string { + i -= 1 + if i < 0 || i >= LangType(len(_LangType_index)-1) { + return "LangType(" + strconv.FormatInt(int64(i+1), 10) + ")" + } + return _LangType_name[_LangType_index[i]:_LangType_index[i+1]] +} diff --git a/server/initialize/router.go b/server/initialize/router.go index f1a1d6b..033d88b 100644 --- a/server/initialize/router.go +++ b/server/initialize/router.go @@ -101,6 +101,7 @@ func Routers() *gin.Engine { { goodsRouter := router.RouterGroupApp.Goods goodsRouter.InitGoodsShowRouter(PrivateGroup) + goodsRouter.InitPubGoodsShowRouter(PublicGroup) } global.GVA_LOG.Info("router register success") diff --git a/server/model/goods/goods_show.go b/server/model/goods/goods_show.go index d2f2a1a..1afa791 100644 --- a/server/model/goods/goods_show.go +++ b/server/model/goods/goods_show.go @@ -2,21 +2,24 @@ package goods import ( + common "pychr/common/consts" "pychr/global" ) // 商品 结构体 GoodsShow type GoodsShow struct { global.GVA_MODEL - LangType int `json:"langType" form:"langType" gorm:"column:lang_type;comment:语言类型 1中文 2英文;size:10;" binding:"required"` // 语言类型 1中文 2英文 - GoodsMainPic string `json:"goodsMainPic" form:"goodsMainPic" gorm:"column:goods_main_pic;comment:商品主图;size:191;"` // 商品主图 - Name string `json:"name" form:"name" gorm:"column:name;comment:商品名称;size:191;" binding:"required"` // 商品名称 - BriefIntroduction string `json:"briefIntroduction" form:"briefIntroduction" gorm:"column:brief_introduction;comment:简介;size:191;"` // 简介 - Type int `json:"type" form:"type" gorm:"column:type;comment:类型;size:10;" binding:"required"` // 类型 - MainIntroduction string `json:"mainIntroduction" form:"mainIntroduction" gorm:"column:main_introduction;comment:主介绍;size:191;"` // 主介绍 - GoodsAssistantPic string `json:"goodsAssistantPic" form:"goodsAssistantPic" gorm:"column:goods_assistantPic;comment:商品副图;size:191;"` // 商品副图 - SecondIntroductionTitle string `json:"secondIntroductionTitle" form:"secondIntroductionTitle" gorm:"column:second_introduction_title;comment:副介绍标题;size:191;"` // 副介绍标题 - SecondIntroduction string `json:"secondIntroduction" form:"secondIntroduction" gorm:"column:second_introduction;comment:副介绍,逗号拼接;size:191;"` // 副介绍,逗号拼接 + LangType common.LangType `json:"langType" form:"langType" gorm:"column:lang_type;comment:语言类型 1中文 2英文;size:10;" binding:"required"` // 语言类型 1中文 2英文 + LangTypeName string `json:"langTypeName" form:"langTypeName"` // 语言类型名称 + GoodsMainPic string `json:"goodsMainPic" form:"goodsMainPic" gorm:"column:goods_main_pic;comment:商品主图;size:191;"` // 商品主图 + Name string `json:"name" form:"name" gorm:"column:name;comment:商品名称;size:191;" binding:"required"` // 商品名称 + BriefIntroduction string `json:"briefIntroduction" form:"briefIntroduction" gorm:"column:brief_introduction;comment:简介;size:191;"` // 简介 + Type int `json:"type" form:"type" gorm:"column:type;comment:类型;size:10;" binding:"required"` // 类型 + TypeName string `json:"typeName"` // 类型名称 + MainIntroduction string `json:"mainIntroduction" form:"mainIntroduction" gorm:"column:main_introduction;comment:主介绍;size:191;"` // 主介绍 + GoodsAssistantPic string `json:"goodsAssistantPic" form:"goodsAssistantPic" gorm:"column:goods_assistantPic;comment:商品副图;size:191;"` // 商品副图 + SecondIntroductionTitle string `json:"secondIntroductionTitle" form:"secondIntroductionTitle" gorm:"column:second_introduction_title;comment:副介绍标题;size:191;"` // 副介绍标题 + SecondIntroduction string `json:"secondIntroduction" form:"secondIntroduction" gorm:"column:second_introduction;comment:副介绍,逗号拼接;size:191;"` // 副介绍,逗号拼接 } // TableName 商品 GoodsShow自定义表名 goods_show @@ -25,3 +28,10 @@ func (GoodsShow) TableName() string { } type GoodsShowList []GoodsShow + +type BaseData struct { + ID int `json:"id"` + Code string `json:"code"` + Name string `json:"name"` + Default bool `json:"default"` +} diff --git a/server/router/goods/goods_show.go b/server/router/goods/goods_show.go index c15444f..45cdbe7 100644 --- a/server/router/goods/goods_show.go +++ b/server/router/goods/goods_show.go @@ -25,3 +25,14 @@ func (s *GoodsShowRouter) InitGoodsShowRouter(Router *gin.RouterGroup) { goodsShowRouterWithoutRecord.GET("getGoodsShowList", goodsShowApi.GetGoodsShowList) // 获取商品列表 } } + +func (s *GoodsShowRouter) InitPubGoodsShowRouter(Router *gin.RouterGroup) { + goodsShowRouterWithoutRecord := Router.Group("pubGoodsShow") + var goodsShowApi = v1.ApiGroupApp.GoodsApiGroup.GoodsShowApi + { + goodsShowRouterWithoutRecord.GET("goodsTypeEnum", goodsShowApi.GetGoodsTypeEnum) // 获取商品类型 + goodsShowRouterWithoutRecord.GET("langTypeEnum", goodsShowApi.GetLangTypeEnum) // 获取语言类型 + goodsShowRouterWithoutRecord.GET("findGoodsShow", goodsShowApi.FindGoodsShow) // 根据ID获取商品 + goodsShowRouterWithoutRecord.GET("getGoodsShowList", goodsShowApi.GetGoodsShowList) // 获取商品列表 + } +}