feat: complete aihr mvp mobile workflow
This commit is contained in:
@@ -3,6 +3,7 @@ set -euo pipefail
|
||||
|
||||
ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
|
||||
FRONTEND_URL="${FRONTEND_URL:-http://127.0.0.1:5173}"
|
||||
MOBILE_URL="${MOBILE_URL:-http://127.0.0.1:5174}"
|
||||
|
||||
cd "$ROOT_DIR"
|
||||
|
||||
@@ -33,6 +34,7 @@ check_url() {
|
||||
need curl
|
||||
|
||||
check_url "frontend" "$FRONTEND_URL/"
|
||||
check_url "mobile" "$MOBILE_URL/h5/user"
|
||||
|
||||
tenant_payload="$(curl -fsS "$FRONTEND_URL/dev-api/auth/tenant/list")"
|
||||
[[ "$tenant_payload" == *'"tenantId":"000000"'* ]] || fail "tenant list missing tenant 000000"
|
||||
@@ -48,6 +50,20 @@ contains frontend/src/router/index.ts "/knowledge/cases"
|
||||
contains frontend/src/router/index.ts "/knowledge/sop"
|
||||
contains frontend/src/router/index.ts "/system/model"
|
||||
|
||||
contains mobile/src/App.vue "早上好,王敏"
|
||||
contains mobile/src/App.vue "AI结构化面试"
|
||||
contains mobile/src/App.vue "团队今日概况"
|
||||
contains mobile/src/App.vue "sendSmsCode"
|
||||
contains mobile/src/App.vue "/dev-api/resource/sms/code"
|
||||
contains mobile/src/App.vue "/dev-api/auth/mobile/sms-login"
|
||||
contains mobile/src/App.vue "fetchMobileHome"
|
||||
contains mobile/src/App.vue "/dev-api/api/aihr/mobile/home/"
|
||||
contains mobile/src/App.vue "startMobilePractice"
|
||||
contains mobile/src/App.vue "/dev-api/api/train/practice/start"
|
||||
contains mobile/src/App.vue "训练完成,主管端待复盘已更新"
|
||||
contains mobile/src/App.vue "/dev-api/api/aihr/mobile/practice/history"
|
||||
contains mobile/src/App.vue "competencyProfile"
|
||||
contains mobile/package.json "aihr-mobile"
|
||||
contains frontend/src/views/recruit/interview.vue "建议复试"
|
||||
contains frontend/src/views/train/practice.vue "导师改写"
|
||||
contains frontend/src/views/knowledge/cases.vue "seed入库"
|
||||
@@ -57,6 +73,12 @@ contains frontend/src/api/aihr/interview.ts "/api/recruit/interview/start"
|
||||
contains backend/ruoyi-modules/ruoyi-aihr/src/main/java/org/dromara/aihr/controller/AihrInterviewController.java "/api/recruit/interview"
|
||||
contains frontend/src/api/aihr/practice.ts "/api/train/practice/start"
|
||||
contains backend/ruoyi-modules/ruoyi-aihr/src/main/java/org/dromara/aihr/controller/AihrPracticeController.java "/api/train/practice"
|
||||
contains backend/ruoyi-modules/ruoyi-aihr/src/main/java/org/dromara/aihr/service/AihrPracticeSeedService.java "mobileCompletedCount"
|
||||
contains backend/ruoyi-modules/ruoyi-aihr/src/main/java/org/dromara/aihr/service/AihrPracticeSeedService.java "aihr_practice_session"
|
||||
contains backend/ruoyi-modules/ruoyi-aihr/src/main/java/org/dromara/aihr/service/AihrMobileSeedService.java "待复盘对练"
|
||||
contains backend/ruoyi-modules/ruoyi-aihr/src/main/java/org/dromara/aihr/controller/AihrMobileController.java "/practice/reviews"
|
||||
contains backend/ruoyi-modules/ruoyi-aihr/src/main/java/org/dromara/aihr/controller/AihrMobileController.java "/practice/reviews/{id}/reviewed"
|
||||
contains mobile/src/App.vue "标记已复盘"
|
||||
contains frontend/src/api/aihr/case.ts "/api/knowledge/case/upload"
|
||||
contains backend/ruoyi-modules/ruoyi-aihr/src/main/java/org/dromara/aihr/controller/AihrCaseController.java "/api/knowledge/case"
|
||||
contains frontend/src/api/aihr/sop.ts "/api/knowledge/search"
|
||||
@@ -72,6 +94,8 @@ contains docs/RUOYI_AI_INCREMENTAL_MIGRATION.md "ruoyi-ai"
|
||||
contains docs/RUOYI_AI_INCREMENTAL_MIGRATION.md "POST /api/knowledge/doc/upload"
|
||||
contains backend/script/sql/aihr_knowledge_mysql8.sql "aihr_knowledge_fragment"
|
||||
contains backend/script/sql/aihr_model_mysql8.sql "aihr_model_config"
|
||||
contains backend/script/sql/aihr_practice_mysql8.sql "aihr_practice_session"
|
||||
contains backend/script/sql/aihr_practice_mysql8.sql "dialogue_json"
|
||||
contains backend/script/sql/aihr_model_mysql8.sql "api_key"
|
||||
contains backend/ruoyi-modules/ruoyi-aihr/src/main/java/org/dromara/aihr/controller/AihrModelController.java "/api/aihr/model"
|
||||
contains backend/ruoyi-modules/ruoyi-aihr/src/main/java/org/dromara/aihr/controller/AihrModelController.java "/providers/{providerCode}"
|
||||
@@ -81,6 +105,10 @@ contains frontend/src/api/aihr/model.ts "/api/aihr/model/providers"
|
||||
contains frontend/src/api/aihr/model.ts "/api/aihr/model/configs"
|
||||
contains frontend/src/views/system/model/index.vue "submitProvider"
|
||||
contains frontend/src/views/system/model/index.vue "submitModel"
|
||||
contains backend/ruoyi-admin/src/main/java/org/dromara/web/controller/AuthController.java "/mobile/sms-login"
|
||||
contains backend/ruoyi-admin/src/main/java/org/dromara/web/controller/CaptchaController.java "aihr.sms.login-template-id"
|
||||
contains backend/ruoyi-modules/ruoyi-aihr/src/main/java/org/dromara/aihr/controller/AihrMobileController.java "/api/aihr/mobile"
|
||||
contains backend/ruoyi-modules/ruoyi-aihr/src/main/java/org/dromara/aihr/service/AihrMobileSeedService.java "candidateHome"
|
||||
|
||||
echo "OK: demo routes and seed markers"
|
||||
echo "OK: AI interview API markers"
|
||||
@@ -90,4 +118,5 @@ echo "OK: AI SOP API markers"
|
||||
echo "OK: ruoyi-ai incremental migration markers"
|
||||
echo "OK: AI model migration markers"
|
||||
echo "OK: AI model config page markers"
|
||||
echo "OK: AI mobile role home markers"
|
||||
echo "PASS: demo preflight"
|
||||
|
||||
@@ -3,6 +3,13 @@ set -euo pipefail
|
||||
|
||||
ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
|
||||
|
||||
if [[ -f "$ROOT_DIR/.env.local" ]]; then
|
||||
set -a
|
||||
# shellcheck disable=SC1091
|
||||
source "$ROOT_DIR/.env.local"
|
||||
set +a
|
||||
fi
|
||||
|
||||
cd "$ROOT_DIR/backend"
|
||||
mkdir -p "$ROOT_DIR/.data/import"
|
||||
|
||||
|
||||
Executable
+12
@@ -0,0 +1,12 @@
|
||||
#!/usr/bin/env bash
|
||||
set -euo pipefail
|
||||
|
||||
ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
|
||||
|
||||
cd "$ROOT_DIR/mobile"
|
||||
|
||||
if [[ ! -d node_modules ]]; then
|
||||
npm install --registry=https://registry.npmmirror.com
|
||||
fi
|
||||
|
||||
exec npm run dev -- --host 127.0.0.1 --port 5174 --strictPort
|
||||
+10
-3
@@ -8,7 +8,7 @@ usage() {
|
||||
cat <<'EOF'
|
||||
Usage: ./scripts/dev.sh [start|stop|restart|status|--reset]
|
||||
|
||||
Starts MySQL, Redis, MinIO, Qdrant, backend and frontend.
|
||||
Starts MySQL, Redis, MinIO, Qdrant, backend, admin frontend and mobile frontend.
|
||||
start start local demo services
|
||||
stop stop backend and frontend dev processes
|
||||
restart stop backend and frontend, then start again
|
||||
@@ -78,12 +78,14 @@ stop_port() {
|
||||
stop_dev() {
|
||||
stop_port 8080
|
||||
stop_port 5173
|
||||
stop_port 5174
|
||||
}
|
||||
|
||||
status() {
|
||||
docker compose -f docker-compose.dev.yml ps
|
||||
lsof -nP -iTCP:8080 -sTCP:LISTEN || true
|
||||
lsof -nP -iTCP:5173 -sTCP:LISTEN || true
|
||||
lsof -nP -iTCP:5174 -sTCP:LISTEN || true
|
||||
}
|
||||
|
||||
if [[ "${1:-}" == "--help" || "${1:-}" == "-h" ]]; then
|
||||
@@ -125,6 +127,7 @@ cd "$ROOT_DIR"
|
||||
ensure_docker
|
||||
ensure_port_free 8080
|
||||
ensure_port_free 5173
|
||||
ensure_port_free 5174
|
||||
|
||||
if [[ "$RESET" == true ]]; then
|
||||
./scripts/reset-dev-db.sh
|
||||
@@ -140,10 +143,14 @@ PIDS+=("$!")
|
||||
./scripts/dev-frontend.sh &
|
||||
PIDS+=("$!")
|
||||
|
||||
./scripts/dev-mobile.sh &
|
||||
PIDS+=("$!")
|
||||
|
||||
echo "Backend: http://127.0.0.1:8080/"
|
||||
echo "Frontend: http://127.0.0.1:5173/"
|
||||
echo "Admin: http://127.0.0.1:5173/"
|
||||
echo "Mobile: http://127.0.0.1:5174/h5/user"
|
||||
echo "Qdrant: http://127.0.0.1:6333/"
|
||||
echo "Press Ctrl+C to stop backend and frontend."
|
||||
echo "Press Ctrl+C to stop backend, admin frontend and mobile frontend."
|
||||
|
||||
while :; do
|
||||
for pid in "${PIDS[@]}"; do
|
||||
|
||||
@@ -21,6 +21,7 @@ docker exec -i wygj-mysql mysql -uroot -proot --default-character-set=utf8mb4 ry
|
||||
docker exec -i wygj-mysql mysql -uroot -proot --default-character-set=utf8mb4 ry-vue < "$ROOT_DIR/backend/script/sql/ry_workflow.sql"
|
||||
docker exec -i wygj-mysql mysql -uroot -proot --default-character-set=utf8mb4 ry-vue < "$ROOT_DIR/backend/script/sql/aihr_knowledge_mysql8.sql"
|
||||
docker exec -i wygj-mysql mysql -uroot -proot --default-character-set=utf8mb4 ry-vue < "$ROOT_DIR/backend/script/sql/aihr_model_mysql8.sql"
|
||||
docker exec -i wygj-mysql mysql -uroot -proot --default-character-set=utf8mb4 ry-vue < "$ROOT_DIR/backend/script/sql/aihr_practice_mysql8.sql"
|
||||
|
||||
docker exec wygj-mysql mysql -uroot -proot --default-character-set=utf8mb4 ry-vue \
|
||||
-e "select count(*) as tables_count from information_schema.tables where table_schema = 'ry-vue';"
|
||||
|
||||
Reference in New Issue
Block a user