better change qty
Some checks failed
Build and Publish / BuildAndDeployAmd64 (push) Successful in 27s
Build and Publish / BuildAndDeploy (push) Has been cancelled

This commit is contained in:
matst80
2024-11-15 10:34:00 +01:00
parent de3d6a8beb
commit 7bf3e3dccd

View File

@@ -289,7 +289,7 @@ func (c *CartGrain) HandleMessage(message *Message, isReplay bool) (*FrameWithPa
case ChangeQuantityType: case ChangeQuantityType:
msg, ok := message.Content.(*messages.ChangeQuantity) msg, ok := message.Content.(*messages.ChangeQuantity)
if !ok { if !ok {
err = fmt.Errorf("expected RemoveItem") err = fmt.Errorf("expected ChangeQuantity")
} else { } else {
for i, item := range c.Items { for i, item := range c.Items {
if item.Id == int(msg.Id) { if item.Id == int(msg.Id) {
@@ -297,8 +297,9 @@ func (c *CartGrain) HandleMessage(message *Message, isReplay bool) (*FrameWithPa
c.TotalPrice -= item.Price * int64(msg.Quantity) c.TotalPrice -= item.Price * int64(msg.Quantity)
c.Items = append(c.Items[:i], c.Items[i+1:]...) c.Items = append(c.Items[:i], c.Items[i+1:]...)
} else { } else {
item.Quantity -= int(msg.Quantity) diff := int(msg.Quantity) - item.Quantity
c.TotalPrice -= item.Price * int64(msg.Quantity) item.Quantity = int(msg.Quantity)
c.TotalPrice += item.Price * int64(diff)
} }
break break