From bbfe88ac89822e08fc0f574d0c062e5e4a44b5af Mon Sep 17 00:00:00 2001 From: chenweiyi <737649321@qq.com> Date: Fri, 2 Aug 2024 21:02:55 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E5=A2=9E=E5=8A=A0api2d=E7=9A=84?= =?UTF-8?q?=E4=BD=99=E9=A2=9D=E6=9F=A5=E8=AF=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/backend/package.json | 4 +- packages/backend/src/app.mts | 2 + packages/backend/src/controller/vendor.mts | 12 +++ packages/backend/src/routes/vendor.mts | 6 ++ packages/backend/src/service/vendor.mts | 44 +++++++++++ packages/frontend/src/app.ts | 2 +- .../src/pages/ai/chatgpt/LayoutSider.tsx | 7 +- .../ai/chatgpt/components/ModelConfig.tsx | 79 ++++++++++++++----- packages/frontend/src/services/chatgpt.ts | 5 ++ packages/frontend/src/utils/request.ts | 3 +- 10 files changed, 138 insertions(+), 26 deletions(-) create mode 100644 packages/backend/src/controller/vendor.mts create mode 100644 packages/backend/src/routes/vendor.mts create mode 100644 packages/backend/src/service/vendor.mts diff --git a/packages/backend/package.json b/packages/backend/package.json index 2f69817..751338b 100644 --- a/packages/backend/package.json +++ b/packages/backend/package.json @@ -9,8 +9,8 @@ }, "scripts": { "dev": "nodemon ./src/bin/www.mts", - "debug": "cross-env DEBUG=\"server,app,,service:*,controller:*\" nodemon ./src/bin/www.mts", - "start": "cross-env DEBUG=\"server,app,,service:*,controller:*\" ts-node ./src/bin/www.mts", + "debug": "cross-env DEBUG=\"server,app,vendor,service:*,controller:*\" nodemon ./src/bin/www.mts", + "start": "cross-env DEBUG=\"server,app,vendor,service:*,controller:*\" ts-node ./src/bin/www.mts", "test": "echo \"Error: no test specified\" && exit 1", "clean": "rm -rf ./build", "build-ts": "tsc", diff --git a/packages/backend/src/app.mts b/packages/backend/src/app.mts index 30cc280..7588ba1 100644 --- a/packages/backend/src/app.mts +++ b/packages/backend/src/app.mts @@ -11,6 +11,7 @@ import serve from 'koa-static' import path from 'path' import { router as message } from './routes/message.mjs' +import { router as vendor } from './routes/vendor.mjs' import users from './routes/users.mjs' import conditional from './utils/koa-conditional-get.mjs' @@ -78,6 +79,7 @@ app.use( // app.use(users.routes(), users.allowedMethods()) app.use(users.routes()).use(users.allowedMethods()) app.use(message.routes()).use(message.allowedMethods()) +app.use(vendor.routes()).use(vendor.allowedMethods()) // error-handling app.on('error', (err, ctx) => { diff --git a/packages/backend/src/controller/vendor.mts b/packages/backend/src/controller/vendor.mts new file mode 100644 index 0000000..1dccb63 --- /dev/null +++ b/packages/backend/src/controller/vendor.mts @@ -0,0 +1,12 @@ +import Koa from 'koa' +import { api2DProfile } from '../service/vendor.mjs' + +export default class VendorController { + /** + * 获取vendor用户信息 + * @param ctx + */ + public static async postApi2DProfile(ctx: Koa.Context) { + await api2DProfile(ctx) + } +} diff --git a/packages/backend/src/routes/vendor.mts b/packages/backend/src/routes/vendor.mts new file mode 100644 index 0000000..1cdcbc1 --- /dev/null +++ b/packages/backend/src/routes/vendor.mts @@ -0,0 +1,6 @@ +import { router } from './index.mjs' +import VendorController from '../controller/vendor.mjs' + +router.post('/userProfile/api2d', VendorController.postApi2DProfile) + +export { router } diff --git a/packages/backend/src/service/vendor.mts b/packages/backend/src/service/vendor.mts new file mode 100644 index 0000000..08844e1 --- /dev/null +++ b/packages/backend/src/service/vendor.mts @@ -0,0 +1,44 @@ +import { Context } from 'koa' +import fetch from 'node-fetch' +import proxy from 'https-proxy-agent' +import debugLibrary from 'debug' + +const debug = debugLibrary('vendor') + +export async function api2DProfile(ctx: Context) { + try { + const res = await fetch(`https://api.api2d.com/user/profile`, { + method: 'POST', + headers: { + authorization: 'Bearer 100037|WOdHl3svgUPJdKIMkqlbSZbl7YjOXxHqTEVVtyFa', + Accept: 'application/json' + }, + agent: proxy(process.env.CUSTOM_PROXY) + }) + const data: any = await res.json() + debug('api2DProfile result: ', data) + if (data.code === 0) { + ctx.body = { + code: 200, + msg: 'ok', + data: data.data.profile, + success: true + } + } else { + ctx.body = { + code: 500, + msg: data.msg || 'error', + data: data, + success: false + } + } + } catch (e) { + debug('api2DProfile error: ', e) + ctx.body = { + code: 500, + msg: e.message || 'error', + data: null, + success: false + } + } +} diff --git a/packages/frontend/src/app.ts b/packages/frontend/src/app.ts index 0f6678e..8cda10f 100644 --- a/packages/frontend/src/app.ts +++ b/packages/frontend/src/app.ts @@ -42,7 +42,7 @@ export const request: RequestConfig = { // 拦截响应数据,进行个性化处理 const { data } = response as unknown as Common.Response if (data.code === 200) { - return data.data + return data } else { return Promise.reject(data) } diff --git a/packages/frontend/src/pages/ai/chatgpt/LayoutSider.tsx b/packages/frontend/src/pages/ai/chatgpt/LayoutSider.tsx index 7bcc9bc..7570e89 100644 --- a/packages/frontend/src/pages/ai/chatgpt/LayoutSider.tsx +++ b/packages/frontend/src/pages/ai/chatgpt/LayoutSider.tsx @@ -113,7 +113,12 @@ export default function LayoutSider() {
- + - {checkError !== 'ok' ? ( - + +
+ + {checkError !== 'ok' ? ( + + {checkError} + + ) : checkError === 'ok' ? ( + ok! + ) : null} +
+
+ +
+
-
+ 查询 + + {bill === '-' ? ( + - + ) : ( + {bill} + )} +
+ + ) : null} ) diff --git a/packages/frontend/src/services/chatgpt.ts b/packages/frontend/src/services/chatgpt.ts index dec8c21..2ee7a8a 100644 --- a/packages/frontend/src/services/chatgpt.ts +++ b/packages/frontend/src/services/chatgpt.ts @@ -35,5 +35,10 @@ export const CHATGPT = { const res = await get('/q/checkApi', params) console.log('chatgpt - /q/checkApi:', res) return res + }, + queryApi2DBill: async (): Promise => { + const res = await post('/q/userProfile/api2d') + console.log('chatgpt - /q/userProfile/api2d:', res) + return res } } diff --git a/packages/frontend/src/utils/request.ts b/packages/frontend/src/utils/request.ts index a14dc4b..759ad44 100644 --- a/packages/frontend/src/utils/request.ts +++ b/packages/frontend/src/utils/request.ts @@ -9,6 +9,7 @@ async function http( params?: RequestData, config?: any ) { + console.log('http') const data = await request(url, { method, headers: { @@ -30,7 +31,7 @@ function get( return http(url, 'GET', params, config) } -function post( +function post( url: string, data?: RequestData, config?: any