luckredpacket.go 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. package model
  2. import (
  3. "errors"
  4. "fmt"
  5. "time"
  6. "git.jiaxianghudong.com/go/logs"
  7. "git.jiaxianghudong.com/webs/pkg/dbx"
  8. "github.com/go-sql-driver/mysql"
  9. )
  10. const LUCKREDPACKETTABLE = "`lucky`.`luck_red_packet`"
  11. type LuckRedPacket struct {
  12. ID int64 `sql:"id" json:"id"`
  13. UserId int `sql:"user_id" json:"user_id"`
  14. ShareUserId int64 `sql:"share_user_id" json:"share_user_id"`
  15. ShareTime int64 `sql:"share_time" json:"share_time"`
  16. Date string `sql:"date" json:"date"`
  17. PropData string `sql:"prop_data" json:"prop_data"`
  18. CreationTime string `sql:"creation_time" json:"creation_time"`
  19. }
  20. //添加
  21. func (l *LuckRedPacket) Add() (int64, error) {
  22. var last int64
  23. var err error
  24. sqlQuery := fmt.Sprintf("INSERT INTO %s (`user_id`,`share_user_id`,`share_time`,`date`,`prop_data`) VALUE(?,?,?,?,?)", LUCKREDPACKETTABLE)
  25. last, err = dbx.MySQL.Insert(sqlQuery, l.UserId, l.ShareUserId, l.ShareTime, time.Now().Format("2006-01-02"), l.PropData)
  26. if err != nil {
  27. if driverErr, ok := err.(*mysql.MySQLError); ok {
  28. logs.Errorf("err : %v", err)
  29. if driverErr.Number == 1062 {
  30. return 0, errors.New("今日已领取!")
  31. }
  32. }
  33. logs.Error(fmt.Sprintf("[%s] param:%#v err:%v", LUCKREDPACKETTABLE, l, err))
  34. return 0, err
  35. }
  36. return last, nil
  37. }
  38. func (l *LuckRedPacket) GetUserAward() []LuckRedPacket {
  39. var err error
  40. var luckRedPacket []LuckRedPacket
  41. sqlQuery := fmt.Sprintf("SELECT user_id,share_user_id,share_time,date,prop_data,creation_time FROM %s WHERE user_id = ? ORDER BY creation_time DESC", LUCKREDPACKETTABLE)
  42. err = dbx.MySQL.Query2(sqlQuery, &luckRedPacket, l.UserId)
  43. if err != nil {
  44. logs.Errorf("err:%v", err)
  45. }
  46. return luckRedPacket
  47. }