The /weixinLogin endpoint was calling userService.updateUser() which internally
deletes all sys_user_role entries and re-inserts from the user object (which has
no roleIds). This caused user roles to be wiped on every WeChat login, breaking
all permission checks including promotion functionality.
Changed to updateUserProfile() which only updates user fields without touching
role associations.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Add van-nav-bar with back arrow to qianbao.wxml
- Fix JSON title from "我的收藏" to "我的钱包"
- Simplify JS: remove unused navHeight/menuButtonInfo, use getNavBarHeight()
- Add navigationStyle:custom for consistent custom nav bar
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Add loadUserInfo() calling /system/user/getAppUserInfo for user profile
- Show real-name verification badge (已认证/未认证)
- Show balance card with amount from API
- Add menu: 我的钱包, 我的订单, 联系客服, 关于
- Clean up dead code and unused lifecycle hooks
- Refresh user info on every onShow when logged in
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Move image URL construction from WXML ternary to JS pre-processing.
This ensures fixImageUrl() is properly applied before template rendering.
Also reverts fixImageUrl to use API base URL (images served via backend).
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Images are served from MinIO directly, not through /prod-api proxy.
Add imageBaseUrl to config and use it in fixImageUrl() and WXML templates.
This fixes images not loading on order list and detail pages.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Add request.js for unified API calls with loading/error handling
- Add service page (service type listing)
- Fix hospital list to load from API with proper image URL construction
- Add service types dynamic loading on index page
- Various mini program improvements (order, care, wallet pages)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- .anonymous() blocks authenticated users (returns 403 with token)
- .permitAll() allows both anonymous and authenticated requests
- Add @Anonymous annotation to publishedList() and incrementView()
- Remove /system/nursing/** from anonymous whitelist, add to permitAll
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Use /system/nursing/published instead of /system/user/getAppIndexInfo
- Simpler JSON structure: data array directly at root level
- Avoid race condition with getAppUserInfo/initDatatwo callbacks
- Field mapping: title→content, imageUrl→pic, articleUrl→url, content→articleBody
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Remove CacheMode.REQUEST_FAILED_READ_CACHE to eliminate cache issues
- Add detailed toast messages for each failure scenario
- Toast success count when data loads
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Pre-populate nursingInfoList with placeholder to prevent empty RecyclerView
- Add try-catch around JSON parsing in initNursingInfo
- Add toast on parse failure
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Remove JSONArray/JSONObject usage (not available in ruoyi-system module)
- publishedList() now returns List directly via AjaxResult.success()
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Add content field (LONGTEXT) with Quill rich text editor in admin UI
- Add view_count field with auto-increment API endpoint
- Replace manual image URL input with image-upload component
- Add /system/nursing/published and /view/{id} public endpoints
- Improve Android error handling with toast and cache fallback
- Optimize ViewHolderFive adapter to reuse instead of recreating
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Backend: create RlzNursingArticle CRUD (entity, mapper, service, controller)
- Backend: replace hardcoded data in getAppIndexInfo with DB query
- Admin UI: add nursing article management page under 系统管理
- Android: fetch nursing info from API instead of hardcoded data
- SQL: create rlz_nursing_article table with menu and permissions
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- orderdetail: add fallback avatar image and onAvatarError handler
- Android: point debug build to cloud server (101.43.95.130)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Redesign order status: 0待接单→1已接单→2服务中→3待支付→4已完成
- Backend: startService now requires status=1, completeOrder sets status=3
- Backend: payment callback sets status=4, only status=3 can pay
- Backend: cancel only allowed at status 0/1 (not during service)
- Mini-program: update status labels and payment button to status=3
- Android: TobeSerFragment queries status=1, SerFragment queries status=2
- Update all status comments and UI mappings across three platforms
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Redesign order status flow: 0待接单→1已接单→2服务中→3待支付→4已完成
- Allow service start from status 1 (removed payment barrier)
- Add payment entry after service completion (status 3)
- Update Android/miniprogram UI status mappings
- Add order flow design document to docs/
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Add 6 dashboard query methods to RlzOrderMapper (status/type/trend/ranking)
- Add dashboard endpoint /system/view/dashboard combining all stats
- Rewrite index.vue with ECharts: summary cards, order/revenue trend,
status pie, hospital and caregiver ranking charts
- Add getDashboard API to finance.js
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Add income stats API endpoint (GET /system/view/incomeStats)
- Create frontend pages: refund, settlement, income stats, transaction detail
- Add finance API module (refund approve, settlement, income stats)
- Update database menus for finance module paths
- Add jiaoyi_detail transaction list with jiaoyi_detail menu
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- New: 云服务器部署实操手册.md covering Docker, database, frontend
deployment, Git sync, paramiko, API testing, menu management, and
troubleshooting
- Update: 改进完成记录.md with Issue #18, #21, and order_view fix
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Add PUT /approve/{id} and PUT /reject/{id} endpoints
- Add state filter dropdown (pending/approved/rejected)
- Add colored status tags and approve/reject action buttons
- Add reject reason dialog and detail view with image previews
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Stray 't' characters before XML tags in resultMap/insert/update
elements were causing MyBatis XML parsing failure at runtime.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Move rlz/ backend from git submodule to first-class source tree.
Includes all RuoYi 3.8.3 backend source, mapper XMLs, SQL scripts,
Dockerfile, and build configs. Also adds frontend enhancements:
- Order management: status filters, refund review, settlement (Issue #14)
- Hospital management: level/description/image fields (Issue #16)
- User management: type filter, userLevel, stats endpoint (Issue #17)
- Dev environment: application-dev.yml for rlz_dev database
- CI/CD: Drone pipeline configuration (.drone.yml)
- Mini program: API config extraction (coupon/utils/config.js)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Add rlz_service_type and rlz_price_history tables
- Add backend entities, mapper, service, and controller for /system/serviceType
- Add frontend Vue page with list/create/edit/price update/price history
- Add sys_menu entries and role permissions for admin role
- Add admin backend module planning document
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Fix hospital field mapping: hospitalname (not hospitalName), id (not hospitalId)
- Add loading placeholder for hospital picker before API response
- Handle null userbName in paysuccess page when escort not yet assigned
- Create rlz_order table and order_view in MySQL database
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
#11: Rewrite paysuccess page - remove e-commerce template, show order summary
#12: Load hospital list dynamically from /system/hospital/list API
#13: Remove hardcoded bId and ID number, add optional ID card input field
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>