修正银行卡问题
This commit is contained in:
parent
845ea4a000
commit
e9e03b22ea
@ -84,17 +84,26 @@ func (r *UserDoctor) GetUserDoctor(c *gin.Context) {
|
|||||||
// PutUserDoctor 修改医生
|
// PutUserDoctor 修改医生
|
||||||
func (r *UserDoctor) PutUserDoctor(c *gin.Context) {
|
func (r *UserDoctor) PutUserDoctor(c *gin.Context) {
|
||||||
userDoctorRequest := requests.UserDoctorRequest{}
|
userDoctorRequest := requests.UserDoctorRequest{}
|
||||||
if err := c.ShouldBindJSON(&userDoctorRequest.PutUserDoctor); err != nil {
|
req := userDoctorRequest.PutUserDoctor
|
||||||
|
if err := c.ShouldBindJSON(&req); err != nil {
|
||||||
responses.FailWithMessage(err.Error(), c)
|
responses.FailWithMessage(err.Error(), c)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
// 参数验证
|
// 参数验证
|
||||||
if err := global.Validate.Struct(userDoctorRequest.PutUserDoctor); err != nil {
|
if err := global.Validate.Struct(req); err != nil {
|
||||||
responses.FailWithMessage(utils.Translate(err), c)
|
responses.FailWithMessage(utils.Translate(err), c)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 签名、身份证数据不为空的情况下,银行卡必填
|
||||||
|
if req.IdCardFront != "" && req.IdCardBack != "" && req.SignImage != "" {
|
||||||
|
if req.BankCardCode == "" || req.BankId == "" || req.BankCardProvinceId == 0 || req.BankCardCountyId == 0 || req.BankCardCityId == 0 {
|
||||||
|
responses.FailWithMessage("请填入银行卡数据", c)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
id := c.Param("doctor_id")
|
id := c.Param("doctor_id")
|
||||||
if id == "" {
|
if id == "" {
|
||||||
responses.FailWithMessage("缺少参数", c)
|
responses.FailWithMessage("缺少参数", c)
|
||||||
@ -110,7 +119,7 @@ func (r *UserDoctor) PutUserDoctor(c *gin.Context) {
|
|||||||
|
|
||||||
// 业务处理
|
// 业务处理
|
||||||
userDoctorService := service.UserDoctorService{}
|
userDoctorService := service.UserDoctorService{}
|
||||||
_, err = userDoctorService.PutUserDoctor(doctorId, userDoctorRequest.PutUserDoctor)
|
_, err = userDoctorService.PutUserDoctor(doctorId, req)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
responses.FailWithMessage(err.Error(), c)
|
responses.FailWithMessage(err.Error(), c)
|
||||||
return
|
return
|
||||||
@ -122,17 +131,26 @@ func (r *UserDoctor) PutUserDoctor(c *gin.Context) {
|
|||||||
// AddUserDoctor 新增医生
|
// AddUserDoctor 新增医生
|
||||||
func (r *UserDoctor) AddUserDoctor(c *gin.Context) {
|
func (r *UserDoctor) AddUserDoctor(c *gin.Context) {
|
||||||
userDoctorRequest := requests.UserDoctorRequest{}
|
userDoctorRequest := requests.UserDoctorRequest{}
|
||||||
if err := c.ShouldBindJSON(&userDoctorRequest.AddUserDoctor); err != nil {
|
req := userDoctorRequest.AddUserDoctor
|
||||||
|
if err := c.ShouldBindJSON(&req); err != nil {
|
||||||
responses.FailWithMessage(err.Error(), c)
|
responses.FailWithMessage(err.Error(), c)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
// 参数验证
|
// 参数验证
|
||||||
if err := global.Validate.Struct(userDoctorRequest.AddUserDoctor); err != nil {
|
if err := global.Validate.Struct(req); err != nil {
|
||||||
responses.FailWithMessage(utils.Translate(err), c)
|
responses.FailWithMessage(utils.Translate(err), c)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 签名、身份证数据不为空的情况下,银行卡必填
|
||||||
|
if req.IdCardFront != "" && req.IdCardBack != "" && req.SignImage != "" {
|
||||||
|
if req.BankCardCode == "" || req.BankId == "" || req.BankCardProvinceId == 0 || req.BankCardCountyId == 0 || req.BankCardCityId == 0 {
|
||||||
|
responses.FailWithMessage("请填入银行卡数据", c)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// 获取当前登陆用户id
|
// 获取当前登陆用户id
|
||||||
userId := c.GetInt64("UserId")
|
userId := c.GetInt64("UserId")
|
||||||
if userId == 0 {
|
if userId == 0 {
|
||||||
@ -144,7 +162,7 @@ func (r *UserDoctor) AddUserDoctor(c *gin.Context) {
|
|||||||
|
|
||||||
// 业务处理
|
// 业务处理
|
||||||
userDoctorService := service.UserDoctorService{}
|
userDoctorService := service.UserDoctorService{}
|
||||||
_, err := userDoctorService.AddUserDoctor(userIdStr, userDoctorRequest.AddUserDoctor)
|
_, err := userDoctorService.AddUserDoctor(userIdStr, req)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
responses.FailWithMessage(err.Error(), c)
|
responses.FailWithMessage(err.Error(), c)
|
||||||
return
|
return
|
||||||
|
|||||||
@ -11,7 +11,7 @@ type AreaDao struct {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// GetAreaById 获取地区-地区id
|
// GetAreaById 获取地区-地区id
|
||||||
func (r *AreaDao) GetAreaById(areaId int64) (m *model.Area, err error) {
|
func (r *AreaDao) GetAreaById(areaId int) (m *model.Area, err error) {
|
||||||
err = global.Db.First(&m, areaId).Error
|
err = global.Db.First(&m, areaId).Error
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
@ -38,7 +38,7 @@ func (r *AreaDao) EditArea(tx *gorm.DB, maps interface{}, data interface{}) erro
|
|||||||
}
|
}
|
||||||
|
|
||||||
// EditAreaById 修改地区-医生id
|
// EditAreaById 修改地区-医生id
|
||||||
func (r *AreaDao) EditAreaById(tx *gorm.DB, areaId int64, data interface{}) error {
|
func (r *AreaDao) EditAreaById(tx *gorm.DB, areaId int, data interface{}) error {
|
||||||
err := tx.Model(&model.Area{}).Where("area_id = ?", areaId).Updates(data).Error
|
err := tx.Model(&model.Area{}).Where("area_id = ?", areaId).Updates(data).Error
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
|
|||||||
@ -49,6 +49,11 @@ type PutUserDoctor struct {
|
|||||||
IdCardBack string `json:"id_card_back" form:"id_card_back" label:"身份证背面图片"`
|
IdCardBack string `json:"id_card_back" form:"id_card_back" label:"身份证背面图片"`
|
||||||
SignImage string `json:"sign_image" form:"sign_image" label:"签名图片"`
|
SignImage string `json:"sign_image" form:"sign_image" label:"签名图片"`
|
||||||
DoctorExpertise []string `json:"doctor_expertise" form:"doctor_expertise" label:"专长"`
|
DoctorExpertise []string `json:"doctor_expertise" form:"doctor_expertise" label:"专长"`
|
||||||
|
BankId string `json:"bank_id" form:"bank_id" validate:"required_with_all=BankCardCode BankCardProvinceId BankCardCityId BankCardCountyId" label:"银行id"`
|
||||||
|
BankCardCode string `json:"bank_card_code" form:"bank_card_code" validate:"required_with_all=BankId BankCardProvinceId BankCardCityId BankCardCountyId" label:"银行卡号"`
|
||||||
|
BankCardProvinceId int `json:"bank_card_province_id" form:"bank_card_province_id" validate:"required_with_all=BankId BankCardCode BankCardCityId BankCardCountyId" label:"银行卡省份id"`
|
||||||
|
BankCardCityId int `json:"bank_card_city_id" form:"bank_card_city_id" validate:"required_with_all=BankId BankCardCode BankCardProvinceId BankCardCountyId" label:"银行卡城市id"`
|
||||||
|
BankCardCountyId int `json:"bank_card_county_id" form:"bank_card_county_id" validate:"required_with_all=BankId BankCardCode BankCardProvinceId BankCardCityId" label:"银行卡区县id"`
|
||||||
}
|
}
|
||||||
|
|
||||||
// AddUserDoctor 新增医生
|
// AddUserDoctor 新增医生
|
||||||
@ -74,6 +79,11 @@ type AddUserDoctor struct {
|
|||||||
SignImage string `json:"sign_image" form:"sign_image" label:"签名图片"`
|
SignImage string `json:"sign_image" form:"sign_image" label:"签名图片"`
|
||||||
CardNum string `json:"card_num" form:"card_num" validate:"required" label:"证件号码"`
|
CardNum string `json:"card_num" form:"card_num" validate:"required" label:"证件号码"`
|
||||||
DoctorExpertise []string `json:"doctor_expertise" form:"doctor_expertise" label:"专长"`
|
DoctorExpertise []string `json:"doctor_expertise" form:"doctor_expertise" label:"专长"`
|
||||||
|
BankId string `json:"bank_id" form:"bank_id" validate:"required_with_all=BankCardCode BankCardProvinceId BankCardCityId BankCardCountyId" label:"银行id"`
|
||||||
|
BankCardCode string `json:"bank_card_code" form:"bank_card_code" validate:"required_with_all=BankId BankCardProvinceId BankCardCityId BankCardCountyId" label:"银行卡号"`
|
||||||
|
BankCardProvinceId int `json:"bank_card_province_id" form:"bank_card_province_id" validate:"required_with_all=BankId BankCardCode BankCardCityId BankCardCountyId" label:"银行卡省份id"`
|
||||||
|
BankCardCityId int `json:"bank_card_city_id" form:"bank_card_city_id" validate:"required_with_all=BankId BankCardCode BankCardProvinceId BankCardCountyId" label:"银行卡城市id"`
|
||||||
|
BankCardCountyId int `json:"bank_card_county_id" form:"bank_card_county_id" validate:"required_with_all=BankId BankCardCode BankCardProvinceId BankCardCityId" label:"银行卡区县id"`
|
||||||
}
|
}
|
||||||
|
|
||||||
// GetUserDoctorPendingPage 身份审核-获取医生列表-分页
|
// GetUserDoctorPendingPage 身份审核-获取医生列表-分页
|
||||||
|
|||||||
@ -110,7 +110,7 @@ func (r *UserDoctorService) GetUserDoctor(doctorId int64) (getUserDoctorResponse
|
|||||||
}
|
}
|
||||||
|
|
||||||
// PutUserDoctor 修改医生
|
// PutUserDoctor 修改医生
|
||||||
func (r *UserDoctorService) PutUserDoctor(doctorId int64, putUserDoctorRequest requests.PutUserDoctor) (bool, error) {
|
func (r *UserDoctorService) PutUserDoctor(doctorId int64, req requests.PutUserDoctor) (bool, error) {
|
||||||
// 获取医生数据
|
// 获取医生数据
|
||||||
userDoctorDao := dao.UserDoctorDao{}
|
userDoctorDao := dao.UserDoctorDao{}
|
||||||
userDoctor, err := userDoctorDao.GetUserDoctorById(doctorId)
|
userDoctor, err := userDoctorDao.GetUserDoctorById(doctorId)
|
||||||
@ -141,19 +141,19 @@ func (r *UserDoctorService) PutUserDoctor(doctorId int64, putUserDoctorRequest r
|
|||||||
userData := make(map[string]interface{}) // 用户数据
|
userData := make(map[string]interface{}) // 用户数据
|
||||||
|
|
||||||
// 处理头像
|
// 处理头像
|
||||||
avatar := utils.RemoveOssDomain(putUserDoctorRequest.Avatar)
|
avatar := utils.RemoveOssDomain(req.Avatar)
|
||||||
if userDoctor.Avatar != avatar {
|
if userDoctor.Avatar != avatar {
|
||||||
userDoctorData["avatar"] = avatar
|
userDoctorData["avatar"] = avatar
|
||||||
userData["avatar"] = avatar
|
userData["avatar"] = avatar
|
||||||
}
|
}
|
||||||
|
|
||||||
// 处理职称
|
// 处理职称
|
||||||
if userDoctor.DoctorTitle != putUserDoctorRequest.DoctorTitle {
|
if userDoctor.DoctorTitle != req.DoctorTitle {
|
||||||
userDoctorData["doctor_title"] = putUserDoctorRequest.DoctorTitle
|
userDoctorData["doctor_title"] = req.DoctorTitle
|
||||||
}
|
}
|
||||||
|
|
||||||
// 处理科室
|
// 处理科室
|
||||||
departmentCustomId, err := strconv.ParseInt(putUserDoctorRequest.DepartmentCustomId, 10, 64)
|
departmentCustomId, err := strconv.ParseInt(req.DepartmentCustomId, 10, 64)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return false, errors.New("科室错误")
|
return false, errors.New("科室错误")
|
||||||
}
|
}
|
||||||
@ -161,7 +161,7 @@ func (r *UserDoctorService) PutUserDoctor(doctorId int64, putUserDoctorRequest r
|
|||||||
if departmentCustomId == 0 && userDoctor.DepartmentCustomId != 0 {
|
if departmentCustomId == 0 && userDoctor.DepartmentCustomId != 0 {
|
||||||
return false, errors.New("未选择新的科室")
|
return false, errors.New("未选择新的科室")
|
||||||
}
|
}
|
||||||
if userDoctor.DepartmentCustomId != departmentCustomId || userDoctor.DepartmentCustomName != putUserDoctorRequest.DepartmentCustomName {
|
if userDoctor.DepartmentCustomId != departmentCustomId || userDoctor.DepartmentCustomName != req.DepartmentCustomName {
|
||||||
// 获取科室数据
|
// 获取科室数据
|
||||||
hospitalDepartmentCustomDao := dao.HospitalDepartmentCustom{}
|
hospitalDepartmentCustomDao := dao.HospitalDepartmentCustom{}
|
||||||
hospitalDepartmentCustom, err := hospitalDepartmentCustomDao.GetHospitalDepartmentCustomById(departmentCustomId)
|
hospitalDepartmentCustom, err := hospitalDepartmentCustomDao.GetHospitalDepartmentCustomById(departmentCustomId)
|
||||||
@ -169,11 +169,11 @@ func (r *UserDoctorService) PutUserDoctor(doctorId int64, putUserDoctorRequest r
|
|||||||
return false, errors.New("科室错误")
|
return false, errors.New("科室错误")
|
||||||
}
|
}
|
||||||
|
|
||||||
userDoctorData["department_custom_id"] = putUserDoctorRequest.DepartmentCustomId
|
userDoctorData["department_custom_id"] = req.DepartmentCustomId
|
||||||
userDoctorData["department_custom_name"] = hospitalDepartmentCustom.DepartmentCustomName
|
userDoctorData["department_custom_name"] = hospitalDepartmentCustom.DepartmentCustomName
|
||||||
|
|
||||||
if putUserDoctorRequest.DepartmentCustomName != "" {
|
if req.DepartmentCustomName != "" {
|
||||||
userDoctorData["department_custom_name"] = putUserDoctorRequest.DepartmentCustomName
|
userDoctorData["department_custom_name"] = req.DepartmentCustomName
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -199,12 +199,12 @@ func (r *UserDoctorService) PutUserDoctor(doctorId int64, putUserDoctorRequest r
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 处理科室电话
|
// 处理科室电话
|
||||||
if userDoctor.DepartmentCustomMobile != putUserDoctorRequest.DepartmentCustomMobile {
|
if userDoctor.DepartmentCustomMobile != req.DepartmentCustomMobile {
|
||||||
userDoctorData["department_custom_id"] = putUserDoctorRequest.DepartmentCustomMobile
|
userDoctorData["department_custom_id"] = req.DepartmentCustomMobile
|
||||||
}
|
}
|
||||||
|
|
||||||
// 处理医院
|
// 处理医院
|
||||||
hospitalId, err := strconv.ParseInt(putUserDoctorRequest.HospitalId, 10, 64)
|
hospitalId, err := strconv.ParseInt(req.HospitalId, 10, 64)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return false, errors.New("科室错误")
|
return false, errors.New("科室错误")
|
||||||
}
|
}
|
||||||
@ -216,39 +216,39 @@ func (r *UserDoctorService) PutUserDoctor(doctorId int64, putUserDoctorRequest r
|
|||||||
if err != nil || hospital == nil {
|
if err != nil || hospital == nil {
|
||||||
return false, errors.New("医院错误")
|
return false, errors.New("医院错误")
|
||||||
}
|
}
|
||||||
userDoctorData["department_custom_id"] = putUserDoctorRequest.HospitalId
|
userDoctorData["department_custom_id"] = req.HospitalId
|
||||||
}
|
}
|
||||||
|
|
||||||
// 处理深度合作医生
|
// 处理深度合作医生
|
||||||
if userDoctor.IsPlatformDeepCooperation != putUserDoctorRequest.IsPlatformDeepCooperation {
|
if userDoctor.IsPlatformDeepCooperation != req.IsPlatformDeepCooperation {
|
||||||
userDoctorData["is_platform_deep_cooperation"] = putUserDoctorRequest.IsPlatformDeepCooperation
|
userDoctorData["is_platform_deep_cooperation"] = req.IsPlatformDeepCooperation
|
||||||
}
|
}
|
||||||
|
|
||||||
// 处理是否先思达合作医生
|
// 处理是否先思达合作医生
|
||||||
if userDoctor.IsSysDiagnoCooperation != putUserDoctorRequest.IsSysDiagnoCooperation {
|
if userDoctor.IsSysDiagnoCooperation != req.IsSysDiagnoCooperation {
|
||||||
userDoctorData["is_sys_diagno_cooperation"] = putUserDoctorRequest.IsSysDiagnoCooperation
|
userDoctorData["is_sys_diagno_cooperation"] = req.IsSysDiagnoCooperation
|
||||||
}
|
}
|
||||||
|
|
||||||
// 是否推荐
|
// 是否推荐
|
||||||
if userDoctor.IsRecommend != putUserDoctorRequest.IsRecommend {
|
if userDoctor.IsRecommend != req.IsRecommend {
|
||||||
userDoctorData["is_recommend"] = putUserDoctorRequest.IsRecommend
|
userDoctorData["is_recommend"] = req.IsRecommend
|
||||||
}
|
}
|
||||||
|
|
||||||
// 处理擅长
|
// 处理擅长
|
||||||
if userDoctor.BeGoodAt != putUserDoctorRequest.BeGoodAt {
|
if userDoctor.BeGoodAt != req.BeGoodAt {
|
||||||
userDoctorData["be_good_at"] = putUserDoctorRequest.BeGoodAt
|
userDoctorData["be_good_at"] = req.BeGoodAt
|
||||||
}
|
}
|
||||||
|
|
||||||
// 医生简介
|
// 医生简介
|
||||||
if userDoctor.BriefIntroduction != putUserDoctorRequest.BriefIntroduction {
|
if userDoctor.BriefIntroduction != req.BriefIntroduction {
|
||||||
userDoctorData["brief_introduction"] = putUserDoctorRequest.BriefIntroduction
|
userDoctorData["brief_introduction"] = req.BriefIntroduction
|
||||||
}
|
}
|
||||||
|
|
||||||
// 处理医师执业证
|
// 处理医师执业证
|
||||||
var licenseCert string
|
var licenseCert string
|
||||||
if len(putUserDoctorRequest.LicenseCert) > 0 {
|
if len(req.LicenseCert) > 0 {
|
||||||
result := make([]string, len(putUserDoctorRequest.LicenseCert))
|
result := make([]string, len(req.LicenseCert))
|
||||||
for i, url := range putUserDoctorRequest.LicenseCert {
|
for i, url := range req.LicenseCert {
|
||||||
result[i] = strings.TrimPrefix(url, config.C.Oss.OssCustomDomainName)
|
result[i] = strings.TrimPrefix(url, config.C.Oss.OssCustomDomainName)
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -265,9 +265,9 @@ func (r *UserDoctorService) PutUserDoctor(doctorId int64, putUserDoctorRequest r
|
|||||||
|
|
||||||
// 处理医师资格证
|
// 处理医师资格证
|
||||||
var qualificationCert string
|
var qualificationCert string
|
||||||
if len(putUserDoctorRequest.QualificationCert) > 0 {
|
if len(req.QualificationCert) > 0 {
|
||||||
result := make([]string, len(putUserDoctorRequest.QualificationCert))
|
result := make([]string, len(req.QualificationCert))
|
||||||
for i, url := range putUserDoctorRequest.QualificationCert {
|
for i, url := range req.QualificationCert {
|
||||||
result[i] = strings.TrimPrefix(url, config.C.Oss.OssCustomDomainName)
|
result[i] = strings.TrimPrefix(url, config.C.Oss.OssCustomDomainName)
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -284,9 +284,9 @@ func (r *UserDoctorService) PutUserDoctor(doctorId int64, putUserDoctorRequest r
|
|||||||
|
|
||||||
// 处理医师工作证
|
// 处理医师工作证
|
||||||
var workCert string
|
var workCert string
|
||||||
if len(putUserDoctorRequest.WorkCert) > 0 {
|
if len(req.WorkCert) > 0 {
|
||||||
result := make([]string, len(putUserDoctorRequest.WorkCert))
|
result := make([]string, len(req.WorkCert))
|
||||||
for i, url := range putUserDoctorRequest.WorkCert {
|
for i, url := range req.WorkCert {
|
||||||
result[i] = strings.TrimPrefix(url, config.C.Oss.OssCustomDomainName)
|
result[i] = strings.TrimPrefix(url, config.C.Oss.OssCustomDomainName)
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -302,12 +302,12 @@ func (r *UserDoctorService) PutUserDoctor(doctorId int64, putUserDoctorRequest r
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 处理身份证正面图片
|
// 处理身份证正面图片
|
||||||
if userDoctorInfo.IdCardFront != "" && putUserDoctorRequest.IdCardFront == "" {
|
if userDoctorInfo.IdCardFront != "" && req.IdCardFront == "" {
|
||||||
return false, errors.New("未上传新的身份证图片")
|
return false, errors.New("未上传新的身份证图片")
|
||||||
}
|
}
|
||||||
|
|
||||||
if putUserDoctorRequest.IdCardFront != "" {
|
if req.IdCardFront != "" {
|
||||||
idCardFront := strings.Replace(putUserDoctorRequest.IdCardFront, "https://img.applets.igandanyiyuan.com", "", 1)
|
idCardFront := strings.Replace(req.IdCardFront, "https://img.applets.igandanyiyuan.com", "", 1)
|
||||||
if idCardFront != userDoctorInfo.IdCardFront {
|
if idCardFront != userDoctorInfo.IdCardFront {
|
||||||
if userDoctor.MultiPointStatus == 2 {
|
if userDoctor.MultiPointStatus == 2 {
|
||||||
return false, errors.New("多点执业审核中,请操作后进行修改")
|
return false, errors.New("多点执业审核中,请操作后进行修改")
|
||||||
@ -317,11 +317,11 @@ func (r *UserDoctorService) PutUserDoctor(doctorId int64, putUserDoctorRequest r
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 身份证背面图片
|
// 身份证背面图片
|
||||||
if userDoctorInfo.IdCardBack != "" && putUserDoctorRequest.IdCardBack == "" {
|
if userDoctorInfo.IdCardBack != "" && req.IdCardBack == "" {
|
||||||
return false, errors.New("未上传新的身份证图片")
|
return false, errors.New("未上传新的身份证图片")
|
||||||
}
|
}
|
||||||
if putUserDoctorRequest.IdCardBack != "" {
|
if req.IdCardBack != "" {
|
||||||
idCardBack := strings.Replace(putUserDoctorRequest.IdCardBack, "https://img.applets.igandanyiyuan.com", "", 1)
|
idCardBack := strings.Replace(req.IdCardBack, "https://img.applets.igandanyiyuan.com", "", 1)
|
||||||
if idCardBack != userDoctorInfo.IdCardBack {
|
if idCardBack != userDoctorInfo.IdCardBack {
|
||||||
if userDoctor.MultiPointStatus == 2 {
|
if userDoctor.MultiPointStatus == 2 {
|
||||||
return false, errors.New("多点执业审核中,请操作后进行修改")
|
return false, errors.New("多点执业审核中,请操作后进行修改")
|
||||||
@ -332,11 +332,11 @@ func (r *UserDoctorService) PutUserDoctor(doctorId int64, putUserDoctorRequest r
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 签名图片
|
// 签名图片
|
||||||
if userDoctorInfo.SignImage != "" && putUserDoctorRequest.SignImage == "" {
|
if userDoctorInfo.SignImage != "" && req.SignImage == "" {
|
||||||
return false, errors.New("未上传新的签名图片")
|
return false, errors.New("未上传新的签名图片")
|
||||||
}
|
}
|
||||||
if putUserDoctorRequest.SignImage != "" {
|
if req.SignImage != "" {
|
||||||
signImage := utils.RemoveOssDomain(putUserDoctorRequest.SignImage)
|
signImage := utils.RemoveOssDomain(req.SignImage)
|
||||||
if signImage != userDoctorInfo.SignImage {
|
if signImage != userDoctorInfo.SignImage {
|
||||||
if userDoctor.MultiPointStatus == 2 {
|
if userDoctor.MultiPointStatus == 2 {
|
||||||
return false, errors.New("多点执业审核中,请操作后进行修改")
|
return false, errors.New("多点执业审核中,请操作后进行修改")
|
||||||
@ -362,10 +362,10 @@ func (r *UserDoctorService) PutUserDoctor(doctorId int64, putUserDoctorRequest r
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 处理专长
|
// 处理专长
|
||||||
if len(putUserDoctorRequest.DoctorExpertise) > 0 {
|
if len(req.DoctorExpertise) > 0 {
|
||||||
// 检测专长是否存在
|
// 检测专长是否存在
|
||||||
diseaseClassExpertiseDao := dao.DiseaseClassExpertiseDao{}
|
diseaseClassExpertiseDao := dao.DiseaseClassExpertiseDao{}
|
||||||
for _, v := range putUserDoctorRequest.DoctorExpertise {
|
for _, v := range req.DoctorExpertise {
|
||||||
expertiseId, err := strconv.ParseInt(v, 10, 64)
|
expertiseId, err := strconv.ParseInt(v, 10, 64)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return false, errors.New("专长错误")
|
return false, errors.New("专长错误")
|
||||||
@ -395,7 +395,7 @@ func (r *UserDoctorService) PutUserDoctor(doctorId int64, putUserDoctorRequest r
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// 修改医生详情数据
|
// 处理医生详情数据
|
||||||
if userDoctorInfo == nil {
|
if userDoctorInfo == nil {
|
||||||
// 新增医生详情表
|
// 新增医生详情表
|
||||||
if len(userDoctorInfoData) != 0 {
|
if len(userDoctorInfoData) != 0 {
|
||||||
@ -425,7 +425,7 @@ func (r *UserDoctorService) PutUserDoctor(doctorId int64, putUserDoctorRequest r
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 修改专长数据
|
// 修改专长数据
|
||||||
if len(putUserDoctorRequest.DoctorExpertise) > 0 {
|
if len(req.DoctorExpertise) > 0 {
|
||||||
doctorExpertiseDao := dao.DoctorExpertiseDao{}
|
doctorExpertiseDao := dao.DoctorExpertiseDao{}
|
||||||
|
|
||||||
// 删除原专长
|
// 删除原专长
|
||||||
@ -437,7 +437,7 @@ func (r *UserDoctorService) PutUserDoctor(doctorId int64, putUserDoctorRequest r
|
|||||||
return false, errors.New("修改失败")
|
return false, errors.New("修改失败")
|
||||||
}
|
}
|
||||||
|
|
||||||
for _, v := range putUserDoctorRequest.DoctorExpertise {
|
for _, v := range req.DoctorExpertise {
|
||||||
expertiseId, err := strconv.ParseInt(v, 10, 64)
|
expertiseId, err := strconv.ParseInt(v, 10, 64)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
tx.Rollback()
|
tx.Rollback()
|
||||||
@ -463,7 +463,7 @@ func (r *UserDoctorService) PutUserDoctor(doctorId int64, putUserDoctorRequest r
|
|||||||
profileItem := []tencentIm.ProfileItem{
|
profileItem := []tencentIm.ProfileItem{
|
||||||
{
|
{
|
||||||
Tag: "Tag_Profile_IM_Image",
|
Tag: "Tag_Profile_IM_Image",
|
||||||
Value: putUserDoctorRequest.Avatar,
|
Value: req.Avatar,
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
res, err := tencentIm.SetProfile(strconv.FormatInt(userDoctor.UserId, 10), profileItem)
|
res, err := tencentIm.SetProfile(strconv.FormatInt(userDoctor.UserId, 10), profileItem)
|
||||||
@ -474,8 +474,8 @@ func (r *UserDoctorService) PutUserDoctor(doctorId int64, putUserDoctorRequest r
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 处理签名图片-如果更改,查看是否已添加签章配置,会进行删除
|
// 处理签名图片-如果更改,查看是否已添加签章配置,会进行删除
|
||||||
if putUserDoctorRequest.SignImage != "" {
|
if req.SignImage != "" {
|
||||||
signImage := utils.RemoveOssDomain(putUserDoctorRequest.SignImage)
|
signImage := utils.RemoveOssDomain(req.SignImage)
|
||||||
if signImage != userDoctorInfo.SignImage {
|
if signImage != userDoctorInfo.SignImage {
|
||||||
// 检测是否存在云证书
|
// 检测是否存在云证书
|
||||||
userCaCertDao := dao.UserCaCert{}
|
userCaCertDao := dao.UserCaCert{}
|
||||||
@ -519,14 +519,14 @@ func (r *UserDoctorService) PutUserDoctor(doctorId int64, putUserDoctorRequest r
|
|||||||
}
|
}
|
||||||
|
|
||||||
// AddUserDoctor 新增医生
|
// AddUserDoctor 新增医生
|
||||||
func (r *UserDoctorService) AddUserDoctor(userId string, a requests.AddUserDoctor) (bool, error) {
|
func (r *UserDoctorService) AddUserDoctor(userId string, req requests.AddUserDoctor) (bool, error) {
|
||||||
userDoctorDao := dao.UserDoctorDao{}
|
userDoctorDao := dao.UserDoctorDao{}
|
||||||
userDao := dao.UserDao{}
|
userDao := dao.UserDao{}
|
||||||
userDoctorInfoDao := dao.UserDoctorInfoDao{}
|
userDoctorInfoDao := dao.UserDoctorInfoDao{}
|
||||||
|
|
||||||
// 检测手机号是否重复
|
// 检测手机号是否重复
|
||||||
maps := make(map[string]interface{})
|
maps := make(map[string]interface{})
|
||||||
maps["mobile"] = a.Mobile
|
maps["mobile"] = req.Mobile
|
||||||
users, err := userDao.GetUserList(maps)
|
users, err := userDao.GetUserList(maps)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return false, errors.New("新增失败")
|
return false, errors.New("新增失败")
|
||||||
@ -537,14 +537,14 @@ func (r *UserDoctorService) AddUserDoctor(userId string, a requests.AddUserDocto
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 检测身份证号码
|
// 检测身份证号码
|
||||||
res, err := utils.CheckCardNum(a.CardNum)
|
res, err := utils.CheckCardNum(req.CardNum)
|
||||||
if !res || err != nil {
|
if !res || err != nil {
|
||||||
return false, errors.New("身份证号错误")
|
return false, errors.New("身份证号错误")
|
||||||
}
|
}
|
||||||
|
|
||||||
// 检测身份证号是否重复
|
// 检测身份证号是否重复
|
||||||
maps = make(map[string]interface{})
|
maps = make(map[string]interface{})
|
||||||
maps["card_num"] = a.CardNum
|
maps["card_num"] = req.CardNum
|
||||||
userDoctorInfos, err := userDoctorInfoDao.GetUserDoctorInfoList(maps)
|
userDoctorInfos, err := userDoctorInfoDao.GetUserDoctorInfoList(maps)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return false, errors.New("新增失败")
|
return false, errors.New("新增失败")
|
||||||
@ -555,25 +555,25 @@ func (r *UserDoctorService) AddUserDoctor(userId string, a requests.AddUserDocto
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 处理年龄
|
// 处理年龄
|
||||||
age, err := utils.GetCardAge(a.CardNum)
|
age, err := utils.GetCardAge(req.CardNum)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return false, errors.New(err.Error())
|
return false, errors.New(err.Error())
|
||||||
}
|
}
|
||||||
|
|
||||||
// 处理性别
|
// 处理性别
|
||||||
sex, err := utils.GetCardSex(a.CardNum)
|
sex, err := utils.GetCardSex(req.CardNum)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return false, errors.New(err.Error())
|
return false, errors.New(err.Error())
|
||||||
}
|
}
|
||||||
|
|
||||||
// 身份证号码脱敏
|
// 身份证号码脱敏
|
||||||
cardNumMask := utils.GetMaskCardNum(a.CardNum)
|
cardNumMask := utils.GetMaskCardNum(req.CardNum)
|
||||||
|
|
||||||
// 身份证名称脱敏
|
// 身份证名称脱敏
|
||||||
cardNameMask := utils.GetMaskCardName(a.CardName)
|
cardNameMask := utils.GetMaskCardName(req.CardName)
|
||||||
|
|
||||||
// 检测科室
|
// 检测科室
|
||||||
departmentCustomId, err := strconv.ParseInt(a.DepartmentCustomId, 10, 64)
|
departmentCustomId, err := strconv.ParseInt(req.DepartmentCustomId, 10, 64)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return false, errors.New("科室错误")
|
return false, errors.New("科室错误")
|
||||||
}
|
}
|
||||||
@ -586,7 +586,7 @@ func (r *UserDoctorService) AddUserDoctor(userId string, a requests.AddUserDocto
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 检测医院
|
// 检测医院
|
||||||
hospitalId, err := strconv.ParseInt(a.HospitalId, 10, 64)
|
hospitalId, err := strconv.ParseInt(req.HospitalId, 10, 64)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return false, errors.New("医院错误")
|
return false, errors.New("医院错误")
|
||||||
}
|
}
|
||||||
@ -599,13 +599,13 @@ func (r *UserDoctorService) AddUserDoctor(userId string, a requests.AddUserDocto
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 处理头像
|
// 处理头像
|
||||||
avatar := utils.RemoveOssDomain(a.Avatar)
|
avatar := utils.RemoveOssDomain(req.Avatar)
|
||||||
|
|
||||||
// 处理医师执业证
|
// 处理医师执业证
|
||||||
var licenseCert string
|
var licenseCert string
|
||||||
if len(a.LicenseCert) > 0 {
|
if len(req.LicenseCert) > 0 {
|
||||||
result := make([]string, len(a.LicenseCert))
|
result := make([]string, len(req.LicenseCert))
|
||||||
for i, url := range a.LicenseCert {
|
for i, url := range req.LicenseCert {
|
||||||
result[i] = utils.RemoveOssDomain(url)
|
result[i] = utils.RemoveOssDomain(url)
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -614,9 +614,9 @@ func (r *UserDoctorService) AddUserDoctor(userId string, a requests.AddUserDocto
|
|||||||
|
|
||||||
// 处理医师资格证
|
// 处理医师资格证
|
||||||
var qualificationCert string
|
var qualificationCert string
|
||||||
if len(a.QualificationCert) > 0 {
|
if len(req.QualificationCert) > 0 {
|
||||||
result := make([]string, len(a.QualificationCert))
|
result := make([]string, len(req.QualificationCert))
|
||||||
for i, url := range a.QualificationCert {
|
for i, url := range req.QualificationCert {
|
||||||
result[i] = utils.RemoveOssDomain(url)
|
result[i] = utils.RemoveOssDomain(url)
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -625,9 +625,9 @@ func (r *UserDoctorService) AddUserDoctor(userId string, a requests.AddUserDocto
|
|||||||
|
|
||||||
// 处理医师资格证
|
// 处理医师资格证
|
||||||
var workCert string
|
var workCert string
|
||||||
if len(a.WorkCert) > 0 {
|
if len(req.WorkCert) > 0 {
|
||||||
result := make([]string, len(a.WorkCert))
|
result := make([]string, len(req.WorkCert))
|
||||||
for i, url := range a.WorkCert {
|
for i, url := range req.WorkCert {
|
||||||
result[i] = utils.RemoveOssDomain(url)
|
result[i] = utils.RemoveOssDomain(url)
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -638,30 +638,30 @@ func (r *UserDoctorService) AddUserDoctor(userId string, a requests.AddUserDocto
|
|||||||
var idCardFront string
|
var idCardFront string
|
||||||
var idCardBack string
|
var idCardBack string
|
||||||
|
|
||||||
if a.IdCardFront != "" {
|
if req.IdCardFront != "" {
|
||||||
idCardFront = utils.RemoveOssDomain(a.IdCardFront)
|
idCardFront = utils.RemoveOssDomain(req.IdCardFront)
|
||||||
}
|
}
|
||||||
if a.IdCardBack != "" {
|
if req.IdCardBack != "" {
|
||||||
idCardBack = utils.RemoveOssDomain(a.IdCardBack)
|
idCardBack = utils.RemoveOssDomain(req.IdCardBack)
|
||||||
}
|
}
|
||||||
|
|
||||||
// 处理签名图片
|
// 处理签名图片
|
||||||
var signImage string
|
var signImage string
|
||||||
if a.SignImage != "" {
|
if req.SignImage != "" {
|
||||||
signImage = utils.RemoveOssDomain(a.SignImage)
|
signImage = utils.RemoveOssDomain(req.SignImage)
|
||||||
}
|
}
|
||||||
|
|
||||||
// 多点执业状态
|
// 多点执业状态
|
||||||
var multiPointStatus int
|
var multiPointStatus int
|
||||||
if a.IdCardFront != "" && a.IdCardBack != "" && a.SignImage != "" && departmentCustomId != 0 {
|
if req.IdCardFront != "" && req.IdCardBack != "" && req.SignImage != "" && departmentCustomId != 0 {
|
||||||
multiPointStatus = 2
|
multiPointStatus = 2
|
||||||
}
|
}
|
||||||
|
|
||||||
// 处理专长
|
// 处理专长
|
||||||
if len(a.DoctorExpertise) > 0 {
|
if len(req.DoctorExpertise) > 0 {
|
||||||
// 检测专长是否存在
|
// 检测专长是否存在
|
||||||
diseaseClassExpertiseDao := dao.DiseaseClassExpertiseDao{}
|
diseaseClassExpertiseDao := dao.DiseaseClassExpertiseDao{}
|
||||||
for _, v := range a.DoctorExpertise {
|
for _, v := range req.DoctorExpertise {
|
||||||
expertiseId, err := strconv.ParseInt(v, 10, 64)
|
expertiseId, err := strconv.ParseInt(v, 10, 64)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return false, errors.New("专长错误")
|
return false, errors.New("专长错误")
|
||||||
@ -675,6 +675,63 @@ func (r *UserDoctorService) AddUserDoctor(userId string, a requests.AddUserDocto
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 处理银行卡省市区
|
||||||
|
areaDao := dao.AreaDao{}
|
||||||
|
var province string
|
||||||
|
if req.BankCardProvinceId != 0 {
|
||||||
|
area, err := areaDao.GetAreaById(req.BankCardProvinceId)
|
||||||
|
if err != nil || area == nil {
|
||||||
|
return false, errors.New("银行卡省份数据错误")
|
||||||
|
}
|
||||||
|
province = area.AreaName
|
||||||
|
}
|
||||||
|
|
||||||
|
var city string
|
||||||
|
if req.BankCardCityId != 0 {
|
||||||
|
area, err := areaDao.GetAreaById(req.BankCardCityId)
|
||||||
|
if err != nil || area == nil {
|
||||||
|
return false, errors.New("银行卡城市数据错误")
|
||||||
|
}
|
||||||
|
city = area.AreaName
|
||||||
|
}
|
||||||
|
|
||||||
|
var county string
|
||||||
|
if req.BankCardCountyId != 0 {
|
||||||
|
area, err := areaDao.GetAreaById(req.BankCardCountyId)
|
||||||
|
if err != nil || area == nil {
|
||||||
|
return false, errors.New("银行卡城市数据错误")
|
||||||
|
}
|
||||||
|
county = area.AreaName
|
||||||
|
}
|
||||||
|
|
||||||
|
// 处理银行卡数据
|
||||||
|
if req.BankId != "" {
|
||||||
|
bankId, err := strconv.ParseInt(req.BankId, 10, 64)
|
||||||
|
if err != nil {
|
||||||
|
return false, errors.New("银行错误")
|
||||||
|
}
|
||||||
|
|
||||||
|
basicBankDao := dao.BasicBankDao{}
|
||||||
|
basicBank, err := basicBankDao.GetBasicBankById(bankId)
|
||||||
|
if err != nil || basicBank == nil {
|
||||||
|
return false, errors.New("银行数据错误")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 处理银行卡号掩码
|
||||||
|
var bankCardCodeMask string
|
||||||
|
if req.BankCardCode != "" {
|
||||||
|
if len(req.BankCardCode) < 8 {
|
||||||
|
return false, errors.New("银行卡号错误")
|
||||||
|
}
|
||||||
|
|
||||||
|
// 获取银行卡号的前4位和后4位
|
||||||
|
start := req.BankCardCode[:4]
|
||||||
|
end := req.BankCardCode[len(req.BankCardCode)-4:]
|
||||||
|
// 拼接前4位、中间的 * 字符串和后4位
|
||||||
|
bankCardCodeMask = start + "****" + end
|
||||||
|
}
|
||||||
|
|
||||||
// 开始事务
|
// 开始事务
|
||||||
tx := global.Db.Begin()
|
tx := global.Db.Begin()
|
||||||
defer func() {
|
defer func() {
|
||||||
@ -685,9 +742,9 @@ func (r *UserDoctorService) AddUserDoctor(userId string, a requests.AddUserDocto
|
|||||||
|
|
||||||
// 新增用户表数据
|
// 新增用户表数据
|
||||||
user := &model.User{
|
user := &model.User{
|
||||||
UserName: a.CardName,
|
UserName: req.CardName,
|
||||||
Mobile: a.Mobile,
|
Mobile: req.Mobile,
|
||||||
WxMobile: a.Mobile,
|
WxMobile: req.Mobile,
|
||||||
UserType: 2,
|
UserType: 2,
|
||||||
UserStatus: 1,
|
UserStatus: 1,
|
||||||
RegisterMethod: 2,
|
RegisterMethod: 2,
|
||||||
@ -699,35 +756,34 @@ func (r *UserDoctorService) AddUserDoctor(userId string, a requests.AddUserDocto
|
|||||||
user, err = userDao.AddUser(tx, user)
|
user, err = userDao.AddUser(tx, user)
|
||||||
if err != nil || user == nil {
|
if err != nil || user == nil {
|
||||||
tx.Rollback()
|
tx.Rollback()
|
||||||
return false, err
|
return false, errors.New(err.Error())
|
||||||
}
|
}
|
||||||
|
|
||||||
// 新增医生表
|
// 新增医生表
|
||||||
userDoctor := &model.UserDoctor{
|
userDoctor := &model.UserDoctor{
|
||||||
UserId: user.UserId,
|
UserId: user.UserId,
|
||||||
UserName: a.CardName,
|
UserName: req.CardName,
|
||||||
Status: 1,
|
Status: 1,
|
||||||
IdcardStatus: 1, // 身份证默认审核通过
|
IdcardStatus: 1, // 身份证默认审核通过
|
||||||
IdenAuthStatus: 2,
|
IdenAuthStatus: 2,
|
||||||
MultiPointStatus: multiPointStatus,
|
MultiPointStatus: multiPointStatus,
|
||||||
IsBindBank: 0,
|
IsBindBank: 0,
|
||||||
IsRecommend: a.IsRecommend,
|
IsRecommend: req.IsRecommend,
|
||||||
Avatar: avatar,
|
Avatar: avatar,
|
||||||
DoctorTitle: a.DoctorTitle,
|
DoctorTitle: req.DoctorTitle,
|
||||||
DepartmentCustomId: departmentCustomId,
|
DepartmentCustomId: departmentCustomId,
|
||||||
DepartmentCustomName: a.DepartmentCustomName,
|
DepartmentCustomName: req.DepartmentCustomName,
|
||||||
DepartmentCustomMobile: a.DepartmentCustomMobile,
|
DepartmentCustomMobile: req.DepartmentCustomMobile,
|
||||||
HospitalID: hospitalId,
|
HospitalID: hospitalId,
|
||||||
IsPlatformDeepCooperation: a.IsPlatformDeepCooperation,
|
IsPlatformDeepCooperation: req.IsPlatformDeepCooperation,
|
||||||
IsSysDiagnoCooperation: a.IsSysDiagnoCooperation,
|
IsSysDiagnoCooperation: req.IsSysDiagnoCooperation,
|
||||||
BeGoodAt: a.BeGoodAt,
|
BeGoodAt: req.BeGoodAt,
|
||||||
BriefIntroduction: a.BriefIntroduction,
|
BriefIntroduction: req.BriefIntroduction,
|
||||||
}
|
}
|
||||||
|
|
||||||
userDoctor, err = userDoctorDao.AddUserDoctor(tx, userDoctor)
|
userDoctor, err = userDoctorDao.AddUserDoctor(tx, userDoctor)
|
||||||
if err != nil || userDoctor == nil {
|
if err != nil || userDoctor == nil {
|
||||||
tx.Rollback()
|
tx.Rollback()
|
||||||
return false, err
|
return false, errors.New(err.Error())
|
||||||
}
|
}
|
||||||
|
|
||||||
// 新增医生详情表
|
// 新增医生详情表
|
||||||
@ -735,9 +791,9 @@ func (r *UserDoctorService) AddUserDoctor(userId string, a requests.AddUserDocto
|
|||||||
UserId: user.UserId,
|
UserId: user.UserId,
|
||||||
DoctorId: userDoctor.DoctorId,
|
DoctorId: userDoctor.DoctorId,
|
||||||
CardType: 1,
|
CardType: 1,
|
||||||
CardName: a.CardName,
|
CardName: req.CardName,
|
||||||
CardNameMask: cardNameMask,
|
CardNameMask: cardNameMask,
|
||||||
CardNum: a.CardNum,
|
CardNum: req.CardNum,
|
||||||
CardNumMask: cardNumMask,
|
CardNumMask: cardNumMask,
|
||||||
LicenseCert: licenseCert,
|
LicenseCert: licenseCert,
|
||||||
QualificationCert: qualificationCert,
|
QualificationCert: qualificationCert,
|
||||||
@ -746,18 +802,45 @@ func (r *UserDoctorService) AddUserDoctor(userId string, a requests.AddUserDocto
|
|||||||
IdCardBack: idCardBack,
|
IdCardBack: idCardBack,
|
||||||
SignImage: signImage,
|
SignImage: signImage,
|
||||||
}
|
}
|
||||||
|
|
||||||
userDoctorInfo, err = userDoctorInfoDao.AddUserDoctorInfo(tx, userDoctorInfo)
|
userDoctorInfo, err = userDoctorInfoDao.AddUserDoctorInfo(tx, userDoctorInfo)
|
||||||
if err != nil || userDoctor == nil {
|
if err != nil || userDoctor == nil {
|
||||||
tx.Rollback()
|
tx.Rollback()
|
||||||
return false, err
|
return false, errors.New(err.Error())
|
||||||
|
}
|
||||||
|
|
||||||
|
// 新增医生银行卡表
|
||||||
|
if req.BankCardProvinceId != 0 && req.BankCardCityId != 0 && req.BankCardCountyId != 0 && req.BankId != "" && req.BankCardCode != "" {
|
||||||
|
bankId, err := strconv.ParseInt(req.BankId, 10, 64)
|
||||||
|
if err != nil {
|
||||||
|
return false, errors.New("银行错误")
|
||||||
|
}
|
||||||
|
|
||||||
|
doctorBankCard := &model.DoctorBankCard{
|
||||||
|
DoctorId: userDoctor.DoctorId,
|
||||||
|
BankId: bankId,
|
||||||
|
BankCardCode: req.BankCardCode,
|
||||||
|
BankCardCodeMask: bankCardCodeMask,
|
||||||
|
ProvinceId: req.BankCardProvinceId,
|
||||||
|
Province: province,
|
||||||
|
CityId: req.BankCardCityId,
|
||||||
|
City: city,
|
||||||
|
CountyId: req.BankCardCountyId,
|
||||||
|
County: county,
|
||||||
|
}
|
||||||
|
doctorBankCardDao := dao.DoctorBankCardDao{}
|
||||||
|
|
||||||
|
doctorBankCard, err = doctorBankCardDao.AddDoctorBankCard(tx, doctorBankCard)
|
||||||
|
if err != nil || doctorBankCard == nil {
|
||||||
|
tx.Rollback()
|
||||||
|
return false, errors.New(err.Error())
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// 修改专长数据
|
// 修改专长数据
|
||||||
if len(a.DoctorExpertise) > 0 {
|
if len(req.DoctorExpertise) > 0 {
|
||||||
doctorExpertiseDao := dao.DoctorExpertiseDao{}
|
doctorExpertiseDao := dao.DoctorExpertiseDao{}
|
||||||
|
|
||||||
for _, v := range a.DoctorExpertise {
|
for _, v := range req.DoctorExpertise {
|
||||||
expertiseId, err := strconv.ParseInt(v, 10, 64)
|
expertiseId, err := strconv.ParseInt(v, 10, 64)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
tx.Rollback()
|
tx.Rollback()
|
||||||
@ -779,7 +862,7 @@ func (r *UserDoctorService) AddUserDoctor(userId string, a requests.AddUserDocto
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 创建im账户
|
// 创建im账户
|
||||||
res, err = tencentIm.CreateAccount(strconv.FormatInt(userDoctor.UserId, 10), a.CardName, a.Avatar)
|
res, err = tencentIm.CreateAccount(strconv.FormatInt(userDoctor.UserId, 10), req.CardName, req.Avatar)
|
||||||
if err != nil || res != true {
|
if err != nil || res != true {
|
||||||
tx.Rollback()
|
tx.Rollback()
|
||||||
return false, errors.New(err.Error())
|
return false, errors.New(err.Error())
|
||||||
|
|||||||
@ -30,7 +30,7 @@ redis:
|
|||||||
# [jwt]
|
# [jwt]
|
||||||
jwt:
|
jwt:
|
||||||
sign-key: 123456 # 私钥
|
sign-key: 123456 # 私钥
|
||||||
ttl : 48 # 过期时间 小时
|
ttl : 1 # 过期时间 小时
|
||||||
algo : HS256 # 加密方式
|
algo : HS256 # 加密方式
|
||||||
|
|
||||||
oss:
|
oss:
|
||||||
|
|||||||
2
extend/aliyun/dysms.go
Normal file
2
extend/aliyun/dysms.go
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
// Package aliyun 短信
|
||||||
|
package aliyun
|
||||||
1
go.mod
1
go.mod
@ -19,6 +19,7 @@ require (
|
|||||||
)
|
)
|
||||||
|
|
||||||
require (
|
require (
|
||||||
|
github.com/alibabacloud-go/dysmsapi-20170525/v3 v3.0.6 // indirect
|
||||||
github.com/aliyun/aliyun-oss-go-sdk v2.2.7+incompatible // indirect
|
github.com/aliyun/aliyun-oss-go-sdk v2.2.7+incompatible // indirect
|
||||||
github.com/bwmarrin/snowflake v0.3.0 // indirect
|
github.com/bwmarrin/snowflake v0.3.0 // indirect
|
||||||
github.com/bytedance/sonic v1.9.1 // indirect
|
github.com/bytedance/sonic v1.9.1 // indirect
|
||||||
|
|||||||
42
go.sum
42
go.sum
@ -38,8 +38,26 @@ cloud.google.com/go/storage v1.14.0/go.mod h1:GrKmX003DSIwi9o29oFT7YDnHYwZoctc3f
|
|||||||
dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU=
|
dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU=
|
||||||
github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU=
|
github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU=
|
||||||
github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo=
|
github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo=
|
||||||
|
github.com/alibabacloud-go/alibabacloud-gateway-spi v0.0.4/go.mod h1:sCavSAvdzOjul4cEqeVtvlSaSScfNsTQ+46HwlTL1hc=
|
||||||
|
github.com/alibabacloud-go/darabonba-openapi/v2 v2.0.2/go.mod h1:5JHVmnHvGzR2wNdgaW1zDLQG8kOC4Uec8ubkMogW7OQ=
|
||||||
|
github.com/alibabacloud-go/debug v0.0.0-20190504072949-9472017b5c68/go.mod h1:6pb/Qy8c+lqua8cFpEy7g39NRRqOWc3rOwAy8m5Y2BY=
|
||||||
|
github.com/alibabacloud-go/dysmsapi-20170525/v3 v3.0.6 h1:UTl97mt2qfavxveqCkaVg4tKaZUPzA9RKbFIRaIdtdg=
|
||||||
|
github.com/alibabacloud-go/dysmsapi-20170525/v3 v3.0.6/go.mod h1:UWpcGrWwTbES9QW7OQ7xDffukMJ/l7lzioixIz8+lgY=
|
||||||
|
github.com/alibabacloud-go/endpoint-util v1.1.0/go.mod h1:O5FuCALmCKs2Ff7JFJMudHs0I5EBgecXXxZRyswlEjE=
|
||||||
|
github.com/alibabacloud-go/openapi-util v0.0.11/go.mod h1:sQuElr4ywwFRlCCberQwKRFhRzIyG4QTP/P4y1CJ6Ws=
|
||||||
|
github.com/alibabacloud-go/openapi-util v0.1.0/go.mod h1:sQuElr4ywwFRlCCberQwKRFhRzIyG4QTP/P4y1CJ6Ws=
|
||||||
|
github.com/alibabacloud-go/tea v1.1.0/go.mod h1:IkGyUSX4Ba1V+k4pCtJUc6jDpZLFph9QMy2VUPTwukg=
|
||||||
|
github.com/alibabacloud-go/tea v1.1.7/go.mod h1:/tmnEaQMyb4Ky1/5D+SE1BAsa5zj/KeGOFfwYm3N/p4=
|
||||||
|
github.com/alibabacloud-go/tea v1.1.8/go.mod h1:/tmnEaQMyb4Ky1/5D+SE1BAsa5zj/KeGOFfwYm3N/p4=
|
||||||
|
github.com/alibabacloud-go/tea v1.1.17/go.mod h1:nXxjm6CIFkBhwW4FQkNrolwbfon8Svy6cujmKFUq98A=
|
||||||
|
github.com/alibabacloud-go/tea v1.1.19/go.mod h1:nXxjm6CIFkBhwW4FQkNrolwbfon8Svy6cujmKFUq98A=
|
||||||
|
github.com/alibabacloud-go/tea-utils v1.3.1/go.mod h1:EI/o33aBfj3hETm4RLiAxF/ThQdSngxrpF8rKUDJjPE=
|
||||||
|
github.com/alibabacloud-go/tea-utils/v2 v2.0.0/go.mod h1:U5MTY10WwlquGPS34DOeomUGBB0gXbLueiq5Trwu0C4=
|
||||||
|
github.com/alibabacloud-go/tea-utils/v2 v2.0.3/go.mod h1:sj1PbjPodAVTqGTA3olprfeeqqmwD0A5OQz94o9EuXQ=
|
||||||
|
github.com/alibabacloud-go/tea-xml v1.1.2/go.mod h1:Rq08vgCcCAjHyRi/M7xlHKUykZCEtyBy9+DPF6GgEu8=
|
||||||
github.com/aliyun/aliyun-oss-go-sdk v2.2.7+incompatible h1:KpbJFXwhVeuxNtBJ74MCGbIoaBok2uZvkD7QXp2+Wis=
|
github.com/aliyun/aliyun-oss-go-sdk v2.2.7+incompatible h1:KpbJFXwhVeuxNtBJ74MCGbIoaBok2uZvkD7QXp2+Wis=
|
||||||
github.com/aliyun/aliyun-oss-go-sdk v2.2.7+incompatible/go.mod h1:T/Aws4fEfogEE9v+HPhhw+CntffsBHJ8nXQCwKr0/g8=
|
github.com/aliyun/aliyun-oss-go-sdk v2.2.7+incompatible/go.mod h1:T/Aws4fEfogEE9v+HPhhw+CntffsBHJ8nXQCwKr0/g8=
|
||||||
|
github.com/aliyun/credentials-go v1.1.2/go.mod h1:ozcZaMR5kLM7pwtCMEpVmQ242suV6qTJya2bDq4X1Tw=
|
||||||
github.com/bwmarrin/snowflake v0.3.0 h1:xm67bEhkKh6ij1790JB83OujPR5CzNe8QuQqAgISZN0=
|
github.com/bwmarrin/snowflake v0.3.0 h1:xm67bEhkKh6ij1790JB83OujPR5CzNe8QuQqAgISZN0=
|
||||||
github.com/bwmarrin/snowflake v0.3.0/go.mod h1:NdZxfVWX+oR6y2K0o6qAYv6gIOP9rjG0/E9WsDpxqwE=
|
github.com/bwmarrin/snowflake v0.3.0/go.mod h1:NdZxfVWX+oR6y2K0o6qAYv6gIOP9rjG0/E9WsDpxqwE=
|
||||||
github.com/bytedance/sonic v1.5.0/go.mod h1:ED5hyg4y6t3/9Ku1R6dU/4KyJ48DZ4jPhfY1O2AihPM=
|
github.com/bytedance/sonic v1.5.0/go.mod h1:ED5hyg4y6t3/9Ku1R6dU/4KyJ48DZ4jPhfY1O2AihPM=
|
||||||
@ -54,6 +72,7 @@ github.com/chenzhuoyu/base64x v0.0.0-20221115062448-fe3a3abad311/go.mod h1:b583j
|
|||||||
github.com/chzyer/logex v1.1.10/go.mod h1:+Ywpsq7O8HXn0nuIou7OrIPyXbp3wmkHB+jjWRnGsAI=
|
github.com/chzyer/logex v1.1.10/go.mod h1:+Ywpsq7O8HXn0nuIou7OrIPyXbp3wmkHB+jjWRnGsAI=
|
||||||
github.com/chzyer/readline v0.0.0-20180603132655-2972be24d48e/go.mod h1:nSuG5e5PlCu98SY8svDHJxuZscDgtXS6KTTbou5AhLI=
|
github.com/chzyer/readline v0.0.0-20180603132655-2972be24d48e/go.mod h1:nSuG5e5PlCu98SY8svDHJxuZscDgtXS6KTTbou5AhLI=
|
||||||
github.com/chzyer/test v0.0.0-20180213035817-a1ea475d72b1/go.mod h1:Q3SI9o4m/ZMnBNeIyt5eFwwo7qiLfzFZmjNmxjkiQlU=
|
github.com/chzyer/test v0.0.0-20180213035817-a1ea475d72b1/go.mod h1:Q3SI9o4m/ZMnBNeIyt5eFwwo7qiLfzFZmjNmxjkiQlU=
|
||||||
|
github.com/clbanning/mxj/v2 v2.5.5/go.mod h1:hNiWqW14h+kc+MdF9C6/YoRfjEJoR3ou6tn/Qo+ve2s=
|
||||||
github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw=
|
github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw=
|
||||||
github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc=
|
github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc=
|
||||||
github.com/cncf/udpa/go v0.0.0-20200629203442-efcf912fb354/go.mod h1:WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk=
|
github.com/cncf/udpa/go v0.0.0-20200629203442-efcf912fb354/go.mod h1:WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk=
|
||||||
@ -177,6 +196,8 @@ github.com/google/uuid v1.3.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+
|
|||||||
github.com/googleapis/gax-go/v2 v2.0.4/go.mod h1:0Wqv26UfaUD9n4G6kQubkQ+KchISgw+vpHVxEJEs9eg=
|
github.com/googleapis/gax-go/v2 v2.0.4/go.mod h1:0Wqv26UfaUD9n4G6kQubkQ+KchISgw+vpHVxEJEs9eg=
|
||||||
github.com/googleapis/gax-go/v2 v2.0.5/go.mod h1:DWXyrwAJ9X0FpwwEdw+IPEYBICEFu5mhpdKc/us6bOk=
|
github.com/googleapis/gax-go/v2 v2.0.5/go.mod h1:DWXyrwAJ9X0FpwwEdw+IPEYBICEFu5mhpdKc/us6bOk=
|
||||||
github.com/googleapis/google-cloud-go-testing v0.0.0-20200911160855-bcd43fbb19e8/go.mod h1:dvDLG8qkwmyD9a/MJJN3XJcT3xFxOKAvTZGvuZmac9g=
|
github.com/googleapis/google-cloud-go-testing v0.0.0-20200911160855-bcd43fbb19e8/go.mod h1:dvDLG8qkwmyD9a/MJJN3XJcT3xFxOKAvTZGvuZmac9g=
|
||||||
|
github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY=
|
||||||
|
github.com/gopherjs/gopherjs v0.0.0-20200217142428-fce0ec30dd00/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY=
|
||||||
github.com/hashicorp/golang-lru v0.5.0/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8=
|
github.com/hashicorp/golang-lru v0.5.0/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8=
|
||||||
github.com/hashicorp/golang-lru v0.5.1/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8=
|
github.com/hashicorp/golang-lru v0.5.1/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8=
|
||||||
github.com/hashicorp/hcl v1.0.0 h1:0Anlzjpi4vEasTeNFn2mLJgTSwt0+6sfsiTG8qcWGx4=
|
github.com/hashicorp/hcl v1.0.0 h1:0Anlzjpi4vEasTeNFn2mLJgTSwt0+6sfsiTG8qcWGx4=
|
||||||
@ -187,10 +208,12 @@ github.com/jinzhu/inflection v1.0.0 h1:K317FqzuhWc8YvSVlFMCCUb36O/S9MCKRDI7QkRKD
|
|||||||
github.com/jinzhu/inflection v1.0.0/go.mod h1:h+uFLlag+Qp1Va5pdKtLDYj+kHp5pxUVkryuEj+Srlc=
|
github.com/jinzhu/inflection v1.0.0/go.mod h1:h+uFLlag+Qp1Va5pdKtLDYj+kHp5pxUVkryuEj+Srlc=
|
||||||
github.com/jinzhu/now v1.1.5 h1:/o9tlHleP7gOFmsnYNz3RGnqzefHA47wQpKrrdTIwXQ=
|
github.com/jinzhu/now v1.1.5 h1:/o9tlHleP7gOFmsnYNz3RGnqzefHA47wQpKrrdTIwXQ=
|
||||||
github.com/jinzhu/now v1.1.5/go.mod h1:d3SSVoowX0Lcu0IBviAWJpolVfI5UJVZZ7cO71lE/z8=
|
github.com/jinzhu/now v1.1.5/go.mod h1:d3SSVoowX0Lcu0IBviAWJpolVfI5UJVZZ7cO71lE/z8=
|
||||||
|
github.com/json-iterator/go v1.1.10/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4=
|
||||||
github.com/json-iterator/go v1.1.12 h1:PV8peI4a0ysnczrg+LtxykD8LfKY9ML6u2jnxaEnrnM=
|
github.com/json-iterator/go v1.1.12 h1:PV8peI4a0ysnczrg+LtxykD8LfKY9ML6u2jnxaEnrnM=
|
||||||
github.com/json-iterator/go v1.1.12/go.mod h1:e30LSqwooZae/UwlEbR2852Gd8hjQvJoHmT4TnhNGBo=
|
github.com/json-iterator/go v1.1.12/go.mod h1:e30LSqwooZae/UwlEbR2852Gd8hjQvJoHmT4TnhNGBo=
|
||||||
github.com/jstemmer/go-junit-report v0.0.0-20190106144839-af01ea7f8024/go.mod h1:6v2b51hI/fHJwM22ozAgKL4VKDeJcHhJFhtBdhmNjmU=
|
github.com/jstemmer/go-junit-report v0.0.0-20190106144839-af01ea7f8024/go.mod h1:6v2b51hI/fHJwM22ozAgKL4VKDeJcHhJFhtBdhmNjmU=
|
||||||
github.com/jstemmer/go-junit-report v0.9.1/go.mod h1:Brl9GWCQeLvo8nXZwPNNblvFj/XSXhF0NWZEnDohbsk=
|
github.com/jstemmer/go-junit-report v0.9.1/go.mod h1:Brl9GWCQeLvo8nXZwPNNblvFj/XSXhF0NWZEnDohbsk=
|
||||||
|
github.com/jtolds/gls v4.20.0+incompatible/go.mod h1:QJZ7F/aHp+rZTRtaJ1ow/lLfFfVYBRgL+9YlvaHOwJU=
|
||||||
github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck=
|
github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck=
|
||||||
github.com/klauspost/cpuid/v2 v2.0.9/go.mod h1:FInQzS24/EEf25PyTYn52gqo7WaD8xa0213Md/qVLRg=
|
github.com/klauspost/cpuid/v2 v2.0.9/go.mod h1:FInQzS24/EEf25PyTYn52gqo7WaD8xa0213Md/qVLRg=
|
||||||
github.com/klauspost/cpuid/v2 v2.2.4 h1:acbojRNwl3o09bUq+yDCtZFc1aiwaAAxtcn8YkZXnvk=
|
github.com/klauspost/cpuid/v2 v2.2.4 h1:acbojRNwl3o09bUq+yDCtZFc1aiwaAAxtcn8YkZXnvk=
|
||||||
@ -212,10 +235,13 @@ github.com/mitchellh/mapstructure v1.5.0/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RR
|
|||||||
github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q=
|
github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q=
|
||||||
github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd h1:TRLaZ9cD/w8PVh93nsPXa1VrQ6jlwL5oN8l14QlcNfg=
|
github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd h1:TRLaZ9cD/w8PVh93nsPXa1VrQ6jlwL5oN8l14QlcNfg=
|
||||||
github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q=
|
github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q=
|
||||||
|
github.com/modern-go/reflect2 v0.0.0-20180701023420-4b7aa43c6742/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0=
|
||||||
|
github.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0=
|
||||||
github.com/modern-go/reflect2 v1.0.2 h1:xBagoLtFs94CBntxluKeaWgTMpvLxC4ur3nMaC9Gz0M=
|
github.com/modern-go/reflect2 v1.0.2 h1:xBagoLtFs94CBntxluKeaWgTMpvLxC4ur3nMaC9Gz0M=
|
||||||
github.com/modern-go/reflect2 v1.0.2/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk=
|
github.com/modern-go/reflect2 v1.0.2/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk=
|
||||||
github.com/mojocn/base64Captcha v1.3.5 h1:Qeilr7Ta6eDtG4S+tQuZ5+hO+QHbiGAJdi4PfoagaA0=
|
github.com/mojocn/base64Captcha v1.3.5 h1:Qeilr7Ta6eDtG4S+tQuZ5+hO+QHbiGAJdi4PfoagaA0=
|
||||||
github.com/mojocn/base64Captcha v1.3.5/go.mod h1:/tTTXn4WTpX9CfrmipqRytCpJ27Uw3G6I7NcP2WwcmY=
|
github.com/mojocn/base64Captcha v1.3.5/go.mod h1:/tTTXn4WTpX9CfrmipqRytCpJ27Uw3G6I7NcP2WwcmY=
|
||||||
|
github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e/go.mod h1:zD1mROLANZcx1PVRCS0qkT7pwLkGfwJo4zjcN/Tysno=
|
||||||
github.com/nxadm/tail v1.4.8 h1:nPr65rt6Y5JFSKQO7qToXr7pePgD6Gwiw05lkbyAQTE=
|
github.com/nxadm/tail v1.4.8 h1:nPr65rt6Y5JFSKQO7qToXr7pePgD6Gwiw05lkbyAQTE=
|
||||||
github.com/onsi/ginkgo v1.16.5 h1:8xi0RTUf59SOSfEtZMvwTvXYMzG4gV23XVHOZiXNtnE=
|
github.com/onsi/ginkgo v1.16.5 h1:8xi0RTUf59SOSfEtZMvwTvXYMzG4gV23XVHOZiXNtnE=
|
||||||
github.com/onsi/gomega v1.18.1 h1:M1GfJqGRrBrrGGsbxzV5dqM2U2ApXefZCQpkukxYRLE=
|
github.com/onsi/gomega v1.18.1 h1:M1GfJqGRrBrrGGsbxzV5dqM2U2ApXefZCQpkukxYRLE=
|
||||||
@ -230,6 +256,9 @@ github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFR
|
|||||||
github.com/rogpeppe/go-internal v1.9.0 h1:73kH8U+JUqXU8lRuOHeVHaa/SZPifC7BkcraZVejAe8=
|
github.com/rogpeppe/go-internal v1.9.0 h1:73kH8U+JUqXU8lRuOHeVHaa/SZPifC7BkcraZVejAe8=
|
||||||
github.com/sirupsen/logrus v1.9.2 h1:oxx1eChJGI6Uks2ZC4W1zpLlVgqB8ner4EuQwV4Ik1Y=
|
github.com/sirupsen/logrus v1.9.2 h1:oxx1eChJGI6Uks2ZC4W1zpLlVgqB8ner4EuQwV4Ik1Y=
|
||||||
github.com/sirupsen/logrus v1.9.2/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ=
|
github.com/sirupsen/logrus v1.9.2/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ=
|
||||||
|
github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc=
|
||||||
|
github.com/smartystreets/assertions v1.1.0/go.mod h1:tcbTF8ujkAEcZ8TElKY+i30BzYlVhC/LOxJk7iOWnoo=
|
||||||
|
github.com/smartystreets/goconvey v1.6.4/go.mod h1:syvi0/a8iFYH4r/RixwvyeAJjdLS9QV7WQ/tjFTllLA=
|
||||||
github.com/spf13/afero v1.9.5 h1:stMpOSZFs//0Lv29HduCmli3GUfpFoF3Y1Q/aXj/wVM=
|
github.com/spf13/afero v1.9.5 h1:stMpOSZFs//0Lv29HduCmli3GUfpFoF3Y1Q/aXj/wVM=
|
||||||
github.com/spf13/afero v1.9.5/go.mod h1:UBogFpq8E9Hx+xc5CNTTEpTnuHVmXDwZcZcE1eb/UhQ=
|
github.com/spf13/afero v1.9.5/go.mod h1:UBogFpq8E9Hx+xc5CNTTEpTnuHVmXDwZcZcE1eb/UhQ=
|
||||||
github.com/spf13/cast v1.5.1 h1:R+kOtfhWQE6TVQzY+4D7wJLBgkdVasCEFxSUBYBYIlA=
|
github.com/spf13/cast v1.5.1 h1:R+kOtfhWQE6TVQzY+4D7wJLBgkdVasCEFxSUBYBYIlA=
|
||||||
@ -241,6 +270,7 @@ github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An
|
|||||||
github.com/spf13/viper v1.16.0 h1:rGGH0XDZhdUOryiDWjmIvUSWpbNqisK8Wk0Vyefw8hc=
|
github.com/spf13/viper v1.16.0 h1:rGGH0XDZhdUOryiDWjmIvUSWpbNqisK8Wk0Vyefw8hc=
|
||||||
github.com/spf13/viper v1.16.0/go.mod h1:yg78JgCJcbrQOvV9YLXgkLaZqUidkY9K+Dd1FofRzQg=
|
github.com/spf13/viper v1.16.0/go.mod h1:yg78JgCJcbrQOvV9YLXgkLaZqUidkY9K+Dd1FofRzQg=
|
||||||
github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
|
github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
|
||||||
|
github.com/stretchr/objx v0.2.0/go.mod h1:qt09Ya8vawLte6SNmTgCsAVtYtaKzEcn8ATUoHMkEqE=
|
||||||
github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw=
|
github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw=
|
||||||
github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo=
|
github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo=
|
||||||
github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs=
|
github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs=
|
||||||
@ -258,12 +288,14 @@ github.com/subosito/gotenv v1.4.2 h1:X1TuBLAMDFbaTAChgCBLu3DU3UPyELpnF2jjJ2cz/S8
|
|||||||
github.com/subosito/gotenv v1.4.2/go.mod h1:ayKnFf/c6rvx/2iiLrJUk1e6plDbT3edrFNGqEflhK0=
|
github.com/subosito/gotenv v1.4.2/go.mod h1:ayKnFf/c6rvx/2iiLrJUk1e6plDbT3edrFNGqEflhK0=
|
||||||
github.com/tencentcloud/tencentcloud-sdk-go v3.0.233+incompatible h1:q+D/Y9jla3afgsIihtyhwyl0c2W+eRWNM9ohVwPiiPw=
|
github.com/tencentcloud/tencentcloud-sdk-go v3.0.233+incompatible h1:q+D/Y9jla3afgsIihtyhwyl0c2W+eRWNM9ohVwPiiPw=
|
||||||
github.com/tencentcloud/tencentcloud-sdk-go v3.0.233+incompatible/go.mod h1:0PfYow01SHPMhKY31xa+EFz2RStxIqj6JFAJS+IkCi4=
|
github.com/tencentcloud/tencentcloud-sdk-go v3.0.233+incompatible/go.mod h1:0PfYow01SHPMhKY31xa+EFz2RStxIqj6JFAJS+IkCi4=
|
||||||
|
github.com/tjfoc/gmsm v1.3.2/go.mod h1:HaUcFuY0auTiaHB9MHFGCPx5IaLhTUd2atbCFBQXn9w=
|
||||||
github.com/twitchyliquid64/golang-asm v0.15.1 h1:SU5vSMR7hnwNxj24w34ZyCi/FmDZTkS4MhqMhdFk5YI=
|
github.com/twitchyliquid64/golang-asm v0.15.1 h1:SU5vSMR7hnwNxj24w34ZyCi/FmDZTkS4MhqMhdFk5YI=
|
||||||
github.com/twitchyliquid64/golang-asm v0.15.1/go.mod h1:a1lVb/DtPvCB8fslRZhAngC2+aY1QWCk3Cedj/Gdt08=
|
github.com/twitchyliquid64/golang-asm v0.15.1/go.mod h1:a1lVb/DtPvCB8fslRZhAngC2+aY1QWCk3Cedj/Gdt08=
|
||||||
github.com/ugorji/go/codec v1.2.11 h1:BMaWp1Bb6fHwEtbplGBGJ498wD+LKlNSl25MjdZY4dU=
|
github.com/ugorji/go/codec v1.2.11 h1:BMaWp1Bb6fHwEtbplGBGJ498wD+LKlNSl25MjdZY4dU=
|
||||||
github.com/ugorji/go/codec v1.2.11/go.mod h1:UNopzCgEMSXjBc6AOMqYvWC1ktqTAfzJZUZgYf6w6lg=
|
github.com/ugorji/go/codec v1.2.11/go.mod h1:UNopzCgEMSXjBc6AOMqYvWC1ktqTAfzJZUZgYf6w6lg=
|
||||||
github.com/yuin/goldmark v1.1.25/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
|
github.com/yuin/goldmark v1.1.25/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
|
||||||
github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
|
github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
|
||||||
|
github.com/yuin/goldmark v1.1.30/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
|
||||||
github.com/yuin/goldmark v1.1.32/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
|
github.com/yuin/goldmark v1.1.32/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
|
||||||
github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
|
github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
|
||||||
github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY=
|
github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY=
|
||||||
@ -280,6 +312,8 @@ golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACk
|
|||||||
golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
|
golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
|
||||||
golang.org/x/crypto v0.0.0-20190605123033-f99c8df09eb5/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
|
golang.org/x/crypto v0.0.0-20190605123033-f99c8df09eb5/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
|
||||||
golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
|
golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
|
||||||
|
golang.org/x/crypto v0.0.0-20191219195013-becbf705a915/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
|
||||||
|
golang.org/x/crypto v0.0.0-20200510223506-06a226fb4e37/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
|
||||||
golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
|
golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
|
||||||
golang.org/x/crypto v0.0.0-20210421170649-83a5a9bb288b/go.mod h1:T9bdIzuCu7OtxOm1hfPfRQxPLYneinmdGuTeoZ9dtd4=
|
golang.org/x/crypto v0.0.0-20210421170649-83a5a9bb288b/go.mod h1:T9bdIzuCu7OtxOm1hfPfRQxPLYneinmdGuTeoZ9dtd4=
|
||||||
golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc=
|
golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc=
|
||||||
@ -358,6 +392,7 @@ golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v
|
|||||||
golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
|
golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
|
||||||
golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c=
|
golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c=
|
||||||
golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs=
|
golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs=
|
||||||
|
golang.org/x/net v0.7.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs=
|
||||||
golang.org/x/net v0.10.0 h1:X2//UzNDwYmtCLn7To6G58Wr6f5ahEAQgKNzv9Y951M=
|
golang.org/x/net v0.10.0 h1:X2//UzNDwYmtCLn7To6G58Wr6f5ahEAQgKNzv9Y951M=
|
||||||
golang.org/x/net v0.10.0/go.mod h1:0qNGK6F8kojg2nk9dLZ2mShWaEBan6FAoqfSigmmuDg=
|
golang.org/x/net v0.10.0/go.mod h1:0qNGK6F8kojg2nk9dLZ2mShWaEBan6FAoqfSigmmuDg=
|
||||||
golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U=
|
golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U=
|
||||||
@ -402,6 +437,7 @@ golang.org/x/sys v0.0.0-20200302150141-5c8b2ff67527/go.mod h1:h1NjWce9XRLGQEsW7w
|
|||||||
golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||||
golang.org/x/sys v0.0.0-20200331124033-c3d80250170d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
golang.org/x/sys v0.0.0-20200331124033-c3d80250170d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||||
golang.org/x/sys v0.0.0-20200501052902-10377860bb8e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
golang.org/x/sys v0.0.0-20200501052902-10377860bb8e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||||
|
golang.org/x/sys v0.0.0-20200509044756-6aff5f38e54f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||||
golang.org/x/sys v0.0.0-20200511232937-7e40ca221e25/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
golang.org/x/sys v0.0.0-20200511232937-7e40ca221e25/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||||
golang.org/x/sys v0.0.0-20200515095857-1151b9dac4a9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
golang.org/x/sys v0.0.0-20200515095857-1151b9dac4a9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||||
golang.org/x/sys v0.0.0-20200523222454-059865788121/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
golang.org/x/sys v0.0.0-20200523222454-059865788121/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||||
@ -450,6 +486,7 @@ golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3
|
|||||||
golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs=
|
golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs=
|
||||||
golang.org/x/tools v0.0.0-20190312151545-0bb0c0a6e846/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs=
|
golang.org/x/tools v0.0.0-20190312151545-0bb0c0a6e846/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs=
|
||||||
golang.org/x/tools v0.0.0-20190312170243-e65039ee4138/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs=
|
golang.org/x/tools v0.0.0-20190312170243-e65039ee4138/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs=
|
||||||
|
golang.org/x/tools v0.0.0-20190328211700-ab21143f2384/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs=
|
||||||
golang.org/x/tools v0.0.0-20190425150028-36563e24a262/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q=
|
golang.org/x/tools v0.0.0-20190425150028-36563e24a262/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q=
|
||||||
golang.org/x/tools v0.0.0-20190506145303-2d16b83fe98c/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q=
|
golang.org/x/tools v0.0.0-20190506145303-2d16b83fe98c/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q=
|
||||||
golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q=
|
golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q=
|
||||||
@ -478,6 +515,7 @@ golang.org/x/tools v0.0.0-20200304193943-95d2e580d8eb/go.mod h1:o4KQGtdN14AW+yjs
|
|||||||
golang.org/x/tools v0.0.0-20200312045724-11d5b4c81c7d/go.mod h1:o4KQGtdN14AW+yjsvvwRTJJuXz8XRtIHtEnmAXLyFUw=
|
golang.org/x/tools v0.0.0-20200312045724-11d5b4c81c7d/go.mod h1:o4KQGtdN14AW+yjsvvwRTJJuXz8XRtIHtEnmAXLyFUw=
|
||||||
golang.org/x/tools v0.0.0-20200331025713-a30bf2db82d4/go.mod h1:Sl4aGygMT6LrqrWclx+PTx3U+LnKx/seiNR+3G19Ar8=
|
golang.org/x/tools v0.0.0-20200331025713-a30bf2db82d4/go.mod h1:Sl4aGygMT6LrqrWclx+PTx3U+LnKx/seiNR+3G19Ar8=
|
||||||
golang.org/x/tools v0.0.0-20200501065659-ab2804fb9c9d/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE=
|
golang.org/x/tools v0.0.0-20200501065659-ab2804fb9c9d/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE=
|
||||||
|
golang.org/x/tools v0.0.0-20200509030707-2212a7e161a5/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE=
|
||||||
golang.org/x/tools v0.0.0-20200512131952-2bc93b1c0c88/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE=
|
golang.org/x/tools v0.0.0-20200512131952-2bc93b1c0c88/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE=
|
||||||
golang.org/x/tools v0.0.0-20200515010526-7d3b6ebf133d/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE=
|
golang.org/x/tools v0.0.0-20200515010526-7d3b6ebf133d/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE=
|
||||||
golang.org/x/tools v0.0.0-20200618134242-20370b0cb4b2/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE=
|
golang.org/x/tools v0.0.0-20200618134242-20370b0cb4b2/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE=
|
||||||
@ -591,11 +629,15 @@ google.golang.org/protobuf v1.30.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqw
|
|||||||
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
|
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
|
||||||
gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127 h1:qIbj1fsPNlZgppZ+VLlY7N33q108Sa+fhmuc+sWQYwY=
|
gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127 h1:qIbj1fsPNlZgppZ+VLlY7N33q108Sa+fhmuc+sWQYwY=
|
||||||
gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
|
gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
|
||||||
|
gopkg.in/check.v1 v1.0.0-20200227125254-8fa46927fb4f h1:BLraFXnmrev5lT+xlilqcH8XK9/i0At2xKjWk4p6zsU=
|
||||||
|
gopkg.in/check.v1 v1.0.0-20200227125254-8fa46927fb4f/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
|
||||||
gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI=
|
gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI=
|
||||||
|
gopkg.in/ini.v1 v1.56.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k=
|
||||||
gopkg.in/ini.v1 v1.67.0 h1:Dgnx+6+nfE+IfzjUEISNeydPJh9AXNNsWbGP9KzCsOA=
|
gopkg.in/ini.v1 v1.67.0 h1:Dgnx+6+nfE+IfzjUEISNeydPJh9AXNNsWbGP9KzCsOA=
|
||||||
gopkg.in/ini.v1 v1.67.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k=
|
gopkg.in/ini.v1 v1.67.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k=
|
||||||
gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7 h1:uRGJdciOHaEIrze2W8Q3AKkepLTh2hOroT7a+7czfdQ=
|
gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7 h1:uRGJdciOHaEIrze2W8Q3AKkepLTh2hOroT7a+7czfdQ=
|
||||||
gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
|
gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
|
||||||
|
gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
|
||||||
gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY=
|
gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY=
|
||||||
gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
|
gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
|
||||||
gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=
|
gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=
|
||||||
|
|||||||
@ -3,6 +3,7 @@ package utils
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"errors"
|
"errors"
|
||||||
|
"fmt"
|
||||||
"regexp"
|
"regexp"
|
||||||
"strconv"
|
"strconv"
|
||||||
"strings"
|
"strings"
|
||||||
@ -37,8 +38,10 @@ func GetCardAge(cardNum string) (int, error) {
|
|||||||
|
|
||||||
// CheckCardNum 检测身份证号
|
// CheckCardNum 检测身份证号
|
||||||
func CheckCardNum(cardNum string) (bool, error) {
|
func CheckCardNum(cardNum string) (bool, error) {
|
||||||
|
fmt.Println(cardNum)
|
||||||
regex := `^(?:1[1-5]|2[1-3]|3[1-7]|4[1-6]|5[0-4]|6[1-5])\d{4}(?:1[89]|20)\d{2}(?:0[1-9]|1[0-2])(?:0[1-9]|[12]\d|3[01])\d{3}[\dxX]$`
|
regex := `^(?:1[1-5]|2[1-3]|3[1-7]|4[1-6]|5[0-4]|6[1-5])\d{4}(?:1[89]|20)\d{2}(?:0[1-9]|1[0-2])(?:0[1-9]|[12]\d|3[01])\d{3}[\dxX]$`
|
||||||
match, err := regexp.MatchString(regex, cardNum)
|
match, err := regexp.MatchString(regex, cardNum)
|
||||||
|
fmt.Println(match)
|
||||||
if !match || err != nil {
|
if !match || err != nil {
|
||||||
return false, errors.New("身份证号错误")
|
return false, errors.New("身份证号错误")
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user