package member_service import ( "SCRM/models" "SCRM/service" "time" "github.com/jinzhu/gorm" ) func GetCardList(orgID int64) (cards []*models.UserMembershipCard, err error) { err = service.UserReadDB().Model(&models.UserMembershipCard{}).Where("status=1 and user_org_id=?", orgID).Order("card_level asc, id asc ").Find(&cards).Error return } func GetCardByID(orgID, cardID int64) (*models.UserMembershipCard, error) { var card models.UserMembershipCard var err error err = service.UserReadDB().Model(&models.UserMembershipCard{}).Where("id=? and user_org_id=? and status=1", cardID, orgID).First(&card).Error if err == gorm.ErrRecordNotFound { return nil, nil } if err != nil { return nil, err } return &card, nil } func GetUserCardByID(orgID, customerID int64) (*models.UserCard, error) { var card models.UserCard var err error err = service.UserReadDB().Model(&models.UserCard{}).Where("user_org_id=? and customer_id=? and status=1", orgID, customerID).First(&card).Error if err == gorm.ErrRecordNotFound { return nil, nil } if err != nil { return nil, err } return &card, nil } func DeleteUserCard(orgID, customerID int64) (err error) { 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 return } func SaveUserCard(card *models.UserCard, member *Members) (err error) { if member.Membership == 1 { err = service.UserWriteDB().Save(card).Error } else { tx := service.UserWriteDB().Begin() err = service.UserWriteDB().Save(card).Error if err != nil { tx.Rollback() return } 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 if err != nil { tx.Rollback() return } tx.Commit() } return }