+14
-26
@@ -13,7 +13,12 @@ import (
|
||||
_ "github.com/mattn/go-sqlite3"
|
||||
)
|
||||
|
||||
func AlbumSeriesAllHandler(ctx *gin.Context) {
|
||||
type AlbumSearchResult struct {
|
||||
UnitId int `xorm:"unit_id"`
|
||||
Rarity int `xorm:"rarity"`
|
||||
}
|
||||
|
||||
func AlbumSeriesAll(ctx *gin.Context) {
|
||||
var albumIds []int
|
||||
err := MainEng.Table("album_series_m").Select("album_series_id").Find(&albumIds)
|
||||
CheckErr(err)
|
||||
@@ -21,21 +26,14 @@ func AlbumSeriesAllHandler(ctx *gin.Context) {
|
||||
|
||||
albumSeriesAllRes := []model.AlbumSeriesRes{}
|
||||
for _, albumId := range albumIds {
|
||||
AlbumStmt, err := MainEng.DB().Prepare("SELECT unit_id,rarity FROM unit_m WHERE album_series_id = ?")
|
||||
CheckErr(err)
|
||||
defer AlbumStmt.Close()
|
||||
|
||||
rows, err := AlbumStmt.Query(albumId)
|
||||
unitList := []AlbumSearchResult{}
|
||||
err = MainEng.Table("unit_m").Where("album_series_id = ?", albumId).Cols("unit_id,rarity").Find(&unitList)
|
||||
CheckErr(err)
|
||||
|
||||
albumSeriesAll := []model.AlbumResult{}
|
||||
for rows.Next() {
|
||||
var unitId, rarity int
|
||||
err = rows.Scan(&unitId, &rarity)
|
||||
CheckErr(err)
|
||||
|
||||
for _, unit := range unitList {
|
||||
albumSeries := model.AlbumResult{
|
||||
UnitID: unitId,
|
||||
UnitID: unit.UnitId,
|
||||
RankMaxFlag: true,
|
||||
LoveMaxFlag: true,
|
||||
RankLevelMaxFlag: true,
|
||||
@@ -44,8 +42,8 @@ func AlbumSeriesAllHandler(ctx *gin.Context) {
|
||||
FavoritePoint: 1000,
|
||||
}
|
||||
|
||||
if rarity != 4 {
|
||||
switch rarity {
|
||||
if unit.Rarity != 4 {
|
||||
switch unit.Rarity {
|
||||
case 1:
|
||||
// N
|
||||
albumSeries.HighestLovePerUnit = 50
|
||||
@@ -64,19 +62,9 @@ func AlbumSeriesAllHandler(ctx *gin.Context) {
|
||||
albumSeries.HighestLovePerUnit = 1000
|
||||
|
||||
// IsSigned
|
||||
signStmt, err := MainEng.DB().Prepare("SELECT COUNT(*) AS ct FROM unit_sign_asset_m WHERE unit_id = ?")
|
||||
exists, err := MainEng.Table("unit_sign_asset_m").Where("unit_id = ?", unit.UnitId).Exist()
|
||||
CheckErr(err)
|
||||
defer signStmt.Close()
|
||||
|
||||
var count int
|
||||
err = signStmt.QueryRow(unitId).Scan(&count)
|
||||
CheckErr(err)
|
||||
|
||||
if count > 0 {
|
||||
albumSeries.SignFlag = true
|
||||
} else {
|
||||
albumSeries.SignFlag = false
|
||||
}
|
||||
albumSeries.SignFlag = exists
|
||||
}
|
||||
|
||||
albumSeriesAll = append(albumSeriesAll, albumSeries)
|
||||
|
||||
+2
-2
@@ -13,14 +13,14 @@ import (
|
||||
"github.com/gin-gonic/gin"
|
||||
)
|
||||
|
||||
func AnnounceIndexHandler(ctx *gin.Context) {
|
||||
func AnnounceIndex(ctx *gin.Context) {
|
||||
ctx.HTML(http.StatusOK, "announce.tmpl", gin.H{
|
||||
"title": "Love Live! 学园偶像祭 非官方服务器",
|
||||
"content": template.HTML("目前开发完毕的功能包括:登录、相册、Live、个人信息。<br>其他功能仍在开发中,有报错属于正常现象。"),
|
||||
})
|
||||
}
|
||||
|
||||
func AnnounceCheckStateHandler(ctx *gin.Context) {
|
||||
func AnnounceCheckState(ctx *gin.Context) {
|
||||
announceResp := model.AnnounceResp{
|
||||
ResponseData: model.AnnounceRes{
|
||||
HasUnreadAnnounce: false,
|
||||
|
||||
+89
-147
@@ -17,29 +17,26 @@ import (
|
||||
"github.com/gin-gonic/gin"
|
||||
)
|
||||
|
||||
func ApiHandler(ctx *gin.Context) {
|
||||
userId, err := strconv.Atoi(ctx.GetString("userid"))
|
||||
CheckErr(err)
|
||||
|
||||
var formdata []model.SifApi
|
||||
err = json.Unmarshal([]byte(ctx.GetString("request_data")), &formdata)
|
||||
func Api(ctx *gin.Context) {
|
||||
apiReq := []model.ApiReq{}
|
||||
err := json.Unmarshal([]byte(ctx.GetString("request_data")), &apiReq)
|
||||
if err != nil {
|
||||
fmt.Println(err)
|
||||
return
|
||||
}
|
||||
var results []interface{}
|
||||
for _, v := range formdata {
|
||||
results := []interface{}{}
|
||||
for _, v := range apiReq {
|
||||
var res []byte
|
||||
var err error
|
||||
// fmt.Println(v)
|
||||
fmt.Println(v.Module, v.Action)
|
||||
// fmt.Println(v.Module, v.Action)
|
||||
|
||||
switch v.Module {
|
||||
case "login":
|
||||
if v.Action == "topInfo" {
|
||||
// key = "login_topinfo_result"
|
||||
topInfoResp := model.TopInfoResp{
|
||||
Result: model.TopInfoResult{
|
||||
Result: model.TopInfoRes{
|
||||
FriendActionCnt: 0,
|
||||
FriendGreetCnt: 0,
|
||||
FriendVarietyCnt: 0,
|
||||
@@ -76,7 +73,7 @@ func ApiHandler(ctx *gin.Context) {
|
||||
} else if v.Action == "topInfoOnce" {
|
||||
// key = "login_topinfo_once_result"
|
||||
topInfoOnceResp := model.TopInfoOnceResp{
|
||||
Result: model.TopInfoOnceResult{
|
||||
Result: model.TopInfoOnceRes{
|
||||
NewAchievementCnt: 0,
|
||||
UnaccomplishedAchievementCnt: 0,
|
||||
LiveDailyRewardExist: false,
|
||||
@@ -109,18 +106,13 @@ func ApiHandler(ctx *gin.Context) {
|
||||
case "live":
|
||||
if v.Action == "liveStatus" {
|
||||
// key = "live_status_result"
|
||||
var liveDifficultyId int
|
||||
var liveDifficultyId []int
|
||||
normalLives := []model.NormalLiveStatusList{}
|
||||
sql := `SELECT live_difficulty_id FROM normal_live_m ORDER BY live_difficulty_id ASC`
|
||||
rows, err := MainEng.DB().Query(sql)
|
||||
err = MainEng.Table("normal_live_m").Cols("live_difficulty_id").OrderBy("live_difficulty_id ASC").Find(&liveDifficultyId)
|
||||
CheckErr(err)
|
||||
defer rows.Close()
|
||||
for rows.Next() {
|
||||
err = rows.Scan(&liveDifficultyId)
|
||||
CheckErr(err)
|
||||
|
||||
for _, id := range liveDifficultyId {
|
||||
normalLive := model.NormalLiveStatusList{
|
||||
LiveDifficultyID: liveDifficultyId,
|
||||
LiveDifficultyID: id,
|
||||
Status: 1,
|
||||
HiScore: 0,
|
||||
HiComboCount: 0,
|
||||
@@ -131,16 +123,11 @@ func ApiHandler(ctx *gin.Context) {
|
||||
}
|
||||
|
||||
specialLives := []model.SpecialLiveStatusList{}
|
||||
sql = `SELECT live_difficulty_id FROM special_live_m ORDER BY live_difficulty_id ASC`
|
||||
rows, err = MainEng.DB().Query(sql)
|
||||
err = MainEng.Table("special_live_m").Cols("live_difficulty_id").OrderBy("live_difficulty_id ASC").Find(&liveDifficultyId)
|
||||
CheckErr(err)
|
||||
defer rows.Close()
|
||||
for rows.Next() {
|
||||
err = rows.Scan(&liveDifficultyId)
|
||||
CheckErr(err)
|
||||
|
||||
for _, id := range liveDifficultyId {
|
||||
specialLive := model.SpecialLiveStatusList{
|
||||
LiveDifficultyID: liveDifficultyId,
|
||||
LiveDifficultyID: id,
|
||||
Status: 1,
|
||||
HiScore: 0,
|
||||
HiComboCount: 0,
|
||||
@@ -151,7 +138,7 @@ func ApiHandler(ctx *gin.Context) {
|
||||
}
|
||||
|
||||
LiveStatusResp := model.LiveStatusResp{
|
||||
Result: model.LiveStatusResult{
|
||||
Result: model.LiveStatusRes{
|
||||
NormalLiveStatusList: normalLives,
|
||||
SpecialLiveStatusList: specialLives,
|
||||
TrainingLiveStatusList: []model.TrainingLiveStatusList{},
|
||||
@@ -167,18 +154,13 @@ func ApiHandler(ctx *gin.Context) {
|
||||
CheckErr(err)
|
||||
} else if v.Action == "schedule" {
|
||||
// key = "live_list_result"
|
||||
var liveDifficultyId int
|
||||
var liveDifficultyId []int
|
||||
specialLives := []model.SpecialLiveStatusList{}
|
||||
sql := `SELECT live_difficulty_id FROM special_live_m ORDER BY live_difficulty_id ASC`
|
||||
rows, err := MainEng.DB().Query(sql)
|
||||
err = MainEng.Table("special_live_m").Cols("live_difficulty_id").OrderBy("live_difficulty_id ASC").Find(&liveDifficultyId)
|
||||
CheckErr(err)
|
||||
defer rows.Close()
|
||||
for rows.Next() {
|
||||
err = rows.Scan(&liveDifficultyId)
|
||||
CheckErr(err)
|
||||
|
||||
for _, id := range liveDifficultyId {
|
||||
specialLive := model.SpecialLiveStatusList{
|
||||
LiveDifficultyID: liveDifficultyId,
|
||||
LiveDifficultyID: id,
|
||||
Status: 1,
|
||||
HiScore: 0,
|
||||
HiComboCount: 0,
|
||||
@@ -198,7 +180,7 @@ func ApiHandler(ctx *gin.Context) {
|
||||
})
|
||||
}
|
||||
liveListResp := model.LiveScheduleResp{
|
||||
Result: model.LiveScheduleResult{
|
||||
Result: model.LiveScheduleRes{
|
||||
EventList: []interface{}{},
|
||||
LiveList: livesList,
|
||||
LimitedBonusList: []interface{}{},
|
||||
@@ -229,11 +211,10 @@ func ApiHandler(ctx *gin.Context) {
|
||||
if err != nil {
|
||||
panic(err)
|
||||
}
|
||||
|
||||
unitsData = append(unitsData, userUnits...)
|
||||
|
||||
unitListResp := model.UnitAllResp{
|
||||
Result: model.UnitAllResult{
|
||||
Result: model.UnitAllRes{
|
||||
Active: unitsData,
|
||||
Waiting: []model.Waiting{},
|
||||
},
|
||||
@@ -246,10 +227,10 @@ func ApiHandler(ctx *gin.Context) {
|
||||
case "deckInfo":
|
||||
// key = "unit_deck_result"
|
||||
userDeck := []tools.UserDeckData{}
|
||||
err = UserEng.Table("user_deck_m").Where("user_id = ?", userId).Asc("deck_id").Find(&userDeck)
|
||||
err = UserEng.Table("user_deck_m").Where("user_id = ?", ctx.GetString("userid")).Asc("deck_id").Find(&userDeck)
|
||||
CheckErr(err)
|
||||
|
||||
unitDeckInfo := []model.UnitDeckInfo{}
|
||||
unitDeckInfo := []model.UnitDeckInfoRes{}
|
||||
for _, deck := range userDeck {
|
||||
deckUnit := []tools.UnitDeckData{}
|
||||
err = UserEng.Table("deck_unit_m").Where("user_deck_id = ?", deck.ID).Asc("position").Find(&deckUnit)
|
||||
@@ -267,7 +248,7 @@ func ApiHandler(ctx *gin.Context) {
|
||||
if deck.MainFlag == 1 {
|
||||
mainFlag = true
|
||||
}
|
||||
unitDeckInfo = append(unitDeckInfo, model.UnitDeckInfo{
|
||||
unitDeckInfo = append(unitDeckInfo, model.UnitDeckInfoRes{
|
||||
UnitDeckID: deck.DeckID,
|
||||
MainFlag: mainFlag,
|
||||
DeckName: deck.DeckName,
|
||||
@@ -285,7 +266,7 @@ func ApiHandler(ctx *gin.Context) {
|
||||
case "supporterAll":
|
||||
// key = "unit_support_result"
|
||||
unitSupportResp := model.UnitSupportResp{
|
||||
Result: model.UnitSupportResult{
|
||||
Result: model.UnitSupportRes{
|
||||
UnitSupportList: []model.UnitSupportList{},
|
||||
}, // 练习道具
|
||||
Status: 200,
|
||||
@@ -322,10 +303,6 @@ func ApiHandler(ctx *gin.Context) {
|
||||
owingInfo = append(owingInfo, info)
|
||||
}
|
||||
|
||||
// equipInfo := []model.SkillEquip{}
|
||||
// err = UserEng.Table("skill_equip_m").Where("user_id = ?", ctx.GetString("userid")).Cols("unit_removable_skill_id,unit_owning_user_id").Find(&equipInfo)
|
||||
// CheckErr(err)
|
||||
|
||||
var unitOwningIds []int
|
||||
err = UserEng.Table("skill_equip_m").Where("user_id = ?", ctx.GetString("userid")).Cols("unit_owning_user_id").GroupBy("unit_owning_user_id").Find(&unitOwningIds)
|
||||
CheckErr(err)
|
||||
@@ -344,7 +321,7 @@ func ApiHandler(ctx *gin.Context) {
|
||||
}
|
||||
|
||||
rmSkillResp := model.RemovableSkillResp{
|
||||
Result: model.RemovableSkillResult{
|
||||
Result: model.RemovableSkillRes{
|
||||
OwningInfo: owingInfo,
|
||||
EquipmentInfo: equipInfo,
|
||||
}, // 宝石
|
||||
@@ -390,7 +367,7 @@ func ApiHandler(ctx *gin.Context) {
|
||||
case "costume":
|
||||
// key = "costume_list_result"
|
||||
costumeListResp := model.CostumeListResp{
|
||||
Result: model.CostumeListResult{
|
||||
Result: model.CostumeListRes{
|
||||
CostumeList: []model.CostumeList{},
|
||||
},
|
||||
Status: 200,
|
||||
@@ -402,11 +379,10 @@ func ApiHandler(ctx *gin.Context) {
|
||||
case "album":
|
||||
// key = "album_unit_result"
|
||||
albumLists := []model.AlbumResult{}
|
||||
sql := `SELECT unit_id,rarity FROM unit_m ORDER BY unit_id ASC`
|
||||
rows, err := MainEng.DB().Query(sql)
|
||||
unitList := []AlbumSearchResult{}
|
||||
err = MainEng.Table("unit_m").Cols("unit_id,rarity").OrderBy("unit_id ASC").Find(&unitList)
|
||||
CheckErr(err)
|
||||
defer rows.Close()
|
||||
for rows.Next() {
|
||||
for _, unit := range unitList {
|
||||
albumList := model.AlbumResult{
|
||||
RankMaxFlag: true,
|
||||
LoveMaxFlag: true,
|
||||
@@ -414,22 +390,19 @@ func ApiHandler(ctx *gin.Context) {
|
||||
AllMaxFlag: true,
|
||||
FavoritePoint: 1000,
|
||||
}
|
||||
var uid, rit int
|
||||
err = rows.Scan(&uid, &rit)
|
||||
CheckErr(err)
|
||||
albumList.UnitID = uid
|
||||
if rit != 4 {
|
||||
albumList.UnitID = unit.UnitId
|
||||
if unit.Rarity != 4 {
|
||||
albumList.SignFlag = false
|
||||
if rit == 1 {
|
||||
if unit.Rarity == 1 {
|
||||
albumList.HighestLovePerUnit = 50
|
||||
albumList.TotalLove = 50
|
||||
} else if rit == 2 {
|
||||
} else if unit.Rarity == 2 {
|
||||
albumList.HighestLovePerUnit = 200
|
||||
albumList.TotalLove = 200
|
||||
} else if rit == 3 {
|
||||
} else if unit.Rarity == 3 {
|
||||
albumList.HighestLovePerUnit = 500
|
||||
albumList.TotalLove = 500
|
||||
} else if rit == 5 {
|
||||
} else if unit.Rarity == 5 {
|
||||
albumList.HighestLovePerUnit = 750
|
||||
albumList.TotalLove = 750
|
||||
}
|
||||
@@ -437,19 +410,10 @@ func ApiHandler(ctx *gin.Context) {
|
||||
albumList.HighestLovePerUnit = 1000
|
||||
albumList.TotalLove = 1000
|
||||
|
||||
stmt, err := MainEng.DB().Prepare("SELECT COUNT(*) AS ct FROM unit_sign_asset_m WHERE unit_id = ?")
|
||||
// IsSigned
|
||||
exists, err := MainEng.Table("unit_sign_asset_m").Where("unit_id = ?", unit.UnitId).Exist()
|
||||
CheckErr(err)
|
||||
defer stmt.Close()
|
||||
|
||||
var count int
|
||||
err = stmt.QueryRow(uid).Scan(&count)
|
||||
CheckErr(err)
|
||||
|
||||
if count > 0 {
|
||||
albumList.SignFlag = true
|
||||
} else {
|
||||
albumList.SignFlag = false
|
||||
}
|
||||
albumList.SignFlag = exists
|
||||
}
|
||||
albumLists = append(albumLists, albumList)
|
||||
}
|
||||
@@ -464,22 +428,18 @@ func ApiHandler(ctx *gin.Context) {
|
||||
CheckErr(err)
|
||||
case "scenario":
|
||||
// key = "scenario_status_result"
|
||||
sql := `SELECT scenario_id FROM scenario_m ORDER BY scenario_id ASC`
|
||||
rows, err := MainEng.DB().Query(sql)
|
||||
CheckErr(err)
|
||||
defer rows.Close()
|
||||
var scenarioIds []int
|
||||
scenarioLists := []model.ScenarioStatusList{}
|
||||
for rows.Next() {
|
||||
var sid int
|
||||
err = rows.Scan(&sid)
|
||||
CheckErr(err)
|
||||
err = MainEng.Table("scenario_m").Cols("scenario_id").OrderBy("scenario_id ASC").Find(&scenarioIds)
|
||||
CheckErr(err)
|
||||
for _, id := range scenarioIds {
|
||||
scenarioLists = append(scenarioLists, model.ScenarioStatusList{
|
||||
ScenarioID: sid,
|
||||
ScenarioID: id,
|
||||
Status: 2,
|
||||
})
|
||||
}
|
||||
scenarioResp := model.ScenarioStatusResp{
|
||||
Result: model.ScenarioStatusResult{
|
||||
Result: model.ScenarioStatusRes{
|
||||
ScenarioStatusList: scenarioLists,
|
||||
},
|
||||
Status: 200,
|
||||
@@ -490,22 +450,18 @@ func ApiHandler(ctx *gin.Context) {
|
||||
CheckErr(err)
|
||||
case "subscenario":
|
||||
// key = "subscenario_status_result"
|
||||
sql := `SELECT subscenario_id FROM subscenario_m ORDER BY subscenario_id ASC`
|
||||
rows, err := MainEng.DB().Query(sql)
|
||||
CheckErr(err)
|
||||
defer rows.Close()
|
||||
var subScenarioIds []int
|
||||
subScenarioLists := []model.SubscenarioStatusList{}
|
||||
for rows.Next() {
|
||||
var sid int
|
||||
err = rows.Scan(&sid)
|
||||
CheckErr(err)
|
||||
err = MainEng.Table("subscenario_m").Cols("subscenario_id").OrderBy("subscenario_id ASC").Find(&subScenarioIds)
|
||||
CheckErr(err)
|
||||
for _, id := range subScenarioIds {
|
||||
subScenarioLists = append(subScenarioLists, model.SubscenarioStatusList{
|
||||
SubscenarioID: sid,
|
||||
SubscenarioID: id,
|
||||
Status: 2,
|
||||
})
|
||||
}
|
||||
subScenarioResp := model.SubscenarioStatusResp{
|
||||
Result: model.SubscenarioStatusResult{
|
||||
Result: model.SubscenarioStatusRes{
|
||||
SubscenarioStatusList: subScenarioLists,
|
||||
UnlockedSubscenarioIds: []interface{}{},
|
||||
},
|
||||
@@ -517,18 +473,13 @@ func ApiHandler(ctx *gin.Context) {
|
||||
CheckErr(err)
|
||||
case "eventscenario":
|
||||
// key = "event_scenario_result"
|
||||
var eventIds []int
|
||||
eventsList := []model.EventScenarioList{}
|
||||
sql := `SELECT event_id FROM event_scenario_m GROUP BY event_id ORDER BY event_id DESC`
|
||||
rows, err := MainEng.DB().Query(sql)
|
||||
err = MainEng.Table("event_scenario_m").Cols("event_id").GroupBy("event_id").OrderBy("event_id DESC").Find(&eventIds)
|
||||
CheckErr(err)
|
||||
defer rows.Close()
|
||||
for rows.Next() {
|
||||
var eventId int
|
||||
err = rows.Scan(&eventId)
|
||||
CheckErr(err)
|
||||
|
||||
sql = `SELECT event_scenario_id,chapter,chapter_asset,open_date FROM event_scenario_m WHERE event_id = ? ORDER BY chapter DESC`
|
||||
chaps, err := MainEng.DB().Query(sql, eventId)
|
||||
for _, id := range eventIds {
|
||||
sql := `SELECT event_scenario_id,chapter,chapter_asset,open_date FROM event_scenario_m WHERE event_id = ? ORDER BY chapter DESC`
|
||||
chaps, err := MainEng.DB().Query(sql, id)
|
||||
CheckErr(err)
|
||||
defer chaps.Close()
|
||||
chapsList := []model.EventScenarioChapterList{}
|
||||
@@ -556,24 +507,24 @@ func ApiHandler(ctx *gin.Context) {
|
||||
}
|
||||
|
||||
eventList := model.EventScenarioList{
|
||||
EventID: eventId,
|
||||
EventID: id,
|
||||
OpenDate: strings.ReplaceAll(open_date, "/", "-"),
|
||||
ChapterList: chapsList,
|
||||
}
|
||||
|
||||
// HACK event_scenario_btn_asset
|
||||
if eventId == 10001 {
|
||||
if id == 10001 {
|
||||
eventList.EventScenarioBtnAsset = "assets/image/ui/eventscenario/38_se_ba_t.png"
|
||||
} else if eventId == 221 {
|
||||
} else if id == 221 {
|
||||
eventList.EventScenarioBtnAsset = "assets/image/ui/eventscenario/215_se_ba_t.png"
|
||||
} else {
|
||||
eventList.EventScenarioBtnAsset = fmt.Sprintf("assets/image/ui/eventscenario/%d_se_ba_t.png", eventId)
|
||||
eventList.EventScenarioBtnAsset = fmt.Sprintf("assets/image/ui/eventscenario/%d_se_ba_t.png", id)
|
||||
}
|
||||
|
||||
eventsList = append(eventsList, eventList)
|
||||
}
|
||||
eventScenarioResp := model.EventScenarioStatusResp{
|
||||
Result: model.EventScenarioStatusResult{
|
||||
Result: model.EventScenarioStatusRes{
|
||||
EventScenarioList: eventsList, //
|
||||
},
|
||||
Status: 200,
|
||||
@@ -584,18 +535,13 @@ func ApiHandler(ctx *gin.Context) {
|
||||
CheckErr(err)
|
||||
case "multiunit":
|
||||
// key = "multi_unit_scenario_result"
|
||||
sql := `SELECT multi_unit_id FROM multi_unit_scenario_m GROUP BY multi_unit_id ORDER BY multi_unit_id ASC`
|
||||
rows, err := MainEng.DB().Query(sql)
|
||||
CheckErr(err)
|
||||
defer rows.Close()
|
||||
var mId int
|
||||
var multiIds []int
|
||||
multiUnitsList := []model.MultiUnitScenarioStatusList{}
|
||||
for rows.Next() {
|
||||
err = rows.Scan(&mId)
|
||||
CheckErr(err)
|
||||
|
||||
sql = `SELECT multi_unit_scenario_btn_asset,open_date,multi_unit_scenario_id,chapter FROM multi_unit_scenario_m a LEFT JOIN multi_unit_scenario_open_m b ON a.multi_unit_id = b.multi_unit_id WHERE a.multi_unit_id = ?`
|
||||
units, err := MainEng.DB().Query(sql, mId)
|
||||
err = MainEng.Table("multi_unit_scenario_m").Cols("multi_unit_id").GroupBy("multi_unit_id").OrderBy("multi_unit_id ASC").Find(&multiIds)
|
||||
CheckErr(err)
|
||||
for _, id := range multiIds {
|
||||
sql := `SELECT multi_unit_scenario_btn_asset,open_date,multi_unit_scenario_id,chapter FROM multi_unit_scenario_m a LEFT JOIN multi_unit_scenario_open_m b ON a.multi_unit_id = b.multi_unit_id WHERE a.multi_unit_id = ?`
|
||||
units, err := MainEng.DB().Query(sql, id)
|
||||
CheckErr(err)
|
||||
defer units.Close()
|
||||
var multi_unit_scenario_id, chapter int
|
||||
@@ -606,7 +552,7 @@ func ApiHandler(ctx *gin.Context) {
|
||||
}
|
||||
|
||||
multiUnitsList = append(multiUnitsList, model.MultiUnitScenarioStatusList{
|
||||
MultiUnitID: mId,
|
||||
MultiUnitID: id,
|
||||
Status: 2,
|
||||
MultiUnitScenarioBtnAsset: multi_unit_scenario_btn_asset,
|
||||
OpenDate: strings.ReplaceAll(open_date, "/", "-"),
|
||||
@@ -620,7 +566,7 @@ func ApiHandler(ctx *gin.Context) {
|
||||
})
|
||||
}
|
||||
unitsResp := model.MultiUnitScenarioStatusResp{
|
||||
Result: model.MultiUnitScenarioStatusResult{
|
||||
Result: model.MultiUnitScenarioStatusRes{
|
||||
MultiUnitScenarioStatusList: multiUnitsList,
|
||||
UnlockedMultiUnitScenarioIds: []interface{}{},
|
||||
},
|
||||
@@ -633,7 +579,7 @@ func ApiHandler(ctx *gin.Context) {
|
||||
case "payment":
|
||||
// key = "product_result"
|
||||
productResp := model.ProductListResp{
|
||||
Result: model.ProductListResult{
|
||||
Result: model.ProductListRes{
|
||||
RestrictionInfo: model.RestrictionInfo{
|
||||
Restricted: false,
|
||||
},
|
||||
@@ -657,7 +603,7 @@ func ApiHandler(ctx *gin.Context) {
|
||||
case "banner":
|
||||
// key = "banner_result"
|
||||
bannerResp := model.BannerListResp{
|
||||
Result: model.BannerListResult{
|
||||
Result: model.BannerListRes{
|
||||
TimeLimit: "2037-12-31 23:59:59",
|
||||
BannerList: []model.BannerList{
|
||||
{
|
||||
@@ -693,7 +639,7 @@ func ApiHandler(ctx *gin.Context) {
|
||||
case "notice":
|
||||
// key = "item_marquee_result"
|
||||
marqueeResp := model.NoticeMarqueeResp{
|
||||
Result: model.NoticeMarqueeResult{
|
||||
Result: model.NoticeMarqueeRes{
|
||||
ItemCount: 0,
|
||||
MarqueeList: []interface{}{},
|
||||
},
|
||||
@@ -709,7 +655,7 @@ func ApiHandler(ctx *gin.Context) {
|
||||
_, err := UserEng.Table("user_preference_m").Where("user_id = ?", ctx.GetString("userid")).Cols("user_id,unit_owning_user_id").Get(&uId, &oId)
|
||||
CheckErr(err)
|
||||
userIntroResp := model.UserNaviResp{
|
||||
Result: model.UserNaviResult{
|
||||
Result: model.UserNaviRes{
|
||||
User: model.User{
|
||||
UserID: uId,
|
||||
UnitOwningUserID: oId,
|
||||
@@ -724,7 +670,7 @@ func ApiHandler(ctx *gin.Context) {
|
||||
case "navigation":
|
||||
// key = "special_cutin_result"
|
||||
cutinResp := model.SpecialCutinResp{
|
||||
Result: model.SpecialCutinResult{
|
||||
Result: model.SpecialCutinRes{
|
||||
SpecialCutinList: []interface{}{},
|
||||
},
|
||||
Status: 200,
|
||||
@@ -756,7 +702,7 @@ func ApiHandler(ctx *gin.Context) {
|
||||
}
|
||||
|
||||
awardResp := model.AwardInfoResp{
|
||||
Result: model.AwardInfoResult{
|
||||
Result: model.AwardInfoRes{
|
||||
AwardInfo: awardsList,
|
||||
},
|
||||
Status: 200,
|
||||
@@ -788,7 +734,7 @@ func ApiHandler(ctx *gin.Context) {
|
||||
}
|
||||
|
||||
backgroundResp := model.BackgroundInfoResp{
|
||||
Result: model.BackgroundInfoResult{
|
||||
Result: model.BackgroundInfoRes{
|
||||
BackgroundInfo: backgroundsList,
|
||||
},
|
||||
Status: 200,
|
||||
@@ -807,22 +753,18 @@ func ApiHandler(ctx *gin.Context) {
|
||||
CheckErr(err)
|
||||
case "exchange":
|
||||
// key = "exchange_point_result"
|
||||
sql := `SELECT exchange_point_id FROM exchange_point_m ORDER BY exchange_point_id ASC`
|
||||
rows, err := MainEng.DB().Query(sql)
|
||||
CheckErr(err)
|
||||
defer rows.Close()
|
||||
var exchangeIds []int
|
||||
exPointsList := []model.ExchangePointList{}
|
||||
for rows.Next() {
|
||||
var eId int
|
||||
err = rows.Scan(&eId)
|
||||
CheckErr(err)
|
||||
err = MainEng.Table("exchange_point_m").Cols("exchange_point_id").OrderBy("exchange_point_id ASC").Find(&exchangeIds)
|
||||
CheckErr(err)
|
||||
for _, id := range exchangeIds {
|
||||
exPointsList = append(exPointsList, model.ExchangePointList{
|
||||
Rarity: eId,
|
||||
Rarity: id,
|
||||
ExchangePoint: 9999,
|
||||
})
|
||||
}
|
||||
exPointsResp := model.ExchangePointResp{
|
||||
Result: model.ExchangePointResult{
|
||||
Result: model.ExchangePointRes{
|
||||
ExchangePointList: exPointsList,
|
||||
},
|
||||
Status: 200,
|
||||
@@ -834,7 +776,7 @@ func ApiHandler(ctx *gin.Context) {
|
||||
case "livese":
|
||||
// key = "live_se_result"
|
||||
liveSeResp := model.LiveSeInfoResp{
|
||||
Result: model.LiveSeInfoResult{
|
||||
Result: model.LiveSeInfoRes{
|
||||
LiveSeList: []int{1, 2, 3},
|
||||
},
|
||||
Status: 200,
|
||||
@@ -846,7 +788,7 @@ func ApiHandler(ctx *gin.Context) {
|
||||
case "liveicon":
|
||||
// key = "live_icon_result"
|
||||
liveIconResp := model.LiveIconInfoResp{
|
||||
Result: model.LiveIconInfoResult{
|
||||
Result: model.LiveIconInfoRes{
|
||||
LiveNotesIconList: []int{1, 2, 3},
|
||||
},
|
||||
Status: 200,
|
||||
@@ -902,9 +844,9 @@ func ApiHandler(ctx *gin.Context) {
|
||||
}
|
||||
|
||||
museumInfoResp := model.MuseumInfoResp{
|
||||
Result: model.MuseumInfoResult{
|
||||
MuseumInfo: model.MuseumInfo{
|
||||
Parameter: model.MuseumInfoParameter{
|
||||
Result: model.MuseumInfoRes{
|
||||
MuseumInfo: model.Museum{
|
||||
Parameter: model.MuseumParameter{
|
||||
Smile: smileBuf,
|
||||
Pure: pureBuf,
|
||||
Cool: coolBuf,
|
||||
@@ -1139,7 +1081,7 @@ func ApiHandler(ctx *gin.Context) {
|
||||
// fmt.Println(results)
|
||||
b, err := json.Marshal(results)
|
||||
CheckErr(err)
|
||||
rp := model.Response{
|
||||
rp := model.ApiResp{
|
||||
ResponseData: b,
|
||||
ReleaseInfo: []interface{}{},
|
||||
StatusCode: 200,
|
||||
|
||||
+16
-15
@@ -4,6 +4,7 @@ import (
|
||||
"encoding/base64"
|
||||
"encoding/json"
|
||||
"fmt"
|
||||
"honoka-chan/config"
|
||||
"honoka-chan/encrypt"
|
||||
"honoka-chan/model"
|
||||
"net/http"
|
||||
@@ -21,12 +22,12 @@ type PkgInfo struct {
|
||||
Size int `xorm:"pkg_size"`
|
||||
}
|
||||
|
||||
func DownloadAdditionalHandler(ctx *gin.Context) {
|
||||
func DownloadAdditional(ctx *gin.Context) {
|
||||
downloadReq := model.AdditionalReq{}
|
||||
if err := json.Unmarshal([]byte(ctx.PostForm("request_data")), &downloadReq); err != nil {
|
||||
panic(err)
|
||||
}
|
||||
pkgList := []model.AdditionalResult{}
|
||||
pkgList := []model.AdditionalRes{}
|
||||
if CdnUrl != "" {
|
||||
pkgType, pkgId := downloadReq.PackageType, downloadReq.PackageID
|
||||
var pkgInfo []PkgInfo
|
||||
@@ -36,7 +37,7 @@ func DownloadAdditionalHandler(ctx *gin.Context) {
|
||||
CheckErr(err)
|
||||
|
||||
for _, pkg := range pkgInfo {
|
||||
pkgList = append(pkgList, model.AdditionalResult{
|
||||
pkgList = append(pkgList, model.AdditionalRes{
|
||||
Size: pkg.Size,
|
||||
URL: fmt.Sprintf("%s/%s/archives/%d_%d_%d.zip", CdnUrl, downloadReq.TargetOs, pkgType, pkg.Id, pkg.Order),
|
||||
})
|
||||
@@ -61,13 +62,13 @@ func DownloadAdditionalHandler(ctx *gin.Context) {
|
||||
ctx.String(http.StatusOK, string(resp))
|
||||
}
|
||||
|
||||
func DownloadBatchHandler(ctx *gin.Context) {
|
||||
func DownloadBatch(ctx *gin.Context) {
|
||||
downloadReq := model.BatchReq{}
|
||||
if err := json.Unmarshal([]byte(ctx.PostForm("request_data")), &downloadReq); err != nil {
|
||||
panic(err)
|
||||
}
|
||||
pkgList := []model.BatchResult{}
|
||||
if downloadReq.ClientVersion == PackageVersion && CdnUrl != "" {
|
||||
pkgList := []model.BatchRes{}
|
||||
if downloadReq.ClientVersion == config.PackageVersion && CdnUrl != "" {
|
||||
pkgType := downloadReq.PackageType
|
||||
var pkgInfo []PkgInfo
|
||||
err := MainEng.Table("download_m").Where(builder.NotIn("pkg_id", downloadReq.ExcludedPackageIds)).Where("pkg_type = ? AND pkg_os = ?", pkgType, downloadReq.Os).
|
||||
@@ -76,7 +77,7 @@ func DownloadBatchHandler(ctx *gin.Context) {
|
||||
CheckErr(err)
|
||||
|
||||
for _, pkg := range pkgInfo {
|
||||
pkgList = append(pkgList, model.BatchResult{
|
||||
pkgList = append(pkgList, model.BatchRes{
|
||||
Size: pkg.Size,
|
||||
URL: fmt.Sprintf("%s/%s/archives/%d_%d_%d.zip", CdnUrl, downloadReq.Os, pkgType, pkg.Id, pkg.Order),
|
||||
})
|
||||
@@ -101,13 +102,13 @@ func DownloadBatchHandler(ctx *gin.Context) {
|
||||
ctx.String(http.StatusOK, string(resp))
|
||||
}
|
||||
|
||||
func DownloadUpdateHandler(ctx *gin.Context) {
|
||||
func DownloadUpdate(ctx *gin.Context) {
|
||||
downloadReq := model.UpdateReq{}
|
||||
if err := json.Unmarshal([]byte(ctx.PostForm("request_data")), &downloadReq); err != nil {
|
||||
panic(err)
|
||||
}
|
||||
pkgList := []model.UpdateResult{}
|
||||
if downloadReq.ExternalVersion != PackageVersion && CdnUrl != "" {
|
||||
pkgList := []model.UpdateRes{}
|
||||
if downloadReq.ExternalVersion != config.PackageVersion && CdnUrl != "" {
|
||||
pkgType := 99
|
||||
var pkgInfo []PkgInfo
|
||||
err := MainEng.Table("download_m").Where("pkg_type = ? AND pkg_os = ?", pkgType, downloadReq.TargetOs).
|
||||
@@ -116,10 +117,10 @@ func DownloadUpdateHandler(ctx *gin.Context) {
|
||||
CheckErr(err)
|
||||
|
||||
for _, pkg := range pkgInfo {
|
||||
pkgList = append(pkgList, model.UpdateResult{
|
||||
pkgList = append(pkgList, model.UpdateRes{
|
||||
Size: pkg.Size,
|
||||
URL: fmt.Sprintf("%s/%s/archives/%d_%d_%d.zip", CdnUrl, downloadReq.TargetOs, pkgType, pkg.Id, pkg.Order),
|
||||
Version: PackageVersion,
|
||||
Version: config.PackageVersion,
|
||||
})
|
||||
}
|
||||
}
|
||||
@@ -142,7 +143,7 @@ func DownloadUpdateHandler(ctx *gin.Context) {
|
||||
ctx.String(http.StatusOK, string(resp))
|
||||
}
|
||||
|
||||
func DownloadUrlHandler(ctx *gin.Context) {
|
||||
func DownloadUrl(ctx *gin.Context) {
|
||||
// Extract SQL: SELECT CAST(pkg_type AS TEXT) || '_' || CAST(pkg_id AS TEXT) || '_' || CAST(pkg_order AS TEXT) || '.zip' AS zip_name FROM download_m ORDER BY pkg_type ASC,pkg_id ASC, pkg_order ASC;
|
||||
// Extract Cmd: cat list.txt | while read line; do; unzip -o $line; done
|
||||
downloadReq := model.UrlReq{}
|
||||
@@ -154,7 +155,7 @@ func DownloadUrlHandler(ctx *gin.Context) {
|
||||
urlList = append(urlList, fmt.Sprintf("%s/%s/extracted/%s", CdnUrl, downloadReq.Os, strings.ReplaceAll(v, "\\", "")))
|
||||
}
|
||||
urlResp := model.UrlResp{
|
||||
ResponseData: model.UrlResult{
|
||||
ResponseData: model.UrlRes{
|
||||
UrlList: urlList,
|
||||
},
|
||||
ReleaseInfo: []interface{}{},
|
||||
@@ -173,7 +174,7 @@ func DownloadUrlHandler(ctx *gin.Context) {
|
||||
ctx.String(http.StatusOK, string(resp))
|
||||
}
|
||||
|
||||
func DownloadEventHandler(ctx *gin.Context) {
|
||||
func DownloadEvent(ctx *gin.Context) {
|
||||
eventResp := model.EventResp{
|
||||
ResponseData: []interface{}{},
|
||||
ReleaseInfo: []interface{}{},
|
||||
|
||||
+1
-1
@@ -12,7 +12,7 @@ import (
|
||||
"github.com/gin-gonic/gin"
|
||||
)
|
||||
|
||||
func EventListHandler(ctx *gin.Context) {
|
||||
func EventList(ctx *gin.Context) {
|
||||
targets := []model.TargetList{}
|
||||
for i := 0; i < 6; i++ {
|
||||
targets = append(targets, model.TargetList{
|
||||
|
||||
+1
-1
@@ -12,7 +12,7 @@ import (
|
||||
"github.com/gin-gonic/gin"
|
||||
)
|
||||
|
||||
func GdprHandler(ctx *gin.Context) {
|
||||
func Gdpr(ctx *gin.Context) {
|
||||
gdprResp := model.GdprResp{
|
||||
ResponseData: model.GdprRes{
|
||||
EnableGdpr: true,
|
||||
|
||||
+4
-6
@@ -7,12 +7,10 @@ import (
|
||||
)
|
||||
|
||||
var (
|
||||
// nonce = 0
|
||||
PackageVersion = "97.4.6"
|
||||
CdnUrl string
|
||||
ErrorMsg = `{"code":20001,"message":""}`
|
||||
MainEng *xorm.Engine
|
||||
UserEng *xorm.Engine
|
||||
CdnUrl string
|
||||
ErrorMsg = `{"code":20001,"message":""}`
|
||||
MainEng *xorm.Engine
|
||||
UserEng *xorm.Engine
|
||||
)
|
||||
|
||||
func init() {
|
||||
|
||||
+2
-2
@@ -12,7 +12,7 @@ import (
|
||||
"github.com/gin-gonic/gin"
|
||||
)
|
||||
|
||||
func LBonusExecuteHandler(ctx *gin.Context) {
|
||||
func LBonusExecute(ctx *gin.Context) {
|
||||
weeks := map[string]int{
|
||||
"Monday": 1,
|
||||
"Tuesday": 2,
|
||||
@@ -142,7 +142,7 @@ func LBonusExecuteHandler(ctx *gin.Context) {
|
||||
},
|
||||
},
|
||||
LimitedEffortBox: []interface{}{},
|
||||
MuseumInfo: model.MuseumInfo{},
|
||||
MuseumInfo: model.Museum{},
|
||||
ServerTimestamp: time.Now().Unix(),
|
||||
PresentCnt: 0,
|
||||
},
|
||||
|
||||
+183
-207
@@ -18,13 +18,7 @@ import (
|
||||
"github.com/tidwall/gjson"
|
||||
)
|
||||
|
||||
type GameOverResp struct {
|
||||
ResponseData []interface{} `json:"response_data"`
|
||||
ReleaseInfo []interface{} `json:"release_info"`
|
||||
StatusCode int `json:"status_code"`
|
||||
}
|
||||
|
||||
func PartyListHandler(ctx *gin.Context) {
|
||||
func PartyList(ctx *gin.Context) {
|
||||
resp := utils.ReadAllText("assets/partylist.json")
|
||||
|
||||
nonce := ctx.GetInt("nonce")
|
||||
@@ -37,7 +31,7 @@ func PartyListHandler(ctx *gin.Context) {
|
||||
ctx.String(http.StatusOK, resp)
|
||||
}
|
||||
|
||||
func PlayLiveHandler(ctx *gin.Context) {
|
||||
func PlayLive(ctx *gin.Context) {
|
||||
playReq := model.PlayReq{}
|
||||
err := json.Unmarshal([]byte(ctx.GetString("request_data")), &playReq)
|
||||
CheckErr(err)
|
||||
@@ -402,44 +396,38 @@ func PlayLiveHandler(ctx *gin.Context) {
|
||||
},
|
||||
})
|
||||
|
||||
resp := model.PlayResponseData{
|
||||
RankInfo: ranks,
|
||||
EnergyFullTime: "2023-03-20 01:28:55",
|
||||
OverMaxEnergy: 0,
|
||||
AvailableLiveResume: false,
|
||||
LiveList: lives,
|
||||
IsMarathonEvent: false,
|
||||
MarathonEventID: nil,
|
||||
NoSkill: false,
|
||||
CanActivateEffect: true,
|
||||
ServerTimestamp: time.Now().Unix(),
|
||||
playResp := model.PlayResp{
|
||||
ResponseData: model.PlayRes{
|
||||
RankInfo: ranks,
|
||||
EnergyFullTime: "2023-03-20 01:28:55",
|
||||
OverMaxEnergy: 0,
|
||||
AvailableLiveResume: false,
|
||||
LiveList: lives,
|
||||
IsMarathonEvent: false,
|
||||
MarathonEventID: nil,
|
||||
NoSkill: false,
|
||||
CanActivateEffect: true,
|
||||
ServerTimestamp: time.Now().Unix(),
|
||||
},
|
||||
ReleaseInfo: []interface{}{},
|
||||
StatusCode: 200,
|
||||
}
|
||||
|
||||
m, err := json.Marshal(resp)
|
||||
resp, err := json.Marshal(playResp)
|
||||
CheckErr(err)
|
||||
|
||||
res := model.Response{
|
||||
ResponseData: m,
|
||||
ReleaseInfo: []interface{}{},
|
||||
StatusCode: 200,
|
||||
}
|
||||
|
||||
mm, err := json.Marshal(res)
|
||||
CheckErr(err)
|
||||
// fmt.Println(string(mm))
|
||||
|
||||
nonce := ctx.GetInt("nonce")
|
||||
nonce++
|
||||
|
||||
ctx.Header("user_id", ctx.GetString("userid"))
|
||||
ctx.Header("authorize", fmt.Sprintf("consumerKey=lovelive_test&timeStamp=%d&version=1.1&token=%s&nonce=%d&user_id=%s&requestTimeStamp=%d", time.Now().Unix(), ctx.GetString("token"), nonce, ctx.GetString("userid"), ctx.GetInt64("req_time")))
|
||||
ctx.Header("X-Message-Sign", base64.StdEncoding.EncodeToString(encrypt.RSA_Sign_SHA1(mm, "privatekey.pem")))
|
||||
ctx.Header("X-Message-Sign", base64.StdEncoding.EncodeToString(encrypt.RSA_Sign_SHA1(resp, "privatekey.pem")))
|
||||
|
||||
ctx.String(http.StatusOK, string(mm))
|
||||
ctx.String(http.StatusOK, string(resp))
|
||||
}
|
||||
|
||||
func GameOverHandler(ctx *gin.Context) {
|
||||
overResp := GameOverResp{
|
||||
func GameOver(ctx *gin.Context) {
|
||||
overResp := model.GameOverResp{
|
||||
ResponseData: []interface{}{},
|
||||
ReleaseInfo: []interface{}{},
|
||||
StatusCode: 200,
|
||||
@@ -457,7 +445,7 @@ func GameOverHandler(ctx *gin.Context) {
|
||||
ctx.String(http.StatusOK, string(resp))
|
||||
}
|
||||
|
||||
func PlayScoreHandler(ctx *gin.Context) {
|
||||
func PlayScore(ctx *gin.Context) {
|
||||
playScoreReq := model.PlayScoreReq{}
|
||||
err := json.Unmarshal([]byte(ctx.GetString("request_data")), &playScoreReq)
|
||||
CheckErr(err)
|
||||
@@ -506,56 +494,50 @@ func PlayScoreHandler(ctx *gin.Context) {
|
||||
RankMax: 0,
|
||||
})
|
||||
|
||||
resp := model.PlayScoreResponseData{
|
||||
On: model.On{
|
||||
HasRecord: false,
|
||||
LiveInfo: model.LiveInfo{
|
||||
LiveDifficultyID: difficultyId,
|
||||
IsRandom: false,
|
||||
AcFlag: ac_flag,
|
||||
SwingFlag: swing_flag,
|
||||
NotesList: notes,
|
||||
playResp := model.PlayScoreResp{
|
||||
ResponseData: model.PlayScoreRes{
|
||||
On: model.On{
|
||||
HasRecord: false,
|
||||
LiveInfo: model.LiveInfo{
|
||||
LiveDifficultyID: difficultyId,
|
||||
IsRandom: false,
|
||||
AcFlag: ac_flag,
|
||||
SwingFlag: swing_flag,
|
||||
NotesList: notes,
|
||||
},
|
||||
},
|
||||
},
|
||||
Off: model.Off{
|
||||
HasRecord: false,
|
||||
LiveInfo: model.LiveInfo{
|
||||
LiveDifficultyID: difficultyId,
|
||||
IsRandom: false,
|
||||
AcFlag: ac_flag,
|
||||
SwingFlag: swing_flag,
|
||||
NotesList: notes,
|
||||
Off: model.Off{
|
||||
HasRecord: false,
|
||||
LiveInfo: model.LiveInfo{
|
||||
LiveDifficultyID: difficultyId,
|
||||
IsRandom: false,
|
||||
AcFlag: ac_flag,
|
||||
SwingFlag: swing_flag,
|
||||
NotesList: notes,
|
||||
},
|
||||
},
|
||||
RankInfo: ranks,
|
||||
CanActivateEffect: true,
|
||||
ServerTimestamp: int(time.Now().Unix()),
|
||||
},
|
||||
RankInfo: ranks,
|
||||
CanActivateEffect: true,
|
||||
ServerTimestamp: int(time.Now().Unix()),
|
||||
ReleaseInfo: []interface{}{},
|
||||
StatusCode: 200,
|
||||
}
|
||||
|
||||
m, err := json.Marshal(resp)
|
||||
resp, err := json.Marshal(playResp)
|
||||
CheckErr(err)
|
||||
|
||||
res := model.Response{
|
||||
ResponseData: m,
|
||||
ReleaseInfo: []interface{}{},
|
||||
StatusCode: 200,
|
||||
}
|
||||
|
||||
mm, err := json.Marshal(res)
|
||||
CheckErr(err)
|
||||
// fmt.Println(string(mm))
|
||||
|
||||
nonce := ctx.GetInt("nonce")
|
||||
nonce++
|
||||
|
||||
ctx.Header("user_id", ctx.GetString("userid"))
|
||||
ctx.Header("authorize", fmt.Sprintf("consumerKey=lovelive_test&timeStamp=%d&version=1.1&token=%s&nonce=%d&user_id=%s&requestTimeStamp=%d", time.Now().Unix(), ctx.GetString("token"), nonce, ctx.GetString("userid"), ctx.GetInt64("req_time")))
|
||||
ctx.Header("X-Message-Sign", base64.StdEncoding.EncodeToString(encrypt.RSA_Sign_SHA1(mm, "privatekey.pem")))
|
||||
ctx.Header("X-Message-Sign", base64.StdEncoding.EncodeToString(encrypt.RSA_Sign_SHA1(resp, "privatekey.pem")))
|
||||
|
||||
ctx.String(http.StatusOK, string(mm))
|
||||
ctx.String(http.StatusOK, string(resp))
|
||||
}
|
||||
|
||||
func PlayRewardHandler(ctx *gin.Context) {
|
||||
func PlayReward(ctx *gin.Context) {
|
||||
playRewardReq := model.PlayRewardReq{}
|
||||
err := json.Unmarshal([]byte(ctx.GetString("request_data")), &playRewardReq)
|
||||
CheckErr(err)
|
||||
@@ -578,172 +560,166 @@ func PlayRewardHandler(ctx *gin.Context) {
|
||||
CheckErr(err)
|
||||
|
||||
totalScore := playRewardReq.ScoreSmile + playRewardReq.ScoreCool + playRewardReq.ScoreCute
|
||||
resp := model.RewardResponseData{
|
||||
LiveInfo: []model.RewardLiveInfo{
|
||||
{
|
||||
LiveDifficultyID: difficultyId,
|
||||
IsRandom: false,
|
||||
AcFlag: ac_flag,
|
||||
SwingFlag: swing_flag,
|
||||
playResp := model.RewardResp{
|
||||
ResponseData: model.RewardRes{
|
||||
LiveInfo: []model.RewardLiveInfo{
|
||||
{
|
||||
LiveDifficultyID: difficultyId,
|
||||
IsRandom: false,
|
||||
AcFlag: ac_flag,
|
||||
SwingFlag: swing_flag,
|
||||
},
|
||||
},
|
||||
},
|
||||
TotalLove: 0,
|
||||
IsHighScore: true,
|
||||
HiScore: totalScore,
|
||||
BaseRewardInfo: model.BaseRewardInfo{
|
||||
PlayerExp: 830,
|
||||
PlayerExpUnitMax: model.PlayerExpUnitMax{
|
||||
Before: 900,
|
||||
After: 900,
|
||||
TotalLove: 0,
|
||||
IsHighScore: true,
|
||||
HiScore: totalScore,
|
||||
BaseRewardInfo: model.BaseRewardInfo{
|
||||
PlayerExp: 830,
|
||||
PlayerExpUnitMax: model.PlayerExpUnitMax{
|
||||
Before: 900,
|
||||
After: 900,
|
||||
},
|
||||
PlayerExpFriendMax: model.PlayerExpFriendMax{
|
||||
Before: 99,
|
||||
After: 99,
|
||||
},
|
||||
PlayerExpLpMax: model.PlayerExpLpMax{
|
||||
Before: 417,
|
||||
After: 417,
|
||||
},
|
||||
GameCoin: 4500,
|
||||
GameCoinRewardBoxFlag: false,
|
||||
SocialPoint: 10,
|
||||
},
|
||||
PlayerExpFriendMax: model.PlayerExpFriendMax{
|
||||
Before: 99,
|
||||
After: 99,
|
||||
RewardUnitList: model.RewardUnitList{
|
||||
LiveClear: []model.LiveClear{},
|
||||
LiveRank: []model.LiveRank{},
|
||||
LiveCombo: []interface{}{},
|
||||
},
|
||||
PlayerExpLpMax: model.PlayerExpLpMax{
|
||||
Before: 417,
|
||||
After: 417,
|
||||
UnlockedSubscenarioIds: []interface{}{},
|
||||
UnlockedMultiUnitScenarioIds: []interface{}{},
|
||||
EffortPoint: []model.EffortPoint{},
|
||||
IsEffortPointVisible: false,
|
||||
LimitedEffortBox: []interface{}{},
|
||||
UnitList: unitsList,
|
||||
BeforeUserInfo: model.BeforeUserInfo{
|
||||
Level: 1028,
|
||||
Exp: 28823566,
|
||||
PreviousExp: 27734700,
|
||||
NextExp: 28941885,
|
||||
GameCoin: 86505544,
|
||||
SnsCoin: 49,
|
||||
FreeSnsCoin: 48,
|
||||
PaidSnsCoin: 1,
|
||||
SocialPoint: 1438165,
|
||||
UnitMax: 5000,
|
||||
WaitingUnitMax: 1000,
|
||||
CurrentEnergy: 392,
|
||||
EnergyMax: 417,
|
||||
TrainingEnergy: 9,
|
||||
TrainingEnergyMax: 10,
|
||||
EnergyFullTime: "2023-03-20 01:28:55",
|
||||
LicenseLiveEnergyRecoverlyTime: 60,
|
||||
FriendMax: 99,
|
||||
TutorialState: -1,
|
||||
OverMaxEnergy: 0,
|
||||
UnlockRandomLiveMuse: 1,
|
||||
UnlockRandomLiveAqours: 1,
|
||||
},
|
||||
GameCoin: 4500,
|
||||
GameCoinRewardBoxFlag: false,
|
||||
SocialPoint: 10,
|
||||
},
|
||||
RewardUnitList: model.RewardUnitList{
|
||||
LiveClear: []model.LiveClear{},
|
||||
LiveRank: []model.LiveRank{},
|
||||
LiveCombo: []interface{}{},
|
||||
},
|
||||
UnlockedSubscenarioIds: []interface{}{},
|
||||
UnlockedMultiUnitScenarioIds: []interface{}{},
|
||||
EffortPoint: []model.EffortPoint{},
|
||||
IsEffortPointVisible: false,
|
||||
LimitedEffortBox: []interface{}{},
|
||||
UnitList: unitsList,
|
||||
BeforeUserInfo: model.BeforeUserInfo{
|
||||
Level: 1028,
|
||||
Exp: 28823566,
|
||||
PreviousExp: 27734700,
|
||||
NextExp: 28941885,
|
||||
GameCoin: 86505544,
|
||||
SnsCoin: 49,
|
||||
FreeSnsCoin: 48,
|
||||
PaidSnsCoin: 1,
|
||||
SocialPoint: 1438165,
|
||||
UnitMax: 5000,
|
||||
WaitingUnitMax: 1000,
|
||||
CurrentEnergy: 392,
|
||||
EnergyMax: 417,
|
||||
TrainingEnergy: 9,
|
||||
TrainingEnergyMax: 10,
|
||||
EnergyFullTime: "2023-03-20 01:28:55",
|
||||
LicenseLiveEnergyRecoverlyTime: 60,
|
||||
FriendMax: 99,
|
||||
TutorialState: -1,
|
||||
OverMaxEnergy: 0,
|
||||
UnlockRandomLiveMuse: 1,
|
||||
UnlockRandomLiveAqours: 1,
|
||||
},
|
||||
AfterUserInfo: model.AfterUserInfo{
|
||||
Level: 1028,
|
||||
Exp: 28824396,
|
||||
PreviousExp: 27734700,
|
||||
NextExp: 28941885,
|
||||
GameCoin: 86520044,
|
||||
SnsCoin: 50,
|
||||
FreeSnsCoin: 49,
|
||||
PaidSnsCoin: 1,
|
||||
SocialPoint: 1438375,
|
||||
UnitMax: 5000,
|
||||
WaitingUnitMax: 1000,
|
||||
CurrentEnergy: 392,
|
||||
EnergyMax: 417,
|
||||
TrainingEnergy: 9,
|
||||
TrainingEnergyMax: 10,
|
||||
EnergyFullTime: "2023-03-20 01:28:55",
|
||||
LicenseLiveEnergyRecoverlyTime: 60,
|
||||
FriendMax: 99,
|
||||
TutorialState: -1,
|
||||
OverMaxEnergy: 0,
|
||||
UnlockRandomLiveMuse: 1,
|
||||
UnlockRandomLiveAqours: 1,
|
||||
},
|
||||
NextLevelInfo: []model.NextLevelInfo{
|
||||
{
|
||||
Level: 1028,
|
||||
FromExp: 28823566,
|
||||
AfterUserInfo: model.AfterUserInfo{
|
||||
Level: 1028,
|
||||
Exp: 28824396,
|
||||
PreviousExp: 27734700,
|
||||
NextExp: 28941885,
|
||||
GameCoin: 86520044,
|
||||
SnsCoin: 50,
|
||||
FreeSnsCoin: 49,
|
||||
PaidSnsCoin: 1,
|
||||
SocialPoint: 1438375,
|
||||
UnitMax: 5000,
|
||||
WaitingUnitMax: 1000,
|
||||
CurrentEnergy: 392,
|
||||
EnergyMax: 417,
|
||||
TrainingEnergy: 9,
|
||||
TrainingEnergyMax: 10,
|
||||
EnergyFullTime: "2023-03-20 01:28:55",
|
||||
LicenseLiveEnergyRecoverlyTime: 60,
|
||||
FriendMax: 99,
|
||||
TutorialState: -1,
|
||||
OverMaxEnergy: 0,
|
||||
UnlockRandomLiveMuse: 1,
|
||||
UnlockRandomLiveAqours: 1,
|
||||
},
|
||||
},
|
||||
GoalAccompInfo: model.GoalAccompInfo{
|
||||
AchievedIds: []interface{}{},
|
||||
Rewards: []interface{}{},
|
||||
},
|
||||
SpecialRewardInfo: []interface{}{},
|
||||
EventInfo: []interface{}{},
|
||||
DailyRewardInfo: []interface{}{},
|
||||
CanSendFriendRequest: false,
|
||||
UsingBuffInfo: []interface{}{},
|
||||
ClassSystem: model.ClassSystem{
|
||||
RankInfo: model.RewardRankInfo{
|
||||
BeforeClassRankID: 10,
|
||||
AfterClassRankID: 10,
|
||||
RankUpDate: "2020-02-12 11:57:15",
|
||||
NextLevelInfo: []model.NextLevelInfo{
|
||||
{
|
||||
Level: 1028,
|
||||
FromExp: 28823566,
|
||||
},
|
||||
},
|
||||
CompleteFlag: false,
|
||||
IsOpened: true,
|
||||
IsVisible: true,
|
||||
GoalAccompInfo: model.GoalAccompInfo{
|
||||
AchievedIds: []interface{}{},
|
||||
Rewards: []interface{}{},
|
||||
},
|
||||
SpecialRewardInfo: []interface{}{},
|
||||
EventInfo: []interface{}{},
|
||||
DailyRewardInfo: []interface{}{},
|
||||
CanSendFriendRequest: false,
|
||||
UsingBuffInfo: []interface{}{},
|
||||
ClassSystem: model.ClassSystem{
|
||||
RankInfo: model.RewardRankInfo{
|
||||
BeforeClassRankID: 10,
|
||||
AfterClassRankID: 10,
|
||||
RankUpDate: "2020-02-12 11:57:15",
|
||||
},
|
||||
CompleteFlag: false,
|
||||
IsOpened: true,
|
||||
IsVisible: true,
|
||||
},
|
||||
AccomplishedAchievementList: []model.AccomplishedAchievementList{},
|
||||
UnaccomplishedAchievementCnt: 15,
|
||||
AddedAchievementList: []interface{}{},
|
||||
MuseumInfo: model.Museum{},
|
||||
UnitSupportList: []model.RewardUnitSupportList{},
|
||||
ServerTimestamp: 1679238066,
|
||||
PresentCnt: 2159,
|
||||
},
|
||||
AccomplishedAchievementList: []model.AccomplishedAchievementList{},
|
||||
UnaccomplishedAchievementCnt: 15,
|
||||
AddedAchievementList: []interface{}{},
|
||||
MuseumInfo: model.RewardMuseumInfo{},
|
||||
UnitSupportList: []model.RewardUnitSupportList{},
|
||||
ServerTimestamp: 1679238066,
|
||||
PresentCnt: 2159,
|
||||
ReleaseInfo: []interface{}{},
|
||||
StatusCode: 200,
|
||||
}
|
||||
|
||||
if playRewardReq.MaxCombo > s_rank_combo {
|
||||
resp.ComboRank = 1
|
||||
playResp.ResponseData.ComboRank = 1
|
||||
} else if playRewardReq.MaxCombo > a_rank_combo {
|
||||
resp.ComboRank = 2
|
||||
playResp.ResponseData.ComboRank = 2
|
||||
} else if playRewardReq.MaxCombo > b_rank_combo {
|
||||
resp.ComboRank = 3
|
||||
playResp.ResponseData.ComboRank = 3
|
||||
} else if playRewardReq.MaxCombo > c_rank_combo {
|
||||
resp.ComboRank = 4
|
||||
playResp.ResponseData.ComboRank = 4
|
||||
} else {
|
||||
resp.ComboRank = 5
|
||||
playResp.ResponseData.ComboRank = 5
|
||||
}
|
||||
|
||||
if totalScore > s_rank_score {
|
||||
resp.Rank = 1
|
||||
playResp.ResponseData.Rank = 1
|
||||
} else if totalScore > a_rank_score {
|
||||
resp.Rank = 2
|
||||
playResp.ResponseData.Rank = 2
|
||||
} else if totalScore > b_rank_score {
|
||||
resp.Rank = 3
|
||||
playResp.ResponseData.Rank = 3
|
||||
} else if totalScore > c_rank_score {
|
||||
resp.Rank = 4
|
||||
playResp.ResponseData.Rank = 4
|
||||
} else {
|
||||
resp.Rank = 5
|
||||
playResp.ResponseData.Rank = 5
|
||||
}
|
||||
|
||||
m, err := json.Marshal(resp)
|
||||
resp, err := json.Marshal(playResp)
|
||||
CheckErr(err)
|
||||
|
||||
res := model.Response{
|
||||
ResponseData: m,
|
||||
ReleaseInfo: []interface{}{},
|
||||
StatusCode: 200,
|
||||
}
|
||||
|
||||
mm, err := json.Marshal(res)
|
||||
CheckErr(err)
|
||||
// fmt.Println(string(mm))
|
||||
|
||||
nonce := ctx.GetInt("nonce")
|
||||
nonce++
|
||||
|
||||
ctx.Header("user_id", ctx.GetString("userid"))
|
||||
ctx.Header("authorize", fmt.Sprintf("consumerKey=lovelive_test&timeStamp=%d&version=1.1&token=%s&nonce=%d&user_id=%s&requestTimeStamp=%d", time.Now().Unix(), ctx.GetString("token"), nonce, ctx.GetString("userid"), ctx.GetInt64("req_time")))
|
||||
ctx.Header("X-Message-Sign", base64.StdEncoding.EncodeToString(encrypt.RSA_Sign_SHA1(mm, "privatekey.pem")))
|
||||
ctx.Header("X-Message-Sign", base64.StdEncoding.EncodeToString(encrypt.RSA_Sign_SHA1(resp, "privatekey.pem")))
|
||||
|
||||
ctx.String(http.StatusOK, string(mm))
|
||||
ctx.String(http.StatusOK, string(resp))
|
||||
}
|
||||
|
||||
@@ -32,7 +32,7 @@ type MultiUnitStartUpReq struct {
|
||||
CommandNum string `json:"commandNum"`
|
||||
}
|
||||
|
||||
func MultiUnitStartUpHandler(ctx *gin.Context) {
|
||||
func MultiUnitStartUp(ctx *gin.Context) {
|
||||
startReq := MultiUnitStartUpReq{}
|
||||
err := json.Unmarshal([]byte(ctx.PostForm("request_data")), &startReq)
|
||||
CheckErr(err)
|
||||
|
||||
+3
-3
@@ -12,7 +12,7 @@ import (
|
||||
"github.com/gin-gonic/gin"
|
||||
)
|
||||
|
||||
func NoticeFriendVarietyHandler(ctx *gin.Context) {
|
||||
func NoticeFriendVariety(ctx *gin.Context) {
|
||||
noticeResp := model.NoticeFriendVarietyResp{
|
||||
ResponseData: model.NoticeFriendVarietyRes{
|
||||
ItemCount: 1,
|
||||
@@ -35,7 +35,7 @@ func NoticeFriendVarietyHandler(ctx *gin.Context) {
|
||||
ctx.String(http.StatusOK, string(resp))
|
||||
}
|
||||
|
||||
func NoticeFriendGreetingHandler(ctx *gin.Context) {
|
||||
func NoticeFriendGreeting(ctx *gin.Context) {
|
||||
noticeResp := model.NoticeFriendGreetingResp{
|
||||
ResponseData: model.NoticeFriendGreetingRes{
|
||||
NextId: 0,
|
||||
@@ -58,7 +58,7 @@ func NoticeFriendGreetingHandler(ctx *gin.Context) {
|
||||
ctx.String(http.StatusOK, string(resp))
|
||||
}
|
||||
|
||||
func NoticeUserGreetingHandler(ctx *gin.Context) {
|
||||
func NoticeUserGreeting(ctx *gin.Context) {
|
||||
noticeResp := model.NoticeUserGreetingResp{
|
||||
ResponseData: model.NoticeUserGreetingRes{
|
||||
ItemCount: 0,
|
||||
|
||||
+1
-1
@@ -35,7 +35,7 @@ type ProductData struct {
|
||||
ServerTimestamp int64 `json:"server_timestamp"`
|
||||
}
|
||||
|
||||
func ProductListHandler(ctx *gin.Context) {
|
||||
func ProductList(ctx *gin.Context) {
|
||||
prodReesp := ProductResp{
|
||||
ResponseData: ProductData{
|
||||
RestrictionInfo: RestrictionInfo{
|
||||
|
||||
@@ -12,7 +12,7 @@ import (
|
||||
"github.com/gin-gonic/gin"
|
||||
)
|
||||
|
||||
func PersonalNoticeHandler(ctx *gin.Context) {
|
||||
func PersonalNotice(ctx *gin.Context) {
|
||||
noticeResp := model.PersonalNoticeResp{
|
||||
ResponseData: model.PersonalNoticeRes{
|
||||
HasNotice: false,
|
||||
|
||||
+12
-12
@@ -88,7 +88,7 @@ type InitializeResp struct {
|
||||
WeixinKey string `json:"weixin_key"`
|
||||
}
|
||||
|
||||
func ActiveHandler(ctx *gin.Context) {
|
||||
func Active(ctx *gin.Context) {
|
||||
// body, err := io.ReadAll(ctx.Request.Body)
|
||||
// CheckErr(err)
|
||||
// defer ctx.Request.Body.Close()
|
||||
@@ -98,7 +98,7 @@ func ActiveHandler(ctx *gin.Context) {
|
||||
ctx.String(http.StatusOK, `{ "code": 0, "msg": "ok", "data": { "message": "ok", "result": 0 } }`)
|
||||
}
|
||||
|
||||
func PublicKeyHandler(ctx *gin.Context) {
|
||||
func PublicKey(ctx *gin.Context) {
|
||||
publicKey := utils.ReadAllText("publickey.pem")
|
||||
publicKey = strings.ReplaceAll(publicKey, "\n", "")
|
||||
publicKey = strings.ReplaceAll(publicKey, "-----BEGIN PUBLIC KEY-----", "")
|
||||
@@ -110,7 +110,7 @@ func PublicKeyHandler(ctx *gin.Context) {
|
||||
ctx.String(http.StatusOK, resp)
|
||||
}
|
||||
|
||||
func HandshakeHandler(ctx *gin.Context) {
|
||||
func Handshake(ctx *gin.Context) {
|
||||
body, err := io.ReadAll(ctx.Request.Body)
|
||||
CheckErr(err)
|
||||
defer ctx.Request.Body.Close()
|
||||
@@ -148,7 +148,7 @@ func HandshakeHandler(ctx *gin.Context) {
|
||||
ctx.String(http.StatusOK, resp)
|
||||
}
|
||||
|
||||
func InitializeHandler(ctx *gin.Context) {
|
||||
func Initialize(ctx *gin.Context) {
|
||||
// body, err := io.ReadAll(ctx.Request.Body)
|
||||
// CheckErr(err)
|
||||
// defer ctx.Request.Body.Close()
|
||||
@@ -191,13 +191,13 @@ func InitializeHandler(ctx *gin.Context) {
|
||||
ctx.String(http.StatusOK, resp)
|
||||
}
|
||||
|
||||
func GetCodeHandler(ctx *gin.Context) {
|
||||
func GetCode(ctx *gin.Context) {
|
||||
resp := `{ "code": 0, "msg": "ok", "data": { "codeArray": [ { "btntext": "好的", "code": "-10264022", "msg_from": 2, "text": "", "title": "短信验证码被阻止", "type": 1 }, { "btntext": " ", "code": "-10869623", "msg_from": 2, "text": "", "title": "网络连接失败,无法一键登录", "type": 2 }, { "btntext": " ", "code": "10298300", "msg_from": 2, "text": "", "title": " ", "type": 3 }, { "btntext": "", "code": "10298311", "msg_from": 2, "text": "", "title": "", "type": 3 }, { "btntext": " ", "code": "10298312", "msg_from": 2, "text": "", "title": " ", "type": 3 }, { "btntext": " ", "code": "10298313", "msg_from": 2, "text": "", "title": " ", "type": 1 }, { "btntext": " ", "code": "10298321", "msg_from": 2, "text": "", "title": " ", "type": 3 }, { "btntext": " ", "code": "10298322", "msg_from": 2, "text": "", "title": " ", "type": 3 } ], "codeVersion": "1.0.5" } }`
|
||||
ctx.Header("Content-Type", "text/html;charset=utf-8")
|
||||
ctx.String(http.StatusOK, resp)
|
||||
}
|
||||
|
||||
func LoginAutoHandler(ctx *gin.Context) {
|
||||
func LoginAuto(ctx *gin.Context) {
|
||||
body, err := io.ReadAll(ctx.Request.Body)
|
||||
CheckErr(err)
|
||||
defer ctx.Request.Body.Close()
|
||||
@@ -265,7 +265,7 @@ func LoginAutoHandler(ctx *gin.Context) {
|
||||
ctx.String(http.StatusOK, resp)
|
||||
}
|
||||
|
||||
func LoginAreaHandler(ctx *gin.Context) {
|
||||
func LoginArea(ctx *gin.Context) {
|
||||
userId := ctx.PostForm("userid")
|
||||
if userId != "" {
|
||||
// fmt.Println(userId)
|
||||
@@ -275,7 +275,7 @@ func LoginAreaHandler(ctx *gin.Context) {
|
||||
}
|
||||
}
|
||||
|
||||
func AccountLoginHandler(ctx *gin.Context) {
|
||||
func AccountLogin(ctx *gin.Context) {
|
||||
body, err := io.ReadAll(ctx.Request.Body)
|
||||
CheckErr(err)
|
||||
defer ctx.Request.Body.Close()
|
||||
@@ -434,7 +434,7 @@ func AccountLoginHandler(ctx *gin.Context) {
|
||||
ctx.String(http.StatusOK, resp)
|
||||
}
|
||||
|
||||
func ReportRoleHandler(ctx *gin.Context) {
|
||||
func ReportRole(ctx *gin.Context) {
|
||||
// body, err := io.ReadAll(ctx.Request.Body)
|
||||
// CheckErr(err)
|
||||
// defer ctx.Request.Body.Close()
|
||||
@@ -469,13 +469,13 @@ func ReportRoleHandler(ctx *gin.Context) {
|
||||
ctx.String(http.StatusOK, resp)
|
||||
}
|
||||
|
||||
func GetProductListHandler(ctx *gin.Context) {
|
||||
func GetProductList(ctx *gin.Context) {
|
||||
resp := `{ "code": 0, "msg": "ok", "data": { "message": [ ], "result": 0 } }`
|
||||
ctx.Header("Content-Type", "text/html;charset=utf-8")
|
||||
ctx.String(http.StatusOK, resp)
|
||||
}
|
||||
|
||||
func GuestStatusHandler(ctx *gin.Context) {
|
||||
func GuestStatus(ctx *gin.Context) {
|
||||
resp := `{"code":0,"msg":"ok","data":{"disablead":1,"loginswitch":1,"message":"ok","result":0}}`
|
||||
ctx.Header("Content-Type", "text/html;charset=utf-8")
|
||||
ctx.String(http.StatusOK, resp)
|
||||
@@ -500,7 +500,7 @@ func ReportApp(ctx *gin.Context) {
|
||||
ctx.String(http.StatusOK, resp)
|
||||
}
|
||||
|
||||
func AgreementHandler(ctx *gin.Context) {
|
||||
func Agreement(ctx *gin.Context) {
|
||||
resp := `{ "return_code": 0, "error_type": 0, "return_message": "", "data": { } }`
|
||||
ctx.Header("Content-Type", "text/html;charset=utf-8")
|
||||
ctx.String(http.StatusOK, resp)
|
||||
|
||||
+2
-2
@@ -33,7 +33,7 @@ type ScenarioReq struct {
|
||||
ScenarioID int `json:"scenario_id"`
|
||||
}
|
||||
|
||||
func ScenarioStartupHandler(ctx *gin.Context) {
|
||||
func ScenarioStartup(ctx *gin.Context) {
|
||||
startReq := ScenarioReq{}
|
||||
err := json.Unmarshal([]byte(ctx.PostForm("request_data")), &startReq)
|
||||
CheckErr(err)
|
||||
@@ -62,7 +62,7 @@ func ScenarioStartupHandler(ctx *gin.Context) {
|
||||
ctx.String(http.StatusOK, string(resp))
|
||||
}
|
||||
|
||||
func ScenarioRewardHandler(ctx *gin.Context) {
|
||||
func ScenarioReward(ctx *gin.Context) {
|
||||
resp := utils.ReadAllText("assets/reward.json")
|
||||
|
||||
nonce := ctx.GetInt("nonce")
|
||||
|
||||
@@ -33,7 +33,7 @@ type SubScenarioReq struct {
|
||||
CommandNum string `json:"commandNum"`
|
||||
}
|
||||
|
||||
func SubScenarioStartupHandler(ctx *gin.Context) {
|
||||
func SubScenarioStartup(ctx *gin.Context) {
|
||||
startReq := SubScenarioReq{}
|
||||
err := json.Unmarshal([]byte(ctx.PostForm("request_data")), &startReq)
|
||||
CheckErr(err)
|
||||
@@ -60,7 +60,7 @@ func SubScenarioStartupHandler(ctx *gin.Context) {
|
||||
ctx.String(http.StatusOK, string(resp))
|
||||
}
|
||||
|
||||
func SubScenarioRewardHandler(ctx *gin.Context) {
|
||||
func SubScenarioReward(ctx *gin.Context) {
|
||||
resp := utils.ReadAllText("assets/subreward.json")
|
||||
|
||||
nonce := ctx.GetInt("nonce")
|
||||
|
||||
+1
-1
@@ -12,7 +12,7 @@ import (
|
||||
"github.com/gin-gonic/gin"
|
||||
)
|
||||
|
||||
func TosCheckHandler(ctx *gin.Context) {
|
||||
func TosCheck(ctx *gin.Context) {
|
||||
tosResp := model.TosResp{
|
||||
ResponseData: model.TosRes{
|
||||
TosID: 1,
|
||||
|
||||
+13
-52
@@ -4,12 +4,9 @@ import (
|
||||
"encoding/base64"
|
||||
"encoding/json"
|
||||
"fmt"
|
||||
"honoka-chan/config"
|
||||
"honoka-chan/database"
|
||||
"honoka-chan/encrypt"
|
||||
"honoka-chan/model"
|
||||
"honoka-chan/tools"
|
||||
"honoka-chan/utils"
|
||||
"net/http"
|
||||
"strconv"
|
||||
"time"
|
||||
@@ -17,62 +14,26 @@ import (
|
||||
"github.com/gin-gonic/gin"
|
||||
)
|
||||
|
||||
type SetDisplayRankResp struct {
|
||||
ResponseData []interface{} `json:"response_data"`
|
||||
ReleaseInfo []interface{} `json:"release_info"`
|
||||
StatusCode int `json:"status_code"`
|
||||
}
|
||||
|
||||
func SetDisplayRankHandler(ctx *gin.Context) {
|
||||
reqTime := time.Now().Unix()
|
||||
|
||||
authorizeStr := ctx.Request.Header["Authorize"]
|
||||
authToken, err := utils.GetAuthorizeToken(authorizeStr)
|
||||
if err != nil {
|
||||
ctx.String(http.StatusForbidden, ErrorMsg)
|
||||
return
|
||||
}
|
||||
userId := ctx.Request.Header[http.CanonicalHeaderKey("User-ID")]
|
||||
if len(userId) == 0 {
|
||||
ctx.String(http.StatusForbidden, ErrorMsg)
|
||||
return
|
||||
}
|
||||
|
||||
if !database.MatchTokenUid(authToken, userId[0]) {
|
||||
ctx.String(http.StatusForbidden, ErrorMsg)
|
||||
return
|
||||
}
|
||||
|
||||
nonce, err := utils.GetAuthorizeNonce(authorizeStr)
|
||||
if err != nil {
|
||||
fmt.Println(err)
|
||||
ctx.String(http.StatusForbidden, ErrorMsg)
|
||||
return
|
||||
}
|
||||
nonce++
|
||||
|
||||
respTime := time.Now().Unix()
|
||||
newAuthorizeStr := fmt.Sprintf("consumerKey=lovelive_test&timeStamp=%d&version=1.1&token=%s&nonce=%d&user_id=%s&requestTimeStamp=%d", respTime, authToken, nonce, userId[0], reqTime)
|
||||
// fmt.Println(newAuthorizeStr)
|
||||
|
||||
dispResp := SetDisplayRankResp{
|
||||
func SetDisplayRank(ctx *gin.Context) {
|
||||
dispResp := model.SetDisplayRankResp{
|
||||
ResponseData: []interface{}{},
|
||||
ReleaseInfo: []interface{}{},
|
||||
StatusCode: 200,
|
||||
}
|
||||
resp, err := json.Marshal(dispResp)
|
||||
CheckErr(err)
|
||||
xms := encrypt.RSA_Sign_SHA1(resp, "privatekey.pem")
|
||||
xms64 := base64.RawStdEncoding.EncodeToString(xms)
|
||||
|
||||
ctx.Header("Server-Version", config.Conf.Server.VersionNumber)
|
||||
ctx.Header("user_id", userId[0])
|
||||
ctx.Header("authorize", newAuthorizeStr)
|
||||
ctx.Header("X-Message-Sign", xms64)
|
||||
nonce := ctx.GetInt("nonce")
|
||||
nonce++
|
||||
|
||||
ctx.Header("user_id", ctx.GetString("userid"))
|
||||
ctx.Header("authorize", fmt.Sprintf("consumerKey=lovelive_test&timeStamp=%d&version=1.1&token=%s&nonce=%d&user_id=%s&requestTimeStamp=%d", time.Now().Unix(), ctx.GetString("token"), nonce, ctx.GetString("userid"), ctx.GetInt64("req_time")))
|
||||
ctx.Header("X-Message-Sign", base64.StdEncoding.EncodeToString(encrypt.RSA_Sign_SHA1(resp, "privatekey.pem")))
|
||||
|
||||
ctx.String(http.StatusOK, string(resp))
|
||||
}
|
||||
|
||||
func SetDeckHandler(ctx *gin.Context) {
|
||||
func SetDeck(ctx *gin.Context) {
|
||||
userId, err := strconv.Atoi(ctx.GetString("userid"))
|
||||
CheckErr(err)
|
||||
|
||||
@@ -197,7 +158,7 @@ func SetDeckHandler(ctx *gin.Context) {
|
||||
panic(err)
|
||||
}
|
||||
|
||||
dispResp := SetDisplayRankResp{
|
||||
dispResp := model.SetDeckResp{
|
||||
ResponseData: []interface{}{},
|
||||
ReleaseInfo: []interface{}{},
|
||||
StatusCode: 200,
|
||||
@@ -215,7 +176,7 @@ func SetDeckHandler(ctx *gin.Context) {
|
||||
ctx.String(http.StatusOK, string(resp))
|
||||
}
|
||||
|
||||
func SetDeckNameHandler(ctx *gin.Context) {
|
||||
func SetDeckName(ctx *gin.Context) {
|
||||
userId, err := strconv.Atoi(ctx.GetString("userid"))
|
||||
CheckErr(err)
|
||||
|
||||
@@ -239,7 +200,7 @@ func SetDeckNameHandler(ctx *gin.Context) {
|
||||
})
|
||||
CheckErr(err)
|
||||
|
||||
dispResp := SetDisplayRankResp{
|
||||
dispResp := model.SetDeckResp{
|
||||
ResponseData: []interface{}{},
|
||||
ReleaseInfo: []interface{}{},
|
||||
StatusCode: 200,
|
||||
|
||||
+3
-3
@@ -20,7 +20,7 @@ type NotificationResp struct {
|
||||
StatusCode int `json:"status_code"`
|
||||
}
|
||||
|
||||
func SetNotificationTokenHandler(ctx *gin.Context) {
|
||||
func SetNotificationToken(ctx *gin.Context) {
|
||||
notifResp := NotificationResp{
|
||||
ResponseData: []interface{}{},
|
||||
ReleaseInfo: []interface{}{},
|
||||
@@ -39,7 +39,7 @@ func SetNotificationTokenHandler(ctx *gin.Context) {
|
||||
ctx.String(http.StatusOK, string(resp))
|
||||
}
|
||||
|
||||
func ChangeNaviHandler(ctx *gin.Context) {
|
||||
func ChangeNavi(ctx *gin.Context) {
|
||||
req := gjson.Parse(ctx.PostForm("request_data"))
|
||||
pref := tools.UserPref{
|
||||
UnitOwningUserID: int(req.Get("unit_owning_user_id").Int()),
|
||||
@@ -64,7 +64,7 @@ func ChangeNaviHandler(ctx *gin.Context) {
|
||||
ctx.String(http.StatusOK, string(resp))
|
||||
}
|
||||
|
||||
func ChangeNameHandler(ctx *gin.Context) {
|
||||
func ChangeName(ctx *gin.Context) {
|
||||
req := gjson.Parse(ctx.PostForm("request_data"))
|
||||
var oldName string
|
||||
exists, err := UserEng.Table("user_preference_m").Where("user_id = ?", ctx.GetString("userid")).Cols("user_name").Get(&oldName)
|
||||
|
||||
+1
-1
@@ -13,7 +13,7 @@ import (
|
||||
"github.com/gin-gonic/gin"
|
||||
)
|
||||
|
||||
func UserInfoHandler(ctx *gin.Context) {
|
||||
func UserInfo(ctx *gin.Context) {
|
||||
userId, err := strconv.Atoi(ctx.GetString("userid"))
|
||||
CheckErr(err)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user