Abort requests when session transactions cannot start

Signed-off-by: Sean Du <do4suki@gmail.com>
This commit is contained in:
2026-07-13 08:03:15 +08:00
parent ff67c554f7
commit aebbc4b889
14 changed files with 42 additions and 1 deletions
+3
View File
@@ -10,6 +10,9 @@ import (
func active(ctx *gin.Context) { func active(ctx *gin.Context) {
ss := session.Attach(ctx) ss := session.Attach(ctx)
if ss.Done() {
return
}
defer ss.FinalizeOrRollback() defer ss.FinalizeOrRollback()
ss.Respond(ghomeschema.ActiveResp{ ss.Respond(ghomeschema.ActiveResp{
@@ -14,6 +14,9 @@ import (
func initialize(ctx *gin.Context) { func initialize(ctx *gin.Context) {
ss := session.Attach(ctx) ss := session.Attach(ctx)
if ss.Done() {
return
}
defer ss.FinalizeOrRollback() defer ss.FinalizeOrRollback()
initData := ghomeschema.InitializeData{ initData := ghomeschema.InitializeData{
+3
View File
@@ -34,6 +34,9 @@ const (
func login(ctx *gin.Context) { func login(ctx *gin.Context) {
ss := session.Attach(ctx) ss := session.Attach(ctx)
if ss.Done() {
return
}
defer ss.FinalizeOrRollback() defer ss.FinalizeOrRollback()
data, err := ctx.GetRawData() data, err := ctx.GetRawData()
@@ -16,6 +16,9 @@ import (
func loginAuto(ctx *gin.Context) { func loginAuto(ctx *gin.Context) {
ss := session.Attach(ctx) ss := session.Attach(ctx)
if ss.Done() {
return
}
defer ss.FinalizeOrRollback() defer ss.FinalizeOrRollback()
data, err := ctx.GetRawData() data, err := ctx.GetRawData()
@@ -12,6 +12,9 @@ import (
func reportRole(ctx *gin.Context) { func reportRole(ctx *gin.Context) {
ss := session.Attach(ctx) ss := session.Attach(ctx)
if ss.Done() {
return
}
defer ss.FinalizeOrRollback() defer ss.FinalizeOrRollback()
randKey, err := ss.Get3DESRandKey() randKey, err := ss.Get3DESRandKey()
+3
View File
@@ -11,6 +11,9 @@ import (
func getCode(ctx *gin.Context) { func getCode(ctx *gin.Context) {
ss := session.Attach(ctx) ss := session.Attach(ctx)
if ss.Done() {
return
}
defer ss.FinalizeOrRollback() defer ss.FinalizeOrRollback()
codeArray := `{"codeArray":[{"btntext":"好的","code":"-10264022","msg_from":2,"text":"","title":"短信验证码被阻止","type":1},{"btntext":"","code":"-10869623","msg_from":2,"text":"","title":"网络连接失败,无法一键登录","type":2},{"btntext":"","code":"10298300","msg_from":2,"text":"","title":"","type":3},{"btntext":"","code":"10298311","msg_from":2,"text":"","title":"","type":3},{"btntext":"","code":"10298312","msg_from":2,"text":"","title":"","type":3},{"btntext":"","code":"10298313","msg_from":2,"text":"","title":"","type":1},{"btntext":"","code":"10298321","msg_from":2,"text":"","title":"","type":3},{"btntext":"","code":"10298322","msg_from":2,"text":"","title":"","type":3}],"codeVersion":"1.0.5"}` codeArray := `{"codeArray":[{"btntext":"好的","code":"-10264022","msg_from":2,"text":"","title":"短信验证码被阻止","type":1},{"btntext":"","code":"-10869623","msg_from":2,"text":"","title":"网络连接失败,无法一键登录","type":2},{"btntext":"","code":"10298300","msg_from":2,"text":"","title":"","type":3},{"btntext":"","code":"10298311","msg_from":2,"text":"","title":"","type":3},{"btntext":"","code":"10298312","msg_from":2,"text":"","title":"","type":3},{"btntext":"","code":"10298313","msg_from":2,"text":"","title":"","type":1},{"btntext":"","code":"10298321","msg_from":2,"text":"","title":"","type":3},{"btntext":"","code":"10298322","msg_from":2,"text":"","title":"","type":3}],"codeVersion":"1.0.5"}`
@@ -10,6 +10,9 @@ import (
func getProductList(ctx *gin.Context) { func getProductList(ctx *gin.Context) {
ss := session.Attach(ctx) ss := session.Attach(ctx)
if ss.Done() {
return
}
defer ss.FinalizeOrRollback() defer ss.FinalizeOrRollback()
getProductListData := ghomeschema.GetProductListData{ getProductListData := ghomeschema.GetProductListData{
@@ -18,6 +18,9 @@ import (
func handshake(ctx *gin.Context) { func handshake(ctx *gin.Context) {
ss := session.Attach(ctx) ss := session.Attach(ctx)
if ss.Done() {
return
}
defer ss.FinalizeOrRollback() defer ss.FinalizeOrRollback()
data, err := ctx.GetRawData() data, err := ctx.GetRawData()
@@ -10,6 +10,9 @@ import (
func loginArea(ctx *gin.Context) { func loginArea(ctx *gin.Context) {
ss := session.Attach(ctx) ss := session.Attach(ctx)
if ss.Done() {
return
}
defer ss.FinalizeOrRollback() defer ss.FinalizeOrRollback()
ss.Respond(ghomeschema.LoginAreaResp{ ss.Respond(ghomeschema.LoginAreaResp{
@@ -14,6 +14,9 @@ import (
func publicKey(ctx *gin.Context) { func publicKey(ctx *gin.Context) {
ss := session.Attach(ctx) ss := session.Attach(ctx)
if ss.Done() {
return
}
defer ss.FinalizeOrRollback() defer ss.FinalizeOrRollback()
publicKeyCode := 0 publicKeyCode := 0
+3
View File
@@ -10,6 +10,9 @@ import (
func status(ctx *gin.Context) { func status(ctx *gin.Context) {
ss := session.Attach(ctx) ss := session.Attach(ctx)
if ss.Done() {
return
}
defer ss.FinalizeOrRollback() defer ss.FinalizeOrRollback()
ss.Respond(ghomeschema.GuestStatusResp{ ss.Respond(ghomeschema.GuestStatusResp{
+3
View File
@@ -10,6 +10,9 @@ import (
func agreement(ctx *gin.Context) { func agreement(ctx *gin.Context) {
ss := session.Attach(ctx) ss := session.Attach(ctx)
if ss.Done() {
return
}
defer ss.FinalizeOrRollback() defer ss.FinalizeOrRollback()
ss.Respond(ghomeschema.AgreementResp{ ss.Respond(ghomeschema.AgreementResp{
@@ -10,6 +10,9 @@ import (
func appReport(ctx *gin.Context) { func appReport(ctx *gin.Context) {
ss := session.Attach(ctx) ss := session.Attach(ctx)
if ss.Done() {
return
}
defer ss.FinalizeOrRollback() defer ss.FinalizeOrRollback()
ss.Respond(ghomeschema.AppReportResp{ ss.Respond(ghomeschema.AppReportResp{
+3 -1
View File
@@ -51,7 +51,9 @@ func New(ctx *gin.Context) *Session {
ss.MainEng = db.MainEng.NewSession() ss.MainEng = db.MainEng.NewSession()
ss.UserEng = db.UserEng.NewSession() ss.UserEng = db.UserEng.NewSession()
ss.UserEng.Begin() if err := ss.UserEng.Begin(); err != nil {
ss.Abort(err)
}
return ss return ss
} }