Browse Source

绑定血透资料逻辑

Rick.Lan 1 month ago
parent
commit
dc1408f4d8

+ 12 - 0
conf/app.conf View File

37
 writemysqlpass = 1Q2W3e4r!@#$
37
 writemysqlpass = 1Q2W3e4r!@#$
38
 writemysqlname = sws_xcx
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
 #appid = "wx25576346fbca6905"
53
 #appid = "wx25576346fbca6905"
42
 #appsecret="f6d53ccb4a529dc4d3bd543a7634b6bd"
54
 #appsecret="f6d53ccb4a529dc4d3bd543a7634b6bd"

+ 1 - 1
controllers/login_api_controllor.go View File

56
 		c.ServeDynamicFailJsonSend(err.Error())
56
 		c.ServeDynamicFailJsonSend(err.Error())
57
 		return
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 View File

2
 
2
 
3
 import (
3
 import (
4
 	"encoding/json"
4
 	"encoding/json"
5
+	"fmt"
5
 	"sws_xcx/enums"
6
 	"sws_xcx/enums"
6
 	"sws_xcx/models"
7
 	"sws_xcx/models"
7
 	"sws_xcx/service"
8
 	"sws_xcx/service"
105
 		return
106
 		return
106
 	}
107
 	}
107
 
108
 
