signin.go 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. package signin
  2. import (
  3. "bet24.com/log"
  4. item "bet24.com/servers/micros/item_inventory/proto"
  5. )
  6. const (
  7. status_idle = iota //空闲,未完成
  8. status_completed //完成,未领取
  9. status_received //完成,已领取
  10. )
  11. type Signin struct {
  12. Id int
  13. Award []item.ItemPack
  14. DoubleVipLevel int // vip?加倍,0表示没有
  15. SignTime int // 签到时间,0表示未签
  16. }
  17. type ContinueAward struct {
  18. Day int // 连续多少天
  19. Award []item.ItemPack
  20. Status int // 状态 0=空闲,未完成 1=完成,未领取 2=完成,已领取
  21. }
  22. var mgr *signinmgr
  23. func Run() {
  24. mgr = newSigninManager()
  25. }
  26. type SigninInfo struct {
  27. SigninTable []Signin
  28. Continue []*ContinueAward
  29. Signable bool
  30. ContinueDay int // 已连续签到多少天
  31. }
  32. func GetUserSigninInfo(userId int) *SigninInfo {
  33. return mgr.getUserSigninInfo(userId)
  34. }
  35. func CheckSignTip(userId int) bool {
  36. return mgr.checkSignTip(userId)
  37. }
  38. func DoSignin(userId int) (bool, []item.ItemPack) {
  39. return mgr.doSignin(userId)
  40. }
  41. // 领取连续签到奖励
  42. func GiftContinueAward(userId, day int) (bool, []item.ItemPack) {
  43. return mgr.giftContinueAward(userId, day)
  44. }
  45. func AddUser(userId int) {
  46. mgr.getUser(userId)
  47. }
  48. func RemoveUser(userId int) {
  49. mgr.removeUser(userId)
  50. }
  51. func Dump(param1, param2 string) {
  52. switch param1 {
  53. case "sys":
  54. mgr.dumpSys(param2)
  55. case "user":
  56. mgr.dumpUser(param2)
  57. default:
  58. log.Debug("signin.Dump unhandled %s:%s", param1, param2)
  59. }
  60. }