2727
2828 errCancelFail = errors .New ("遇到不可抗力因素,注销失败!" )
2929
30+ // ErrAuctioned 已被拍卖无法赎回
31+ ErrAuctioned = errors .New ("你的牛牛已经被拍卖无法赎回" )
32+
33+ // ErrCanceled 已被注销无法赎回
34+ ErrCanceled = errors .New ("你的牛牛已经被注销无法赎回" )
35+
3036 // ErrInvalidProductID 商品ID无效
3137 ErrInvalidProductID = errors .New ("商品id不存在" )
3238
@@ -241,37 +247,38 @@ func Register(gid, uid int64) (string, error) {
241247}
242248
243249// JJ ...
244- func JJ (gid , uid , adduser int64 , prop string ) (message string , adduserLength float64 , err error ) {
250+ func JJ (gid , uid , adduser int64 , prop string ) (message string , adduserLength float64 , niuID uuid. UUID , err error ) {
245251 globalLock .Lock ()
246252 defer globalLock .Unlock ()
247253
248254 myniuniu , err := getUserByID (gid , uid )
249255 if err != nil {
250- return "" , 0 , ErrNoNiuNiu
256+ return "" , 0 , uuid . Nil , ErrNoNiuNiu
251257 }
252258
253259 adduserniuniu , err := getUserByID (gid , adduser )
254260 if err != nil {
255- return "" , 0 , ErrAdduserNoNiuNiu
261+ return "" , 0 , uuid . Nil , ErrAdduserNoNiuNiu
256262 }
257263
258264 if uid == adduser {
259- return "" , 0 , ErrCannotFight
265+ return "" , 0 , uuid . Nil , ErrCannotFight
260266 }
261267
262268 message , err = myniuniu .processJJ (adduserniuniu , prop )
263269 if err != nil {
264- return "" , 0 , err
270+ return "" , 0 , uuid . Nil , err
265271 }
266272
267273 if err = tableFor (gid , ur ).Where ("user_id =?" , uid ).Update ("length" , myniuniu .Length ).Error ; err != nil {
268- return "" , 0 , err
274+ return "" , 0 , uuid . Nil , err
269275 }
270276
271277 if err = tableFor (gid , ur ).Where ("user_id =?" , adduser ).Update ("length" , adduserniuniu .Length ).Error ; err != nil {
272- return "" , 0 , err
278+ return "" , 0 , uuid . Nil , err
273279 }
274280
281+ niuID = adduserniuniu .NiuID
275282 adduserLength = adduserniuniu .Length
276283
277284 return
@@ -294,7 +301,7 @@ func Cancel(gid, uid int64) (string, error) {
294301}
295302
296303// Redeem 赎牛牛
297- func Redeem (gid , uid int64 , lastLength float64 ) error {
304+ func Redeem (gid , uid int64 , r Rm ) error {
298305 globalLock .Lock ()
299306 defer globalLock .Unlock ()
300307
@@ -305,7 +312,19 @@ func Redeem(gid, uid int64, lastLength float64) error {
305312
306313 money := wallet .GetWalletOf (uid )
307314
308- price := 150
315+ var niuManager niuNiuManager
316+ if err = db .Model (& niuNiuManager {}).Where ("niu_id = ?" , r .NiuID ).First (& niuManager ).Error ; err != nil {
317+ return err
318+ }
319+
320+ switch niuManager .Status {
321+ case 1 :
322+ return ErrAuctioned
323+ case 2 :
324+ return ErrCanceled
325+ }
326+
327+ price := int (hitGlue (r .Length ))* 100 + 150
309328
310329 if money < price {
311330 var builder strings.Builder
@@ -324,7 +343,7 @@ func Redeem(gid, uid int64, lastLength float64) error {
324343 return err
325344 }
326345
327- return tableFor (gid , ur ).Where ("user_id = ?" , uid ).Update ("length" , lastLength ).Error
346+ return tableFor (gid , ur ).Where ("user_id = ?" , uid ).Update ("length" , r . Length ).Error
328347}
329348
330349// Store 牛牛商店
0 commit comments