luckdrawlist.go 3.7KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144
  1. package luckdrawlist
  2. import (
  3. "fmt"
  4. "spaceofcheng/services/models/model"
  5. "spaceofcheng/services/utils"
  6. "strings"
  7. "time"
  8. "github.com/go-xorm/xorm"
  9. )
  10. // LuckdrawDAO 当前数据库操作对象
  11. type LuckdrawDAO struct {
  12. ctx *utils.Context
  13. db *xorm.Session
  14. }
  15. // NewLuckdrawDAO New Inst
  16. func NewLuckdrawDAO(ctx *utils.Context) *LuckdrawDAO {
  17. return &LuckdrawDAO{
  18. ctx: ctx,
  19. db: ctx.DB,
  20. }
  21. }
  22. type Luckdraw struct {
  23. model.TaLuckdrawRecord `xorm:"extends"`
  24. CaseName string
  25. ActivitName string
  26. Name string
  27. CustomerName string
  28. Phone string
  29. }
  30. func (m *LuckdrawDAO) GetLuckdrawList(filters []string, limit []int) ([]Luckdraw, int64, error) {
  31. var luckdraw []Luckdraw
  32. filterString := ""
  33. if len(filters) > 0 {
  34. filterString = strings.Join(filters, " and ")
  35. filterString += " and "
  36. }
  37. sql := `SELECT
  38. a.* ,
  39. c.case_name,
  40. b.name AS activit_name,
  41. d.name,
  42. d.customer_name,
  43. d.phone
  44. FROM
  45. ta_luckdraw_record a
  46. LEFT JOIN ta_luckdraw b ON a.luckdraw_id = b.id
  47. LEFT JOIN sys_case c ON a.case_id = c.case_id
  48. LEFT JOIN ta_customer d ON a.user_id = d.customer_id
  49. where %s 1=1 `
  50. sql += ` order by a.create_date desc `
  51. total, err := utils.NewPageNaviEngine(m.ctx).GetPageList(&luckdraw, fmt.Sprintf(sql, filterString), limit)
  52. if err != nil {
  53. return nil, 0, err
  54. }
  55. return luckdraw, total, err
  56. }
  57. func (m *LuckdrawDAO) GetLuckShareList(fromPhone, toPhone string, filters string, limit []int) ([]model.TaShareLuckyRecord, int64, error) {
  58. var luckShare []model.TaShareLuckyRecord
  59. // filterString := ""
  60. // if len(filters) > 0 {
  61. // filterString = strings.Join(filters, " and ")
  62. // filterString += " and "
  63. // }
  64. sql := `select * from ta_share_lucky_record a where ` + filters
  65. if fromPhone != "" {
  66. sql += ` and a.from_customer_tel = '` + fromPhone + `'`
  67. }
  68. if toPhone != "" {
  69. sql += ` and a.to_customer_tel = '` + toPhone + `'`
  70. }
  71. sql += ` order by a.create_date desc `
  72. total, err := utils.NewPageNaviEngine(m.ctx).GetPageList(&luckShare, sql, limit)
  73. if err != nil {
  74. return nil, 0, err
  75. }
  76. return luckShare, total, err
  77. }
  78. func (m *LuckdrawDAO) GetLuckdrawById(luckdrawId, caseids string) (*Luckdraw, error) {
  79. var luckdraw []Luckdraw
  80. sql := `SELECT
  81. a.*,
  82. c.case_name,
  83. b.name AS activit_name,
  84. d.name,
  85. d.customer_name,
  86. d.phone
  87. FROM
  88. ta_luckdraw_record a
  89. INNER JOIN ta_luckdraw b ON a.luckdraw_id = b.id
  90. INNER JOIN sys_case c ON a.case_id = c.case_id
  91. INNER JOIN ta_customer d ON a.user_id = d.customer_id
  92. INNER JOIN ta_luckdraw_prize e ON e.id = a.prize_id
  93. WHERE
  94. DATE_FORMAT( a.verification_start, '%Y-%m-%d' ) <= DATE_FORMAT( NOW( ), '%Y-%m-%d' )
  95. AND DATE_FORMAT( a.verification_end, '%Y-%m-%d' ) >= DATE_FORMAT( NOW( ), '%Y-%m-%d' )
  96. AND a.id = '` + luckdrawId + `'
  97. and b.case_id in ('` + strings.Replace(caseids, ",", "','", -1) + `')`
  98. err := m.db.Sql(sql).Find(&luckdraw)
  99. if err != nil {
  100. return nil, err
  101. }
  102. if len(luckdraw) > 0 {
  103. return &luckdraw[0], err
  104. }
  105. return nil, nil
  106. }
  107. func (m *LuckdrawDAO) VerifyLuckdraw(luckdrawId string) error {
  108. var luckdraw = model.TaLuckdrawRecord{
  109. Id: luckdrawId,
  110. WriteoffDate: time.Now(),
  111. Status: 1,
  112. }
  113. var cols = []string{
  114. "writeoff_date",
  115. "status",
  116. }
  117. _, err := m.db.Cols(cols...).Where("id = ?", luckdraw.Id).Update(luckdraw)
  118. return err
  119. }
  120. func (m *LuckdrawDAO) AddWriteoffRecord(luckdraw *Luckdraw, userId string) error {
  121. var luckWriteoff = model.TaLuckdrawWriteoff{}
  122. luckWriteoff.Id = utils.GetGUID()
  123. luckWriteoff.CaseId = luckdraw.CaseId
  124. luckWriteoff.LuckdrawId = luckdraw.LuckdrawId
  125. luckWriteoff.OrgId = luckdraw.OrgId
  126. luckWriteoff.RecordId = luckdraw.Id
  127. luckWriteoff.Status = 0
  128. luckWriteoff.WriteoffDate = time.Now()
  129. luckWriteoff.WriteoffUser = userId
  130. _, err := m.db.Insert(luckWriteoff)
  131. return err
  132. }