scrm-go

cards_service.go 1.9KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. package member_service
  2. import (
  3. "SCRM/models"
  4. "SCRM/service"
  5. "time"
  6. "github.com/jinzhu/gorm"
  7. )
  8. func GetCardList(orgID int64) (cards []*models.UserMembershipCard, err error) {
  9. err = service.UserReadDB().Model(&models.UserMembershipCard{}).Where("status=1 and user_org_id=?", orgID).Order("card_level asc, id asc ").Find(&cards).Error
  10. return
  11. }
  12. func GetCardByID(orgID, cardID int64) (*models.UserMembershipCard, error) {
  13. var card models.UserMembershipCard
  14. var err error
  15. err = service.UserReadDB().Model(&models.UserMembershipCard{}).Where("id=? and user_org_id=? and status=1", cardID, orgID).First(&card).Error
  16. if err == gorm.ErrRecordNotFound {
  17. return nil, nil
  18. }
  19. if err != nil {
  20. return nil, err
  21. }
  22. return &card, nil
  23. }
  24. func GetUserCardByID(orgID, customerID int64) (*models.UserCard, error) {
  25. var card models.UserCard
  26. var err error
  27. err = service.UserReadDB().Model(&models.UserCard{}).Where("user_org_id=? and customer_id=? and status=1", orgID, customerID).First(&card).Error
  28. if err == gorm.ErrRecordNotFound {
  29. return nil, nil
  30. }
  31. if err != nil {
  32. return nil, err
  33. }
  34. return &card, nil
  35. }
  36. func DeleteUserCard(orgID, customerID int64) (err error) {
  37. err = service.UserWriteDB().Model(&models.UserCard{}).Where("user_org_id=? and customer_id=? ", orgID, customerID).Update(map[string]interface{}{"Status": 0, "UpdatedTime": time.Now().Unix()}).Error
  38. return
  39. }
  40. func SaveUserCard(card *models.UserCard, member *Members) (err error) {
  41. if member.Membership == 1 {
  42. err = service.UserWriteDB().Save(card).Error
  43. } else {
  44. tx := service.UserWriteDB().Begin()
  45. err = service.UserWriteDB().Save(card).Error
  46. if err != nil {
  47. tx.Rollback()
  48. return
  49. }
  50. err = service.UserWriteDB().Model(&models.UserCustomer{}).Where("id=? and user_org_id=? ", member.ID, member.UserOrgId).Update(map[string]interface{}{"Membership": 1, "UpdatedTime": time.Now().Unix()}).Error
  51. if err != nil {
  52. tx.Rollback()
  53. return
  54. }
  55. tx.Commit()
  56. }
  57. return
  58. }