mirror of
https://gitee.com/likeadmin/likeadmin_java.git
synced 2026-05-07 15:46:09 +08:00
6.0 KiB
6.0 KiB
LikeAdmin Java - Project Context & AI Coding Guidelines
This file provides comprehensive context and guidelines for AI coding assistants working on the LikeAdmin Java project.
1. Project Overview
LikeAdmin Java is a general-purpose management system with a separated frontend and backend.
- Backend: Java (Spring Boot)
- Admin Frontend: Vue 3 + TypeScript + Element Plus
- User Frontend (Mobile/PC): UniApp (Vue 3)
2. Technology Stack
2.1 Backend (server/)
- Language: Java 8 (JDK 1.8)
- Framework: Spring Boot 2.7.5
- Database: MySQL 5.7+
- ORM: MyBatis Plus 3.5.2 + MyBatis Plus Join 1.2.4
- Cache: Redis
- Auth: Sa-Token 1.32.0 (Role-based access control)
- Tools: Lombok, FastJson2, Quartz (Scheduling), EasyExcel
- Build Tool: Maven
2.2 Admin Frontend (admin/)
- Framework: Vue 3 (Composition API)
- Build Tool: Vite 3.2.10
- Language: TypeScript ~4.7.4
- UI Component Library: Element Plus 2.2.27
- State Management: Pinia 2.2.2
- HTTP Client: Axios 0.27.2
- CSS Utility: Tailwind CSS 3.4.10
- Router: Vue Router 4.4.3
2.3 UniApp Frontend (uniapp/)
- Framework: UniApp (Vue 3)
- Platform Support: H5, WeChat Mini Program, App (iOS/Android)
- State Management: Pinia 2.0.20
- CSS Utility: Tailwind CSS (via
weapp-tailwindcss-webpack-plugin) - Router: uniapp-router-next
- UI Components: z-paging, native uni-ui
3. Directory Structure
/
├── server/ # Java Backend Root
│ ├── like-admin/ # Admin API Module (Controllers, Services)
│ │ ├── src/main/java/com/mdd/admin/
│ │ │ ├── controller/ # API Endpoints
│ │ │ ├── service/ # Business Logic
│ │ │ └── validate/ # Request DTOs & Validation
│ ├── like-front/ # Front API Module (User/Mobile Entry)
│ ├── like-common/ # Shared Module (Entities, Mappers, Utils)
│ │ ├── src/main/java/com/mdd/common/
│ │ │ ├── core/ # Core classes (AjaxResult, etc.)
│ │ │ ├── entity/ # Database Entities
│ │ │ ├── mapper/ # MyBatis Mappers
│ │ │ └── util/ # Utility classes
│ ├── like-generator/ # Code Generator Module
│ └── pom.xml # Root Maven POM
│
├── admin/ # Admin Management Frontend (Vue3 + TS)
│ ├── src/
│ │ ├── api/ # API request definitions
│ │ ├── assets/ # Static assets
│ │ ├── components/ # Global components
│ │ ├── layout/ # Layout components
│ │ ├── router/ # Routing configuration
│ │ ├── stores/ # Pinia stores
│ │ ├── views/ # Page views
│ │ └── App.vue # Root Component
│ └── vite.config.ts # Vite Configuration
│
└── uniapp/ # Mobile/User Frontend (UniApp)
├── src/
│ ├── api/ # API requests
│ ├── pages/ # Application pages
│ ├── static/ # Static files
│ └── App.vue # Root Component
└── pages.json # UniApp Pages Configuration
4. Development Guidelines
4.1 Backend (Java)
- Module Separation:
- Controllers & Services go in
like-admin(for admin features) orlike-front(for user features). - Entities, Mappers, & Utils go in
like-common.
- Controllers & Services go in
- Controller:
- Located in
controllerpackage. - Should return
AjaxResult<T>orAjaxResult<Map<String, Object>>. - Use Swagger/Knife4j annotations for documentation.
- Located in
- Service:
- Interface in
service, implementation inservice.impl. - Business logic resides here.
- Interface in
- Entities:
- Located in
like-common/src/main/java/.../entity. - Use Lombok
@Data. - Use MyBatis Plus annotations (
@TableName,@TableId).
- Located in
- Response Format:
- Use
com.mdd.common.core.AjaxResultfor unified responses. - Success:
AjaxResult.success() - Failure:
AjaxResult.failed()
- Use
- Security:
- Use
Sa-Tokenfor authentication. @SaCheckLogin: Require login.@SaCheckPermission: Require permission.
- Use
- Configuration:
application.ymlandapplication-dev.ymlinsrc/main/resources.
4.2 Admin Frontend (Vue3)
- API Calls:
- Define API functions in
src/api/. - Use
request.get,request.postfromutils/request.
- Define API functions in
- State:
- Use Pinia stores in
src/stores/.
- Use Pinia stores in
- Styling:
- Use Tailwind CSS for utility classes.
- SCSS for custom component styles.
- Components:
- Prefer
script setupsyntax.
- Prefer
4.3 UniApp Frontend
- Pages:
- Register new pages in
pages.json.
- Register new pages in
- Networking:
- Use
utils/requestfor API calls. - Base URL configured in
.envfiles.
- Use
- Multi-platform:
- Use conditional compilation (
#ifdef MP-WEIXIN, etc.) if needed.
- Use conditional compilation (
5. Deployment Info
- Server Ports:
- Admin/Backend: Typically 8082 (or configured in yml)
- Front/Mobile API: Typically 8083
- Nginx:
- Requires reverse proxy configuration for
/api/to backend ports. - Separate domains/subdomains recommended for Admin and H5.
- Requires reverse proxy configuration for
6. Common Tasks & Commands
- Backend Run:
mvn spring-boot:run(in sub-modules) or runLikeAdminApplicationclass. - Admin Dev:
npm run dev(inadmin/) - Admin Build:
npm run build - UniApp Dev:
npm run dev:h5ornpm run dev:mp-weixin(inuniapp/)
7. AI Coding Rules
- Context Awareness: Always check which module (
server,admin,uniapp) you are working in. - Consistency: Follow existing naming conventions (camelCase for Java/JS, snake_case for DB).
- Safety: Do not hardcode credentials. Use configuration files.
- Verification: When modifying backend, ensure
like-commonchanges are reflected in dependent modules.
Generated by Trae AI to assist in development.