博主主页:猫头鹰源码
博主简介:Java领域优质创作者、博客专家、公司架构师、全网粉丝5万+、专注Java技术领域和毕业设计项目实战
主要内容:毕业设计(Javaweb项目|小程序等)、简历模板、学习资料、面试题库、技术咨询
项目介绍:
本系统以商城为主题,采用前后端分离,项目代码工整,结构清晰,适合选题:各类商城系统、前后端分离类其他商城系统等。系统采用springboot+vue整合开发,前端主要使用了element-ui框架、项目后端主要使用了springboot,数据层采用mybatis。
项目功能:
系统包含技术:
后端:springboot,mybatis
前端:element-ui、js、css等
开发工具:idea/vscode
数据库:mysql 5.7
JDK版本:jdk1.8
部分截图说明:
下面是首页
登录页面
搜索商品
商品详情,可以查看介绍,评论
购物车
付款成功后进入我的订单
收藏夹展示我的收藏内容
个人中心
后台首页
后台管理员对用户管理
管理员对商品管理
管理员对轮播图管理
管理员对角色管理
部分代码截图:
拦截器
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) {
String token = request.getHeader("token");
if (StrUtil.isBlank(token)) {
throw new CustomException("401", "未获取到token, 请重新登录");
}
String username;
try {
username = JWT.decode(token).getAudience().get(0);
} catch (JWTDecodeException j) {
throw new CustomException("401", "权限验证失败, 请重新登录");
}
User user = userService.getOne(Wrappers.<User>lambdaQuery().eq(User::getUsername, username));
if (user == null) {
throw new CustomException("401", "用户不存在, 请重新登录");
}
// 验证 token
JWTVerifier jwtVerifier = JWT.require(Algorithm.HMAC256(user.getPassword())).build();
try {
jwtVerifier.verify(token);
} catch (JWTVerificationException e) {
throw new CustomException("401", "token不合法, 请重新登录");
}
return true;
}
跨域
// 当前跨域请求最大有效时长。这里默认1天
private static final long MAX_AGE = 24 * 60 * 60;
private CorsConfiguration buildConfig() {
CorsConfiguration corsConfiguration = new CorsConfiguration();
corsConfiguration.addAllowedOrigin("*"); // 1 设置访问源地址
corsConfiguration.addAllowedHeader("*"); // 2 设置访问源请求头
corsConfiguration.addAllowedMethod("*"); // 3 设置访问源请求方法
corsConfiguration.setMaxAge(MAX_AGE);
return corsConfiguration;
}
@Bean
public CorsFilter corsFilter() {
UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
source.registerCorsConfiguration("/**", buildConfig()); // 4 对接口配置跨域设置
return new CorsFilter(source);
}
商品操作
/**
* 推荐商品
* @return
*/
@GetMapping("/recommend")
public Result<?> recommend() {
List<Goods> list = goodsService.recommend();
return Result.success(list);
}
/**
* 推热销商品
* @return
*/
@GetMapping("/sales")
public Result<?> sales() {
List<Goods> list = goodsService.sales();
return Result.success(list);
}
/**
* 根据分类id查询商品
* @param id
* @param pageNum
* @param pageSize
* @return
*/
@GetMapping("/byCategory/{id}")
public Result<?> findByCategory(@PathVariable Long id,
@RequestParam(required = false, defaultValue = "1") Integer pageNum,
@RequestParam(required = false, defaultValue = "10") Integer pageSize) {
IPage<Goods> page = goodsService.pageByCategory(new Page<>(pageNum, pageSize), id);
return Result.success(page);
}
以上就是部分功能展示,从整体上来看,本系统功能是十分完整的,界面设计简洁大方,交互友好,数据库设计也很合理,规模适中,代码工整,清晰,适合学习使用。
好了,今天就到这儿吧,小伙伴们点赞、收藏、评论,一键三连走起呀,下期见~~