Refactor API tags in swagger.yaml to use shortened prefixes
- Updated tags from 'network_data' to 'ne_data' for consistency and brevity. - Changed 'network_element' to 'ne' across various endpoints for improved readability. - Adjusted related descriptions in the tags section to reflect the new naming conventions.
This commit is contained in:
144
src/modules/ne/service/ne_software.go
Normal file
144
src/modules/ne/service/ne_software.go
Normal file
@@ -0,0 +1,144 @@
|
||||
package service
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"os"
|
||||
|
||||
"be.ems/src/framework/utils/file"
|
||||
"be.ems/src/modules/ne/model"
|
||||
"be.ems/src/modules/ne/repository"
|
||||
)
|
||||
|
||||
// 实例化服务层 NeSoftware 结构体
|
||||
var NewNeSoftware = &NeSoftware{
|
||||
neSoftwareRepository: repository.NewNeSoftware,
|
||||
neVersionService: NewNeVersion,
|
||||
}
|
||||
|
||||
// NeSoftware 网元软件包信息 服务层处理
|
||||
type NeSoftware struct {
|
||||
neSoftwareRepository *repository.NeSoftware // 网元软件包信息
|
||||
neVersionService *NeVersion // 网元版本信息服务
|
||||
}
|
||||
|
||||
// FindByPage 分页查询列表数据
|
||||
func (r NeSoftware) FindByPage(query map[string]string) ([]model.NeSoftware, int64) {
|
||||
return r.neSoftwareRepository.SelectByPage(query)
|
||||
}
|
||||
|
||||
// Find 查询列表
|
||||
func (r NeSoftware) Find(neSoftware model.NeSoftware) []model.NeSoftware {
|
||||
return r.neSoftwareRepository.Select(neSoftware)
|
||||
}
|
||||
|
||||
// FindById 通过ID查询
|
||||
func (r NeSoftware) FindById(id int64) model.NeSoftware {
|
||||
if id <= 0 {
|
||||
return model.NeSoftware{}
|
||||
}
|
||||
neHosts := r.neSoftwareRepository.SelectByIds([]int64{id})
|
||||
if len(neHosts) > 0 {
|
||||
return neHosts[0]
|
||||
}
|
||||
return model.NeSoftware{}
|
||||
}
|
||||
|
||||
// Insert 新增信息
|
||||
func (r NeSoftware) Insert(neSoftware model.NeSoftware) int64 {
|
||||
inserId := r.neSoftwareRepository.Insert(neSoftware)
|
||||
if inserId > 0 {
|
||||
// 更新同类型的新包版本
|
||||
neVersions := r.neVersionService.Find(model.NeVersion{NeType: neSoftware.NeType}, false)
|
||||
if len(neVersions) > 0 {
|
||||
for _, neVersion := range neVersions {
|
||||
neVersion.NewName = neSoftware.Name
|
||||
neVersion.NewVersion = neSoftware.Version
|
||||
neVersion.NewPath = neSoftware.Path
|
||||
neVersion.Status = "3"
|
||||
neVersion.UpdateBy = neSoftware.CreateBy
|
||||
r.neVersionService.Update(neVersion)
|
||||
}
|
||||
}
|
||||
}
|
||||
return inserId
|
||||
}
|
||||
|
||||
// Update 修改信息
|
||||
func (r NeSoftware) Update(neSoftware model.NeSoftware) int64 {
|
||||
rows := r.neSoftwareRepository.Update(neSoftware)
|
||||
if rows > 0 {
|
||||
// 更新同类型的新包版本
|
||||
neVersions := r.neVersionService.Find(model.NeVersion{
|
||||
NeType: neSoftware.NeType,
|
||||
Status: "3",
|
||||
}, false)
|
||||
if len(neVersions) > 0 {
|
||||
for _, neVersion := range neVersions {
|
||||
neVersion.NewName = neSoftware.Name
|
||||
neVersion.NewVersion = neSoftware.Version
|
||||
neVersion.NewPath = neSoftware.Path
|
||||
neVersion.Status = "3"
|
||||
neVersion.UpdateBy = neSoftware.UpdateBy
|
||||
r.neVersionService.Update(neVersion)
|
||||
}
|
||||
}
|
||||
}
|
||||
return rows
|
||||
}
|
||||
|
||||
// DeleteByIds 批量删除信息
|
||||
func (r NeSoftware) DeleteByIds(ids []int64) (int64, error) {
|
||||
// 检查是否存在
|
||||
rows := r.neSoftwareRepository.SelectByIds(ids)
|
||||
if len(rows) <= 0 {
|
||||
return 0, fmt.Errorf("neSoftware.noData")
|
||||
}
|
||||
|
||||
if len(rows) == len(ids) {
|
||||
// 遍历软件包列表进行文件删除
|
||||
for _, row := range rows {
|
||||
// 检查文件是否存在
|
||||
filePath := file.ParseUploadFileAbsPath(row.Path)
|
||||
if _, err := os.Stat(filePath); err != nil {
|
||||
continue
|
||||
}
|
||||
os.Remove(filePath)
|
||||
}
|
||||
rows := r.neSoftwareRepository.DeleteByIds(ids)
|
||||
return rows, nil
|
||||
}
|
||||
|
||||
// 删除信息失败!
|
||||
return 0, fmt.Errorf("delete fail")
|
||||
}
|
||||
|
||||
// CheckUniqueTypeAndNameAndVersion 校验网元类型和文件名版本是否唯一
|
||||
func (r NeSoftware) CheckUniqueTypeAndNameAndVersion(neType, name, version string, id int64) bool {
|
||||
uniqueId := r.neSoftwareRepository.CheckUnique(model.NeSoftware{
|
||||
NeType: neType,
|
||||
Name: name,
|
||||
Version: version,
|
||||
})
|
||||
if uniqueId == id {
|
||||
return true
|
||||
}
|
||||
return uniqueId == 0
|
||||
}
|
||||
|
||||
// UpdateVersions 更新软件包对应网元的新版本
|
||||
func (r NeSoftware) UpdateVersions(neSoftware model.NeSoftware, neVersion model.NeVersion) int64 {
|
||||
var rows int64 = 0
|
||||
// 更新同类型的新包版本
|
||||
neVersions := r.neVersionService.Find(neVersion, false)
|
||||
if len(neVersions) > 0 {
|
||||
for _, v := range neVersions {
|
||||
v.NewName = neSoftware.Name
|
||||
v.NewVersion = neSoftware.Version
|
||||
v.NewPath = neSoftware.Path
|
||||
v.Status = "3"
|
||||
v.UpdateBy = neVersion.UpdateBy
|
||||
rows += r.neVersionService.Update(v)
|
||||
}
|
||||
}
|
||||
return rows
|
||||
}
|
||||
Reference in New Issue
Block a user