118 lines
2.4 KiB
Go
118 lines
2.4 KiB
Go
package service
|
|
|
|
import (
|
|
"errors"
|
|
"hospital-admin-api/api/dao"
|
|
"hospital-admin-api/api/model"
|
|
"hospital-admin-api/api/requests"
|
|
"hospital-admin-api/global"
|
|
"strconv"
|
|
)
|
|
|
|
type PostService struct {
|
|
}
|
|
|
|
// AddPost 新增岗位
|
|
func (r *PostService) AddPost(addPostRequest requests.AddPost) (bool, error) {
|
|
adminPostDao := dao.AdminPostDao{}
|
|
|
|
// 开始事务
|
|
tx := global.Db.Begin()
|
|
defer func() {
|
|
if r := recover(); r != nil {
|
|
tx.Rollback()
|
|
}
|
|
}()
|
|
|
|
// 新增岗位
|
|
adminPostModel := &model.AdminPost{
|
|
PostName: addPostRequest.PostName,
|
|
PostStatus: 1,
|
|
}
|
|
|
|
adminMenu, _ := adminPostDao.AddAdminPost(tx, adminPostModel)
|
|
if adminMenu == nil {
|
|
tx.Rollback()
|
|
return false, errors.New("新增失败")
|
|
}
|
|
|
|
tx.Commit()
|
|
|
|
return true, nil
|
|
}
|
|
|
|
// DeletePost 删除岗位-批量
|
|
func (r *PostService) DeletePost(deletePostRequest requests.DeletePost) (bool, error) {
|
|
adminPostDao := dao.AdminPostDao{}
|
|
|
|
// 开始事务
|
|
tx := global.Db.Begin()
|
|
defer func() {
|
|
if r := recover(); r != nil {
|
|
tx.Rollback()
|
|
}
|
|
}()
|
|
|
|
for _, v := range deletePostRequest.PostIds {
|
|
// 将字符串转换为int64类型
|
|
v, err := strconv.ParseInt(v, 10, 64)
|
|
if err != nil {
|
|
tx.Rollback()
|
|
return false, errors.New("菜单错误")
|
|
}
|
|
|
|
// 检测删除岗位
|
|
adminPost, err := adminPostDao.GetAdminPostById(v)
|
|
if err != nil || adminPost == nil {
|
|
tx.Rollback()
|
|
return false, errors.New("删除失败")
|
|
}
|
|
|
|
// 修改岗位为删除
|
|
data := make(map[string]interface{})
|
|
data["post_status"] = 2
|
|
err = adminPostDao.EditAdminPostById(tx, v, data)
|
|
if err != nil {
|
|
tx.Rollback()
|
|
return false, errors.New("删除失败")
|
|
}
|
|
}
|
|
|
|
tx.Commit()
|
|
|
|
return true, nil
|
|
}
|
|
|
|
// PutPost 修改岗位
|
|
func (r *PostService) PutPost(requestPostId int64, putPostRequest requests.PutPost) (bool, error) {
|
|
adminPostDao := dao.AdminPostDao{}
|
|
|
|
// 获取需修改岗位数据
|
|
adminPost, err := adminPostDao.GetAdminPostById(requestPostId)
|
|
if err != nil || adminPost == nil {
|
|
return false, errors.New("岗位数据错误")
|
|
}
|
|
|
|
// 开始事务
|
|
tx := global.Db.Begin()
|
|
defer func() {
|
|
if r := recover(); r != nil {
|
|
tx.Rollback()
|
|
}
|
|
}()
|
|
|
|
// 修改岗位
|
|
data := make(map[string]interface{})
|
|
data["post_name"] = putPostRequest.PostName
|
|
data["post_status"] = putPostRequest.PostStatus
|
|
err = adminPostDao.EditAdminPostById(tx, requestPostId, data)
|
|
if err != nil {
|
|
tx.Rollback()
|
|
return false, errors.New("修改失败")
|
|
}
|
|
|
|
tx.Commit()
|
|
|
|
return true, nil
|
|
}
|