diff --git a/apis/public/iap.api b/apis/public/iap.api new file mode 100644 index 0000000..6d4ec27 --- /dev/null +++ b/apis/public/iap.api @@ -0,0 +1,34 @@ +syntax = "v1" + +info ( + title: "IAP API" + desc: "API for ppanel" + author: "Tension" + email: "tension@ppanel.com" + version: "0.0.1" +) + +import "../types.api" + +@server ( + prefix: v1/public/iap/apple + group: public/iap/apple + middleware: AuthMiddleware,DeviceMiddleware +) +service ppanel { + @doc "Attach Apple Transaction" + @handler AttachAppleTransaction + post /transactions/attach (AttachAppleTransactionRequest) returns (AttachAppleTransactionResponse) + + @doc "Attach Apple Transaction By Id" + @handler AttachAppleTransactionById + post /transactions/attach/id (AttachAppleTransactionByIdRequest) returns (AttachAppleTransactionResponse) + + @doc "Restore Apple Transactions" + @handler RestoreAppleTransactions + post /transactions/restore (RestoreAppleTransactionsRequest) + + @doc "Get Apple IAP Status" + @handler GetAppleStatus + get /status returns (GetAppleStatusResponse) +} diff --git a/internal/handler/auth/deviceLoginHandler.go b/internal/handler/auth/deviceLoginHandler.go index 6a772bf..20b5899 100644 --- a/internal/handler/auth/deviceLoginHandler.go +++ b/internal/handler/auth/deviceLoginHandler.go @@ -19,6 +19,7 @@ func DeviceLoginHandler(svcCtx *svc.ServiceContext) func(c *gin.Context) { return } + req.IP = c.ClientIP() l := auth.NewDeviceLoginLogic(c.Request.Context(), svcCtx) resp, err := l.DeviceLogin(&req) result.HttpResult(c, resp, err) diff --git a/internal/handler/auth/telephoneLoginHandler.go b/internal/handler/auth/telephoneLoginHandler.go index 44c1b53..13352c7 100644 --- a/internal/handler/auth/telephoneLoginHandler.go +++ b/internal/handler/auth/telephoneLoginHandler.go @@ -25,6 +25,7 @@ func TelephoneLoginHandler(svcCtx *svc.ServiceContext) func(c *gin.Context) { } // get client ip req.IP = c.ClientIP() + req.UserAgent = c.Request.UserAgent() if svcCtx.Config.Verify.LoginVerify { verifyTurns := turnstile.New(turnstile.Config{ Secret: svcCtx.Config.Verify.TurnstileSecret, diff --git a/internal/handler/routes.go b/internal/handler/routes.go index 5872aa8..27d4f6f 100644 --- a/internal/handler/routes.go +++ b/internal/handler/routes.go @@ -26,6 +26,7 @@ import ( auth "github.com/perfect-panel/server/internal/handler/auth" authOauth "github.com/perfect-panel/server/internal/handler/auth/oauth" common "github.com/perfect-panel/server/internal/handler/common" + publicIapApple "github.com/perfect-panel/server/internal/handler/public/iap/apple" publicAnnouncement "github.com/perfect-panel/server/internal/handler/public/announcement" publicDocument "github.com/perfect-panel/server/internal/handler/public/document" publicOrder "github.com/perfect-panel/server/internal/handler/public/order" @@ -733,6 +734,23 @@ func RegisterHandlers(router *gin.Engine, serverCtx *svc.ServiceContext) { publicAnnouncementGroupRouter.GET("/list", publicAnnouncement.QueryAnnouncementHandler(serverCtx)) } + publicIapAppleGroupRouter := router.Group("/v1/public/iap/apple") + publicIapAppleGroupRouter.Use(middleware.AuthMiddleware(serverCtx), middleware.DeviceMiddleware(serverCtx)) + + { + // Attach Apple Transaction + publicIapAppleGroupRouter.POST("/transactions/attach", publicIapApple.AttachAppleTransactionHandler(serverCtx)) + + // Attach Apple Transaction By Id + publicIapAppleGroupRouter.POST("/transactions/attach/id", publicIapApple.AttachAppleTransactionByIdHandler(serverCtx)) + + // Restore Apple Transactions + publicIapAppleGroupRouter.POST("/transactions/restore", publicIapApple.RestoreAppleTransactionsHandler(serverCtx)) + + // Get Apple IAP Status + publicIapAppleGroupRouter.GET("/status", publicIapApple.GetAppleStatusHandler(serverCtx)) + } + publicDocumentGroupRouter := router.Group("/v1/public/document") publicDocumentGroupRouter.Use(middleware.AuthMiddleware(serverCtx), middleware.DeviceMiddleware(serverCtx)) diff --git a/internal/logic/common/inviteLinkResolver.go b/internal/logic/common/inviteLinkResolver.go index 23e9329..fa6ab9a 100644 --- a/internal/logic/common/inviteLinkResolver.go +++ b/internal/logic/common/inviteLinkResolver.go @@ -251,7 +251,7 @@ func (r *InviteLinkResolver) cacheShortLink(referCode, shortLink string) { } cacheKey := inviteShortLinkCachePrefix + referCode - _ = r.svcCtx.Redis.Set(r.ctx, cacheKey, shortLink, 0).Err() + _ = r.svcCtx.Redis.Set(r.ctx, cacheKey, shortLink, 7*24*time.Hour).Err() } func uniqueReferCodes(referCodes []string) []string { diff --git a/internal/logic/public/user/getInviteSalesLogic.go b/internal/logic/public/user/getInviteSalesLogic.go index 50ef201..6fcf8af 100644 --- a/internal/logic/public/user/getInviteSalesLogic.go +++ b/internal/logic/public/user/getInviteSalesLogic.go @@ -121,10 +121,13 @@ func (l *GetInviteSalesLogic) GetInviteSales(req *types.GetInviteSalesRequest) ( hashVal := h.Sum64() % 10000000000 userHashStr := fmt.Sprintf("%010d", hashVal) - // Format product name as "{{ quantity }}天VPN服务" - productName := fmt.Sprintf("%d天VPN服务", order.Quantity) - if order.Quantity <= 0 { - productName = "1天VPN服务" + // Format product name: prefer subscribe name, fallback to quantity-based label + productName := order.ProductName + if productName == "" { + productName = fmt.Sprintf("%d天VPN服务", order.Quantity) + if order.Quantity <= 0 { + productName = "VPN服务" + } } list = append(list, types.InvitedUserSale{ diff --git a/internal/logic/public/user/getUserInviteStatsLogic.go b/internal/logic/public/user/getUserInviteStatsLogic.go index dc2106d..4a4aec5 100644 --- a/internal/logic/public/user/getUserInviteStatsLogic.go +++ b/internal/logic/public/user/getUserInviteStatsLogic.go @@ -37,14 +37,14 @@ func (l *GetUserInviteStatsLogic) GetUserInviteStats(req *types.GetUserInviteSta } userId := u.Id - // 2. 获取历史邀请佣金 (FriendlyCount): 所有被邀请用户产生订单的佣金总和 - // 注意:这里复用了 friendly_count 字段名,实际含义是佣金总额 + // 2. 获取历史邀请佣金总额 (FriendlyCount): 从佣金日志中统计邀请人收到的佣金 + // type=33(佣金日志),object_id=userId,content JSON 中 type 为 331(购买) 或 332(续费) 时才是真实收入 var totalCommission sql.NullInt64 err = l.svcCtx.DB.WithContext(l.ctx). - Table("`order` o"). - Select("COALESCE(SUM(o.commission), 0) as total"). - Joins("JOIN user u ON o.user_id = u.id"). - Where("u.referer_id = ? AND o.status IN (?, ?)", userId, 2, 5). // 只统计已支付和已完成的订单 + Table("system_logs"). + Select("COALESCE(SUM(JSON_EXTRACT(content, '$.amount')), 0) as total"). + Where("type = ? AND object_id = ? AND JSON_EXTRACT(content, '$.type') IN (?, ?)", + 33, userId, 331, 332). Scan(&totalCommission).Error if err != nil { diff --git a/ppanel.api b/ppanel.api index 3e6f0d9..324f565 100644 --- a/ppanel.api +++ b/ppanel.api @@ -39,5 +39,6 @@ import ( "apis/public/payment.api" "apis/public/document.api" "apis/public/portal.api" + "apis/public/iap.api" ) diff --git a/订单日志.txt b/订单日志.txt index d2e5473..5790959 100644 --- a/订单日志.txt +++ b/订单日志.txt @@ -1,169 +1,351 @@ - - - - -5057-03-03 00:00:00.928 info HTTP Request duration=3.988µs caller=middleware/loggerMiddleware.go:113 span=1525df19a65517f2 request=GET tapi.hifast.biz/ query= api_header= trace=7dcc815454c687216bb9bbbf19a624a1status=404 ip=205.198.65.239 user-agent=Dart/3.9 (dart:io) -5057-03-03 00:00:00.928 debug 404 Not Found: Host:tapi.hifast.biz Path:/ IsPanDomain:false caller=middleware/loggerMiddleware.go:117 trace=7dcc815454c687216bb9bbbf19a624a1 span=1525df19a65517f2 -[GIN] 2026/03/05 - 23:41:07 | 404 | 146.033µs | 205.198.65.239 | GET "/" -5057-03-03 00:00:00.941 info HTTP Request duration=3.818µs caller=middleware/loggerMiddleware.go:113 status=404 request=GET tapi.hifast.biz/ query= ip=205.198.65.239 api_header= trace=0feea8e7ea7a80c39e9f7b8409fa9070 user-agent=Dart/3.9 (dart:io) span=f290b4afc44749cc -5057-03-03 00:00:00.941 debug 404 Not Found: Host:tapi.hifast.biz Path:/ IsPanDomain:false caller=middleware/loggerMiddleware.go:117 trace=0feea8e7ea7a80c39e9f7b8409fa9070 span=f290b4afc44749cc -[GIN] 2026/03/05 - 23:41:07 | 404 | 167.375µs | 205.198.65.239 | GET "/" -5058-03-03 00:00:00.780 info [GORM] SQL Executed duration=3.8ms caller=auth/deviceLoginHandler.go:23 rows=1trace=3ec3a71c37cb6006b2ee4a518139e3c1 sql=INSERT INTO `system_logs` (`type`,`object_id`,`content`,`created_at`,`date`) VALUES (30,652,'{"method":"device","login_ip":"","user_agent":"HiVPN/1.0.0 (iOS; iPhone; 26.1) Flutter","success":true,"timestamp":1772725268776}','2026-03-05 23:41:08.777','2026-03-05') span=3417e2cefebbf248 -5058-03-03 00:00:00.780 info HTTP Request duration=5.619881ms caller=middleware/loggerMiddleware.go:113 ip=205.198.65.239 user-agent=Dart/3.9 (dart:io) device_decrypt_status=success trace=3ec3a71c37cb6006b2ee4a518139e3c1 span=3417e2cefebbf248 status=200 request=POST tapi.hifast.biz/v1/auth/login/device decrypted_request_body={"identifier":"b905ea08eaed3b5d5d710b3d1528cd58bbd2f4adc3230a313b72cf470d91e93b","user_agent":"HiVPN/1.0.0 (iOS; iPhone; 26.1) Flutter"} response_body={"code":200,"data":{"data":"zeRk+9iUt1uq5RXPTuR8tUglKAYMTyu16JxUj1wTpzE2hVSlyP2eGlx3TGly37dE5dbGqCVGzbpvG5s6QcvWvdGEAfwqq+ETbbEa6GcUZRZyq48DtChdMx8WIqwwCGg7cX/B1O9Vx3TJypzY5TXgPT7Gy6BQ8s8wL9bGd5thXTnkxyL12MAAuMxoyNtGyKfqMcWkM7aF0q5UZkHbQi1xAdN8/WnT16p197POnJEGVVjGA/hr53LYdvZlPqYZSXeCLVVG639mAALYSM4qNGj1mO+UHh4N/VCU2IFXzPQ0uEmVuAnsJYIV9Htze/ooEoTimQHnTmE2yc6L+/IhM08koQ+j4nGhswwgFVH3/ztRUo9eYA3aOgKRNa2rBUEJUpQJ","time":"1899fc3d5a033efe"},"msg":"success"} query= api_header= request_body={"data":"T/OOfaM1i2fBi3TW1UBEIzz6H8DA0ZUwpvY5yp3NYx9G8qz4oS2EgXutpmZl/gEoPyL9ABvb70N142o6W7CjvYOIH0668k2wx2VHfnriQuPYbDPJgRdf9EeaPWYLs/lRcDnDDw6nvMFdCj6//1YwtKlm+70JwwcHCYoDOMZA1M471pyIKAz+fv/q2sNwcqQw","time":"2026-03-05T23:41:06.471549"} -[GIN] 2026/03/05 - 23:41:08 | 200 | 5.785642ms | 205.198.65.239 | POST "/v1/auth/login/device" -5059-03-03 00:00:00.597 error [GORM] duration=1.2ms caller=gin@v1.10.0/context.go:185 trace=ca6c4e1b5d769b0a763357a61652fd4e span=c17f3960547454ce sql=SELECT user_family_member.family_id, user_family_member.role, user_family.status as family_status, user_family.owner_user_id, user_family.max_members FROM `user_family_member` JOIN user_family ON user_family.id = user_family_member.family_id AND user_family.deleted_at IS NULL WHERE user_family_member.user_id = 652 AND user_family_member.deleted_at IS NULL AND user_family_member.status = 1 ORDER BY `user_family_member`.`family_id` LIMIT 1 rows=0 error=record not found -5059-03-03 00:00:00.597 debug Hit cache for invite short link caller=user/queryUserInfoLogic.go:256 invite_code=uuvGfHKB short_link=https://getsapp.net/rb7bAt trace=ca6c4e1b5d769b0a763357a61652fd4e span=c17f3960547454ce -5059-03-03 00:00:00.598 info HTTP Request duration=2.604071ms caller=middleware/loggerMiddleware.go:113 query= ip=205.198.65.239 device_decrypt_status=success request=GET tapi.hifast.biz/v1/public/user/info user-agent=ios api_header= status=200 encrypted_query=data=WcXks%2BagTAqP7TAy6046Yg%3D%3D&time=2026-03-05T23%3A41%3A07.315946 decrypted_query= trace=ca6c4e1b5d769b0a763357a61652fd4e span=c17f3960547454ce -[GIN] 2026/03/05 - 23:41:09 | 200 | 2.74783ms | 205.198.65.239 | GET "/v1/public/user/info?data=WcXks%2BagTAqP7TAy6046Yg%3D%3D&time=2026-03-05T23%3A41%3A07.315946" -5059-03-03 00:00:00.853 info [GORM] SQL Executed duration=1.1ms caller=gin@v1.10.0/context.go:185 sql=SELECT user_family_member.role, user_family.status AS family_status, user_family.owner_user_id FROM `user_family_member` JOIN user_family ON user_family.id = user_family_member.family_id AND user_family.deleted_at IS NULL WHERE user_family_member.user_id = 652 AND user_family_member.deleted_at IS NULL AND user_family_member.status = 1 ORDER BY user_family_member.role LIMIT 1 trace=ccbed8325bde434f79565f3383fdb04d rows=0 span=2d4db02fa3fcc859 -5059-03-03 00:00:00.853 info HTTP Request duration=2.541801ms caller=middleware/loggerMiddleware.go:113 user-agent=ios status=200 api_header= request=GET tapi.hifast.biz/v1/public/user/subscribe query= ip=205.198.65.239 encrypted_query=data=Nnyxof%2FYjk3FS%2BIXSRxPZg%3D%3D&time=2026-03-05T23%3A41%3A07.587159 decrypted_query= trace=ccbed8325bde434f79565f3383fdb04d span=2d4db02fa3fcc859 device_decrypt_status=success -[GIN] 2026/03/05 - 23:41:09 | 200 | 2.672574ms | 205.198.65.239 | GET "/v1/public/user/subscribe?data=Nnyxof%2FYjk3FS%2BIXSRxPZg%3D%3D&time=2026-03-05T23%3A41%3A07.587159" -50510-03-03 00:00:00.093 info [GORM] SQL Executed duration=1.2ms caller=gin@v1.10.0/context.go:185 sql=SELECT user_family_member.role, user_family.status AS family_status, user_family.owner_user_id FROM `user_family_member` JOIN user_family ON user_family.id = user_family_member.family_id AND user_family.deleted_at IS NULL WHERE user_family_member.user_id = 652 AND user_family_member.deleted_at IS NULL AND user_family_member.status = 1 ORDER BY user_family_member.role LIMIT 1 rows=0 trace=4e70cdc000f6080d75a79a368440e798 span=55ba80cded9e9439 -50510-03-03 00:00:00.093 info HTTP Request duration=2.475483ms caller=middleware/loggerMiddleware.go:113 query=contains_nodes=false user-agent=ios span=55ba80cded9e9439 status=200 trace=4e70cdc000f6080d75a79a368440e798 request=GET tapi.hifast.biz/v1/public/user/subscribe?contains_nodes=false ip=205.198.65.239 api_header= device_decrypt_status=success decrypted_query=contains_nodes=false encrypted_query=data=DV8lL01rpZwNgAjM251Wzh4E%2B06Twm4apgp6qGLLeqc%3D&time=2026-03-05T23%3A41%3A08.388438 -[GIN] 2026/03/05 - 23:41:10 | 200 | 2.602979ms | 205.198.65.239 | GET "/v1/public/user/subscribe?data=DV8lL01rpZwNgAjM251Wzh4E%2B06Twm4apgp6qGLLeqc%3D&time=2026-03-05T23%3A41%3A08.388438" -50511-03-03 00:00:00.230 info [GORM] SQL Executed duration=0.9ms caller=common/getGlobalConfigLogic.go:68 trace=0534ac35c2062599d98f97c99b4ea391 rows=8 span=62c79445a7dbb253 sql=SELECT * FROM `auth_method` -50511-03-03 00:00:00.231 info HTTP Request duration=2.203104ms caller=middleware/loggerMiddleware.go:113 status=200 ip=205.198.65.239 api_header= device_decrypt_status=success encrypted_query=data=QXuuJmXXwSAAKF4dFhnDRAS3VZF4nyHv0wvzsB%2B7v28%3D&time=2026-03-05T23%3A41%3A09.529231 decrypted_query=user_agent=iosrequest=GET tapi.hifast.biz/v1/common/site/config?user_agent=ios query=user_agent=ios user-agent=ios span=62c79445a7dbb253 trace=0534ac35c2062599d98f97c99b4ea391 -[GIN] 2026/03/05 - 23:41:11 | 200 | 2.385308ms | 205.198.65.239 | GET "/v1/common/site/config?data=QXuuJmXXwSAAKF4dFhnDRAS3VZF4nyHv0wvzsB%2B7v28%3D&time=2026-03-05T23%3A41%3A09.529231" -50511-03-03 00:00:00.241 info [GORM] SQL Executed duration=1.2ms caller=gin@v1.10.0/context.go:185 trace=927636a53cc46db281d1542ec5c590e8 span=f574ff8ae04e6a53 sql=SELECT user_family_member.role, user_family.status AS family_status, user_family.owner_user_id FROM `user_family_member` JOIN user_family ON user_family.id = user_family_member.family_id AND user_family.deleted_at IS NULL WHERE user_family_member.user_id = 652 AND user_family_member.deleted_at IS NULL AND user_family_member.status = 1 ORDER BY user_family_member.role LIMIT 1 rows=0 -50511-03-03 00:00:00.241 info HTTP Request duration=2.460333ms caller=middleware/loggerMiddleware.go:113 trace=927636a53cc46db281d1542ec5c590e8 request=GET tapi.hifast.biz/v1/public/user/subscribe?includeExpired=alluser-agent=ios api_header= device_decrypt_status=success decrypted_query=includeExpired=all status=200 query=includeExpired=all span=f574ff8ae04e6a53 ip=205.198.65.239 encrypted_query=data=8YCdBIk9U%2B9QR4%2B3gPwXDxA%2FoWunZnkdrBAEG98TlsU%3D&time=2026-03-05T23%3A41%3A09.529750 -[GIN] 2026/03/05 - 23:41:11 | 200 | 2.578833ms | 205.198.65.239 | GET "/v1/public/user/subscribe?data=8YCdBIk9U%2B9QR4%2B3gPwXDxA%2FoWunZnkdrBAEG98TlsU%3D&time=2026-03-05T23%3A41%3A09.529750" -50511-03-03 00:00:00.474 info [GORM] SQL Executed duration=0.8ms caller=subscribe/model.go:128 span=2fffb8533ab4d2b3 sql=SELECT count(*) FROM `subscribe` WHERE `sell` = true AND language = '' rows=1 trace=5879f374d59ce9004ee4b72c118f3043 -50511-03-03 00:00:00.476 info [GORM] SQL Executed duration=1.4ms caller=subscribe/model.go:128 sql=SELECT * FROM `subscribe` WHERE `sell` = true AND language = '' ORDER BY sort ASC LIMIT 9999 rows=1 trace=5879f374d59ce9004ee4b72c118f3043 span=2fffb8533ab4d2b3 -50511-03-03 00:00:00.476 info HTTP Request duration=3.692071ms caller=middleware/loggerMiddleware.go:113 query= ip=205.198.65.239 user-agent=ios span=2fffb8533ab4d2b3 decrypted_query= status=200 request=GET tapi.hifast.biz/v1/public/subscribe/list api_header= device_decrypt_status=success trace=5879f374d59ce9004ee4b72c118f3043 encrypted_query=data=%2BOwm%2FDCnguiXUyFEfRn3Vg%3D%3D&time=2026-03-05T23%3A41%3A09.769058 -[GIN] 2026/03/05 - 23:41:11 | 200 | 3.818687ms | 205.198.65.239 | GET "/v1/public/subscribe/list?data=%2BOwm%2FDCnguiXUyFEfRn3Vg%3D%3D&time=2026-03-05T23%3A41%3A09.769058" -50511-03-03 00:00:00.713 info [GORM] SQL Executed duration=1.2ms caller=payment/getAvailablePaymentMethodsLogic.go:30 rows=4 trace=0a075f9892b3e8f93eb99d46e5bb8897 span=bcb5736ac887c718 sql=SELECT * FROM `payment` WHERE enable = true -50511-03-03 00:00:00.713 info HTTP Request duration=2.498777ms caller=middleware/loggerMiddleware.go:113 ip=205.198.65.239 trace=0a075f9892b3e8f93eb99d46e5bb8897 request=GET tapi.hifast.biz/v1/public/payment/methods user-agent=ios decrypted_query= api_header= encrypted_query=data=02bc%2Bnuqc0fs4pASSLIi1A%3D%3D&time=2026-03-05T23%3A41%3A10.009112 span=bcb5736ac887c718 status=200 query= device_decrypt_status=success -[GIN] 2026/03/05 - 23:41:11 | 200 | 2.622998ms | 205.198.65.239 | GET "/v1/public/payment/methods?data=02bc%2Bnuqc0fs4pASSLIi1A%3D%3D&time=2026-03-05T23%3A41%3A10.009112" -50514-03-03 00:00:00.459 info [GORM] SQL Executed duration=1.0ms caller=order/purchaseHandler.go:23 span=e46c40487ad89ffc sql=SELECT user_family_member.role, user_family.status AS family_status, user_family.owner_user_id FROM `user_family_member` JOIN user_family ON user_family.id = user_family_member.family_id AND user_family.deleted_at IS NULL WHERE user_family_member.user_id = 652 AND user_family_member.deleted_at IS NULL AND user_family_member.status = 1 ORDER BY user_family_member.role LIMIT 1 rows=0 trace=876a431ae08bf753467bfb3cb24cb39a -50514-03-03 00:00:00.460 info [GORM] SQL Executed duration=0.8ms caller=order/purchaseLogic.go:216 rows=1 span=e46c40487ad89ffc sql=SELECT count(*) FROM `order` WHERE user_id = 652 AND status IN (2,5) trace=876a431ae08bf753467bfb3cb24cb39a -50514-03-03 00:00:00.462 info [GORM] SQL Executed duration=0.9ms caller=order/purchaseHandler.go:23 sql=INSERT INTO `order` (`user_id`,`order_no`,`type`,`quantity`,`price`,`amount`,`gift_amount`,`discount`,`coupon_discount`,`commission`,`payment_id`,`method`,`fee_amount`,`status`,`subscribe_id`,`is_new`,`created_at`,`updated_at`) VALUES (652,'202603052341144606780608979',1,30,1200,424,0,776,0,0,6,'AppleIAP',0,1,4,false,'2026-03-05 23:41:14.461','2026-03-05 23:41:14.461') span=e46c40487ad89ffc rows=1 trace=876a431ae08bf753467bfb3cb24cb39a -50514-03-03 00:00:00.476 info [Purchase] Enqueue task success caller=order/purchaseLogic.go:338 TaskID=cd90883a-9a84-4c7d-acf7-594da1692d5a trace=876a431ae08bf753467bfb3cb24cb39a span=e46c40487ad89ffc -50514-03-03 00:00:00.476 info HTTP Request duration=19.639104ms caller=middleware/loggerMiddleware.go:113 request_body={"data":"5djYyVLlV70flbdNJQtW8EbdaOLssukP8Eyg9Y/bwt55t1reVZlLL81ajbd/yJcT5Le/LsnZ8EVxDwl7V6lZ9g==","time":"2026-03-05T23:41:12.657878"} decrypted_request_body={"coupon":"","payment":6,"quantity":30,"subscribe_id":4}response_body={"code":200,"data":{"data":"eOuDyy6neG1DVLsHc37V79ddAiFOoZFBYZo6i0lJzOnDyr34xAIAYf28gUDbomOB","time":"1899fc3ead89f83f"},"msg":"success"} span=e46c40487ad89ffc request=POST tapi.hifast.biz/v1/public/order/purchase api_header= trace=876a431ae08bf753467bfb3cb24cb39a user-agent=ios device_decrypt_status=success query= ip=205.198.65.239 status=200 -[GIN] 2026/03/05 - 23:41:14 | 200 | 19.790369ms | 205.198.65.239 | POST "/v1/public/order/purchase" -50514-03-03 00:00:00.791 info [GORM] SQL Executed duration=1.0ms caller=portal/purchaseCheckoutLogic.go:60 span=3ca694473726b435 sql=SELECT * FROM `order` WHERE `order_no` = '202603052341144606780608979' ORDER BY `order`.`id` LIMIT 1 rows=1 trace=4673f294db6e24f50c7e1d71af093245 -50514-03-03 00:00:00.792 info HTTP Request duration=2.596036ms caller=middleware/loggerMiddleware.go:113 status=200 device_decrypt_status=success query= user-agent=ios api_header= request_body={"data":"sesV/8CWVDo5LNQtXl82NrVZNNo1g63aKZw+qSr1kcsPHx3CE14qK1uweDghtCk0GpYFPPWKC8nX0PGjb/Fhc4ViyZtEZ09IkOJE0mjNImU=","time":"2026-03-05T23:41:13.016565"} response_body={"code":200,"data":{"data":"ir84kLWkS+oI0zWI6RIk+0Tgm4Aimgw7krTBc/p8KRRm2wthsQisr7IysDw8Ce+gQFQVmiRtNb8XWHTKOAunXg==","time":"1899fc3ec05c0481"},"msg":"success"} request=POST tapi.hifast.biz/v1/public/portal/order/checkout decrypted_request_body={"orderNo":"202603052341144606780608979","returnUrl":"https://tapi.hifast.biz"} span=3ca694473726b435 ip=205.198.65.239 trace=4673f294db6e24f50c7e1d71af093245 -[GIN] 2026/03/05 - 23:41:14 | 200 | 2.754011ms | 205.198.65.239 | POST "/v1/public/portal/order/checkout" -50521-03-03 00:00:00.138 info [CheckSubscription] Start check subscription: 2026-03-05 23:41:21 caller=subscription/checkSubscriptionLogic.go:29 -50521-03-03 00:00:00.140 info [GORM] SQL Executed duration=0.9ms caller=user/default.go:145 sql=SELECT * FROM `user_subscribe` WHERE upload + download >= traffic AND status IN (0, 1) AND traffic > 0 rows=0 -50521-03-03 00:00:00.140 info [Check Subscription Traffic] No subscribe need to update caller=subscription/checkSubscriptionLogic.go:67 -50521-03-03 00:00:00.143 info [GORM] SQL Executed duration=1.3ms caller=user/default.go:145 sql=SELECT * FROM `user_subscribe` WHERE `status` IN (0, 1) AND `expire_time` < '2026-03-05 23:41:21.141' AND `expire_time` != '1970-01-01 08:00:00' and `finished_at` IS NULL rows=0 -50521-03-03 00:00:00.143 info [Check Subscription Expire] No subscribe need to update caller=subscription/checkSubscriptionLogic.go:109 -50531-03-03 00:00:00.196 info HTTP Request duration=702.702µs caller=middleware/loggerMiddleware.go:113 status=200 query=protocol=shadowsocks&secret_key=ibufechr-i18d-ftef-bohv-kkr2g3hdmije&server_id=34 api_header= request=GET tapi.hifast.biz/v1/server/config?protocol=shadowsocks&secret_key=ibufechr-i18d-ftef-bohv-kkr2g3hdmije&server_id=34 ip=104.129.59.167 user-agent=go-resty/2.13.1 (https://github.com/go-resty/resty) trace=78ecd7fc47846023aff17efdd2a59bf2 span=2cf1a59b8b37a0aa -[GIN] 2026/03/05 - 23:41:31 | 200 | 903.503µs | 104.129.59.167 | GET "/v1/server/config?protocol=shadowsocks&secret_key=ibufechr-i18d-ftef-bohv-kkr2g3hdmije&server_id=34" -50531-03-03 00:00:00.200 info HTTP Request duration=718.273µs caller=middleware/loggerMiddleware.go:113 request=GET tapi.hifast.biz/v1/server/user?protocol=shadowsocks&secret_key=ibufechr-i18d-ftef-bohv-kkr2g3hdmije&server_id=34 query=protocol=shadowsocks&secret_key=ibufechr-i18d-ftef-bohv-kkr2g3hdmije&server_id=34 api_header= trace=3f567b4d5458b7570d31bc5b7628fc2e span=917b5d6d9f29f146 status=200 ip=104.129.59.167 user-agent=go-resty/2.13.1 (https://github.com/go-resty/resty) -[GIN] 2026/03/05 - 23:41:31 | 200 | 832.605µs | 104.129.59.167 | GET "/v1/server/user?protocol=shadowsocks&secret_key=ibufechr-i18d-ftef-bohv-kkr2g3hdmije&server_id=34" -50532-03-03 00:00:00.140 info 开始绑定 Apple IAP 交易 caller=apple/attachTransactionLogic.go:46 orderNo=202603052341144606780608979 trace=15888c4ac46eafc7bfd28f9a7ad92b7e span=8a633abcc4b73173 -50532-03-03 00:00:00.142 info [GORM] SQL Executed duration=1.6ms caller=apple/attachTransactionHandler.go:20 span=8a633abcc4b73173 sql=SELECT user_family_member.role, user_family.status AS family_status, user_family.owner_user_id FROM `user_family_member` JOIN user_family ON user_family.id = user_family_member.family_id AND user_family.deleted_at IS NULL WHERE user_family_member.user_id = 652 AND user_family_member.deleted_at IS NULL AND user_family_member.status = 1 ORDER BY user_family_member.role LIMIT 1 rows=0 trace=15888c4ac46eafc7bfd28f9a7ad92b7e -50532-03-03 00:00:00.142 info JWS 验签成功 caller=apple/attachTransactionLogic.go:60 originalTransactionId=2000001131004221 span=8a633abcc4b73173 purchaseAt=2026-03-05 23:41:30 +0800 CST trace=15888c4ac46eafc7bfd28f9a7ad92b7e productId=com.hifastvpn.vip.day30 -50532-03-03 00:00:00.145 info 幂等等检查 caller=apple/attachTransactionLogic.go:64 originalTransactionId=2000001131004221 exists=false trace=15888c4ac46eafc7bfd28f9a7ad92b7e span=8a633abcc4b73173 -50532-03-03 00:00:00.144 error [GORM] duration=1.3ms caller=apple/attachTransactionLogic.go:63 sql=SELECT * FROM `apple_iap_transactions` WHERE original_transaction_id = '2000001131004221' ORDER BY `apple_iap_transactions`.`id` LIMIT 1 rows=0 error=record not found span=8a633abcc4b73173 trace=15888c4ac46eafc7bfd28f9a7ad92b7e -50532-03-03 00:00:00.145 info 商品映射解析 caller=apple/attachTransactionLogic.go:115 productId=com.hifastvpn.vip.day30 解析单位=Day 解析数量=30 span=8a633abcc4b73173 trace=15888c4ac46eafc7bfd28f9a7ad92b7e -50532-03-03 00:00:00.146 info [GORM] SQL Executed duration=0.8ms caller=subscribe/model.go:128 sql=SELECT count(*) FROM `subscribe` WHERE `show` = true AND `sell` = true AND language = '' rows=1 trace=15888c4ac46eafc7bfd28f9a7ad92b7e span=8a633abcc4b73173 -50532-03-03 00:00:00.147 info [GORM] SQL Executed duration=1.1ms caller=subscribe/model.go:128 rows=1trace=15888c4ac46eafc7bfd28f9a7ad92b7e span=8a633abcc4b73173 sql=SELECT * FROM `subscribe` WHERE `show` = true AND `sell` = true AND language = '' ORDER BY sort ASC LIMIT 9999 -50532-03-03 00:00:00.147 info 订阅映射命中 caller=apple/attachTransactionLogic.go:152 subscribeId=4 trace=15888c4ac46eafc7bfd28f9a7ad92b7e span=8a633abcc4b73173 name=日套餐 -50532-03-03 00:00:00.147 info 计算订阅到期时间 caller=apple/attachTransactionLogic.go:195 expireAt=2026-04-04 23:41:30 +0800 CST expireUnix=1775317290 trace=15888c4ac46eafc7bfd28f9a7ad92b7e span=8a633abcc4b73173 -50532-03-03 00:00:00.147 info 准备写入事务记录 caller=apple/attachTransactionLogic.go:271 originalTransactionId=2000001131004221 productId=com.hifastvpn.vip.day30 trace=15888c4ac46eafc7bfd28f9a7ad92b7e jwsHash=52b1e705c3934d50baa6eec73b65a6d52299d1daa2fec56bc55e716d696e491f span=8a633abcc4b73173 userId=652 transactionId=2000001131004221 -50532-03-03 00:00:00.150 info [GORM] SQL Executed duration=1.0ms caller=apple/attachTransactionHandler.go:20 sql=INSERT INTO `apple_iap_transactions` (`user_id`,`original_transaction_id`,`transaction_id`,`product_id`,`purchase_at`,`revocation_at`,`jws_hash`,`created_at`,`updated_at`) VALUES (652,'2000001131004221','2000001131004221','com.hifastvpn.vip.day30','2026-03-05 23:41:30',NULL,'52b1e705c3934d50baa6eec73b65a6d52299d1daa2fec56bc55e716d696e491f','2026-03-05 23:41:32.149','2026-03-05 23:41:32.149') rows=1 -50532-03-03 00:00:00.150 info 写入事务表成功 caller=apple/attachTransactionLogic.go:287 trace=15888c4ac46eafc7bfd28f9a7ad92b7e span=8a633abcc4b73173 id=90 -50532-03-03 00:00:00.151 info [GORM] SQL Executed duration=1.4ms caller=user/subscribe.go:17 sql=INSERT INTO `user_subscribe` (`user_id`,`order_id`,`subscribe_id`,`traffic`,`download`,`upload`,`token`,`uuid`,`status`,`note`,`created_at`,`updated_at`,`start_time`,`expire_time`) VALUES (652,0,4,0,0,0,'iap:2000001131004221','caa34991-5131-49fb-ae9c-bc3120fcd012',1,'','2026-03-05 23:41:32.15','2026-03-05 23:41:32.15','2026-03-05 23:41:32.15','2026-04-04 23:41:30') rows=1 -50532-03-03 00:00:00.151 info 写入用户订阅成功 caller=apple/attachTransactionLogic.go:320 expireUnix=1775317290 userId=652 trace=15888c4ac46eafc7bfd28f9a7ad92b7e span=8a633abcc4b73173 subscribeId=4 -50532-03-03 00:00:00.153 info [GORM] SQL Executed duration=1.0ms caller=apple/attachTransactionLogic.go:335 rows=1 sql=UPDATE `order` SET `status`=2,`updated_at`='2026-03-05 23:41:32.152' WHERE order_no = '202603052341144606780608979' -50532-03-03 00:00:00.153 info 更新订单状态成功 caller=apple/attachTransactionLogic.go:339 orderNo=202603052341144606780608979 status=2 trace=15888c4ac46eafc7bfd28f9a7ad92b7e span=8a633abcc4b73173 -50532-03-03 00:00:00.154 info 已加入订单激活队列 caller=apple/attachTransactionLogic.go:349 orderNo=202603052341144606780608979 trace=15888c4ac46eafc7bfd28f9a7ad92b7e span=8a633abcc4b73173 -50532-03-03 00:00:00.156 info 绑定完成 caller=apple/attachTransactionLogic.go:358 expiresAt=1775317290 trace=15888c4ac46eafc7bfd28f9a7ad92b7e span=8a633abcc4b73173 tier=日套餐 userId=652 -50532-03-03 00:00:00.157 info HTTP Request duration=17.769028ms caller=middleware/loggerMiddleware.go:113 ip=205.198.65.239 user-agent=ios api_header= device_decrypt_status=success request_body={"data":"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","time":"2026-03-05T23:41:29.931780"} query=decrypted_request_body={"order_no":"202603052341144606780608979","signed_transaction_jws":"eyJhbGciOiJFUzI1NiIsIng1YyI6WyJNSUlFTVRDQ0E3YWdBd0lCQWdJUVI4S0h6ZG41NTRaL1VvcmFkTng5dHpBS0JnZ3Foa2pPUFFRREF6QjFNVVF3UWdZRFZRUURERHRCY0hCc1pTQlhiM0pzWkhkcFpHVWdSR1YyWld4dmNHVnlJRkpsYkdGMGFXOXVjeUJEWlhKMGFXWnBZMkYwYVc5dUlFRjFkR2h2Y21sMGVURUxNQWtHQTFVRUN3d0NSell4RXpBUkJnTlZCQW9NQ2tGd2NHeGxJRWx1WXk0eEN6QUpCZ05WQkFZVEFsVlRNQjRYRFRJMU1Ea3hPVEU1TkRRMU1Wb1hEVEkzTVRBeE16RTNORGN5TTFvd2daSXhRREErQmdOVkJBTU1OMUJ5YjJRZ1JVTkRJRTFoWXlCQmNIQWdVM1J2Y21VZ1lXNWtJR2xVZFc1bGN5QlRkRzl5WlNCU1pXTmxhWEIwSUZOcFoyNXBibWN4TERBcUJnTlZCQXNNSTBGd2NHeGxJRmR2Y214a2QybGtaU0JFWlhabGJHOXdaWElnVW1Wc1lYUnBiMjV6TVJNd0VRWURWUVFLREFwQmNIQnNaU0JKYm1NdU1Rc3dDUVlEVlFRR0V3SlZVekJaTUJNR0J5cUdTTTQ5QWdFR0NDcUdTTTQ5QXdFSEEwSUFCTm5WdmhjdjdpVCs3RXg1dEJNQmdyUXNwSHpJc1hSaTBZeGZlazdsdjh3RW1qL2JIaVd0TndKcWMyQm9IenNRaUVqUDdLRklJS2c0WTh5MC9ueW51QW1qZ2dJSU1JSUNCREFNQmdOVkhSTUJBZjhFQWpBQU1COEdBMVVkSXdRWU1CYUFGRDh2bENOUjAxREptaWc5N2JCODVjK2xrR0taTUhBR0NDc0dBUVVGQndFQkJHUXdZakF0QmdnckJnRUZCUWN3QW9ZaGFIUjBjRG92TDJObGNuUnpMbUZ3Y0d4bExtTnZiUzkzZDJSeVp6WXVaR1Z5TURFR0NDc0dBUVVGQnpBQmhpVm9kSFJ3T2k4dmIyTnpjQzVoY0hCc1pTNWpiMjB2YjJOemNEQXpMWGQzWkhKbk5qQXlNSUlCSGdZRFZSMGdCSUlCRlRDQ0FSRXdnZ0VOQmdvcWhraUc5Mk5rQlFZQk1JSCtNSUhEQmdnckJnRUZCUWNDQWpDQnRneUJzMUpsYkdsaGJtTmxJRzl1SUhSb2FYTWdZMlZ5ZEdsbWFXTmhkR1VnWW5rZ1lXNTVJSEJoY25SNUlHRnpjM1Z0WlhNZ1lXTmpaWEIwWVc1alpTQnZaaUIwYUdVZ2RHaGxiaUJoY0hCc2FXTmhZbXhsSUhOMFlXNWtZWEprSUhSbGNtMXpJR0Z1WkNCamIyNWthWFJwYjI1eklHOW1JSFZ6WlN3Z1kyVnlkR2xtYVdOaGRHVWdjRzlzYVdONUlHRnVaQ0JqWlhKMGFXWnBZMkYwYVc5dUlIQnlZV04wYVdObElITjBZWFJsYldWdWRITXVNRFlHQ0NzR0FRVUZCd0lCRmlwb2RIUndPaTh2ZDNkM0xtRndjR3hsTG1OdmJTOWpaWEowYVdacFkyRjBaV0YxZEdodmNtbDBlUzh3SFFZRFZSME9CQllFRklGaW9HNHdNTVZBMWt1OXpKbUdOUEFWbjNlcU1BNEdBMVVkRHdFQi93UUVBd0lIZ0RBUUJnb3Foa2lHOTJOa0Jnc0JCQUlGQURBS0JnZ3Foa2pPUFFRREF3TnBBREJtQWpFQStxWG5SRUM3aFhJV1ZMc0x4em5qUnBJelBmN1ZIejlWL0NUbTgrTEpsclFlcG5tY1B2R0xOY1g2WFBubGNnTEFBakVBNUlqTlpLZ2c1cFE3OWtuRjRJYlRYZEt2OHZ1dElETVhEbWpQVlQzZEd2RnRzR1J3WE95d1Iya1pDZFNyZmVvdCIsIk1JSURGakNDQXB5Z0F3SUJBZ0lVSXNHaFJ3cDBjMm52VTRZU3ljYWZQVGp6Yk5jd0NnWUlLb1pJemowRUF3TXdaekViTUJrR0ExVUVBd3dTUVhCd2JHVWdVbTl2ZENCRFFTQXRJRWN6TVNZd0pBWURWUVFMREIxQmNIQnNaU0JEWlhKMGFXWnBZMkYwYVc5dUlFRjFkR2h2Y21sMGVURVRNQkVHQTFVRUNnd0tRWEJ3YkdVZ1NXNWpMakVMTUFrR0ExVUVCaE1DVlZNd0hoY05NakV3TXpFM01qQXpOekV3V2hjTk16WXdNekU1TURBd01EQXdXakIxTVVRd1FnWURWUVFERER0QmNIQnNaU0JYYjNKc1pIZHBaR1VnUkdWMlpXeHZjR1Z5SUZKbGJHRjBhVzl1Y3lCRFpYSjBhV1pwWTJGMGFXOXVJRUYxZEdodmNtbDBlVEVMTUFrR0ExVUVDd3dDUnpZeEV6QVJCZ05WQkFvTUNrRndjR3hsSUVsdVl5NHhDekFKQmdOVkJBWVRBbFZUTUhZd0VBWUhLb1pJemowQ0FRWUZLNEVFQUNJRFlnQUVic1FLQzk0UHJsV21aWG5YZ3R4emRWSkw4VDBTR1luZ0RSR3BuZ24zTjZQVDhKTUViN0ZEaTRiQm1QaENuWjMvc3E2UEYvY0djS1hXc0w1dk90ZVJoeUo0NXgzQVNQN2NPQithYW85MGZjcHhTdi9FWkZibmlBYk5nWkdoSWhwSW80SDZNSUgzTUJJR0ExVWRFd0VCL3dRSU1BWUJBZjhDQVFBd0h3WURWUjBqQkJnd0ZvQVV1N0Rlb1ZnemlKcWtpcG5ldnIzcnI5ckxKS3N3UmdZSUt3WUJCUVVIQVFFRU9qQTRNRFlHQ0NzR0FRVUZCekFCaGlwb2RIUndPaTh2YjJOemNDNWhjSEJzWlM1amIyMHZiMk56Y0RBekxXRndjR3hsY205dmRHTmhaek13TndZRFZSMGZCREF3TGpBc29DcWdLSVltYUhSMGNEb3ZMMk55YkM1aGNIQnNaUzVqYjIwdllYQndiR1Z5YjI5MFkyRm5NeTVqY213d0hRWURWUjBPQkJZRUZEOHZsQ05SMDFESm1pZzk3YkI4NWMrbGtHS1pNQTRHQTFVZER3RUIvd1FFQXdJQkJqQVFCZ29xaGtpRzkyTmtCZ0lCQkFJRkFEQUtCZ2dxaGtqT1BRUURBd05vQURCbEFqQkFYaFNxNUl5S29nTUNQdHc0OTBCYUI2NzdDYUVHSlh1ZlFCL0VxWkdkNkNTamlDdE9udU1UYlhWWG14eGN4ZmtDTVFEVFNQeGFyWlh2TnJreFUzVGtVTUkzM3l6dkZWVlJUNHd4V0pDOTk0T3NkY1o0K1JHTnNZRHlSNWdtZHIwbkRHZz0iLCJNSUlDUXpDQ0FjbWdBd0lCQWdJSUxjWDhpTkxGUzVVd0NnWUlLb1pJemowRUF3TXdaekViTUJrR0ExVUVBd3dTUVhCd2JHVWdVbTl2ZENCRFFTQXRJRWN6TVNZd0pBWURWUVFMREIxQmNIQnNaU0JEWlhKMGFXWnBZMkYwYVc5dUlFRjFkR2h2Y21sMGVURVRNQkVHQTFVRUNnd0tRWEJ3YkdVZ1NXNWpMakVMTUFrR0ExVUVCaE1DVlZNd0hoY05NVFF3TkRNd01UZ3hPVEEyV2hjTk16a3dORE13TVRneE9UQTJXakJuTVJzd0dRWURWUVFEREJKQmNIQnNaU0JTYjI5MElFTkJJQzBnUnpNeEpqQWtCZ05WQkFzTUhVRndjR3hsSUVObGNuUnBabWxqWVhScGIyNGdRWFYwYUc5eWFYUjVNUk13RVFZRFZRUUtEQXBCY0hCc1pTQkpibU11TVFzd0NRWURWUVFHRXdKVlV6QjJNQkFHQnlxR1NNNDlBZ0VHQlN1QkJBQWlBMklBQkpqcEx6MUFjcVR0a3lKeWdSTWMzUkNWOGNXalRuSGNGQmJaRHVXbUJTcDNaSHRmVGpqVHV4eEV0WC8xSDdZeVlsM0o2WVJiVHpCUEVWb0EvVmhZREtYMUR5eE5CMGNUZGRxWGw1ZHZNVnp0SzUxN0lEdll1VlRaWHBta09sRUtNYU5DTUVBd0hRWURWUjBPQkJZRUZMdXczcUZZTTRpYXBJcVozcjY5NjYvYXl5U3JNQThHQTFVZEV3RUIvd1FGTUFNQkFmOHdEZ1lEVlIwUEFRSC9CQVFEQWdFR01Bb0dDQ3FHU000OUJBTURBMmdBTUdVQ01RQ0Q2Y0hFRmw0YVhUUVkyZTN2OUd3T0FFWkx1Tit5UmhIRkQvM21lb3locG12T3dnUFVuUFdUeG5TNGF0K3FJeFVDTUcxbWloREsxQTNVVDgyTlF6NjBpbU9sTTI3amJkb1h0MlFmeUZNbStZaGlkRGtMRjF2TFVhZ002QmdENTZLeUtBPT0iXX0.eyJ0cmFuc2FjdGlvbklkIjoiMjAwMDAwMTEzMTAwNDIyMSIsIm9yaWdpbmFsVHJhbnNhY3Rpb25JZCI6IjIwMDAwMDExMzEwMDQyMjEiLCJidW5kbGVJZCI6ImNvbS50YXcuaGlmYXN0dnBuIiwicHJvZHVjdElkIjoiY29tLmhpZmFzdHZwbi52aXAuZGF5MzAiLCJwdXJjaGFzZURhdGUiOjE3NzI3MjUyOTAwMDAsIm9yaWdpbmFsUHVyY2hhc2VEYXRlIjoxNzcyNzI1MjkwMDAwLCJxdWFudGl0eSI6MSwidHlwZSI6IkNvbnN1bWFibGUiLCJkZXZpY2VWZXJpZmljYXRpb24iOiJrNzZUSGE2cTYrU1VTcUFHSGxwblRLUHkwNTlXSnAwMEdDVUkzOW8yaDdUOHFMNmFRd2JDQUp0L2FWYWVQcVZmIiwiZGV2aWNlVmVyaWZpY2F0aW9uTm9uY2UiOiIzMWNkNTBkOS1hZjg2LTRjYTctYTc5Mi04NjAwMzY4YWEwYmMiLCJpbkFwcE93bmVyc2hpcFR5cGUiOiJQVVJDSEFTRUQiLCJzaWduZWREYXRlIjoxNzcyNzI1Mjg5NzMyLCJlbnZpcm9ubWVudCI6IlNhbmRib3giLCJ0cmFuc2FjdGlvblJlYXNvbiI6IlBVUkNIQVNFIiwic3RvcmVmcm9udCI6IlVTQSIsInN0b3JlZnJvbnRJZCI6IjE0MzQ0MSIsInByaWNlIjo2OTkwLCJjdXJyZW5jeSI6IlVTRCIsImFwcFRyYW5zYWN0aW9uSWQiOiI3MDUxMzA3NjAyOTE3MTE1MDIifQ.BGDWBSx8SzI55hRl52Q1nbcCq287xKnMFE21u0mCCkeJPSVgZf7jE_y38bgTwNTEN7YwNrDgrTpTSSylzN_BOw"} response_body={"code":200,"data":{"data":"VPeUl9nu45FkA08rnggKRxF8rfUASFpAPNuRNmAl52sf+dyaT6PphrWhDtBWg8iS","time":"1899fc42cb5eebbc"},"msg":"success"} trace=15888c4ac46eafc7bfd28f9a7ad92b7e span=8a633abcc4b73173 status=200 request=POST tapi.hifast.biz/v1/public/iap/apple/transactions/attach -[GIN] 2026/03/05 - 23:41:32 | 200 | 18.384581ms | 205.198.65.239 | POST "/v1/public/iap/apple/transactions/attach" -50533-03-03 00:00:00.014 info [GORM] SQL Executed duration=1.2ms caller=gin@v1.10.0/context.go:185 rows=1 trace=f3eb8662e5354b6867b2a4388bdeaba6 span=ef864917cb2d4c55 sql=SELECT * FROM `servers` WHERE id = 34 ORDER BY `servers`.`id` LIMIT 1 -50533-03-03 00:00:00.015 info [GORM] SQL Executed duration=0.8ms caller=server/serverPushStatusHandler.go:24 trace=f3eb8662e5354b6867b2a4388bdeaba6 span=ef864917cb2d4c55 sql=SELECT * FROM `servers` WHERE id = 34 ORDER BY `servers`.`id` LIMIT 1 rows=1 -50533-03-03 00:00:00.017 info [GORM] SQL Executed duration=0.8ms caller=callbacks/update.go:35 sql=SELECT count(*) FROM `servers` WHERE sort = 1 AND id != 34 span=ef864917cb2d4c55 rows=1 trace=f3eb8662e5354b6867b2a4388bdeaba6 -50533-03-03 00:00:00.019 info [GORM] SQL Executed duration=3.9ms caller=gin@v1.10.0/context.go:185 rows=1 trace=f3eb8662e5354b6867b2a4388bdeaba6 sql=UPDATE `servers` SET `name`='Test',`country`='US',`city`='',`address`='test.airoport.win',`sort`=1,`protocols`='[{"type":"shadowsocks","port":3002,"enable":true,"cipher":"aes-256-gcm","obfs":"none","ratio":1,"cert_mode":"none","cert_dns_env":""}]',`last_reported_at`='2026-03-05 23:41:33.014',`longitude`='0.0',`latitude`='0.0',`longitude_center`='0.0',`latitude_center`='0.0',`updated_at`='2026-03-05 23:41:33.017' WHERE `id` = 34 AND `id` = 34 span=ef864917cb2d4c55 -50533-03-03 00:00:00.019 info HTTP Request duration=6.83079ms caller=middleware/loggerMiddleware.go:113 user-agent=go-resty/2.13.1 (https://github.com/go-resty/resty) request_body={"cpu":0.17584994194935685,"disk":29.145569273716195,"mem":9.640083513911076,"updated_at":1772725293009} request=POST tapi.hifast.biz/v1/server/status?protocol=shadowsocks&secret_key=ibufechr-i18d-ftef-bohv-kkr2g3hdmije&server_id=34 api_header= span=ef864917cb2d4c55 query=protocol=shadowsocks&secret_key=ibufechr-i18d-ftef-bohv-kkr2g3hdmije&server_id=34 ip=104.129.59.167 response_body={"code":200,"msg":"success"} status=200 trace=f3eb8662e5354b6867b2a4388bdeaba6 -[GIN] 2026/03/05 - 23:41:33 | 200 | 7.014907ms | 104.129.59.167 | POST "/v1/server/status?protocol=shadowsocks&secret_key=ibufechr-i18d-ftef-bohv-kkr2g3hdmije&server_id=34" -50533-03-03 00:00:00.152 info [ActivateOrderLogic] 开始处理订单激活任务{payload {"order_no":"202603052341144606780608979"}} caller=order/activateOrderLogic.go:72 -50533-03-03 00:00:00.152 info [ActivateOrderLogic] 正在验证订单{order_no 202603052341144606780608979} caller=order/activateOrderLogic.go:82 -50533-03-03 00:00:00.154 info [GORM] SQL Executed duration=1.2ms caller=order/activateOrderLogic.go:143sql=SELECT * FROM `order` WHERE `order_no` = '202603052341144606780608979' ORDER BY `order`.`id` LIMIT 1 rows=1 -50533-03-03 00:00:00.154 info [ActivateOrderLogic] 订单验证通过,开始处理{order_no 202603052341144606780608979} {order_type 1} {user_id 652} caller=order/activateOrderLogic.go:105 -50533-03-03 00:00:00.159 info [GORM] SQL Executed duration=3.7ms caller=user/subscribe.go:17 sql=INSERT INTO `user_subscribe` (`user_id`,`order_id`,`subscribe_id`,`traffic`,`download`,`upload`,`token`,`uuid`,`status`,`note`,`created_at`,`updated_at`,`start_time`,`expire_time`) VALUES (652,911,4,0,0,0,'bf6120a8edf94e12709e2c37e76e7910','ca8e5522-99a7-437b-bc03-456851288a2c',1,'','2026-03-05 23:41:33.156','2026-03-05 23:41:33.156','2026-03-05 23:41:33.155','2026-04-04 23:41:33.155') rows=1 -50533-03-03 00:00:00.161 info [GORM] SQL Executed duration=0.9ms caller=subscribe/model.go:65 sql=SELECT * FROM `nodes` WHERE id IN (39) rows=1 -50533-03-03 00:00:00.162 info [GORM] SQL Executed duration=1.0ms caller=subscribe/model.go:65 sql=SELECT * FROM `nodes` WHERE 1=0 OR FIND_IN_SET('天', tags) OR FIND_IN_SET('美国', tags) OR FIND_IN_SET('日本', tags) OR FIND_IN_SET('香港', tags) OR FIND_IN_SET('新加坡', tags) OR FIND_IN_SET('韩国', tags) OR FIND_IN_SET('德国', tags) OR FIND_IN_SET('台湾', tags) OR FIND_IN_SET('英国', tags) OR FIND_IN_SET('测试', tags) rows=1 -50533-03-03 00:00:00.164 info [GORM] SQL Executed duration=0.9ms caller=gorm@v1.25.12/callbacks.go:130 sql=SELECT * FROM `user_auth_methods` WHERE `user_auth_methods`.`user_id` = 258 ORDER BY user_auth_methods.auth_type desc rows=1 -50533-03-03 00:00:00.164 info [GORM] SQL Executed duration=2.1ms caller=order/activateOrderLogic.go:1013sql=SELECT * FROM `user` WHERE is_admin = true AND `user`.`deleted_at` IS NULL rows=1 -50533-03-03 00:00:00.164 info Insert user subscribe success caller=order/activateOrderLogic.go:310 -50533-03-03 00:00:00.166 info [GORM] SQL Executed duration=0.8ms caller=order/default.go:110 sql=SELECT * FROM `order` WHERE `id` = 911 ORDER BY `order`.`id` LIMIT 1 rows=1 -50533-03-03 00:00:00.169 info [GORM] SQL Executed duration=3.4ms caller=order/activateOrderLogic.go:205sql=UPDATE `order` SET `parent_id`=0,`user_id`=652,`order_no`='202603052341144606780608979',`type`=1,`quantity`=30,`price`=1200,`amount`=424,`gift_amount`=0,`discount`=776,`coupon`='',`coupon_discount`=0,`commission`=0,`payment_id`=6,`method`='AppleIAP',`fee_amount`=0,`trade_no`='',`status`=5,`subscribe_id`=4,`subscribe_token`='',`is_new`=false,`updated_at`='2026-03-05 23:41:33.167' WHERE `id` = 911 rows=1 -50533-03-03 00:00:00.170 info [ActivateOrderLogic] 订单激活成功{order_no 202603052341144606780608979} {order_type 1} {user_id 652} caller=order/activateOrderLogic.go:120 -50534-03-03 00:00:00.857 info [GORM] SQL Executed duration=0.9ms caller=gorm@v1.25.12/callbacks.go:130 sql=SELECT * FROM `payment` WHERE `payment`.`id` = 6 trace=fe42b998e084f390187f2b108eb0bdc9 rows=1 span=519af5d2b595ec6c -50534-03-03 00:00:00.858 info [GORM] SQL Executed duration=1.0ms caller=gorm@v1.25.12/callbacks.go:130 sql=SELECT * FROM `subscribe` WHERE `subscribe`.`id` = 4 rows=1 span=519af5d2b595ec6c trace=fe42b998e084f390187f2b108eb0bdc9 -50534-03-03 00:00:00.858 info [GORM] SQL Executed duration=5.0ms caller=order/queryOrderDetailLogic.go:30 sql=SELECT `order`.`id`,`order`.`parent_id`,`order`.`user_id`,`order`.`order_no`,`order`.`type`,`order`.`quantity`,`order`.`price`,`order`.`amount`,`order`.`discount`,`order`.`coupon`,`order`.`coupon_discount`,`order`.`payment_id`,`order`.`method`,`order`.`fee_amount`,`order`.`trade_no`,`order`.`gift_amount`,`order`.`commission`,`order`.`status`,`order`.`subscribe_id`,`order`.`subscribe_token`,`order`.`is_new`,`order`.`created_at`,`order`.`updated_at` FROM `order` WHERE order_no = '202603052341144606780608979' ORDER BY `order`.`id` LIMIT 1 rows=1 trace=fe42b998e084f390187f2b108eb0bdc9 span=519af5d2b595ec6c -50534-03-03 00:00:00.858 info HTTP Request duration=7.060276ms caller=middleware/loggerMiddleware.go:113 span=519af5d2b595ec6c request=GET tapi.hifast.biz/v1/public/order/detail?order_no=202603052341144606780608979ip=205.198.65.239 user-agent=ios api_header= encrypted_query=data=VmkjTl7aPGAY%2B2JuO%2F5VY%2BrOdMAfdiVhB9m4o3evI9ctdHk8z%2F%2BR1xpzWWD%2BIKAL&time=2026-03-05T23%3A41%3A33.131968 trace=fe42b998e084f390187f2b108eb0bdc9 device_decrypt_status=success decrypted_query=order_no=202603052341144606780608979 status=200 query=order_no=202603052341144606780608979 -[GIN] 2026/03/05 - 23:41:34 | 200 | 7.189747ms | 205.198.65.239 | GET "/v1/public/order/detail?data=VmkjTl7aPGAY%2B2JuO%2F5VY%2BrOdMAfdiVhB9m4o3evI9ctdHk8z%2F%2BR1xpzWWD%2BIKAL&time=2026-03-05T23%3A41%3A33.131968" -50535-03-03 00:00:00.101 info [GORM] SQL Executed duration=1.1ms caller=gin@v1.10.0/context.go:185 sql=SELECT user_family_member.role, user_family.status AS family_status, user_family.owner_user_id FROM `user_family_member` JOIN user_family ON user_family.id = user_family_member.family_id AND user_family.deleted_at IS NULL WHERE user_family_member.user_id = 652 AND user_family_member.deleted_at IS NULL AND user_family_member.status = 1 ORDER BY user_family_member.role LIMIT 1 trace=5523c141c7d0bcbc32d3d059f765a7a3 span=413185d07918d5f5 rows=0 -50535-03-03 00:00:00.103 info [GORM] SQL Executed duration=0.8ms caller=gorm@v1.25.12/callbacks.go:130 span=413185d07918d5f5 rows=1 trace=5523c141c7d0bcbc32d3d059f765a7a3 sql=SELECT * FROM `subscribe` WHERE `subscribe`.`id` = 4 -50535-03-03 00:00:00.103 info [GORM] SQL Executed duration=1.8ms caller=user/queryUserSubscribeLogic.go:46 sql=SELECT `user_subscribe`.`id`,`user_subscribe`.`user_id`,`user_subscribe`.`order_id`,`user_subscribe`.`subscribe_id`,`user_subscribe`.`start_time`,`user_subscribe`.`expire_time`,`user_subscribe`.`finished_at`,`user_subscribe`.`traffic`,`user_subscribe`.`download`,`user_subscribe`.`upload`,`user_subscribe`.`token`,`user_subscribe`.`uuid`,`user_subscribe`.`status`,`user_subscribe`.`note`,`user_subscribe`.`created_at`,`user_subscribe`.`updated_at` FROM `user_subscribe` WHERE `user_id` = 652 AND `status` IN (0,1,2,3) AND (`expire_time` > '2026-03-05 23:41:35.101' OR `finished_at` >= '2026-02-26 23:41:35.101' OR `expire_time` = '1970-01-01 08:00:00') rows=2 trace=5523c141c7d0bcbc32d3d059f765a7a3span=413185d07918d5f5 -50535-03-03 00:00:00.105 info [GORM] SQL Executed duration=0.7ms caller=user/queryUserSubscribeLogic.go:74 rows=1 span=413185d07918d5f5 sql=SELECT * FROM `order` WHERE `id` = 911 ORDER BY `order`.`id` LIMIT 1 trace=5523c141c7d0bcbc32d3d059f765a7a3 -50535-03-03 00:00:00.105 info HTTP Request duration=6.292848ms caller=middleware/loggerMiddleware.go:113 request=GET tapi.hifast.biz/v1/public/user/subscribe user-agent=ios device_decrypt_status=success encrypted_query=data=KpUAwSS3gWo%2B3r1j7AuVNw%3D%3D&time=2026-03-05T23%3A41%3A33.386025 ip=205.198.65.239 decrypted_query= status=200 api_header= span=413185d07918d5f5 query= trace=5523c141c7d0bcbc32d3d059f765a7a3 -[GIN] 2026/03/05 - 23:41:35 | 200 | 6.414753ms | 205.198.65.239 | GET "/v1/public/user/subscribe?data=KpUAwSS3gWo%2B3r1j7AuVNw%3D%3D&time=2026-03-05T23%3A41%3A33.386025" -50535-03-03 00:00:00.350 info [GORM] SQL Executed duration=1.2ms caller=gin@v1.10.0/context.go:185 sql=SELECT user_family_member.role, user_family.status AS family_status, user_family.owner_user_id FROM `user_family_member` JOIN user_family ON user_family.id = user_family_member.family_id AND user_family.deleted_at IS NULL WHERE user_family_member.user_id = 652 AND user_family_member.deleted_at IS NULL AND user_family_member.status = 1 ORDER BY user_family_member.role LIMIT 1 trace=064aa556216cd29ece7bc194af94da1e span=48d9dabf2da03601 rows=0 -50535-03-03 00:00:00.351 info HTTP Request duration=3.180238ms caller=middleware/loggerMiddleware.go:113 request=GET tapi.hifast.biz/v1/public/user/subscribe?contains_nodes=false api_header= query=contains_nodes=false ip=205.198.65.239 decrypted_query=contains_nodes=false device_decrypt_status=success encrypted_query=data=esfTH4RACw4vqVcL3YI6jOi4P4TtXZiPK3BHTQrVRSA%3D&time=2026-03-05T23%3A41%3A33.647791 span=48d9dabf2da03601 status=200 user-agent=ios trace=064aa556216cd29ece7bc194af94da1e -[GIN] 2026/03/05 - 23:41:35 | 200 | 3.305111ms | 205.198.65.239 | GET "/v1/public/user/subscribe?data=esfTH4RACw4vqVcL3YI6jOi4P4TtXZiPK3BHTQrVRSA%3D&time=2026-03-05T23%3A41%3A33.647791" -50536-03-03 00:00:00.356 info [GORM] SQL Executed duration=1.3ms caller=gin@v1.10.0/context.go:185 sql=SELECT user_family_member.role, user_family.status AS family_status, user_family.owner_user_id FROM `user_family_member` JOIN user_family ON user_family.id = user_family_member.family_id AND user_family.deleted_at IS NULL WHERE user_family_member.user_id = 652 AND user_family_member.deleted_at IS NULL AND user_family_member.status = 1 ORDER BY user_family_member.role LIMIT 1 rows=0 span=427f6123f1f9f69f trace=fe5f30cf2a160a2e2129cf801f7293e3 -50536-03-03 00:00:00.358 info HTTP Request duration=4.045557ms caller=middleware/loggerMiddleware.go:113 user-agent=ios trace=fe5f30cf2a160a2e2129cf801f7293e3 query= encrypted_query=data=JeUpjCeq3nZjnhnknR5RnQ%3D%3D&time=2026-03-05T23%3A41%3A34.631156 decrypted_query= status=200 ip=205.198.65.239 span=427f6123f1f9f69f request=GET tapi.hifast.biz/v1/public/user/subscribe api_header= device_decrypt_status=success -[GIN] 2026/03/05 - 23:41:36 | 200 | 4.209044ms | 205.198.65.239 | GET "/v1/public/user/subscribe?data=JeUpjCeq3nZjnhnknR5RnQ%3D%3D&time=2026-03-05T23%3A41%3A34.631156" -50536-03-03 00:00:00.628 info [GORM] SQL Executed duration=1.1ms caller=gin@v1.10.0/context.go:185 span=650e4b2353bc445c sql=SELECT user_family_member.role, user_family.status AS family_status, user_family.owner_user_id FROM `user_family_member` JOIN user_family ON user_family.id = user_family_member.family_id AND user_family.deleted_at IS NULL WHERE user_family_member.user_id = 652 AND user_family_member.deleted_at IS NULL AND user_family_member.status = 1 ORDER BY user_family_member.role LIMIT 1 rows=0 trace=337717fe288b0c39ae53a301e80c15d0 -50536-03-03 00:00:00.629 info HTTP Request duration=3.047582ms caller=middleware/loggerMiddleware.go:113 status=200 request=GET tapi.hifast.biz/v1/public/user/subscribe?contains_nodes=false query=contains_nodes=false ip=205.198.65.239 user-agent=ios encrypted_query=data=aC8klMrz5JUQA5ZYyHR7ZAJ6VMiJ9n1RwBpjLZk%2BJvg%3D&time=2026-03-05T23%3A41%3A34.890478 api_header= decrypted_query=contains_nodes=false span=650e4b2353bc445c device_decrypt_status=success trace=337717fe288b0c39ae53a301e80c15d0 -[GIN] 2026/03/05 - 23:41:36 | 200 | 3.183716ms | 205.198.65.239 | GET "/v1/public/user/subscribe?data=aC8klMrz5JUQA5ZYyHR7ZAJ6VMiJ9n1RwBpjLZk%2BJvg%3D&time=2026-03-05T23%3A41%3A34.890478" -50539-03-03 00:00:00.039 debug [AuthMiddleware] Redis Get{error redis: nil} {sessionId 019cbda3-276f-74dc-ab13-dbf9af23fd07} caller=middleware/authMiddleware.go:56 trace=5ce707b1e55e6d78197116b72a00ddba span=975e213ac30f7b68 -50539-03-03 00:00:00.039 info HTTP Request duration=591.297µs caller=middleware/loggerMiddleware.go:113 status=200 request=GET tapi.hifast.biz/v1/public/user/subscribe?data=QIjHq1K8GGd6GT46VZ%2F4AA%3D%3D&time=2026-03-05T07%3A41%3A37.895057 query=data=QIjHq1K8GGd6GT46VZ%2F4AA%3D%3D&time=2026-03-05T07%3A41%3A37.895057 span=975e213ac30f7b68 ip=205.198.79.187 user-agent=ios api_header= trace=5ce707b1e55e6d78197116b72a00ddba -[GIN] 2026/03/05 - 23:41:39 | 200 | 690.37µs | 205.198.79.187 | GET "/v1/public/user/subscribe?data=QIjHq1K8GGd6GT46VZ%2F4AA%3D%3D&time=2026-03-05T07%3A41%3A37.895057" -50544-03-03 00:00:00.081 info HTTP Request duration=4.429µs caller=middleware/loggerMiddleware.go:113 trace=c0027e2d3c08e539a7c7d345ace7c1f5 request=GET tapi.hifast.biz/ query= api_header= span=422ab9718a237452 status=404 ip=205.198.65.239 user-agent=Dart/3.9 (dart:io) -50544-03-03 00:00:00.081 debug 404 Not Found: Host:tapi.hifast.biz Path:/ IsPanDomain:false caller=middleware/loggerMiddleware.go:117 trace=c0027e2d3c08e539a7c7d345ace7c1f5 span=422ab9718a237452 -[GIN] 2026/03/05 - 23:41:44 | 404 | 198.175µs | 205.198.65.239 | GET "/" -50544-03-03 00:00:00.081 info HTTP Request duration=2.205µs caller=middleware/loggerMiddleware.go:113 user-agent=Dart/3.9 (dart:io) ip=205.198.65.239 api_header= trace=e6f0e3762243b54123843d848edfffa6span=1557fb93184c4954 status=404 request=GET tapi.hifast.biz/ query= -50544-03-03 00:00:00.082 debug 404 Not Found: Host:tapi.hifast.biz Path:/ IsPanDomain:false caller=middleware/loggerMiddleware.go:117 trace=e6f0e3762243b54123843d848edfffa6 span=1557fb93184c4954 -[GIN] 2026/03/05 - 23:41:44 | 404 | 269.994µs | 205.198.65.239 | GET "/" -50544-03-03 00:00:00.337 info HTTP Request duration=4.107µs caller=middleware/loggerMiddleware.go:113 status=404 request=GET 154.12.35.103/ query= trace=02cb77da57dd1fd5cb4acf9df19808db span=a9b719225bd6846f ip=3.131.220.121 user-agent=visionheight.com/scan Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) Chrome/126.0.0.0 Safari/537.36 api_header= -50544-03-03 00:00:00.337 debug 404 Not Found: Host:154.12.35.103 Path:/ IsPanDomain:false caller=middleware/loggerMiddleware.go:117 trace=02cb77da57dd1fd5cb4acf9df19808db span=a9b719225bd6846f -[GIN] 2026/03/05 - 23:41:44 | 404 | 162.315µs | 3.131.220.121 | GET "/" -50544-03-03 00:00:00.912 info [GORM] SQL Executed duration=2.9ms caller=auth/deviceLoginHandler.go:23 sql=INSERT INTO `system_logs` (`type`,`object_id`,`content`,`created_at`,`date`) VALUES (30,652,'{"method":"device","login_ip":"","user_agent":"HiVPN/1.0.0 (iOS; iPhone; 26.1) Flutter","success":true,"timestamp":1772725304909}','2026-03-05 23:41:44.91','2026-03-05') rows=1 trace=87595ad44c8a30fe9c11ffe7c93381de span=5b8ddf871f73c446 -50544-03-03 00:00:00.912 info HTTP Request duration=4.467526ms caller=middleware/loggerMiddleware.go:113 response_body={"code":200,"data":{"data":"Z4cTYBieo0MEiP3hHUTtxaISz++jbv8HL1eDFZjE0C4MaJ3vzx5Vwgh8lgmws5ZtZaH5YINdXJ5kDKCO+sjoeBm+Zqx7gyWs2Zd0EPPMabAwyezg6jsoHdfqjQJBCypNi88ovt3KKQFEEGrM9/qIS67R065kn8m/AHW6LIuo3wP0I5Xri2ALMhS3P6/aPml39AxNZJl6MYSgqrAiPjOkM2slKMUy45tzzd/s6ehGpOg0YATdVQGhd3juCji1C6ujIA+adTV6N+Cl9qAeG4yjnK4isv6Ffi+vZV8h0Ml3YkiV0Dzw6SKw3B+rdJOK/eP7+IFIXMlugYbFN1vDiOea6SGoO38+Ulddc+wIuKI1cPCNI3590jEIx1CxyR/4dgi3","time":"1899fc45c3a4b30c"},"msg":"success"} request_body={"data":"5DS+k305OAqpXloulznADWDAhpHl6l1HDw1fjabMxvckGSG0YoYmFM1IOU9CCRJMqqGZ/CW1bmuv/kLrBoYG9Q1qGm6WfMEBTcBt+du/XGy/Wz/h18qUSdjkddXsNlpRj0myltHpeS3kuSbSCxTojgBBuANM8/MNyYEoRfmYeVhets9KvUiHuf5tJ7Cpt4B8","time":"2026-03-05T23:41:42.618477"} trace=87595ad44c8a30fe9c11ffe7c93381de span=5b8ddf871f73c446 ip=205.198.65.239 api_header= status=200 request=POST tapi.hifast.biz/v1/auth/login/device user-agent=Dart/3.9 (dart:io) device_decrypt_status=success decrypted_request_body={"identifier":"b905ea08eaed3b5d5d710b3d1528cd58bbd2f4adc3230a313b72cf470d91e93b","user_agent":"HiVPN/1.0.0 (iOS; iPhone; 26.1) Flutter"} query= -[GIN] 2026/03/05 - 23:41:44 | 200 | 4.612877ms | 205.198.65.239 | POST "/v1/auth/login/device" -50545-03-03 00:00:00.783 error [GORM] duration=1.4ms caller=gin@v1.10.0/context.go:185 span=9881abe0d852a999 sql=SELECT user_family_member.family_id, user_family_member.role, user_family.status as family_status, user_family.owner_user_id, user_family.max_members FROM `user_family_member` JOIN user_family ON user_family.id = user_family_member.family_id AND user_family.deleted_at IS NULL WHERE user_family_member.user_id = 652 AND user_family_member.deleted_at IS NULL AND user_family_member.status = 1 ORDER BY `user_family_member`.`family_id` LIMIT 1 trace=10bb3d4293f0d3eb0fcec7da183a7941 rows=0 error=record not found -50545-03-03 00:00:00.784 debug Hit cache for invite short link caller=user/queryUserInfoLogic.go:256 invite_code=uuvGfHKB short_link=https://getsapp.net/rb7bAt trace=10bb3d4293f0d3eb0fcec7da183a7941 span=9881abe0d852a999 -50545-03-03 00:00:00.784 info HTTP Request duration=2.991853ms caller=middleware/loggerMiddleware.go:113 encrypted_query=data=7zL9T1lk5gADkSdCNXae1w%3D%3D&time=2026-03-05T23%3A41%3A43.438728 span=9881abe0d852a999 request=GET tapi.hifast.biz/v1/public/user/info api_header= user-agent=ios decrypted_query= status=200 query= device_decrypt_status=success trace=10bb3d4293f0d3eb0fcec7da183a7941 ip=205.198.65.239 -[GIN] 2026/03/05 - 23:41:45 | 200 | 3.098761ms | 205.198.65.239 | GET "/v1/public/user/info?data=7zL9T1lk5gADkSdCNXae1w%3D%3D&time=2026-03-05T23%3A41%3A43.438728" -50546-03-03 00:00:00.081 info [GORM] SQL Executed duration=1.8ms caller=gin@v1.10.0/context.go:185 sql=SELECT user_family_member.role, user_family.status AS family_status, user_family.owner_user_id FROM `user_family_member` JOIN user_family ON user_family.id = user_family_member.family_id AND user_family.deleted_at IS NULL WHERE user_family_member.user_id = 652 AND user_family_member.deleted_at IS NULL AND user_family_member.status = 1 ORDER BY user_family_member.role LIMIT 1 rows=0 trace=c72375bbf05505ac42baaaadac6244a9 span=ea7f0a880f5704f3 -50546-03-03 00:00:00.083 info HTTP Request duration=4.699958ms caller=middleware/loggerMiddleware.go:113 decrypted_query= trace=c72375bbf05505ac42baaaadac6244a9 status=200 ip=205.198.65.239 query=api_header= encrypted_query=data=QsQKPhoGNgh3ynSTGAO2%2BA%3D%3D&time=2026-03-05T23%3A41%3A43.704776 device_decrypt_status=success span=ea7f0a880f5704f3 request=GET tapi.hifast.biz/v1/public/user/subscribe user-agent=ios -[GIN] 2026/03/05 - 23:41:46 | 200 | 4.857674ms | 205.198.65.239 | GET "/v1/public/user/subscribe?data=QsQKPhoGNgh3ynSTGAO2%2BA%3D%3D&time=2026-03-05T23%3A41%3A43.704776" -50546-03-03 00:00:00.334 info [GORM] SQL Executed duration=1.2ms caller=gin@v1.10.0/context.go:185 span=07337008283e8c67 sql=SELECT user_family_member.role, user_family.status AS family_status, user_family.owner_user_id FROM `user_family_member` JOIN user_family ON user_family.id = user_family_member.family_id AND user_family.deleted_at IS NULL WHERE user_family_member.user_id = 652 AND user_family_member.deleted_at IS NULL AND user_family_member.status = 1 ORDER BY user_family_member.role LIMIT 1 rows=0 trace=c0e0c120a1797f6cbeb29ab106f2a6d4 -50546-03-03 00:00:00.335 info HTTP Request duration=3.269301ms caller=middleware/loggerMiddleware.go:113 ip=205.198.65.239 user-agent=ios api_header= decrypted_query=contains_nodes=false trace=c0e0c120a1797f6cbeb29ab106f2a6d4 request=GET tapi.hifast.biz/v1/public/user/subscribe?contains_nodes=false query=contains_nodes=false encrypted_query=data=w7EelcVCQ8QsRmeyljoMRFTfB39wNBm%2FRbw%2B8RnPOVU%3D&time=2026-03-05T23%3A41%3A44.609751 status=200 device_decrypt_status=success span=07337008283e8c67 -[GIN] 2026/03/05 - 23:41:46 | 200 | 3.431476ms | 205.198.65.239 | GET "/v1/public/user/subscribe?data=w7EelcVCQ8QsRmeyljoMRFTfB39wNBm%2FRbw%2B8RnPOVU%3D&time=2026-03-05T23%3A41%3A44.609751" -50546-03-03 00:00:00.639 info [GORM] SQL Executed duration=1.4ms caller=gin@v1.10.0/context.go:185 sql=SELECT user_family_member.role, user_family.status AS family_status, user_family.owner_user_id FROM `user_family_member` JOIN user_family ON user_family.id = user_family_member.family_id AND user_family.deleted_at IS NULL WHERE user_family_member.user_id = 652 AND user_family_member.deleted_at IS NULL AND user_family_member.status = 1 ORDER BY user_family_member.role LIMIT 1 rows=0 trace=3608d126427fc5caffd7d01d4c9fe604 span=20fdf4e0920cd9d4 -50546-03-03 00:00:00.641 info [GORM] SQL Executed duration=0.9ms caller=subscribe/queryUserSubscribeNodeListLogic.go:202 sql=SELECT * FROM `user_subscribe` WHERE token = 'iap:2000001131004221' ORDER BY `user_subscribe`.`id` LIMIT 1 rows=1 trace=3608d126427fc5caffd7d01d4c9fe604 span=20fdf4e0920cd9d4 -50546-03-03 00:00:00.642 info [GORM] SQL Executed duration=0.9ms caller=subscribe/queryUserSubscribeNodeListLogic.go:110 sql=SELECT * FROM `subscribe` WHERE `id` = 4 ORDER BY `subscribe`.`id` LIMIT 1 rows=1 span=20fdf4e0920cd9d4 trace=3608d126427fc5caffd7d01d4c9fe604 -50546-03-03 00:00:00.643 debug [Generate Subscribe]nodes: [39], NodeTags: [天 美国 日本 香港 新加坡 韩国 德国 台湾 英国 测试] caller=subscribe/queryUserSubscribeNodeListLogic.go:118 trace=3608d126427fc5caffd7d01d4c9fe604 span=20fdf4e0920cd9d4 -50546-03-03 00:00:00.644 info [GORM] SQL Executed duration=0.9ms caller=subscribe/queryUserSubscribeNodeListHandler.go:15 sql=SELECT count(*) FROM `nodes` WHERE id IN (39) AND enabled = true rows=1 trace=3608d126427fc5caffd7d01d4c9fe604 span=20fdf4e0920cd9d4 -50546-03-03 00:00:00.645 info [GORM] SQL Executed duration=0.8ms caller=subscribe/queryUserSubscribeNodeListHandler.go:15 rows=1 trace=3608d126427fc5caffd7d01d4c9fe604 sql=SELECT * FROM `nodes` WHERE id IN (39) AND enabled = true ORDER BY sort ASC LIMIT 1000 span=20fdf4e0920cd9d4 -50546-03-03 00:00:00.646 info [GORM] SQL Executed duration=1.0ms caller=subscribe/queryUserSubscribeNodeListHandler.go:15 sql=SELECT * FROM `servers` WHERE id IN (34) rows=1 trace=3608d126427fc5caffd7d01d4c9fe604span=20fdf4e0920cd9d4 -50546-03-03 00:00:00.646 debug [Query Subscribe]found servers: 1 caller=subscribe/queryUserSubscribeNodeListLogic.go:175 trace=3608d126427fc5caffd7d01d4c9fe604 span=20fdf4e0920cd9d4 -50546-03-03 00:00:00.646 debug [Generate Subscribe]found servers: 1 caller=subscribe/queryUserSubscribeNodeListLogic.go:181 -50546-03-03 00:00:00.647 info [GORM] SQL Executed duration=0.8ms caller=subscribe/queryUserSubscribeNodeListLogic.go:202 span=20fdf4e0920cd9d4 trace=3608d126427fc5caffd7d01d4c9fe604 sql=SELECT * FROM `user_subscribe` WHERE token = 'bf6120a8edf94e12709e2c37e76e7910' ORDER BY `user_subscribe`.`id` LIMIT 1 rows=1 -50546-03-03 00:00:00.648 debug [Generate Subscribe]nodes: [39], NodeTags: [天 美国 日本 香港 新加坡 韩国 德国 台湾 英国 测试] caller=subscribe/queryUserSubscribeNodeListLogic.go:118 trace=3608d126427fc5caffd7d01d4c9fe604 span=20fdf4e0920cd9d4 -50546-03-03 00:00:00.649 info [GORM] SQL Executed duration=0.8ms caller=subscribe/queryUserSubscribeNodeListHandler.go:15 span=20fdf4e0920cd9d4 sql=SELECT count(*) FROM `nodes` WHERE id IN (39) AND enabled = true rows=1 trace=3608d126427fc5caffd7d01d4c9fe604 -50546-03-03 00:00:00.649 info [GORM] SQL Executed duration=0.8ms caller=subscribe/queryUserSubscribeNodeListHandler.go:15 sql=SELECT * FROM `nodes` WHERE id IN (39) AND enabled = true ORDER BY sort ASC LIMIT 1000 rows=1 trace=3608d126427fc5caffd7d01d4c9fe604 span=20fdf4e0920cd9d4 -50546-03-03 00:00:00.650 info [GORM] SQL Executed duration=0.7ms caller=subscribe/queryUserSubscribeNodeListHandler.go:15 sql=SELECT * FROM `servers` WHERE id IN (34) trace=3608d126427fc5caffd7d01d4c9fe604 span=20fdf4e0920cd9d4 rows=1 -50546-03-03 00:00:00.650 debug [Query Subscribe]found servers: 1 caller=subscribe/queryUserSubscribeNodeListLogic.go:175 trace=3608d126427fc5caffd7d01d4c9fe604 span=20fdf4e0920cd9d4 -50546-03-03 00:00:00.650 debug [Generate Subscribe]found servers: 1 caller=subscribe/queryUserSubscribeNodeListLogic.go:181 -50546-03-03 00:00:00.650 info HTTP Request duration=13.742437ms caller=middleware/loggerMiddleware.go:113 trace=3608d126427fc5caffd7d01d4c9fe604 api_header= status=200 ip=205.198.65.239 user-agent=iosdevice_decrypt_status=success span=20fdf4e0920cd9d4 request=GET tapi.hifast.biz/v1/public/subscribe/node/list?id=533 encrypted_query=data=uV2nMunlmktHj4NfJFbI0w%3D%3D&time=2026-03-05T23%3A41%3A44.910992 query=id=533 decrypted_query=id=533 -[GIN] 2026/03/05 - 23:41:46 | 200 | 13.914702ms | 205.198.65.239 | GET "/v1/public/subscribe/node/list?data=uV2nMunlmktHj4NfJFbI0w%3D%3D&time=2026-03-05T23%3A41%3A44.910992" -50549-03-03 00:00:00.393 error [GORM] duration=1.7ms caller=user/getDeviceListHandler.go:15 sql=SELECT user_family_member.family_id FROM `user_family_member` JOIN user_family ON user_family.id = user_family_member.family_id AND user_family.deleted_at IS NULL AND user_family.status = 1 WHERE (user_family_member.user_id = 652 AND user_family_member.status = 1) AND `user_family_member`.`deleted_at` IS NULL ORDER BY `user_family_member`.`id` LIMIT 1 rows=0error=record not found trace=37f771e301a7fd863c90a5aad57a1343 span=d7c2a02e1602a746 -50549-03-03 00:00:00.394 info [GORM] SQL Executed duration=1.0ms caller=user/getDeviceListLogic.go:36 sql=SELECT count(*) FROM `user_device` WHERE `user_id` IN (652) rows=1 trace=37f771e301a7fd863c90a5aad57a1343 span=d7c2a02e1602a746 -50549-03-03 00:00:00.395 info [GORM] SQL Executed duration=1.1ms caller=user/getDeviceListLogic.go:36 sql=SELECT * FROM `user_device` WHERE `user_id` IN (652) rows=1 trace=37f771e301a7fd863c90a5aad57a1343 span=d7c2a02e1602a746 -50549-03-03 00:00:00.395 info HTTP Request duration=5.183927ms caller=middleware/loggerMiddleware.go:113 trace=37f771e301a7fd863c90a5aad57a1343 api_header= span=d7c2a02e1602a746 request=GET tapi.hifast.biz/v1/public/user/devices ip=205.198.65.239 device_decrypt_status=success status=200 query= encrypted_query=data=w%2BdJyI6NRFfORCL4VZLU%2BA%3D%3D&time=2026-03-05T23%3A41%3A47.663223 decrypted_query= user-agent=ios -[GIN] 2026/03/05 - 23:41:49 | 200 | 5.298368ms | 205.198.65.239 | GET "/v1/public/user/devices?data=w%2BdJyI6NRFfORCL4VZLU%2BA%3D%3D&time=2026-03-05T23%3A41%3A47.663223" -50549-03-03 00:00:00.397 info [GORM] SQL Executed duration=0.8ms caller=common/getGlobalConfigLogic.go:68 sql=SELECT * FROM `auth_method` trace=b16e21b54c0ac774d58796e9155e652d rows=8 span=4da817930909eeda -50549-03-03 00:00:00.398 info HTTP Request duration=2.589193ms caller=middleware/loggerMiddleware.go:113 status=200 ip=205.198.65.239 request=GET tapi.hifast.biz/v1/common/site/config?user_agent=ios query=user_agent=ios device_decrypt_status=success encrypted_query=data=P3IR6QFbSthcywdel1UJTHuhzuKmB%2Bn0sViYVT8gXng%3D&time=2026-03-05T23%3A41%3A47.662823 trace=b16e21b54c0ac774d58796e9155e652d user-agent=ios api_header= decrypted_query=user_agent=ios span=4da817930909eeda -[GIN] 2026/03/05 - 23:41:49 | 200 | 2.717342ms | 205.198.65.239 | GET "/v1/common/site/config?data=P3IR6QFbSthcywdel1UJTHuhzuKmB%2Bn0sViYVT8gXng%3D&time=2026-03-05T23%3A41%3A47.662823" -5054-03-03 00:00:00.327 info HTTP Request duration=1.702533ms caller=middleware/loggerMiddleware.go:113 query=user_id=652&page=1&size=10 user-agent=Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36 api_header= trace=a31a55672869189bbb62e978f46ac7f6 span=b3b98cc8833a38cc status=200 request=GET tapi.hifast.biz/v1/admin/user/subscribe?user_id=652&page=1&size=10 ip=205.198.79.187 -[GIN] 2026/03/05 - 23:42:04 | 200 | 1.864457ms | 205.198.79.187 | GET "/v1/admin/user/subscribe?user_id=652&page=1&size=10" -5054-03-03 00:00:00.727 info HTTP Request duration=1.776345ms caller=middleware/loggerMiddleware.go:113 status=200 query=user_id=652&page=1&size=10 ip=205.198.79.187 trace=67c60701cd4e7c0793faa17242f5fe0fspan=9c2271b30643c49d request=GET tapi.hifast.biz/v1/admin/user/subscribe?user_id=652&page=1&size=10 user-agent=Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36 api_header= -[GIN] 2026/03/05 - 23:42:04 | 200 | 1.9333ms | 205.198.79.187 | GET "/v1/admin/user/subscribe?user_id=652&page=1&size=10" +292.317µs | 111.55.73.248 | POST "/v1/public/iap/apple/transactions/attach" +60622-03-03 00:00:00.293 info HTTP Request duration=6.783µs +caller=middleware/loggerMiddleware.go:113 request=POST +tapi.hifast.biz/v1/public/iap/apple/transactions/attach ip=111.55.73.248 +trace=9519d9fbf61839765c98546fe63e1359 status=404 query= +request_body={"data":"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","t +ime":"2026-03-06T16:05:19.828995"} span=7ed5023bad15ce12 user-agent=ios api_header= + response_body= +60622-03-03 00:00:00.293 debug 404 Not Found: Host:tapi.hifast.biz +Path:/v1/public/iap/apple/transactions/attach IsPanDomain:false +caller=middleware/loggerMiddleware.go:117 trace=9519d9fbf61839765c98546fe63e1359 +span=7ed5023bad15ce12 +[GIN] 2026/03/06 - 16:05:22 | 404 | 411.228µs | 111.55.73.248 | POST +"/v1/public/iap/apple/transactions/attach" +60623-03-03 00:00:00.217 info HTTP Request duration=5.321µs +caller=middleware/loggerMiddleware.go:113 trace=42f2998ec5a51a428853673d58afcfb3 +ip=111.55.73.248 request_body={"data":"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 +JbhsWj6FrYPVvufuTm0=","time":"2026-03-06T16:05:20.753625"} status=404 user-agent=ios + query= api_header= span=d2ae1834a66b8dd0 request=POST +tapi.hifast.biz/v1/public/iap/apple/transactions/attach response_body= +60623-03-03 00:00:00.217 debug 404 Not Found: Host:tapi.hifast.biz +Path:/v1/public/iap/apple/transactions/attach IsPanDomain:false +caller=middleware/loggerMiddleware.go:117 trace=42f2998ec5a51a428853673d58afcfb3 +span=d2ae1834a66b8dd0 +[GIN] 2026/03/06 - 16:05:23 | 404 | 311.424µs | 111.55.73.248 | POST +"/v1/public/iap/apple/transactions/attach" +60623-03-03 00:00:00.910 info HTTP Request duration=5.581µs +caller=middleware/loggerMiddleware.go:113 status=404 response_body= +span=eddd32459d010760 query= user-agent=ios api_header= request=POST +tapi.hifast.biz/v1/public/iap/apple/transactions/attach ip=111.55.73.248 +trace=2cc2aa4bc7b7eb9579b3073e5768d2e2 request_body={"data":"AuktjxLy3lMmvUVEdBAwOcvVuKS2Pr0T +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 +wli7VjyoNib9/ikTu9Q2yTFeMoDDnUsxygk=","time":"2026-03-06T16:05:21.443292"} +60623-03-03 00:00:00.910 debug 404 Not Found: Host:tapi.hifast.biz +Path:/v1/public/iap/apple/transactions/attach IsPanDomain:false +caller=middleware/loggerMiddleware.go:117 trace=2cc2aa4bc7b7eb9579b3073e5768d2e2 +span=eddd32459d010760 +[GIN] 2026/03/06 - 16:05:23 | 404 | 314.931µs | 111.55.73.248 | POST +"/v1/public/iap/apple/transactions/attach" +60626-03-03 00:00:00.259 info HTTP Request duration=5.971µs +caller=middleware/loggerMiddleware.go:113 api_header= span=8afe91bde25769fc +ip=167.253.97.183 user-agent=Dart/3.9 (dart:io) trace=3ddbd2848d5dd0e991a2b7723dfa4e9b + status=404 request=GET tapi.hifast.biz/ query= +60626-03-03 00:00:00.259 debug 404 Not Found: Host:tapi.hifast.biz Path:/ +IsPanDomain:false caller=middleware/loggerMiddleware.go:117 +trace=3ddbd2848d5dd0e991a2b7723dfa4e9b span=8afe91bde25769fc +[GIN] 2026/03/06 - 16:05:26 | 404 | 194.638µs | 167.253.97.183 | GET "/" +60626-03-03 00:00:00.347 info HTTP Request duration=4.87µs +caller=middleware/loggerMiddleware.go:113 request=GET tapi.hifast.biz/ +trace=dd99dd231c1b418d5aafd32fb77f8cf8 span=8563aa784d8ab774 status=404 query= +ip=167.253.97.183 user-agent=Dart/3.9 (dart:io) api_header= +60626-03-03 00:00:00.347 debug 404 Not Found: Host:tapi.hifast.biz Path:/ +IsPanDomain:false caller=middleware/loggerMiddleware.go:117 span=8563aa784d8ab774 +trace=dd99dd231c1b418d5aafd32fb77f8cf8 +[GIN] 2026/03/06 - 16:05:26 | 404 | 176.582µs | 167.253.97.183 | GET "/" +60627-03-03 00:00:00.063 info [GORM] SQL Executed duration=1.1ms +caller=auth/deviceLoginLogic.go:71 rows=1 trace=c25ef52d63a0d9b845c1097b71749654 +sql=SELECT * FROM `user_device` WHERE `identifier` = +'68c71ab9f82d521d202ff6b09cd7794038dd69da2f1dfacca015159222362adc' ORDER BY `user_device`.`id` + LIMIT 1 span=613a7d6fa7d752a5 +60627-03-03 00:00:00.067 info [GORM] SQL Executed duration=3.1ms +caller=auth/deviceLoginHandler.go:23 sql=INSERT INTO `system_logs` +(`type`,`object_id`,`content`,`created_at`,`date`) VALUES +(30,659,'{"method":"device","login_ip":"","user_agent":"HiVPN/1.0.0 (Android; vivo V2302A; 12) + Flutter","success":true,"timestamp":1772784327064}','2026-03-06 16:05:27.065','2026-03-06') + rows=1 trace=c25ef52d63a0d9b845c1097b71749654 span=613a7d6fa7d752a5 +60627-03-03 00:00:00.068 info HTTP Request duration=6.809722ms +caller=middleware/loggerMiddleware.go:113 query= ip=167.253.97.183 response_body= +{"code":200,"data":{"data":"Rs6/oaI5dykhKO0Ce/b6EkhsO21G5mLC140wdLt7Lwy87gusvKVkFHiX57uTTc1kI4 +bODvgfe3kbQoPdsMHCFseXmDQSIpkJ8ZY5FK5fwOA8v3V8mJNmjaoKdI6hnbt8+sYO7VPA1YNw1rGfo02bUMqVIz6P3h73 +8QD793hyA+6DbE0eO99ZI38C91mrySV1ohnqcHZxenOgvptckzCMB0WkKI06G6Xulf0wgW8HtZ23RaE1td/fb8v6rdhBlF +oaDSGkV4myLpbCfSLdq4wVrR5GHSVXf9zG+o7DIDMgbCuOkikqGNHoAOx+wRdCQIJVmjQ85BKWdjvaNG1TMW+J2XA7mqcx +V9aaAp+HaqS01anmUL2aRAtJDX99RdSgPkou","time":"189a31f3ee459cef"},"msg":"success"} +status=200 api_header= device_decrypt_status=success +request_body={"data":"aBJLGpQBNoQb/WQ5fTTKRaq9wflMflv3xn9UCehNUAhHGjQzd9eoZWROOZ+KznqsP3ocw5FT +OehvC9+5DeqLEDuDSiqZC1Ej99jHQLY1a6UzTIoC9yVcjLqJbi1WJ3QYpWRL32cNk1XTV4GK4LFAXTNBDMNQSy+WAvThGb +ZNDdNEARQZbTq3kCfnQxZHv2oM","time":"2026-03-06T16:05:26.733552"} +decrypted_request_body={"identifier":"68c71ab9f82d521d202ff6b09cd7794038dd69da2f1dfacca0151592 +22362adc","user_agent":"HiVPN/1.0.0 (Android; vivo V2302A; 12) Flutter"} user-agent=Dart/3.9 +(dart:io) span=613a7d6fa7d752a5 request=POST tapi.hifast.biz/v1/auth/login/device +trace=c25ef52d63a0d9b845c1097b71749654 +[GIN] 2026/03/06 - 16:05:27 | 200 | 7.009591ms | 167.253.97.183 | POST +"/v1/auth/login/device" +60627-03-03 00:00:00.740 info [GORM] SQL Executed duration=1.3ms +caller=gin@v1.10.0/context.go:185 sql=SELECT user_family_member.role, user_family.status + AS family_status, user_family.owner_user_id FROM `user_family_member` JOIN user_family ON +user_family.id = user_family_member.family_id AND user_family.deleted_at IS NULL WHERE +user_family_member.user_id = 652 AND user_family_member.deleted_at IS NULL AND +user_family_member.status = 1 ORDER BY user_family_member.role LIMIT 1 +trace=f5fd1ef6a989104d7700d2c76c3aa653 span=de3234063995e481 rows=0 +60627-03-03 00:00:00.743 info [GORM] SQL Executed duration=0.9ms +caller=gorm@v1.25.12/callbacks.go:130 rows=1 span=de3234063995e481 +trace=f5fd1ef6a989104d7700d2c76c3aa653 sql=SELECT * FROM `subscribe` WHERE `subscribe`.`id` = + 4 +60627-03-03 00:00:00.743 info [GORM] SQL Executed duration=2.3ms +caller=user/queryUserSubscribeLogic.go:46 trace=f5fd1ef6a989104d7700d2c76c3aa653 +span=de3234063995e481 sql=SELECT +`user_subscribe`.`id`,`user_subscribe`.`user_id`,`user_subscribe`.`order_id`,`user_subscribe`. +`subscribe_id`,`user_subscribe`.`start_time`,`user_subscribe`.`expire_time`,`user_subscribe`.` +finished_at`,`user_subscribe`.`traffic`,`user_subscribe`.`download`,`user_subscribe`.`upload`, +`user_subscribe`.`token`,`user_subscribe`.`uuid`,`user_subscribe`.`status`,`user_subscribe`.`n +ote`,`user_subscribe`.`created_at`,`user_subscribe`.`updated_at` FROM `user_subscribe` WHERE +`user_id` = 652 AND `status` IN (0,1,2,3) AND (`expire_time` > '2026-03-06 16:05:27.741' OR +`finished_at` >= '2026-02-27 16:05:27.741' OR `expire_time` = '1970-01-01 08:00:00') +rows=1 +60627-03-03 00:00:00.744 info HTTP Request duration=6.263864ms +caller=middleware/loggerMiddleware.go:113 status=200 query= +device_decrypt_status=success +encrypted_query=data=cHrCabwq37KAmtcWyWHUag%3D%3D&time=2026-03-06T16%3A05%3A25.260631 +user-agent=ios trace=f5fd1ef6a989104d7700d2c76c3aa653 request=GET +tapi.hifast.biz/v1/public/user/subscribe ip=111.55.73.248 api_header= +decrypted_query= span=de3234063995e481 +[GIN] 2026/03/06 - 16:05:27 | 200 | 6.439685ms | 111.55.73.248 | GET "/v1/public/use +r/subscribe?data=cHrCabwq37KAmtcWyWHUag%3D%3D&time=2026-03-06T16%3A05%3A25.260631" +60627-03-03 00:00:00.753 error [GORM] duration=1.2ms +caller=gin@v1.10.0/context.go:185 trace=0d677831eeaa39b9eed1f7172fa249b6 sql=SELECT +user_family_member.family_id, user_family_member.role, user_family.status as family_status, +user_family.owner_user_id, user_family.max_members FROM `user_family_member` JOIN user_family +ON user_family.id = user_family_member.family_id AND user_family.deleted_at IS NULL WHERE +user_family_member.user_id = 659 AND user_family_member.deleted_at IS NULL AND +user_family_member.status = 1 ORDER BY `user_family_member`.`family_id` LIMIT 1 rows=0 +error=record not found span=e37812ea9cae3422 +60627-03-03 00:00:00.754 debug Hit cache for invite short link +caller=user/queryUserInfo \ No newline at end of file