@@ -0,0 +1,43 @@
|
||||
package unit
|
||||
|
||||
import (
|
||||
"honoka-chan/internal/schema/api/unit"
|
||||
"honoka-chan/internal/session"
|
||||
"time"
|
||||
|
||||
"github.com/gin-gonic/gin"
|
||||
)
|
||||
|
||||
func unitAccessoryAll(ctx *gin.Context) (res any, err error) {
|
||||
ss := session.Get(ctx)
|
||||
|
||||
accessoryList := []unit.AccessoryList{}
|
||||
err = ss.MainEng.Table("common_accessory_m").Find(&accessoryList)
|
||||
if ss.CheckErr(err) {
|
||||
return
|
||||
}
|
||||
for k := range accessoryList {
|
||||
accessoryList[k].NextExp = 0
|
||||
accessoryList[k].Level = 8
|
||||
accessoryList[k].MaxLevel = 8
|
||||
accessoryList[k].RankUpCount = 4
|
||||
accessoryList[k].FavoriteFlag = true
|
||||
}
|
||||
wearingInfo := []unit.WearingInfo{}
|
||||
err = ss.UserEng.Table("user_accessory_wear").Where("user_id = ?", ss.UserID).Find(&wearingInfo)
|
||||
if ss.CheckErr(err) {
|
||||
return
|
||||
}
|
||||
res = unit.AccessoryAllResp{
|
||||
Result: unit.AccessoryAllData{
|
||||
AccessoryList: accessoryList,
|
||||
WearingInfo: wearingInfo,
|
||||
EspecialCreateFlag: false,
|
||||
},
|
||||
Status: 200,
|
||||
CommandNum: false,
|
||||
TimeStamp: time.Now().Unix(),
|
||||
}
|
||||
|
||||
return res, err
|
||||
}
|
||||
@@ -0,0 +1,38 @@
|
||||
package unit
|
||||
|
||||
import (
|
||||
"honoka-chan/internal/schema/api/unit"
|
||||
"honoka-chan/internal/session"
|
||||
"time"
|
||||
|
||||
"github.com/gin-gonic/gin"
|
||||
)
|
||||
|
||||
func unitAll(ctx *gin.Context) (res any, err error) {
|
||||
ss := session.Get(ctx)
|
||||
|
||||
unitsData := []unit.Active{}
|
||||
err = ss.MainEng.Table("common_unit_m").Find(&unitsData)
|
||||
if ss.CheckErr(err) {
|
||||
return
|
||||
}
|
||||
|
||||
userUnits := []unit.Active{}
|
||||
err = ss.UserEng.Table("user_unit").Where("user_id = ?", ss.UserID).Find(&userUnits)
|
||||
if ss.CheckErr(err) {
|
||||
return
|
||||
}
|
||||
unitsData = append(unitsData, userUnits...)
|
||||
|
||||
res = unit.AllResp{
|
||||
Result: unit.AllData{
|
||||
Active: unitsData,
|
||||
Waiting: []unit.Waiting{},
|
||||
},
|
||||
Status: 200,
|
||||
CommandNum: false,
|
||||
TimeStamp: time.Now().Unix(),
|
||||
}
|
||||
|
||||
return res, err
|
||||
}
|
||||
@@ -0,0 +1,55 @@
|
||||
package unit
|
||||
|
||||
import (
|
||||
"honoka-chan/internal/schema/api/unit"
|
||||
"honoka-chan/internal/session"
|
||||
"time"
|
||||
|
||||
"github.com/gin-gonic/gin"
|
||||
)
|
||||
|
||||
func unitDeckInfo(ctx *gin.Context) (res any, err error) {
|
||||
ss := session.Get(ctx)
|
||||
|
||||
userDeck := []unit.UserDeckData{}
|
||||
err = ss.UserEng.Table("user_deck").Where("user_id = ?", ss.UserID).Asc("deck_id").Find(&userDeck)
|
||||
if ss.CheckErr(err) {
|
||||
return
|
||||
}
|
||||
|
||||
unitDeckInfo := []unit.DeckInfoData{}
|
||||
for _, deck := range userDeck {
|
||||
deckUnit := []unit.UnitDeckData{}
|
||||
err = ss.UserEng.Table("user_deck_unit").Where("user_deck_id = ?", deck.ID).Asc("position").Find(&deckUnit)
|
||||
if ss.CheckErr(err) {
|
||||
return
|
||||
}
|
||||
|
||||
oUID := []unit.UnitOwningUserIds{}
|
||||
for _, u := range deckUnit {
|
||||
oUID = append(oUID, unit.UnitOwningUserIds{
|
||||
Position: u.Position,
|
||||
UnitOwningUserID: u.UnitOwningUserID,
|
||||
})
|
||||
}
|
||||
|
||||
mainFlag := false
|
||||
if deck.MainFlag == 1 {
|
||||
mainFlag = true
|
||||
}
|
||||
unitDeckInfo = append(unitDeckInfo, unit.DeckInfoData{
|
||||
UnitDeckID: deck.DeckID,
|
||||
MainFlag: mainFlag,
|
||||
DeckName: deck.DeckName,
|
||||
UnitOwningUserIds: oUID,
|
||||
})
|
||||
}
|
||||
res = unit.DeckInfoResp{
|
||||
Result: unitDeckInfo,
|
||||
Status: 200,
|
||||
CommandNum: false,
|
||||
TimeStamp: time.Now().Unix(),
|
||||
}
|
||||
|
||||
return res, err
|
||||
}
|
||||
@@ -0,0 +1,76 @@
|
||||
package unit
|
||||
|
||||
import (
|
||||
"honoka-chan/internal/schema/api/unit"
|
||||
"honoka-chan/internal/session"
|
||||
"time"
|
||||
|
||||
"github.com/gin-gonic/gin"
|
||||
)
|
||||
|
||||
func unitRemovableSkillInfo(ctx *gin.Context) (res any, err error) {
|
||||
ss := session.Get(ctx)
|
||||
|
||||
var skillEquipCount []unit.SkillEquipCount
|
||||
err = ss.UserEng.Table("user_unit_skill_equip").Where("user_id = ?", ss.UserID).Select("unit_removable_skill_id,COUNT(*) AS ct").
|
||||
GroupBy("unit_removable_skill_id").Find(&skillEquipCount)
|
||||
if ss.CheckErr(err) {
|
||||
return
|
||||
}
|
||||
|
||||
var rmSkillIds []int
|
||||
err = ss.MainEng.Table("unit_removable_skill_m").Where("effect_range = 1").Cols("unit_removable_skill_id").Find(&rmSkillIds)
|
||||
if ss.CheckErr(err) {
|
||||
return
|
||||
}
|
||||
|
||||
owingInfo := []unit.OwningInfo{}
|
||||
for _, id := range rmSkillIds {
|
||||
info := unit.OwningInfo{
|
||||
UnitRemovableSkillID: id,
|
||||
TotalAmount: 9,
|
||||
EquippedAmount: 0,
|
||||
InsertDate: "2023-01-01 12:00:00",
|
||||
}
|
||||
for _, sk := range skillEquipCount {
|
||||
if id == sk.UnitRemovableSkillId {
|
||||
info.EquippedAmount = sk.Count
|
||||
break
|
||||
}
|
||||
}
|
||||
owingInfo = append(owingInfo, info)
|
||||
}
|
||||
|
||||
var unitOwningIds []int
|
||||
err = ss.UserEng.Table("user_unit_skill_equip").Where("user_id = ?", ss.UserID).Cols("unit_owning_user_id").GroupBy("unit_owning_user_id").Find(&unitOwningIds)
|
||||
if ss.CheckErr(err) {
|
||||
return
|
||||
}
|
||||
|
||||
equipInfo := map[int]any{}
|
||||
for _, v := range unitOwningIds {
|
||||
detail := []unit.SkillEquipDetail{}
|
||||
err = ss.UserEng.Table("user_unit_skill_equip").Where("user_id = ? AND unit_owning_user_id = ?", ss.UserID, v).
|
||||
Cols("unit_removable_skill_id").Find(&detail)
|
||||
if ss.CheckErr(err) {
|
||||
return
|
||||
}
|
||||
|
||||
equipInfo[v] = unit.SkillEquipList{
|
||||
UnitOwningUserID: v,
|
||||
Detail: detail,
|
||||
}
|
||||
}
|
||||
|
||||
res = unit.RemovableSkillInfoResp{
|
||||
Result: unit.RemovableSkillInfoData{
|
||||
OwningInfo: owingInfo,
|
||||
EquipmentInfo: equipInfo,
|
||||
}, // 宝石
|
||||
Status: 200,
|
||||
CommandNum: false,
|
||||
TimeStamp: time.Now().Unix(),
|
||||
}
|
||||
|
||||
return res, err
|
||||
}
|
||||
@@ -0,0 +1,19 @@
|
||||
package unit
|
||||
|
||||
import (
|
||||
"honoka-chan/internal/schema/api/unit"
|
||||
"time"
|
||||
)
|
||||
|
||||
func unitSupporterAll() (res any, err error) {
|
||||
res = unit.SupporterAllResp{
|
||||
Result: unit.SupporterAllData{
|
||||
UnitSupportList: []unit.SupporterList{},
|
||||
}, // 练习道具
|
||||
Status: 200,
|
||||
CommandNum: false,
|
||||
TimeStamp: time.Now().Unix(),
|
||||
}
|
||||
|
||||
return res, err
|
||||
}
|
||||
@@ -0,0 +1,25 @@
|
||||
package unit
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
|
||||
"github.com/gin-gonic/gin"
|
||||
)
|
||||
|
||||
func UnitApi(ctx *gin.Context, action string) (res any, err error) {
|
||||
switch action {
|
||||
case "accessoryAll":
|
||||
res, err = unitAccessoryAll(ctx)
|
||||
case "deckInfo":
|
||||
res, err = unitDeckInfo(ctx)
|
||||
case "removableSkillInfo":
|
||||
res, err = unitRemovableSkillInfo(ctx)
|
||||
case "supporterAll":
|
||||
res, err = unitSupporterAll()
|
||||
case "unitAll":
|
||||
res, err = unitAll(ctx)
|
||||
default:
|
||||
err = fmt.Errorf("unimplemented action: unit: %s", action)
|
||||
}
|
||||
return res, err
|
||||
}
|
||||
Reference in New Issue
Block a user