Files
honoka-chan/internal/handler/api/album/all.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

71 lines
1.6 KiB
Go

package album
import (
albumapischema "honoka-chan/internal/schema/api/album"
"honoka-chan/internal/session"
"time"
"github.com/gin-gonic/gin"
)
func albumAll(ctx *gin.Context) (res any, err error) {
ss := session.Get(ctx)
albumLists := []albumapischema.UnitList{}
var unitList []struct {
UnitId int `xorm:"unit_id"`
Rarity int `xorm:"rarity"`
}
err = ss.MainEng.Table("unit_m").Cols("unit_id,rarity").OrderBy("unit_id ASC").Find(&unitList)
if err != nil {
return nil, err
}
for _, unit := range unitList {
albumList := albumapischema.UnitList{
RankMaxFlag: true,
LoveMaxFlag: true,
RankLevelMaxFlag: true,
AllMaxFlag: true,
FavoritePoint: 1000,
}
albumList.UnitID = unit.UnitId
if unit.Rarity != 4 {
albumList.SignFlag = false
switch unit.Rarity {
case 1:
albumList.HighestLovePerUnit = 50
albumList.TotalLove = 50
case 2:
albumList.HighestLovePerUnit = 200
albumList.TotalLove = 200
case 3:
albumList.HighestLovePerUnit = 500
albumList.TotalLove = 500
case 5:
albumList.HighestLovePerUnit = 750
albumList.TotalLove = 750
}
} else {
albumList.HighestLovePerUnit = 1000
albumList.TotalLove = 1000
// IsSigned
albumList.SignFlag, err = ss.MainEng.Table("unit_sign_asset_m").Where("unit_id = ?", unit.UnitId).Exist()
if err != nil {
return nil, err
}
}
albumLists = append(albumLists, albumList)
}
res = albumapischema.AllResp{
Result: albumLists,
Status: 200,
CommandNum: false,
TimeStamp: time.Now().Unix(),
}
return res, err
}