——————————DescriptionStart——————————
运行环境
Java≥8、MySQL≥5.7、Tomcat≥8
开发工具
eclipse/idea/myeclipse/sts等均可配置运行
适用
课程设计,大作业,毕业设计,项目练习,学习演示等
功能说明
基于javaweb的SSM推荐算法书城系统(java+ssm+jsp+js+jquery+layui+mysql)
项目介绍
角色:管理员、用户
用户登陆后,主要模块包括首页、热卖图书、公告信息、个人中心、后台管理、购物车、在线客服等功能
管理员登陆后,主要模块包括个人中心、用户管理、图书类型管理、热卖图书管理、管理员管理、系统管理、订单管理等功能
环境需要
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/8.0等版本均可;
技术栈
后端:SSM(Spring+SpringMVC+Mybatis) 前端:JSP+CSS+JS+JQUERY+Layui
使用说明
- 使用Navicat或者其它工具,在mysql中创建对应名称的数据库,并导入项目的sql文件; 2. 使用IDEA/Eclipse/MyEclipse导入项目,修改配置,运行项目;
——————————CodeStart——————————
图书管理控制层:
@Controller
@RequestMapping(“/book”)
@SessionAttributes({“bookTypeList”})
public class BookController {
@Autowired
private IBookTypeService iBookTypeService;
@Autowired
private IBookService iBookService;
@Autowired
private ISupplierService iSupplierService;
/**
图书列表
@param model
@return
*/
@GetMapping(“/home”)
public String toAdminHome(
@RequestParam(defaultValue = “1”) Integer num,
@RequestParam(defaultValue = “5”)Integer size,
Model model
) {
// 获取导航栏
List
model.addAttribute(“bookTypeList”, bookTypeList);
// 获取供应商
List
model.addAttribute(“supplierList”, supplierList);
// 获取图书
List
PageInfo
model.addAttribute(“booksPageInfo”, booksPageInfo);
return “/backstage/home”;
/**
图书列表
@param model
@return
*/
@GetMapping(“/home1”)
public @ResponseBody PageInfo
@RequestParam(defaultValue = “1”) Integer num,
@RequestParam(defaultValue = “5”)Integer size,
Model model
) {
// 获取导航栏
List
model.addAttribute(“bookTypeList”, bookTypeList);
// 获取供应商
List
model.addAttribute(“supplierList”, supplierList);
// 获取图书
List
PageInfo
return booksPageInfo;
/**
上传图书图片
@param request
@param file
@return
*/
@PostMapping(“/uploadimg”)
public @ResponseBody int uploadimg(HttpServletRequest request, MultipartFile file) {
int i = iBookService.uploadImage(request,file);
return i;
/**
上传详情图片
@param request
@param file
@return
*/
@PostMapping(“/uploaddetail”)
public @ResponseBody int uploaddetail(HttpServletRequest request, MultipartFile file) {
int i = iBookService.uploaddetail(request,file);
return i;
/**
*新增图书
- @return
*/
@PostMapping(“/saveBook”)
public String saveBook(Books books) {
// System.out.println(“Books:=”+books);
iBookService.saveBook(books);
return “redirect:/book/home”;
/**
前台首页
@return
*/
@GetMapping(“/qiantai”)
public String toHome(
@RequestParam(defaultValue = “1”) Integer num,
@RequestParam(defaultValue = “10”)Integer size,
Model model) {
// 获取导航栏
List
model.addAttribute(“bookTypeList”, bookTypeList);
// 获取全部图书
List
PageInfo
model.addAttribute(“booksPageInfo”, booksPageInfo);
return “/frontdesk/home”;
/**
通过Id查询图书详情
@param id
@param model
@return
*/
@GetMapping(“/findById/{id}”)
public String findById(@PathVariable Integer id,Model model) {
Books books = iBookService.findById(id);
model.addAttribute(“books”,books);
return “/frontdesk/book_detail”;
/**
管理员通过Id查询图书详情
@param id
@param model
@return
*/
@GetMapping(“/adminfindById/{id}”)
public String adminfindById(@PathVariable Integer id,Model model) {
// 获取供应商
List
model.addAttribute(“supplierList”, supplierList);
// 获取图书详情
Books books = iBookService.findById(id);
model.addAttribute(“books”,books);
return “/backstage/update_book”;
/**
修改图书信息
@param books
@return
*/
@PostMapping(“/updateBook”)
public String updateBook(Books books) {
// System.out.println(“返回的图书:”+books);
iBookService.updateBook(books);
return “redirect:/book/home”;
/**
通过图书类型Id查询图书
@param tid
@param model
@return
*/
@GetMapping(“/findByTid/{tid}”)
public String findByTid(@PathVariable Integer tid,@RequestParam(defaultValue = “1”) Integer num,@RequestParam(defaultValue = “10”)Integer size,Model model) {
List
PageInfo
model.addAttribute(“booksPageInfo”, booksPageInfo);
model.addAttribute(“tid”,tid);
return “/frontdesk/home”;
@PostMapping(“/deleteBook/{id}”)
public @ResponseBody int deleteBook(@PathVariable(“id”) Integer id) {
int i = iBookService.deleteBook(id);
return i;
订单管理控制层:
@Controller
@RequestMapping(“/orderForm”)
public class OrderFormController {
@Autowired
private IOrderFormService iOrderFormService;
/**
获取所有用户订单
@param model
@return
*/
@GetMapping(“/findAllOrderForm”)
public String findAllOrderForm(
@RequestParam(defaultValue = “1”) Integer num,
@RequestParam(defaultValue = “5”) Integer size,
Model model) {
List
PageInfo
model.addAttribute(“orderFormPageInfo”,orderFormPageInfo);
return “/backstage/order_form”;
/**
获取所有用户订单返回JSON数据
@return
*/
@GetMapping(“/findAllOrderForm1”)
public @ResponseBody PageInfo
@RequestParam(defaultValue = “1”) Integer num,
@RequestParam(defaultValue = “5”) Integer size
) {
List
PageInfo
return orderFormPageInfo;
/**
新增订单
1、将商品销售增加
2、剩余量减少
3、产生订单
@param orderForm
@return
*/
@PostMapping(“/saveOrderForm”)
public @ResponseBody int saveOrderForm(OrderForm orderForm) {
// System.out.println(“OrderForm:”+orderForm);
int i = iOrderFormService.saveOrderForm(orderForm);
return i;
/**
搜索指定用户的订单列表
@param uid
@param num
@param size
@param model
@return
*/
@GetMapping(“/findByUid/{uid}”)
public String findByUid(
@PathVariable Integer uid,
@RequestParam(defaultValue = “1”) Integer num,
@RequestParam(defaultValue = “5”) Integer size,
Model model) {
List
PageInfo
model.addAttribute(“orderFormPageInfo”,orderFormPageInfo);
return “/frontdesk/order_form”;
/**
是否发货
@param orderForm
@return
*/
@PostMapping(“/updateOrderForm”)
public @ResponseBody int updateOrderForm(OrderForm orderForm) {
int i = iOrderFormService.updateOrderForm(orderForm);
return i;
/**
移除该用户的某一订单
@param id
@return
*/
@PostMapping(“/deleteShopping/{uid}/{id}”)
public @ResponseBody int findByUid(@PathVariable Integer uid,@PathVariable Integer id) {
int i = iOrderFormService.deleteOrderForm(uid,id);
// System.out.println(“返回的i=”+i);
return i;
订单管理控制层:
@Controller
@RequestMapping(“/shopping”)
public class ShoppingController {
@Autowired
private IShoppingService iShoppingService;
@Autowired
private IOrderFormService iOrderFormService;
/**
添加购物车或修改购物车已有图书商品
@param sp
@return
*/
@PostMapping(“/saveShopping”)
public @ResponseBody
int saveShopping(Shopping sp) {
// System.out.println(“获取到的值:”+shopping);
int i = iShoppingService.saveShopping(sp);
// System.out.println(“返回i=”+i);
return i;
/**
我的购物车
@param uid
@param model
@return
*/
@GetMapping(“/findByUid/{uid}”)
public String findByUid(
@PathVariable Integer uid,
@RequestParam(defaultValue = “1”) Integer num,
@RequestParam(defaultValue = “5”) Integer size,
Model model
) {
List
PageInfo
model.addAttribute(“shoppingPageInfo”, shoppingPageInfo);
return “/frontdesk/shopping”;
/**
移除购物车某一图书商品
@param id
@return
*/
@PostMapping(“/deleteShopping/{uid}/{id}”)
public @ResponseBody
int findByUid(@PathVariable Integer uid, @PathVariable Integer id) {
int i = iShoppingService.deleteShopping(uid, id);
// System.out.println(“返回的i=”+i);
return i;
/**
购买某一图书商品
1、新增订单
2、移除购物车某一图书商品
@param id
@return
*/
@PostMapping(“/detShoppingSaveOrderForm”)
@Transactional
public @ResponseBody
int detShoppingSaveOrderForm(Integer id) {
// 新增订单
Shopping shopping = iShoppingService.findById(id);
OrderForm orderForm = shoppingOrderForm(shopping);
int i1 = iOrderFormService.saveOrderForm(orderForm);
// 移除购物车某一图书商品
int i = iShoppingService.deleteShopping(shopping.getUid(), shopping.getId());
// System.out.println(“返回的i=”+i);
int count = i + i1;
return count;
/**
将购物车图书信息转化封装到订单实体类中
@param shopping
@return
*/
public static OrderForm shoppingOrderForm(Shopping shopping) {
OrderForm orderForm = new OrderForm();
orderForm.setImage(shopping.getImage());
orderForm.setName(shopping.getName());
orderForm.setPprice(shopping.getPprice());
orderForm.setBcount(shopping.getBcount());
orderForm.setBid(shopping.getBid());
orderForm.setUid(shopping.getUid());
return orderForm;
——————————PayStart——————————
项目链接:
https://javayms.github.io?id=321524180701201im
https://javayms.pages.dev?id=321524180701201im