修正修改医生 银行卡问题

This commit is contained in:
wucongxing 2023-07-20 13:50:55 +08:00
parent de9dde6404
commit 6751b1d312
5 changed files with 205 additions and 11 deletions

View File

@ -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
}

View File

@ -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 {

View File

@ -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)

View File

@ -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("角色错误")

View File

@ -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,