Java项目:汉服文化bbs商城系统(java+SpringBoot+Thymeleaf+html+layui+bootstrap+mysql)

本文主要是介绍Java项目:汉服文化bbs商城系统(java+SpringBoot+Thymeleaf+html+layui+bootstrap+mysql),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

源码获取:博客首页 "资源" 里下载!

项目介绍

汉服文化bbs商城系统,主要分为前后台。共分两种角色:管理员与普通用户;

管理员可登录前后台,普通用户仅可登录前台;普通用户登录后可发布、修改、删除自己的文章;
前台主要功能包括:
首页:文章列表、公告列表、汉服舞曲;
汉服形制:汉服发展史、汉服名词;
汉服礼仪;
汉服穿搭:汉服妆容、汉服摄影;
汉服活动:汉服事记;
推荐:汉服店铺、汉服推荐、汉服体验;
后台主要功能包括:
文章管理:查询、删除;
店铺推荐:新增推荐店、查看、修改、删除;
汉服体验店推荐:新增体验店、查看、修改、删除;
社团推荐:新增社团、查看、修改、删除;
汉服舞曲:新增舞曲、查看、删除;
公告管理:新增公告、查看、修改、删除;
留言管理:查询、修改、删除;

评论管理:查询、修改、删除;

环境需要

1.运行环境:最好是java jdk 1.8,我们在这个平台上运行的。其他版本理论上也可以。
2.IDE环境:IDEA,Eclipse,Myeclipse都可以。推荐IDEA;
3.tomcat环境:Tomcat 7.x,8.x,9.x版本均可
4.硬件环境:windows 7/8/10 1G内存以上;或者 Mac OS;
5.是否Maven项目: 是;查看源码目录中是否包含pom.xml;若包含,则为maven项目,否则为非maven项目

6.数据库:MySql 5.7版本;

技术栈

1. 后端:SpringBoot

2. 前端:Thymeleaf+html+layui+jQuery+bootstrap

使用说明

1. 使用Navicat或者其它工具,在mysql中创建对应名称的数据库,并导入项目的sql文件;
2. 将项目中application.yml配置文件中的数据库配置改为自己的配置;
3. 使用IDEA/Eclipse/MyEclipse导入项目,Eclipse/MyEclipse导入时,若为maven项目请选择maven;
若为maven项目,导入成功后请执行maven clean;maven install命令,配置tomcat,然后运行;
4. 运行项目,输入http://localhost:8080/ 登录

 

 

 

 

 

后台管理订单控制层:

@Controller
@RequestMapping("/admin/order")
public class AdminOrderController {@Autowiredprivate OrderService orderService;/*** 打开订单列表页面* @return*/@RequestMapping("/toList.html")public String toList() {return "admin/order/list";}/*** 获取所有订单的总数* @return*/@ResponseBody@RequestMapping("/getTotal.do")public ResultBean<Integer> getTotal() {Pageable pageable = new PageRequest(1, 15, null);int total = (int) orderService.findAll(pageable).getTotalElements();return new ResultBean<>(total);}/*** 获取所有订单* @param pageindex* @param pageSize* @return*/@ResponseBody@RequestMapping("/list.do")public ResultBean<List<Order>> listData(int pageindex,@RequestParam(value = "pageSize", defaultValue = "15") int pageSize) {Pageable pageable = new PageRequest(pageindex, pageSize, null);List<Order> list = orderService.findAll(pageable).getContent();return new ResultBean<>(list);}/*** 获取订单项* @param orderId* @return*/@ResponseBody@RequestMapping("/getDetail.do")public ResultBean<List<OrderItem>> getDetail(int orderId) {List<OrderItem> list = orderService.findItems(orderId);return new ResultBean<>(list);}/*** 发货* @param id* @return*/@ResponseBody@RequestMapping("/send.do")public ResultBean<Boolean> send(int id) {orderService.updateStatus(id,3);return new ResultBean<>(true);}
}

后台用户管理控制层:

