package service import ( "StuAcaWorksAI/dao" "errors" ) // 创建模型信息 func CreateModel(userID uint, modelType, url, parameter, description string) (error, uint) { //查看用户是否有权限创建模型 user := GetUserByIDWithCache(int(userID)) if user.ID == 0 { return errors.New("user not exist"), 0 } if user.Role != "admin" { return errors.New("user not admin,no permission"), 0 } return dao.CreateModel(userID, modelType, url, parameter, description) } // 根据id查找模型 func FindModelByID(id, userID int) []dao.Model { return dao.FindModelByID(id, userID) } // 根据用户id查找模型 func FindModelByUserID(userID int) []dao.Model { return dao.FindModelByUserID(userID) } // 根据id删除模型 func DeleteModelByID(id, userID int) error { //查看用户是否有权限删除模型 user := GetUserByIDWithCache(userID) model := dao.FindModelByID(id, userID) if user.ID == 0 { return errors.New("user not exist") } if len(model) == 0 && user.Role != "admin" { return errors.New("model not exist or no permission") } return dao.DeleteModelByID(id) } // 更新模型信息 func UpdateModelByID(id int, userID uint, modelType, url, parameter, description string) error { return dao.UpdateModelByID(id, userID, modelType, url, parameter, description) } func CreateFuncModel(userID, modelID int, name, info, function string) (error, uint) { //查看用户是否有权限创建模型 user := GetUserByIDWithCache(userID) if user.ID == 0 { return errors.New("user not exist"), 0 } if user.Role != "admin" { return errors.New("user not admin,no permission"), 0 } return dao.CreateFunctionModel(uint(userID), uint(modelID), name, info, function) } func FindFuncModelByID(id, userID int) ([]dao.FunctionModel, error) { user := GetUserByIDWithCache(userID) if user.ID == 0 { return nil, errors.New("user not exist") } if user.Role != "admin" { return nil, errors.New("user not admin,no permission") } return dao.FindFunctionModelByID(id, userID), nil } // 根据userID查找功能模型 func FindFuncModelByUserID(userID int) ([]dao.FunctionModel, error) { user := GetUserByIDWithCache(userID) if user.ID == 0 { return nil, errors.New("user not exist") } if user.Role != "admin" { return nil, errors.New("user not admin,no permission") } return dao.FindFunctionModelByUserID(userID), nil } func DeleteFuncModelByID(id, userID int) error { //查看用户是否有权限删除模型 user := GetUserByIDWithCache(userID) model := dao.FindFunctionModelByID(id, userID) if user.ID == 0 { return errors.New("user not exist") } if len(model) == 0 && user.Role != "admin" { return errors.New("model not exist or no permission") } return dao.DeleteFunctionModelByID(id) } func UpdateFuncModelByID(id int, userID, modelID uint, name, info, function string) error { user := GetUserByIDWithCache(int(userID)) if user.ID == 0 { return errors.New("user not exist") } if user.Role != "admin" { return errors.New("user not admin,no permission") } return dao.UpdateFunctionModelByID(id, userID, modelID, name, info, function) } // 根据功能查找对应功能 func FindFuncModelByFunction(function string, userID int) ([]dao.Model, []dao.FunctionModel) { //先查找对应功能 funcModels := dao.FindFunctionModelByFunction(function) if len(funcModels) == 0 { return []dao.Model{}, funcModels } modelID := funcModels[0].ModelID //再查找对应模型 return dao.FindModelByModelID(modelID), funcModels }