本人原创作品,用户前台、系统管理员后台项目完整,无任何bug。
每行代码都是本人自己写,我在代码上面都写有详细注释
开发工具:IDEA
服务器:Tomcat9.0, jdk1.8
项目构建:maven
数据库:mysql5.7
系统分前后台,采用前后端分离
前端技术:vue (vue cli,vue-router,vuex全家桶),elementUI等框架实现
服务端技术:springboot,mybatis-plus
文档截图:
前台截图:
后台截图:
package com.ping.controller;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.ping.dto.ProductEvaluationDto;
import com.ping.enums.OrderStatusEnum;
import com.ping.pojo.Order;
import com.ping.pojo.OrderDetails;
import com.ping.pojo.RespBean;
import com.ping.pojo.User;
import com.ping.service.IOrderDetailsService;
import com.ping.service.IOrderService;
import com.ping.service.IProductEvaluationDetailsService;
import com.ping.service.IProductEvaluationService;
import com.ping.utils.UserUtils;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.List;
/**
* <p>
* 前端控制器
* </p>
*
* @author IT教程资源
* @since 2022-07-03
*/
@RestController
@RequestMapping("/productEvaluation")
public class ProductEvaluationController {
@Autowired
private IProductEvaluationService iProductEvaluationService;
@Autowired
private IOrderDetailsService iOrderDetailsService;
@Autowired
private IOrderService iOrderService;
/**
* @Author IT教程资源(vx:3092994143) 2022/7/28 21:11
* @Description 发表评价
*/
@ApiOperation("添加评价")
@PostMapping("/addProductEvaluation")
public RespBean addProductEvaluation(@RequestBody ProductEvaluationDto productEvaluationDto){
User currentUser = UserUtils.getCurrentUser();
//查询订单号所有订单项
QueryWrapper<OrderDetails> queryWrapper=new QueryWrapper<>();
queryWrapper.eq("order_no",productEvaluationDto.getOrderDto().getOrderNo());
List<OrderDetails> orderDetailsList = iOrderDetailsService.list(queryWrapper);
//遍历每一个订单项
if(orderDetailsList!=null && !orderDetailsList.isEmpty()){
for (OrderDetails orderDetail:orderDetailsList) {
iProductEvaluationService.saveEvaluate(currentUser,orderDetail,productEvaluationDto);
}
}
//评价成功,更新订单状态
Order order=new Order();
order.setOrderNo(productEvaluationDto.getOrderDto().getOrderNo());
order.setStatus(OrderStatusEnum.FINISHED.getValue());
iOrderService.updateById(order);
return RespBean.success("操作成功");
}
}
package com.ping.controller;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.ping.dto.ShoppingCartDto;
import com.ping.pojo.Product;
import com.ping.pojo.RespBean;
import com.ping.pojo.ShoppingCart;
import com.ping.pojo.User;
import com.ping.service.IProductService;
import com.ping.service.IShoppingCartService;
import com.ping.utils.UserUtils;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.Arrays;
import java.util.List;
/**
-
@Author IT教程资源(vx : 3092994143) 2022/7/23 21:03
-
@Description 购物车
*/
@RestController
@RequestMapping(“/shoppingCart”)
public class ShoppingCartController {@Autowired
private IShoppingCartService iShoppingCartService;@Autowired
private IProductService iProductService;/**
-
@Author IT教程资源(vx : 3092994143) 2022/7/23 21:04
-
@Description 添加购物车
*/
@ApiOperation(“添加购物车”)
@PostMapping(“/addShoppingCart”)
public RespBean addShoppingCart(@RequestBody ShoppingCart shoppingCart) {
User currentUser = UserUtils.getCurrentUser();
shoppingCart.setUserId(currentUser.getId());
//查询当前用户购物车信息
QueryWrapper shoppingCartQueryWrapper = new QueryWrapper<>();
shoppingCartQueryWrapper.eq(“user_id”, currentUser.getId());
List shoppingCarts = iShoppingCartService.list(shoppingCartQueryWrapper);
//如果之前有存在该商品,累加并更新,否则新增
ShoppingCart oldShoppingCart = null;
for (ShoppingCart cart : shoppingCarts) {
//如果存在,取出该购物车信息
if (cart.getProductId().equals(shoppingCart.getProductId())) {
oldShoppingCart = cart;
}
}
boolean result;
//存在该购物车商品,进行更新
if (oldShoppingCart != null) {
//修改数量
oldShoppingCart.setPayAmount(oldShoppingCart.getPayAmount() + shoppingCart.getPayAmount());
result = iShoppingCartService.updateById(oldShoppingCart);
} else {
//新增购物车记录
result = iShoppingCartService.save(shoppingCart);
}if (result) {
return RespBean.success(“添加购物车成功!”);
} else {
return RespBean.error(“添加购物车失败!”);
}
}
/**
- @Author IT教程资源(vx:3092994143) 2022/7/23 23:09
- @Description 查询购物车信息
*/
@ApiOperation(value = “购物车信息列表”)
@GetMapping(“/getShoppingCartInfo”)
public List getShoppingCartInfo(){
User currentUser = UserUtils.getCurrentUser();
return iShoppingCartService.getShoppingCartInfo(currentUser);
}
/**
- @Author IT教程资源(vx:3092994143) 2022/7/24 11:45
- @Description 删除购物车
*/
@ApiOperation(“删除购物车”)
@DeleteMapping(“/deleteShoppingCart/{id}”)
public RespBean deleteShoppingCart(@PathVariable Integer id){
if(iShoppingCartService.removeById(id)){
return RespBean.success(“删除成功!”);
}
return RespBean.error(“删除失败!”);
}
/**
- @Author IT教程资源(vx:3092994143) 2022/7/24 12:30
- @Description 批量删除购物车
*/
@ApiOperation(“批量删除购物车”)
@DeleteMapping(“/deleteBatchShoppingCart”)
public RespBean deleteBatchShoppingCart(Integer[] ids){
if(iShoppingCartService.removeByIds(Arrays.asList(ids))){
return RespBean.success(“删除成功!”);
}
return RespBean.error(“删除失败!”);
}
/**
-
@Author IT教程资源(vx:3092994143) 2022/7/24 12:48
-
@Description 修改购物车商品数量
*/
@ApiOperation(“修改购物车商品数量”)
@PutMapping(“/updateShoppingCart”)
public RespBean updateShoppingCart(@RequestBody ShoppingCart shoppingCart){
//校验库存是否足够
Product product = iProductService.getById(shoppingCart.getProductId());
if((product.getStock()-product.getVolume())<shoppingCart.getPayAmount()){
return RespBean.error(“库存不足!”);
}if(iShoppingCartService.updateById(shoppingCart)){
return RespBean.success(shoppingCart);
}
return RespBean.error(“更新失败!”);
}
}
-