@Controller
@RequestMapping("/admin/user")
public class AdminUserController {@Autowiredprivate UserService userService;/*** 打开用户列表页面* @return*/@RequestMapping("/toList.html")public String toList() {return "admin/user/list";}/*** 打开编辑页面* @param id* @param map* @return*/@RequestMapping("/toEdit.html")public String toEdit(int id, Map<String, Object> map) {User user = userService.findById(id);map.put("user", user);return "admin/user/edit";}/*** 获取所有用户列表** @param pageindex* @return*/@ResponseBody@RequestMapping("/list.do")public ResultBean<List<User>> findAllUser(int pageindex,@RequestParam(value = "pageSize", defaultValue = "15") int pageSize) {Pageable pageable = new PageRequest(pageindex, pageSize, null);List<User> users = userService.findAll(pageable).getContent();return new ResultBean<>(users);}@ResponseBody@RequestMapping("/getTotal.do")public ResultBean<Integer> geTotal() {Pageable pageable = new PageRequest(1, 15, null);int total = (int) userService.findAll(pageable).getTotalElements();return new ResultBean<>(total);}@ResponseBody@RequestMapping("/del.do")public ResultBean<Boolean> del(int id) {userService.delById(id);return new ResultBean<>(true);}@ResponseBody@RequestMapping(method = RequestMethod.POST, value = "/update.do")public ResultBean<Boolean> update(int id,String username,String password,String name,String phone,String email,String addr) {// 更新前先查询User user = userService.findById(id);user.setId(id);user.setName(name);user.setUsername(username);user.setPassword(password);user.setAddr(addr);user.setEmail(email);user.setPhone(phone);userService.update(user);return new ResultBean<>(true);}
}

前台用户订单管理:

@Controller
@RequestMapping("/order")
public class OrderController {@Autowiredprivate OrderService orderService;/*** 打开订单列表页面** @return*/@RequestMapping("/toList.html")public String toOrderList() {return "mall/order/list";}/*** 查询用户订单列表** @param request* @return*/@RequestMapping("/list.do")@ResponseBodypublic ResultBean<List<Order>> listData(HttpServletRequest request) {List<Order> orders = orderService.findUserOrder(request);return new ResultBean<>(orders);}/*** 查询订单详情** @param orderId* @return*/@RequestMapping("/getDetail.do")@ResponseBodypublic ResultBean<List<OrderItem>> getDetail(int orderId) {List<OrderItem> orderItems = orderService.findItems(orderId);return new ResultBean<>(orderItems);}/*** 提交订单** @param name* @param phone* @param addr* @param request* @param response*/@RequestMapping("/submit.do")public void submit(String name,String phone,String addr,HttpServletRequest request,HttpServletResponse response) throws Exception {orderService.submit(name, phone, addr, request, response);}/*** 支付方法** @param orderId*/@RequestMapping("pay.do")@ResponseBodypublic ResultBean<Boolean> pay(int orderId, HttpServletResponse response) throws IOException {orderService.pay(orderId);return new ResultBean<>(true);}/*** 确认收货* @param orderId* @param response* @return* @throws IOException*/@RequestMapping("receive.do")@ResponseBodypublic ResultBean<Boolean> receive(int orderId, HttpServletResponse response) throws IOException {orderService.receive(orderId);return new ResultBean<>(true);}}

前台商品控制层:

@Controller
@RequestMapping("/product")
public class ProductController {@Autowiredprivate ProductService productService;@Autowiredprivate ClassificationService classificationService;@Autowiredprivate ShopCartService shopCartService;/*** 获取商品信息** @param id* @return*/@RequestMapping("/get.do")public ResultBean<Product> getProduct(int id) {Product product = productService.findById(id);return new ResultBean<>(product);}/*** 打开商品详情页面** @param id* @param map* @return*/@RequestMapping("/get.html")public String toProductPage(int id, Map<String, Object> map) {Product product = productService.findById(id);map.put("product", product);return "mall/product/info";}/*** 查找热门商品** @return*/@ResponseBody@RequestMapping("/hot.do")public ResultBean<List<Product>> getHotProduct() {List<Product> products = productService.findHotProduct();return new ResultBean<>(products);}/*** 查找最新商品** @param pageNo* @param pageSize* @return*/@ResponseBody@RequestMapping("/new.do")public ResultBean<List<Product>> getNewProduct(int pageNo, int pageSize) {Pageable pageable = new PageRequest(pageNo, pageSize);List<Product> products = productService.findNewProduct(pageable);return new ResultBean<>(products);}/*** 打开分类查看商品页面** @return*/@RequestMapping("/category.html")public String toCatePage(int cid, Map<String, Object> map) {Classification classification = classificationService.findById(cid);map.put("category", classification);return "mall/product/category";}@RequestMapping("/toCart.html")public String toCart(){return "mall/product/cart";}/*** 按一级分类查找商品** @param cid* @param pageNo* @param pageSize* @return*/@ResponseBody@RequestMapping("/category.do")public ResultBean<List<Product>> getCategoryProduct(int cid, int pageNo, int pageSize) {Pageable pageable = new PageRequest(pageNo, pageSize);List<Product> products = productService.findByCid(cid, pageable);return new ResultBean<>(products);}/*** 按二级分类查找商品** @param csId* @param pageNo* @param pageSize* @return*/@ResponseBody@RequestMapping("/categorySec.do")public ResultBean<List<Product>> getCategorySecProduct(int csId, int pageNo, int pageSize) {Pageable pageable = new PageRequest(pageNo, pageSize);List<Product> products = productService.findByCsid(csId, pageable);return new ResultBean<>(products);}/*** 根据一级分类查询它所有的二级分类* @param cid* @return*/@ResponseBody@RequestMapping("/getCategorySec.do")public ResultBean<List<Classification>> getCategorySec(int cid){List<Classification> list = classificationService.findByParentId(cid);return new ResultBean<>(list);}/*** 加购物车** @param productId* @param request* @return*/@ResponseBody@RequestMapping("/addCart.do")public ResultBean<Boolean> addToCart(int productId, HttpServletRequest request) throws Exception {shopCartService.addCart(productId, request);return new ResultBean<>(true);}/*** 移除购物车** @param productId* @param request* @return*/@ResponseBody@RequestMapping("/delCart.do")public ResultBean<Boolean> delToCart(int productId, HttpServletRequest request) throws Exception {shopCartService.remove(productId, request);return new ResultBean<>(true);}/*** 查看购物车商品* @param request* @return*/@ResponseBody@RequestMapping("/listCart.do")public ResultBean<List<OrderItem>> listCart(HttpServletRequest request) throws Exception {List<OrderItem> orderItems = shopCartService.listCart(request);return new ResultBean<>(orderItems);}}

