Files
honoka-chan/internal/handler/album/seriesall.go
T
YumeMichi 150ce674ad Implement more endpoints & overhaul [2/n]
Drop LevelDB and move all the things to SQLite.

Implemented endpoints:
/api <unit, accessoryMaterialAll>
/api <unit, accessoryTab>
/live/continue
/live/partyList
/unit/favoriteAccessory (WIP)
/unit/sale

Signed-off-by: Sean Du <do4suki@gmail.com>
2026-04-28 11:44:56 +08:00

91 lines
2.0 KiB
Go

package album
import (
"honoka-chan/internal/middleware"
"honoka-chan/internal/router"
albumschema "honoka-chan/internal/schema/album"
"honoka-chan/internal/session"
"github.com/gin-gonic/gin"
)
func seriesAll(ctx *gin.Context) {
ss := session.Get(ctx)
defer ss.Finalize()
var albumID []int
err := ss.MainEng.Table("album_series_m").Select("album_series_id").Find(&albumID)
if ss.CheckErr(err) {
return
}
albumSeriesAllRes := []albumschema.SeriesAllData{}
for _, id := range albumID {
var unitList []struct {
UnitId int `xorm:"unit_id"`
Rarity int `xorm:"rarity"`
}
err = ss.MainEng.Table("unit_m").Where("album_series_id = ?", id).Cols("unit_id,rarity").Find(&unitList)
if ss.CheckErr(err) {
return
}
albumSeriesAll := []albumschema.UnitList{}
for _, unit := range unitList {
albumSeries := albumschema.UnitList{
UnitID: unit.UnitId,
RankMaxFlag: true,
LoveMaxFlag: true,
RankLevelMaxFlag: true,
AllMaxFlag: true,
TotalLove: 10000,
FavoritePoint: 1000,
}
if unit.Rarity != 4 {
switch unit.Rarity {
case 1:
// N
albumSeries.HighestLovePerUnit = 50
case 2:
// R
albumSeries.HighestLovePerUnit = 200
case 3:
// SR
albumSeries.HighestLovePerUnit = 500
case 5:
// SSR
albumSeries.HighestLovePerUnit = 750
}
} else {
// UR
albumSeries.HighestLovePerUnit = 1000
// IsSigned
albumSeries.SignFlag, err = ss.MainEng.Table("unit_sign_asset_m").Where("unit_id = ?", unit.UnitId).Exist()
if ss.CheckErr(err) {
return
}
}
albumSeriesAll = append(albumSeriesAll, albumSeries)
}
albumSeriesAllRes = append(albumSeriesAllRes, albumschema.SeriesAllData{
SeriesID: id,
UnitList: albumSeriesAll,
})
}
ss.Respond(albumschema.SeriesAllResp{
ResponseData: albumSeriesAllRes,
ReleaseInfo: []any{},
StatusCode: 200,
})
}
func init() {
router.AddHandler("main.php", "POST", "/album/seriesAll", middleware.Common, seriesAll)
}