源码获取:博客首页 "资源" 里下载!
项目介绍
本项目为前后台管理系统,包括管理员与普通用户两种角色;
管理员角色包含以下功能:
管理员登录,用户管理,商品类型管理,商品管理,订单信息管理,用户留言管理,资讯管理等功能。
用户角色包含以下功能:
用户首页,用户登录,商品推荐,资讯信息,留言板,查看商品,提交订单,查看订单信息,个人资料管理等功能。
ps:推荐模块用了协同过滤推荐算法,下订单模块用的是百度地图api。本商城可以修改为任意商城不止是体育商城。
环境需要
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.数据库:MySql 5.7版本;
6.是否Maven项目:是;
技术栈
1. 后端:SpringBoot
2. 前端:HTML+JSP+CSS+JavaScript+jQuery
使用说明
1. 使用Navicat或者其它工具,在mysql中创建对应名称的数据库,并导入项目的sql文件;
2. 使用IDEA/Eclipse/MyEclipse导入项目,Eclipse/MyEclipse导入时,若为maven项目请选择maven;
若为maven项目,导入成功后请执行maven clean;maven install命令,然后运行;
3. 将项目中application.properties配置文件中的数据库配置改为自己的配置;
4. 运行项目,在浏览器中输入http://localhost:8110/ 登录
管理员账号/密码:admin/admin
用户账号/密码: user/123456
用户相关接口:
/**
* 用户相关接口
*/
@Controller
@RequestMapping("/index")
public class UserController{
@Resource
private UserService userService;
@Resource
private GoodService goodService;
@Resource
private OrderService orderService;
@Resource
private CartService cartService;
/**
* 用户注册
* @return
*/
@GetMapping("/register")
public String reg() {
return "/index/register.jsp";
}
/**
* 用户注册
* @return
*/
@PostMapping("/register")
public String register(Users user, HttpServletRequest request){
if (user.getUsername().isEmpty()) {
request.setAttribute("msg", "用户名不能为空!");
}else if (Objects.nonNull(userService.getByUsername(user.getUsername()))) {
request.setAttribute("msg", "用户名已存在!");
}else {
userService.add(user);
request.setAttribute("msg", "注册成功 可以去登录了!");
return "/index/login.jsp";
}
return "/index/register.jsp";
}
/**
* 用户登录
* @return
*/
@GetMapping("/login")
public String log() {
return "/index/login.jsp";
}
/**
* 用户登录
* @return
*/
@PostMapping("/login")
public String login(Users user, HttpServletRequest request, HttpSession session) {
Users loginUser = userService.getByUsernameAndPassword(user.getUsername(), user.getPassword());
if (Objects.isNull(loginUser)) {
request.setAttribute("msg", "用户名或密码错误");
return "/index/login.jsp";
}
session.setAttribute("user", loginUser);
// 还原购物车
session.setAttribute("cartCount", cartService.getCount(loginUser.getId()));
String referer = request.getHeader("referer"); // 来源页面
System.out.println(referer); //TODO
return "redirect:index";
}
/**
* 注销登录
* @return
*/
@GetMapping("/logout")
public String logout(HttpSession session) {
session.removeAttribute("user");
session.removeAttribute("cartCount");
return "/index/login.jsp";
}
/**
* 查看积分
*/
@GetMapping("/mypoint")
public String mypoint() {
return "/index/mypoint.jsp";
}
//积分充值
@RequestMapping("/addPoint")
public String addPoint(double point,HttpSession session,HttpServletRequest request){
Users users = (Users)session.getAttribute("user");
BigDecimal bigDecimal = new BigDecimal(Double.toString(point)).add(new BigDecimal(Double.toString(users.getPoint())));
users.setPoint(bigDecimal.doubleValue());
int count = userService.updatePoint(users);
if(count > 0){
session.setAttribute("user",users);
request.setAttribute("msg","充值成功!");
}else{
request.setAttribute("msg","充值失败!");
}
return "/index/mypoint.jsp";
}
/**
* 查看购物车
* @return
*/
@GetMapping("/cart")
public String cart(HttpServletRequest request, HttpSession session) {
Users user = (Users) session.getAttribute("user");
request.setAttribute("cartList", cartService.getList(user.getId()));
request.setAttribute("cartCount", cartService.getCount(user.getId()));
request.setAttribute("cartTotal", cartService.getTotal(user.getId()));
return "/index/cart.jsp";
}
/**
* 购物车总金额
* @return
*/
@GetMapping("/cartTotal")
public @ResponseBody int cartTotal(HttpSession session){
Users user = (Users) session.getAttribute("user");
return cartService.getTotal(user.getId());
}
/**
* 加入购物车
* @return
*/
@PostMapping("/cartBuy")
public @ResponseBody boolean cartBuy(int goodId, HttpSession session){
Users user = (Users) session.getAttribute("user");
return cartService.save(goodId, user.getId());
}
/**
* 添加数量
*/
@PostMapping("/cartAdd")
public @ResponseBody boolean cartAdd(int id){
return cartService.add(id);
}
/**
* 减少数量
*/
@PostMapping("/cartLess")
public @ResponseBody boolean cartLess(int id){
return cartService.less(id);
}
/**
* 删除
*/
@PostMapping("/cartDelete")
public @ResponseBody boolean cartDelete(int id){
return cartService.delete(id);
}
/**
* 查看订单
* @return
* @throws UnsupportedEncodingException
*/
@GetMapping("/order")
public String order(HttpServletRequest request, HttpSession session,
@RequestParam(required=false, defaultValue="1")int page,
@RequestParam(required=false, defaultValue="6")int size) throws UnsupportedEncodingException{
Users user = (Users) session.getAttribute("user");
request.setAttribute("orderList", orderService.getListByUserid(user.getId(), page, size));
request.setAttribute("pageHtml", PageUtil.getPageHtml(request, orderService.getCountByUserid(user.getId()), page, size));
return "/index/order.jsp";
}
/**
* 直接购买
* @return
* @throws MyException
*/
@PostMapping("/orderAdd")
public String orderAdd(int goodId, HttpSession session) throws MyException{
Users user = (Users) session.getAttribute("user");
int orderId = orderService.add(goodId, user.getId());
return "redirect:orderPay?id="+orderId; // 跳转支付
}
/**
* 购物车结算
* @return
* @throws MyException
*/
@GetMapping("/orderSave")
public String orderSave(ServletRequest request, HttpSession session) throws MyException{
Users user = (Users) session.getAttribute("user");
int orderId = orderService.save(user.getId());
session.removeAttribute("cartCount"); // 清理购物车session
return "redirect:orderPay?id="+orderId; // 跳转支付
}
/**
* 支付页面
* @return
*/
@GetMapping("/orderPay")
public String orderPay(int id, ServletRequest request) {
request.setAttribute("order", orderService.get(id));
return "/index/pay.jsp";
}
/**
* 支付(模拟)
* @return
*/
@PostMapping("/orderPay")
@ResponseBody
public int orderPay(Orders order,HttpSession session) {
Users users = (Users) session.getAttribute("user");
BigDecimal bigDecimal = new BigDecimal(0);
if(order.getPaytype() == Orders.PAYTYPE_OFFLINE){//为积分支付时
double d1 = order.getTotal();//商品总价
if(users.getPoint().compareTo(d1) < 0){
return -1;
}else{
//总积分 = 用户积分 - 抵扣积分
bigDecimal = new BigDecimal(Double.toString(users.getPoint())).subtract(new BigDecimal(Double.toString(d1)));
}
}else{
double d2 = order.getTotal()/100;//购买商品获取的积分
//总积分 = 用户积分 + 获取的
bigDecimal = new BigDecimal(Double.toString(users.getPoint())).add(new BigDecimal(Double.toString(d2)));
}
users.setPoint(bigDecimal.doubleValue());//保存积分
int count = userService.updatePoint(users);
if(count > 0){
session.setAttribute("user",users);//更新用户积分
}
orderService.pay(order);
return 1;
}
/**
* 收货地址
* @return
*/
@GetMapping("/address")
public String address(){ // 使用session中的数据
return "/index/address.jsp";
}
/**
* 修改信息
* @return
*/
@PostMapping("/addressUpdate")
public String addressUpdate(String name, String phone, String address, HttpServletRequest request, HttpSession session){
Users user = (Users) session.getAttribute("user");
userService.update(user.getId(), name, phone, address); // 更新数据库
session.setAttribute("user", userService.get(user.getId())); // 更新session
request.setAttribute("msg", "信息修改成功!");
return "/index/address.jsp";
}
/**
* 收货地址
* @return
*/
@GetMapping("/password")
public String password(){ // 使用session中的数据
return "/index/password.jsp";
}
/**
* 修改密码
* @return
*/
@PostMapping("/passwordUpdate")
public String passwordUpdate(String password, String passwordNew, HttpServletRequest request, HttpSession session){
Users user = (Users) session.getAttribute("user");
user = userService.get(user.getId());
if(!user.getPassword().equals(SafeUtil.encode(password))) {
request.setAttribute("msg", "原密码错误!");
}else {
userService.updatePassword(user.getId(), passwordNew);
request.setAttribute("msg", "密码修改成功!");
}
return "/index/password.jsp";
}
/*
* 用戶確認收貨
*/
@RequestMapping("/userfinish")
public String userFinish(int id, byte status,
@RequestParam(required=false, defaultValue="1") int page) {
orderService.finish(id);
return "redirect:order?page="+page;
}
}
后台管理接口:
/**
* 后台管理接口
*/
@Controller
@RequestMapping("/admin")
public class AdminController {
@Autowired
private AdminService adminService;
@Autowired
private OrderService orderService;
@Autowired
private UserService userService;
@Autowired
private GoodService goodService;
@Autowired
private TopService topService;
@Autowired
private TypeService typeService;
/**
* 管理员登录 (逻辑判断)
* @return
*/
@GetMapping("/login")
public String log() {
return "/admin/login.jsp";
}
/**
* 管理员登录
* @return
*/
@PostMapping("/login")
public String login(String username, String password,
HttpServletRequest request, HttpSession session) {
Admins admin = adminService.getByUsernameAndPassword(username, password);
if (Objects.nonNull(admin)) {
session.setAttribute("admin", admin);
return "redirect:index";
}
request.setAttribute("msg", "用户名或密码错误!");
return "/admin/login.jsp";
}
/**
* 退出
* @return
*/
@GetMapping("/logout")
public String logout(HttpSession session) {
session.removeAttribute("admin");
return "/admin/login.jsp";
}
/**
* 后台首页
* @return
*/
@GetMapping("/index")
public String index(HttpServletRequest request) {
request.setAttribute("msg", "恭喜你! 登录成功了");
return "/admin/index.jsp";
}
/**
* 类目列表
* @return
*/
@GetMapping("/typeList")
public String typeList(HttpServletRequest request) {
request.setAttribute("flag", 1);
request.setAttribute("typeList", typeService.getList());
return "/admin/type_list.jsp";
}
/**
* 类目添加
* @return
*/
@GetMapping("/typeAdd")
public String typeAdd(HttpServletRequest request) {
request.setAttribute("flag", 1);
return "/admin/type_add.jsp";
}
/**
* 类目添加
* @return
* @throws Exception
*/
@PostMapping("/typeSave")
public String typeSave(Types type) throws Exception {
typeService.add(type);
return "redirect:typeList?flag=1";
}
/**
* 类目更新
* @return
*/
@GetMapping("/typeEdit")
public String typeEdit(int id, HttpServletRequest request) {
request.setAttribute("flag", 1);
request.setAttribute("type", typeService.get(id));
return "/admin/type_edit.jsp";
}
/**
* 类目更新
* @return
* @throws Exception
*/
@PostMapping("/typeUpdate")
public String typeUpdate(Types type) throws Exception {
typeService.update(type);
return "redirect:typeList?flag=1";
}
/**
* 类目删除
* @return
*/
@GetMapping("/typeDelete")
public String typeDelete(int id) {
typeService.delete(id);
return "redirect:typeList?flag=1";
}
/**
* 产品列表
* @return
*/
@GetMapping("/goodList")
public String goodList(HttpServletRequest request,
@RequestParam(required=false, defaultValue="0") byte type,
@RequestParam(required=false, defaultValue="1") int page,
@RequestParam(required=false, defaultValue="10") int size) {
request.setAttribute("flag", 2);
request.setAttribute("page", page);
request.setAttribute("type", type);
if(type > 0) {
String goodIds = topService.getGoodIdsByType(type);
request.setAttribute("goodList", goodService.getListByIds(goodIds, page, size));
request.setAttribute("pageTool", PageUtil.getPageTool(request, goodService.getCountByIds(goodIds), page, size));
}else {
request.setAttribute("goodList", goodService.getList(page, size));
request.setAttribute("pageTool", PageUtil.getPageTool(request, goodService.getCount(), page, size));
}
return "/admin/good_list.jsp";
}
/**
* 产品添加
* @return
*/
@GetMapping("/goodAdd")
public String goodAdd(HttpServletRequest request) {
request.setAttribute("flag", 2);
request.setAttribute("typeList", typeService.getList());
return "/admin/good_add.jsp";
}
/**
* 产品添加
* @return
* @throws Exception
*/
@PostMapping("/goodSave")
public String goodSave(Goods good, MultipartFile file,
@RequestParam(required=false, defaultValue="1") int page) throws Exception {
good.setCover(UploadUtil.upload(file));
goodService.add(good);
return "redirect:goodList?flag=2&page="+page;
}
/**
* 产品更新
* @return
*/
@GetMapping("/goodEdit")
public String goodEdit(int id, HttpServletRequest request) {
request.setAttribute("flag", 2);
request.setAttribute("typeList", typeService.getList());
request.setAttribute("good", goodService.get(id));
return "/admin/good_edit.jsp";
}
/**
* 产品更新
* @return
* @throws Exception
*/
@PostMapping("/goodUpdate")
public String goodUpdate(Goods good, MultipartFile file,
@RequestParam(required=false, defaultValue="1") int page) throws Exception {
if (Objects.nonNull(file) && !file.isEmpty()) {
good.setCover(UploadUtil.upload(file));
}
goodService.update(good);
return "redirect:goodList?flag=2&page="+page;
}
/**
* 产品删除
* @return
*/
@GetMapping("/goodDelete")
public String goodDelete(int id,
@RequestParam(required=false, defaultValue="1") int page) {
goodService.delete(id);
return "redirect:goodList?flag=2&page="+page;
}
/**
* 添加推荐
* @return
*/
@PostMapping("/topSave")
public @ResponseBody String topSave(int goodId, byte type) {
return topService.add(goodId, type) ? "ok" : null;
}
/**
* 删除推荐
* @return
*/
@PostMapping("/topDelete")
public @ResponseBody String topDelete(int goodId, byte type) {
return topService.delete(goodId, type) ? "ok" : null;
}
/**
* 订单列表
* @return
*/
@GetMapping("/orderList")
public String orderList(HttpServletRequest request,
@RequestParam(required=false, defaultValue="0")byte status,
@RequestParam(required=false, defaultValue="1") int page,
@RequestParam(required=false, defaultValue="10") int size) {
request.setAttribute("flag", 3);
request.setAttribute("status", status);
request.setAttribute("orderList", orderService.getList(status, page, size));
request.setAttribute("pageTool", PageUtil.getPageTool(request, orderService.getCount(status), page, size));
return "/admin/order_list.jsp";
}
/**
* 订单发货
* @return
*/
@GetMapping("/orderSend")
public String orderSend(int id, byte status,
@RequestParam(required=false, defaultValue="1") int page) {
orderService.send(id);
return "redirect:orderList?flag=3&status="+status+"&page="+page;
}
/**
* 订单完成
* @return
*/
@GetMapping("/orderFinish")
public String orderFinish(int id, byte status,
@RequestParam(required=false, defaultValue="1") int page) {
orderService.finish(id);
return "redirect:orderList?flag=3&status="+status+"&page="+page;
}
/**
* 订单删除
* @return
*/
@GetMapping("/orderDelete")
public String orderDelete(int id, byte status,
@RequestParam(required=false, defaultValue="1") int page) {
orderService.delete(id);
return "redirect:orderList?flag=3&status="+status+"&page="+page;
}
/**
* 顾客管理
* @return
*/
@GetMapping("/userList")
public String userList(HttpServletRequest request,
@RequestParam(required=false, defaultValue="1") int page,
@RequestParam(required=false, defaultValue="10") int size) {
request.setAttribute("flag", 4);
request.setAttribute("userList", userService.getList(page, size));
request.setAttribute("pageTool", PageUtil.getPageTool(request, userService.getCount(), page, size));
return "/admin/user_list.jsp";
}
/**
* 顾客添加
* @return
*/
@GetMapping("/userAdd")
public String userAdd(HttpServletRequest request) {
request.setAttribute("flag", 4);
return "/admin/user_add.jsp";
}
/**
* 顾客添加
* @return
*/
@PostMapping("/userSave")
public String userSave(Users user, HttpServletRequest request,
@RequestParam(required=false, defaultValue="1") int page) {
if (Objects.nonNull(userService.getByUsername(user.getUsername()))) {
request.setAttribute("msg", "用户名已存在!");
return "/admin/user_add.jsp";
}
userService.add(user);
return "redirect:userList?flag=4&page="+page;
}
/**
* 顾客密码重置页面
* @return
*/
@GetMapping("/userRe")
public String userRe(int id, HttpServletRequest request) {
request.setAttribute("flag", 4);
request.setAttribute("user", userService.get(id));
return "/admin/user_reset.jsp";
}
/**
* 顾客密码重置
* @return
*/
@PostMapping("/userReset")
public String userReset(int id, String password,
@RequestParam(required=false, defaultValue="1") int page) {
userService.updatePassword(id, password);
return "redirect:userList?page="+page;
}
/**
* 顾客更新
* @return
*/
@GetMapping("/userEdit")
public String userEdit(int id, HttpServletRequest request) {
request.setAttribute("flag", 4);
request.setAttribute("user", userService.get(id));
return "/admin/user_edit.jsp";
}
/**
* 顾客更新
* @return
*/
@PostMapping("/userUpdate")
public String userUpdate(int id, String name, String phone, String address,
@RequestParam(required=false, defaultValue="1") int page) {
userService.update(id, name, phone, address);
return "redirect:userList?flag=4&page="+page;
}
/**
* 顾客删除
* @return
*/
@GetMapping("/userDelete")
public String userDelete(int id,
@RequestParam(required=false, defaultValue="1") int page) {
userService.delete(id);
return "redirect:userList?flag=4&page="+page;
}
/**
* 管理员列表
* @return
*/
@GetMapping("/adminList")
public String adminList(HttpServletRequest request,
@RequestParam(required=false, defaultValue="1") int page,
@RequestParam(required=false, defaultValue="10") int size) {
request.setAttribute("flag", 5);
request.setAttribute("adminList", adminService.getList(page, size));
request.setAttribute("pageTool", PageUtil.getPageTool(request, adminService.getCount(), page, size));
return "/admin/admin_list.jsp";
}
/**
* 管理员添加
* @return
*/
@GetMapping("/adminAdd")
public String adminAdd(HttpServletRequest request) {
request.setAttribute("flag", 5);
return "/admin/admin_add.jsp";
}
/**
* 管理员密码重置
* @return
*/
@GetMapping("/adminRe")
public String adminRe(int id, HttpServletRequest request) {
request.setAttribute("flag", 5);
request.setAttribute("admin", adminService.get(id));
return "/admin/admin_reset.jsp";
}
/**
* 管理员密码重置
* @return
*/
@PostMapping("/adminReset")
public String adminReset(int id, String password, HttpServletRequest request,
@RequestParam(required=false, defaultValue="1") int page) {
adminService.update(id, password);
return "redirect:adminList?page="+page;
}
/**
* 管理员添加
* @return
*/
@PostMapping("/adminSave")
public String adminSave(Admins admin, HttpServletRequest request,
@RequestParam(required=false, defaultValue="1") int page) {
if (Objects.nonNull(adminService.getByUsername(admin.getUsername()))) {
request.setAttribute("msg", "用户名已存在!");
return "/admin/admin_add.jsp";
}
adminService.add(admin);
return "redirect:adminList?flag=5&page="+page;
}
/**
* 管理员删除
* @return
*/
@GetMapping("/adminDelete")
public String adminDelete(int id,
@RequestParam(required=false, defaultValue="1") int page) {
adminService.delete(id);
return "redirect:adminList?flag=5&page="+page;
}
/**
* 图片上传
* @throws Exception
*/
@PostMapping("upload")
public @ResponseBody Map<String, Object> upload(MultipartFile imgFile) throws Exception {
Map<String, Object> map = new HashMap<>();
if (Objects.nonNull(imgFile) && !imgFile.isEmpty()) {
map.put("error", 0);
map.put("url", UploadUtil.upload(imgFile));
return map;
}else {
map.put("error", 1);
map.put("message", "上传出错啦");
}
return map;
}
/**
* 订单导出
*/
@RequestMapping("orderExportExcel")
public void orderExportExcel(HttpServletResponse response){
//导出所有订单
List<Orders> orderList = orderService.getAllList();
for(Orders orders : orderList){
if(orders.getAddress() != null && !"".equals(orders.getAddress())){
StringBuffer buf=new StringBuffer();
buf.append(orders.getName()+"\n"+orders.getPhone()+"\n"+orders.getAddress());
orders.setAddress(buf.toString());
}
if(orders.getStatus() == Orders.STATUS_UNPAY){
orders.setName("未付款");
}else if(orders.getStatus() == Orders.STATUS_PAYED){
orders.setName("已付款");
}else if(orders.getStatus() == Orders.PAYTYPE_OFFLINE){
orders.setName("配送中");
}else{
orders.setName("已完成");
}
if(orders.getPaytype() == Orders.PAYTYPE_WECHAT){
orders.setPhone("微信");
}else if(orders.getPaytype() == Orders.PAYTYPE_ALIPAY){
orders.setPhone("支付宝");
}else{
orders.setPhone("积分");
}
StringBuffer buf1=new StringBuffer();
orders.setUsername(orders.getUser().getName());
for(Items items : orders.getItemList()){
buf1.append(items.getGood().getName() + " *" + items.getAmount() + "\n");
}
orders.setDingdanInfo(buf1.toString());
}
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
try {
String export="订单编号#id,订单金额#total,商品详情#dingdanInfo,收货信息#address,订单状态#name,支付方式#phone,购买用户#username";//此处为标题,excel首行的title,按照此格式即可,格式无需改动,但是可以增加或者减少项目。
String[] excelHeader = export.split(",");
String fileName="订单" + sdf.format(new Date()); //className:生成的excel默认文件名和sheet页
ExcelUtils.export(response, fileName, excelHeader, orderList);//调用封装好的导出方法,具体方法在下面
} catch (Exception e) {
e.printStackTrace();
}
}
}
前台相关接口:
/**
* 前台相关接口
*/
@Controller
@RequestMapping("/index")
public class IndexController{
@Autowired
private GoodService goodService;
@Autowired
private TypeService typeService;
/**
* 首页
* @return
*/
@GetMapping("/index")
public String index(HttpServletRequest request){
request.setAttribute("flag", 1);
// 今日推荐
List<Goods> todayList = goodService.getListByTopType(Tops.TYPE_TODAY, 1, 6); // 取前6个
request.setAttribute("todayList", todayList);
// 热销排行
List<Goods> hotList = goodService.getListOrderSales(1, 10); // 取前10个
request.setAttribute("hotList", hotList);
// 类目列表
List<Types> typeList = typeService.getList();
List<Map<String, Object>> dataList = new ArrayList<>();
for(Types type : typeList) {
Map<String, Object> map = new HashMap<>();
map.put("type", type);
map.put("goodList", goodService.getListByType(type.getId(), 1, 15)); // 取前15个
dataList.add(map);
}
request.setAttribute("dataList", dataList);
return "/index/index.jsp";
}
/**
* 商品分类
* @return
* @throws UnsupportedEncodingException
*/
@GetMapping("/type")
public String type(HttpServletRequest request,
@RequestParam(required=false, defaultValue="0")int id,
@RequestParam(required=false, defaultValue="1")int page,
@RequestParam(required=false, defaultValue="10")int size) throws UnsupportedEncodingException {
request.setAttribute("type", typeService.get(id));
request.setAttribute("goodList", goodService.getListByType(id, page, size));
request.setAttribute("pageHtml", PageUtil.getPageHtml(request, goodService.getCountByType(id), page, size));
return "/index/goods.jsp";
}
/**
* 今日推荐
* @return
* @throws UnsupportedEncodingException
*/
@GetMapping("/today")
public String today(HttpServletRequest request,
@RequestParam(required=false, defaultValue="1")int page,
@RequestParam(required=false, defaultValue="10")int size) throws UnsupportedEncodingException {
request.setAttribute("flag", 2);
request.setAttribute("goodList", goodService.getListByTopType(Tops.TYPE_TODAY, page, size));
request.setAttribute("pageHtml", PageUtil.getPageHtml(request, goodService.getCountByTopType(Tops.TYPE_TODAY), page, size));
return "/index/goods.jsp";
}
/**
* 热销推荐
* @return
* @throws UnsupportedEncodingException
*/
@GetMapping("/hot")
public String hot(HttpServletRequest request,
@RequestParam(required=false, defaultValue="1")int page,
@RequestParam(required=false, defaultValue="10")int size) throws UnsupportedEncodingException{
request.setAttribute("flag", 3);
request.setAttribute("goodList", goodService.getListOrderSales(page, size));
request.setAttribute("pageHtml", PageUtil.getPageHtml(request, goodService.getCount(), page, size));
return "/index/goods.jsp";
}
/**
* 新品上市
* @return
* @throws UnsupportedEncodingException
*/
@GetMapping("/new")
public String news(HttpServletRequest request,
@RequestParam(required=false, defaultValue="1")int page,
@RequestParam(required=false, defaultValue="10")int size) throws UnsupportedEncodingException{
request.setAttribute("flag", 4);
request.setAttribute("goodList", goodService.getList(page, size));
request.setAttribute("pageHtml", PageUtil.getPageHtml(request, goodService.getCount(), page, size));
return "/index/goods.jsp";
}
/**
* 搜索
* @return
*/
@GetMapping("/search")
public String search(String search, HttpServletRequest request,
@RequestParam(required=false, defaultValue="1")int page,
@RequestParam(required=false, defaultValue="10")int size) throws UnsupportedEncodingException {
search = new String(search.getBytes("ISO8859-1"),"utf-8");
request.setAttribute("search", search);
System.out.println(search);
if (Objects.nonNull(search) && !search.trim().isEmpty()) {
request.setAttribute("goodList", goodService.getListByName(search, page, size));
request.setAttribute("pageHtml", PageUtil.getPageHtml(request, goodService.getTotalByName(search), page, size));
}
return "/index/goods.jsp";
}
/**
* 商品详情
* @return
*/
@GetMapping("/detail")
public String detail(int id, HttpServletRequest request){
request.setAttribute("good", goodService.get(id));
// 今日推荐前两个 在详情页显示
request.setAttribute("todayList", goodService.getListByTopType(Tops.TYPE_TODAY, 1, 2));
return "/index/detail.jsp";
}
}
源码获取:博客首页 "资源" 里下载!