46 Commits

Author SHA1 Message Date
renjianbo
7562a5f20c fix: use updateUserProfile instead of updateUser in WeChat login to prevent role deletion
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>
2026-06-11 00:44:47 +08:00
renjianbo
491f6870aa fix: correct van-nav-bar component path in wallet page
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-06-07 12:16:05 +08:00
renjianbo
d8eb826469 fix: add back button and nav bar to wallet page
- 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>
2026-06-07 12:15:27 +08:00
renjianbo
7c9cfff3cc feat: redesign my page with balance card, auth badge, and menu grid
- 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>
2026-06-07 12:11:59 +08:00
renjianbo
ade42d9b27 fix: pre-process order userbAvatar in JS, simplify WXML image tags
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>
2026-06-07 11:53:49 +08:00
renjianbo
f5024c0ed0 fix: image URLs incorrectly using API base URL instead of image base URL
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>
2026-06-07 11:34:33 +08:00
renjianbo
310dc6720f refactor: extract shared helpers, remove dead code, fix conventions
- Add getNavBarHeight() to App, replace 9x duplicate statusBarHeight calc
- Add fixImageUrl() helper, replace 3x duplicate image URL fixup
- Add STATUS_MAP and REFUND_REASONS to globalData, replace duplicates
- Replace hardcoded domain in WXML with {{url}} data binding (4 places)
- Delete dead backup file orderdetailbeifen.js (contained real phone number)
- Delete empty pages: tuiguang, subPackages/withdrawal, orderdetiltwo
- Remove unused import (Token in my.js)
- Convert paysuccess.js from raw wx.request to request() utility
- Remove unused baseUrl variables after switching to fixImageUrl()

