|
|
@@ -1,55 +1,35 @@
|
|
1
|
1
|
import commonModel from '../model/commonModel.js';
|
|
2
|
2
|
import fs from 'fs';
|
|
|
3
|
+import { stringUtils } from '../util/stringClass.js';
|
|
3
|
4
|
|
|
4
|
5
|
async function runScript(){
|
|
5
|
6
|
try {
|
|
6
|
|
- //const sql2="update kylx365_db.HanziWord set HanziUnitID=0 where Name='"+item[j]+"'";
|
|
7
|
|
- //await commonModel.RunSql(null,sql2
|
|
8
|
|
- console.log("SET SQL_SAFE_UPDATES = 0;");
|
|
9
|
|
- var data = fs.readFileSync('data.txt', 'utf8');
|
|
10
|
|
- let arr=data.split(");")
|
|
11
|
|
- var districtID=14;
|
|
12
|
|
- var start=0;
|
|
13
|
|
- var end=arr.length;
|
|
14
|
|
- for(var i=start;i<end;i++){
|
|
15
|
|
- var item=arr[i].split(",");
|
|
16
|
|
- if (item[0]){
|
|
17
|
|
- var item2=item[1];
|
|
18
|
|
- item[0]=item[0].replace("(","");
|
|
19
|
|
- item[0]=item[0].replace("\n","");
|
|
20
|
|
- item[0]=item[0].replace("\r","");
|
|
21
|
|
- for(let j=2;j<7;j++){
|
|
22
|
|
- if (!item[j])
|
|
23
|
|
- item[j]=null
|
|
|
7
|
+
|
|
|
8
|
+ const sql="SELECT * FROM kylx365_db.Words;"
|
|
|
9
|
+ let list = await commonModel.RunSql(null,sql);
|
|
|
10
|
+ for(let i=0;i<list.length;i++){
|
|
|
11
|
+ let item=list[i];
|
|
|
12
|
+ //console.log(i+'/'+list.length);
|
|
|
13
|
+ //console.log(item.Translate);
|
|
|
14
|
+
|
|
|
15
|
+ if (item.Translate){
|
|
|
16
|
+ //let output=removeDuplicateDefinitions(item.Translate);
|
|
|
17
|
+ let output=item.Translate;
|
|
|
18
|
+ if (output.lastIndexOf(",")==output.length-1)
|
|
|
19
|
+ output=output.substring(0,output.length-1);
|
|
|
20
|
+ //console.log(output);
|
|
|
21
|
+ if (output && item.Translate!=output){
|
|
|
22
|
+ //console.log("input:"+item.Translate);
|
|
|
23
|
+ //console.log("output:"+output);
|
|
|
24
|
+ console.log("update Words set Translate='"+output+"' where ID="+item.ID+";");
|
|
|
25
|
+ let sql="update Words set Translate='"+output+"' where ID="+item.ID+";";
|
|
|
26
|
+ await commonModel.RunSql(null,sql);
|
|
24
|
27
|
}
|
|
25
|
|
-
|
|
26
|
|
- var sql="update MPS_Score set ScoreTotal="+item2+",Score1="+item[2]+",Score2="+item[3]+",Score3="+item[4]+",Score4="+item[5]+" where SchoolFullName="+item[0]+" and DistrictID="+districtID+" and ScoreYear=2025 and ScoreType='1-15志愿';";
|
|
27
|
|
- console.log(sql);
|
|
28
|
28
|
}
|
|
29
|
29
|
}
|
|
30
|
30
|
|
|
31
|
|
-
|
|
32
|
|
- // const sql="SELECT * FROM kylx365_db.HanziUnit where HanziBookID>=61 and HanziBookID<=72 order by HanziBookID,OrderID,ID;"
|
|
33
|
|
- // let list = await commonModel.RunSql(null,sql
|
|
34
|
|
- // for(let i=0;i<list.length;i++){
|
|
35
|
|
- // let item=list[i].Example;
|
|
36
|
|
- // for(let j=0;j<item.length;j++){
|
|
37
|
|
- // const sql3="SELECT * FROM kylx365_db.HanziWord where Name='"+item[j]+"' and HanziUnitID<500 order by HanziUnitID,ID limit 1;";
|
|
38
|
|
- // let list2=await commonModel.RunSql(null,sql3
|
|
39
|
|
- // for(let k=0;k<list2.length;k++){
|
|
40
|
|
- // const sql4="update kylx365_db.HanziWord set HanziUnitID="+list[i].ID+" where ID="+list2[k].ID+";";
|
|
41
|
|
- // console.log(sql4
|
|
42
|
|
- // await commonModel.RunSql(null,sql4
|
|
43
|
|
- // }
|
|
44
|
|
- // }
|
|
45
|
|
-
|
|
46
|
|
- // //console.log(json
|
|
47
|
|
- // //console.log(item.length
|
|
48
|
|
- // }
|
|
49
|
|
- // const sql2="update kylx365_db.HanziWord set HanziUnitID=0 where HanziUnitID<500";
|
|
50
|
|
- // await commonModel.RunSql(null,sql2);
|
|
51
|
31
|
|
|
52
|
|
- //console.log("完成");
|
|
|
32
|
+ console.log("完成");
|
|
53
|
33
|
} catch (error) {
|
|
54
|
34
|
console.error('Error executing script:', error);
|
|
55
|
35
|
}
|
|
|
@@ -95,3 +75,51 @@ async function runScript(){
|
|
95
|
75
|
runScript().catch(error => {
|
|
96
|
76
|
console.error('Error in runScript:', error);
|
|
97
|
77
|
});
|
|
|
78
|
+
|
|
|
79
|
+function removeDuplicateDefinitions(input) {
|
|
|
80
|
+ // 分割词性和释义
|
|
|
81
|
+ const segments = input.split(/([a-z]+\.)/).filter(Boolean);
|
|
|
82
|
+ const definitions = {};
|
|
|
83
|
+ let currentType = null;
|
|
|
84
|
+ let originalOrder = [];
|
|
|
85
|
+
|
|
|
86
|
+ // 解析词性和释义
|
|
|
87
|
+ for (let i = 0; i < segments.length; i++) {
|
|
|
88
|
+ const segment = segments[i].trim();
|
|
|
89
|
+ if (segment.match(/^[a-z]+\.$/)) {
|
|
|
90
|
+ // 这是词性标记
|
|
|
91
|
+ currentType = segment;
|
|
|
92
|
+ if (!definitions[currentType]) {
|
|
|
93
|
+ definitions[currentType] = [];
|
|
|
94
|
+ originalOrder.push(currentType);
|
|
|
95
|
+ }
|
|
|
96
|
+ } else if (currentType) {
|
|
|
97
|
+ // 这是释义内容
|
|
|
98
|
+ const meanings = segment.split(/\s+/).filter(Boolean);
|
|
|
99
|
+ definitions[currentType].push(...meanings);
|
|
|
100
|
+ }
|
|
|
101
|
+ }
|
|
|
102
|
+
|
|
|
103
|
+ // 去重处理
|
|
|
104
|
+ const result = [];
|
|
|
105
|
+ for (const type of originalOrder) {
|
|
|
106
|
+ if (definitions[type]) {
|
|
|
107
|
+ // 使用Set去重并保留原始顺序
|
|
|
108
|
+ const uniqueMeanings = [];
|
|
|
109
|
+ const seen = new Set();
|
|
|
110
|
+ for (const meaning of definitions[type]) {
|
|
|
111
|
+ if (!seen.has(meaning)) {
|
|
|
112
|
+ seen.add(meaning);
|
|
|
113
|
+ uniqueMeanings.push(meaning);
|
|
|
114
|
+ }
|
|
|
115
|
+ }
|
|
|
116
|
+ result.push(`${type}${uniqueMeanings.join(' ')}`);
|
|
|
117
|
+ }
|
|
|
118
|
+ }
|
|
|
119
|
+
|
|
|
120
|
+ return result.join(' ');
|
|
|
121
|
+}
|
|
|
122
|
+
|
|
|
123
|
+
|
|
|
124
|
+//console.log(removeDuplicateDefinitions("adj.十分喜悦的 快乐的 adj.十分喜悦的 快乐的"));
|
|
|
125
|
+//console.log(removeDuplicateDefinitions("vi.起立 升起 上涨 起身n.上升 增加 小山 斜坡 vi.起立 升起 上涨 起身n.上升 增加 小山 斜坡"));
|