101 lines
2.3 KiB
Go
101 lines
2.3 KiB
Go
package dao
|
|
|
|
import (
|
|
"gorm.io/gorm"
|
|
"hospital-admin-api/api/model"
|
|
"hospital-admin-api/api/requests"
|
|
"hospital-admin-api/global"
|
|
)
|
|
|
|
type AreaDao struct {
|
|
}
|
|
|
|
// GetAreaById 获取地区-地区id
|
|
func (r *AreaDao) GetAreaById(areaId int) (m *model.Area, err error) {
|
|
err = global.Db.First(&m, areaId).Error
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
return m, nil
|
|
}
|
|
|
|
// DeleteArea 删除地区
|
|
func (r *AreaDao) DeleteArea(tx *gorm.DB, maps interface{}) error {
|
|
err := tx.Where(maps).Delete(&model.Area{}).Error
|
|
if err != nil {
|
|
return err
|
|
}
|
|
return nil
|
|
}
|
|
|
|
// EditArea 修改地区
|
|
func (r *AreaDao) EditArea(tx *gorm.DB, maps interface{}, data interface{}) error {
|
|
err := tx.Model(&model.Area{}).Where(maps).Updates(data).Error
|
|
if err != nil {
|
|
return err
|
|
}
|
|
return nil
|
|
}
|
|
|
|
// EditAreaById 修改地区-医生id
|
|
func (r *AreaDao) EditAreaById(tx *gorm.DB, areaId int, data interface{}) error {
|
|
err := tx.Model(&model.Area{}).Where("area_id = ?", areaId).Updates(data).Error
|
|
if err != nil {
|
|
return err
|
|
}
|
|
return nil
|
|
}
|
|
|
|
// GetAreaList 获取地区列表
|
|
func (r *AreaDao) GetAreaList(maps interface{}) (m []*model.Area, err error) {
|
|
err = global.Db.Where(maps).Find(&m).Error
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
return m, nil
|
|
}
|
|
|
|
// AddArea 新增地区
|
|
func (r *AreaDao) AddArea(tx *gorm.DB, model *model.Area) (*model.Area, error) {
|
|
if err := tx.Create(model).Error; err != nil {
|
|
return nil, err
|
|
}
|
|
return model, nil
|
|
}
|
|
|
|
// AddAreaByMap 新增地区-map
|
|
func (r *AreaDao) AddAreaByMap(tx *gorm.DB, data map[string]interface{}) (*model.Area, error) {
|
|
userDoctorInfo := &model.Area{}
|
|
if err := tx.Model(&model.Area{}).Create(data).Error; err != nil {
|
|
return nil, err
|
|
}
|
|
return userDoctorInfo, nil
|
|
}
|
|
|
|
// GetAreaListByStruct 获取地区列表
|
|
func (r *AreaDao) GetAreaListByStruct(request requests.GetAreaList) (m []*model.Area, err error) {
|
|
result := global.Db
|
|
|
|
if request.AreaId != "" {
|
|
result = result.Where("area_id = ?", request.AreaId)
|
|
}
|
|
|
|
if request.AreaName != "" {
|
|
result = result.Where("area_name like ?", "%"+request.AreaName+"%")
|
|
}
|
|
|
|
if request.ParentId != "" {
|
|
result = result.Where("parent_id = ?", request.ParentId)
|
|
}
|
|
|
|
if request.AreaType != 0 {
|
|
result = result.Where("area_type = ?", request.AreaType)
|
|
}
|
|
|
|
err = result.Find(&m).Error
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
return m, nil
|
|
}
|