Merge branch 'lichang' into lite

This commit is contained in:
TsMask
2025-05-23 16:05:37 +08:00
195 changed files with 4924 additions and 3996 deletions

View File

@@ -53,11 +53,11 @@ func initFlag() {
if *pVersion {
buildInfo := fmt.Sprintf("OMC \nBuildVer: %s\nBuildTime: %s\nBuildEnv: %s\n", Version, BuildTime, GoVer)
fmt.Println(buildInfo)
os.Exit(1)
os.Exit(0)
}
if *pHelp {
pflag.Usage()
os.Exit(1)
os.Exit(0)
}
conf.BindPFlags(pflag.CommandLine)
@@ -80,7 +80,7 @@ func initViper(configDir *embed.FS) {
// 当期服务环境运行配置 => local
env := conf.GetString("env")
log.Printf("current service environment configuration => %s \n", env)
// log.Printf("current service environment configuration => %s \n", env)
// 加载运行配置文件合并相同配置
envConfigPath := fmt.Sprintf("config/config.%s.yaml", env)

View File

@@ -60,7 +60,7 @@ func ImportSQL() {
processSQLFile(db, sqlPath)
}
log.Println("process success")
// log.Println("process success")
os.Exit(0)
}
@@ -93,11 +93,17 @@ func processSQLFile(db *gorm.DB, filePath string) {
if strings.HasSuffix(line, ";") {
// 执行 SQL 语句
if err := db.Exec(sqlBuilder.String()).Error; err != nil {
errorStr := err.Error()
if strings.Contains(strings.ToLower(errorStr), "duplicate column") {
// 重复字段错误忽略
// log.Printf("Exec SQL: %s\n", line)
// log.Println(err.Error())
errorStr := strings.ToLower(err.Error())
// log.Printf("Exec SQL: %s\n", line)
// log.Println(err.Error())
if strings.Contains(errorStr, "duplicate column") {
// 忽略重复字段错误 Error 1060 (42S21): Duplicate column name 'field_name'
} else if strings.Contains(errorStr, "duplicate key") {
// 忽略重复索引错误 Error 1061 (42000): Duplicate key name 'key_name'
} else if strings.Contains(errorStr, "unknown column") {
// 忽略未知字段错误 Error 1054 (42S22): Unknown column 'field_name' in 'table'
} else if strings.Contains(errorStr, "check that it exists") {
// 忽略删除字段错误 Error 1091 (42000): Can't DROP COLUMN `field_name`; check that it exists
} else {
// 其他错误终止程序
log.Fatalln(errorStr)

View File

@@ -6,25 +6,23 @@ import (
"os"
"path/filepath"
"strings"
"be.ems/src/framework/logger"
)
// WriterFileTXT 写入txt文件 sep 分割符号 需要转换数据
// WriterFileTXTLine 逐行写入txt文件 sep 分割符号 需要转换数据
//
// 例如:
// data := [][]string{}
// data = append(data, []string{"姓名", "年龄", "城市"})
// data = append(data, []string{"1", "2", "3"})
// 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)
// 确保文件夹路径存在
err := os.MkdirAll(dirPath, 0775)
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()
if err != nil {
logger.Errorf("CreateFile Flush %v", err)
return err
}
return nil
}
// ReadFileTXT 读取Txt文件sep 分割符号 转换数组数据
func ReadFileTXT(sep string, filePath string) [][]string {
// ReadFileTXTLine 逐行读取Txt文件sep 分割符号 转换数组数据
func ReadFileTXTLine(sep string, filePath string) [][]string {
// 创建 map 存储数据
arr := make([][]string, 0)
// 打开文本文件
file, err := os.Open(filePath)
if err != nil {
logger.Errorf("OpenFile Open %v", err)
return arr
}
defer file.Close()
@@ -66,7 +62,6 @@ func ReadFileTXT(sep string, filePath string) [][]string {
// 创建一个 Scanner 对象,用于逐行读取文件内容
scanner := bufio.NewScanner(file)
if scanner.Err() != nil {
logger.Errorf("OpenFile NewScanner %v", scanner.Err())
return arr
}
@@ -78,3 +73,32 @@ func ReadFileTXT(sep string, filePath string) [][]string {
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
}