newbee-ltd/newbee-mall
🔥 🎉newbee-mall是一套电商系统,包括基础版本(Spring Boot+Thymeleaf)、前后端分离版本(Spring Boot+Vue 3+Element-Plus+Vue-Router 4+Pinia+Vant 4) 、秒杀版本、Go语言版本、微服务版本(Spring Cloud Alibaba+Nacos+Sentinel+Seata+Spring Cloud Gateway+OpenFeign+ELK)。 前台商城系统包含首页门户、商品分类、新品上线、首页轮播、商品推荐、商品搜索、商品展示、购物车、订单结算、订单流程、个人订单管理、会员中心、帮助中心等模块。 后台管理系统包含数据面板、轮播图管理、商品管理、订单管理、会员管理、分类管理、设置等模块。
Slowing — last commit 6mo ago
copyleft license (GPL-3.0) — review compatibility; no CI workflows detected
Has a license, tests, and CI — clean foundation to fork and modify.
Documented and popular — useful reference codebase to read through.
last commit was 6mo ago; no CI workflows detected
- ⚠Slowing — last commit 6mo ago
- ⚠Concentrated ownership — top contributor handles 50% of recent commits
- ⚠GPL-3.0 is copyleft — check downstream compatibility
- ⚠No CI workflows detected
- ✓Last commit 6mo ago
- ✓5 active contributors
- ✓GPL-3.0 licensed
- ✓Tests present
What would improve this?
- →Use as dependency Concerns → Mixed if: relicense under MIT/Apache-2.0 (rare for established libs)
- →Deploy as-is Mixed → Healthy if: 1 commit in the last 180 days
Computed from maintenance signals — commit recency, contributor breadth, bus factor, license, CI, tests
Informational only. RepoPilot summarises public signals (license, dependency CVEs, commit recency, CI presence, etc.) at the time of analysis. Signals can be incomplete or stale. Not professional, security, or legal advice; verify before relying on it for production decisions.
Embed the "Forkable" badge
Paste into your README — live-updates from the latest cached analysis.
[](https://repopilot.app/r/newbee-ltd/newbee-mall)Paste at the top of your README.md — renders inline like a shields.io badge.
▸Preview social card
This card auto-renders when someone shares https://repopilot.app/r/newbee-ltd/newbee-mall on X, Slack, or LinkedIn.
Ask AI about newbee-ltd/newbee-mall
Grounded in the actual source code. Pick a starter question or write your own.
Onboarding doc
Onboarding: newbee-ltd/newbee-mall
Generated by RepoPilot · 2026-06-24 · Source
🎯Verdict
WAIT — Slowing — last commit 6mo ago
- Last commit 6mo ago
- 5 active contributors
- GPL-3.0 licensed
- Tests present
- ⚠ Slowing — last commit 6mo ago
- ⚠ Concentrated ownership — top contributor handles 50% of recent commits
- ⚠ GPL-3.0 is copyleft — check downstream compatibility
- ⚠ No CI workflows detected
<sub>Computed from maintenance signals — commit recency, contributor breadth, bus factor, license, CI, tests</sub>
⚡TL;DR
newbee-mall is a complete, production-grade e-commerce platform built on Spring Boot 2.7.5 with Thymeleaf, MyBatis, and MySQL. It provides both a customer-facing storefront (homepage, product catalog, shopping cart, order management) and a full admin dashboard (product management, order processing, carousel management, user administration) — a fully functional online mall system designed for learning and enterprise deployment. Monolithic Spring Boot application with layered MVC structure: src/main/java/ltd/newbee/mall/controller/ separates admin, mall (customer), and common endpoints; service, dao, entity layers follow standard enterprise patterns. VOs in controller/vo/ decouple DTOs from domain models. Configuration centralized in src/main/java/ltd/newbee/mall/config/ and enums in src/main/java/ltd/newbee/mall/common/.
👥Who it's for
Java developers (junior to mid-level) learning Spring Boot fundamentals and enterprise architecture patterns; small-to-medium e-commerce businesses needing an out-of-the-box mall platform; job applicants building portfolio projects with real-world complexity.
🌱Maturity & risk
Actively maintained since 2019 with a full feature set and clean codebase suitable for production. The project includes multiple Spring Boot version branches (2.3.7, 2.6.x, 2.7.5, 3.x), indicating sustained evolution. However, test coverage is not evident in the file structure, and the CI/CD setup is not detailed in the provided data.
Single-maintainer risk is moderate—the author actively maintains multiple variants (basic, plus, cloud, Go versions), but responsibility is centralized. Dependency count appears controlled (Spring Boot parent handles transitive deps), though no security audit data is visible. The monolithic architecture may require refactoring for microservices migration, but Spring Cloud variants exist as companion projects.
Active areas of work
The main branch runs Spring Boot 2.7.5 (current stable). The README indicates active companion projects (newbee-mall-plus adds coupons/flash sales/payment; newbee-mall-cloud provides microservices variant). No open PR or issue backlog is visible in provided data, but the project accepts feature requests and bug reports.
🚀Get running
git clone https://github.com/newbee-ltd/newbee-mall.git
cd newbee-mall
mvn clean install
mvn spring-boot:run
The application starts on the default Spring Boot port (8080). See docs/DEVELOPMENT.md for database setup and configuration details.
Daily commands: After cloning and installing dependencies:
mvn spring-boot:run
Application listens on http://localhost:8080. Database connection configured via application.properties (not shown in file list; check src/main/resources/). Admin UI accessible post-login; storefront at root path.
🗺️Map of the codebase
src/main/java/ltd/newbee/mall/NewBeeMallApplication.java— Spring Boot application entry point; essential for understanding the application lifecycle and startup configuration.src/main/java/ltd/newbee/mall/config/NeeBeeMallWebMvcConfigurer.java— Web MVC configuration including interceptor registration; critical for understanding request interception and routing setup.src/main/java/ltd/newbee/mall/service/NewBeeMallOrderService.java— Core order service interface; defines contract for order processing, the most complex business logic in an e-commerce system.src/main/java/ltd/newbee/mall/dao/NewBeeMallOrderMapper.java— Order data access layer; critical for understanding persistence and SQL mapping conventions used throughout the codebase.src/main/java/ltd/newbee/mall/controller/common/NewBeeMallExceptionHandler.java— Global exception handler; essential for understanding error handling patterns and API response contracts.src/main/java/ltd/newbee/mall/util/Result.java— Standard API response wrapper; foundational utility used across all controllers for consistent response formatting.pom.xml— Maven configuration defining all dependencies (Spring Boot 2.7.5, MyBatis, Thymeleaf); required for build and dependency understanding.
🛠️How to make changes
Add a New Admin Management Feature (e.g., Category Management)
- Create entity model with JPA annotations in src/main/java/ltd/newbee/mall/entity/ (
src/main/java/ltd/newbee/mall/entity/GoodsCategory.java) - Create MyBatis mapper interface extending BaseMapper in src/main/java/ltd/newbee/mall/dao/ (
src/main/java/ltd/newbee/mall/dao/GoodsCategoryMapper.java) - Create service interface defining business logic contract in src/main/java/ltd/newbee/mall/service/ (
src/main/java/ltd/newbee/mall/service/NewBeeMallCategoryService.java) - Implement service with @Service annotation in src/main/java/ltd/newbee/mall/service/impl/ (
src/main/java/ltd/newbee/mall/service/impl/NewBeeMallCategoryServiceImpl.java) - Create admin controller with @RequestMapping("/admin/category") in src/main/java/ltd/newbee/mall/controller/admin/ (
src/main/java/ltd/newbee/mall/controller/admin/NewBeeMallGoodsCategoryController.java) - Return wrapped responses using ResultGenerator.genSuccessResult() or genFailResult() (
src/main/java/ltd/newbee/mall/util/ResultGenerator.java) - Register interceptor in WebMvcConfigurer if admin authentication needed (
src/main/java/ltd/newbee/mall/config/NeeBeeMallWebMvcConfigurer.java)
Add a New Customer-Facing Page with Product Display
- Create service interface for data retrieval in src/main/java/ltd/newbee/mall/service/ (
src/main/java/ltd/newbee/mall/service/NewBeeMallGoodsService.java) - Implement service querying goods from NewBeeMallGoodsMapper with pagination (
src/main/java/ltd/newbee/mall/service/impl/NewBeeMallGoodsServiceImpl.java) - Create controller method in src/main/java/ltd/newbee/mall/controller/mall/ returning ModelAndView (
src/main/java/ltd/newbee/mall/controller/mall/GoodsController.java) - Use PageQueryUtil.parsePageQueryMap() to handle pagination parameters from request (
src/main/java/ltd/newbee/mall/util/PageQueryUtil.java) - Create VO (View Object) class in src/main/java/ltd/newbee/mall/controller/vo/ to transform entities for UI (
src/main/java/ltd/newbee/mall/controller/vo/NewBeeMallSearchGoodsVO.java) - Create Thymeleaf template in src/main/resources/templates/ with [[${model}]] syntax (
src/main/resources)
Handle a New Order Processing Step (e.g., Add Order Cancellation)
- Add new status enum value to NewBeeMallOrderStatusEnum (
src/main/java/ltd/newbee/mall/common/NewBeeMallOrderStatusEnum.java) - Add service method signature in NewBeeMallOrderService interface (
src/main/java/ltd/newbee/mall/service/NewBeeMallOrderService.java) - Implement method in NewBeeMallOrderServiceImpl with validation logic (stock restore, status update) (
src/main/java/ltd/newbee/mall/service/impl/NewBeeMallOrderServiceImpl.java) - Add MyBatis query method in NewBeeMallOrderMapper for updating order status (
src/main/java/ltd/newbee/mall/dao/NewBeeMallOrderMapper.java) - Create controller endpoint in OrderController returning ResultGenerator response (
src/main/java/ltd/newbee/mall/controller/mall)
🪤Traps & gotchas
Database setup: The codebase assumes MySQL is configured (connection details in application.properties, not visible in file list — must check src/main/resources/). Session storage: Spring Session dependency suggests session may be persisted; local development may need Redis or JDBC session store configured. Thymeleaf template paths: Controller returns logical view names that map to src/main/resources/templates/ directory structure — mismatch causes 404 errors silently in Thymeleaf. Enum string matching: ServiceResultEnum and other enums use string codes (not ordinals) for API responses; changing enum values breaks clients. MyBatis mapper XML location: Mapper XMLs must be in src/main/resources/mapper/ and referenced in pom.xml or application properties. Upload directory: UploadController.java handles file uploads — upload directory path must be writable and configured in properties.
💡Concepts to learn
- VO (Value Object) / DTO (Data Transfer Object) Pattern — All API responses use VOs (e.g., NewBeeMallOrderDetailVO, NewBeeMallSearchGoodsVO) to decouple internal entities from client contracts — essential for API versioning and security
- Service Result Enum Pattern — ServiceResultEnum centralizes all API response codes and messages; every endpoint returns a result with a code from this enum, providing consistent error handling across the entire application
- Global Exception Handler (ControllerAdvice) — NewBeeMallExceptionHandler.java catches custom exceptions globally and formats them into client responses — prevents response inconsistency and reduces boilerplate in every controller
- MyBatis ORM Mapping — The project uses MyBatis 2.2.2 for SQL-centric ORM — SQL is explicit and optimizable, unlike JPA, making it suitable for complex queries in e-commerce systems
- Server-Side Rendering with Thymeleaf — Templates are rendered on the server (not an SPA) — important for SEO, simpler deployment, and learning traditional web architectures before transitioning to frontend frameworks
- Spring Session Management — The dependency on spring-session-core suggests session state is managed centrally (likely JDBC or Redis backend), enabling horizontal scaling and persistent login state across server restarts
- Enumeration-Based Type Safety for Business Logic — Extensive use of enums (NewBeeMallOrderStatusEnum, PayStatusEnum, IndexConfigTypeEnum, NewBeeMallCategoryLevelEnum) makes the code type-safe and prevents invalid state transitions
🔗Related repos
newbee-ltd/newbee-mall-plus— Official upgrade variant adding coupons, flash sales, payment integration, and Redis caching — natural next step after learning the basic mallnewbee-ltd/newbee-mall-cloud— Microservices evolution using Spring Cloud Alibaba, Nacos, Seata, and Gateway — demonstrates scalability patterns for the monolithic newbee-mallnewbee-ltd/newbee-mall-vue-app— Official Vue 3 + Element-Plus frontend for newbee-mall backend — shows how to build decoupled SPA against this REST APImacrozheng/mall— Similar e-commerce learning project in the Java ecosystem with comparable Spring Boot architecture and admin/storefront separationitheima-java-learn/heima-leading-store— Enterprise e-commerce reference implementation in Spring Boot — comparable architecture, useful for code pattern comparison
🪄PR ideas
To work on one of these in Claude Code or Cursor, paste:
Implement the "<title>" PR idea from CLAUDE.md, working through the checklist as the task list.
Add comprehensive unit tests for ShoppingCartController and ShoppingCartService
The shopping cart is a critical business flow in an e-commerce system. Currently, there are no visible test files in the repository structure for src/main/java/ltd/newbee/mall/controller/mall/ShoppingCartController.java or its service layer. Adding unit tests would improve reliability for core operations like adding items, removing items, and calculating totals before they reach production.
- [ ] Create src/test/java/ltd/newbee/mall/controller/mall/ShoppingCartControllerTest.java with tests for add, update, delete operations
- [ ] Create src/test/java/ltd/newbee/mall/service/ShoppingCartServiceTest.java to mock NewBeeMallShoppingCartItemMapper and test business logic
- [ ] Add test cases for edge cases: duplicate items, quantity validation, inventory checks, and price calculations
- [ ] Ensure test coverage for NewBeeMallShoppingCartItemVO data transformation
Add GitHub Actions CI workflow for automated testing and build validation
With a complex e-commerce system supporting multiple versions (Spring Boot, microservices, Go), there is no visible GitHub Actions workflow file. Adding automated CI would catch integration issues early, validate the build across Java versions, and ensure quality before merges. This is especially important given the multiple Spring Boot version branches mentioned in the README.
- [ ] Create .github/workflows/maven-build.yml that runs 'mvn clean install' on push and pull requests
- [ ] Add matrix strategy to test against Java 8 and Java 11 (matching java.version property in pom.xml)
- [ ] Include a step to run 'mvn test' to execute any existing test suite
- [ ] Add code coverage reporting step using jacoco maven plugin if tests are added
Refactor NewBeeMallExceptionHandler to add specific exception handling for OrderController and PaymentFlow
The src/main/java/ltd/newbee/mall/controller/common/NewBeeMallExceptionHandler.java currently exists as a global exception handler, but the OrderController and payment-related logic likely need specific, domain-specific error responses. Adding tailored exception handlers for order validation failures, payment status mismatches (PayStatusEnum), and order status transitions (NewBeeMallOrderStatusEnum) would improve API response clarity and debugging for downstream clients.
- [ ] Examine src/main/java/ltd/newbee/mall/controller/mall/OrderController.java to identify payment and order-specific exceptions
- [ ] Create custom exceptions: OrderProcessingException, PaymentStatusException, InventoryException in src/main/java/ltd/newbee/mall/common/
- [ ] Extend NewBeeMallExceptionHandler with @ExceptionHandler methods for each custom exception that return appropriate HTTP status codes and error messages referencing PayStatusEnum and NewBeeMallOrderStatusEnum values
- [ ] Update OrderController to throw these specific exceptions instead of generic ones for better error tracking
🌿Good first issues
- Add integration tests for
NewBeeMallOrderController.java— order creation, payment status updates, and order listing. Currently no test files visible in the repo structure. - Document the database schema and initialization script. The README mentions 'MySQL' but no
.sqlfile is listed; creatingdocs/schema.sqlwith CREATE TABLE statements for all entities would help new developers. - Improve error logging in
NewBeeMallExceptionHandler.java— currently catches NewBeeMallException but generic exceptions may not be logged; add SLF4J logging with stack traces for operational debugging.
⭐Top contributors
Click to expand
Top contributors
- @ZHENFENG13 — 50 commits
- @newbee-mall — 47 commits
- @claude — 1 commits
- @forward-forever — 1 commits
- @xuxinkai-cn — 1 commits
📝Recent commits
Click to expand
Recent commits
a069069— Merge pull request #102 from Peterpanpan/claude/generate-qa-content-011CUPXvnG58EdaofMXKSkdK (ZHENFENG13)f5e3ab7— Merge pull request #96 from forward-forever/dev (ZHENFENG13)c177810— 添加项目文档 (claude)86c43fc— refactor(admin): 优化商品分类查询逻辑 (forward-forever)613a662— :lipstick: 订单列表页面显示内容修改 (ZHENFENG13)7a9fc20— :arrow_up: 版本升级 (ZHENFENG13)1d9b9ff— :bug: wangEditor 全屏状态遮盖问题处理 (ZHENFENG13)7db53ac— :fire: remove useless code (ZHENFENG13)d407128— :tada: spring boot 3.x 版本 (ZHENFENG13)aeb43d7— :zap: 代码优化 (ZHENFENG13)
🔒Security observations
- High · Outdated Spring Boot Version with Known Vulnerabilities —
pom.xml (parent: spring-boot-starter-parent:2.7.5). The project uses Spring Boot 2.7.5, which is beyond its end-of-life date (November 2023). This version contains multiple known security vulnerabilities including CVE-2023-34053 (Spring Security), CVE-2023-38545 (curl dependency), and others. Spring Boot 2.7.x is no longer receiving security patches. Fix: Upgrade to Spring Boot 3.2.x or latest 3.x LTS version which receives regular security updates. Review and test compatibility with current codebase. - High · Incomplete Dependency Analysis - Truncated POM File —
pom.xml (lines 40+). The provided pom.xml file is truncated and incomplete. Critical dependency information is missing, making it impossible to perform full vulnerability assessment. Dependencies like spring-session, database drivers, and other libraries cannot be verified for known vulnerabilities. Fix: Provide complete pom.xml file. Run 'mvn dependency-check:check' or use OWASP Dependency-Check plugin to identify vulnerable dependencies. Consider using tools like Snyk for continuous vulnerability monitoring. - High · Missing Authentication & Authorization on Admin Controllers —
src/main/java/ltd/newbee/mall/controller/admin/. Admin controllers (AdminController.java, NewBeeMallGoodsController.java, etc.) are present but no explicit security configuration is visible. The interceptor 'AdminLoginInterceptor.java' exists but without seeing its implementation, there's risk of inadequate access control enforcement, potentially allowing unauthorized admin operations. Fix: Ensure Spring Security is properly configured with role-based access control (RBAC). Implement @PreAuthorize/@Secured annotations on admin endpoints. Verify AdminLoginInterceptor properly validates admin sessions. Use method-level security annotations. - High · File Upload Vulnerability Risk —
src/main/java/ltd/newbee/mall/controller/common/UploadController.java. UploadController.java exists in the codebase but implementation details are not visible. File upload functionality is commonly vulnerable to arbitrary file upload attacks, path traversal, and remote code execution if not properly validated. Fix: Implement strict file upload validation: whitelist allowed extensions, validate MIME types on server-side, store uploads outside web root, rename files, implement file size limits, and use virus scanning. - Medium · Potential SQL Injection in Mapper Classes —
src/main/java/ltd/newbee/mall/dao/ (all Mapper classes). Multiple Mapper classes (AdminUserMapper, GoodsCategoryMapper, NewBeeMallOrderMapper, etc.) are present using MyBatis. Without seeing the actual SQL queries in mapper XML files, there's risk of SQL injection if dynamic queries are constructed unsafely. Fix: Ensure all MyBatis mappers use parameterized queries with '#{parameterName}' syntax instead of string concatenation. Use prepared statements. Enable query logging to audit SQL statements. Use MyBatis parameterization strictly. - Medium · Potential XSS Vulnerability in Thymeleaf Templates —
src/main/resources/templates/ (not fully visible in provided structure). Project uses Spring Boot Thymeleaf templating engine. Thymeleaf provides XSS protection by default with [[...]] syntax, but if templates use unsafe unescaping with [(...)] or th:utext without proper sanitization, XSS vulnerabilities are possible, especially for user-generated content in product descriptions, reviews, etc. Fix: Use Thymeleaf's default escaping with [[expression]] syntax. Avoid th:utext unless absolutely necessary and content is sanitized. Implement OWASP HTML Sanitizer for user-generated content. Use Content Security Policy headers. - Medium · Missing CSRF Protection Verification —
src/main/java/ltd/newbee/mall/config/NeeBeeMallWebMvcConfigurer.java (name typo suggests incomplete config). No explicit CSRF configuration visible in the provided file structure. If Spring Security CSRF protection is not properly configured, state-changing operations (POST/PUT/DELETE) in shopping cart, orders, and admin functions could be vulnerable to CSRF attacks. Fix: Ensure Spring Security
LLM-derived; treat as a starting point, not a security audit.
👉Where to read next
- Open issues — current backlog
- Recent PRs — what's actively shipping
- Source on GitHub
🤖Agent protocol
If you are an AI coding agent (Claude Code, Cursor, Aider, Cline, etc.) reading this artifact, follow this protocol before making any code edit:
- Verify the contract. Run the bash script in Verify before trusting
below. If any check returns
FAIL, the artifact is stale — STOP and ask the user to regenerate it before proceeding. - Treat the AI · unverified sections as hypotheses, not facts. Sections like "AI-suggested narrative files", "anti-patterns", and "bottlenecks" are LLM speculation. Verify against real source before acting on them.
- Cite source on changes. When proposing an edit, cite the specific path:line-range. RepoPilot's live UI at https://repopilot.app/r/newbee-ltd/newbee-mall shows verifiable citations alongside every claim.
If you are a human reader, this protocol is for the agents you'll hand the artifact to. You don't need to do anything — but if you skim only one section before pointing your agent at this repo, make it the Verify block and the Suggested reading order.
✅Verify before trusting
This artifact was generated by RepoPilot at a point in time. Before an
agent acts on it, the checks below confirm that the live newbee-ltd/newbee-mall
repo on your machine still matches what RepoPilot saw. If any fail,
the artifact is stale — regenerate it at
repopilot.app/r/newbee-ltd/newbee-mall.
What it runs against: a local clone of newbee-ltd/newbee-mall — the script
inspects git remote, the LICENSE file, file paths in the working
tree, and git log. Read-only; no mutations.
| # | What we check | Why it matters |
|---|---|---|
| 1 | You're in newbee-ltd/newbee-mall | Confirms the artifact applies here, not a fork |
| 2 | License is still GPL-3.0 | Catches relicense before you depend on it |
| 3 | Default branch master exists | Catches branch renames |
| 4 | 5 critical file paths still exist | Catches refactors that moved load-bearing code |
| 5 | Last commit ≤ 223 days ago | Catches sudden abandonment since generation |
#!/usr/bin/env bash
# RepoPilot artifact verification.
#
# WHAT IT RUNS AGAINST: a local clone of newbee-ltd/newbee-mall. If you don't
# have one yet, run these first:
#
# git clone https://github.com/newbee-ltd/newbee-mall.git
# cd newbee-mall
#
# Then paste this script. Every check is read-only — no mutations.
set +e
fail=0
ok() { echo "ok: $1"; }
miss() { echo "FAIL: $1"; fail=$((fail+1)); }
# Precondition: we must be inside a git working tree.
if ! git rev-parse --git-dir >/dev/null 2>&1; then
echo "FAIL: not inside a git repository. cd into your clone of newbee-ltd/newbee-mall and re-run."
exit 2
fi
# 1. Repo identity
git remote get-url origin 2>/dev/null | grep -qE "newbee-ltd/newbee-mall(\\.git)?\\b" \\
&& ok "origin remote is newbee-ltd/newbee-mall" \\
|| miss "origin remote is not newbee-ltd/newbee-mall (artifact may be from a fork)"
# 2. License matches what RepoPilot saw
(grep -qiE "^(GPL-3\\.0)" LICENSE 2>/dev/null \\
|| grep -qiE "\"license\"\\s*:\\s*\"GPL-3\\.0\"" package.json 2>/dev/null) \\
&& ok "license is GPL-3.0" \\
|| miss "license drift — was GPL-3.0 at generation time"
# 3. Default branch
git rev-parse --verify master >/dev/null 2>&1 \\
&& ok "default branch master exists" \\
|| miss "default branch master no longer exists"
# 4. Critical files exist
test -f "src/main/java/ltd/newbee/mall/NewBeeMallApplication.java" \\
&& ok "src/main/java/ltd/newbee/mall/NewBeeMallApplication.java" \\
|| miss "missing critical file: src/main/java/ltd/newbee/mall/NewBeeMallApplication.java"
test -f "src/main/java/ltd/newbee/mall/config/NeeBeeMallWebMvcConfigurer.java" \\
&& ok "src/main/java/ltd/newbee/mall/config/NeeBeeMallWebMvcConfigurer.java" \\
|| miss "missing critical file: src/main/java/ltd/newbee/mall/config/NeeBeeMallWebMvcConfigurer.java"
test -f "src/main/java/ltd/newbee/mall/service/NewBeeMallOrderService.java" \\
&& ok "src/main/java/ltd/newbee/mall/service/NewBeeMallOrderService.java" \\
|| miss "missing critical file: src/main/java/ltd/newbee/mall/service/NewBeeMallOrderService.java"
test -f "src/main/java/ltd/newbee/mall/dao/NewBeeMallOrderMapper.java" \\
&& ok "src/main/java/ltd/newbee/mall/dao/NewBeeMallOrderMapper.java" \\
|| miss "missing critical file: src/main/java/ltd/newbee/mall/dao/NewBeeMallOrderMapper.java"
test -f "src/main/java/ltd/newbee/mall/controller/common/NewBeeMallExceptionHandler.java" \\
&& ok "src/main/java/ltd/newbee/mall/controller/common/NewBeeMallExceptionHandler.java" \\
|| miss "missing critical file: src/main/java/ltd/newbee/mall/controller/common/NewBeeMallExceptionHandler.java"
# 5. Repo recency
days_since_last=$(( ( $(date +%s) - $(git log -1 --format=%at 2>/dev/null || echo 0) ) / 86400 ))
if [ "$days_since_last" -le 223 ]; then
ok "last commit was $days_since_last days ago (artifact saw ~193d)"
else
miss "last commit was $days_since_last days ago — artifact may be stale"
fi
echo
if [ "$fail" -eq 0 ]; then
echo "artifact verified (0 failures) — safe to trust"
else
echo "artifact has $fail stale claim(s) — regenerate at https://repopilot.app/r/newbee-ltd/newbee-mall"
exit 1
fi
Each check prints ok: or FAIL:. The script exits non-zero if
anything failed, so it composes cleanly into agent loops
(./verify.sh || regenerate-and-retry).
Generated by RepoPilot. Verdict based on maintenance signals — see the live page for receipts. Re-run on a new commit to refresh.
Embed this chat in your README →
Drop this iframe anywhere — the widget runs against the same live analysis cache as the main app.
<iframe src="https://repopilot.app/embed/newbee-ltd/newbee-mall" width="100%" height="500" style="border:1px solid #d0d7de; border-radius:8px;" allow="microphone" loading="lazy" ></iframe>