💖💖作者:计算机毕业设计江挽 💙💙个人简介:曾长期从事计算机专业培训教学,本人也热爱上课教学,语言擅长Java、微信小程序、Python、Golang、安卓Android等,开发项目包括大数据、深度学习、网站、小程序、安卓、算法。平常会做一些项目定制化开发、代码讲解、答辩教学、文档编写、也懂一些降重方面的技巧。平常喜欢分享一些自己开发中遇到的问题的解决办法,也喜欢交流技术,大家有技术代码这一块的问题可以问我! 💛💛想说的话:感谢大家的关注与支持! 💜💜 网站实战项目 安卓/小程序实战项目 大数据实战项目 深度学习实战项目
社区生鲜水果商城小程序介绍
《社区生鲜水果商城小程序》是一个专为社区居民提供便捷生鲜水果购买服务的综合性电商平台系统,采用现代化的技术架构,支持Java+Spring Boot和Python+Django两套完整的后端开发方案,前端基于uni-app框架开发,能够同时支持微信小程序和安卓应用,数据存储采用MySQL数据库,整体架构采用C/S+B/S混合模式,为用户提供多端统一的购物体验。系统功能设计完善,包含直观友好的首页展示模块,用于商品推荐和活动展示;用户管理模块,实现用户注册、登录、个人信息维护等基础功能;蔬菜信息管理模块,提供详细的商品信息展示、库存管理和价格更新;蔬果类型分类模块,方便用户快速查找所需商品;系统管理模块,为管理员提供后台数据管理和系统配置功能;订单管理模块,完整支持下单、支付、配送状态跟踪等电商核心流程;我的信息模块,让用户能够查看个人订单历史、收货地址管理等个性化服务。整个系统设计充分考虑了社区生鲜购物的特点,注重用户体验和操作便捷性,通过技术手段解决了传统生鲜购买中的时间成本和便民服务问题,为社区居民打造了一个高效、便捷的数字化购物平台。
社区生鲜水果商城小程序演示视频
社区生鲜水果商城小程序演示图片
社区生鲜水果商城小程序代码展示
```java
// 用户登录验证核心处理函数
public Result userLogin(String username, String password) {
if (StringUtils.isEmpty(username) || StringUtils.isEmpty(password)) {
return Result.error("用户名或密码不能为空");
}
User user = userMapper.selectByUsername(username);
if (user == null) {
return Result.error("用户不存在");
}
if (!BCrypt.checkpw(password, user.getPassword())) {
return Result.error("密码错误");
}
if (user.getStatus() == 0) {
return Result.error("账户已被禁用");
}
user.setLastLoginTime(new Date());
userMapper.updateById(user);
String token = JwtUtil.generateToken(user.getId(), user.getUsername());
Map<String, Object> loginData = new HashMap<>();
loginData.put("token", token);
loginData.put("userInfo", user);
loginData.put("loginTime", System.currentTimeMillis());
redisTemplate.opsForValue().set("user_token:" + user.getId(), token, 7, TimeUnit.DAYS);
return Result.success("登录成功", loginData);
}
// 订单提交处理核心函数
public Result submitOrder(OrderDTO orderDTO, Integer userId) {
if (orderDTO.getCartItems() == null || orderDTO.getCartItems().isEmpty()) {
return Result.error("购物车为空,无法提交订单");
}
BigDecimal totalAmount = BigDecimal.ZERO;
List<OrderItem> orderItems = new ArrayList<>();
for (CartItemDTO cartItem : orderDTO.getCartItems()) {
Vegetable vegetable = vegetableMapper.selectById(cartItem.getVegetableId());
if (vegetable == null) {
return Result.error("商品不存在:" + cartItem.getVegetableId());
}
if (vegetable.getStock() < cartItem.getQuantity()) {
return Result.error("商品库存不足:" + vegetable.getName());
}
BigDecimal itemTotal = vegetable.getPrice().multiply(new BigDecimal(cartItem.getQuantity()));
totalAmount = totalAmount.add(itemTotal);
OrderItem orderItem = new OrderItem();
orderItem.setVegetableId(cartItem.getVegetableId());
orderItem.setVegetableName(vegetable.getName());
orderItem.setPrice(vegetable.getPrice());
orderItem.setQuantity(cartItem.getQuantity());
orderItem.setSubtotal(itemTotal);
orderItems.add(orderItem);
vegetable.setStock(vegetable.getStock() - cartItem.getQuantity());
vegetable.setSales(vegetable.getSales() + cartItem.getQuantity());
vegetableMapper.updateById(vegetable);
}
Order order = new Order();
order.setUserId(userId);
order.setOrderNo(generateOrderNo());
order.setTotalAmount(totalAmount);
order.setStatus(1);
order.setCreateTime(new Date());
order.setReceiverName(orderDTO.getReceiverName());
order.setReceiverPhone(orderDTO.getReceiverPhone());
order.setReceiverAddress(orderDTO.getReceiverAddress());
orderMapper.insert(order);
for (OrderItem item : orderItems) {
item.setOrderId(order.getId());
orderItemMapper.insert(item);
}
cartMapper.deleteByUserId(userId);
return Result.success("订单提交成功", order.getOrderNo());
}
// 蔬菜信息管理核心处理函数
public Result saveVegetableInfo(VegetableDTO vegetableDTO, Integer adminId) {
if (StringUtils.isEmpty(vegetableDTO.getName()) || vegetableDTO.getPrice() == null) {
return Result.error("商品名称和价格不能为空");
}
if (vegetableDTO.getPrice().compareTo(BigDecimal.ZERO) <= 0) {
return Result.error("商品价格必须大于0");
}
if (vegetableDTO.getStock() < 0) {
return Result.error("库存数量不能为负数");
}
VegetableType type = vegetableTypeMapper.selectById(vegetableDTO.getTypeId());
if (type == null) {
return Result.error("商品分类不存在");
}
Vegetable existVegetable = vegetableMapper.selectByName(vegetableDTO.getName());
if (existVegetable != null && !existVegetable.getId().equals(vegetableDTO.getId())) {
return Result.error("商品名称已存在");
}
Vegetable vegetable = new Vegetable();
BeanUtils.copyProperties(vegetableDTO, vegetable);
if (vegetableDTO.getId() == null) {
vegetable.setCreateTime(new Date());
vegetable.setCreateBy(adminId);
vegetable.setStatus(1);
vegetable.setSales(0);
vegetableMapper.insert(vegetable);
type.setProductCount(type.getProductCount() + 1);
} else {
vegetable.setUpdateTime(new Date());
vegetable.setUpdateBy(adminId);
vegetableMapper.updateById(vegetable);
}
vegetableTypeMapper.updateById(type);
if (vegetable.getStock() <= 10) {
notificationService.sendLowStockAlert(vegetable);
}
return Result.success("保存成功", vegetable);
}
社区生鲜水果商城小程序文档展示
💖💖作者:计算机毕业设计江挽 💙💙个人简介:曾长期从事计算机专业培训教学,本人也热爱上课教学,语言擅长Java、微信小程序、Python、Golang、安卓Android等,开发项目包括大数据、深度学习、网站、小程序、安卓、算法。平常会做一些项目定制化开发、代码讲解、答辩教学、文档编写、也懂一些降重方面的技巧。平常喜欢分享一些自己开发中遇到的问题的解决办法,也喜欢交流技术,大家有技术代码这一块的问题可以问我! 💛💛想说的话:感谢大家的关注与支持! 💜💜 网站实战项目 安卓/小程序实战项目 大数据实战项目 深度学习实战项目