2626 globalLock sync.Mutex
2727
2828 errCancelFail = errors .New ("遇到不可抗力因素,注销失败!" )
29+
30+ // ErrInvalidProductID 商品ID无效
31+ ErrInvalidProductID = errors .New ("商品id不存在" )
32+
2933 // ErrNoBoys 表示当前没有男孩子可用的错误。
3034 ErrNoBoys = errors .New ("暂时没有男孩子哦" )
3135
@@ -337,24 +341,15 @@ func Redeem(gid, uid int64, lastLength float64) error {
337341 return ErrNoNiuNiu
338342 }
339343
340- /* var n niuNiuManager
341- if err = db.Where("niu_id = ?", niuID).First(&n).Error; err != nil {
342- return err
343- }
344-
345- switch n.Status {
346- case 1:
347- return errors.New("你的牛牛已经被拍卖无法赎回")
348- case 2:
349- return errors.New("你的牛牛已经被注销无法赎回")
350- }*/
351-
352344 money := wallet .GetWalletOf (uid )
353345
354- if money < 150 {
346+ price := 150
347+
348+ if money < price {
355349 var builder strings.Builder
356350 walletName := wallet .GetWalletName ()
357- builder .WriteString ("赎牛牛需要150" )
351+ builder .WriteString ("赎牛牛需要" )
352+ builder .WriteString (strconv .Itoa (price ))
358353 builder .WriteString (walletName )
359354 builder .WriteString (",快去赚钱吧,目前仅有:" )
360355 builder .WriteString (strconv .Itoa (money ))
@@ -363,15 +358,15 @@ func Redeem(gid, uid int64, lastLength float64) error {
363358 return errors .New (builder .String ())
364359 }
365360
366- if err = wallet .InsertWalletOf (uid , - 150 ); err != nil {
361+ if err = wallet .InsertWalletOf (uid , - price ); err != nil {
367362 return err
368363 }
369364
370365 return TableFor (gid , ur ).Where ("user_id = ?" , uid ).Update ("length" , lastLength ).Error
371366}
372367
373368// Store 牛牛商店
374- func Store (gid , uid int64 , n int ) error {
369+ func Store (gid , uid int64 , productID int , quantity int ) error {
375370 globalLock .Lock ()
376371 defer globalLock .Unlock ()
377372 if err := ensureUserInfoTable [userInfo ](gid , ur ); err != nil {
@@ -383,7 +378,7 @@ func Store(gid, uid int64, n int) error {
383378 return err
384379 }
385380
386- money , err := info .purchaseItem (n )
381+ money , err := info .purchaseItem (productID , quantity )
387382 if err != nil {
388383 return err
389384 }
@@ -442,9 +437,7 @@ func Sell(gid, uid int64) (string, error) {
442437 return "" , err
443438 }
444439
445- db .Model (& niuNiuManager {}).Where ("niu_id = ?" , niu .NiuID ).Update ("status" , 1 )
446-
447- return message , err
440+ return message , db .Model (& niuNiuManager {}).Where ("niu_id = ?" , niu .NiuID ).Update ("status" , 1 ).Error
448441}
449442
450443// ShowAuction 展示牛牛拍卖行
@@ -481,8 +474,10 @@ func Auction(gid, uid int64, index int) (string, error) {
481474
482475 niu , err := getUserByID (gid , uid )
483476
484- if err != nil {
477+ if errors . Is ( err , gorm . ErrRecordNotFound ) {
485478 niu .UserID = uid
479+ } else if err != nil {
480+ return "" , err
486481 }
487482
488483 niu .Length = info .Length
0 commit comments