Fix session cleanup on error paths

Signed-off-by: Sean Du <do4suki@gmail.com>
This commit is contained in:
2026-07-13 08:03:01 +08:00
parent cb8f587e30
commit 683645be8e
82 changed files with 164 additions and 132 deletions
@@ -16,7 +16,7 @@ const pagingAccomplishedPageSize = 10
func pagingAccomplishedList(ctx *gin.Context) {
ss := session.Get(ctx)
defer ss.Finalize()
defer ss.FinalizeOrRollback()
req := achievementschema.PagingAccomplishedListReq{}
err := honokautils.ParseRequestData(ctx, &req)
+1 -1
View File
@@ -12,7 +12,7 @@ import (
func seriesAll(ctx *gin.Context) {
ss := session.Get(ctx)
defer ss.Finalize()
defer ss.FinalizeOrRollback()
var albumID []int
err := ss.MainEng.Table("album_series_m").Select("album_series_id").Find(&albumID)
+1 -1
View File
@@ -13,7 +13,7 @@ import (
func checkState(ctx *gin.Context) {
ss := session.Get(ctx)
defer ss.Finalize()
defer ss.FinalizeOrRollback()
ss.Respond(announceschema.CheckStateDataResp{
ResponseData: announceschema.CheckStateData{
+1 -1
View File
@@ -41,7 +41,7 @@ import (
func api(ctx *gin.Context) {
ss := session.Get(ctx)
defer ss.Finalize()
defer ss.FinalizeOrRollback()
apiReq := []apischema.ApiReq{}
err := honokautils.ParseRequestData(ctx, &apiReq)
+1 -1
View File
@@ -14,7 +14,7 @@ import (
func set(ctx *gin.Context) {
ss := session.Get(ctx)
defer ss.Finalize()
defer ss.FinalizeOrRollback()
reqData := gjson.Parse(ctx.MustGet("request_data").(string))
pref := usermodel.UserPref{
+1 -1
View File
@@ -14,7 +14,7 @@ import (
func set(ctx *gin.Context) {
ss := session.Get(ctx)
defer ss.Finalize()
defer ss.FinalizeOrRollback()
reqData := gjson.Parse(ctx.MustGet("request_data").(string))
pref := usermodel.UserPref{
+1 -1
View File
@@ -18,7 +18,7 @@ type bannerResp struct {
func list(ctx *gin.Context) {
ss := session.Get(ctx)
defer ss.Finalize()
defer ss.FinalizeOrRollback()
data, err := apibanner.BannerApi("bannerList")
if ss.CheckErr(err) {
+1 -1
View File
@@ -15,7 +15,7 @@ import (
func additional(ctx *gin.Context) {
ss := session.Get(ctx)
defer ss.Finalize()
defer ss.FinalizeOrRollback()
downloadReq := downloadschema.AdditionalReq{}
err := honokautils.ParseRequestData(ctx, &downloadReq)
+1 -1
View File
@@ -16,7 +16,7 @@ import (
func batch(ctx *gin.Context) {
ss := session.Get(ctx)
defer ss.Finalize()
defer ss.FinalizeOrRollback()
downloadReq := downloadschema.BatchReq{}
err := honokautils.ParseRequestData(ctx, &downloadReq)
+1 -1
View File
@@ -12,7 +12,7 @@ import (
func event(ctx *gin.Context) {
ss := session.Get(ctx)
defer ss.Finalize()
defer ss.FinalizeOrRollback()
ss.Respond(downloadschema.EventResp{
ResponseData: []any{},
+1 -1
View File
@@ -16,7 +16,7 @@ import (
func getUrl(ctx *gin.Context) {
ss := session.Get(ctx)
defer ss.Finalize()
defer ss.FinalizeOrRollback()
downloadReq := downloadschema.UrlReq{}
err := honokautils.ParseRequestData(ctx, &downloadReq)
+1 -1
View File
@@ -19,7 +19,7 @@ const overrideServerConfigFileName = "99_0_115.zip"
func update(ctx *gin.Context) {
ss := session.Get(ctx)
defer ss.Finalize()
defer ss.FinalizeOrRollback()
downloadReq := downloadschema.UpdateReq{}
err := honokautils.ParseRequestData(ctx, &downloadReq)
+1 -1
View File
@@ -13,7 +13,7 @@ import (
func list(ctx *gin.Context) {
ss := session.Get(ctx)
defer ss.Finalize()
defer ss.FinalizeOrRollback()
targets := []eventschema.TargetList{}
for i := range 6 {
+1 -1
View File
@@ -13,7 +13,7 @@ import (
func startup(ctx *gin.Context) {
ss := session.Get(ctx)
defer ss.Finalize()
defer ss.FinalizeOrRollback()
startReq := eventscenarioschema.StartUpReq{}
err := honokautils.ParseRequestData(ctx, &startReq)
+1 -1
View File
@@ -14,7 +14,7 @@ import (
func expel(ctx *gin.Context) {
ss := session.Get(ctx)
defer ss.Finalize()
defer ss.FinalizeOrRollback()
req := friendschema.UserIDReq{}
err := honokautils.ParseRequestData(ctx, &req)
+1 -1
View File
@@ -33,7 +33,7 @@ type friendListRow struct {
func list(ctx *gin.Context) {
ss := session.Get(ctx)
defer ss.Finalize()
defer ss.FinalizeOrRollback()
listReq := friendschema.ListReq{}
err := honokautils.ParseRequestData(ctx, &listReq)
+1 -1
View File
@@ -15,7 +15,7 @@ import (
func request(ctx *gin.Context) {
ss := session.Get(ctx)
defer ss.Finalize()
defer ss.FinalizeOrRollback()
req := friendschema.UserIDReq{}
err := honokautils.ParseRequestData(ctx, &req)
+1 -1
View File
@@ -14,7 +14,7 @@ import (
func requestCancel(ctx *gin.Context) {
ss := session.Get(ctx)
defer ss.Finalize()
defer ss.FinalizeOrRollback()
req := friendschema.UserIDReq{}
err := honokautils.ParseRequestData(ctx, &req)
+1 -1
View File
@@ -15,7 +15,7 @@ import (
func response(ctx *gin.Context) {
ss := session.Get(ctx)
defer ss.Finalize()
defer ss.FinalizeOrRollback()
req := friendschema.ResponseReq{}
err := honokautils.ParseRequestData(ctx, &req)
+1 -1
View File
@@ -30,7 +30,7 @@ type friendSearchRow struct {
func search(ctx *gin.Context) {
ss := session.Get(ctx)
defer ss.Finalize()
defer ss.FinalizeOrRollback()
req := friendschema.SearchReq{}
err := honokautils.ParseRequestData(ctx, &req)
+1 -1
View File
@@ -13,7 +13,7 @@ import (
func get(ctx *gin.Context) {
ss := session.Get(ctx)
defer ss.Finalize()
defer ss.FinalizeOrRollback()
ss.Respond(gdprschema.GetResp{
ResponseData: gdprschema.GetData{
+1 -1
View File
@@ -10,7 +10,7 @@ import (
func active(ctx *gin.Context) {
ss := session.Attach(ctx)
defer ss.Finalize()
defer ss.FinalizeOrRollback()
ss.Respond(ghomeschema.ActiveResp{
Code: 0,
+1 -1
View File
@@ -14,7 +14,7 @@ import (
func initialize(ctx *gin.Context) {
ss := session.Attach(ctx)
defer ss.Finalize()
defer ss.FinalizeOrRollback()
initData := ghomeschema.InitializeData{
BrandLogo: "http://gskd.sdo.com/ghome/ztc/logo/og/logo_xhdpi.png",
+1 -1
View File
@@ -34,7 +34,7 @@ const (
func login(ctx *gin.Context) {
ss := session.Attach(ctx)
defer ss.Finalize()
defer ss.FinalizeOrRollback()
data, err := ctx.GetRawData()
if ss.CheckErr(err) {
+1 -1
View File
@@ -16,7 +16,7 @@ import (
func loginAuto(ctx *gin.Context) {
ss := session.Attach(ctx)
defer ss.Finalize()
defer ss.FinalizeOrRollback()
data, err := ctx.GetRawData()
if ss.CheckErr(err) {
+1 -1
View File
@@ -12,7 +12,7 @@ import (
func reportRole(ctx *gin.Context) {
ss := session.Attach(ctx)
defer ss.Finalize()
defer ss.FinalizeOrRollback()
randKey, err := ss.Get3DESRandKey()
if ss.CheckErr(err) {
+1 -1
View File
@@ -11,7 +11,7 @@ import (
func getCode(ctx *gin.Context) {
ss := session.Attach(ctx)
defer ss.Finalize()
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"}`
getCodeData := map[string]any{}
@@ -10,7 +10,7 @@ import (
func getProductList(ctx *gin.Context) {
ss := session.Attach(ctx)
defer ss.Finalize()
defer ss.FinalizeOrRollback()
getProductListData := ghomeschema.GetProductListData{
Message: []string{},
+1 -1
View File
@@ -18,7 +18,7 @@ import (
func handshake(ctx *gin.Context) {
ss := session.Attach(ctx)
defer ss.Finalize()
defer ss.FinalizeOrRollback()
data, err := ctx.GetRawData()
if ss.CheckErr(err) {
+1 -1
View File
@@ -10,7 +10,7 @@ import (
func loginArea(ctx *gin.Context) {
ss := session.Attach(ctx)
defer ss.Finalize()
defer ss.FinalizeOrRollback()
ss.Respond(ghomeschema.LoginAreaResp{
Code: 0,
+1 -1
View File
@@ -14,7 +14,7 @@ import (
func publicKey(ctx *gin.Context) {
ss := session.Attach(ctx)
defer ss.Finalize()
defer ss.FinalizeOrRollback()
publicKeyCode := 0
publicKeyMsg := "ok"
+1 -1
View File
@@ -10,7 +10,7 @@ import (
func status(ctx *gin.Context) {
ss := session.Attach(ctx)
defer ss.Finalize()
defer ss.FinalizeOrRollback()
ss.Respond(ghomeschema.GuestStatusResp{
Code: 0,
+1 -1
View File
@@ -10,7 +10,7 @@ import (
func agreement(ctx *gin.Context) {
ss := session.Attach(ctx)
defer ss.Finalize()
defer ss.FinalizeOrRollback()
ss.Respond(ghomeschema.AgreementResp{
ReturnCode: 0,
+1 -1
View File
@@ -10,7 +10,7 @@ import (
func appReport(ctx *gin.Context) {
ss := session.Attach(ctx)
defer ss.Finalize()
defer ss.FinalizeOrRollback()
ss.Respond(ghomeschema.AppReportResp{
Code: 0,
+1 -1
View File
@@ -16,7 +16,7 @@ import (
func deleteMail(ctx *gin.Context) {
ss := session.Get(ctx)
defer ss.Finalize()
defer ss.FinalizeOrRollback()
req := greetschema.DeleteReq{}
err := honokautils.ParseRequestData(ctx, &req)
+1 -1
View File
@@ -18,7 +18,7 @@ import (
func user(ctx *gin.Context) {
ss := session.Get(ctx)
defer ss.Finalize()
defer ss.FinalizeOrRollback()
req := greetschema.UserReq{}
err := honokautils.ParseRequestData(ctx, &req)
+1 -1
View File
@@ -13,7 +13,7 @@ import (
func execute(ctx *gin.Context) {
ss := session.Get(ctx)
defer ss.Finalize()
defer ss.FinalizeOrRollback()
weeks := map[string]int{
"Monday": 1,
+1 -1
View File
@@ -13,7 +13,7 @@ import (
func continuee(ctx *gin.Context) {
ss := session.Get(ctx)
defer ss.Finalize()
defer ss.FinalizeOrRollback()
ss.Respond(BuildContinueResp(ss))
}
+1 -1
View File
@@ -14,7 +14,7 @@ import (
func partyList(ctx *gin.Context) {
ss := session.Get(ctx)
defer ss.Finalize()
defer ss.FinalizeOrRollback()
partyListData, err := BuildPartyListData(ss)
if ss.CheckErr(err) {
return
+1 -1
View File
@@ -17,7 +17,7 @@ import (
func play(ctx *gin.Context) {
ss := session.Get(ctx)
defer ss.Finalize()
defer ss.FinalizeOrRollback()
playReq := liveschema.PlayReq{}
err := honokautils.ParseRequestData(ctx, &playReq)
+1 -1
View File
@@ -18,7 +18,7 @@ import (
func preciseScore(ctx *gin.Context) {
ss := session.Get(ctx)
defer ss.Finalize()
defer ss.FinalizeOrRollback()
playScoreReq := liveschema.PlayScoreReq{}
err := honokautils.ParseRequestData(ctx, &playScoreReq)
+1 -1
View File
@@ -18,7 +18,7 @@ import (
func authKey(ctx *gin.Context) {
ss := session.Get(ctx)
defer ss.Finalize()
defer ss.FinalizeOrRollback()
reqData := gjson.Parse(ctx.MustGet("request_data").(string))
dummyToken, err := base64.StdEncoding.DecodeString(reqData.Get("dummy_token").String())
+1 -1
View File
@@ -19,7 +19,7 @@ import (
func login(ctx *gin.Context) {
ss := session.Get(ctx)
defer ss.Finalize()
defer ss.FinalizeOrRollback()
has, authKeyData, err := ss.GetAuthKey(ctx.MustGet("token").(string))
if ss.CheckErr(err) {
@@ -14,7 +14,7 @@ import (
func scenarioStartup(ctx *gin.Context) {
ss := session.Get(ctx)
defer ss.Finalize()
defer ss.FinalizeOrRollback()
startReq := multiunitschema.ScenarioStartUpReq{}
err := honokautils.ParseRequestData(ctx, &startReq)
+1 -1
View File
@@ -13,7 +13,7 @@ import (
func info(ctx *gin.Context) {
ss := session.Get(ctx)
defer ss.Finalize()
defer ss.FinalizeOrRollback()
var contents []struct {
MuseumContentsId int `xorm:"museum_contents_id"`
+1 -1
View File
@@ -15,7 +15,7 @@ import (
func friendGreeting(ctx *gin.Context) {
ss := session.Get(ctx)
defer ss.Finalize()
defer ss.FinalizeOrRollback()
req := noticeschema.GreetingNoticeReq{}
err := honokautils.ParseRequestData(ctx, &req)
+1 -1
View File
@@ -13,7 +13,7 @@ import (
func friendVariety(ctx *gin.Context) {
ss := session.Get(ctx)
defer ss.Finalize()
defer ss.FinalizeOrRollback()
ss.Respond(noticeschema.FriendVarietyResp{
ResponseData: noticeschema.FriendVarietyData{
@@ -15,7 +15,7 @@ import (
func userGreetingHistory(ctx *gin.Context) {
ss := session.Get(ctx)
defer ss.Finalize()
defer ss.FinalizeOrRollback()
req := noticeschema.GreetingNoticeReq{}
err := honokautils.ParseRequestData(ctx, &req)
+1 -1
View File
@@ -14,7 +14,7 @@ import (
func productList(ctx *gin.Context) {
ss := session.Get(ctx)
defer ss.Finalize()
defer ss.FinalizeOrRollback()
prodResp := paymentschema.ProductListResp{
ResponseData: paymentschema.ProductListData{
+1 -1
View File
@@ -13,7 +13,7 @@ import (
func get(ctx *gin.Context) {
ss := session.Get(ctx)
defer ss.Finalize()
defer ss.FinalizeOrRollback()
noticeResp := personalnoticeschema.GetResp{
ResponseData: personalnoticeschema.GetData{
+1 -1
View File
@@ -14,7 +14,7 @@ import (
func register(ctx *gin.Context) {
ss := session.Get(ctx)
defer ss.Finalize()
defer ss.FinalizeOrRollback()
req := gjson.Parse(ctx.PostForm("request_data"))
pref := usermodel.UserPref{
+1 -1
View File
@@ -28,7 +28,7 @@ type liveRankingRow struct {
func live(ctx *gin.Context) {
ss := session.Get(ctx)
defer ss.Finalize()
defer ss.FinalizeOrRollback()
req := rankingschema.LiveReq{}
err := honokautils.ParseRequestData(ctx, &req)
+1 -1
View File
@@ -12,7 +12,7 @@ import (
func history(ctx *gin.Context) {
ss := session.Get(ctx)
defer ss.Finalize()
defer ss.FinalizeOrRollback()
ss.Respond(rewardschema.HistoryResp{
ResponseData: rewardschema.HistoryData{
+1 -1
View File
@@ -12,7 +12,7 @@ import (
func list(ctx *gin.Context) {
ss := session.Get(ctx)
defer ss.Finalize()
defer ss.FinalizeOrRollback()
ss.Respond(rewardschema.ListResp{
ResponseData: rewardschema.ListData{
+1 -1
View File
@@ -13,7 +13,7 @@ import (
func sellUnit(ctx *gin.Context) {
ss := session.Get(ctx)
defer ss.Finalize()
defer ss.FinalizeOrRollback()
ss.Respond(rewardschema.SellUnitResp{
ResponseData: commonschema.ErrorData{
+1 -1
View File
@@ -14,7 +14,7 @@ import (
func continuee(ctx *gin.Context) {
ss := session.Get(ctx)
defer ss.Finalize()
defer ss.FinalizeOrRollback()
req := rliveschema.TokenReq{}
err := honokautils.ParseRequestData(ctx, &req)
+1 -1
View File
@@ -31,7 +31,7 @@ type randomLiveCandidateRow struct {
func lot(ctx *gin.Context) {
ss := session.Get(ctx)
defer ss.Finalize()
defer ss.FinalizeOrRollback()
req := rliveschema.LotReq{}
err := honokautils.ParseRequestData(ctx, &req)
+1 -1
View File
@@ -14,7 +14,7 @@ import (
func play(ctx *gin.Context) {
ss := session.Get(ctx)
defer ss.Finalize()
defer ss.FinalizeOrRollback()
req := rliveschema.PlayReq{}
err := honokautils.ParseRequestData(ctx, &req)
+1 -1
View File
@@ -14,7 +14,7 @@ import (
func startup(ctx *gin.Context) {
ss := session.Get(ctx)
defer ss.Finalize()
defer ss.FinalizeOrRollback()
startReq := scenarioschema.StartUpReq{}
err := json.Unmarshal([]byte(ctx.PostForm("request_data")), &startReq)
+1 -1
View File
@@ -13,7 +13,7 @@ import (
func multi(ctx *gin.Context) {
ss := session.Get(ctx)
defer ss.Finalize()
defer ss.FinalizeOrRollback()
multiReq := secretboxschema.MultiReq{}
err := honokautils.ParseRequestData(ctx, &multiReq)
+1 -1
View File
@@ -18,7 +18,7 @@ import (
func pon(ctx *gin.Context) {
ss := session.Get(ctx)
defer ss.Finalize()
defer ss.FinalizeOrRollback()
ponReq := secretboxschema.PonReq{}
err := honokautils.ParseRequestData(ctx, &ponReq)
+1 -1
View File
@@ -14,7 +14,7 @@ import (
func showDetail(ctx *gin.Context) {
ss := session.Get(ctx)
defer ss.Finalize()
defer ss.FinalizeOrRollback()
showDetailReq := secretboxschema.ShowDetailReq{}
err := honokautils.ParseRequestData(ctx, &showDetailReq)
+1 -1
View File
@@ -14,7 +14,7 @@ import (
func startup(ctx *gin.Context) {
ss := session.Get(ctx)
defer ss.Finalize()
defer ss.FinalizeOrRollback()
startReq := subscenarioschema.StartUpReq{}
err := honokautils.ParseRequestData(ctx, &startReq)
+1 -1
View File
@@ -13,7 +13,7 @@ import (
func check(ctx *gin.Context) {
ss := session.Get(ctx)
defer ss.Finalize()
defer ss.FinalizeOrRollback()
ss.Respond(tosschema.CheckResp{
ResponseData: tosschema.CheckData{
+1 -1
View File
@@ -17,7 +17,7 @@ import (
func deck(ctx *gin.Context) {
ss := session.Get(ctx)
defer ss.Finalize()
defer ss.FinalizeOrRollback()
deckReq := unitschema.DeckReq{}
err := honokautils.ParseRequestData(ctx, &deckReq)
+1 -1
View File
@@ -14,7 +14,7 @@ import (
func deckName(ctx *gin.Context) {
ss := session.Get(ctx)
defer ss.Finalize()
defer ss.FinalizeOrRollback()
deckReq := unitschema.DeckNameReq{}
err := honokautils.ParseRequestData(ctx, &deckReq)
+1 -1
View File
@@ -14,7 +14,7 @@ import (
func favorite(ctx *gin.Context) {
ss := session.Get(ctx)
defer ss.Finalize()
defer ss.FinalizeOrRollback()
var req unitschema.FavoriteReq
err := honokautils.ParseRequestData(ctx, &req)
+1 -1
View File
@@ -18,7 +18,7 @@ type SetResp struct {
func favoriteAccessory(ctx *gin.Context) {
ss := session.Get(ctx)
defer ss.Finalize()
defer ss.FinalizeOrRollback()
fmt.Println(ctx.MustGet("request_data").(string))
@@ -13,7 +13,7 @@ import (
func removableSkillEquipment(ctx *gin.Context) {
ss := session.Get(ctx)
defer ss.Finalize()
defer ss.FinalizeOrRollback()
req := unitschema.RemovableSkillEquipmentReq{}
err := honokautils.ParseRequestData(ctx, &req)
+1 -1
View File
@@ -15,7 +15,7 @@ import (
func sale(ctx *gin.Context) {
ss := session.Get(ctx)
defer ss.Finalize()
defer ss.FinalizeOrRollback()
req := unitschema.SaleReq{}
err := honokautils.ParseRequestData(ctx, &req)
+1 -1
View File
@@ -14,7 +14,7 @@ import (
func setDisplayRank(ctx *gin.Context) {
ss := session.Get(ctx)
defer ss.Finalize()
defer ss.FinalizeOrRollback()
var req unitschema.SetDisplayRankReq
err := honokautils.ParseRequestData(ctx, &req)
+1 -1
View File
@@ -15,7 +15,7 @@ import (
func wearAccessory(ctx *gin.Context) {
ss := session.Get(ctx)
defer ss.Finalize()
defer ss.FinalizeOrRollback()
req := unitschema.WearAccessoryReq{}
err := honokautils.ParseRequestData(ctx, &req)
+1 -1
View File
@@ -15,7 +15,7 @@ import (
func changeName(ctx *gin.Context) {
ss := session.Get(ctx)
defer ss.Finalize()
defer ss.FinalizeOrRollback()
req := gjson.Parse(ctx.MustGet("request_data").(string))
var oldName string
+1 -1
View File
@@ -14,7 +14,7 @@ import (
func changeNavi(ctx *gin.Context) {
ss := session.Get(ctx)
defer ss.Finalize()
defer ss.FinalizeOrRollback()
req := gjson.Parse(ctx.MustGet("request_data").(string))
pref := usermodel.UserPref{
@@ -12,7 +12,7 @@ import (
func setNotificationToken(ctx *gin.Context) {
ss := session.Get(ctx)
defer ss.Finalize()
defer ss.FinalizeOrRollback()
ss.Respond(userschema.SetNotificationTokenResp{
ResponseData: []any{},
+1 -1
View File
@@ -13,7 +13,7 @@ import (
func userInfo(ctx *gin.Context) {
ss := session.Get(ctx)
defer ss.Finalize()
defer ss.FinalizeOrRollback()
userResp := userschema.UserInfoResp{
ResponseData: userschema.UserInfoData{