feat: 文件工具添加文本输出函数,调整逐行
This commit is contained in:
@@ -6,25 +6,23 @@ import (
|
|||||||
"os"
|
"os"
|
||||||
"path/filepath"
|
"path/filepath"
|
||||||
"strings"
|
"strings"
|
||||||
|
|
||||||
"be.ems/src/framework/logger"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
// WriterFileTXT 写入txt文件 sep 分割符号 需要转换数据
|
// WriterFileTXTLine 逐行写入txt文件 sep 分割符号 需要转换数据
|
||||||
//
|
//
|
||||||
// 例如:
|
// 例如:
|
||||||
// data := [][]string{}
|
// data := [][]string{}
|
||||||
// data = append(data, []string{"姓名", "年龄", "城市"})
|
// data = append(data, []string{"姓名", "年龄", "城市"})
|
||||||
// data = append(data, []string{"1", "2", "3"})
|
// data = append(data, []string{"1", "2", "3"})
|
||||||
// err := file.WriterFileTXT(data, filePath)
|
// err := file.WriterFileTXT(data, filePath)
|
||||||
func WriterFileTXT(data [][]string, sep string, filePath string) error {
|
func WriterFileTXTLine(data [][]string, sep string, filePath string) error {
|
||||||
// 获取文件所在的目录路径
|
// 获取文件所在的目录路径
|
||||||
dirPath := filepath.Dir(filePath)
|
dirPath := filepath.Dir(filePath)
|
||||||
|
|
||||||
// 确保文件夹路径存在
|
// 确保文件夹路径存在
|
||||||
err := os.MkdirAll(dirPath, 0775)
|
err := os.MkdirAll(dirPath, 0775)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
logger.Errorf("CreateFile MkdirAll %v", err)
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
// 创建或打开文件
|
// 创建或打开文件
|
||||||
@@ -44,21 +42,19 @@ func WriterFileTXT(data [][]string, sep string, filePath string) error {
|
|||||||
// 将缓冲区中的数据刷新到文件中
|
// 将缓冲区中的数据刷新到文件中
|
||||||
err = writer.Flush()
|
err = writer.Flush()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
logger.Errorf("CreateFile Flush %v", err)
|
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// ReadFileTXT 读取Txt文件,sep 分割符号 转换数组数据
|
// ReadFileTXTLine 逐行读取Txt文件,sep 分割符号 转换数组数据
|
||||||
func ReadFileTXT(sep string, filePath string) [][]string {
|
func ReadFileTXTLine(sep string, filePath string) [][]string {
|
||||||
// 创建 map 存储数据
|
// 创建 map 存储数据
|
||||||
arr := make([][]string, 0)
|
arr := make([][]string, 0)
|
||||||
|
|
||||||
// 打开文本文件
|
// 打开文本文件
|
||||||
file, err := os.Open(filePath)
|
file, err := os.Open(filePath)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
logger.Errorf("OpenFile Open %v", err)
|
|
||||||
return arr
|
return arr
|
||||||
}
|
}
|
||||||
defer file.Close()
|
defer file.Close()
|
||||||
@@ -66,7 +62,6 @@ func ReadFileTXT(sep string, filePath string) [][]string {
|
|||||||
// 创建一个 Scanner 对象,用于逐行读取文件内容
|
// 创建一个 Scanner 对象,用于逐行读取文件内容
|
||||||
scanner := bufio.NewScanner(file)
|
scanner := bufio.NewScanner(file)
|
||||||
if scanner.Err() != nil {
|
if scanner.Err() != nil {
|
||||||
logger.Errorf("OpenFile NewScanner %v", scanner.Err())
|
|
||||||
return arr
|
return arr
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -78,3 +73,32 @@ func ReadFileTXT(sep string, filePath string) [][]string {
|
|||||||
|
|
||||||
return arr
|
return arr
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// WriterFileTXT 写入txt文件
|
||||||
|
//
|
||||||
|
// 例如:
|
||||||
|
// err := file.WriterFileTXT("", filePath)
|
||||||
|
func WriterFileTXT(text string, filePath string) error {
|
||||||
|
// 获取文件所在的目录路径
|
||||||
|
dirPath := filepath.Dir(filePath)
|
||||||
|
|
||||||
|
// 确保文件夹路径存在
|
||||||
|
err := os.MkdirAll(dirPath, 0775)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
// 创建或打开文件
|
||||||
|
file, err := os.Create(filePath)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
defer file.Close()
|
||||||
|
|
||||||
|
// 将缓冲区中的数据刷新到文件中
|
||||||
|
_, err = file.WriteString(text)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|||||||
@@ -120,7 +120,7 @@ func (s BackupExportUDMProcessor) exportAuth(neId, fileType string) string {
|
|||||||
data = append(data, []string{v.IMSI, v.Ki, v.AlgoIndex, v.Amf, opc})
|
data = append(data, []string{v.IMSI, v.Ki, v.AlgoIndex, v.Amf, opc})
|
||||||
}
|
}
|
||||||
// 输出到文件
|
// 输出到文件
|
||||||
if err := file.WriterFileTXT(data, ",", filePath); err != nil {
|
if err := file.WriterFileTXTLine(data, ",", filePath); err != nil {
|
||||||
return err.Error()
|
return err.Error()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -168,7 +168,7 @@ func (s BackupExportUDMProcessor) exportSub(neId, fileType string) string {
|
|||||||
data = append(data, []string{v.IMSI, v.MSISDN, v.UeAmbrTpl, v.NssaiTpl, v.AreaForbiddenTpl, v.ServiceAreaRestrictionTpl, v.RatRestrictions, v.CnTypeRestrictions, v.SmfSel, v.SmData, epsDat})
|
data = append(data, []string{v.IMSI, v.MSISDN, v.UeAmbrTpl, v.NssaiTpl, v.AreaForbiddenTpl, v.ServiceAreaRestrictionTpl, v.RatRestrictions, v.CnTypeRestrictions, v.SmfSel, v.SmData, epsDat})
|
||||||
}
|
}
|
||||||
// 输出到文件
|
// 输出到文件
|
||||||
if err := file.WriterFileTXT(data, ",", filePath); err != nil {
|
if err := file.WriterFileTXTLine(data, ",", filePath); err != nil {
|
||||||
return err.Error()
|
return err.Error()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -214,7 +214,7 @@ func (s BackupExportUDMProcessor) exportVOIP(neId, fileType string) string {
|
|||||||
data = append(data, []string{v.UserName, v.Password})
|
data = append(data, []string{v.UserName, v.Password})
|
||||||
}
|
}
|
||||||
// 输出到文件
|
// 输出到文件
|
||||||
if err := file.WriterFileTXT(data, ",", filePath); err != nil {
|
if err := file.WriterFileTXTLine(data, ",", filePath); err != nil {
|
||||||
return err.Error()
|
return err.Error()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -260,7 +260,7 @@ func (s BackupExportUDMProcessor) exportVolte(neId, fileType string) string {
|
|||||||
data = append(data, []string{v.IMSI, v.MSISDN, v.Tag, v.VNI})
|
data = append(data, []string{v.IMSI, v.MSISDN, v.Tag, v.VNI})
|
||||||
}
|
}
|
||||||
// 输出到文件
|
// 输出到文件
|
||||||
if err := file.WriterFileTXT(data, ",", filePath); err != nil {
|
if err := file.WriterFileTXTLine(data, ",", filePath); err != nil {
|
||||||
return err.Error()
|
return err.Error()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -525,7 +525,7 @@ func (s *UDMAuthController) Export(c *gin.Context) {
|
|||||||
data = append(data, []string{v.IMSI, v.Ki, v.AlgoIndex, v.Amf, opc})
|
data = append(data, []string{v.IMSI, v.Ki, v.AlgoIndex, v.Amf, opc})
|
||||||
}
|
}
|
||||||
// 输出到文件
|
// 输出到文件
|
||||||
if err := file.WriterFileTXT(data, ",", filePath); err != nil {
|
if err := file.WriterFileTXTLine(data, ",", filePath); err != nil {
|
||||||
c.JSON(200, resp.ErrMsg(err.Error()))
|
c.JSON(200, resp.ErrMsg(err.Error()))
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
@@ -635,7 +635,7 @@ func (s *UDMAuthController) Import(c *gin.Context) {
|
|||||||
go s.udmAuthService.InsertData(neInfo.NeId, "csv", data)
|
go s.udmAuthService.InsertData(neInfo.NeId, "csv", data)
|
||||||
}
|
}
|
||||||
if strings.HasSuffix(body.UploadPath, ".txt") {
|
if strings.HasSuffix(body.UploadPath, ".txt") {
|
||||||
data := file.ReadFileTXT(",", localFilePath)
|
data := file.ReadFileTXTLine(",", localFilePath)
|
||||||
go s.udmAuthService.InsertData(neInfo.NeId, "txt", data)
|
go s.udmAuthService.InsertData(neInfo.NeId, "txt", data)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -525,7 +525,7 @@ func (s *UDMSubController) Export(c *gin.Context) {
|
|||||||
data = append(data, []string{v.IMSI, v.MSISDN, v.UeAmbrTpl, v.NssaiTpl, v.AreaForbiddenTpl, v.ServiceAreaRestrictionTpl, v.RatRestrictions, v.CnTypeRestrictions, v.SmfSel, v.SmData, epsDat})
|
data = append(data, []string{v.IMSI, v.MSISDN, v.UeAmbrTpl, v.NssaiTpl, v.AreaForbiddenTpl, v.ServiceAreaRestrictionTpl, v.RatRestrictions, v.CnTypeRestrictions, v.SmfSel, v.SmData, epsDat})
|
||||||
}
|
}
|
||||||
// 输出到文件
|
// 输出到文件
|
||||||
if err := file.WriterFileTXT(data, ",", filePath); err != nil {
|
if err := file.WriterFileTXTLine(data, ",", filePath); err != nil {
|
||||||
c.JSON(200, resp.ErrMsg(err.Error()))
|
c.JSON(200, resp.ErrMsg(err.Error()))
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
@@ -619,7 +619,7 @@ func (s *UDMSubController) Import(c *gin.Context) {
|
|||||||
go s.udmSubService.InsertData(neInfo.NeId, "csv", data)
|
go s.udmSubService.InsertData(neInfo.NeId, "csv", data)
|
||||||
}
|
}
|
||||||
if strings.HasSuffix(body.UploadPath, ".txt") {
|
if strings.HasSuffix(body.UploadPath, ".txt") {
|
||||||
data := file.ReadFileTXT(",", localFilePath)
|
data := file.ReadFileTXTLine(",", localFilePath)
|
||||||
go s.udmSubService.InsertData(neInfo.NeId, "txt", data)
|
go s.udmSubService.InsertData(neInfo.NeId, "txt", data)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -455,7 +455,7 @@ func (s *UDMVOIPController) Export(c *gin.Context) {
|
|||||||
data = append(data, []string{v.UserName, v.Password})
|
data = append(data, []string{v.UserName, v.Password})
|
||||||
}
|
}
|
||||||
// 输出到文件
|
// 输出到文件
|
||||||
if err := file.WriterFileTXT(data, ",", filePath); err != nil {
|
if err := file.WriterFileTXTLine(data, ",", filePath); err != nil {
|
||||||
c.JSON(200, resp.ErrMsg(err.Error()))
|
c.JSON(200, resp.ErrMsg(err.Error()))
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
@@ -553,7 +553,7 @@ func (s *UDMVOIPController) Import(c *gin.Context) {
|
|||||||
go s.udmVOIPService.InsertData(neInfo.NeId, "csv", data)
|
go s.udmVOIPService.InsertData(neInfo.NeId, "csv", data)
|
||||||
}
|
}
|
||||||
if strings.HasSuffix(body.UploadPath, ".txt") {
|
if strings.HasSuffix(body.UploadPath, ".txt") {
|
||||||
data := file.ReadFileTXT(",", localFilePath)
|
data := file.ReadFileTXTLine(",", localFilePath)
|
||||||
go s.udmVOIPService.InsertData(neInfo.NeId, "txt", data)
|
go s.udmVOIPService.InsertData(neInfo.NeId, "txt", data)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -484,7 +484,7 @@ func (s *UDMVolteIMSController) Export(c *gin.Context) {
|
|||||||
data = append(data, []string{v.IMSI, v.MSISDN, v.Tag, v.VNI})
|
data = append(data, []string{v.IMSI, v.MSISDN, v.Tag, v.VNI})
|
||||||
}
|
}
|
||||||
// 输出到文件
|
// 输出到文件
|
||||||
if err := file.WriterFileTXT(data, ",", filePath); err != nil {
|
if err := file.WriterFileTXTLine(data, ",", filePath); err != nil {
|
||||||
c.JSON(200, resp.ErrMsg(err.Error()))
|
c.JSON(200, resp.ErrMsg(err.Error()))
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
@@ -582,7 +582,7 @@ func (s *UDMVolteIMSController) Import(c *gin.Context) {
|
|||||||
go s.udmVolteIMSService.InsertData(neInfo.NeId, "csv", data)
|
go s.udmVolteIMSService.InsertData(neInfo.NeId, "csv", data)
|
||||||
}
|
}
|
||||||
if strings.HasSuffix(body.UploadPath, ".txt") {
|
if strings.HasSuffix(body.UploadPath, ".txt") {
|
||||||
data := file.ReadFileTXT(",", localFilePath)
|
data := file.ReadFileTXTLine(",", localFilePath)
|
||||||
go s.udmVolteIMSService.InsertData(neInfo.NeId, "txt", data)
|
go s.udmVolteIMSService.InsertData(neInfo.NeId, "txt", data)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -178,6 +178,8 @@ func (r NeVersion) Operate(action string, neVersion model.NeVersion, preinput ma
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return "", err
|
return "", err
|
||||||
}
|
}
|
||||||
|
// 将安装升级执行结果写入文件
|
||||||
|
file.WriterFileTXT(commandLine, fmt.Sprintf("/tmp/%s_%s.out", neVersion.NeType, action))
|
||||||
|
|
||||||
// ========= 完成阶段 =========
|
// ========= 完成阶段 =========
|
||||||
if strings.LastIndex(commandLine, okFlagStr) > 5 {
|
if strings.LastIndex(commandLine, okFlagStr) > 5 {
|
||||||
|
|||||||
Reference in New Issue
Block a user