79 lines
2.0 KiB
Go
79 lines
2.0 KiB
Go
package dao
|
|
|
|
import (
|
|
"gorm.io/gorm"
|
|
"hospital-admin-api/api/model"
|
|
"hospital-admin-api/api/requests"
|
|
"hospital-admin-api/global"
|
|
)
|
|
|
|
type AdminPostDao struct {
|
|
}
|
|
|
|
// GetAdminPostById 获取岗位数据-岗位id
|
|
func (r *AdminPostDao) GetAdminPostById(postId int64) (m *model.AdminPost, err error) {
|
|
err = global.Db.First(&m, postId).Error
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
return m, nil
|
|
}
|
|
|
|
// GetAdminPostList 获取岗位列表
|
|
func (r *AdminPostDao) GetAdminPostList(maps interface{}) (m []*model.AdminPost, err error) {
|
|
err = global.Db.Where(maps).Find(&m).Error
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
return m, nil
|
|
}
|
|
|
|
// AddAdminPost 新增gan
|
|
func (r *AdminPostDao) AddAdminPost(tx *gorm.DB, model *model.AdminPost) (*model.AdminPost, error) {
|
|
if err := tx.Create(model).Error; err != nil {
|
|
return nil, err
|
|
}
|
|
return model, nil
|
|
}
|
|
|
|
// DeleteAdminPostById 删除岗位-岗位id
|
|
func (r *AdminPostDao) DeleteAdminPostById(tx *gorm.DB, deptId int64) error {
|
|
if err := tx.Delete(&model.AdminPost{}, deptId).Error; err != nil {
|
|
return err
|
|
}
|
|
return nil
|
|
}
|
|
|
|
// EditAdminPostById 修改岗位-岗位id
|
|
func (r *AdminPostDao) EditAdminPostById(tx *gorm.DB, deptId int64, data interface{}) error {
|
|
err := tx.Model(&model.AdminPost{}).Where("dept_id = ?", deptId).Updates(data).Error
|
|
if err != nil {
|
|
return err
|
|
}
|
|
return nil
|
|
}
|
|
|
|
// GetAdminPostPageSearch 获取岗位列表-分页
|
|
func (r *AdminPostDao) GetAdminPostPageSearch(getPostPage requests.GetPostPage, page, pageSize int) (m []*model.AdminPost, total int64, err error) {
|
|
var totalRecords int64
|
|
|
|
// 构建查询条件
|
|
query := global.Db.Model(&model.AdminPost{})
|
|
|
|
query = query.Where("post_status = ? ", 1)
|
|
if getPostPage.DeptName != "" {
|
|
query = query.Where("post_name like ?", "%"+getPostPage.DeptName+"%")
|
|
}
|
|
|
|
// 查询总数量
|
|
if err := query.Count(&totalRecords).Error; err != nil {
|
|
return nil, 0, err
|
|
}
|
|
|
|
err = query.Scopes(model.Paginate(page, pageSize)).Find(&m).Error
|
|
if err != nil {
|
|
return nil, 0, err
|
|
}
|
|
return m, totalRecords, nil
|
|
}
|