diff --git a/api/controller/User.go b/api/controller/User.go index 2ed758a..b1259af 100644 --- a/api/controller/User.go +++ b/api/controller/User.go @@ -52,6 +52,9 @@ func (r *User) GetUserInfo(c *gin.Context) { g := dto.GetUserInfoDto(userInfo) + // 加载数据-民族 + g.LoadNationId(userInfo.NationId) + // 加载数据-预产期 g.LoadExpectedDate(userInfo.ExpectedDate) diff --git a/api/dto/UserInfo.go b/api/dto/UserInfo.go index 3377f41..53e8f45 100644 --- a/api/dto/UserInfo.go +++ b/api/dto/UserInfo.go @@ -54,3 +54,12 @@ func (r *UserInfoDto) LoadExpectedDate(expectedDate *model.LocalTime) *UserInfoD return r } + +// LoadNationId 加载数据-民族 +func (r *UserInfoDto) LoadNationId(nationId *int64) *UserInfoDto { + if nationId != nil { + r.NationId = fmt.Sprintf("%d", *nationId) + } + + return r +} diff --git a/api/requests/User.go b/api/requests/User.go index 0996b6a..8409623 100644 --- a/api/requests/User.go +++ b/api/requests/User.go @@ -18,9 +18,9 @@ type PutUser struct { IsFamilyHistory *int `json:"is_family_history" form:"is_family_history" label:"是否存在家族病史" validate:"omitempty,oneof=0 1 2"` // 是否存在家族病史(0:未知 1:是 2:否) IsPregnant *int `json:"is_pregnant" form:"is_pregnant" label:"是否怀孕" validate:"omitempty,oneof=1 2 3 4"` ExpectedDate string `json:"expected_date" form:"expected_date" label:"预产期"` // 假设转换为可选字符串 - ProvinceId *int64 `json:"province_id" form:"province_id" label:"省份id" validate:"required"` // 从int转换为可选字符串 - CityId *int64 `json:"city_id" form:"city_id" label:"城市id" validate:"required"` // 从int转换为可选字符串 - CountyId *int64 `json:"county_id" form:"county_id" label:"区县id" validate:"required"` // 从int转换为可选字符串 + ProvinceId string `json:"province_id" form:"province_id" label:"省份id" validate:"required"` // 从int转换为可选字符串 + CityId string `json:"city_id" form:"city_id" label:"城市id" validate:"required"` // 从int转换为可选字符串 + CountyId string `json:"county_id" form:"county_id" label:"区县id" validate:"required"` // 从int转换为可选字符串 } // PutBindUserName 绑定用户数据-昵称 diff --git a/api/service/User.go b/api/service/User.go index 9d5016d..347dd77 100644 --- a/api/service/User.go +++ b/api/service/User.go @@ -14,6 +14,7 @@ import ( "io" "math/rand" "net/http" + "strconv" "time" ) @@ -818,59 +819,73 @@ func (r *UserService) PutUser(userId int64, req requests.PutUser) (bool, error) } // 省份id - appData.ProvId = req.ProvinceId + provinceId, err := strconv.ParseInt(req.ProvinceId, 10, 64) + if err != nil { + return false, errors.New("省份错误") + } + + appData.ProvId = &provinceId baseAreaDao := dao.BaseAreaDao{} - baseArea, err := baseAreaDao.GetBaseAreaById(*req.ProvinceId) + baseArea, err := baseAreaDao.GetBaseAreaById(provinceId) if err != nil { return false, errors.New("省份错误") } if userInfo.ProvinceId != nil { - if *req.ProvinceId != *userInfo.ProvinceId { - userInfoData["province_id"] = *req.ProvinceId + if provinceId != *userInfo.ProvinceId { + userInfoData["province_id"] = provinceId userInfoData["province"] = baseArea.Name } } else { - userInfoData["province_id"] = *req.ProvinceId + userInfoData["province_id"] = provinceId userInfoData["province"] = baseArea.Name } // 城市id - appData.CityId = req.CityId + cityId, err := strconv.ParseInt(req.CityId, 10, 64) + if err != nil { + return false, errors.New("城市错误") + } - baseArea, err = baseAreaDao.GetBaseAreaById(*req.CityId) + appData.CityId = &cityId + + baseArea, err = baseAreaDao.GetBaseAreaById(cityId) if err != nil { return false, errors.New("城市错误") } if userInfo.CityId != nil { - if *req.CityId != *userInfo.CityId { - userInfoData["city_id"] = *req.CityId + if cityId != *userInfo.CityId { + userInfoData["city_id"] = cityId userInfoData["city"] = baseArea.Name } } else { - userInfoData["city_id"] = *req.CityId + userInfoData["city_id"] = cityId userInfoData["city"] = baseArea.Name } // 区县id - appData.CountyId = req.CountyId + countyId, err := strconv.ParseInt(req.CountyId, 10, 64) + if err != nil { + return false, errors.New("区县错误") + } + appData.CountyId = &countyId - baseArea, err = baseAreaDao.GetBaseAreaById(*req.CountyId) + baseArea, err = baseAreaDao.GetBaseAreaById(countyId) if err != nil { return false, errors.New("城市错误") } if userInfo.CountyId != nil { - if *req.CountyId != *userInfo.CountyId { - userInfoData["county_id"] = *req.CountyId + if countyId != *userInfo.CountyId { + userInfoData["county_id"] = countyId userInfoData["county"] = baseArea.Name } } else { - userInfoData["county_id"] = *req.CountyId + userInfoData["county_id"] = countyId userInfoData["county"] = baseArea.Name }