 源码获取:博客首页 "资源" 里下载!

这篇关于Java项目:汉服文化bbs商城系统(java+SpringBoot+Thymeleaf+html+layui+bootstrap+mysql)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/285164

相关文章

Vue3 的 shallowRef 和 shallowReactive:优化性能

大家对 Vue3 的 ref 和 reactive 都很熟悉,那么对 shallowRef 和 shallowReactive 是否了解呢? 在编程和数据结构中,“shallow”(浅层)通常指对数据结构的最外层进行操作,而不递归地处理其内部或嵌套的数据。这种处理方式关注的是数据结构的第一层属性或元素,而忽略更深层次的嵌套内容。 1. 浅层与深层的对比 1.1 浅层(Shallow) 定义

JVM 的类初始化机制

前言 当你在 Java 程序中new对象时,有没有考虑过 JVM 是如何把静态的字节码(byte code)转化为运行时对象的呢,这个问题看似简单,但清楚的同学相信也不会太多,这篇文章首先介绍 JVM 类初始化的机制,然后给出几个易出错的实例来分析,帮助大家更好理解这个知识点。 JVM 将字节码转化为运行时对象分为三个阶段,分别是:loading 、Linking、initialization

Spring Security 基于表达式的权限控制

前言 spring security 3.0已经可以使用spring el表达式来控制授权,允许在表达式中使用复杂的布尔逻辑来控制访问的权限。 常见的表达式 Spring Security可用表达式对象的基类是SecurityExpressionRoot。 表达式描述hasRole([role])用户拥有制定的角色时返回true (Spring security默认会带有ROLE_前缀),去

浅析Spring Security认证过程

类图 为了方便理解Spring Security认证流程,特意画了如下的类图,包含相关的核心认证类 概述 核心验证器 AuthenticationManager 该对象提供了认证方法的入口,接收一个Authentiaton对象作为参数; public interface AuthenticationManager {Authentication authenticate(Authenti

Spring Security--Architecture Overview

1 核心组件 这一节主要介绍一些在Spring Security中常见且核心的Java类,它们之间的依赖,构建起了整个框架。想要理解整个架构,最起码得对这些类眼熟。 1.1 SecurityContextHolder SecurityContextHolder用于存储安全上下文(security context)的信息。当前操作的用户是谁,该用户是否已经被认证,他拥有哪些角色权限…这些都被保

Spring Security基于数据库验证流程详解

Spring Security 校验流程图 相关解释说明(认真看哦) AbstractAuthenticationProcessingFilter 抽象类 /*** 调用 #requiresAuthentication(HttpServletRequest, HttpServletResponse) 决定是否需要进行验证操作。* 如果需要验证,则会调用 #attemptAuthentica

Spring Security 从入门到进阶系列教程

Spring Security 入门系列 《保护 Web 应用的安全》 《Spring-Security-入门(一):登录与退出》 《Spring-Security-入门(二):基于数据库验证》 《Spring-Security-入门(三):密码加密》 《Spring-Security-入门(四):自定义-Filter》 《Spring-Security-入门(五):在 Sprin

Java架构师知识体认识

源码分析 常用设计模式 Proxy代理模式Factory工厂模式Singleton单例模式Delegate委派模式Strategy策略模式Prototype原型模式Template模板模式 Spring5 beans 接口实例化代理Bean操作 Context Ioc容器设计原理及高级特性Aop设计原理Factorybean与Beanfactory Transaction 声明式事物

SQL中的外键约束

外键约束用于表示两张表中的指标连接关系。外键约束的作用主要有以下三点: 1.确保子表中的某个字段(外键)只能引用父表中的有效记录2.主表中的列被删除时,子表中的关联列也会被删除3.主表中的列更新时,子表中的关联元素也会被更新 子表中的元素指向主表 以下是一个外键约束的实例展示

不懂推荐算法也能设计推荐系统

本文以商业化应用推荐为例,告诉我们不懂推荐算法的产品,也能从产品侧出发, 设计出一款不错的推荐系统。 相信很多新手产品,看到算法二字,多是懵圈的。 什么排序算法、最短路径等都是相对传统的算法(注:传统是指科班出身的产品都会接触过)。但对于推荐算法,多数产品对着网上搜到的资源,都会无从下手。特别当某些推荐算法 和 “AI”扯上关系后,更是加大了理解的难度。 但,不了解推荐算法,就无法做推荐系