From 6751b1d312da884dada9bd25e1e0ef2149dae961 Mon Sep 17 00:00:00 2001 From: wucongxing <815046773@qq.com> Date: Thu, 20 Jul 2023 13:50:55 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=AD=A3=E4=BF=AE=E6=94=B9=E5=8C=BB?= =?UTF-8?q?=E7=94=9F=20=20=E9=93=B6=E8=A1=8C=E5=8D=A1=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- api/controller/adminPost.go | 1 + api/controller/hospital.go | 2 - api/controller/userDoctor.go | 8 -- api/service/user.go | 3 + api/service/userDoctor.go | 202 ++++++++++++++++++++++++++++++++++- 5 files changed, 205 insertions(+), 11 deletions(-) diff --git a/api/controller/adminPost.go b/api/controller/adminPost.go index 47344a8..2b91908 100644 --- a/api/controller/adminPost.go +++ b/api/controller/adminPost.go @@ -225,6 +225,7 @@ func (r *Post) GetPostList(c *gin.Context) { adminPostDao := dao.AdminPostDao{} maps := make(map[string]interface{}) + maps["post_status"] = 1 if roleRequest.GetPostList.PostName != "" { maps["post_name"] = roleRequest.GetPostList.PostName } diff --git a/api/controller/hospital.go b/api/controller/hospital.go index 8250926..aec8abe 100644 --- a/api/controller/hospital.go +++ b/api/controller/hospital.go @@ -2,7 +2,6 @@ package controller import ( - "fmt" "github.com/gin-gonic/gin" "hospital-admin-api/api/dao" "hospital-admin-api/api/requests" @@ -28,7 +27,6 @@ func (b *Hospital) GetHospitalLimit(c *gin.Context) { return } - fmt.Println(hospitalRequest.GetHospitalLimit) hospitalDao := dao.Hospital{} hospitals, err := hospitalDao.GetHospitalLimitByMaps(hospitalRequest.GetHospitalLimit) if err != nil { diff --git a/api/controller/userDoctor.go b/api/controller/userDoctor.go index 75bd618..ec678ef 100644 --- a/api/controller/userDoctor.go +++ b/api/controller/userDoctor.go @@ -96,14 +96,6 @@ func (r *UserDoctor) PutUserDoctor(c *gin.Context) { 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") if id == "" { responses.FailWithMessage("缺少参数", c) diff --git a/api/service/user.go b/api/service/user.go index 78fda8f..dca7f35 100644 --- a/api/service/user.go +++ b/api/service/user.go @@ -248,6 +248,9 @@ func (r *UserService) PutUser(c *gin.Context, requestUserId int64, putUserReques } // 检测角色 + if putUserRequest.RoleID == "" { + return false, errors.New("角色错误") + } roleID, err := strconv.ParseInt(putUserRequest.RoleID, 10, 64) if err != nil { return false, errors.New("角色错误") diff --git a/api/service/userDoctor.go b/api/service/userDoctor.go index c6c6e19..154a052 100644 --- a/api/service/userDoctor.go +++ b/api/service/userDoctor.go @@ -2,6 +2,7 @@ package service import ( "errors" + "fmt" "hospital-admin-api/api/dao" "hospital-admin-api/api/model" "hospital-admin-api/api/requests" @@ -136,9 +137,15 @@ func (r *UserDoctorService) PutUserDoctor(doctorId int64, req requests.PutUserDo return false, errors.New("医生身份审核中,不允许修改") } + // 获取医生绑定银行卡数据 + doctorBankCardDao := dao.DoctorBankCardDao{} + doctorBankCard, _ := doctorBankCardDao.GetDoctorBankCardByDoctorId(doctorId) + fmt.Println(doctorBankCard) + userDoctorData := make(map[string]interface{}) // 医生数据 userDoctorInfoData := make(map[string]interface{}) // 医生详情数据 userData := make(map[string]interface{}) // 用户数据 + // doctorBankCardData := make(map[string]interface{}) // 医生银行卡数据 // 处理头像 avatar := utils.RemoveOssDomain(req.Avatar) @@ -378,6 +385,123 @@ func (r *UserDoctorService) PutUserDoctor(doctorId int64, req requests.PutUserDo } } + // 处理银行卡 + if (userDoctorInfo.IdCardFront != "" || req.IdCardFront != "") && (userDoctorInfo.IdCardBack != "" || req.IdCardBack != "") && (userDoctorInfo.SignImage != "" || req.SignImage != "") { + // 签名、身份证数据不为空的情况下,银行卡数据必填 + if req.BankCardCode == "" || req.BankId == "" || req.BankCardProvinceId == 0 || req.BankCardCountyId == 0 || req.BankCardCityId == 0 { + return false, errors.New("请填入银行卡数据") + } + } + + var provinceId int + var province string + var cityId int + var city string + var countyId int + var county string + var bankId int64 + var bankCardCode string + var bankCardCodeMask string + + // 原银行卡数据存在的情况下,只允许重新替换,不允许删除 + if doctorBankCard != nil { + if req.BankCardProvinceId == 0 || req.BankCardCityId == 0 || req.BankCardCountyId == 0 || req.BankCardCode == "" || req.BankId == "" { + return false, errors.New("未上传新的银行卡数据") + } + + if doctorBankCard.ProvinceId != req.BankCardProvinceId { + provinceId = req.BankCardProvinceId + } + + if doctorBankCard.CityId != req.BankCardCityId { + cityId = req.BankCardCityId + } + + if doctorBankCard.CountyId != req.BankCardCountyId { + countyId = req.BankCardCountyId + } + + // 处理银行卡数据 + reqBankId, err := strconv.ParseInt(req.BankId, 10, 64) + if err != nil { + return false, errors.New("银行错误") + } + + if doctorBankCard.BankId != reqBankId { + bankId = reqBankId + } + + if doctorBankCard.BankCardCode != req.BankCardCode { + bankCardCode = req.BankCardCode + } + } else { + if req.BankCardCode != "" && req.BankId != "" && req.BankCardProvinceId != 0 && req.BankCardCountyId != 0 && req.BankCardCityId != 0 { + provinceId = req.BankCardProvinceId + cityId = req.BankCardCityId + countyId = req.BankCardCountyId + + bankId, err = strconv.ParseInt(req.BankId, 10, 64) + if err != nil { + return false, errors.New("银行错误") + } + + bankCardCode = req.BankCardCode + } + } + + areaDao := dao.AreaDao{} + if provinceId != 0 { + area, err := areaDao.GetAreaById(provinceId) + if err != nil || area == nil { + return false, errors.New("银行卡省份数据错误") + } + province = area.AreaName + } + + if cityId != 0 { + area, err := areaDao.GetAreaById(cityId) + if err != nil || area == nil { + return false, errors.New("银行卡城市数据错误") + } + city = area.AreaName + } + + if countyId != 0 { + area, err := areaDao.GetAreaById(countyId) + if err != nil || area == nil { + return false, errors.New("银行卡城市数据错误") + } + county = area.AreaName + } + + if bankId != 0 { + basicBankDao := dao.BasicBankDao{} + basicBank, err := basicBankDao.GetBasicBankById(bankId) + if err != nil || basicBank == nil { + return false, errors.New("银行数据错误") + } + } + + // 处理银行卡号掩码 + if bankCardCode != "" { + if len(bankCardCode) < 8 { + return false, errors.New("银行卡号错误") + } + + // 获取银行卡号的前4位和后4位 + start := bankCardCode[:4] + end := bankCardCode[len(bankCardCode)-4:] + // 拼接前4位、中间的 * 字符串和后4位 + bankCardCodeMask = start + "****" + end + } + + // 是否已绑定结算银行卡 + if provinceId != 0 && cityId != 0 && countyId != 0 && bankId != 0 && bankCardCode != "" { + if userDoctor.IsBindBank != 1 { + userDoctorData["is_bind_bank"] = 1 + } + } + // 开始事务 tx := global.Db.Begin() defer func() { @@ -458,6 +582,76 @@ func (r *UserDoctorService) PutUserDoctor(doctorId int64, req requests.PutUserDo } } + // 修改医生银行卡数据 + fmt.Println(provinceId) + fmt.Println(cityId) + fmt.Println(countyId) + fmt.Println(bankId) + fmt.Println(bankCardCode) + if doctorBankCard == nil { + if provinceId != 0 && cityId != 0 && countyId != 0 && bankId != 0 && 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: bankCardCode, + BankCardCodeMask: bankCardCodeMask, + ProvinceId: provinceId, + Province: province, + CityId: cityId, + City: city, + CountyId: countyId, + County: county, + } + doctorBankCardDao := dao.DoctorBankCardDao{} + + doctorBankCard, err = doctorBankCardDao.AddDoctorBankCard(tx, doctorBankCard) + if err != nil || doctorBankCard == nil { + tx.Rollback() + return false, errors.New(err.Error()) + } + } + } else { + // 修改 + doctorBankCardData := make(map[string]interface{}) // 医生银行卡数据 + if bankId != 0 { + doctorBankCardData["bank_id"] = bankId + } + + if bankCardCode != "" { + doctorBankCardData["bank_card_code"] = bankCardCode + doctorBankCardData["bank_card_code_mask"] = bankCardCodeMask + } + + if provinceId != 0 { + doctorBankCardData["province_id"] = provinceId + doctorBankCardData["province"] = province + } + + if cityId != 0 { + doctorBankCardData["city_id"] = cityId + doctorBankCardData["city"] = city + } + + if countyId != 0 { + doctorBankCardData["county_id"] = countyId + doctorBankCardData["county"] = county + } + + if len(doctorBankCardData) > 0 { + err = doctorBankCardDao.EditDoctorBankCardById(tx, doctorId, doctorBankCardData) + if err != nil { + tx.Rollback() + return false, errors.New("修改失败") + } + } + } + // 判断头像是否修改,同步修改im if userDoctor.Avatar != avatar { profileItem := []tencentIm.ProfileItem{ @@ -732,6 +926,12 @@ func (r *UserDoctorService) AddUserDoctor(userId string, req requests.AddUserDoc bankCardCodeMask = start + "****" + end } + // 是否已绑定结算银行卡 + var isBindBank int + if req.BankCardProvinceId != 0 && req.BankCardCityId != 0 && req.BankCardCountyId != 0 && req.BankId != "" && req.BankCardCode != "" { + isBindBank = 1 + } + // 开始事务 tx := global.Db.Begin() defer func() { @@ -767,7 +967,7 @@ func (r *UserDoctorService) AddUserDoctor(userId string, req requests.AddUserDoc IdcardStatus: 1, // 身份证默认审核通过 IdenAuthStatus: 2, MultiPointStatus: multiPointStatus, - IsBindBank: 0, + IsBindBank: isBindBank, IsRecommend: req.IsRecommend, Avatar: avatar, DoctorTitle: req.DoctorTitle,