109
+	p, err1 := service.NewXcxUserService().GetMobilePatientInfo(req.Phone, req.RealName, req.IdCard)
110
+
108
 	err := c.updateCurrentUser(func(u *models.XcxUser) {
111
 	err := c.updateCurrentUser(func(u *models.XcxUser) {
109
 		u.Avatar = req.Avatar
112
 		u.Avatar = req.Avatar
110
 		u.Email = req.Email
113
 		u.Email = req.Email
111
 		u.NickName = req.NickName
114
 		u.NickName = req.NickName
112
 		u.Phone = req.Phone
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
 	if err != nil {
125
 	if err != nil {
128
 		return
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 View File

185
 	RoleType                int       `json:"role_type" gorm:"type:int(2); COMMENT:'角色类型 0或空:普通 1:管理员 2:测试'" description:"角色类型 0或空:普通 1:管理员 2:测试"`
185
 	RoleType                int       `json:"role_type" gorm:"type:int(2); COMMENT:'角色类型 0或空:普通 1:管理员 2:测试'" description:"角色类型 0或空:普通 1:管理员 2:测试"`
186
 	Source                  string    `json:"source" gorm:"type:varchar(255); COMMENT:'用户来源'" description:"用户来源"`
186
 	Source                  string    `json:"source" gorm:"type:varchar(255); COMMENT:'用户来源'" description:"用户来源"`
187
 	PrivacyProtocolVersions int       `json:"privacy_protocol_versions" gorm:"type:int(2); COMMENT:'隐私政策版本'" description:"隐私政策版本"`
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
 	Ctime                   time.Time `json:"ctime" gorm:"type:datetime; DEFAULT: CURRENT_TIMESTAMP; COMMENT:'创建时间'" description:"创建时间"`
190
 	Ctime                   time.Time `json:"ctime" gorm:"type:datetime; DEFAULT: CURRENT_TIMESTAMP; COMMENT:'创建时间'" description:"创建时间"`
189
 	Mtime                   time.Time `json:"mtime" gorm:"type:datetime; DEFAULT: CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP; COMMENT:'更新时间 '" description:"更新时间 "`
191
 	Mtime                   time.Time `json:"mtime" gorm:"type:datetime; DEFAULT: CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP; COMMENT:'更新时间 '" description:"更新时间 "`
190
 
192
 
194
 func (XcxUser) TableName() string {
196
 func (XcxUser) TableName() string {
195
 	return "xcx_user"
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 View File

14
 	return
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
 func (t Time) MarshalJSON() ([]byte, error) {
23
 func (t Time) MarshalJSON() ([]byte, error) {
18
 	b := make([]byte, 0, len(timeFormart)+2)
24
 	b := make([]byte, 0, len(timeFormart)+2)
19
 	b = append(b, '"')
25
 	b = append(b, '"')
30
 }
36
 }
31
 
37
 
32
 type WxXcxLoginResp struct {
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
 type SaveUserInfoReq struct {
45
 type SaveUserInfoReq struct {
72
 	Height              int    `json:"height" description:"身高"`
80
 	Height              int    `json:"height" description:"身高"`
73
 	Weight              int    `json:"weight" description:"体重"`
81
 	Weight              int    `json:"weight" description:"体重"`
74
 	BloodType           string `json:"blood_type" description:"血型"`
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
 	IllnessState        string `json:"illness_state" description:"病情"`
84
 	IllnessState        string `json:"illness_state" description:"病情"`
77
 	RenalFunctionStatus int    `json:"renal_function_status" description:"肾功能情况(0:未透析,1: 血液透析,2:腹膜透析,3:肾脏移植)"`
85
 	RenalFunctionStatus int    `json:"renal_function_status" description:"肾功能情况(0:未透析,1: 血液透析,2:腹膜透析,3:肾脏移植)"`
78
 	Creatinine          int    `json:"creatinine" description:"血肌酐"`
86
 	Creatinine          int    `json:"creatinine" description:"血肌酐"`
79
 	CreatinineUnit      string `json:"creatinine_unit" description:"肌酐单位(umol/L,mg/dl)"`
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
 	UrineProtein24hUnit string `json:"urine_protein_24h_unit" description:"24小时尿蛋白单位(g/24h,mg/24h)"`
89
 	UrineProtein24hUnit string `json:"urine_protein_24h_unit" description:"24小时尿蛋白单位(g/24h,mg/24h)"`
82
 	UrineProtein24h     int    `json:"urine_protein_24h" description:"24小时尿蛋白"`
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
 	UrineProtein        int    `json:"urine_protein" description:"尿蛋白"`
92
 	UrineProtein        int    `json:"urine_protein" description:"尿蛋白"`
85
 	UrineProteinUnit    string `json:"urine_protein_unit" description:"尿蛋白单位(g,mg)"`
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
 type HealthProfileResp struct {
97
 type HealthProfileResp struct {

+ 30 - 8
service/db.go View File

28
 var readDb *gorm.DB
28
 var readDb *gorm.DB
29
 var writeDb *gorm.DB
29
 var writeDb *gorm.DB
30
 
30
 
31
-// var readUserDb *gorm.DB
31
+var readUserDb *gorm.DB
32
+var readXtDb *gorm.DB
33
+
32
 // var writeUserDb *gorm.DB
34
 // var writeUserDb *gorm.DB
33
 
35
 
34
 // var readMiddleDb *gorm.DB
36
 // var readMiddleDb *gorm.DB
64
 	// readUserPass := beego.AppConfig.String("readuserpass")
66
 	// readUserPass := beego.AppConfig.String("readuserpass")
65
 	// readUserName := beego.AppConfig.String("readusername")
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
 	// writeUserHost := beego.AppConfig.String("writeuserhost")
75
 	// writeUserHost := beego.AppConfig.String("writeuserhost")
68
 	// writeUserPort := beego.AppConfig.String("writeuserport")
76
 	// writeUserPort := beego.AppConfig.String("writeuserport")
69
 	// writeUserUser := beego.AppConfig.String("writeuseruser")
77
 	// writeUserUser := beego.AppConfig.String("writeuseruser")
118
 	// writeUserPassT := beego.AppConfig.String("writeuserpassTest")
126
 	// writeUserPassT := beego.AppConfig.String("writeuserpassTest")
119
 	// writeUserNameT := beego.AppConfig.String("writeusernameTest")
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
 	// wudsn := fmt.Sprintf("%s:%s@tcp(%s:%s)/%s?charset=utf8mb4&parseTime=true", writeUserUser, writeUserPass, writeUserHost, writeUserPort, writeUserName)
134
 	// wudsn := fmt.Sprintf("%s:%s@tcp(%s:%s)/%s?charset=utf8mb4&parseTime=true", writeUserUser, writeUserPass, writeUserHost, writeUserPort, writeUserName)
126
 
135
 
127
 	// rmdsn := fmt.Sprintf("%s:%s@tcp(%s:%s)/%s?charset=utf8mb4&parseTime=true", readMiddleUser, readMiddlePass, readMiddleHost, readMiddlePort, readMiddleName)
136
 	// rmdsn := fmt.Sprintf("%s:%s@tcp(%s:%s)/%s?charset=utf8mb4&parseTime=true", readMiddleUser, readMiddlePass, readMiddleHost, readMiddlePort, readMiddleName)
170
 
179
 
171
 	// readUserDb, err = gorm.Open("mysql", rudsn)
180
 	// readUserDb, err = gorm.Open("mysql", rudsn)
172
 	// if err != nil {
181
 	// if err != nil {
173
-	// 	//beego.Error(err)
182
+	// 	utils.ErrorLog("init DB err %v", err)
174
 	// }
183
 	// }
175
 	// readUserDb.DB().SetMaxIdleConns(10)
184
 	// readUserDb.DB().SetMaxIdleConns(10)
176
 	// readUserDb.DB().SetMaxOpenConns(100)
185
 	// readUserDb.DB().SetMaxOpenConns(100)
177
 	// readUserDb.LogMode(true)
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
 	// writeUserDb, err = gorm.Open("mysql", wudsn)
196
 	// writeUserDb, err = gorm.Open("mysql", wudsn)
180
 	// if err != nil {
197
 	// if err != nil {
181
 	// 	//beego.Error(err)
198
 	// 	//beego.Error(err)
246
 	return writeDb
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
 // func UserWriteDB() *gorm.DB {
274
 // func UserWriteDB() *gorm.DB {
253
 // 	return writeUserDb
275
 // 	return writeUserDb
254
 // }
276
 // }

+ 40 - 4
service/userhealthprofileservice.go View File

1
 package service
1
 package service
2
 
2
 
3
 import (
3
 import (
4
+	"errors"
4
 	"sws_xcx/models"
5
 	"sws_xcx/models"
5
 	"time"
6
 	"time"
6
 
7
 
71
 	}
72
 	}
72
 
73
 
73
 	p.UserId = userId
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
 	p.BloodType = req.BloodType
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
 	p.Creatinine = req.Creatinine
99
 	p.Creatinine = req.Creatinine
78
 	p.CreatinineUnit = req.CreatinineUnit
100
 	p.CreatinineUnit = req.CreatinineUnit
79
 	p.Gender = req.Gender
101
 	p.Gender = req.Gender
82
 	p.RenalFunctionStatus = req.RenalFunctionStatus
104
 	p.RenalFunctionStatus = req.RenalFunctionStatus
83
 	p.UrineProtein = req.UrineProtein
105
 	p.UrineProtein = req.UrineProtein
84
 	p.UrineProtein24h = req.UrineProtein24h
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
 	p.UrineProtein24hUnit = req.UrineProtein24hUnit
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
 	p.UrineProteinUnit = req.UrineProteinUnit
124
 	p.UrineProteinUnit = req.UrineProteinUnit
89
 	p.Weight = req.Weight
125
 	p.Weight = req.Weight
90
 
126
 

+ 10 - 0
service/userservice.go View File

47
 	return db.Error
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 View File

60
 		t.Error(err)
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
+}