123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136 |
- package service
-
- import (
- "errors"
- "sws_xcx/models"
- "time"
-
- "github.com/jinzhu/gorm"
- )
-
- type HealthProfileService struct {
- rdb *gorm.DB
- wdb *gorm.DB
- }
-
- func NewUserHealthProfileService() *HealthProfileService {
-
- p := &models.UserHealthProfile{}
- return &HealthProfileService{
- rdb: readDb.Model(p),
- wdb: writeDb.Model(p),
- }
- }
-
- func (s *HealthProfileService) GetUserHealthProfileByUserId(userId uint64) (*models.UserHealthProfile, error) {
- p := &models.UserHealthProfile{}
- err := s.rdb.Find(p, "user_id = ?", userId).Error
- if err == nil || err == gorm.ErrRecordNotFound {
- err = nil
- }
- return p, err
- }
-
- func (s *HealthProfileService) Get(id uint64) (models.UserHealthProfile, error) {
- p := &models.UserHealthProfile{}
- err := s.rdb.First(p, id).Error
- if err == nil || err == gorm.ErrRecordNotFound {
- err = nil
- }
- return *p, err
- }
-
- func (s *HealthProfileService) SavePatientInfo(userId uint64, realName string, idCard string, regPhone string) error {
- p, err := s.GetUserHealthProfileByUserId(userId)
- if err != nil {
- return err
- }
-
- if p == nil {
- p = &models.UserHealthProfile{}
- }
-
- p.UserId = userId
- p.RealName = realName
- p.InpatientRegPhone = regPhone
- p.IdCard = idCard
-
- if p.Id == 0 {
- return s.wdb.Create(p).Error
- }
- return s.wdb.Model(p).Update(p).Error
- }
-
- func (s *HealthProfileService) SaveHealthProfile(userId uint64, req models.SaveHealthProfileReq) error {
- p, err := s.GetUserHealthProfileByUserId(userId)
- if err != nil {
- return err
- }
-
- if p == nil {
- p = &models.UserHealthProfile{}
- }
-
- p.UserId = userId
-
- t := &models.Time{}
- var n time.Time
-
- if req.Birthday != "" {
-
- n, err = t.Parse(req.Birthday)
- if err != nil {
- return errors.New("Birthday参数格式不正确")
- }
- p.Birthday = n
-
- }
-
- p.BloodType = req.BloodType
- if req.CreatineTime != "" {
- n, err = t.Parse(req.CreatineTime)
- if err != nil {
- return errors.New("CreatineTime参数格式不正确")
- }
- p.CreatineTime = n
-
- }
-
- p.Creatinine = req.Creatinine
- p.CreatinineUnit = req.CreatinineUnit
- p.Gender = req.Gender
- p.Height = req.Height
- p.IllnessState = req.IllnessState
- p.RenalFunctionStatus = req.RenalFunctionStatus
- p.UrineProtein = req.UrineProtein
- p.UrineProtein24h = req.UrineProtein24h
- if req.UrineProtein24hTime != "" {
- n, err = t.Parse(req.UrineProtein24hTime)
- if err != nil {
- return errors.New("UrineProtein24hTime参数格式不正确")
- }
- p.UrineProtein24hTime = n
-
- }
- p.UrineProtein24hUnit = req.UrineProtein24hUnit
- if req.UrineProteinTime != "" {
- n, err = t.Parse(req.UrineProteinTime)
- if err != nil {
- return errors.New("UrineProteinTime参数格式不正确")
- }
- p.UrineProteinTime = n
- }
-
- p.UrineProteinUnit = req.UrineProteinUnit
- p.Weight = req.Weight
-
- if p.Id == 0 {
- return s.wdb.Create(p).Error
- }
- return s.wdb.Model(p).Update(p).Error
- }
-
- func (s *HealthProfileService) Save(p *models.UserHealthProfile) error {
- return s.wdb.Save(p).Error
- }
|