JAVA肌肉便利店二手交易平台uniapp小程序源码代码片段
项目概述
JAVA肌肉便利店二手交易平台uniapp小程序源码是一个基于Java后端和uniapp前端开发的二手交易平台。该平台支持用户发布、浏览、购买二手商品,具备用户管理、商品管理、订单管理等功能。以下为代码片段解析和功能实现说明。
后端Java代码结构
后端采用Spring Boot框架,主要包含控制器、服务层、数据访问层和实体类。
实体类设计
商品实体类Product定义如下:
@Entity @Table(name = "product") public class Product { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; private String name; private String description; private Double price; @ManyToOne private User seller; // 其他字段及getter/setter省略 }用户实体类User定义如下:
@Entity @Table(name = "user") public class User { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; private String username; private String password; private String phone; // 其他字段及getter/setter省略 }数据访问层
商品数据访问接口ProductRepository:
public interface ProductRepository extends JpaRepository<Product, Long> { List<Product> findBySeller(User seller); List<Product> findByNameContaining(String keyword); }用户数据访问接口UserRepository:
public interface UserRepository extends JpaRepository<User, Long> { User findByUsername(String username); }服务层
商品服务类ProductService:
@Service public class ProductService { @Autowired private ProductRepository productRepository; public List<Product> getAllProducts() { return productRepository.findAll(); } public Product saveProduct(Product product) { return productRepository.save(product); } }用户服务类UserService:
@Service public class UserService { @Autowired private UserRepository userRepository; public User registerUser(User user) { return userRepository.save(user); } }控制器层
商品控制器ProductController:
@RestController @RequestMapping("/api/products") public class ProductController { @Autowired private ProductService productService; @GetMapping public List<Product> getProducts() { return productService.getAllProducts(); } @PostMapping public Product addProduct(@RequestBody Product product) { return productService.saveProduct(product); } }用户控制器UserController:
@RestController @RequestMapping("/api/users") public class UserController { @Autowired private UserService userService; @PostMapping("/register") public User register(@RequestBody User user) { return userService.registerUser(user); } }前端uniapp代码结构
前端采用uniapp框架,主要包含页面、组件和API调用模块。
页面设计
首页index.vue:
<template> <view> <product-list :products="products" /> </view> </template> <script> import ProductList from '@/components/ProductList.vue'; export default { components: { ProductList }, data() { return { products: [] }; }, onLoad() { this.fetchProducts(); }, methods: { fetchProducts() { uni.request({ url: 'http://localhost:8080/api/products', success: (res) => { this.products = res.data; } }); } } }; </script>商品详情页product-detail.vue:
<template> <view> <product-detail :product="product" /> </view> </template> <script> import ProductDetail from '@/components/ProductDetail.vue'; export default { components: { ProductDetail }, data() { return { product: {} }; }, onLoad(options) { this.fetchProduct(options.id); }, methods: { fetchProduct(id) { uni.request({ url: `http://localhost:8080/api/products/${id}`, success: (res) => { this.product = res.data; } }); } } }; </script>组件设计
商品列表组件ProductList.vue:
<template> <view> <view v-for="product in products" :key="product.id"> <product-card :product="product" /> </view> </view> </template> <script> import ProductCard from '@/components/ProductCard.vue'; export default { components: { ProductCard }, props: ['products'] }; </script>商品卡片组件ProductCard.vue:
<template> <view @click="navigateToDetail"> <text>{{ product.name }}</text> <text>{{ product.price }}</text> </view> </template> <script> export default { props: ['product'], methods: { navigateToDetail() { uni.navigateTo({ url: `/pages/product-detail?id=${this.product.id}` }); } } }; </script>API调用模块
封装API请求模块api.js:
const baseUrl = 'http://localhost:8080/api'; export const getProducts = () => { return uni.request({ url: `${baseUrl}/products` }); }; export const getProduct = (id) => { return uni.request({ url: `${baseUrl}/products/${id}` }); };数据库设计
采用MySQL数据库,主要表结构如下:
用户表user
CREATE TABLE user ( id BIGINT PRIMARY KEY AUTO_INCREMENT, username VARCHAR(50) NOT NULL, password VARCHAR(100) NOT NULL, phone VARCHAR(20) );商品表product
CREATE TABLE product ( id BIGINT PRIMARY KEY AUTO_INCREMENT, name VARCHAR(100) NOT NULL, description TEXT, price DECIMAL(10,2) NOT NULL, seller_id BIGINT, FOREIGN KEY (seller_id) REFERENCES user(id) );功能实现说明
用户注册
用户通过填写用户名、密码和手机号完成注册,后端对密码进行加密存储。
商品发布
用户登录后可以发布商品,填写商品名称、描述和价格,后端保存到数据库。
商品搜索
首页提供搜索框,用户输入关键词后,后端返回匹配的商品列表。
订单管理
用户下单后生成订单记录,后端更新商品状态为“已售出”。
部署说明
后端部署
- 安装JDK和Maven。
- 打包项目:
mvn package。 - 运行JAR包:
java -jar target/your-project.jar。
前端部署
- 安装HBuilderX。
- 导入uniapp项目。
- 运行到微信开发者工具。
注意事项
- 后端需配置数据库连接信息。
- 前端需根据实际后端地址修改API请求URL。
- 小程序上线前需配置合法域名。