Net: +81 / -917 lines

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-06-07 11:29:35 +08:00
renjianbo
e0fd538c9d fix: add missing closing tags for scroll-view and refund_box in orderdetail.wxml
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-06-07 10:48:13 +08:00
renjianbo
ea6a6087d4 fix: comprehensive mini program bug fixes - image URLs, API calls, UI issues
- Fix hospital/service/caregiver images blank by prepending baseUrl for relative paths
- Add icon name mapping and resolveIcon() for service icon fallback
- Fix login phone field: res.phone -> res.data.phoneNumber
- Fix pagination stuck at page 1 in mechanism.js and qianbao.js
- Fix response parsing to handle both {code:200} and {erro:0} formats
- Replace raw wx.request calls with unified request() utility (6+ instances)
- Fix hardcoded phone number exposure in orderdetail.js
- Fix broken privacy URL (http: -> https://)
- Fix expired date range in goddess.wxml (2025 -> 2030)
- Remove duplicate refund box in orderdetail.wxml
- Fix service icon fallback ternary logic
- Add proper error handling replacing empty .catch() blocks

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-06-07 10:46:31 +08:00
renjianbo
a4dd5c80ac docs: add code sync task command reference
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-06-07 10:27:13 +08:00
renjianbo
1d0a0b9b04 feat: add request.js utility, service page, and fix hospital image URLs
- 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>
2026-06-07 10:13:26 +08:00
renjianbo
d0d69387fb fix: change nursing endpoints from anonymous() to permitAll()
- .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>
2026-05-23 01:45:15 +08:00
renjianbo
ccf1ffa8dd fix: switch nursing info to dedicated /published endpoint
- 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>
2026-05-23 01:38:06 +08:00
renjianbo
cafc936196 fix: add debug toasts and remove cache for nursing info API call
- 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>
2026-05-23 01:31:51 +08:00
renjianbo
7d56ff4bfe fix: add placeholder data and error handling for nursing info display
- 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>
2026-05-23 01:29:43 +08:00
renjianbo
fe5a2f2fdc fix: remove FastJSON dependency from RlzNursingArticleController
- 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>
2026-05-23 00:55:33 +08:00
renjianbo
12d67c00f4 feat: improve nursing article module with rich content and view tracking
- 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>
2026-05-23 00:52:12 +08:00
renjianbo
a53ed96119 fix: add getAppIndexInfo to anonymous access and fix SQL schema
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-05-23 00:00:51 +08:00
renjianbo
065622c570 feat: add dynamic nursing news/information management
- 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>
2026-05-22 23:50:02 +08:00
renjianbo
068c47925e fix: add default avatar placeholder and correct debug API URL
- 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>
2026-05-22 00:27:52 +08:00
renjianbo
230fb8c82a fix: enable buildConfig feature for Android Gradle Plugin 8.x
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-05-22 00:03:33 +08:00
renjianbo
97ad453e89 feat: implement serve-first-pay-later order flow
- 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>
2026-05-21 23:16:27 +08:00
renjianbo
17e91fcf84 refactor: redesign order flow - serve first, pay later
- 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>
2026-05-21 00:56:17 +08:00
renjianbo
f3e2fd2829 feat: add dashboard enhancement with ECharts charts (#20)
- 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>
2026-05-17 09:11:50 +08:00
renjianbo
39a371b9ac feat: add financial management module (#19)
- 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>
2026-05-17 08:47:25 +08:00
renjianbo
68f830c75c docs: add cloud server deployment guide and update improvement log
- 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>
2026-05-17 01:18:22 +08:00
renjianbo
46e9ade6b5 Merge branch 'dev' of http://101.43.95.130:3001/admin/rlz into dev 2026-05-17 01:13:12 +08:00
renjianbo
8f2d9c337a feat: add certification approve/reject with enhanced UI (#18)
- 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>
2026-05-17 01:13:01 +08:00
rjb
404328ad33 feat: add certification approve/reject endpoints (#18) 2026-05-17 01:12:31 +08:00
renjianbo
2f460dbd4f fix: remove stray characters from SysUserMapper.xml
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>
2026-05-17 00:23:48 +08:00
renjianbo
cccc88e2e2 refactor: de-submodule rlz backend and integrate all source code
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>
2026-05-17 00:20:42 +08:00
renjianbo
482b9ac92f feat: add service type management module (#15)
- 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>
2026-05-15 00:18:21 +08:00
rjb
0f991c7f7d Merge branch 'main' of http://101.43.95.130:3001/admin/rlz into main 2026-05-14 02:27:59 +08:00
rjb
6b3478718a chore: add .gitmodules for rlz backend submodule 2026-05-14 02:27:15 +08:00
renjianbo
3aa3bc5b27 fix: handle API response format with rows fallback in order list 2026-05-14 02:26:39 +08:00
rjb
a9f8b5165d chore: update rlz backend submodule 2026-05-14 02:22:31 +08:00
renjianbo
f098c91844 chore: add new images, extension info page, and update project config 2026-05-14 02:03:06 +08:00
renjianbo
b8761b0741 fix: fix hospital field names and handle empty escort name in paysuccess
- 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>
2026-05-13 22:44:07 +08:00
renjianbo
909dfe3442 fix: rewrite paysuccess page, dynamic hospital list, remove hardcoded values
#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>
2026-05-13 01:08:27 +08:00
renjianbo
86c3965a1b fix: move payment button from status=1 to status=4 for pay-after-service flow 2026-05-13 00:55:00 +08:00
rjb
2ddbbb4886 fix: change mini-program backend URL to http://101.43.95.130:8039 2026-05-13 00:37:25 +08:00
rjb
d35c074569 chore: merge coupon as regular directory (replace submodule) 2026-05-11 07:36:26 +08:00
rjb
d4c0016c73 chore: merge peizhen as regular directory (replace submodule) 2026-05-11 07:29:06 +08:00
rjb
1047599bde fix: add docker-compose config and fix nginx proxy for /prod-api/ endpoint 2026-05-11 00:13:26 +08:00
rjb
a02773e383 first commit 2026-01-26 15:02:59 +08:00
rjb
755ec7fbbb first commit 2026-01-26 15:02:37 +08:00