Pārlūkot izejas kodu

绑定血透资料逻辑

Rick.Lan 1 mēnesi atpakaļ
vecāks
revīzija
dc1408f4d8

+ 12 - 0
conf/app.conf Parādīt failu

@@ -37,6 +37,18 @@ writemysqluser = root
37 37
 writemysqlpass = 1Q2W3e4r!@#$
38 38
 writemysqlname = sws_xcx
39 39
 
40
+readuserhost = rm-wz9rg531npf61q03tro.mysql.rds.aliyuncs.com
41
+readuserport = 3306
42
+readuseruser = root
43
+readuserpass = 1Q2W3e4r!@#$
44
+readusername = sgj_users
45
+
46
+readxthost = rm-wz9rg531npf61q03tro.mysql.rds.aliyuncs.com
47
+readxtport = 3306
48
+readxtuser = root
49
+readxtpass = 1Q2W3e4r!@#$
50
+readxtname = sgj_xt
51
+
40 52
 
41 53
 #appid = "wx25576346fbca6905"
42 54
 #appsecret="f6d53ccb4a529dc4d3bd543a7634b6bd"

+ 1 - 1
controllers/login_api_controllor.go Parādīt failu

@@ -56,6 +56,6 @@ func (c *LoginApiController) WxXcxLogin() {
56 56
 		c.ServeDynamicFailJsonSend(err.Error())
57 57
 		return
58 58
 	}
59
-	c.ServeSuccessJSON(models.WxXcxLoginResp{OpenId: u.OpenId, Token: t})
59
+	c.ServeSuccessJSON(models.WxXcxLoginResp{OpenId: u.OpenId, PatientId: u.PatientId, UserOrgId: u.UserOrgId, Token: t})
60 60
 
61 61
 }

+ 24 - 1
controllers/user_api_controller.go Parādīt failu

@@ -2,6 +2,7 @@ package controllers
2 2
 
