大家可以帮忙点赞、收藏、关注、评论啦
精彩专栏推荐订阅:在 下方专栏
JAVA实战项目
文章目录
一、项目介绍
随着互联网的快速发展,电子商务已经成为了人们日常生活的重要组成部分。手机作为人们日常生活中的必需品,其市场规模日益扩大。传统的手机销售模式往往存在着库存积压、中间环节繁琐等问题,而网上手机销售商城系统的出现,有效地解决了这些问题,为手机销售带来了新的机遇。
二、功能介绍
管理员角色功能介绍:
用户管理:管理员可以添加、编辑和删除用户信息,可以设置用户的权限级别,可以设置用户的冻结状态,可以重置用户的密码等。
手机类型管理:管理员可以添加、编辑和删除手机类型信息,包括各种品牌的手机型号、价格、配置等。
手机信息管理:管理员可以添加、编辑和删除手机信息,包括手机的详细介绍、图片、价格、折扣等信息。
公告信息管理:管理员可以添加、编辑和删除公告信息,包括公告的标题、内容、发布时间等信息。
手机评价:管理员可以查看用户对手机的各种评价,可以针对不同的评价进行回复或者处理。
订单管理:管理员可以查看所有的订单信息,包括订单的状态、发货情况、收货人信息等,可以对订单进行发货、确认收货、评价等操作。
用户角色功能介绍:
注册:用户可以通过填写相应的注册信息进行注册,并设置密码。
登录:用户可以使用注册的账号和密码登录系统。
浏览手机信息:用户可以浏览各种手机的信息,包括手机的型号、价格、配置、评价等。
公告信息:用户可以查看管理员发布的公告信息。
购物车:用户可以将自己喜欢的手机添加到购物车中,可以在购物车中更改购买数量或者删除某个手机。
下单:用户可以将购物车中的手机生成订单,并填写收货人信息、支付方式等。
手机评价:用户可以对购买的手机进行评价,评价内容会显示在评价列表中。
我的订单:用户可以查看自己所有的订单信息,包括订单的状态、发货情况等,可以对订单进行取消或者确认收货等操作。
三、开发环境
- 开发语言:Java
- 数据库:MySQL
- 系统架构:B/S
- 后端:SSM
- 前端:vue
- 工具:IDEA或者Eclipse、JDK1.8、Maven
四、项目展示
登录页面:
首页模块:
管理员模块:
五、代码展示
public ServerResponseEntity<IPage<MyOrderDto>> myOrder(@RequestParam(value = "status") Integer status, PageParam<MyOrderDto> page) {
String userId = SecurityUtils.getUser().getUserId();
IPage<MyOrderDto> myOrderDtoIpage = myOrderService.pageMyOrderByUserIdAndStatus(page, userId, status);
return ServerResponseEntity.success(myOrderDtoIpage);
}
/**
* 取消订单
*/
@PutMapping("/cancel/{orderNumber}")
@Operation(summary = "根据订单号取消订单", description = "根据订单号取消订单")
@Parameter(name = "orderNumber", description = "订单号", required = true)
public ServerResponseEntity<String> cancel(@PathVariable("orderNumber") String orderNumber) {
String userId = SecurityUtils.getUser().getUserId();
Order order = orderService.getOrderByOrderNumber(orderNumber);
if (!Objects.equals(order.getUserId(), userId)) {
throw new YamiShopBindException("你没有权限获取该订单信息");
}
if (!Objects.equals(order.getStatus(), OrderStatus.UNPAY.value())) {
throw new YamiShopBindException("订单已支付,无法取消订单");
}
List<OrderItem> orderItems = orderItemService.getOrderItemsByOrderNumber(orderNumber);
order.setOrderItems(orderItems);
// 取消订单
orderService.cancelOrders(Collections.singletonList(order));
// 清除缓存
for (OrderItem orderItem : orderItems) {
productService.removeProductCacheByProdId(orderItem.getProdId());
skuService.removeSkuCacheBySkuId(orderItem.getSkuId(), orderItem.getProdId());
}
return ServerResponseEntity.success();
}
/**
* 确认收货
*/
@PutMapping("/receipt/{orderNumber}")
@Operation(summary = "根据订单号确认收货", description = "根据订单号确认收货")
public ServerResponseEntity<String> receipt(@PathVariable("orderNumber") String orderNumber) {
String userId = SecurityUtils.getUser().getUserId();
Order order = orderService.getOrderByOrderNumber(orderNumber);
if (!Objects.equals(order.getUserId(), userId)) {
throw new YamiShopBindException("你没有权限获取该订单信息");
}
if (!Objects.equals(order.getStatus(), OrderStatus.CONSIGNMENT.value())) {
throw new YamiShopBindException("订单未发货,无法确认收货");
}
List<OrderItem> orderItems = orderItemService.getOrderItemsByOrderNumber(orderNumber);
order.setOrderItems(orderItems);
// 确认收货
orderService.confirmOrder(Collections.singletonList(order));
for (OrderItem orderItem : orderItems) {
productService.removeProductCacheByProdId(orderItem.getProdId());
skuService.removeSkuCacheBySkuId(orderItem.getSkuId(), orderItem.getProdId());
}
return ServerResponseEntity.success();
}
/**
* 删除订单
*/
@DeleteMapping("/{orderNumber}")
@Operation(summary = "根据订单号删除订单", description = "根据订单号删除订单")
@Parameter(name = "orderNumber", description = "订单号", required = true)
public ServerResponseEntity<String> delete(@PathVariable("orderNumber") String orderNumber) {
String userId = SecurityUtils.getUser().getUserId();
Order order = orderService.getOrderByOrderNumber(orderNumber);
if (order == null) {
throw new YamiShopBindException("该订单不存在");
}
if (!Objects.equals(order.getUserId(), userId)) {
throw new YamiShopBindException("你没有权限获取该订单信息");
}
if (!Objects.equals(order.getStatus(), OrderStatus.SUCCESS.value()) && !Objects.equals(order.getStatus(), OrderStatus.CLOSE.value())) {
throw new YamiShopBindException("订单未完成或未关闭,无法删除订单");
}
// 删除订单
orderService.deleteOrders(Collections.singletonList(order));
return ServerResponseEntity.success("删除成功");
}
/**
* 获取我的订单订单数量
*/
@GetMapping("/orderCount")
@Operation(summary = "获取我的订单订单数量", description = "获取我的订单订单数量")
public ServerResponseEntity<OrderCountData> getOrderCount() {
String userId = SecurityUtils.getUser().getUserId();
OrderCountData orderCountMap = orderService.getOrderCount(userId);
return ServerResponseEntity.success(orderCountMap);
}
}
六、项目总结
本课题致力于探讨网上手机销售商城系统的设计和开发。通过对管理员和用户两大角色的功能分析,我们详细阐述了管理员的用户管理、手机类型管理、手机信息管理、公告信息管理、手机评价、订单管理等职责,以及用户的注册、登录、浏览手机信息、公告信息、购物车、下单、手机评价、我的订单等操作。网上手机销售商城系统的设计和开发不仅方便了用户购买手机,还提高了手机销售的效率,具有十分积极的意义和实践价值。