This commit is contained in:
@@ -10,6 +10,7 @@ import (
|
||||
dictservice "blazing/modules/dict/service"
|
||||
|
||||
"github.com/gogf/gf/v2/database/gdb"
|
||||
"github.com/gogf/gf/v2/errors/gerror"
|
||||
"github.com/gogf/gf/v2/frame/g"
|
||||
)
|
||||
|
||||
@@ -58,12 +59,28 @@ func (s *ItemService) UPDATE(id uint32, count int) error {
|
||||
return err
|
||||
}
|
||||
if ok {
|
||||
_, err := s.dbm(s.Model).Where("item_id", id).Increment("item_cnt", count)
|
||||
updateModel := s.dbm(s.Model).Where("item_id", id)
|
||||
if count < 0 {
|
||||
updateModel = updateModel.Where("item_cnt + ? > 0", count)
|
||||
}
|
||||
|
||||
result, err := updateModel.Increment("item_cnt", count)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
affected, err := result.RowsAffected()
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
if affected == 0 {
|
||||
return gerror.New("item update failed: no rows affected")
|
||||
}
|
||||
|
||||
} else {
|
||||
if count <= 0 {
|
||||
return gerror.New("item update failed: cannot insert non-positive item count")
|
||||
}
|
||||
m := s.dbm(s.Model)
|
||||
data := g.Map{
|
||||
"player_id": s.userid,
|
||||
|
||||
Reference in New Issue
Block a user