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>
This commit is contained in:
2026-04-28 11:44:56 +08:00
parent 1500821f3e
commit 150ce674ad
218 changed files with 2993 additions and 2160 deletions
+53
View File
@@ -0,0 +1,53 @@
package session
import (
accessorymodel "honoka-chan/internal/model/accessory"
usermodel "honoka-chan/internal/model/user"
)
func (ss *Session) GetUserAccessoryWearByUnitOwningUserID(unitOwningUserID int) (bool, *usermodel.UserAccessoryWear) {
wearData := usermodel.UserAccessoryWear{}
has, err := ss.UserEng.Table(new(usermodel.UserAccessoryWear)).
Where("unit_owning_user_id = ?", unitOwningUserID).Get(&wearData)
if ss.CheckErr(err) {
return false, nil
}
return has, &wearData
}
func (ss *Session) GetAccessoryByAccessoryOwningUserID(accessoryOwningUserID int) (bool, *accessorymodel.Accessory) {
accessoryData := accessorymodel.Accessory{}
has, err := ss.MainEng.Table("common_accessory_m").Alias("a").
Join("LEFT", "accessory_m", "a.accessory_id = accessory_m.accessory_id").
Where("a.accessory_owning_user_id = ?", accessoryOwningUserID).
Cols("accessory_m.*,a.exp").Get(&accessoryData)
if ss.CheckErr(err) {
return false, nil
}
return has, &accessoryData
}
func (ss *Session) GetUserAccessoryInfoByUnitOwningUserID(unitOwningUserID int) (bool, *usermodel.AccessoryInfo) {
has, wearData := ss.GetUserAccessoryWearByUnitOwningUserID(unitOwningUserID)
if !has {
return false, nil
}
has, accessoryData := ss.GetAccessoryByAccessoryOwningUserID(wearData.AccessoryOwningUserID)
if !has {
return false, nil
}
return has, &usermodel.AccessoryInfo{
AccessoryOwningUserID: wearData.AccessoryOwningUserID,
AccessoryID: accessoryData.AccessoryID,
Exp: accessoryData.Exp,
NextExp: 0,
Level: accessoryData.MaxLevel,
MaxLevel: accessoryData.MaxLevel,
RankUpCount: accessoryData.MaxLevel - accessoryData.DefaultMaxLevel,
FavoriteFlag: true,
}
}