#!/bin/bash # 测试脚本 - 合作成本表和店内支出表 # 使用方法:./测试脚本-合作成本表和店内支出表.sh # 示例:./测试脚本-合作成本表和店内支出表.sh "Bearer xxx" "http://localhost:2011" TOKEN=${1:-"Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJVc2VySWQiOiJhZG1pbiIsIkFjY291bnQiOiJhZG1pbiIsIlVzZXJOYW1lIjoi566h55CG5ZGYIiwiQWRtaW5pc3RyYXRvciI6MSwiVGVuYW50SWQiOiJkYiIsIlRlbmFudERiTmFtZSI6ImxxZXJwX3Rlc3QiLCJpYXQiOjE3NjUyOTAwNTQsIm5iZiI6MTc2NTI5MDA1NCwiZXhwIjoxNzY1MzQ0MDU0LCJpc3MiOiJ5aW5tYWlzb2Z0IiwiYXVkIjoieWlubWFpc29mdCJ9.d68JfuAnxusEWSzloJu4uFPd5uK-Tf8_AA2gBPui-k4"} BASE_URL=${2:-"http://localhost:2011"} echo "==========================================" echo "开始测试 - 合作成本表和店内支出表" echo "==========================================" echo "" # 测试门店ID STORE_ID_1="1649328471923847168" # 绿纤总部 STORE_ID_2="1649328471923847169" # 绿纤紫荆店 STORE_ID_3="1649328471923847170" # 绿纤龙湖店 # 颜色输出 GREEN='\033[0;32m' RED='\033[0;31m' YELLOW='\033[1;33m' NC='\033[0m' # No Color # 测试函数 test_api() { local name=$1 local method=$2 local url=$3 local data=$4 echo -e "${YELLOW}测试: ${name}${NC}" echo "请求: ${method} ${url}" if [ -n "$data" ]; then echo "数据: ${data}" response=$(curl -s -w "\n%{http_code}" -X ${method} "${BASE_URL}${url}" \ -H "Authorization: ${TOKEN}" \ -H "Content-Type: application/json" \ -d "${data}") else response=$(curl -s -w "\n%{http_code}" -X ${method} "${BASE_URL}${url}" \ -H "Authorization: ${TOKEN}") fi http_code=$(echo "$response" | tail -n1) body=$(echo "$response" | sed '$d') if [ "$http_code" -eq 200 ] || [ "$http_code" -eq 201 ]; then echo -e "${GREEN}✓ 成功 (HTTP ${http_code})${NC}" echo "响应: ${body}" | jq . 2>/dev/null || echo "响应: ${body}" echo "" echo "$body" else echo -e "${RED}✗ 失败 (HTTP ${http_code})${NC}" echo "响应: ${body}" echo "" echo "" fi } # ========================================== # 第一阶段:合作成本表 CRUD 测试 # ========================================== echo "==========================================" echo "第一阶段:合作成本表 CRUD 测试" echo "==========================================" echo "" # 1.1 创建合作成本记录 echo "1.1 创建合作成本记录" COOPERATION_COST_DATA='{"storeId":"'${STORE_ID_1}'","storeName":"绿纤总部","year":2025,"month":"202501","totalAmount":5000.00,"remarks":"CRUD测试-创建"}' CREATE_RESPONSE=$(test_api "创建合作成本记录" "POST" "/api/Extend/LqCooperationCost" "${COOPERATION_COST_DATA}") COOPERATION_COST_ID=$(echo "$CREATE_RESPONSE" | jq -r '.id // empty' 2>/dev/null) if [ -z "$COOPERATION_COST_ID" ]; then echo "无法获取创建的记录ID,尝试从响应中提取..." COOPERATION_COST_ID=$(echo "$CREATE_RESPONSE" | grep -oP '"id"\s*:\s*"[^"]*"' | head -1 | cut -d'"' -f4) fi echo "创建的记录ID: ${COOPERATION_COST_ID}" echo "" # 1.2 查询合作成本列表 echo "1.2 查询合作成本列表" test_api "查询合作成本列表" "GET" "/api/Extend/LqCooperationCost?currentPage=1&pageSize=10&storeId=${STORE_ID_1}" "" echo "" # 1.3 查询合作成本详情 if [ -n "$COOPERATION_COST_ID" ]; then echo "1.3 查询合作成本详情" test_api "查询合作成本详情" "GET" "/api/Extend/LqCooperationCost/${COOPERATION_COST_ID}" "" echo "" # 1.4 更新合作成本记录 echo "1.4 更新合作成本记录" UPDATE_DATA='{"id":"'${COOPERATION_COST_ID}'","storeId":"'${STORE_ID_1}'","storeName":"绿纤总部","year":2025,"month":"202501","totalAmount":6000.00,"remarks":"CRUD测试-更新"}' test_api "更新合作成本记录" "PUT" "/api/Extend/LqCooperationCost/${COOPERATION_COST_ID}" "${UPDATE_DATA}" echo "" fi # ========================================== # 第二阶段:店内支出表 CRUD 测试 # ========================================== echo "==========================================" echo "第二阶段:店内支出表 CRUD 测试" echo "==========================================" echo "" # 2.1 创建店内支出记录 echo "2.1 创建店内支出记录" STORE_EXPENSE_DATA='{"storeId":"'${STORE_ID_1}'","storeName":"绿纤总部","expenseCategoryId":"","expenseCategoryName":"办公用品","expenseDate":"2025-01-15T00:00:00","unitPrice":10.50,"quantity":5,"amount":52.50,"memo":"CRUD测试-创建","attachment":[],"relatedReimbursementId":"","relatedPurchaseRecordId":""}' CREATE_EXPENSE_RESPONSE=$(test_api "创建店内支出记录" "POST" "/api/Extend/LqStoreExpense" "${STORE_EXPENSE_DATA}") STORE_EXPENSE_ID=$(echo "$CREATE_EXPENSE_RESPONSE" | jq -r '.id // empty' 2>/dev/null) if [ -z "$STORE_EXPENSE_ID" ]; then echo "无法获取创建的记录ID,尝试从响应中提取..." STORE_EXPENSE_ID=$(echo "$CREATE_EXPENSE_RESPONSE" | grep -oP '"id"\s*:\s*"[^"]*"' | head -1 | cut -d'"' -f4) fi echo "创建的记录ID: ${STORE_EXPENSE_ID}" echo "" # 2.2 查询店内支出列表 echo "2.2 查询店内支出列表" test_api "查询店内支出列表" "GET" "/api/Extend/LqStoreExpense?currentPage=1&pageSize=10&storeId=${STORE_ID_1}" "" echo "" # 2.3 查询店内支出详情 if [ -n "$STORE_EXPENSE_ID" ]; then echo "2.3 查询店内支出详情" test_api "查询店内支出详情" "GET" "/api/Extend/LqStoreExpense/${STORE_EXPENSE_ID}" "" echo "" # 2.4 更新店内支出记录 echo "2.4 更新店内支出记录" UPDATE_EXPENSE_DATA='{"id":"'${STORE_EXPENSE_ID}'","storeId":"'${STORE_ID_1}'","storeName":"绿纤总部","expenseCategoryId":"","expenseCategoryName":"水电费","expenseDate":"2025-01-20T00:00:00","unitPrice":0,"quantity":0,"amount":500.00,"memo":"CRUD测试-更新","attachment":[],"relatedReimbursementId":"","relatedPurchaseRecordId":""}' test_api "更新店内支出记录" "PUT" "/api/Extend/LqStoreExpense/${STORE_EXPENSE_ID}" "${UPDATE_EXPENSE_DATA}" echo "" fi # ========================================== # 第三阶段:Excel导入测试 # ========================================== echo "==========================================" echo "第三阶段:Excel导入测试" echo "==========================================" echo "" # 3.1 导入合作成本表 echo "3.1 导入合作成本表" echo "注意:需要手动执行以下命令(需要提供Excel文件路径)" echo "curl -X POST \"${BASE_URL}/api/Extend/LqCooperationCost/Actions/Import\" \\" echo " -H \"Authorization: ${TOKEN}\" \\" echo " -F \"file=@excel/合作成本表.xlsx\"" echo "" # 3.2 导入店内支出表 echo "3.2 导入店内支出表" echo "注意:需要手动执行以下命令(需要提供Excel文件路径)" echo "curl -X POST \"${BASE_URL}/api/Extend/LqStoreExpense/Actions/Import\" \\" echo " -H \"Authorization: ${TOKEN}\" \\" echo " -F \"file=@excel/店内支出表.xlsx\"" echo "" # ========================================== # 第四阶段:Excel导出测试 # ========================================== echo "==========================================" echo "第四阶段:Excel导出测试" echo "==========================================" echo "" # 4.1 导出合作成本表 echo "4.1 导出合作成本表" test_api "导出合作成本表" "GET" "/api/Extend/LqCooperationCost/Actions/Export?dataType=1&storeId=${STORE_ID_1}&year=2025&month=202501" "" echo "" # 4.2 导出店内支出表 echo "4.2 导出店内支出表" test_api "导出店内支出表" "GET" "/api/Extend/LqStoreExpense/Actions/Export?dataType=1&storeId=${STORE_ID_1}" "" echo "" # ========================================== # 第五阶段:报销表导出测试 # ========================================== echo "==========================================" echo "第五阶段:报销表导出测试" echo "==========================================" echo "" # 5.1 导出报销表明细 echo "5.1 导出报销表明细(本月已审核通过的)" test_api "导出报销表明细" "GET" "/api/Extend/LqReimbursementApplication/Actions/ExportApprovedDetails?year=2025&month=01" "" echo "" echo "==========================================" echo "测试完成" echo "=========================================="