3 3
 import (
4 4
 	"encoding/json"
5
+	"fmt"
5 6
 	"sws_xcx/enums"
6 7
 	"sws_xcx/models"
7 8
 	"sws_xcx/service"
@@ -105,11 +106,20 @@ func (c *UserApiController) SaveUserInfo() {
105 106
 		return
106 107
 	}
107 108
 
109
+	p, err1 := service.NewXcxUserService().GetMobilePatientInfo(req.Phone, req.RealName, req.IdCard)
110
+
108 111
 	err := c.updateCurrentUser(func(u *models.XcxUser) {
109 112
 		u.Avatar = req.Avatar
110 113
 		u.Email = req.Email
111 114
 		u.NickName = req.NickName
112 115
 		u.Phone = req.Phone
116
+		if p.ID > 0 {
117
+			u.PatientId = p.ID
118
+		}
119
+		if p.UserOrgId > 0 {
120
+			u.UserOrgId = p.UserOrgId
121
+		}
122
+
113 123
 	})
114 124
 
115 125
 	if err != nil {
@@ -128,7 +138,20 @@ func (c *UserApiController) SaveUserInfo() {
128 138
 		return
129 139
 	}
130 140
 
131
-	c.ServeSuccessJSON(new(interface{}))
141
+	if err1 != nil {
142
+		c.ServeDynamicFailJsonSend(fmt.Sprintf("资料已保存,透析资料绑定失败:%v", err))
143
+		return
144
+	}
145
+
146
+	if p.ID == 0 {
147
+		c.ServeDynamicFailJsonSend("资料已保存,找不到绑定的病友资料")
148
+		return
149
+	}
150
+
151
+	c.ServeSuccessJSON(map[string]interface{}{
152
+		"patient_id":  p.ID,
153
+		"user_org_id": p.UserOrgId,
154
+	})
132 155
 
133 156
 }
134 157
 

+ 94 - 0
models/dbmodels.go Parādīt failu

@@ -185,6 +185,8 @@ type XcxUser struct {
185 185
 	RoleType                int       `json:"role_type" gorm:"type:int(2); COMMENT:'角色类型 0或空:普通 1:管理员 2:测试'" description:"角色类型 0或空:普通 1:管理员 2:测试"`
186 186
 	Source                  string    `json:"source" gorm:"type:varchar(255); COMMENT:'用户来源'" description:"用户来源"`
187 187
 	PrivacyProtocolVersions int       `json:"privacy_protocol_versions" gorm:"type:int(2); COMMENT:'隐私政策版本'" description:"隐私政策版本"`
188
+	PatientId               int64     `gorm:"column:patient_id" json:"patient_id" form:"patient_id"`
189
+	UserOrgId               int64     `gorm:"column:user_org_id" json:"user_org_id" form:"user_org_id"`
188 190
 	Ctime                   time.Time `json:"ctime" gorm:"type:datetime; DEFAULT: CURRENT_TIMESTAMP; COMMENT:'创建时间'" description:"创建时间"`
189 191
 	Mtime                   time.Time `json:"mtime" gorm:"type:datetime; DEFAULT: CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP; COMMENT:'更新时间 '" description:"更新时间 "`
190 192
 
@@ -194,3 +196,95 @@ type XcxUser struct {
194 196
 func (XcxUser) TableName() string {
195 197
 	return "xcx_user"
196 198
 }
199
+
200
+type XcxPatients struct {
201
+	ID                           int64   `gorm:"column:id" json:"id" form:"id"`
202
+	UserOrgId                    int64   `gorm:"column:user_org_id" json:"user_org_id" form:"user_org_id"`
203
+	UserId                       int64   `gorm:"column:user_id" json:"user_id" form:"user_id"`
204
+	Avatar                       string  `gorm:"column:avatar" json:"avatar" form:"avatar"`
205
+	PatientType                  int64   `gorm:"column:patient_type" json:"patient_type" form:"patient_type"`
206
+	DialysisNo                   string  `gorm:"column:dialysis_no" json:"dialysis_no" form:"dialysis_no"`
207
+	AdmissionNumber              string  `gorm:"column:admission_number" json:"admission_number" form:"admission_number"`
208
+	Source                       int64   `gorm:"column:source" json:"source" form:"source"`
209
+	Lapseto                      int64   `gorm:"column:lapseto" json:"lapseto" form:"lapseto"`
210
+	PartitionId                  int64   `gorm:"column:partition_id" json:"partition_id" form:"partition_id"`
211
+	BedId                        int64   `gorm:"column:bed_id" json:"bed_id" form:"bed_id"`
212
+	Name                         string  `gorm:"column:name" json:"name" form:"name"`
213
+	Alias                        string  `gorm:"column:alias" json:"alias" form:"alias"`
214
+	Gender                       int64   `gorm:"column:gender" json:"gender" form:"gender"`
215
+	MaritalStatus                int64   `gorm:"column:marital_status" json:"marital_status" form:"marital_status"`
216
+	IdCardNo                     string  `gorm:"column:id_card_no" json:"id_card_no" form:"id_card_no"`
217
+	Birthday                     int64   `gorm:"column:birthday" json:"birthday" form:"birthday"`
218
+	ReimbursementWayId           int64   `gorm:"column:reimbursement_way_id" json:"reimbursement_way_id" form:"reimbursement_way_id"`
219
+	HealthCareType               int64   `gorm:"column:health_care_type" json:"health_care_type" form:"health_care_type"`
220
+	HealthCareNo                 string  `gorm:"column:health_care_no" json:"health_care_no" form:"health_care_no"`
221
+	HealthCareDueDate            int64   `gorm:"column:health_care_due_date" json:"health_care_due_date" form:"health_care_due_date"`
222
+	Height                       int64   `gorm:"column:height" json:"height" form:"height"`
223
+	BloodType                    int64   `gorm:"column:blood_type" json:"blood_type" form:"blood_type"`
224
+	Rh                           int64   `gorm:"column:rh" json:"rh" form:"rh"`
225
+	HealthCareDueAlertDate       int64   `gorm:"column:health_care_due_alert_date" json:"health_care_due_alert_date" form:"health_care_due_alert_date"`
226
+	EducationLevel               int64   `gorm:"column:education_level" json:"education_level" form:"education_level"`
227
+	Profession                   int64   `gorm:"column:profession" json:"profession" form:"profession"`
228
+	Phone                        string  `gorm:"column:phone" json:"phone" form:"phone"`
229
+	HomeTelephone                string  `gorm:"column:home_telephone" json:"home_telephone" form:"home_telephone"`
230
+	RelativePhone                string  `gorm:"column:relative_phone" json:"relative_phone" form:"relative_phone"`
231
+	RelativeRelations            string  `gorm:"column:relative_relations" json:"relative_relations" form:"relative_relations"`
232
+	HomeAddress                  string  `gorm:"column:home_address" json:"home_address" form:"home_address"`
233
+	WorkUnit                     string  `gorm:"column:work_unit" json:"work_unit" form:"work_unit"`
234
+	UnitAddress                  string  `gorm:"column:unit_address" json:"unit_address" form:"unit_address"`
235
+	Children                     int64   `gorm:"column:children" json:"children" form:"children"`
236
+	ReceivingDate                int64   `gorm:"column:receiving_date" json:"receiving_date" form:"receiving_date"`
237
+	IsHospitalFirstDialysis      int64   `gorm:"column:is_hospital_first_dialysis" json:"is_hospital_first_dialysis" form:"is_hospital_first_dialysis"`
238
+	FirstDialysisDate            int64   `gorm:"column:first_dialysis_date" json:"first_dialysis_date" form:"first_dialysis_date"`
239
+	FirstDialysisHospital        string  `gorm:"column:first_dialysis_hospital" json:"first_dialysis_hospital" form:"first_dialysis_hospital"`
240
+	PredialysisCondition         string  `gorm:"column:predialysis_condition" json:"predialysis_condition" form:"predialysis_condition"`
241
+	PreHospitalDialysisFrequency string  `gorm:"column:pre_hospital_dialysis_frequency" json:"pre_hospital_dialysis_frequency" form:"pre_hospital_dialysis_frequency"`
242
+	PreHospitalDialysisTimes     int64   `gorm:"column:pre_hospital_dialysis_times" json:"pre_hospital_dialysis_times" form:"pre_hospital_dialysis_times"`
243
+	HospitalFirstDialysisDate    int64   `gorm:"column:hospital_first_dialysis_date" json:"hospital_first_dialysis_date" form:"hospital_first_dialysis_date"`
244
+	InductionPeriod              int64   `gorm:"column:induction_period" json:"induction_period" form:"induction_period"`
245
+	InitialDialysis              int64   `gorm:"column:initial_dialysis" json:"initial_dialysis" form:"initial_dialysis"`
246
+	TotalDialysis                int64   `gorm:"column:total_dialysis" json:"total_dialysis" form:"total_dialysis"`
247
+	AttendingDoctorId            int64   `gorm:"column:attending_doctor_id" json:"attending_doctor_id" form:"attending_doctor_id"`
248
+	HeadNurseId                  int64   `gorm:"column:head_nurse_id" json:"head_nurse_id" form:"head_nurse_id"`
249
+	Evaluate                     string  `gorm:"column:evaluate" json:"evaluate" form:"evaluate"`
250
+	Diagnose                     string  `gorm:"column:diagnose" json:"diagnose" form:"diagnose"`
251
+	Remark                       string  `gorm:"column:remark" json:"remark" form:"remark"`
252
+	RegistrarsId                 int64   `gorm:"column:registrars_id" json:"registrars_id" form:"registrars_id"`
253
+	Registrars                   string  `gorm:"column:registrars" json:"registrars" form:"registrars"`
254
+	QrCode                       string  `gorm:"column:qr_code" json:"qr_code" form:"qr_code"`
255
+	BindingState                 int64   `gorm:"column:binding_state" json:"binding_state" form:"binding_state"`
256
+	PatientComplains             string  `gorm:"column:patient_complains" json:"patient_complains" form:"patient_complains"`
257
+	PresentHistory               string  `gorm:"column:present_history" json:"present_history" form:"present_history"`
258
+	PastHistory                  string  `gorm:"column:past_history" json:"past_history" form:"past_history"`
259
+	Temperature                  float64 `gorm:"column:temperature" json:"temperature" form:"temperature"`
260
+	Pulse                        int64   `gorm:"column:pulse" json:"pulse" form:"pulse"`
261
+	Respiratory                  int64   `gorm:"column:respiratory" json:"respiratory" form:"respiratory"`
262
+	Sbp                          int64   `gorm:"column:sbp" json:"sbp" form:"sbp"`
263
+	Dbp                          int64   `gorm:"column:dbp" json:"dbp" form:"dbp"`
264
+	Status                       int64   `gorm:"column:status" json:"status" form:"status"`
265
+	CreatedTime                  int64   `gorm:"column:created_time" json:"created_time" form:"created_time"`
266
+	UpdatedTime                  int64   `gorm:"column:updated_time" json:"updated_time" form:"updated_time"`
267
+	Nation                       string  `gorm:"column:nation" json:"nation" form:"nation"`
268
+	NativePlace                  string  `gorm:"column:native_place" json:"native_place" form:"native_place"`
269
+	Age                          int64   `gorm:"column:age" json:"age" form:"age"`
270
+	InfectiousNextRecordTime     int64   `gorm:"column:infectious_next_record_time" json:"infectious_next_record_time" form:"infectious_next_record_time"`
271
+	IsInfectious                 int64   `gorm:"column:is_infectious" json:"is_infectious" form:"is_infectious"`
272
+	RemindCycle                  int64   `gorm:"column:remind_cycle" json:"remind_cycle" form:"remind_cycle"`
273
+	ResponseResult               string  `gorm:"column:response_result" json:"response_result" form:"response_result"`
274
+	IsOpenRemind                 int64   `gorm:"column:is_open_remind" json:"is_open_remind" form:"is_open_remind"`
275
+	FirstTreatmentDate           int64   `gorm:"column:first_treatment_date" json:"first_treatment_date" form:"first_treatment_date"`
276
+	DialysisAge                  int64   `gorm:"column:dialysis_age" json:"dialysis_age" form:"dialysis_age"`
277
+	ExpenseKind                  int64   `gorm:"column:expense_kind" json:"expense_kind" form:"expense_kind"`
278
+	TellPhone                    string  `gorm:"column:tell_phone" json:"tell_phone" form:"tell_phone"`
279
+	ContactName                  string  `gorm:"column:contact_name" json:"contact_name" form:"contact_name"`
280
+	UserSysBeforeCount           int64   `gorm:"column:user_sys_before_count" json:"user_sys_before_count" form:"user_sys_before_count"`
281
+	IsExcelExport                int64   `gorm:"column:is_excel_export" json:"is_excel_export" form:"is_excel_export"`
282
+	SchRemark                    string  `gorm:"column:sch_remark" json:"sch_remark" form:"sch_remark"`
283
+	OutReason                    string  `gorm:"column:out_reason" json:"out_reason" form:"out_reason"`
284
+	DeathTime                    int64   `gorm:"column:death_time" json:"death_time" form:"death_time"`
285
+}
286
+
287
+func (XcxPatients) TableName() string {
288
+
289
+	return "xt_patients"
290
+}

+ 14 - 6
models/httpmodels.go Parādīt failu

@@ -14,6 +14,12 @@ func (t *Time) UnmarshalJSON(data []byte) (err error) {
14 14
 	return
15 15
 }
16 16
 
17
+func (t *Time) Parse(date string) (now time.Time, err error) {
18
+	now, err = time.ParseInLocation(timeFormart, date, time.Local)
19
+	*t = Time(now)
20
+	return
21
+}
22
+
17 23
 func (t Time) MarshalJSON() ([]byte, error) {
18 24
 	b := make([]byte, 0, len(timeFormart)+2)
19 25
 	b = append(b, '"')
@@ -30,8 +36,10 @@ type WxXcxLoginReq struct {
30 36
 }
31 37
 
32 38
 type WxXcxLoginResp struct {
33
-	Token  string `json:"token"`
34
-	OpenId string `json:"openid"`
39
+	Token     string `json:"token"`
40
+	OpenId    string `json:"openid"`
41
+	PatientId int64  ` json:"patient_id"`
42
+	UserOrgId int64  ` json:"user_org_id"`
35 43
 }
36 44
 
37 45
 type SaveUserInfoReq struct {
@@ -72,18 +80,18 @@ type SaveHealthProfileReq struct {
72 80
 	Height              int    `json:"height" description:"身高"`
73 81
 	Weight              int    `json:"weight" description:"体重"`
74 82
 	BloodType           string `json:"blood_type" description:"血型"`
75
-	Birthday            Time   `json:"birthday" description:"生日"`
83
+	Birthday            string `json:"birthday" description:"生日 yyyy-MM-dd HH:mm:ss"`
76 84
 	IllnessState        string `json:"illness_state" description:"病情"`
77 85
 	RenalFunctionStatus int    `json:"renal_function_status" description:"肾功能情况(0:未透析,1: 血液透析,2:腹膜透析,3:肾脏移植)"`
78 86
 	Creatinine          int    `json:"creatinine" description:"血肌酐"`
79 87
 	CreatinineUnit      string `json:"creatinine_unit" description:"肌酐单位(umol/L,mg/dl)"`
80
-	CreatineTime        Time   `json:"creatine_time" description:"肌酐检测时间"`
88
+	CreatineTime        string `json:"creatine_time" description:"肌酐检测时间 yyyy-MM-dd HH:mm:ss"`
81 89
 	UrineProtein24hUnit string `json:"urine_protein_24h_unit" description:"24小时尿蛋白单位(g/24h,mg/24h)"`
82 90
 	UrineProtein24h     int    `json:"urine_protein_24h" description:"24小时尿蛋白"`
83
-	UrineProtein24hTime Time   `json:"urine_protein_24h_time" description:"24小时尿蛋白检测时间"`
91
+	UrineProtein24hTime string `json:"urine_protein_24h_time" description:"24小时尿蛋白检测时间 yyyy-MM-dd HH:mm:ss"`
84 92
 	UrineProtein        int    `json:"urine_protein" description:"尿蛋白"`
85 93
 	UrineProteinUnit    string `json:"urine_protein_unit" description:"尿蛋白单位(g,mg)"`
86
-	UrineProteinTime    Time   `json:"urine_protein_time" description:"尿蛋白检测时间"`
94
+	UrineProteinTime    string `json:"urine_protein_time" description:"尿蛋白检测时间 yyyy-MM-dd HH:mm:ss"`
87 95
 }
88 96
 
89 97
 type HealthProfileResp struct {

+ 30 - 8
service/db.go Parādīt failu

@@ -28,7 +28,9 @@ import (
28 28
 var readDb *gorm.DB
29 29
 var writeDb *gorm.DB
30 30
 
31
-// var readUserDb *gorm.DB
31
+var readUserDb *gorm.DB
32
+var readXtDb *gorm.DB
33
+
32 34
 // var writeUserDb *gorm.DB
33 35
 
34 36
 // var readMiddleDb *gorm.DB
@@ -64,6 +66,12 @@ func ConnectDB() {
64 66
 	// readUserPass := beego.AppConfig.String("readuserpass")
65 67
 	// readUserName := beego.AppConfig.String("readusername")
66 68
 
69
+	readXtHost := beego.AppConfig.String("readxthost")
70
+	readXtPort := beego.AppConfig.String("readxtport")
71
+	readXtUser := beego.AppConfig.String("readxtuser")
72
+	readXtPass := beego.AppConfig.String("readxtpass")
73
+	readXtName := beego.AppConfig.String("readxtname")
74
+
67 75
 	// writeUserHost := beego.AppConfig.String("writeuserhost")
68 76
 	// writeUserPort := beego.AppConfig.String("writeuserport")
69 77
 	// writeUserUser := beego.AppConfig.String("writeuseruser")
@@ -118,10 +126,11 @@ func ConnectDB() {
118 126
 	// writeUserPassT := beego.AppConfig.String("writeuserpassTest")
119 127
 	// writeUserNameT := beego.AppConfig.String("writeusernameTest")
120 128
 
121
-	rdsn := fmt.Sprintf("%s:%s@tcp(%s:%s)/%s?charset=utf8mb4&parseTime=true", readUser, readPass, readHost, readPort, readName)
122
-	wdsn := fmt.Sprintf("%s:%s@tcp(%s:%s)/%s?charset=utf8mb4&parseTime=true", writeUser, writePass, writeHost, writePort, writeName)
129
+	rdsn := fmt.Sprintf("%s:%s@tcp(%s:%s)/%s?charset=utf8mb4&parseTime=true&loc=Local", readUser, readPass, readHost, readPort, readName)
130
+	wdsn := fmt.Sprintf("%s:%s@tcp(%s:%s)/%s?charset=utf8mb4&parseTime=true&loc=Local", writeUser, writePass, writeHost, writePort, writeName)
123 131
 
124
-	// rudsn := fmt.Sprintf("%s:%s@tcp(%s:%s)/%s?charset=utf8mb4&parseTime=true", readUserUser, readUserPass, readUserHost, readUserPort, readUserName)
132
+	//rudsn := fmt.Sprintf("%s:%s@tcp(%s:%s)/%s?charset=utf8mb4&parseTime=true", readUserUser, readUserPass, readUserHost, readUserPort, readUserName)
133
+	rxdsn := fmt.Sprintf("%s:%s@tcp(%s:%s)/%s?charset=utf8mb4&parseTime=true", readXtUser, readXtPass, readXtHost, readXtPort, readXtName)
125 134
 	// wudsn := fmt.Sprintf("%s:%s@tcp(%s:%s)/%s?charset=utf8mb4&parseTime=true", writeUserUser, writeUserPass, writeUserHost, writeUserPort, writeUserName)
126 135
 
127 136
 	// rmdsn := fmt.Sprintf("%s:%s@tcp(%s:%s)/%s?charset=utf8mb4&parseTime=true", readMiddleUser, readMiddlePass, readMiddleHost, readMiddlePort, readMiddleName)
@@ -170,12 +179,20 @@ func ConnectDB() {
170 179
 
171 180
 	// readUserDb, err = gorm.Open("mysql", rudsn)
172 181
 	// if err != nil {
173
-	// 	//beego.Error(err)
182
+	// 	utils.ErrorLog("init DB err %v", err)
174 183
 	// }
175 184
 	// readUserDb.DB().SetMaxIdleConns(10)
176 185
 	// readUserDb.DB().SetMaxOpenConns(100)
177 186
 	// readUserDb.LogMode(true)
178 187
 
188
+	readXtDb, err = gorm.Open("mysql", rxdsn)
189
+	if err != nil {
190
+		utils.ErrorLog("init DB err %v", err)
191
+	}
192
+	readXtDb.DB().SetMaxIdleConns(10)
193
+	readXtDb.DB().SetMaxOpenConns(100)
194
+	readXtDb.LogMode(true)
195
+
179 196
 	// writeUserDb, err = gorm.Open("mysql", wudsn)
180 197
 	// if err != nil {
181 198
 	// 	//beego.Error(err)
@@ -246,9 +263,14 @@ func WriteDB() *gorm.DB {
246 263
 	return writeDb
247 264
 }
248 265
 
249
-// func UserReadDB() *gorm.DB {
250
-// 	return readUserDb
251
-// }
266
+func ReadUserDB() *gorm.DB {
267
+	return readUserDb
268
+}
269
+
270
+func ReadXtDB() *gorm.DB {
271
+	return readXtDb
272
+}
273
+
252 274
 // func UserWriteDB() *gorm.DB {
253 275
 // 	return writeUserDb
254 276
 // }

+ 40 - 4
service/userhealthprofileservice.go Parādīt failu

@@ -1,6 +1,7 @@
1 1
 package service
2 2
 
3 3
 import (
4
+	"errors"
4 5
 	"sws_xcx/models"
5 6
 	"time"
6 7
 
@@ -71,9 +72,30 @@ func (s *HealthProfileService) SaveHealthProfile(userId uint64, req models.SaveH
71 72
 	}
72 73
 
73 74
 	p.UserId = userId
74
-	p.Birthday = time.Time(req.Birthday)
75
+
76
+	t := &models.Time{}
77
+	var n time.Time
78
+
79
+	if req.Birthday != "" {
80
+
81
+		n, err = t.Parse(req.Birthday)
82
+		if err != nil {
83
+			return errors.New("Birthday参数格式不正确")
84
+		}
85
+		p.Birthday = n
86
+
87
+	}
88
+
75 89
 	p.BloodType = req.BloodType
76
-	p.CreatineTime = time.Time(req.CreatineTime)
90
+	if req.CreatineTime != "" {
91
+		n, err = t.Parse(req.CreatineTime)
92
+		if err != nil {
93
+			return errors.New("CreatineTime参数格式不正确")
94
+		}
95
+		p.CreatineTime = n
96
+
97
+	}
98
+
77 99
 	p.Creatinine = req.Creatinine
78 100
 	p.CreatinineUnit = req.CreatinineUnit
79 101
 	p.Gender = req.Gender
@@ -82,9 +104,23 @@ func (s *HealthProfileService) SaveHealthProfile(userId uint64, req models.SaveH
82 104
 	p.RenalFunctionStatus = req.RenalFunctionStatus
83 105
 	p.UrineProtein = req.UrineProtein
84 106
 	p.UrineProtein24h = req.UrineProtein24h
85
-	p.UrineProtein24hTime = time.Time(req.UrineProtein24hTime)
107
+	if req.UrineProtein24hTime != "" {
108
+		n, err = t.Parse(req.UrineProtein24hTime)
109
+		if err != nil {
110
+			return errors.New("UrineProtein24hTime参数格式不正确")
111
+		}
112
+		p.UrineProtein24hTime = n
113
+
114
+	}
86 115
 	p.UrineProtein24hUnit = req.UrineProtein24hUnit
87
-	p.UrineProteinTime = time.Time(req.UrineProteinTime)
116
+	if req.UrineProteinTime != "" {
117
+		n, err = t.Parse(req.UrineProteinTime)
118
+		if err != nil {
119
+			return errors.New("UrineProteinTime参数格式不正确")
120
+		}
121
+		p.UrineProteinTime = n
122
+	}
123
+
88 124
 	p.UrineProteinUnit = req.UrineProteinUnit
89 125
 	p.Weight = req.Weight
90 126
 

+ 10 - 0
service/userservice.go Parādīt failu

@@ -47,3 +47,13 @@ func (s *XcxUserService) UpdateUser(user *models.XcxUser) error {
47 47
 	return db.Error
48 48
 
49 49
 }
50
+
51
+func (s *XcxUserService) GetMobilePatientInfo(mobile, name, idCard string) (models.XcxPatients, error) {
52
+
53
+	patients := models.XcxPatients{}
54
+	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
55
+	if err == gorm.ErrRecordNotFound {
56
+		err = nil
57
+	}
58
+	return patients, err
59
+}

+ 37 - 0
tests/gendb_test.go Parādīt failu

@@ -60,3 +60,40 @@ func TestHealthProfileService_SavePatientInfo(t *testing.T) {
60 60
 		t.Error(err)
61 61
 	}
62 62
 }
63
+
64
+func TestHealthProfileService_SaveHealthProfile(t *testing.T) {
65
+	s := service.NewUserHealthProfileService()
66
+	userId := uint64(1)
67
+	req := models.SaveHealthProfileReq{
68
+		Birthday: "2023-01-01 10:00:00",
69
+	}
70
+	err := s.SaveHealthProfile(userId, req)
71
+	if err != nil {
72
+		t.Error(err)
73
+		return
74
+	}
75
+
76
+	m, err := s.GetUserHealthProfileByUserId(userId)
77
+
78
+	if err != nil {
79
+		t.Error(err)
80
+		return
81
+	}
82
+	t.Log(models.Time(m.Birthday))
83
+
84
+}
85
+
86
+func TestGetMobilePatientInfo(t *testing.T) {
87
+
88
+	s := service.NewXcxUserService()
89
+	mobile := "13058102387"
90
+	name := "李搜"
91
+	idcard := "111222900901222"
92
+
93
+	p, err := s.GetMobilePatientInfo(mobile, name, idcard)
94
+	if err != nil {
95
+		t.Error(err)
96
+		return
97
+	}
98
+	t.Logf("%+v", p)
99
+}