Files
ccdi/doc/implementation/scripts/test-intermediary-api.sh
2026-02-09 14:28:25 +08:00

364 lines
11 KiB
Bash

#!/bin/bash
################################################################################
# 中介黑名单管理 API 测试脚本
# 功能: 测试中介黑名单管理模块的所有接口
# 作者: Claude Code
# 日期: 2026-02-04
################################################################################
# 颜色定义
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
NC='\033[0m' # No Color
# 配置
BASE_URL="http://localhost:8080"
TEST_USERNAME="admin"
TEST_PASSWORD="admin123"
# 输出函数
print_header() {
echo ""
echo "========================================"
echo "$1"
echo "========================================"
}
print_section() {
echo ""
echo -e "${YELLOW}=== $1 ===${NC}"
}
print_success() {
echo -e "${GREEN}$1${NC}"
}
print_error() {
echo -e "${RED}$1${NC}"
}
# 获取Token
get_token() {
print_section "获取Token"
TOKEN=$(curl -s -X POST "${BASE_URL}/login/test" \
-H "Content-Type: application/json" \
-d "{\"username\":\"${TEST_USERNAME}\",\"password\":\"${TEST_PASSWORD}\"}" | jq -r '.data.token')
if [ "$TOKEN" != "null" ] && [ -n "$TOKEN" ]; then
print_success "Token获取成功: ${TOKEN:0:20}..."
echo "$TOKEN"
else
print_error "Token获取失败"
exit 1
fi
}
# 测试查询列表
test_list() {
print_section "测试查询列表"
response=$(curl -s -X GET "${BASE_URL}/ccdi/intermediary/list?pageNum=1&pageSize=10" \
-H "Authorization: Bearer $TOKEN")
echo "$response" | jq '.'
code=$(echo "$response" | jq -r '.code')
if [ "$code" == "200" ]; then
print_success "查询列表成功"
total=$(echo "$response" | jq -r '.total')
echo "总记录数: $total"
else
print_error "查询列表失败"
fi
}
# 测试新增个人中介
test_add_person() {
print_section "测试新增个人中介"
response=$(curl -s -X POST "${BASE_URL}/ccdi/intermediary/person" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{
"name": "测试中介个人",
"personType": "中介",
"personSubType": "本人",
"relationType": "正常",
"gender": "M",
"idType": "身份证",
"personId": "110101199001019999",
"mobile": "13800138000",
"wechatNo": "test_wx",
"contactAddress": "北京市朝阳区测试地址",
"company": "测试公司",
"position": "经纪人",
"remark": "自动化测试数据"
}')
echo "$response" | jq '.'
code=$(echo "$response" | jq -r '.code')
if [ "$code" == "200" ]; then
print_success "新增个人中介成功"
# 保存bizId用于后续测试
PERSON_BIZ_ID=$(curl -s -X GET "${BASE_URL}/ccdi/intermediary/list?name=测试中介个人" \
-H "Authorization: Bearer $TOKEN" | jq -r '.rows[0].bizId // empty')
if [ -n "$PERSON_BIZ_ID" ]; then
echo "获取到个人中介bizId: $PERSON_BIZ_ID"
fi
else
print_error "新增个人中介失败: $(echo "$response" | jq -r '.msg')"
fi
}
# 测试新增实体中介
test_add_entity() {
print_section "测试新增实体中介"
response=$(curl -s -X POST "${BASE_URL}/ccdi/intermediary/entity" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{
"enterpriseName": "测试中介公司",
"socialCreditCode": "91110000123456789X",
"enterpriseType": "有限责任公司",
"enterpriseNature": "民企",
"industryClass": "房地产",
"industryName": "房地产业",
"establishDate": "2020-01-01",
"registerAddress": "北京市朝阳区注册地址",
"legalRepresentative": "张三",
"legalCertType": "身份证",
"legalCertNo": "110101199001011234",
"shareholder1": "李四",
"shareholder2": "王五",
"remark": "自动化测试数据"
}')
echo "$response" | jq '.'
code=$(echo "$response" | jq -r '.code')
if [ "$code" == "200" ]; then
print_success "新增实体中介成功"
# 保存socialCreditCode用于后续测试
ENTITY_CREDIT_CODE="91110000123456789X"
echo "实体中介统一社会信用代码: $ENTITY_CREDIT_CODE"
else
print_error "新增实体中介失败: $(echo "$response" | jq -r '.msg')"
fi
}
# 测试查询个人中介详情
test_get_person_detail() {
print_section "测试查询个人中介详情"
if [ -z "$PERSON_BIZ_ID" ]; then
print_error "没有可用的个人中介bizId,跳过测试"
return
fi
response=$(curl -s -X GET "${BASE_URL}/ccdi/intermediary/person/${PERSON_BIZ_ID}" \
-H "Authorization: Bearer $TOKEN")
echo "$response" | jq '.'
code=$(echo "$response" | jq -r '.code')
if [ "$code" == "200" ]; then
print_success "查询个人中介详情成功"
else
print_error "查询个人中介详情失败: $(echo "$response" | jq -r '.msg')"
fi
}
# 测试查询实体中介详情
test_get_entity_detail() {
print_section "测试查询实体中介详情"
if [ -z "$ENTITY_CREDIT_CODE" ]; then
print_error "没有可用的实体中介统一社会信用代码,跳过测试"
return
fi
response=$(curl -s -X GET "${BASE_URL}/ccdi/intermediary/entity/${ENTITY_CREDIT_CODE}" \
-H "Authorization: Bearer $TOKEN")
echo "$response" | jq '.'
code=$(echo "$response" | jq -r '.code')
if [ "$code" == "200" ]; then
print_success "查询实体中介详情成功"
else
print_error "查询实体中介详情失败: $(echo "$response" | jq -r '.msg')"
fi
}
# 测试校验人员ID唯一性
test_check_person_id() {
print_section "测试校验人员ID唯一性"
response=$(curl -s -X GET "${BASE_URL}/ccdi/intermediary/checkPersonIdUnique?personId=110101199001019999" \
-H "Authorization: Bearer $TOKEN")
echo "$response" | jq '.'
code=$(echo "$response" | jq -r '.code')
if [ "$code" == "200" ]; then
unique=$(echo "$response" | jq -r '.data')
print_success "校验人员ID唯一性成功, unique=$unique"
else
print_error "校验人员ID唯一性失败"
fi
}
# 测试校验统一社会信用代码唯一性
test_check_social_credit_code() {
print_section "测试校验统一社会信用代码唯一性"
response=$(curl -s -X GET "${BASE_URL}/ccdi/intermediary/checkSocialCreditCodeUnique?socialCreditCode=91110000123456789X" \
-H "Authorization: Bearer $TOKEN")
echo "$response" | jq '.'
code=$(echo "$response" | jq -r '.code')
if [ "$code" == "200" ]; then
unique=$(echo "$response" | jq -r '.data')
print_success "校验统一社会信用代码唯一性成功, unique=$unique"
else
print_error "校验统一社会信用代码唯一性失败"
fi
}
# 测试修改个人中介
test_edit_person() {
print_section "测试修改个人中介"
if [ -z "$PERSON_BIZ_ID" ]; then
print_error "没有可用的个人中介bizId,跳过测试"
return
fi
response=$(curl -s -X PUT "${BASE_URL}/ccdi/intermediary/person" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d "{
\"bizId\": \"$PERSON_BIZ_ID\",
\"name\": \"测试中介个人(已修改)\",
\"personType\": \"中介\",
\"gender\": \"M\",
\"idType\": \"身份证\",
\"personId\": \"110101199001019999\",
\"mobile\": \"13900139000\",
\"company\": \"新公司\",
\"position\": \"高级经纪人\",
\"remark\": \"修改后的测试数据\"
}")
echo "$response" | jq '.'
code=$(echo "$response" | jq -r '.code')
if [ "$code" == "200" ]; then
print_success "修改个人中介成功"
else
print_error "修改个人中介失败: $(echo "$response" | jq -r '.msg')"
fi
}
# 测试修改实体中介
test_edit_entity() {
print_section "测试修改实体中介"
if [ -z "$ENTITY_CREDIT_CODE" ]; then
print_error "没有可用的实体中介统一社会信用代码,跳过测试"
return
fi
response=$(curl -s -X PUT "${BASE_URL}/ccdi/intermediary/entity" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d "{
\"socialCreditCode\": \"$ENTITY_CREDIT_CODE\",
\"enterpriseName\": \"测试中介公司(已修改)\",
\"enterpriseType\": \"股份有限公司\",
\"enterpriseNature\": \"国企\",
\"industryClass\": \"金融\",
\"industryName\": \"金融业\",
\"registerAddress\": \"北京市海淀区新地址\",
\"legalRepresentative\": \"李四\",
\"shareholder1\": \"赵六\",
\"shareholder2\": \"钱七\",
\"remark\": \"修改后的测试数据\"
}")
echo "$response" | jq '.'
code=$(echo "$response" | jq -r '.code')
if [ "$code" == "200" ]; then
print_success "修改实体中介成功"
else
print_error "修改实体中介失败: $(echo "$response" | jq -r '.msg')"
fi
}
# 测试条件查询
test_query_by_type() {
print_section "测试按中介类型查询"
# 查询个人中介
print_section "查询个人中介"
response=$(curl -s -X GET "${BASE_URL}/ccdi/intermediary/list?intermediaryType=1&pageNum=1&pageSize=10" \
-H "Authorization: Bearer $TOKEN")
echo "$response" | jq '.'
total=$(echo "$response" | jq -r '.total')
print_success "查询到个人中介 $total"
# 查询实体中介
print_section "查询实体中介"
response=$(curl -s -X GET "${BASE_URL}/ccdi/intermediary/list?intermediaryType=2&pageNum=1&pageSize=10" \
-H "Authorization: Bearer $TOKEN")
echo "$response" | jq '.'
total=$(echo "$response" | jq -r '.total')
print_success "查询到实体中介 $total"
}
# 主函数
main() {
print_header "中介黑名单管理 API 测试开始"
# 检查jq命令
if ! command -v jq &> /dev/null; then
print_error "jq命令未安装,请先安装: apt-get install jq 或 yum install jq"
exit 1
fi
# 获取Token
get_token
# 执行测试
test_list
test_add_person
test_add_entity
test_get_person_detail
test_get_entity_detail
test_check_person_id
test_check_social_credit_code
test_edit_person
test_edit_entity
test_query_by_type
print_header "测试完成"
echo ""
echo "注意事项:"
echo "1. 请确保后端服务已启动 (${BASE_URL})"
echo "2. 测试数据已创建,可手动清理"
echo "3. 如需删除测试数据,请使用清理脚本"
echo ""
}
# 执行主函数
main