Files
2026-07-11 16:18:17 +08:00

82 lines
2.2 KiB
Go

package eventscenario
import (
"fmt"
eventscenarioapischema "honoka-chan/internal/schema/api/eventscenario"
"honoka-chan/internal/session"
"net/http"
"strings"
"time"
"github.com/gin-gonic/gin"
)
func eventScenarioStatus(ctx *gin.Context) (res any, err error) {
ss := session.Get(ctx)
var eventID []int
eventsList := []eventscenarioapischema.EventScenarioList{}
err = ss.MainEng.Table("event_scenario_m").Cols("event_id").GroupBy("event_id").OrderBy("event_id DESC").Find(&eventID)
if err != nil {
return nil, err
}
for _, id := range eventID {
var eventRes []struct {
EventScenarioId int `xorm:"event_scenario_id"`
Chapter int `xorm:"chapter"`
ChapterAsset string `xorm:"chapter_asset"`
OpenDate string `xorm:"open_date"`
}
chapsList := []eventscenarioapischema.ChapterList{}
err = ss.MainEng.Table("event_scenario_m").Where("event_id = ?", id).Cols("event_scenario_id,chapter,chapter_asset,open_date").
OrderBy("chapter DESC").Find(&eventRes)
if err != nil {
return nil, err
}
for _, res := range eventRes {
chapList := eventscenarioapischema.ChapterList{
EventScenarioID: res.EventScenarioId,
Chapter: res.Chapter,
ChapterAsset: res.ChapterAsset,
Status: 2,
OpenFlashFlag: 0,
IsReward: false,
CostType: 1000,
ItemID: 1200,
Amount: 1,
}
chapsList = append(chapsList, chapList)
}
event := eventscenarioapischema.EventScenarioList{
EventID: id,
OpenDate: strings.ReplaceAll(eventRes[0].OpenDate, "/", "-"),
ChapterList: chapsList,
}
// HACK event_scenario_btn_asset
switch id {
case 10001:
event.EventScenarioBtnAsset = "assets/image/ui/eventscenario/38_se_ba_t.png"
case 221:
event.EventScenarioBtnAsset = "assets/image/ui/eventscenario/215_se_ba_t.png"
default:
event.EventScenarioBtnAsset = fmt.Sprintf("assets/image/ui/eventscenario/%d_se_ba_t.png", id)
}
eventsList = append(eventsList, event)
}
res = eventscenarioapischema.StatusResp{
Result: eventscenarioapischema.StatusData{
EventScenarioList: eventsList,
},
Status: http.StatusOK,
CommandNum: false,
TimeStamp: time.Now().Unix(),
}
return res, err
}