新增了医院管理

This commit is contained in:
2024-06-03 11:47:52 +08:00
parent 62473de7fc
commit f6d6417acf
13 changed files with 752 additions and 288 deletions
+1 -1
View File
@@ -126,7 +126,7 @@ func (r *DoctorInquiryConfigService) GetDoctorInquiryConfig(inquiryConfigId int6
}
// 获取医生医院数据
hospitalDao := dao.Hospital{}
hospitalDao := dao.HospitalDao{}
hospital, err := hospitalDao.GetHospitalById(userDoctor.HospitalID)
// 获取系统问诊配置
+113
View File
@@ -0,0 +1,113 @@
package service
import (
"errors"
"fmt"
"hospital-admin-api/api/dao"
"hospital-admin-api/api/model"
"hospital-admin-api/api/requests"
"hospital-admin-api/global"
"strconv"
)
type AreaService struct{}
// AddArea 新增地区
func (r *AreaService) AddArea(req requests.AddArea) (bool, error) {
if *req.AreaType == 1 {
return false, errors.New("不可添加国家")
}
// 检测上级是否存在
maps := make(map[string]interface{})
maps["parent_id"] = req.ParentId
if *req.AreaType == 4 {
maps["area_type"] = 3
}
if *req.AreaType == 3 {
maps["area_type"] = 2
}
if *req.AreaType == 2 {
maps["area_type"] = 1
}
areaDao := dao.AreaDao{}
_, err := areaDao.GetAreaList(maps)
if err != nil {
return false, errors.New("上级地区错误")
}
// 开始事务
tx := global.Db.Begin()
defer func() {
if r := recover(); r != nil {
tx.Rollback()
fmt.Println(r)
}
}()
parentId, err := strconv.ParseInt(req.ParentId, 10, 64)
if err != nil {
tx.Rollback()
return false, errors.New("新增失败")
}
// 新增优惠卷表
area := &model.Area{
AreaName: req.AreaName,
ParentId: parentId,
Zip: req.Zip,
AreaType: *req.AreaType,
}
area, err = areaDao.AddArea(tx, area)
if err != nil || area == nil {
tx.Rollback()
return false, errors.New(err.Error())
}
tx.Commit()
return true, nil
}
// PutArea 修改地区
func (r *AreaService) PutArea(areaId int, req requests.PutArea) (bool, error) {
areaDao := dao.AreaDao{}
area, err := areaDao.GetAreaById(areaId)
if err != nil {
return false, err
}
// 开始事务
tx := global.Db.Begin()
defer func() {
if r := recover(); r != nil {
tx.Rollback()
fmt.Println(r)
}
}()
areaData := make(map[string]interface{})
if req.AreaName != area.AreaName {
areaData["area_name"] = req.AreaName
}
if req.Zip != "" {
if req.Zip != area.Zip {
areaData["zip"] = req.Zip
}
}
if len(areaData) > 0 {
err = areaDao.EditAreaById(tx, areaId, areaData)
if err != nil || area == nil {
tx.Rollback()
return false, errors.New(err.Error())
}
}
tx.Commit()
return true, nil
}
-110
View File
@@ -1,113 +1,3 @@
package service
import (
"errors"
"fmt"
"hospital-admin-api/api/dao"
"hospital-admin-api/api/model"
"hospital-admin-api/api/requests"
"hospital-admin-api/global"
"strconv"
)
type BasicService struct{}
// AddArea 新增地区
func (r *BasicService) AddArea(req requests.AddArea) (bool, error) {
if *req.AreaType == 1 {
return false, errors.New("不可添加国家")
}
// 检测上级是否存在
maps := make(map[string]interface{})
maps["parent_id"] = req.ParentId
if *req.AreaType == 4 {
maps["area_type"] = 3
}
if *req.AreaType == 3 {
maps["area_type"] = 2
}
if *req.AreaType == 2 {
maps["area_type"] = 1
}
areaDao := dao.AreaDao{}
_, err := areaDao.GetAreaList(maps)
if err != nil {
return false, errors.New("上级地区错误")
}
// 开始事务
tx := global.Db.Begin()
defer func() {
if r := recover(); r != nil {
tx.Rollback()
fmt.Println(r)
}
}()
parentId, err := strconv.ParseInt(req.ParentId, 10, 64)
if err != nil {
tx.Rollback()
return false, errors.New("新增失败")
}
// 新增优惠卷表
area := &model.Area{
AreaName: req.AreaName,
ParentId: parentId,
Zip: req.Zip,
AreaType: *req.AreaType,
}
area, err = areaDao.AddArea(tx, area)
if err != nil || area == nil {
tx.Rollback()
return false, errors.New(err.Error())
}
tx.Commit()
return true, nil
}
// PutArea 修改地区
func (r *BasicService) PutArea(areaId int, req requests.PutArea) (bool, error) {
areaDao := dao.AreaDao{}
area, err := areaDao.GetAreaById(areaId)
if err != nil {
return false, err
}
// 开始事务
tx := global.Db.Begin()
defer func() {
if r := recover(); r != nil {
tx.Rollback()
fmt.Println(r)
}
}()
areaData := make(map[string]interface{})
if req.AreaName != area.AreaName {
areaData["area_name"] = req.AreaName
}
if req.Zip != "" {
if req.Zip != area.Zip {
areaData["zip"] = req.Zip
}
}
if len(areaData) > 0 {
err = areaDao.EditAreaById(tx, areaId, areaData)
if err != nil || area == nil {
tx.Rollback()
return false, errors.New(err.Error())
}
}
tx.Commit()
return true, nil
}
+233
View File
@@ -0,0 +1,233 @@
package service
import (
"errors"
"fmt"
"hospital-admin-api/api/dao"
"hospital-admin-api/api/dto"
"hospital-admin-api/api/model"
"hospital-admin-api/api/requests"
"hospital-admin-api/global"
)
type HospitalService struct {
}
// AddHospital 新增医院
func (r *HospitalService) AddHospital(req requests.AddHospital) (bool, error) {
hospitalDao := dao.HospitalDao{}
// 检测医院是否重复
maps := make(map[string]interface{})
maps["hospital_name"] = req.HospitalName
maps["province_id"] = req.ProvinceId
maps["city_id"] = req.CityId
hospitals, err := hospitalDao.GetHospitalList(maps)
if err != nil {
return false, errors.New("医院重复添加")
}
if len(hospitals) != 0 {
return false, errors.New("医院重复添加")
}
var province string
var city string
var county string
areaDao := dao.AreaDao{}
if req.ProvinceId != 0 {
area, err := areaDao.GetAreaById(req.ProvinceId)
if err != nil || area == nil {
return false, errors.New("省份数据错误")
}
province = area.AreaName
}
if req.CityId != 0 {
area, err := areaDao.GetAreaById(req.CityId)
if err != nil || area == nil {
return false, errors.New("城市数据错误")
}
city = area.AreaName
}
if req.CountyId != 0 {
area, err := areaDao.GetAreaById(req.CountyId)
if err != nil || area == nil {
return false, errors.New("城市数据错误")
}
county = area.AreaName
}
// 开始事务
tx := global.Db.Begin()
defer func() {
if r := recover(); r != nil {
tx.Rollback()
}
}()
// 新增商品表
hospital := &model.Hospital{
HospitalName: req.HospitalName,
HospitalStatus: *req.HospitalStatus,
HospitalLevelName: req.HospitalLevelName,
PostCode: req.PostCode,
TelePhone: req.TelePhone,
ProvinceId: req.ProvinceId,
Province: province,
CityId: req.CityId,
City: city,
CountyId: req.CountyId,
County: county,
Address: req.Address,
Lat: req.Lat,
Lng: req.Lng,
Desc: req.Desc,
}
hospital, err = hospitalDao.AddHospital(tx, hospital)
if err != nil || hospital == nil {
tx.Rollback()
return false, errors.New(err.Error())
}
tx.Commit()
return true, nil
}
// PutHospital 修改医院
func (r *HospitalService) PutHospital(hospitalId int64, req requests.PutHospital) (bool, error) {
hospitalDao := dao.HospitalDao{}
area, err := hospitalDao.GetHospitalById(hospitalId)
if err != nil || area == nil {
return false, errors.New("省份数据错误")
}
// 开始事务
tx := global.Db.Begin()
defer func() {
if r := recover(); r != nil {
tx.Rollback()
fmt.Println(r)
}
}()
hospitalData := make(map[string]interface{})
if req.HospitalName != area.HospitalName {
hospitalData["hospital_name"] = req.HospitalName
}
if *req.HospitalStatus != area.HospitalStatus {
hospitalData["hospital_status"] = req.HospitalStatus
}
if req.HospitalLevelName != area.HospitalLevelName {
hospitalData["hospital_level_name"] = req.HospitalLevelName
}
if req.PostCode != "" {
if req.PostCode != area.PostCode {
hospitalData["post_code"] = req.PostCode
}
}
if req.TelePhone != "" {
if req.TelePhone != area.TelePhone {
hospitalData["tele_phone"] = req.TelePhone
}
}
if req.ProvinceId != 0 {
if req.ProvinceId != area.ProvinceId {
areaDao := dao.AreaDao{}
area, err := areaDao.GetAreaById(req.ProvinceId)
if err != nil || area == nil {
return false, errors.New("省份数据错误")
}
hospitalData["province_id"] = req.ProvinceId
hospitalData["province"] = area.AreaName
}
}
if req.CityId != 0 {
if req.CityId != area.CityId {
areaDao := dao.AreaDao{}
area, err := areaDao.GetAreaById(req.CityId)
if err != nil || area == nil {
return false, errors.New("省份数据错误")
}
hospitalData["city_id"] = req.CityId
hospitalData["city"] = area.AreaName
}
}
if req.CountyId != 0 {
if req.CountyId != area.CountyId {
areaDao := dao.AreaDao{}
area, err := areaDao.GetAreaById(req.CountyId)
if err != nil || area == nil {
return false, errors.New("省份数据错误")
}
hospitalData["county_id"] = req.CountyId
hospitalData["county"] = area.AreaName
}
}
if req.Address != "" {
if req.Address != area.Address {
hospitalData["address"] = req.Address
}
}
if req.Lat != "" {
if req.Lat != area.Lat {
hospitalData["lat"] = req.Lat
}
}
if req.Lng != "" {
if req.Lng != area.Lng {
hospitalData["lng"] = req.Lng
}
}
if req.Desc != "" {
if req.Desc != area.Desc {
hospitalData["desc"] = req.Desc
}
}
if len(hospitalData) > 0 {
err = hospitalDao.EditHospitalById(tx, hospitalId, hospitalData)
if err != nil || area == nil {
tx.Rollback()
return false, errors.New(err.Error())
}
}
tx.Commit()
return true, nil
}
// GetHospital 系统优惠卷详情
func (r *HospitalService) GetHospital(hospitalId int64) (g *dto.HospitalDto, err error) {
hospitalDao := dao.HospitalDao{}
hospital, err := hospitalDao.GetHospitalById(hospitalId)
if err != nil || hospital == nil {
return nil, errors.New(err.Error())
}
// 处理返回值
g = dto.GetHospitalDto(hospital)
return g, nil
}
+3 -3
View File
@@ -157,7 +157,7 @@ func (r *UserDoctorService) PutUserDoctor(doctorId int64, req requests.PutUserDo
if userDoctor.HospitalID != hospitalId {
// 获取医院数据
hospitalDao := dao.Hospital{}
hospitalDao := dao.HospitalDao{}
hospital, err := hospitalDao.GetHospitalById(hospitalId)
if err != nil || hospital == nil {
return false, errors.New("医院错误")
@@ -773,7 +773,7 @@ func (r *UserDoctorService) AddUserDoctor(userId string, req requests.AddUserDoc
}
// 获取医院数据
hospitalDao := dao.Hospital{}
hospitalDao := dao.HospitalDao{}
hospital, err := hospitalDao.GetHospitalById(hospitalId)
if err != nil || hospital == nil {
return false, errors.New("医院错误")
@@ -1179,7 +1179,7 @@ func (r *UserDoctorService) PutUserDoctorPending(doctorId int64, req requests.Pu
}
// 获取医院名称
hospitalDao := dao.Hospital{}
hospitalDao := dao.HospitalDao{}
hospital, err := hospitalDao.GetHospitalById(userDoctor.HospitalID)
if err != nil {
return false, errors.New("审核失败")