From f2acffd5db26509e8f144cadfb50d782a9f2d6e8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BC=A0=E7=A1=95?= Date: Sun, 25 May 2025 19:04:13 +0800 Subject: [PATCH 1/3] =?UTF-8?q?=E5=88=9D=E5=A7=8B=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/doc/data/index.ts | 44 ++++ src/api/doc/data/types.ts | 23 ++ src/api/doc/filter/index.ts | 33 +++ src/api/doc/filter/types.ts | 18 ++ src/api/operation/logs/index.ts | 63 +++++ src/api/operation/logs/types.ts | 146 ++++++++++++ src/api/prediction/program/index.ts | 63 +++++ src/api/prediction/program/types.ts | 204 ++++++++++++++++ src/views/doc/data/index.vue | 204 ++++++++++++++++ src/views/doc/filter/index.vue | 268 +++++++++++++++++++++ src/views/operation/logs/index.vue | 276 ++++++++++++++++++++++ src/views/prediction/program/index.vue | 315 +++++++++++++++++++++++++ 12 files changed, 1657 insertions(+) create mode 100644 src/api/doc/data/index.ts create mode 100644 src/api/doc/data/types.ts create mode 100644 src/api/doc/filter/index.ts create mode 100644 src/api/doc/filter/types.ts create mode 100644 src/api/operation/logs/index.ts create mode 100644 src/api/operation/logs/types.ts create mode 100644 src/api/prediction/program/index.ts create mode 100644 src/api/prediction/program/types.ts create mode 100644 src/views/doc/data/index.vue create mode 100644 src/views/doc/filter/index.vue create mode 100644 src/views/operation/logs/index.vue create mode 100644 src/views/prediction/program/index.vue diff --git a/src/api/doc/data/index.ts b/src/api/doc/data/index.ts new file mode 100644 index 00000000..2a22c726 --- /dev/null +++ b/src/api/doc/data/index.ts @@ -0,0 +1,44 @@ +import request from '@/utils/request'; +import type { AxiosPromise } from 'axios'; +import type { ExcelGenerateParams, ExcelGenerateResponse } from './types'; + +/** + * 生成Excel数据 + * @param data 生成参数 + */ +export const generateData = (data: ExcelGenerateParams): AxiosPromise => { + const formData = new FormData(); + formData.append('file', data.file as Blob); + formData.append('count', data.count.toString()); + + return request({ + url: '/system/caiqr/uploadExcelFile', + method: 'post', + data: formData, + headers: { + 'Content-Type': 'multipart/form-data' + } + }); +}; + +/** + * 下载Excel文件 + * @param fileName 文件名 + */ +export const downloadFile = (fileName: string): AxiosPromise => { + return request({ + url: '/system/caiqr/downloadExcel', + method: 'get', + params: { fileName }, + responseType: 'blob' + }); +}; + +export const exportExcel = (data: ExportParams): Promise> => { + return request({ + url: '/system/caiqr/downloadExcel', + method: 'post', + data, + responseType: 'blob' + }); +}; diff --git a/src/api/doc/data/types.ts b/src/api/doc/data/types.ts new file mode 100644 index 00000000..8f9a1693 --- /dev/null +++ b/src/api/doc/data/types.ts @@ -0,0 +1,23 @@ +export interface ExcelFileItem { + /** 文件名 */ + name: string; + /** 下载地址 */ + url: string; +} + +export interface ExcelGenerateParams { + /** 上传文件 */ + file: File | null; + /** 生成组数 */ + count: number; +} + +export interface ExcelGenerateResponse { + /** 返回码 */ + code: number; + /** 返回信息 */ + msg: string; + /** 生成文件名 */ + data: string; +} + diff --git a/src/api/doc/filter/index.ts b/src/api/doc/filter/index.ts new file mode 100644 index 00000000..425c6b61 --- /dev/null +++ b/src/api/doc/filter/index.ts @@ -0,0 +1,33 @@ +// api/index.ts +import request from '@/utils/request'; +import type { AxiosResponse } from 'axios'; +import type { MatchCountResponse, ExportParams } from './types'; + +export const getMatchCount = (date: string, playCode: PlayType): Promise> => { + return request({ + url: '/system/caiqr/getDateMatchCount', + method: 'get', + params: { date, playCode } + }); +}; + +export const exportExcel = (data: ExportParams): Promise> => { + return request({ + url: '/system/caiqr/filter', + method: 'post', + data, + responseType: 'blob' + }); +}; + +// 新增日期格式化工具函数 +export const formatLocalDate = (dateString: string): string => { + const dateObj = new Date(dateString); + if (isNaN(dateObj.getTime())) return ''; // 无效日期处理 + + const year = dateObj.getFullYear(); + const month = String(dateObj.getMonth() + 1).padStart(2, '0'); + const day = String(dateObj.getDate()).padStart(2, '0'); + + return `${year}-${month}-${day}`; +}; diff --git a/src/api/doc/filter/types.ts b/src/api/doc/filter/types.ts new file mode 100644 index 00000000..f71cd491 --- /dev/null +++ b/src/api/doc/filter/types.ts @@ -0,0 +1,18 @@ +// types.ts +export type PlayType = 'spf_handicap' | 'total_goals' | 'half_full' | ''; + +export interface DateFilter { + date: string; + filterCount: number; +} + +export interface MatchCountResponse { + code: number; + message: string; + data: number; +} + +export interface ExportParams { + playType: PlayType; + dateFilters: DateFilter[]; +} diff --git a/src/api/operation/logs/index.ts b/src/api/operation/logs/index.ts new file mode 100644 index 00000000..3290e8c4 --- /dev/null +++ b/src/api/operation/logs/index.ts @@ -0,0 +1,63 @@ +import request from '@/utils/request'; +import { AxiosPromise } from 'axios'; +import { LogsVO, LogsForm, LogsQuery } from '@/api/operation/logs/types'; + +/** + * 查询nginx日志列表 + * @param query + * @returns {*} + */ + +export const listLogs = (query?: LogsQuery): AxiosPromise => { + return request({ + url: '/jshdconsole/logs/list', + method: 'get', + params: query + }); +}; + +/** + * 查询nginx日志详细 + * @param id + */ +export const getLogs = (id: string | number): AxiosPromise => { + return request({ + url: '/jshdconsole/logs/' + id, + method: 'get' + }); +}; + +/** + * 新增nginx日志 + * @param data + */ +export const addLogs = (data: LogsForm) => { + return request({ + url: '/jshdconsole/logs', + method: 'post', + data: data + }); +}; + +/** + * 修改nginx日志 + * @param data + */ +export const updateLogs = (data: LogsForm) => { + return request({ + url: '/jshdconsole/logs', + method: 'put', + data: data + }); +}; + +/** + * 删除nginx日志 + * @param id + */ +export const delLogs = (id: string | number | Array) => { + return request({ + url: '/jshdconsole/logs/' + id, + method: 'delete' + }); +}; diff --git a/src/api/operation/logs/types.ts b/src/api/operation/logs/types.ts new file mode 100644 index 00000000..ba162bd6 --- /dev/null +++ b/src/api/operation/logs/types.ts @@ -0,0 +1,146 @@ +export interface LogsVO { + /** + * + */ + id: string | number; + + /** + * + */ + realIp: string; + + /** + * + */ + timeLocal: string; + + /** + * + */ + requestMethod: string; + + /** + * + */ + requestUri: string; + + /** + * + */ + userAgent: string; + + /** + * + */ + requestParams: string; + + /** + * + */ + userToken: string; + + /** + * + */ + createdAt: string; + +} + +export interface LogsForm extends BaseEntity { + /** + * + */ + id?: string | number; + + /** + * + */ + realIp?: string; + + /** + * + */ + timeLocal?: string; + + /** + * + */ + requestMethod?: string; + + /** + * + */ + requestUri?: string; + + /** + * + */ + userAgent?: string; + + /** + * + */ + requestParams?: string; + + /** + * + */ + userToken?: string; + + /** + * + */ + createdAt?: string; + +} + +export interface LogsQuery extends PageQuery { + + /** + * + */ + realIp?: string; + + /** + * + */ + timeLocal?: string; + + /** + * + */ + requestMethod?: string; + + /** + * + */ + requestUri?: string; + + /** + * + */ + userAgent?: string; + + /** + * + */ + requestParams?: string; + + /** + * + */ + userToken?: string; + + /** + * + */ + createdAt?: string; + + /** + * 日期范围参数 + */ + params?: any; +} + + + diff --git a/src/api/prediction/program/index.ts b/src/api/prediction/program/index.ts new file mode 100644 index 00000000..a0a7a7e2 --- /dev/null +++ b/src/api/prediction/program/index.ts @@ -0,0 +1,63 @@ +import request from '@/utils/request'; +import { AxiosPromise } from 'axios'; +import { ProgramVO, ProgramForm, ProgramQuery } from '@/api/prediction/program/types'; + +/** + * 查询赛事方案列表 + * @param query + * @returns {*} + */ + +export const listProgram = (query?: ProgramQuery): AxiosPromise => { + return request({ + url: '/jshdconsole/program/list', + method: 'get', + params: query + }); +}; + +/** + * 查询赛事方案详细 + * @param programId + */ +export const getProgram = (programId: string | number): AxiosPromise => { + return request({ + url: '/jshdconsole/program/' + programId, + method: 'get' + }); +}; + +/** + * 新增赛事方案 + * @param data + */ +export const addProgram = (data: ProgramForm) => { + return request({ + url: '/jshdconsole/program', + method: 'post', + data: data + }); +}; + +/** + * 修改赛事方案 + * @param data + */ +export const updateProgram = (data: ProgramForm) => { + return request({ + url: '/jshdconsole/program', + method: 'put', + data: data + }); +}; + +/** + * 删除赛事方案 + * @param programId + */ +export const delProgram = (programId: string | number | Array) => { + return request({ + url: '/jshdconsole/program/' + programId, + method: 'delete' + }); +}; diff --git a/src/api/prediction/program/types.ts b/src/api/prediction/program/types.ts new file mode 100644 index 00000000..2d151739 --- /dev/null +++ b/src/api/prediction/program/types.ts @@ -0,0 +1,204 @@ +export interface ProgramVO { + /** + * 方案号 + */ + programId: string | number; + + /** + * 一段JSON文本,返回给客户端 + */ + tickets: string; + + /** + * 收益倍数 + */ + earnings: number; + + /** + * 9 -- 未开奖 +0 -- 未中奖 +1 -- 已中奖 + */ + status: number; + + /** + * 相关比赛 + */ + reference: string; + + /** + * 预测概率 + */ + mojieIndex: number; + + /** + * 方案类型 +0 -- 精选方案 +1 -- 高赔方案 +2 -- 自定义方案 + */ + type: number; + + /** + * 0 -- 无效 +1 -- 有效 + */ + isValid: string | number; + + /** + * 串关个数 + */ + passNum: number; + + /** + * 开始时间 + */ + beginTime: string; + + /** + * 截止时间 + */ + closingTime: string; + + /** + * 当天的第几个方案 + */ + programNum: number; + +} + +export interface ProgramForm extends BaseEntity { + /** + * 方案号 + */ + programId?: string | number; + + /** + * 一段JSON文本,返回给客户端 + */ + tickets?: string; + + /** + * 收益倍数 + */ + earnings?: number; + + /** + * 9 -- 未开奖 +0 -- 未中奖 +1 -- 已中奖 + */ + status?: number; + + /** + * 相关比赛 + */ + reference?: string; + + /** + * 预测概率 + */ + mojieIndex?: number; + + /** + * 方案类型 +0 -- 精选方案 +1 -- 高赔方案 +2 -- 自定义方案 + */ + type?: number; + + /** + * 0 -- 无效 +1 -- 有效 + */ + isValid?: string | number; + + /** + * 串关个数 + */ + passNum?: number; + + /** + * 截止时间 + */ + closingTime?: string; + + /** + * 当天的第几个方案 + */ + programNum?: number; + +} + +export interface ProgramQuery extends PageQuery { + + /** + * 一段JSON文本,返回给客户端 + */ + tickets?: string; + + /** + * 收益倍数 + */ + earnings?: number; + + /** + * 9 -- 未开奖 +0 -- 未中奖 +1 -- 已中奖 + */ + status?: number; + + /** + * 相关比赛 + */ + reference?: string; + + /** + * 预测概率 + */ + mojieIndex?: number; + + /** + * 方案类型 +0 -- 精选方案 +1 -- 高赔方案 +2 -- 自定义方案 + */ + type?: number; + + /** + * 0 -- 无效 +1 -- 有效 + */ + isValid?: string | number; + + /** + * 串关个数 + */ + passNum?: number; + + /** + * 开始时间 + */ + beginTime?: string; + + /** + * 截止时间 + */ + closingTime?: string; + + /** + * 当天的第几个方案 + */ + programNum?: number; + + /** + * 日期范围参数 + */ + params?: any; +} + + + diff --git a/src/views/doc/data/index.vue b/src/views/doc/data/index.vue new file mode 100644 index 00000000..7f884087 --- /dev/null +++ b/src/views/doc/data/index.vue @@ -0,0 +1,204 @@ + + + + + diff --git a/src/views/doc/filter/index.vue b/src/views/doc/filter/index.vue new file mode 100644 index 00000000..539fe112 --- /dev/null +++ b/src/views/doc/filter/index.vue @@ -0,0 +1,268 @@ + + + + + + diff --git a/src/views/operation/logs/index.vue b/src/views/operation/logs/index.vue new file mode 100644 index 00000000..6039c279 --- /dev/null +++ b/src/views/operation/logs/index.vue @@ -0,0 +1,276 @@ + + + diff --git a/src/views/prediction/program/index.vue b/src/views/prediction/program/index.vue new file mode 100644 index 00000000..40a02f78 --- /dev/null +++ b/src/views/prediction/program/index.vue @@ -0,0 +1,315 @@ + + + -- Gitee From 865f015e47aada46b066af2923cddb553f3f1b07 Mon Sep 17 00:00:00 2001 From: zuojianhua Date: Mon, 26 May 2025 12:29:07 +0800 Subject: [PATCH 2/3] =?UTF-8?q?=E8=BF=90=E7=BB=B4=E6=95=B0=E6=8D=AE?= =?UTF-8?q?=EF=BC=8Cnginx-log?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/operation/logs/types.ts | 150 +++++++++++++++++++++++------ src/views/operation/logs/index.vue | 146 +++++++++++++++++++--------- 2 files changed, 222 insertions(+), 74 deletions(-) diff --git a/src/api/operation/logs/types.ts b/src/api/operation/logs/types.ts index ba162bd6..b9021a70 100644 --- a/src/api/operation/logs/types.ts +++ b/src/api/operation/logs/types.ts @@ -1,145 +1,235 @@ export interface LogsVO { /** - * + * */ id: string | number; /** - * + * */ realIp: string; /** - * + * */ timeLocal: string; /** - * + * */ requestMethod: string; /** - * + * */ requestUri: string; /** - * + * */ userAgent: string; /** - * + * */ requestParams: string; /** - * + * */ userToken: string; /** - * + * */ createdAt: string; + /** + * 手机号 + */ + mobile: string; + + /** + * 用户ID + */ + userId: string | number; + + /** + * + */ + deviceId: string | number; + + /** + * 更新用户信息表, 是否已更新 + */ + isUpdateUser: number; + + /** + * 比赛id + */ + matchId: string | number; + + /** + * + */ + apiNames: string; + } export interface LogsForm extends BaseEntity { /** - * + * */ id?: string | number; /** - * + * */ realIp?: string; /** - * + * */ timeLocal?: string; /** - * + * */ requestMethod?: string; /** - * + * */ requestUri?: string; /** - * + * */ userAgent?: string; /** - * + * */ requestParams?: string; /** - * + * */ userToken?: string; /** - * + * */ createdAt?: string; + /** + * 手机号 + */ + mobile?: string; + + /** + * 用户ID + */ + userId?: string | number; + + /** + * + */ + deviceId?: string | number; + + /** + * 更新用户信息表, 是否已更新 + */ + isUpdateUser?: number; + + /** + * 比赛id + */ + matchId?: string | number; + + /** + * + */ + apiNames?: string; + } export interface LogsQuery extends PageQuery { /** - * + * */ realIp?: string; /** - * + * */ timeLocal?: string; /** - * + * */ requestMethod?: string; /** - * + * */ requestUri?: string; /** - * + * */ userAgent?: string; /** - * + * */ requestParams?: string; /** - * + * */ userToken?: string; /** - * + * */ createdAt?: string; - /** - * 日期范围参数 - */ - params?: any; + /** + * 手机号 + */ + mobile?: string; + + /** + * 用户ID + */ + userId?: string | number; + + /** + * + */ + deviceId?: string | number; + + /** + * 更新用户信息表, 是否已更新 + */ + isUpdateUser?: number; + + /** + * 比赛id + */ + matchId?: string | number; + + /** + * + */ + apiNames?: string; + + /** + * 日期范围参数 + */ + params?: any; } diff --git a/src/views/operation/logs/index.vue b/src/views/operation/logs/index.vue index 6039c279..118f86b2 100644 --- a/src/views/operation/logs/index.vue +++ b/src/views/operation/logs/index.vue @@ -4,13 +4,16 @@
- - + + - - + + - + + + + + + + + + + + + + + + + + + + + + 搜索 重置 @@ -28,49 +50,55 @@ - + --> - - - - - - - + + + + + + + - + - - - - - - - - - - + + + + + + + @@ -107,6 +135,24 @@ placeholder="请选择"> + + + + + + + + + + + + + + + + + +