From abea88da821ca79ef4a37ed8d2d245f52c684b1b Mon Sep 17 00:00:00 2001 From: skyle1995 Date: Fri, 24 Oct 2025 01:54:45 +0800 Subject: [PATCH] Modify the UUID format to uppercase --- .gitignore | 3 ++- controllers/admin/app.go | 2 +- models/api.go | 33 +++++++++++++++++---------------- models/app.go | 2 +- recharge.db | Bin 45056 -> 0 bytes 5 files changed, 21 insertions(+), 19 deletions(-) delete mode 100644 recharge.db diff --git a/.gitignore b/.gitignore index 35e3873..ecf8883 100644 --- a/.gitignore +++ b/.gitignore @@ -3,4 +3,5 @@ networkDev node.txt config.json database.db -模板 +logs +模板 \ No newline at end of file diff --git a/controllers/admin/app.go b/controllers/admin/app.go index bdd591c..c4da5ab 100644 --- a/controllers/admin/app.go +++ b/controllers/admin/app.go @@ -278,7 +278,7 @@ func AppCreateHandler(w http.ResponseWriter, r *http.Request) { // 确保UUID和Secret被设置(虽然BeforeCreate钩子应该处理这些,但为了保险起见) if app.UUID == "" { - app.UUID = uuid.New().String() + app.UUID = strings.ToUpper(uuid.New().String()) } if app.Secret == "" { // 生成32位大写16进制随机字符 diff --git a/models/api.go b/models/api.go index 56d7f16..319c18c 100644 --- a/models/api.go +++ b/models/api.go @@ -1,6 +1,7 @@ package models import ( + "strings" "time" "github.com/google/uuid" @@ -15,39 +16,39 @@ import ( type API struct { // ID:主键,自增 ID uint `gorm:"primaryKey;comment:API接口ID,自增主键" json:"id"` - + // API类型(int型) APIType int `gorm:"not null;comment:API类型" json:"api_type"` - + // API密钥 APIKey string `gorm:"size:255;not null;uniqueIndex;comment:API密钥,唯一标识" json:"api_key"` - + // 应用UUID,关联到App表 AppUUID string `gorm:"size:36;not null;index;comment:关联的应用UUID" json:"app_uuid"` - + // 接口状态(1=启用,0=禁用) Status int `gorm:"default:1;not null;comment:接口状态,1=启用,0=禁用" json:"status"` - + // 接口提交算法 // 支持的算法:0=不加密,1=RC4,2=RSA,3=RSA(动态) SubmitAlgorithm int `gorm:"default:0;not null;comment:提交算法,0=不加密,1=RC4,2=RSA,3=RSA动态" json:"submit_algorithm"` - + // 接口返回算法 // 支持的算法:0=不加密,1=RC4,2=RSA,3=RSA(动态) ReturnAlgorithm int `gorm:"default:0;not null;comment:返回算法,0=不加密,1=RC4,2=RSA,3=RSA动态" json:"return_algorithm"` - + // 提交算法公钥(base64编码存储) SubmitPublicKey string `gorm:"type:text;comment:提交算法公钥,base64编码" json:"submit_public_key"` - + // 提交算法私钥(base64编码存储) SubmitPrivateKey string `gorm:"type:text;comment:提交算法私钥,base64编码" json:"submit_private_key"` - + // 返回算法公钥(base64编码存储) ReturnPublicKey string `gorm:"type:text;comment:返回算法公钥,base64编码" json:"return_public_key"` - + // 返回算法私钥(base64编码存储) ReturnPrivateKey string `gorm:"type:text;comment:返回算法私钥,base64编码" json:"return_private_key"` - + // 时间字段 CreatedAt time.Time `gorm:"comment:创建时间" json:"created_at"` UpdatedAt time.Time `gorm:"comment:更新时间" json:"updated_at"` @@ -57,7 +58,7 @@ type API struct { func (api *API) BeforeCreate(tx *gorm.DB) error { if api.APIKey == "" { // 生成唯一的API密钥 - api.APIKey = "api_" + uuid.New().String() + api.APIKey = "api_" + strings.ToUpper(uuid.New().String()) } return nil } @@ -69,9 +70,9 @@ func (API) TableName() string { // 算法类型常量 const ( - AlgorithmNone = 0 // 不加密 - AlgorithmRC4 = 1 // RC4 - AlgorithmRSA = 2 // RSA + AlgorithmNone = 0 // 不加密 + AlgorithmRC4 = 1 // RC4 + AlgorithmRSA = 2 // RSA AlgorithmRSADynamic = 3 // RSA(动态) ) @@ -94,4 +95,4 @@ func GetAlgorithmName(algorithm int) string { // IsValidAlgorithm 验证算法类型是否有效 func IsValidAlgorithm(algorithm int) bool { return algorithm >= AlgorithmNone && algorithm <= AlgorithmRSADynamic -} \ No newline at end of file +} diff --git a/models/app.go b/models/app.go index 48e5f47..594a2b3 100644 --- a/models/app.go +++ b/models/app.go @@ -58,7 +58,7 @@ type App struct { // BeforeCreate 在创建记录前自动生成UUID和密钥 func (app *App) BeforeCreate(tx *gorm.DB) error { if app.UUID == "" { - app.UUID = uuid.New().String() + app.UUID = strings.ToUpper(uuid.New().String()) } if app.Secret == "" { // 生成32位大写16进制随机字符 diff --git a/recharge.db b/recharge.db deleted file mode 100644 index 50fcab35019be73973a1911cd676787476141a87..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 45056 zcmeI4UrZax9mm%=!N$aFqL%n7HM-4RB0>Rs*EV3HrgtPER|*C~Kuy%D_Of1_Rs1jB zHIRF0Hh%$;kV|qQaETHk(s0QgV-}=-CumAKVQq?|Hsyeg&gE5Ye zs4p$|TbcEGe!rdh&1b$dW@kNn>}b0n@l<~>>}Ms)Mrh^z+v4+*le;`bH5GTt>h41Y0P(*IfiF-n9D2mk>f00e*l z5cr=W@JoZvR9C5ywL-wd4+)+j7aI~pymOu6&*0rG`CxlXIvi>r3f4^t0g3nWVXCXU)!E#Af@*6yK{faGbhdV& zbDS+5J+*4s(wPvy>fF)ULv{4Fx2J5lN|eM8NmOonCeA#AD6vvRT%Q$nxaCN5Z+j2L z)Vjq;pI?w%tj`+^3(`q{5pTNI9pTX@Bsj5;ln4^V|nASl^)E7}%+ASl6 z5SAF$kGuN9FG^JzjQk)igAkHINYv%a0G+aN8K_z3xAR7tGr;)IX61$ily!}SeW`+xt^&M8Q08t&xjEZo&yC8egC8qJ9mqtiZg zJ?j$r(-9s?S6us1yM|bvaUYJT7M)owpVa6~CX?p8Ma@$!Qr(rTIbV(8twxVb%=tY& z#ERlzFpR#6@`i$p!6mZ3^#esX=qu2%-l~Q0wYi352=syt2mk>f00e*l5C8%|00;m9 zAOHk_01(I!klX&W-9VV+t+G+?bg~}55ZGg7_b}Ey+()NR^?83b*l=WstEZcq`KFpxwtG<@uKI;p0av$E<9BZ}7CW&1?2s?fsmU>8oe!t-Q@<=V_LR9{0o_S5vY+41#%2^k~Ef1n*~KmZ5;0U!VbfB+Bx0zd!=00AHX1c1Q*F@bF* z+FhE=??WmK8m*~B{XIh!n##cU|Nlv#7i>TP2mk>f00e*l5C8%|00;m9AOHk_z-A&~ zK-d53FBht|eoq6-2bQ_1GD-_qPW6gCC^M=7Jvn0K?FDv#NVWx%h=LH=@j3j!h58?mbM*KS16!#C1rRrx_BjadnG=zRPfh*cA94FMSlI4W0!Xtb;Rz@-rO2Rm%czT z#9w}r3WLfEZ+sy)LS=kmNS2o6)vv zmw#l?5${J(Gxi6ANM|m*iu6!0bS5l#PfFD9KBuryDCP2)GCCU@JsZ0-Z>E}kKB^nr zMXDRER}K&G9&>W~o5Y1F<*QGTw&GJ4;v>VcyXRxWw-WQuVz;j%zA<^epyq51bfcqK z)2`a((lQ-UM+#1-pT&!@11wsn>+++XK*zs+5r1({Sw5>={2IxMK7bFe&8L!40&@Tv zk`rI15()=mZ?ZQO3uM(UYxPKDm0Vk!$cuQvy$e5~AQ+KQW$5VgRAT;a;`znc#B=mY zPCR?PJRE;?{q^z)3MBdBc4BUZQJ#(?Tj4ltj-p{?&9YIaBP?XZ>GbgZELt_ME{=BL zrM*n-*3xq%ys$k-C)A4JUluvG}RAQ5J$+J@_*Ed9i;6{*aG1b3uPX zzKLX!JU17g`wBrpFrrIWmAMD8J6DwJW6{MaWprA(K8wcF!tpSU;@y7LKCnecyj$1g zbc%STIeH*M(1Mn4^O9)6$L3JLiw4j5lgW1UN%?FgK5{v+Ft4m!ctg32&04Hwn5J~N#WYk-!iza+U2$qJy8{rccg2J92z*alqsg1kuc*-O&Pg+3m%MrCZP;Zst(?@pugRHwHGE%Nr^%n+ zEW`Qa%{A&PwHD2~nLi!&%$t8J-Jz}0teFGbYSg}~$xcFT!A0gz3~BL6YGP*oq{OJ* zU8bg}lMwj+KYHjtY(M}A00AHX1b_e#00KY&2mk>f00e-*CMJOI|HJkFCT?J;8V~>i zKmZ5;0U!VbfB+Bx0zd!=00Be*?*D@ffB+Bx0zd!=00AHX1b_e#00KY&2yA`=aQ}bv zw=vWZ2mk>f00e*l5C8%|00;m9AOHk_09^lr27mw%00KY&2mk>f00e*l5C8%|00?Y; G0{;P>u?i^w