Scope unit and accessory data to owning users
Signed-off-by: Sean Du <do4suki@gmail.com>
This commit is contained in:
@@ -326,7 +326,7 @@ func getAccessoryInfo(ss *session.Session, targetUserID, unitOwningUserID int) (
|
|||||||
return nil, nil
|
return nil, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
has, accessoryData := ss.GetAccessoryByAccessoryOwningUserID(accessoryOwningID)
|
has, accessoryData := ss.GetAccessoryByAccessoryOwningUserIDForUser(targetUserID, accessoryOwningID)
|
||||||
if !has {
|
if !has {
|
||||||
return nil, nil
|
return nil, nil
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -179,7 +179,7 @@ func buildCenterUnitInfo(ss *session.Session, userID, unitOwningUserID, awardID
|
|||||||
return info, err
|
return info, err
|
||||||
}
|
}
|
||||||
if has && accessoryWear.AccessoryOwningUserID > 0 {
|
if has && accessoryWear.AccessoryOwningUserID > 0 {
|
||||||
hasAccessory, accessoryData := ss.GetAccessoryByAccessoryOwningUserID(accessoryWear.AccessoryOwningUserID)
|
hasAccessory, accessoryData := ss.GetAccessoryByAccessoryOwningUserIDForUser(userID, accessoryWear.AccessoryOwningUserID)
|
||||||
if hasAccessory {
|
if hasAccessory {
|
||||||
accessoryInfo = friendschema.AccessoryInfo{
|
accessoryInfo = friendschema.AccessoryInfo{
|
||||||
AccessoryOwningUserID: accessoryWear.AccessoryOwningUserID,
|
AccessoryOwningUserID: accessoryWear.AccessoryOwningUserID,
|
||||||
|
|||||||
@@ -180,6 +180,7 @@ func matchMemberTag(ss *session.Session, cache map[memberTagMatchKey]bool, unitT
|
|||||||
func loadDeckUnitDataMap(ss *session.Session, unitOwningUserIDs []int) (map[int]unitmodel.UnitDataMap, error) {
|
func loadDeckUnitDataMap(ss *session.Session, unitOwningUserIDs []int) (map[int]unitmodel.UnitDataMap, error) {
|
||||||
unitRows := []unitmodel.UnitDataMap{}
|
unitRows := []unitmodel.UnitDataMap{}
|
||||||
err := ss.GetBasicUnitInfo().
|
err := ss.GetBasicUnitInfo().
|
||||||
|
Where("a.user_id = ?", ss.UserID).
|
||||||
In("a.unit_owning_user_id", unitOwningUserIDs).
|
In("a.unit_owning_user_id", unitOwningUserIDs).
|
||||||
Find(&unitRows)
|
Find(&unitRows)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@@ -221,6 +222,7 @@ func loadAccessoryBonusMap(ss *session.Session, userID int, unitOwningUserIDs []
|
|||||||
|
|
||||||
rows := []accessoryBonusRow{}
|
rows := []accessoryBonusRow{}
|
||||||
err = ss.UserEng.Table("user_accessory").
|
err = ss.UserEng.Table("user_accessory").
|
||||||
|
Where("user_id = ?", userID).
|
||||||
In("accessory_owning_user_id", accessoryIDs).
|
In("accessory_owning_user_id", accessoryIDs).
|
||||||
Cols("accessory_owning_user_id,accessory_id").
|
Cols("accessory_owning_user_id,accessory_id").
|
||||||
Find(&rows)
|
Find(&rows)
|
||||||
|
|||||||
@@ -134,7 +134,7 @@ func getGreetingAccessoryInfo(ss *session.Session, userID, unitOwningUserID int)
|
|||||||
return nil, nil
|
return nil, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
has, accessoryData := ss.GetAccessoryByAccessoryOwningUserID(accessoryWear.AccessoryOwningUserID)
|
has, accessoryData := ss.GetAccessoryByAccessoryOwningUserIDForUser(userID, accessoryWear.AccessoryOwningUserID)
|
||||||
if !has {
|
if !has {
|
||||||
return nil, nil
|
return nil, nil
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -200,7 +200,7 @@ func getRankingAccessoryInfo(ss *session.Session, targetUserID, unitOwningUserID
|
|||||||
return nil, nil
|
return nil, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
has, accessoryData := ss.GetAccessoryByAccessoryOwningUserID(accessoryOwningID)
|
has, accessoryData := ss.GetAccessoryByAccessoryOwningUserIDForUser(targetUserID, accessoryOwningID)
|
||||||
if !has {
|
if !has {
|
||||||
return nil, nil
|
return nil, nil
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -33,13 +33,15 @@ func deck(ctx *gin.Context) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 删除全部原有队伍成员
|
// 删除全部原有队伍成员
|
||||||
_, err = ss.UserEng.Table("user_deck_unit").In("user_deck_id", userDeckID).Delete()
|
_, err = ss.UserEng.Table("user_deck_unit").
|
||||||
|
Where("user_id = ?", ss.UserID).In("user_deck_id", userDeckID).Delete()
|
||||||
if ss.CheckErr(err) {
|
if ss.CheckErr(err) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
// 删除全部原有队伍
|
// 删除全部原有队伍
|
||||||
_, err = ss.UserEng.Table("user_deck").In("id", userDeckID).Delete()
|
_, err = ss.UserEng.Table("user_deck").
|
||||||
|
Where("user_id = ?", ss.UserID).In("id", userDeckID).Delete()
|
||||||
if ss.CheckErr(err) {
|
if ss.CheckErr(err) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
@@ -65,11 +67,15 @@ func deck(ctx *gin.Context) {
|
|||||||
for _, u := range deck.UnitDeckDetail {
|
for _, u := range deck.UnitDeckDetail {
|
||||||
// 成员信息
|
// 成员信息
|
||||||
unitData := unitmodel.UnitDataMap{}
|
unitData := unitmodel.UnitDataMap{}
|
||||||
_, err = ss.GetBasicUnitInfo().
|
has, err := ss.GetBasicUnitInfo().
|
||||||
Where("a.unit_owning_user_id = ?", u.UnitOwningUserID).Get(&unitData)
|
Where("a.user_id = ? AND a.unit_owning_user_id = ?", ss.UserID, u.UnitOwningUserID).Get(&unitData)
|
||||||
if ss.CheckErr(err) {
|
if ss.CheckErr(err) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
if !has {
|
||||||
|
ss.AbortWithStatus(http.StatusNotFound, honokautils.NewNotFoundContent(ctx.Request.URL.Path))
|
||||||
|
return
|
||||||
|
}
|
||||||
// fmt.Println("新的成员信息:", unitData)
|
// fmt.Println("新的成员信息:", unitData)
|
||||||
|
|
||||||
// 插入新成员信息
|
// 插入新成员信息
|
||||||
|
|||||||
@@ -26,7 +26,8 @@ func favorite(ctx *gin.Context) {
|
|||||||
FavoriteFlag: req.FavoriteFlag != 0,
|
FavoriteFlag: req.FavoriteFlag != 0,
|
||||||
}
|
}
|
||||||
_, err = ss.UserEng.Table(new(usermodel.UserUnitData)).
|
_, err = ss.UserEng.Table(new(usermodel.UserUnitData)).
|
||||||
ID(req.UnitOwningUserID).Cols("favorite_flag").Update(&data)
|
Where("user_id = ? AND unit_owning_user_id = ?", ss.UserID, req.UnitOwningUserID).
|
||||||
|
Cols("favorite_flag").Update(&data)
|
||||||
if ss.CheckErr(err) {
|
if ss.CheckErr(err) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -35,12 +35,21 @@ func removableSkillEquipment(ctx *gin.Context) {
|
|||||||
// 佩戴宝石
|
// 佩戴宝石
|
||||||
for _, v := range req.Equip {
|
for _, v := range req.Equip {
|
||||||
// fmt.Println("Equip:", v.UnitOwningUserID, v.UnitRemovableSkillID)
|
// fmt.Println("Equip:", v.UnitOwningUserID, v.UnitRemovableSkillID)
|
||||||
|
exists, err := ss.HasUserUnit(v.UnitOwningUserID)
|
||||||
|
if ss.CheckErr(err) {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
if !exists {
|
||||||
|
ss.AbortWithStatus(http.StatusNotFound, honokautils.NewNotFoundContent(ctx.Request.URL.Path))
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
data := unitschema.RemovableSkillEquipmentData{
|
data := unitschema.RemovableSkillEquipmentData{
|
||||||
UnitRemovableSkillId: v.UnitRemovableSkillID,
|
UnitRemovableSkillId: v.UnitRemovableSkillID,
|
||||||
UnitOwningUserID: v.UnitOwningUserID,
|
UnitOwningUserID: v.UnitOwningUserID,
|
||||||
UserID: ss.UserID,
|
UserID: ss.UserID,
|
||||||
}
|
}
|
||||||
_, err := ss.UserEng.Table("user_unit_skill_equip").Insert(&data)
|
_, err = ss.UserEng.Table("user_unit_skill_equip").Insert(&data)
|
||||||
if ss.CheckErr(err) {
|
if ss.CheckErr(err) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -29,7 +29,11 @@ func sale(ctx *gin.Context) {
|
|||||||
salePrice := 1 // TODO: 从 unit_level_up_pattern_m 表获取实际价格
|
salePrice := 1 // TODO: 从 unit_level_up_pattern_m 表获取实际价格
|
||||||
totalCoin += salePrice
|
totalCoin += salePrice
|
||||||
|
|
||||||
_, unitData := ss.GetUserUnitInfo(id)
|
has, unitData := ss.GetUserUnitInfo(id)
|
||||||
|
if !has || unitData == nil {
|
||||||
|
ss.AbortWithStatus(http.StatusNotFound, honokautils.NewNotFoundContent(ctx.Request.URL.Path))
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
saleDetail = append(saleDetail, unitschema.Detail{
|
saleDetail = append(saleDetail, unitschema.Detail{
|
||||||
UnitOwningUserID: id,
|
UnitOwningUserID: id,
|
||||||
@@ -40,21 +44,21 @@ func sale(ctx *gin.Context) {
|
|||||||
|
|
||||||
// 卸载宝石
|
// 卸载宝石
|
||||||
_, err = ss.UserEng.Table(new(usermodel.UserUnitSkillEquip)).
|
_, err = ss.UserEng.Table(new(usermodel.UserUnitSkillEquip)).
|
||||||
Where("unit_owning_user_id = ?", id).Delete()
|
Where("user_id = ? AND unit_owning_user_id = ?", ss.UserID, id).Delete()
|
||||||
if ss.CheckErr(err) {
|
if ss.CheckErr(err) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
// 卸载饰品
|
// 卸载饰品
|
||||||
_, err = ss.UserEng.Table(new(usermodel.UserAccessoryWear)).
|
_, err = ss.UserEng.Table(new(usermodel.UserAccessoryWear)).
|
||||||
Where("unit_owning_user_id = ?", id).Delete()
|
Where("user_id = ? AND unit_owning_user_id = ?", ss.UserID, id).Delete()
|
||||||
if ss.CheckErr(err) {
|
if ss.CheckErr(err) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
// 移除卡片
|
// 移除卡片
|
||||||
_, err = ss.UserEng.Table(new(usermodel.UserUnitData)).
|
_, err = ss.UserEng.Table(new(usermodel.UserUnitData)).
|
||||||
Where("unit_owning_user_id = ?", id).Delete()
|
Where("user_id = ? AND unit_owning_user_id = ?", ss.UserID, id).Delete()
|
||||||
if ss.CheckErr(err) {
|
if ss.CheckErr(err) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -26,7 +26,8 @@ func setDisplayRank(ctx *gin.Context) {
|
|||||||
DisplayRank: req.DisplayRank,
|
DisplayRank: req.DisplayRank,
|
||||||
}
|
}
|
||||||
_, err = ss.UserEng.Table(new(usermodel.UserUnitData)).
|
_, err = ss.UserEng.Table(new(usermodel.UserUnitData)).
|
||||||
ID(req.UnitOwningUserID).Cols("display_rank").Update(&data)
|
Where("user_id = ? AND unit_owning_user_id = ?", ss.UserID, req.UnitOwningUserID).
|
||||||
|
Cols("display_rank").Update(&data)
|
||||||
if ss.CheckErr(err) {
|
if ss.CheckErr(err) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -49,6 +49,15 @@ func wearAccessory(ctx *gin.Context) {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
exists, err = ss.HasUserUnit(v.UnitOwningUserID)
|
||||||
|
if ss.CheckErr(err) {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
if !exists {
|
||||||
|
ss.CheckErr(errors.New("unit not found for user"))
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
data := unitschema.WearAccessoryData{
|
data := unitschema.WearAccessoryData{
|
||||||
AccessoryOwningUserID: v.AccessoryOwningUserID,
|
AccessoryOwningUserID: v.AccessoryOwningUserID,
|
||||||
UnitOwningUserID: v.UnitOwningUserID,
|
UnitOwningUserID: v.UnitOwningUserID,
|
||||||
|
|||||||
@@ -9,7 +9,7 @@ import (
|
|||||||
func (ss *Session) GetUserAccessoryWearByUnitOwningUserID(unitOwningUserID int) (bool, *usermodel.UserAccessoryWear) {
|
func (ss *Session) GetUserAccessoryWearByUnitOwningUserID(unitOwningUserID int) (bool, *usermodel.UserAccessoryWear) {
|
||||||
wearData := usermodel.UserAccessoryWear{}
|
wearData := usermodel.UserAccessoryWear{}
|
||||||
has, err := ss.UserEng.Table(new(usermodel.UserAccessoryWear)).
|
has, err := ss.UserEng.Table(new(usermodel.UserAccessoryWear)).
|
||||||
Where("unit_owning_user_id = ?", unitOwningUserID).Get(&wearData)
|
Where("user_id = ? AND unit_owning_user_id = ?", ss.UserID, unitOwningUserID).Get(&wearData)
|
||||||
if ss.CheckErr(err) {
|
if ss.CheckErr(err) {
|
||||||
return false, nil
|
return false, nil
|
||||||
}
|
}
|
||||||
@@ -18,9 +18,13 @@ func (ss *Session) GetUserAccessoryWearByUnitOwningUserID(unitOwningUserID int)
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (ss *Session) GetUserAccessoryByAccessoryOwningUserID(accessoryOwningUserID int) (bool, *usermodel.UserAccessory) {
|
func (ss *Session) GetUserAccessoryByAccessoryOwningUserID(accessoryOwningUserID int) (bool, *usermodel.UserAccessory) {
|
||||||
|
return ss.GetUserAccessoryByAccessoryOwningUserIDForUser(ss.UserID, accessoryOwningUserID)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (ss *Session) GetUserAccessoryByAccessoryOwningUserIDForUser(userID, accessoryOwningUserID int) (bool, *usermodel.UserAccessory) {
|
||||||
accessoryData := usermodel.UserAccessory{}
|
accessoryData := usermodel.UserAccessory{}
|
||||||
has, err := ss.UserEng.Table(new(usermodel.UserAccessory)).
|
has, err := ss.UserEng.Table(new(usermodel.UserAccessory)).
|
||||||
Where("accessory_owning_user_id = ?", accessoryOwningUserID).
|
Where("user_id = ? AND accessory_owning_user_id = ?", userID, accessoryOwningUserID).
|
||||||
Get(&accessoryData)
|
Get(&accessoryData)
|
||||||
if ss.CheckErr(err) {
|
if ss.CheckErr(err) {
|
||||||
return false, nil
|
return false, nil
|
||||||
@@ -30,7 +34,11 @@ func (ss *Session) GetUserAccessoryByAccessoryOwningUserID(accessoryOwningUserID
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (ss *Session) GetAccessoryByAccessoryOwningUserID(accessoryOwningUserID int) (bool, *accessorymodel.Accessory) {
|
func (ss *Session) GetAccessoryByAccessoryOwningUserID(accessoryOwningUserID int) (bool, *accessorymodel.Accessory) {
|
||||||
has, userAccessoryData := ss.GetUserAccessoryByAccessoryOwningUserID(accessoryOwningUserID)
|
return ss.GetAccessoryByAccessoryOwningUserIDForUser(ss.UserID, accessoryOwningUserID)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (ss *Session) GetAccessoryByAccessoryOwningUserIDForUser(userID, accessoryOwningUserID int) (bool, *accessorymodel.Accessory) {
|
||||||
|
has, userAccessoryData := ss.GetUserAccessoryByAccessoryOwningUserIDForUser(userID, accessoryOwningUserID)
|
||||||
if !has {
|
if !has {
|
||||||
return false, nil
|
return false, nil
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -26,7 +26,7 @@ func (ss *Session) GetUserDeckUnit(deckID int) []usermodel.UserDeckUnit {
|
|||||||
|
|
||||||
unitData := []usermodel.UserDeckUnit{}
|
unitData := []usermodel.UserDeckUnit{}
|
||||||
err = ss.UserEng.Table("user_deck_unit").
|
err = ss.UserEng.Table("user_deck_unit").
|
||||||
Where("user_deck_id = ?", deckData.ID).Find(&unitData)
|
Where("user_deck_id = ? AND user_id = ?", deckData.ID, ss.UserID).Find(&unitData)
|
||||||
if ss.CheckErr(err) {
|
if ss.CheckErr(err) {
|
||||||
return []usermodel.UserDeckUnit{}
|
return []usermodel.UserDeckUnit{}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -36,7 +36,7 @@ func (ss *Session) GetUnitInfo(unitID int) (bool, *unitmodel.CommonUnitData) {
|
|||||||
func (ss *Session) GetUserUnitInfo(unitOwningUserID int) (bool, *unitmodel.CommonUnitData) {
|
func (ss *Session) GetUserUnitInfo(unitOwningUserID int) (bool, *unitmodel.CommonUnitData) {
|
||||||
var unitID int
|
var unitID int
|
||||||
has, err := ss.UserEng.Table(new(usermodel.UserUnitData)).
|
has, err := ss.UserEng.Table(new(usermodel.UserUnitData)).
|
||||||
Where("unit_owning_user_id = ?", unitOwningUserID).
|
Where("user_id = ? AND unit_owning_user_id = ?", ss.UserID, unitOwningUserID).
|
||||||
Cols("unit_id").Get(&unitID)
|
Cols("unit_id").Get(&unitID)
|
||||||
if ss.CheckErr(err) {
|
if ss.CheckErr(err) {
|
||||||
return false, nil
|
return false, nil
|
||||||
@@ -49,10 +49,16 @@ func (ss *Session) GetUserUnitInfo(unitOwningUserID int) (bool, *unitmodel.Commo
|
|||||||
return ss.GetUnitInfo(unitID)
|
return ss.GetUnitInfo(unitID)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (ss *Session) HasUserUnit(unitOwningUserID int) (bool, error) {
|
||||||
|
return ss.UserEng.Table(new(usermodel.UserUnitData)).
|
||||||
|
Where("user_id = ? AND unit_owning_user_id = ?", ss.UserID, unitOwningUserID).
|
||||||
|
Exist()
|
||||||
|
}
|
||||||
|
|
||||||
func (ss *Session) GetUserUnitSkillEquip(unitOwningUserID int) []usermodel.UserUnitSkillEquip {
|
func (ss *Session) GetUserUnitSkillEquip(unitOwningUserID int) []usermodel.UserUnitSkillEquip {
|
||||||
skill := []usermodel.UserUnitSkillEquip{}
|
skill := []usermodel.UserUnitSkillEquip{}
|
||||||
err := ss.UserEng.Table("user_unit_skill_equip").
|
err := ss.UserEng.Table("user_unit_skill_equip").
|
||||||
Where("unit_owning_user_id = ?", unitOwningUserID).Find(&skill)
|
Where("user_id = ? AND unit_owning_user_id = ?", ss.UserID, unitOwningUserID).Find(&skill)
|
||||||
if ss.CheckErr(err) {
|
if ss.CheckErr(err) {
|
||||||
return []usermodel.UserUnitSkillEquip{}
|
return []usermodel.UserUnitSkillEquip{}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user