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 }