chengjie 4 months ago
parent
commit
bc1cb0fd19

+ 1 - 1
src/api/common/commonController.js

@@ -207,7 +207,7 @@ export async function GetBaiduToken (ctx) {
207 207
     
208 208
     let appidObj=getAppIDAndSecret(ProgramID);
209 209
     let appid = appidObj.appid;
210
-    let secret = appidObj.secret;    
210
+    let secret = appidObj.secret;
211 211
 
212 212
     const url = `https://api.weixin.qq.com/sns/jscode2session?appid=${appid}&secret=${secret}&js_code=${Code}&grant_type=authorization_code`;
213 213
 

+ 1 - 1
src/api/mps/mpsCommonController.js

@@ -389,7 +389,7 @@ export async function GetMPSNotice(ctx) {
389 389
         // result.Content=content[rand];
390 390
 
391 391
         const content=[
392
-            "2025年「名额到区、名额到校」数据已更新。17日将继续更新「1-15平行志愿」,感谢您的耐心等待与支持!\n\n另向您推荐团队新作「语境背单词」小程序,通过阅读理解+选择题,帮孩子高效记忆单词、灵活运用考点,为初高中生设计,欢迎体验!",
392
+            "2025年「名额到区、名额到校、1-15平行志愿」数据已更新。感谢您的耐心等待与支持!\n\n另向您推荐团队新作「语境背单词」小程序,通过阅读理解+选择题,帮孩子高效记忆单词、灵活运用考点,为初高中生设计,欢迎体验!",
393 393
         ];
394 394
         result.Content=content[0];
395 395
 

+ 20 - 6
src/api/yjbdc/yjbdcController.js

@@ -17,8 +17,6 @@ import tencentcloud from 'tencentcloud-sdk-nodejs-ocr';
17 17
 const ONE_DAY_MAX_BUILD_COUNT=12;//一天最大生成数
18 18
 
19 19
 const OcrClient = tencentcloud.ocr.v20181119.Client;
20
-// AI平台配置
21
-const DEFAULT_AI_PROVIDER = 'volces1-5'; // 默认使用火山云AI
22 20
 
23 21
 //小程序登录
24 22
 export async function YJBDCLogin(ctx) {
@@ -264,8 +262,11 @@ export async function GenerateArticle(ctx) {
264 262
             //console.log("content:"+content);
265 263
             
266 264
             // 从请求参数中获取AI提供者,如果没有指定则使用默认值
267
-            let aiProvider = DEFAULT_AI_PROVIDER;
268
-            if (params.Level>=2){
265
+            let aiProvider = 'volces1-5';
266
+            if (params.AIVersion=="1.0"){
267
+                aiProvider="volces1-5";
268
+            }
269
+            else if (params.AIVersion=="1.5"){
269 270
                 aiProvider="volces1-6";
270 271
             }
271 272
             
@@ -301,6 +302,7 @@ export async function GenerateArticle(ctx) {
301 302
                 param2.Words=words;
302 303
                 param2.Level=params.Level;
303 304
                 param2.articleStyle=articleStyle;
305
+                param2.AIProvider=aiProvider;
304 306
                 param2.BuildStr=content;
305 307
                 param2.GenerateTime=Math.round((timeEnd-timeStart)/1000);
306 308
                 
@@ -337,10 +339,11 @@ export async function GetYJBDCArticleList(ctx) {
337 339
     const param = {
338 340
         UserID: ctx.query.UserID || 0,
339 341
         ID:ctx.query.ID || 0,
342
+        IsChoiceness:ctx.query.IsChoiceness || 0,//是否是精选文章
340 343
         IsTodayCount: ctx.query.IsTodayCount || false,
341 344
     };
342 345
     // 尝试从缓存获取
343
-    const url='GetYJBDCArticleList?UserID='+param.UserID+"&ID="+param.ID;
346
+    const url='GetYJBDCArticleList?IsChoiceness='+param.IsChoiceness+'&UserID='+param.UserID+'&ID='+param.ID;
344 347
     let result = globalCache.get(url);
345 348
     if (result === 0) {
346 349
 
@@ -912,9 +915,20 @@ export async function GeneratePDF(ctx) {
912 915
             });
913 916
         });
914 917
 
918
+        let filename="语境背单词_"+moment().format("YYMMDD_HHmm");
915 919
         // 设置响应头
916 920
         ctx.set('Content-Type', 'application/pdf');
917
-        ctx.set('Content-Disposition', 'attachment; filename=article.pdf');
921
+        
922
+        // 使用ASCII文件名作为主文件名,确保兼容性
923
+        const asciiFilename = 'yjbdc_' + moment().format("YYMMDD_HHmm") + '.pdf';
924
+        
925
+        // 对中文文件名进行URL编码,用于filename*参数
926
+        const encodedFilename = encodeURIComponent(filename + '.pdf');
927
+        
928
+        // 设置Content-Disposition头部,使用标准格式
929
+        // 首先提供ASCII文件名,然后提供UTF-8编码的文件名
930
+        ctx.set('Content-Disposition', `attachment; filename=${asciiFilename}; filename*=UTF-8''${encodedFilename}`);
931
+        
918 932
         ctx.body = pdfBuffer;
919 933
 
920 934
     } catch (error) {

+ 4 - 0
src/model/yjbdc.js

@@ -111,6 +111,10 @@ class YJBDC {
111 111
                     return await query(sql, [obj.UserID,obj.ID]);
112 112
                 }
113 113
             }
114
+            else if (obj.IsChoiceness){
115
+                let sql = "SELECT `ID`,`CreateTime`,`Words`,`Level`,`ArticleStyle`,`ArticleStart`,`ArticleTitle`,`Flag` FROM YJBDC_Articles WHERE ArticleTitle is not null and Flag=0 limit 4;";
116
+                return await query(sql, null);
117
+            }
114 118
             else{
115 119
                 let sql = "SELECT `ID`,`UserID`,`CreateTime`,`Words`,`Level`,`ArticleStyle`,`ArticleStart`,`Flag` FROM YJBDC_Articles WHERE UserID=? order by ID desc;";
116 120
                 return await query(sql, [obj.UserID]);

+ 8 - 3
src/test/build.test.js

@@ -8,17 +8,22 @@ async function runScript(){
8 8
         console.log("SET SQL_SAFE_UPDATES = 0;");
9 9
         var data = fs.readFileSync('data.txt', 'utf8');
10 10
         let arr=data.split(");")
11
-        var districtID=1;
11
+        var districtID=14;
12 12
         var start=0;
13 13
         var end=arr.length;
14 14
         for(var i=start;i<end;i++){
15 15
             var item=arr[i].split(",");
16 16
             if (item[0]){
17
-                var item2=(Number(item[2])-50);
17
+                var item2=item[1];
18 18
                 item[0]=item[0].replace("(","");
19 19
                 item[0]=item[0].replace("\n","");
20 20
                 item[0]=item[0].replace("\r","");
21
-                var sql="update MPS_Score set ScoreTotal="+item2+",Score1="+item[3]+",Score2="+item[4]+",Score3="+item[5]+",Score4="+item[6]+" where SchoolFullNameJunior="+item[0]+" and SchoolFullName="+item[1]+" and DistrictID="+districtID+" and ScoreYear=2025 and ScoreType='名额到校';";
21
+                for(let j=2;j<7;j++){
22
+                    if (!item[j])
23
+                        item[j]=null
24
+                }
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志愿';";
22 27
                 console.log(sql);
23 28
             }
24 29
         }

+ 46 - 0
src/test/data copy.txt

@@ -0,0 +1,46 @@
1
+('同济创意',613,364,106,117,106);
2
+('上海中学',705.5,417.5,137,136,142);
3
+('久隆模范',653.5,381,123,121,130);
4
+('田家炳',640.5,370.5,121,126,122);
5
+('扬波中学',566,320,109,98,109);
6
+('新和中学',586,355,110,115,97);
7
+('风范中学',563.5,327,89,108,104);
8
+('上戏附中',620.5,370,116,119,115);
9
+('安生学校',514.5,276.5,102,114,103);
10
+('上音安师',531,299,76,105,102);
11
+('复旦复兴',680,407,133,130,130);
12
+('师大一附',670.5,397.5,128,131,129);
13
+('上财北郊',664.5,383.5,130,127,139);
14
+('上音北虹',627,371.5,123,121,123);
15
+('继光高级',567,338,87,121,91);
16
+('鲁迅中学',614.5,353.5,119,109,120);
17
+('五十二中',514.5,286.5,95,104,104);
18
+('上师虹口',641,375,129,116,124);
19
+('同济澄衷',594.5,355.5,108,113,109);
20
+('交大附中',703,415.5,142,134,141.5);
21
+('复旦附中',705,417,136,136,138);
22
+('燎原双语',569,333,100,102,105);
23
+('存志高级',659,387,128,119,129);
24
+('创艺高级',551.5,314.5,91,116,101);
25
+('华曜高级',637.5,375.5,122,109,118);
26
+('同洲模范',584.5,347,106,117,100);
27
+('宝山世外',662.5,386,125,125,132);
28
+('远东学校',524.5,306,95,113,92);
29
+('华盛怀少',560.5,330,96,107,98);
30
+('师大二附',704,417.5,144,128,142);
31
+('丰华高级',588.5,339,108,107,119);
32
+('金苹果',563.5,330.5,97,114,96);
33
+('东鼎外语',564.5,327.5,88,117,99);
34
+('尚德实验',623,365,120,116,115);
35
+('交大南洋',582,335.5,98,115,107);
36
+('永昌中学',542.5,317,112,105,97);
37
+('金山世外',625.5,356.5,106,124,126);
38
+('领科双语',634.5,385,120,127,115);
39
+('西外外语',547.5,308.5,99,114,105);
40
+('赫贤学校',606.5,357.5,103,116,110);
41
+('青浦世外',603.5,357.5,110,110,109);
42
+('宋庆龄',554,310,94,107,108);
43
+('协和双语',592.5,351,105,111,103);
44
+('博华高级',538.5,312,113,113,98);
45
+('城桥中学',544.5,314.5,105,119,96);
46
+('民一中学',504,291,83,104,81);

+ 48 - 23
src/test/data.txt

@@ -1,23 +1,48 @@
1
-Tom's ancestors were great inventors, and he wanted to
2
-be an inventor too. On his 10th anniversary of starting to
3
-learn about inventions, he made an announcement that
4
-he would try to make an alternative energy device.
5
-However, the process was really hard, and he almost lost
6
-his appetite because of the difficulties. His friends and
7
-family advocated him to keep going and not to give up.
8
-Tom absorbed all the knowledge he could from books and
9
-the Internet. Finally, after many tries, his new device was
10
-successful, and the audience applauded for his wonderful
11
-work. People all appreciated his effort and creativity in the
12
-court of public opinion.
13
-
14
-absorb
15
-abvocate
16
-alternative
17
-ancestor
18
-anniversary
19
-announcement
20
-appetite
21
-applaud
22
-appreciate
23
-court
1
+('上海市上海中学',711.0,422.0,148,126,145);
2
+('上海田家炳中学',643.0,384.0,123,125,117);
3
+('上海戏剧学院附属高级中学(艺术班)',599.5,355.5,121,108,107);
4
+('上海安生学校',NULL,NULL,NULL,NULL,NULL);
5
+('上海音乐学院附属安师实验中学(艺术班)',591.5,363.5,110,124,92);
6
+('上海交通大学附属中学',707.5,419.5,141,132,141);
7
+('复旦大学附属中学',708.0,417.0,147,126,144);
8
+('上海市民办燎原双语高级中学',567.5,330.5,108,107,99);
9
+('上海闵行区诺达双语学校',NULL,NULL,NULL,NULL,NULL);
10
+('上海民办行中中学',520.0,289.0,100,109,92);
11
+('上海存志高级中学',572.5,325.5,110,108,110);
12
+('上海创艺高级中学',538.5,310.5,75,108,93);
13
+('上海市宝山华曜高级中学',602.0,352.0,110,112,109);
14
+('上海市同洲模范学校',534.5,303.5,116,109,95);
15
+('上海金瑞学校',NULL,NULL,NULL,NULL,NULL);
16
+('上海宝山区世外学校',675.0,401.0,134,125,129);
17
+('上海市民办远东学校',561.0,316.0,130,112,105);
18
+('上海华旭双语学校',NULL,NULL,NULL,NULL,NULL);
19
+('上海嘉定区民办华盛怀少学校',NULL,NULL,NULL,NULL,NULL);
20
+('华东师范大学第二附属中学',707.0,420.0,145,129,142);
21
+('上海师范大学附属中学',699.0,411.0,135,132,142);
22
+('上海市浦东新区民办浦实高级中学',563.0,332.0,110,113,102);
23
+('上海市民办丰华高级中学',563.0,336.0,106,116,104);
24
+('上海浦东新区民办东鼎外国语学校',574.5,339.5,96,118,100);
25
+('上海市民办尚德实验学校',611.0,351.0,121,116,119);
26
+('上海市民办交大南洋中学',563.5,333.5,113,118,96);
27
+('上海市民办永昌中学',540.5,291.5,114,111,115);
28
+('上海金山区世外学校',620.5,370.0,124,116,112);
29
+('上海市松江区科德高级中学',602.0,367.0,117,117,99);
30
+('上海市松江九峰实验学校',664.0,398.0,129,125,125);
31
+('上海领科双语学校',662.5,384.5,121,120,134);
32
+('上海市西外外国语学校',548.5,318.0,100,113,102);
33
+('上海赫贤学校',523.0,294.5,87,100,92);
34
+('上海松江区爱菊学校',530.0,305.0,114,91,104);
35
+('上海市青浦高级中学',668.5,396.5,128,123,126);
36
+('复旦大学附属中学青浦分校',689.5,403.5,135,127,141);
37
+('上海市朱家角中学',656.0,376.0,109,125,131);
38
+('上海市青浦区第二中学',570.5,341.0,103,117,100);
39
+('上海市青浦区东湖中学',603.0,355.0,114,113,114);
40
+('上海市青浦区第一中学',631.0,373.0,123,121,121);
41
+('上海青浦区世外高级中学',518.5,283.5,78,121,95);
42
+('上海青浦区宏润博源高级中学',557.5,337.5,97,109,94);
43
+('上海宋庆龄学校',593.0,351.0,105,123,100);
44
+('上海青浦区协和双语学校',536.5,322.0,97,114,80);
45
+('上海美达菲双语高级中学',NULL,NULL,NULL,NULL,NULL);
46
+('上海奉贤区博华高级中学',552.5,319.5,118,105,106);
47
+('上海市崇明区城桥中学',532.5,310.5,87,104,93);
48
+('上海民办民一中学',499.5,267.5,122,104,108);