基于javaweb+mysql的在线商城水果蔬菜商城果蔬商城(前台、后台)
运行环境
Java≥8、MySQL≥5.7
开发工具
eclipse/idea/myeclipse/sts等均可配置运行
适用
课程设计,大作业,毕业设计,项目练习,学习演示等
功能说明
该项目分为前台用户和后台管理员两个角色,
用户角色的功能:登录(JWT的token验证)、注册、浏览商品、修改个人信息(上传图片)、修改密码、评论商品、添加商品到购物车(Redis缓存)、提交订单、查看订单、收藏商品等等功能。
管理员角色的功能:管理用户信息、管理用户评论信息、管理商品信息、管理订单信息等等功能。
前台:
后台:
技术框架
SpringBoot SpringMVC MyBatis FreeMarker JWT Redis
}
@Override
public ResponseVo<Boolean> updateOrderState(Long orderId, Integer state) {
if(orderId == null || state == null){
return ResponseVo.errorByMsg(CodeMsg.DATA_ERROR);
}
Order order = orderMapper.selectByPrimaryKey(orderId);
if(order == null){
return ResponseVo.errorByMsg(CodeMsg.ORDER_NOT_EXIST);
}
if(orderMapper.updateStateByOrderId(orderId, state) <= 0){
return ResponseVo.errorByMsg(CodeMsg.ORDER_STATE_EDIT_ERROR);
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.multipart.MultipartFile;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.File;
return ResponseVo.successByMsg(token,"修改个人信息成功!");
}
@Override
public ResponseVo<Boolean> updatePasswd(String prePassword, String newPassword, String reNewPassword, HttpServletRequest request) {
//对用户输入的数据进行非空验证
if(StringUtil.isEmpty(prePassword)){
return ResponseVo.errorByMsg(CodeMsg.USER_PREPASSWORD_EMPTY);
}
if(StringUtil.isEmpty(newPassword)){
return ResponseVo.errorByMsg(CodeMsg.USER_NEWPASSWORD_EMPTY);
}
if(StringUtil.isEmpty(reNewPassword)){
return ResponseVo.errorByMsg(CodeMsg.USER_RENEWPASSWORD_EMPTY);
}
//获取当前登录用户的id
String id = (String) request.getAttribute("id");
//判断用户输入的旧密码是否正确
User user = userMapper.selectByPrimaryKey(Long.valueOf(id));
if(!prePassword.equals(user.getPassword())){
return ResponseVo.errorByMsg(CodeMsg.USER_PREPASSWORD_ERROR);
}
//判断用户输入的新密码是否符合规范
user.setPassword(newPassword);
CodeMsg validate = ValidateEntityUtil.validate(user);
public BufferedImage generatorVCodeImage(String vcode, boolean drawline){
//创建验证码图片
BufferedImage vcodeImage = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
Graphics g = vcodeImage.getGraphics();
//填充背景色
g.setColor(new Color(246, 240, 250));
g.fillRect(