chengjie месяцев назад: 5
Родитель
Сommit
5fae3e69a8
8 измененных файлов с 2623 добавлено и 669 удалено
  1. 1929 667
      package-lock.json
  2. 3 1
      package.json
  3. 1 1
      public/mg/mps_error.html
  4. 13 0
      src/api/yjbdc/routes.js
  5. 544 0
      src/api/yjbdc/yjbdcController.js
  6. 4 0
      src/app.js
  7. 4 0
      src/config/index.js
  8. 125 0
      src/model/yjbdc.js

Разница между файлами не показана из-за своего большого размера
+ 1929 - 667
package-lock.json


+ 3 - 1
package.json

@@ -38,7 +38,9 @@
38 38
     "moment": "^2.30.1",
39 39
     "multer": "^1.4.5-lts.1",
40 40
     "mysql2": "^3.14.1",
41
-    "request-promise": "^4.2.6"
41
+    "pdfkit": "^0.17.1",
42
+    "request-promise": "^4.2.6",
43
+    "tencentcloud-sdk-nodejs-ocr": "^4.1.70"
42 44
   },
43 45
   "devDependencies": {
44 46
     "cross-env": "^7.0.3"

+ 1 - 1
public/mg/mps_error.html

@@ -202,7 +202,7 @@
202 202
                     </div>
203 203
 
204 204
                     <div class="tdID item4 FlexRow">
205
-                        <div class="content">{{item.Content}}</div>
205
+                        <div class="content" :title="item.FeedbackUrl">{{item.Content}}</div>
206 206
                     </div>
207 207
                     <div class="tdID item0">
208 208
                         <a href="#" @click="showImage" :id=" 'tdImageShow'+item.ID " v-if=" item.ImageUrl1 || item.ImageUrl2  || item.ImageUrl3  || item.ImageUrl4 ">查看</a>

+ 13 - 0
src/api/yjbdc/routes.js

@@ -0,0 +1,13 @@
1
+import Router from 'koa-router';
2
+import * as yjbdcController from './yjbdcController.js';
3
+
4
+const router = new Router();
5
+
6
+router.post('/api/YJBDCLogin',yjbdcController.YJBDCLogin);
7
+router.post('/api/OCRImageData',yjbdcController.OCRImageData);
8
+router.post('/api/GenerateArticle',yjbdcController.GenerateArticle);
9
+router.post('/api/GeneratePDF',yjbdcController.GeneratePDF);
10
+router.get('/api/GetYJBDCArticleList',yjbdcController.GetYJBDCArticleList);
11
+router.get('/api/DeleteYJBDCArticleList',yjbdcController.DeleteYJBDCArticleList);
12
+
13
+export default router;

Разница между файлами не показана из-за своего большого размера
+ 544 - 0
src/api/yjbdc/yjbdcController.js


+ 4 - 0
src/app.js

@@ -11,6 +11,7 @@ import queryParamSanitizer from './middleware/queryParamSanitizer.js';
11 11
 
12 12
 import commonRouter from './api/common/routes.js';
13 13
 import mpsRouter from './api/mps/routes.js';
14
+import yjbdcRouter from './api/yjbdc/routes.js';
14 15
 import phonicsRouter from './api/phonics/routes.js';
15 16
 import pinyinRouter from './api/pinyin/routes.js';
16 17
 import hanziRouter from './api/hanzi/routes.js';
@@ -81,6 +82,9 @@ app.use(mathcalculateRouter.routes());
81 82
 app.use(mathcalculateRouter.allowedMethods());
82 83
 app.use(webRouter.routes());
83 84
 app.use(webRouter.allowedMethods());
85
+app.use(yjbdcRouter.routes());
86
+app.use(yjbdcRouter.allowedMethods());
87
+
84 88
 
85 89
 // 启动服务器
86 90
 app.listen(config.port, () => {

+ 4 - 0
src/config/index.js

@@ -38,6 +38,9 @@ const commonConfig = {
38 38
         parentsHelper_appid:"wx80059777521b897c",
39 39
         parentsHelper_appsecret:"00c22ae7febdf105820fadb7b0a8d8c4",
40 40
 
41
+        yjbdc_appid:"wx80059777521b897c",
42
+        yjbdc_appsecret:"00c22ae7febdf105820fadb7b0a8d8c4",
43
+
41 44
         math_appid:"wx1fef080f74481cbd",
42 45
         math_appsecret:"9bc93761ba8c7a270155ff4b53cc0fda",
43 46
 
@@ -59,6 +62,7 @@ const commonConfig = {
59 62
         mps_appid:"wx39bc498e7fdacb6b",
60 63
         mps_appsecret:"c239948d6b769e281c84da212ecee9eb",
61 64
 
65
+
62 66
     },
63 67
     QCloud:{
64 68
         SecretId: 'AKIDFI6ewyOLhplRvBozXqunR1SfdMr8nzd3',

+ 125 - 0
src/model/yjbdc.js

@@ -0,0 +1,125 @@
1
+import { query } from '../util/db.js';
2
+
3
+/**
4
+ * YJBDC 模型
5
+ */
6
+class YJBDC {
7
+    /**
8
+     * 获取用户信息(通过OpenID)
9
+     * @param {Object} obj 查询参数
10
+     * @returns {Promise<Array>} 用户信息
11
+     */
12
+    static async GetUsersInfo(obj) {
13
+        try {
14
+            const sql = "SELECT * FROM YJBDC_WXUsers WHERE OpenID=?";
15
+            return await query(sql, [obj.OpenID]);
16
+        } catch (error) {
17
+            console.error('获取用户信息失败:', error);
18
+            throw error;
19
+        }
20
+    }
21
+
22
+    /**
23
+     * 获取用户信息(通过UserID)
24
+     * @param {Object} obj 查询参数
25
+     * @returns {Promise<Array>} 用户信息
26
+     */
27
+    static async GetUsersInfoByUserID(obj) {
28
+        try {
29
+            const sql = "SELECT * FROM YJBDC_WXUsers WHERE UserID=?";
30
+            return await query(sql, [obj.UserID]);
31
+        } catch (error) {
32
+            console.error('获取用户信息失败:', error);
33
+            throw error;
34
+        }
35
+    }
36
+
37
+    /**
38
+     * 添加用户
39
+     * @param {Object} obj 用户信息
40
+     * @returns {Promise<Object>} 插入结果
41
+     */
42
+    static async AddUsers(obj) {
43
+        try {
44
+            const sql = "INSERT INTO YJBDC_WXUsers SET ?";
45
+            return await query(sql, [obj]);
46
+        } catch (error) {
47
+            console.error('添加用户失败:', error);
48
+            throw error;
49
+        }
50
+    }
51
+
52
+    /**
53
+     * 更新用户信息(通过OpenID)
54
+     * @param {Object} obj 更新参数
55
+     * @returns {Promise<Object>} 更新结果
56
+     */
57
+    static async UpdateUsers(obj) {
58
+        try {
59
+            const sql = "UPDATE YJBDC_WXUsers SET ? WHERE OpenID=?";
60
+            return await query(sql, [obj, obj.OpenID]);
61
+        } catch (error) {
62
+            console.error('更新用户信息失败:', error);
63
+            throw error;
64
+        }
65
+    }
66
+
67
+    /**
68
+     * 更新用户信息(通过UserID)
69
+     * @param {Object} obj 更新参数
70
+     * @returns {Promise<Object>} 更新结果
71
+     */
72
+    static async UpdateUsersByUserID(obj) {
73
+        try {
74
+            const sql = "UPDATE YJBDC_WXUsers SET ? WHERE UserID=?";
75
+            return await query(sql, [obj, obj.UserID]);
76
+        } catch (error) {
77
+            console.error('更新用户信息失败:', error);
78
+            throw error;
79
+        }
80
+    }
81
+
82
+    static async AddOCRInfo(obj) {
83
+        try {
84
+            const sql = "INSERT INTO YJBDC_OCRs SET ?";
85
+            return await query(sql, [obj]);
86
+        } catch (error) {
87
+            console.error('添加OCR失败:', error);
88
+            throw error;
89
+        }
90
+    }
91
+
92
+    static async AddArticleInfo(obj) {
93
+        try {
94
+            const sql = "INSERT INTO YJBDC_Articles SET ?";
95
+            return await query(sql, [obj]);
96
+        } catch (error) {
97
+            console.error('添加OCR失败:', error);
98
+            throw error;
99
+        }
100
+    }
101
+
102
+    static async GetYJBDCArticleList(obj) {
103
+        try {
104
+            const sql = "SELECT * FROM YJBDC_Articles WHERE UserID=? and Flag=0 order by ID desc";
105
+            return await query(sql, [obj.UserID]);
106
+        } catch (error) {
107
+            console.error('获取信息失败:', error);
108
+            throw error;
109
+        }
110
+    }
111
+
112
+    static async UpdateYJBDCArticle(obj) {
113
+        try {
114
+            const sql = "UPDATE YJBDC_Articles SET Flag=-1 WHERE ID=?";
115
+            return await query(sql, [obj.ID]);
116
+        } catch (error) {
117
+            console.error('更新信息失败:', error);
118
+            throw error;
119
+        }
120
+    }
121
+
122
+
123
+}
124
+
125
+export default YJBDC;