This commit is contained in:
2025-11-29 15:31:17 +08:00
14 changed files with 819 additions and 12 deletions

Binary file not shown.

View File

@@ -67,6 +67,8 @@ westdex:
key: "121a1e41fc1690dd6b90afbcacd80cf4"
secret_id: "449159"
secret_second_id: "296804"
yushan:
url: https://api2.yushanshuju.com/credit-gw/service
# ===========================================
# 💰 支付宝支付配置
# ===========================================

View File

@@ -965,7 +965,7 @@ func (s *ProductApplicationServiceImpl) getDTOMap() map[string]interface{} {
"JRZQ0A03": &dto.JRZQ0A03Req{},
"JRZQ4AA8": &dto.JRZQ4AA8Req{},
"JRZQ8203": &dto.JRZQ8203Req{},
"JRZQDBCE": &dto.JRZQDCBEReq{},
"JRZQDCBE": &dto.JRZQDCBEReq{},
"QYGL2ACD": &dto.QYGL2ACDReq{},
"QYGL6F2D": &dto.QYGL6F2DReq{},
"QYGL45BD": &dto.QYGL45BDReq{},

View File

@@ -373,11 +373,11 @@ type YYSY4F2EReq struct {
type YYSY9F1BReq struct {
Name string `json:"name" validate:"required,min=1,validName"`
Phone string `json:"phone" validate:"required,min=11,max=11,validMobileNo"`
MobileNo string `json:"mobile_no" validate:"required,min=11,max=11,validMobileNo"`
Authorized string `json:"authorized" validate:"required,oneof=0 1"`
}
type YYSY6F2BReq struct {
Phone string `json:"phone" validate:"required,min=11,max=11,validMobileNo"`
MobileNo string `json:"mobile_no" validate:"required,min=11,max=11,validMobileNo"`
}
type YYSY8B1CReq struct {

View File

@@ -20,12 +20,11 @@ func ProcessJRZQ0B6YRequest(ctx context.Context, params []byte, deps *processors
if err := deps.Validator.ValidateStruct(paramsDto); err != nil {
return nil, errors.Join(processors.ErrInvalidParam, err)
}
reqData := map[string]interface{}{
"name": paramsDto.Name,
"cardId": paramsDto.BankCard,
"cardld": paramsDto.BankCard,
"cardNo": paramsDto.IDCard,
"phone": paramsDto.MobileNo,
"mobile": paramsDto.MobileNo,
}
respBytes, err := deps.YushanService.CallAPI(ctx, "FIN019", reqData)

View File

@@ -21,13 +21,13 @@ func ProcessYYSY6F2BRequest(ctx context.Context, params []byte, deps *processors
return nil, errors.Join(processors.ErrInvalidParam, err)
}
encryptedPhone, err := deps.ZhichaService.Encrypt(paramsDto.Phone)
encryptedMobileNo, err := deps.ZhichaService.Encrypt(paramsDto.MobileNo)
if err != nil {
return nil, errors.Join(processors.ErrSystem, err)
}
reqData := map[string]interface{}{
"phone": encryptedPhone,
"phone": encryptedMobileNo,
}
respData, err := deps.ZhichaService.CallAPI(ctx, "ZCI041", reqData)

View File

@@ -27,14 +27,14 @@ func ProcessYYSY9F1BYequest(ctx context.Context, params []byte, deps *processors
return nil, errors.Join(processors.ErrSystem, err)
}
encryptedPhone, err := deps.ZhichaService.Encrypt(paramsDto.Phone)
encryptedMobileNo, err := deps.ZhichaService.Encrypt(paramsDto.MobileNo)
if err != nil {
return nil, errors.Join(processors.ErrSystem, err)
}
reqData := map[string]interface{}{
"name": encryptedName,
"phone": encryptedPhone,
"phone": encryptedMobileNo,
"authorized": paramsDto.Authorized,
}

View File

@@ -447,8 +447,8 @@ func (h *ProductHandler) ListMySubscriptions(c *gin.Context) {
if query.PageSize <= 0 {
query.PageSize = 10
}
if query.PageSize > 100 {
query.PageSize = 100
if query.PageSize > 1000 {
query.PageSize = 1000
}
// 设置默认排序

255
scripts/deploy.ps1 Normal file
View File

@@ -0,0 +1,255 @@
# TYAPI 生产环境部署脚本 (PowerShell版本)
# 使用方法: .\scripts\deploy.ps1 [版本号]
param(
[string]$Version = "latest"
)
# 配置
$REGISTRY_URL = "docker-registry.tianyuanapi.com"
$IMAGE_NAME = "tyapi-server"
$APP_VERSION = $Version
$BUILD_TIME = (Get-Date -Format "yyyy-MM-ddTHH:mm:ssZ")
try {
$GIT_COMMIT = git rev-parse --short HEAD 2>$null
if (-not $GIT_COMMIT) { $GIT_COMMIT = "dev" }
}
catch {
$GIT_COMMIT = "dev"
}
# 颜色输出函数
function Write-Info($message) {
Write-Host "[INFO] $message" -ForegroundColor Blue
}
function Write-Success($message) {
Write-Host "[SUCCESS] $message" -ForegroundColor Green
}
function Write-Warning($message) {
Write-Host "[WARNING] $message" -ForegroundColor Yellow
}
function Write-Error($message) {
Write-Host "[ERROR] $message" -ForegroundColor Red
}
# 检查必要工具
function Test-Requirements {
Write-Info "检查部署环境..."
if (-not (Get-Command docker -ErrorAction SilentlyContinue)) {
Write-Error "Docker 未安装或不在 PATH 中"
exit 1
}
if (-not (Get-Command docker-compose -ErrorAction SilentlyContinue)) {
Write-Error "docker-compose 未安装或不在 PATH 中"
exit 1
}
if (-not (Get-Command git -ErrorAction SilentlyContinue)) {
Write-Warning "Git 未安装,将使用默认提交哈希"
}
Write-Success "环境检查通过"
}
# 构建 Docker 镜像
function Build-Image {
Write-Info "开始构建 Docker 镜像..."
docker build `
--build-arg VERSION="$APP_VERSION" `
--build-arg COMMIT="$GIT_COMMIT" `
--build-arg BUILD_TIME="$BUILD_TIME" `
-t "$REGISTRY_URL/$IMAGE_NAME`:$APP_VERSION" `
-t "$REGISTRY_URL/$IMAGE_NAME`:latest" `
.
if ($LASTEXITCODE -ne 0) {
Write-Error "Docker 镜像构建失败"
exit 1
}
Write-Success "Docker 镜像构建完成"
}
# 推送镜像到私有仓库
function Push-Image {
Write-Info "推送镜像到私有仓库..."
# 推送版本标签
docker push "$REGISTRY_URL/$IMAGE_NAME`:$APP_VERSION"
if ($LASTEXITCODE -eq 0) {
Write-Success "已推送版本标签: $APP_VERSION"
}
else {
Write-Error "推送版本标签失败"
exit 1
}
# 推送latest标签
docker push "$REGISTRY_URL/$IMAGE_NAME`:latest"
if ($LASTEXITCODE -eq 0) {
Write-Success "已推送latest标签"
}
else {
Write-Error "推送latest标签失败"
exit 1
}
}
# 准备生产环境配置
function Test-Config {
Write-Info "准备生产环境配置..."
# 检查.env文件是否存在
if (-not (Test-Path ".env")) {
if (Test-Path ".env.production") {
Write-Warning ".env文件不存在正在复制模板..."
Copy-Item ".env.production" ".env"
Write-Warning "请编辑 .env 文件并设置正确的配置值"
exit 1
}
else {
Write-Error "配置文件 .env 和 .env.production 都不存在"
exit 1
}
}
# 验证关键配置
$envContent = Get-Content ".env" -Raw
if (-not ($envContent -match "^DB_PASSWORD=" -and -not ($envContent -match "your_secure_database_password_here"))) {
Write-Error "请在 .env 文件中设置安全的数据库密码"
exit 1
}
if (-not ($envContent -match "^JWT_SECRET=" -and -not ($envContent -match "your_super_secure_jwt_secret"))) {
Write-Error "请在 .env 文件中设置安全的JWT密钥"
exit 1
}
Write-Success "配置检查通过"
}
# 部署到生产环境
function Start-Deploy {
Write-Info "开始部署到生产环境..."
# 设置版本环境变量
$env:APP_VERSION = $APP_VERSION
# 停止现有服务
Write-Info "停止现有服务..."
docker-compose -f docker-compose.prod.yml down --remove-orphans
# 清理未使用的镜像
Write-Info "清理未使用的Docker资源..."
docker image prune -f
# 拉取最新镜像
Write-Info "拉取最新镜像..."
docker-compose -f docker-compose.prod.yml pull
# 启动服务
Write-Info "启动生产环境服务..."
docker-compose -f docker-compose.prod.yml up -d
if ($LASTEXITCODE -ne 0) {
Write-Error "服务启动失败"
exit 1
}
# 等待服务启动
Write-Info "等待服务启动..."
Start-Sleep -Seconds 30
# 检查服务状态
Write-Info "检查服务状态..."
docker-compose -f docker-compose.prod.yml ps
# 健康检查
Write-Info "执行健康检查..."
$maxAttempts = 10
$attempt = 0
while ($attempt -lt $maxAttempts) {
try {
$response = Invoke-WebRequest -Uri "http://localhost:8080/health" -TimeoutSec 5 -ErrorAction Stop
if ($response.StatusCode -eq 200) {
Write-Success "应用健康检查通过"
break
}
}
catch {
$attempt++
Write-Info "健康检查失败,重试 $attempt/$maxAttempts..."
Start-Sleep -Seconds 10
}
}
if ($attempt -eq $maxAttempts) {
Write-Error "应用健康检查失败,请检查日志"
docker-compose -f docker-compose.prod.yml logs tyapi-app
exit 1
}
Write-Success "部署完成!"
}
# 显示部署信息
function Show-Info {
Write-Info "部署信息:"
Write-Host " 版本: $APP_VERSION"
Write-Host " 提交: $GIT_COMMIT"
Write-Host " 构建时间: $BUILD_TIME"
Write-Host " 镜像: $REGISTRY_URL/$IMAGE_NAME`:$APP_VERSION"
Write-Host ""
Write-Host "🌐 服务访问地址:"
Write-Host " 📱 API服务: http://localhost:8080"
Write-Host " 📚 API文档: http://localhost:8080/swagger/index.html"
Write-Host " 💚 健康检查: http://localhost:8080/health"
Write-Host ""
Write-Host "📊 监控和追踪:"
Write-Host " 📈 Grafana仪表盘: http://localhost:3000"
Write-Host " 🔍 Prometheus监控: http://localhost:9090"
Write-Host " 🔗 Jaeger链路追踪: http://localhost:16686"
Write-Host ""
Write-Host "🛠 管理工具:"
Write-Host " 🗄️ pgAdmin数据库: http://localhost:5050"
Write-Host " 📦 MinIO对象存储: http://localhost:9000"
Write-Host " 🎛️ MinIO控制台: http://localhost:9001"
Write-Host ""
Write-Host "🔧 管理命令:"
Write-Host " 查看日志: docker-compose -f docker-compose.prod.yml logs -f"
Write-Host " 停止服务: docker-compose -f docker-compose.prod.yml down"
Write-Host " 查看状态: docker-compose -f docker-compose.prod.yml ps"
Write-Host " 重启应用: docker-compose -f docker-compose.prod.yml restart tyapi-app"
}
# 主函数
function Main {
Write-Info "开始 TYAPI 生产环境部署..."
Write-Info "版本: $APP_VERSION"
Test-Requirements
Test-Config
Build-Image
Push-Image
Start-Deploy
Show-Info
Write-Success "🎉 部署成功!"
}
# 运行主函数
try {
Main
}
catch {
Write-Error "部署过程中发生错误: $($_.Exception.Message)"
exit 1
}

221
scripts/deploy.sh Normal file
View File

@@ -0,0 +1,221 @@
#!/bin/bash
# TYAPI 生产环境部署脚本
# 使用方法: ./scripts/deploy.sh [version]
set -e
# 配置
REGISTRY_URL="docker-registry.tianyuanapi.com"
IMAGE_NAME="tyapi-server"
APP_VERSION=${1:-latest}
BUILD_TIME=$(date -u +"%Y-%m-%dT%H:%M:%SZ")
GIT_COMMIT=$(git rev-parse --short HEAD 2>/dev/null || echo 'dev')
# 颜色输出
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
BLUE='\033[0;34m'
NC='\033[0m' # No Color
# 日志函数
log_info() {
echo -e "${BLUE}[INFO]${NC} $1"
}
log_success() {
echo -e "${GREEN}[SUCCESS]${NC} $1"
}
log_warning() {
echo -e "${YELLOW}[WARNING]${NC} $1"
}
log_error() {
echo -e "${RED}[ERROR]${NC} $1"
}
# 检查必要工具
check_requirements() {
log_info "检查部署环境..."
if ! command -v docker &> /dev/null; then
log_error "Docker 未安装或不在 PATH 中"
exit 1
fi
if ! command -v docker-compose &> /dev/null; then
log_error "docker-compose 未安装或不在 PATH 中"
exit 1
fi
if ! command -v git &> /dev/null; then
log_warning "Git 未安装,将使用默认提交哈希"
fi
log_success "环境检查通过"
}
# 构建 Docker 镜像
build_image() {
log_info "开始构建 Docker 镜像..."
docker build \
--build-arg VERSION="$APP_VERSION" \
--build-arg COMMIT="$GIT_COMMIT" \
--build-arg BUILD_TIME="$BUILD_TIME" \
-t "$REGISTRY_URL/$IMAGE_NAME:$APP_VERSION" \
-t "$REGISTRY_URL/$IMAGE_NAME:latest" \
.
log_success "Docker 镜像构建完成"
}
# 推送镜像到私有仓库
push_image() {
log_info "推送镜像到私有仓库..."
# 推送版本标签
docker push "$REGISTRY_URL/$IMAGE_NAME:$APP_VERSION"
log_success "已推送版本标签: $APP_VERSION"
# 推送latest标签
docker push "$REGISTRY_URL/$IMAGE_NAME:latest"
log_success "已推送latest标签"
}
# 准备生产环境配置
prepare_config() {
log_info "准备生产环境配置..."
# 检查.env文件是否存在
if [ ! -f ".env" ]; then
if [ -f ".env.production" ]; then
log_warning ".env文件不存在正在复制模板..."
cp .env.production .env
log_warning "请编辑 .env 文件并设置正确的配置值"
exit 1
else
log_error "配置文件 .env 和 .env.production 都不存在"
exit 1
fi
fi
# 验证关键配置
if ! grep -q "^DB_PASSWORD=" .env || grep -q "your_secure_database_password_here" .env; then
log_error "请在 .env 文件中设置安全的数据库密码"
exit 1
fi
if ! grep -q "^JWT_SECRET=" .env || grep -q "your_super_secure_jwt_secret" .env; then
log_error "请在 .env 文件中设置安全的JWT密钥"
exit 1
fi
log_success "配置检查通过"
}
# 部署到生产环境
deploy() {
log_info "开始部署到生产环境..."
# 设置版本环境变量
export APP_VERSION="$APP_VERSION"
# 停止现有服务
log_info "停止现有服务..."
docker-compose -f docker-compose.prod.yml down --remove-orphans
# 清理未使用的镜像
log_info "清理未使用的Docker资源..."
docker image prune -f
# 拉取最新镜像
log_info "拉取最新镜像..."
docker-compose -f docker-compose.prod.yml pull
# 启动服务
log_info "启动生产环境服务..."
docker-compose -f docker-compose.prod.yml up -d
# 等待服务启动
log_info "等待服务启动..."
sleep 30
# 检查服务状态
log_info "检查服务状态..."
docker-compose -f docker-compose.prod.yml ps
# 健康检查
log_info "执行健康检查..."
max_attempts=10
attempt=0
while [ $attempt -lt $max_attempts ]; do
if curl -f http://localhost:8080/health > /dev/null 2>&1; then
log_success "应用健康检查通过"
break
else
attempt=$((attempt + 1))
log_info "健康检查失败,重试 $attempt/$max_attempts..."
sleep 10
fi
done
if [ $attempt -eq $max_attempts ]; then
log_error "应用健康检查失败,请检查日志"
docker-compose -f docker-compose.prod.yml logs tyapi-app
exit 1
fi
log_success "部署完成!"
}
# 显示部署信息
show_info() {
log_info "部署信息:"
echo " 版本: $APP_VERSION"
echo " 提交: $GIT_COMMIT"
echo " 构建时间: $BUILD_TIME"
echo " 镜像: $REGISTRY_URL/$IMAGE_NAME:$APP_VERSION"
echo ""
echo "🌐 服务访问地址:"
echo " 📱 API服务: http://localhost:8080"
echo " 📚 API文档: http://localhost:8080/swagger/index.html"
echo " 💚 健康检查: http://localhost:8080/health"
echo ""
echo "📊 监控和追踪:"
echo " 📈 Grafana仪表盘: http://localhost:3000"
echo " 🔍 Prometheus监控: http://localhost:9090"
echo " 🔗 Jaeger链路追踪: http://localhost:16686"
echo ""
echo "🛠 管理工具:"
echo " 🗄️ pgAdmin数据库: http://localhost:5050"
echo " 📦 MinIO对象存储: http://localhost:9000"
echo " 🎛️ MinIO控制台: http://localhost:9001"
echo ""
echo "🔧 管理命令:"
echo " 查看日志: docker-compose -f docker-compose.prod.yml logs -f"
echo " 停止服务: docker-compose -f docker-compose.prod.yml down"
echo " 查看状态: docker-compose -f docker-compose.prod.yml ps"
echo " 重启应用: docker-compose -f docker-compose.prod.yml restart tyapi-app"
}
# 主函数
main() {
log_info "开始 TYAPI 生产环境部署..."
log_info "版本: $APP_VERSION"
check_requirements
prepare_config
build_image
push_image
deploy
show_info
log_success "🎉 部署成功!"
}
# 运行主函数
main "$@"

65
scripts/init.sql Normal file
View File

@@ -0,0 +1,65 @@
-- TYAPI Server Database Initialization Script
-- This script runs when PostgreSQL container starts for the first time
-- Create development database if it doesn't exist
-- Note: tyapi_dev is already created by POSTGRES_DB environment variable
-- Create test database for running tests
-- Note: Skip database creation in init script, handle in application if needed
-- Create production database (for reference)
-- CREATE DATABASE tyapi_prod;
-- Connect to development database
\c tyapi_dev;
-- Enable necessary extensions
CREATE EXTENSION IF NOT EXISTS "uuid-ossp";
CREATE EXTENSION IF NOT EXISTS "pg_trgm";
CREATE EXTENSION IF NOT EXISTS "btree_gin";
-- Create schemas for better organization
CREATE SCHEMA IF NOT EXISTS public;
CREATE SCHEMA IF NOT EXISTS logs;
CREATE SCHEMA IF NOT EXISTS metrics;
-- Set search path
SET search_path TO public, logs, metrics;
-- Test database setup will be handled by application migrations
-- when needed, since we don't create it in this init script
-- Continue with development database setup
-- (already connected to tyapi_dev)
-- Create application-specific roles (optional)
-- CREATE ROLE tyapi_app WITH LOGIN PASSWORD 'app_password';
-- CREATE ROLE tyapi_readonly WITH LOGIN PASSWORD 'readonly_password';
-- Grant permissions
-- GRANT CONNECT ON DATABASE tyapi_dev TO tyapi_app;
-- GRANT USAGE ON SCHEMA public TO tyapi_app;
-- GRANT CREATE ON SCHEMA public TO tyapi_app;
-- Initial seed data can be added here
-- This will be replaced by proper migrations in the application
-- Log the initialization
-- Note: pg_stat_statements extension may not be available, skip this insert
-- Create a simple health check function
CREATE OR REPLACE FUNCTION health_check()
RETURNS json AS $$
BEGIN
RETURN json_build_object(
'status', 'healthy',
'database', current_database(),
'timestamp', now(),
'version', version()
);
END;
$$ LANGUAGE plpgsql;

154
scripts/log-manager.sh Normal file
View File

@@ -0,0 +1,154 @@
#!/bin/bash
# 日志管理脚本
# 用于清理旧日志文件和查看日志统计信息
LOG_DIR="./logs"
RETENTION_DAYS=30
# 颜色定义
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
BLUE='\033[0;34m'
NC='\033[0m' # No Color
# 打印带颜色的消息
print_info() {
echo -e "${BLUE}[INFO]${NC} $1"
}
print_success() {
echo -e "${GREEN}[SUCCESS]${NC} $1"
}
print_warning() {
echo -e "${YELLOW}[WARNING]${NC} $1"
}
print_error() {
echo -e "${RED}[ERROR]${NC} $1"
}
# 显示帮助信息
show_help() {
echo "日志管理脚本"
echo ""
echo "用法: $0 [命令]"
echo ""
echo "命令:"
echo " clean - 清理超过 $RETENTION_DAYS 天的旧日志文件"
echo " stats - 显示日志统计信息"
echo " size - 显示日志目录大小"
echo " list - 列出所有日志文件"
echo " help - 显示此帮助信息"
echo ""
echo "示例:"
echo " $0 clean # 清理旧日志"
echo " $0 stats # 查看统计信息"
}
# 清理旧日志文件
clean_old_logs() {
print_info "开始清理超过 $RETENTION_DAYS 天的旧日志文件..."
if [ ! -d "$LOG_DIR" ]; then
print_error "日志目录 $LOG_DIR 不存在"
return 1
fi
# 查找并删除超过指定天数的日志文件
find "$LOG_DIR" -name "*.log*" -type f -mtime +$RETENTION_DAYS -exec rm -f {} \;
# 删除空的日期目录
find "$LOG_DIR" -type d -empty -delete
print_success "旧日志文件清理完成"
}
# 显示日志统计信息
show_stats() {
print_info "日志统计信息:"
echo ""
if [ ! -d "$LOG_DIR" ]; then
print_error "日志目录 $LOG_DIR 不存在"
return 1
fi
# 总文件数
total_files=$(find "$LOG_DIR" -name "*.log*" -type f | wc -l)
echo "总日志文件数: $total_files"
# 总大小
total_size=$(du -sh "$LOG_DIR" 2>/dev/null | cut -f1)
echo "日志目录总大小: $total_size"
# 按日期统计
echo ""
echo "按日期统计:"
for date_dir in "$LOG_DIR"/*/; do
if [ -d "$date_dir" ]; then
date_name=$(basename "$date_dir")
file_count=$(find "$date_dir" -name "*.log*" -type f | wc -l)
dir_size=$(du -sh "$date_dir" 2>/dev/null | cut -f1)
echo " $date_name: $file_count 个文件, $dir_size"
fi
done
# 最近修改的文件
echo ""
echo "最近修改的日志文件:"
find "$LOG_DIR" -name "*.log*" -type f -exec ls -lh {} \; | head -5
}
# 显示日志目录大小
show_size() {
if [ ! -d "$LOG_DIR" ]; then
print_error "日志目录 $LOG_DIR 不存在"
return 1
fi
total_size=$(du -sh "$LOG_DIR" 2>/dev/null | cut -f1)
print_info "日志目录大小: $total_size"
}
# 列出所有日志文件
list_logs() {
if [ ! -d "$LOG_DIR" ]; then
print_error "日志目录 $LOG_DIR 不存在"
return 1
fi
print_info "所有日志文件:"
find "$LOG_DIR" -name "*.log*" -type f -exec ls -lh {} \;
}
# 主函数
main() {
case "$1" in
"clean")
clean_old_logs
;;
"stats")
show_stats
;;
"size")
show_size
;;
"list")
list_logs
;;
"help"|"-h"|"--help"|"")
show_help
;;
*)
print_error "未知命令: $1"
show_help
exit 1
;;
esac
}
# 执行主函数
main "$@"

13
scripts/set_timezone.sql Normal file
View File

@@ -0,0 +1,13 @@
-- 设置时区为北京时间
ALTER SYSTEM SET timezone = 'Asia/Shanghai';
ALTER SYSTEM SET log_timezone = 'Asia/Shanghai';
-- 重新加载配置
SELECT pg_reload_conf ();
-- 验证时区设置
SELECT name, setting
FROM pg_settings
WHERE
name IN ('timezone', 'log_timezone');

98
scripts/成本价.csv Normal file
View File

@@ -0,0 +1,98 @@
产品编号,产品名称,分类,价格,数据源,数据源编号,成本价
DWBG6A2C,司南报告服务,多维报告,10.8,安徽智查,ZCI102,2.4
DWBG8B4D,谛听多维报告,多维报告,10.8,安徽智查,ZCI103,2.1
FLXG2E8F,司法核验报告,风险管控,5,安徽智查,ZCI101,1.2
FLXG5A3B,个人司法涉诉B,风险管控,2.2,安徽智查,ZCI006,0.42
FLXG8B4D,涉赌涉诈风险评估,风险管控,1.8,安徽智查,ZCI027,0.3
FLXG9C1D,法院信息详情高级版,风险管控,1.5,安徽智查,ZCI007,0.23
FLXGDEA8,公安不良人员名单,风险管控,2,安徽智查,ZCI028,0.45
FLXGDEA9,公安不良人员名单(加强版),风险管控,2.5,安徽智查,ZCI005,0.45
IVYZ2A8B,身份二要素认证,身份验证,0.25,安徽智查,ZCI001,0.05
IVYZ5E3F,单人婚姻状态B,身份验证,2.5,安徽智查,ZCI029,0.55
IVYZ7C9D,人脸识别验证,身份验证,0.3,安徽智查,ZCI013,0.3
IVYZ7F3A,学历信息查询B,身份验证,4.5,安徽智查,ZCI035,2.3
JRZQ09J8,收入评估(社保评级),金融验证,3.5,安徽智查,ZCI031,0.83
JRZQ1D09,3C租赁申请意向,金融验证,3,安徽智查,ZCI020,0.23
JRZQ3C7B,借贷意向验证B,金融验证,2.5,安徽智查,ZCI017,0.33
JRZQ4B6C,探针C风险评估,金融验证,2,安徽智查,ZCI023,0.5
JRZQ5E9F,借选指数评估,金融验证,3,安徽智查,ZCI021,0.38
JRZQ7F1A,全景雷达,金融验证,3.5,安徽智查,ZCI008,0.6
JRZQ8A2D,特殊名单验证B,金融验证,2,安徽智查,ZCI018,0
QCXG9P1C,名下车辆详版,汽车相关,3.8,安徽智查,ZCI051,1.6
YYSY3E7F,空号检测服务,运营商验证,0.2,安徽智查,ZCI010,0.055
YYSY4F2E,运营商三要素验证(详版),运营商验证,0.35,安徽智查,ZCI002,0.16
YYSY6D9A,全网手机号状态验证,运营商验证,0.6,安徽智查,ZCI030,0.035
YYSY8B1C,手机在网时长B,运营商验证,0.3,安徽智查,ZCI003,0.1
YYSY9E4A,手机号码归属地,运营商验证,0.3,安徽智查,ZCI026,0
FLXG0687,反赌反诈,风险管控,1.8,羽山数据,RIS031,0.3
FLXGBC21,手机号码特别风险,风险管控,2,羽山数据,MOB032,0.1
QCXG7A2B,名下车辆,汽车相关,2,羽山数据,CAR061,1.6
FLXG0V3B,个人不良核验(标准版),风险管控,3,西部数据,G34BJ03,0.8
FLXG0V4B,个人司法涉诉,风险管控,2.5,西部数据,G22SC01,0.5
FLXG162A,团伙欺诈评估,风险管控,2.5,西部数据,G32BJ05,0.7
FLXG3D56,特殊名单验证,金融验证,2.5,西部数据,G26BJ05,0.2
FLXG54F5,手机号码风险,风险管控,3,西部数据,G03HZ01,0.55
FLXG5876,易诉人识别,风险管控,2,西部数据,G03XM02,0.6
FLXG5B2E,自然人限高信息,风险管控,2,西部数据,G36SC01,0.5
FLXG75FE,涉网风险,风险管控,2,西部数据,FLXG75FE,0.4
FLXG8A3F,自然人失信信息,风险管控,2,西部数据,G37SC01,0.5
FLXG9687,电诈风险预警,风险管控,1,西部数据,G31BJ05,0.4
FLXG970F,风险人员核验,风险管控,2,西部数据,WEST00028,0.35
FLXGC9D1,黑灰产等级,风险管控,3,西部数据,G30BJ05,0.2
FLXGCA3D,个人综合涉诉,风险管控,2.5,西部数据,G22BJ03,0.5
FLXGDEC7,个人不良核验,风险管控,3,西部数据,G23BJ03,0.8
IVYZ0B03,二要素验证(姓名、手机号),身份验证,0.3,西部数据,G17BJ02,0.29
IVYZ1C9D,,身份验证,,西部数据,G38SC02,
IVYZ2125,活体+人像核验组件,身份验证,0.3,西部数据,IVYZ2125,0.3
IVYZ385E,自然人生存状态标识,身份验证,1.5,西部数据,WEST00020,0.3
IVYZ4E8B,单人婚姻状态C,身份验证,2.5,西部数据,G09GZ02,
IVYZ5733,单人婚姻状态A,身份验证,2.5,西部数据,G09GZ02,1
IVYZ7F2A,双人婚姻状态B,身份验证,2.5,西部数据,G10GZ02,0.6
IVYZ81NC,单人婚姻查询(登记时间版),身份验证,4.5,西部数据,G09XM02,1
IVYZ9363,双人婚姻状态A,身份验证,2.5,西部数据,G10XM02,1
IVYZ9A2B,学历信息查询A,身份验证,5,西部数据,G11BJ06,3
IVYZADEE,身份证三要素比对,身份验证,0.3,西部数据,IVYZADEE,0.2
IVYZGZ08,,身份验证,,西部数据,G08SC02,
JRZQ0A03,借贷意向验证,金融验证,2.5,西部数据,G27BJ05,0.6
JRZQ4AA8,偿债压力指数,金融验证,3,西部数据,G29BJ05,0.6
JRZQ8203,借贷行为验证,金融验证,3,西部数据,G28BJ05,1
JRZQDCBE,银行卡四要素验证,金融验证,0.4,西部数据,G20GZ01,0.3
QYGL2ACD,企业三要素核验,企业相关,0.2,西部数据,WEST00022,0.1
QYGL45BD,企业法人四要素核验,企业相关,0.3,西部数据,WEST00021,0.25
QYGL6F2D,人企关联,企业相关,3,西部数据,G05XM02,0.9
QYGL8261,企业综合涉诉,企业相关,2.5,西部数据,Q03BJ03,0.5
QYGL8271,企业司法涉诉(详版),企业相关,2.5,西部数据,Q03SC01,0.5
QYGLB4C0,股东人企关系精准版,企业相关,3,西部数据,G05HZ01,0.6
YYSY09CD,运营商三要素验证(简版),运营商验证,0.3,西部数据,G16BJ02,0.3
YYSY4B21,手机在网状态,运营商验证,0.5,西部数据,G25BJ02,0.055
YYSY4B37,手机在网时长A,运营商验证,0.3,西部数据,G02BJ02,0.2
YYSY6F2E,运营商三要素核验(高级版),运营商验证,0.4,西部数据,G15BJ02,0.35
YYSYD50F,二要素核验(手机号、身份证号),运营商验证,0.35,西部数据,G18BJ02,0.29
YYSYF7DB,手机二次卡,运营商验证,0.3,西部数据,G19BJ02,0.2
DWBG7F3A,多头借贷行业风险版,金融验证,2.5,四川星维,CDJ-1101695406546284544,0.45
FLXG7E8F,个人司法涉诉查询,风险管控,2,四川星维,CDJ-1101695378264092672,0.36
IVYZ3A7F,学历信息查询(学校名称版),身份验证,5,四川星维,CDJ-1104648854749245440,3
IVYZ6G7H,单人婚姻状态(补证版),身份验证,3.5,四川星维,CDJ-1104646268587536384,0.7
IVYZ8I9J,互联网行为推测,身份验证,1.8,四川星维,CDJ-1074522823015198720,0.6
IVYZ9D2E,,身份验证,,四川星维,CDJ-1104648845446279168,2.2
JRZQ0L85,个人信用分,金融验证,1.5,四川星维,CDJ-1101695364016041984,0.38
JRZQ6F2A,借贷意向验证A,金融验证,2,四川星维,CDJ-1101695369065984000,0.25
JRZQ8B3C,个人消费能力等级,金融验证,3,四川星维,CDJ-1101695392528920576,0.34
JRZQ9D4E,多头借贷小时级,金融验证,2.5,四川星维,CDJ-1118085532960616448,0.4
JRZQ9E2A,多头借贷风险信息查询,金融验证,3,四川星维,CDJ-1068350101688086528,0.6
QYGL5F6A,名下企业关联,企业相关,2.8,四川星维,CDJ-1101695397213958144,0.44
YYSY7D3E,携号转网查询,运营商验证,0.3,四川星维,CDJ-1100244706893164544,0.02
YYSY8C2D,运营商三要素(新详版),运营商验证,0.35,四川星维,CDJ-1100244702166183936,0.19
YYSY8F3A,,运营商验证,,四川星维,CDJ-1100244697766359040,0.14
YYSY9A1B,运营商三要素验证(简版),运营商验证,0.3,四川星维,CDJ-1100244697766359040,0.14
QYGL4B2E,,企业相关,,天眼查,TaxContravention,
QYGL5A3C,对外投资历史,企业相关,0.5,天眼查,InvestHistory,0.1
QYGL7C1A,经营异常,企业相关,0.5,天眼查,AbnormalInfo,0.15
QYGL7D9A,,企业相关,,天眼查,OwnTax,
QYGL8B4D,融资历史,企业相关,0.5,天眼查,FinancingHistory,0.1
QYGL9E2F,行政处罚,企业相关,0.5,天眼查,PunishmentInfo,0.15
QYGL23T7,企业法人四要素高级版,企业相关,0.3,阿里云,check,
YYSYBE08,二要素核验(姓名、身份证号),运营商验证,0.25,阿里云,check,0.03
IVYZ3P9M,学历信息查询(实时版),身份验证,5,木子数据,PC0041,1.72
COMENT01,企业风险报告(专业版),组合包,30,内部处理,,
QYGL3F8E,人企关系加强版,企业相关,10.8,内部处理,,
1 产品编号 产品名称 分类 价格 数据源 数据源编号 成本价
2 DWBG6A2C 司南报告服务 多维报告 10.8 安徽智查 ZCI102 2.4
3 DWBG8B4D 谛听多维报告 多维报告 10.8 安徽智查 ZCI103 2.1
4 FLXG2E8F 司法核验报告 风险管控 5 安徽智查 ZCI101 1.2
5 FLXG5A3B 个人司法涉诉B 风险管控 2.2 安徽智查 ZCI006 0.42
6 FLXG8B4D 涉赌涉诈风险评估 风险管控 1.8 安徽智查 ZCI027 0.3
7 FLXG9C1D 法院信息详情高级版 风险管控 1.5 安徽智查 ZCI007 0.23
8 FLXGDEA8 公安不良人员名单 风险管控 2 安徽智查 ZCI028 0.45
9 FLXGDEA9 公安不良人员名单(加强版) 风险管控 2.5 安徽智查 ZCI005 0.45
10 IVYZ2A8B 身份二要素认证 身份验证 0.25 安徽智查 ZCI001 0.05
11 IVYZ5E3F 单人婚姻状态B 身份验证 2.5 安徽智查 ZCI029 0.55
12 IVYZ7C9D 人脸识别验证 身份验证 0.3 安徽智查 ZCI013 0.3
13 IVYZ7F3A 学历信息查询B 身份验证 4.5 安徽智查 ZCI035 2.3
14 JRZQ09J8 收入评估(社保评级) 金融验证 3.5 安徽智查 ZCI031 0.83
15 JRZQ1D09 3C租赁申请意向 金融验证 3 安徽智查 ZCI020 0.23
16 JRZQ3C7B 借贷意向验证B 金融验证 2.5 安徽智查 ZCI017 0.33
17 JRZQ4B6C 探针C风险评估 金融验证 2 安徽智查 ZCI023 0.5
18 JRZQ5E9F 借选指数评估 金融验证 3 安徽智查 ZCI021 0.38
19 JRZQ7F1A 全景雷达 金融验证 3.5 安徽智查 ZCI008 0.6
20 JRZQ8A2D 特殊名单验证B 金融验证 2 安徽智查 ZCI018 0
21 QCXG9P1C 名下车辆详版 汽车相关 3.8 安徽智查 ZCI051 1.6
22 YYSY3E7F 空号检测服务 运营商验证 0.2 安徽智查 ZCI010 0.055
23 YYSY4F2E 运营商三要素验证(详版) 运营商验证 0.35 安徽智查 ZCI002 0.16
24 YYSY6D9A 全网手机号状态验证 运营商验证 0.6 安徽智查 ZCI030 0.035
25 YYSY8B1C 手机在网时长B 运营商验证 0.3 安徽智查 ZCI003 0.1
26 YYSY9E4A 手机号码归属地 运营商验证 0.3 安徽智查 ZCI026 0
27 FLXG0687 反赌反诈 风险管控 1.8 羽山数据 RIS031 0.3
28 FLXGBC21 手机号码特别风险 风险管控 2 羽山数据 MOB032 0.1
29 QCXG7A2B 名下车辆 汽车相关 2 羽山数据 CAR061 1.6
30 FLXG0V3B 个人不良核验(标准版) 风险管控 3 西部数据 G34BJ03 0.8
31 FLXG0V4B 个人司法涉诉 风险管控 2.5 西部数据 G22SC01 0.5
32 FLXG162A 团伙欺诈评估 风险管控 2.5 西部数据 G32BJ05 0.7
33 FLXG3D56 特殊名单验证 金融验证 2.5 西部数据 G26BJ05 0.2
34 FLXG54F5 手机号码风险 风险管控 3 西部数据 G03HZ01 0.55
35 FLXG5876 易诉人识别 风险管控 2 西部数据 G03XM02 0.6
36 FLXG5B2E 自然人限高信息 风险管控 2 西部数据 G36SC01 0.5
37 FLXG75FE 涉网风险 风险管控 2 西部数据 FLXG75FE 0.4
38 FLXG8A3F 自然人失信信息 风险管控 2 西部数据 G37SC01 0.5
39 FLXG9687 电诈风险预警 风险管控 1 西部数据 G31BJ05 0.4
40 FLXG970F 风险人员核验 风险管控 2 西部数据 WEST00028 0.35
41 FLXGC9D1 黑灰产等级 风险管控 3 西部数据 G30BJ05 0.2
42 FLXGCA3D 个人综合涉诉 风险管控 2.5 西部数据 G22BJ03 0.5
43 FLXGDEC7 个人不良核验 风险管控 3 西部数据 G23BJ03 0.8
44 IVYZ0B03 二要素验证(姓名、手机号) 身份验证 0.3 西部数据 G17BJ02 0.29
45 IVYZ1C9D 身份验证 西部数据 G38SC02
46 IVYZ2125 活体+人像核验组件 身份验证 0.3 西部数据 IVYZ2125 0.3
47 IVYZ385E 自然人生存状态标识 身份验证 1.5 西部数据 WEST00020 0.3
48 IVYZ4E8B 单人婚姻状态C 身份验证 2.5 西部数据 G09GZ02
49 IVYZ5733 单人婚姻状态A 身份验证 2.5 西部数据 G09GZ02 1
50 IVYZ7F2A 双人婚姻状态B 身份验证 2.5 西部数据 G10GZ02 0.6
51 IVYZ81NC 单人婚姻查询(登记时间版) 身份验证 4.5 西部数据 G09XM02 1
52 IVYZ9363 双人婚姻状态A 身份验证 2.5 西部数据 G10XM02 1
53 IVYZ9A2B 学历信息查询A 身份验证 5 西部数据 G11BJ06 3
54 IVYZADEE 身份证三要素比对 身份验证 0.3 西部数据 IVYZADEE 0.2
55 IVYZGZ08 身份验证 西部数据 G08SC02
56 JRZQ0A03 借贷意向验证 金融验证 2.5 西部数据 G27BJ05 0.6
57 JRZQ4AA8 偿债压力指数 金融验证 3 西部数据 G29BJ05 0.6
58 JRZQ8203 借贷行为验证 金融验证 3 西部数据 G28BJ05 1
59 JRZQDCBE 银行卡四要素验证 金融验证 0.4 西部数据 G20GZ01 0.3
60 QYGL2ACD 企业三要素核验 企业相关 0.2 西部数据 WEST00022 0.1
61 QYGL45BD 企业法人四要素核验 企业相关 0.3 西部数据 WEST00021 0.25
62 QYGL6F2D 人企关联 企业相关 3 西部数据 G05XM02 0.9
63 QYGL8261 企业综合涉诉 企业相关 2.5 西部数据 Q03BJ03 0.5
64 QYGL8271 企业司法涉诉(详版) 企业相关 2.5 西部数据 Q03SC01 0.5
65 QYGLB4C0 股东人企关系精准版 企业相关 3 西部数据 G05HZ01 0.6
66 YYSY09CD 运营商三要素验证(简版) 运营商验证 0.3 西部数据 G16BJ02 0.3
67 YYSY4B21 手机在网状态 运营商验证 0.5 西部数据 G25BJ02 0.055
68 YYSY4B37 手机在网时长A 运营商验证 0.3 西部数据 G02BJ02 0.2
69 YYSY6F2E 运营商三要素核验(高级版) 运营商验证 0.4 西部数据 G15BJ02 0.35
70 YYSYD50F 二要素核验(手机号、身份证号) 运营商验证 0.35 西部数据 G18BJ02 0.29
71 YYSYF7DB 手机二次卡 运营商验证 0.3 西部数据 G19BJ02 0.2
72 DWBG7F3A 多头借贷行业风险版 金融验证 2.5 四川星维 CDJ-1101695406546284544 0.45
73 FLXG7E8F 个人司法涉诉查询 风险管控 2 四川星维 CDJ-1101695378264092672 0.36
74 IVYZ3A7F 学历信息查询(学校名称版) 身份验证 5 四川星维 CDJ-1104648854749245440 3
75 IVYZ6G7H 单人婚姻状态(补证版) 身份验证 3.5 四川星维 CDJ-1104646268587536384 0.7
76 IVYZ8I9J 互联网行为推测 身份验证 1.8 四川星维 CDJ-1074522823015198720 0.6
77 IVYZ9D2E 身份验证 四川星维 CDJ-1104648845446279168 2.2
78 JRZQ0L85 个人信用分 金融验证 1.5 四川星维 CDJ-1101695364016041984 0.38
79 JRZQ6F2A 借贷意向验证A 金融验证 2 四川星维 CDJ-1101695369065984000 0.25
80 JRZQ8B3C 个人消费能力等级 金融验证 3 四川星维 CDJ-1101695392528920576 0.34
81 JRZQ9D4E 多头借贷小时级 金融验证 2.5 四川星维 CDJ-1118085532960616448 0.4
82 JRZQ9E2A 多头借贷风险信息查询 金融验证 3 四川星维 CDJ-1068350101688086528 0.6
83 QYGL5F6A 名下企业关联 企业相关 2.8 四川星维 CDJ-1101695397213958144 0.44
84 YYSY7D3E 携号转网查询 运营商验证 0.3 四川星维 CDJ-1100244706893164544 0.02
85 YYSY8C2D 运营商三要素(新详版) 运营商验证 0.35 四川星维 CDJ-1100244702166183936 0.19
86 YYSY8F3A 运营商验证 四川星维 CDJ-1100244697766359040 0.14
87 YYSY9A1B 运营商三要素验证(简版) 运营商验证 0.3 四川星维 CDJ-1100244697766359040 0.14
88 QYGL4B2E 企业相关 天眼查 TaxContravention
89 QYGL5A3C 对外投资历史 企业相关 0.5 天眼查 InvestHistory 0.1
90 QYGL7C1A 经营异常 企业相关 0.5 天眼查 AbnormalInfo 0.15
91 QYGL7D9A 企业相关 天眼查 OwnTax
92 QYGL8B4D 融资历史 企业相关 0.5 天眼查 FinancingHistory 0.1
93 QYGL9E2F 行政处罚 企业相关 0.5 天眼查 PunishmentInfo 0.15
94 QYGL23T7 企业法人四要素高级版 企业相关 0.3 阿里云 check
95 YYSYBE08 二要素核验(姓名、身份证号) 运营商验证 0.25 阿里云 check 0.03
96 IVYZ3P9M 学历信息查询(实时版) 身份验证 5 木子数据 PC0041 1.72
97 COMENT01 企业风险报告(专业版) 组合包 30 内部处理
98 QYGL3F8E 人企关系加强版 企业相关 10.8 内部处理