@@ -11,9 +11,6 @@ import (
11
11
"net/http"
12
12
"net/http/httputil"
13
13
"net/url"
14
- "path/filepath"
15
- "regexp"
16
- "sort"
17
14
"strconv"
18
15
"strings"
19
16
"time"
@@ -101,6 +98,7 @@ const (
101
98
GitHttpURL = "git_http_url"
102
99
GitUserName = "git_user_name"
103
100
GitPassword = "git_user_password"
101
+ ZIPFileExtension = ".zip"
104
102
)
105
103
106
104
func getSQLFromFile (c echo.Context ) (getSQLFromFileResp , error ) {
@@ -965,7 +963,7 @@ func AuditTaskGroupV1(c echo.Context) error {
965
963
if err != nil {
966
964
return controller .JSONBaseErrorReq (c , err )
967
965
}
968
- if strings .HasSuffix (fileHeader .Filename , ".zip" ) && task .FileOrderMethod != "" && task .ExecMode == model .ExecModeSqlFile {
966
+ if strings .HasSuffix (fileHeader .Filename , ZIPFileExtension ) && task .FileOrderMethod != "" && task .ExecMode == model .ExecModeSqlFile {
969
967
sortAuditFiles (fileRecords , task .FileOrderMethod )
970
968
}
971
969
@@ -1018,79 +1016,6 @@ func AuditTaskGroupV1(c echo.Context) error {
1018
1016
})
1019
1017
}
1020
1018
1021
- type auditFileWithNum struct {
1022
- auditFile * model.AuditFile
1023
- num int
1024
- }
1025
-
1026
- type auditFileWithNums []auditFileWithNum
1027
-
1028
- func (s auditFileWithNums ) Len () int { return len (s ) }
1029
- func (s auditFileWithNums ) Swap (i , j int ) { s [i ], s [j ] = s [j ], s [i ] }
1030
- func (s auditFileWithNums ) Less (i , j int ) bool { return s [i ].num < s [j ].num }
1031
-
1032
- func sortAuditFiles (auditFiles []* model.AuditFile , orderMethod string ) {
1033
- var re * regexp.Regexp
1034
- sortedAuditFiles := []* model.AuditFile {}
1035
-
1036
- // 索引为0的auditFiles为zip包自身的信息,不参与排序
1037
- sortedAuditFiles = append (sortedAuditFiles , auditFiles [0 ])
1038
- auditFiles = auditFiles [1 :]
1039
-
1040
- switch orderMethod {
1041
- case FileNamePrefixNumAscOrder :
1042
- re = regexp .MustCompile (`^\d+` )
1043
- case FileNameSuffixNumAscOrder :
1044
- re = regexp .MustCompile (`\d+$` )
1045
- }
1046
- if re == nil {
1047
- return
1048
- }
1049
-
1050
- fileWithNums , invalidOrderFiles := getFileWithNumFromPathsByRe (auditFiles , re )
1051
- fileWithSortNums := auditFileWithNums (fileWithNums )
1052
- sort .Sort (fileWithSortNums )
1053
-
1054
- for _ , fileWithSortNum := range fileWithSortNums {
1055
- sortedAuditFiles = append (sortedAuditFiles , fileWithSortNum .auditFile )
1056
- }
1057
- sortedAuditFiles = append (sortedAuditFiles , invalidOrderFiles ... )
1058
- for i , auditFile := range sortedAuditFiles {
1059
- auditFile .ExecOrder = uint (i )
1060
- }
1061
- }
1062
-
1063
- func getFileWithNumFromPathsByRe (auditFiles []* model.AuditFile , re * regexp.Regexp ) ([]auditFileWithNum , []* model.AuditFile ) {
1064
- invalidOrderFiles := []* model.AuditFile {} // 不符合排序规则的文件路径
1065
- fileWithNums := []auditFileWithNum {}
1066
-
1067
- for _ , file := range auditFiles {
1068
- filename := getFileNameWithoutExtension (file .FileName )
1069
- match := re .FindString (filename )
1070
- if match == "" {
1071
- invalidOrderFiles = append (invalidOrderFiles , file )
1072
- continue
1073
- }
1074
- num , err := strconv .Atoi (match )
1075
- if err != nil {
1076
- invalidOrderFiles = append (invalidOrderFiles , file )
1077
- log .NewEntry ().Errorf ("getSortNumsFromFilePaths convert string to number failed, string:%s, err:%v" , match , err )
1078
- continue
1079
- }
1080
- fileWithNums = append (fileWithNums , auditFileWithNum {
1081
- auditFile : file ,
1082
- num : num ,
1083
- })
1084
- }
1085
- return fileWithNums , invalidOrderFiles
1086
- }
1087
-
1088
- func getFileNameWithoutExtension (filePath string ) string {
1089
- fileName := filepath .Base (filePath )
1090
- ext := filepath .Ext (fileName )
1091
- return strings .TrimSuffix (fileName , ext )
1092
- }
1093
-
1094
1019
func batchCreateFileRecords (s * model.Storage , fileRecords []* model.AuditFile , taskId uint ) error {
1095
1020
// Initialize parentID to 0
1096
1021
var parentID uint
@@ -1205,27 +1130,6 @@ func ReverseToSqle(c echo.Context, rewriteUrlPath, targetHost string) (err error
1205
1130
return
1206
1131
}
1207
1132
1208
- const (
1209
- FileNamePrefixNumAscOrder = "filename_prefix_num_asc_order"
1210
- FileNameSuffixNumAscOrder = "filename_suffix_num_asc_order"
1211
- )
1212
-
1213
- type FileOrderMethod struct {
1214
- Method string
1215
- Desc string
1216
- }
1217
-
1218
- var FileOrderMethods = []FileOrderMethod {
1219
- {
1220
- Method : FileNamePrefixNumAscOrder ,
1221
- Desc : "文件名前缀数字升序" ,
1222
- },
1223
- {
1224
- Method : FileNameSuffixNumAscOrder ,
1225
- Desc : "文件名后缀数字升序" ,
1226
- },
1227
- }
1228
-
1229
1133
type SqlFileOrderMethod struct {
1230
1134
OrderMethod string `json:"order_method"`
1231
1135
Desc string `json:"desc"`
@@ -1251,17 +1155,5 @@ type GetSqlFileOrderMethodResV1 struct {
1251
1155
// @Success 200 {object} v1.GetSqlFileOrderMethodResV1
1252
1156
// @router /v1/tasks/file_order_methods [get]
1253
1157
func GetSqlFileOrderMethodV1 (c echo.Context ) error {
1254
- methods := make ([]SqlFileOrderMethod , 0 , len (FileOrderMethods ))
1255
- for _ , method := range FileOrderMethods {
1256
- methods = append (methods , SqlFileOrderMethod {
1257
- OrderMethod : method .Method ,
1258
- Desc : method .Desc ,
1259
- })
1260
- }
1261
- return c .JSON (http .StatusOK , GetSqlFileOrderMethodResV1 {
1262
- BaseRes : controller .NewBaseReq (nil ),
1263
- Data : SqlFileOrderMethodRes {
1264
- Methods : methods ,
1265
- },
1266
- })
1158
+ return getSqlFileOrderMethod (c )
1267
1159
}
0 commit comments