userservice.go 1.7KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. package service
  2. import (
  3. "sws_xcx/models"
  4. "time"
  5. "github.com/jinzhu/gorm"
  6. )
  7. type XcxUserService struct {
  8. rdb *gorm.DB
  9. wdb *gorm.DB
  10. }
  11. func NewXcxUserService() *XcxUserService {
  12. u := &models.XcxUser{}
  13. return &XcxUserService{rdb: readDb.Model(u), wdb: writeDb.Model(u)}
  14. }
  15. func (s *XcxUserService) GetUser(id uint64) (*models.XcxUser, error) {
  16. user := &models.XcxUser{}
  17. db := s.rdb.Where("id=?", id).First(user)
  18. return user, db.Error
  19. }
  20. func (s *XcxUserService) GetOrCreate(openId string, unionId string) (*models.XcxUser, error) {
  21. user := &models.XcxUser{OpenId: openId, UnionId: unionId}
  22. db := s.wdb.Where("open_id = ?", openId)
  23. if unionId != "" {
  24. db = db.Or("union_id = ?", unionId)
  25. }
  26. db.FirstOrCreate(user)
  27. return user, db.Error
  28. }
  29. func (s *XcxUserService) GetByOpenId(openId string) (*models.XcxUser, error) {
  30. user := &models.XcxUser{}
  31. db := s.wdb.Where("open_id = ?", openId)
  32. db.First(user)
  33. return user, db.Error
  34. }
  35. func (s *XcxUserService) UpdateUser(user *models.XcxUser) error {
  36. user.Mtime = time.Now()
  37. db := writeDb.Model(user).Update(user)
  38. return db.Error
  39. }
  40. func (s *XcxUserService) GetMobilePatientInfo(mobile, name, idCard string) (models.XcxPatients, error) {
  41. patients := models.XcxPatients{}
  42. err := ReadXtDB().Model(&patients).Where("(phone = ? or home_telephone = ? ) and name=? and id_card_no=? and status = 1", mobile, mobile, name, idCard).Find(&patients).Error
  43. if err == gorm.ErrRecordNotFound {
  44. err = nil
  45. }
  46. return patients, err
  47. }
  48. func (s *XcxUserService) GetPatientInfo(id int64) (models.XcxPatients, error) {
  49. patients := models.XcxPatients{}
  50. err := ReadXtDB().Model(&patients).Find(&patients, id).Error
  51. if err == gorm.ErrRecordNotFound {
  52. err = nil
  53. }
  54. return patients, err
  55. }