1234567891011121314151617181920212223242526272829303132333435
  1. package customer
  2. import (
  3. "spaceofcheng/services/models"
  4. "spaceofcheng/services/models/model"
  5. "time"
  6. )
  7. // GetValidVIPCards 依据客户ID 获取 VIP 卡
  8. // 按照过期时间升序, 即 将到期的在最上面
  9. // VIP 卡可以跨案场使用
  10. func (m *CustomerDAO) GetValidVIPCards(custID string) (vips []model.TaCustomerVip, err error) {
  11. now := time.Now().Local().Format("2006-01-02 15:04:05")
  12. err = m.db.Where("customer_id=?", custID).
  13. And("status=?", models.STATUS_NORMAL).
  14. And(`DATE_FORMAT(begin_date, "%Y-%m-%d %T")<=?`, now).
  15. And(`DATE_FORMAT(end_date, "%Y-%m-%d %T")>=?`, now).
  16. And("balance>0").
  17. Asc("end_date").
  18. Find(&vips)
  19. return
  20. }
  21. // UpdateCustVipCardAmount 更新VIP账户
  22. func (m *CustomerDAO) UpdateCustVipCardAmount(vip *model.TaCustomerVip, change float64) error {
  23. sql := `UPDATE ta_customer_vip
  24. SET balance = balance - ?,
  25. pay_amount = pay_amount + ?
  26. WHERE customer_vip_id = ?
  27. `
  28. _, err := m.db.Exec(sql, change, change, vip.CustomerVipId)
  29. return err
  30. }