新增了医院管理
This commit is contained in:
@@ -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
|
||||
}
|
||||
Reference in New Issue
Block a user