上传物品叠加-1 的bug

This commit is contained in:
liwei 2022-07-22 22:05:39 +08:00
parent e08860bcb2
commit 5755b8101a

View File

@ -236,7 +236,7 @@ func (this *ModelItemsComp) AddItemToUserPackByGrid(uId string, gridid string, i
if num < 0 {
err = ItemNotEnoughError
} else {
if num > int64(conf.UpperLimit) {
if conf.UpperLimit > 0 && num > int64(conf.UpperLimit) {
err = GirdAmountUpper
return
} else {
@ -261,6 +261,10 @@ func (this *ModelItemsComp) addItemToUserPack(uid string, items []*pb.DB_UserIte
if conf, err = this.module.configure.GetItemConfigure(itemId); err != nil {
return
}
if conf.UpperLimit == 0 {
err = fmt.Errorf("item UpperLimit is 0")
return
}
isNew = true
leftnum = int64(addnum)
add = make([]*pb.DB_UserItemData, 0)
@ -281,17 +285,23 @@ func (this *ModelItemsComp) addItemToUserPack(uid string, items []*pb.DB_UserIte
update = append(update, v)
break
} else if num > 0 && num > int64(v.Amount) {
if num <= int64(conf.UpperLimit) {
if conf.UpperLimit > 0 {
if num <= int64(conf.UpperLimit) {
leftnum = 0
v.Amount = uint32(num)
update = append(update, v)
break
} else {
if v.Amount < uint32(conf.UpperLimit) {
leftnum = int64(num - int64(conf.UpperLimit))
v.Amount = uint32(conf.UpperLimit)
update = append(update, v)
}
}
} else {
leftnum = 0
v.Amount = uint32(num)
update = append(update, v)
break
} else {
if v.Amount < uint32(conf.UpperLimit) {
leftnum = int64(num - int64(conf.UpperLimit))
v.Amount = uint32(conf.UpperLimit)
update = append(update, v)
}
}
} else if num == 0 {
leftnum = 0
@ -306,7 +316,7 @@ func (this *ModelItemsComp) addItemToUserPack(uid string, items []*pb.DB_UserIte
if leftnum > 0 { //还没有放完 寻找空的格子填充
index := int32(len(items))
for leftnum > 0 { //需要补充格子
if leftnum <= int64(conf.UpperLimit) {
if conf.UpperLimit < 0 || (conf.UpperLimit > 0 && leftnum <= int64(conf.UpperLimit)) {
grid := &pb.DB_UserItemData{
GridId: primitive.NewObjectID().Hex(),
UId: uid,