基于springboot校园二手交易平台源码和论文含代码讲解视频

普通学生

  1. 添加商品到购物车、预订商品
  2. 前台登录、通过邮箱接受验证码注册和找回密码
  3. 查看和修改个人信息
  4. 发布商品和管理自己发布的商品(修改、删除、查询、上架、下架、完成交易、取消商品被预订)
  5. 管理自己的联系方式(添加、修改、删除、查询)
  6. 查看预订记录以及取消预订
  7. 查看自己的消息
  8. 给管理员留言以及管理自己的留言(查询、修改、删除)

管理员

  1. 管理普通学生(添加、修改、删除、查询、封禁与取消封禁)
  2. 商品类别管理(添加、修改、删除、查询)
  3. 商品管理(查询、删除、审核商品、推荐商品)
  4. 管理学生联系方式(修改、删除、查询)
  5. 管理学生留言(答复学生的留言、删除、查询)
  6. 管理首页的轮播图(添加、修改、删除、查询)
  7. 管理公告(添加、修改、删除、查询)
  8. 管理预订记录(查询、删除)
  9. 管理学生消息(查询、删除)
  10. 安全退出

伴随着中国科技的进步,资源稀缺问题也随之而来,因此充分利用循环经济越来越重要。物品资源的浪费现象不容忽视。中国不仅拥有庞大的纸质物品阅读群体,还拥有庞大的学生群体,若物品能够得到循环使用,则可以为国家节省巨大的资源,对减轻环境污染也起到很大的作用。在物品的使用方面,这样的循环利用物品的做法利于人们培养良好习惯、拥有节约观念。另一方面,“互联网+”也是当前国家提倡的科技模式。通过对二手物品的背景及政府导向和前景进行分析,将节约资源的二手物品模式与现代化的互联网相结合,二手物品交易平台应运而生。

本文详细介绍了在线购买二手物品的具体流程和操作方式,以及基于 SSH2 框架的二手物品交易平台的设计过程及实现方法。本交易平台采用 MVC 设计模式,通过Mybatis Plus对数据库进行操作,由 controller负责控制层,通过 spring 负责协调各部分的调用及销毁。系统充分运用计算机管理信息技术,建立数据库,对购买二手物品及售卖二手物品过程进行详细分析,实现了对在线学生的注册,修改等学生信息管理功能,以及对二手物品的浏览、查询、预定以及发布修改等操作功能。

关键字: 校园二手;B/S模式;springboot;mysql

【679】基于springboot校园二手交易平台源码和论文含代码讲解视频

ABSTRACT

With the progress of science and technology in China, the problem of resource scarcity also comes, so it is more and more important to make full use of circular economy. The waste of material resources cannot be ignored. China not only has a large group of paper articles to read, but also has a large group of students. If the articles can be recycled, it can save huge resources for the country and play a great role in reducing environmental pollution. In terms of the use of goods, such recycling of goods helps people develop good habits and have the concept of saving. On the other hand, "Internet plus" is also a scientific and technological model advocated by the current state. Through the analysis of the background, government guidance and prospects of second-hand goods, the second-hand goods trading platform came into being by combining the resource saving second-hand goods model with the modern Internet.

This paper introduces in detail the specific process and operation mode of online purchase of second-hand goods, as well as the design process and implementation method of the second-hand goods trading platform based on the SSH2 framework. This trading platform adopts MVC design mode to operate the database through Mybatis Plus. The controller is responsible for the control layer and spring is responsible for coordinating the call and destruction of all parts. The system makes full use of computer management information technology, establishes a database, analyzes the process of purchasing second-hand goods and selling second-hand goods in detail, realizes user information management functions such as registration and modification of online users, as well as operation functions such as browsing, querying, booking and publishing modification of second-hand goods.

Key words: campus second-hand; B/S mode; springboot; mysql

package com.ledao.controller;

import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.google.gson.Gson;
import com.ledao.entity.*;
import com.ledao.service.*;
import com.ledao.util.DateUtil;
import com.ledao.util.ImageUtil;
import com.ledao.util.PageUtil;
import com.ledao.util.RedisUtil;
import org.apache.commons.io.FileUtils;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.select.Elements;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.multipart.MultipartFile;
import org.springframework.web.servlet.ModelAndView;

import javax.annotation.Resource;
import javax.servlet.http.HttpSession;
import java.io.File;
import java.util.*;

/**
 * 首页Controller
 *
 *
 * @company
 * @create 2023-01-03 14:03
 */
@Controller
public class IndexController {

    @Value("${articleImageFilePath}")
    private String articleImageFilePath;

    @Value("${wantToBuyId}")
    private String wantToBuyId;

    @Resource
    private UserService userService;

    @Resource
    private CarouselService carouselService;

    @Resource
    private AnnouncementService announcementService;

    @Resource
    private GoodsTypeService goodsTypeService;

    @Resource
    private GoodsService goodsService;

    @Resource
    private MessageService messageService;

    @Resource
    private ReserveRecordService reserveRecordService;

    /**
     * 管理员登录
     *
     * @param user
     * @param session
     * @return
     */
    @ResponseBody
    @RequestMapping("/login")
    public Map<String, Object> login(User user, HttpSession session) {
        Map<String, Object> resultMap = new HashMap<>(16);
        String checkCode = (String) session.getAttribute("checkCode");
        //验证码正确
        if (checkCode.equals(user.getImageCode())) {
            User currentUser = userService.findByUserName(user.getUserName());
            //用户存在时
            if (currentUser != null) {
                //登录的用户身份不是管理员
                if (currentUser.getType() == 1) {
                    //用户没有被封禁
                    if (currentUser.getStatus() == 1) {
                        //密码正确时
                        if (currentUser.getPassword().equals(user.getPassword())) {
                            resultMap.put("success", true);
                            resultMap.put("currentUserType", currentUser.getType());
                            session.setAttribute("currentUserAdmin", currentUser);
                        } else {
                            resultMap.put("success", false);
                            resultMap.put("errorInfo", "用户名或密码错误,请重新输入!!");
                        }
                    } else {
                        resultMap.put("success", false);
                        resultMap.put("errorInfo", "你的账号已被封禁,如要解禁联系管理员\n管理员邮箱为:1234567890@qq.com");
                    }
                } else {
                    resultMap.put("success", false);
                    resultMap.put("errorInfo", "请使用管理员身份登录!!");
                }
            } else {
                resultMap.put("success", false);
                resultMap.put("errorInfo", "用户名或密码错误,请重新输入!!");
            }
        } else {
            resultMap.put("success", false);
            resultMap.put("errorInfo", "验证码错误,请重新输入!!");
        }
        return resultMap;
    }

    /**
     * 注销登录
     *
     * @param session
     * @return
     */
    @RequestMapping("/logout")
    public String logout(HttpSession session) {
        session.removeAttribute("currentUserAdmin");
        return "redirect:/login.html";
    }

    /**
     * 获取当前登录用户信息
     *
     * @param session
     * @return
     */
    @ResponseBody
    @RequestMapping("/getUserInfo")
    public Map<String, Object> getUserInfo(HttpSession session) {
        Map<String, Object> resultMap = new HashMap<>(16);
        User currentUser = (User) session.getAttribute("currentUserAdmin");
        if (currentUser != null) {
            resultMap.put("success", true);
            resultMap.put("currentUserAdmin", currentUser);
        } else {
            resultMap.put("success", false);
        }
        return resultMap;
    }

    /**
     * 首页
     *
     * @return
     */
    @RequestMapping("/")
    public ModelAndView root() {
        ModelAndView mav = new ModelAndView();
        //获取轮播图list
        QueryWrapper<Carousel> carouselQueryWrapper = new QueryWrapper<>();
        carouselQueryWrapper.orderByAsc("sortNum");
        List<Carousel> carouselList = carouselService.list(carouselQueryWrapper);
        mav.addObject("carouselList", carouselList);
        //获取公告list
        QueryWrapper<Announcement> announcementQueryWrapper = new QueryWrapper<>();
        announcementQueryWrapper.orderByAsc("sortNum");
        List<Announcement> announcementList = announcementService.list(announcementQueryWrapper);
        mav.addObject("announcementList", announcementList);
        //获取9个最近发布的商品
        QueryWrapper<Goods> goodsQueryWrapper = new QueryWrapper<>();
        goodsQueryWrapper.orderByDesc("addTime");
        goodsQueryWrapper.ne("goodsTypeId", wantToBuyId);
        goodsQueryWrapper.eq("state", 1);
        Page<Goods> goodsPage = new Page<>(1, 9);
        List<Goods> goodsNewList = goodsService.list(goodsPage, goodsQueryWrapper);
        for (Goods goods : goodsNewList) {
            getFirstImageInGoodsContent(goods);
            goods.setGoodsTypeName(goodsTypeService.findById(goods.getGoodsTypeId()).getName());
        }
        mav.addObject("goodsNewList", goodsNewList);
        //获取9个热门商品
        QueryWrapper<Goods> goodsQueryWrapper2 = new QueryWrapper<>();
        goodsQueryWrapper2.orderByDesc("click");
        goodsQueryWrapper2.ne("goodsTypeId", wantToBuyId);
        goodsQueryWrapper2.eq("state", 1);
        Page<Goods> goodsPage2 = new Page<>(1, 9);
        List<Goods> goodsHotList = goodsService.list(goodsPage2, goodsQueryWrapper2);
        for (Goods goods : goodsHotList) {
            getFirstImageInGoodsContent(goods);
            goods.setGoodsTypeName(goodsTypeService.findById(goods.getGoodsTypeId()).getName());
        }
        mav.addObject("goodsHotList", goodsHotList);
        //获取推荐商品列表
        QueryWrapper<Goods> goodsQueryWrapper3 = new QueryWrapper<>();
        //被推荐
        goodsQueryWrapper3.eq("isRecommend", 1);
        //上架中
        goodsQueryWrapper3.eq("state", 1);
        //不是求购
        goodsQueryWrapper3.ne("goodsTypeId", wantToBuyId);
        Page<Goods> goodsPage3 = new Page<>(1, 9);
        List<Goods> goodsRecommendList = goodsService.list(goodsPage3, goodsQueryWrapper3);
        for (Goods goods : goodsRecommendList) {
            getFirstImageInGoodsContent(goods);
            goods.setGoodsTypeName(goodsTypeService.findById(goods.getGoodsTypeId()).getName());
        }
        Collections.shuffle(goodsRecommendList);
        mav.addObject("goodsRecommendList", goodsRecommendList);
        mav.addObject("isHome", true);
        mav.addObject("title", "首页--LeDao校园二手交易平台");
        mav.addObject("mainPage", "page/indexFirst");
        mav.addObject("mainPageKey", "#b");
        mav.setViewName("index");
        return mav;
    }

    /**
     * 从商品详情内取第一张图片
     *
     * @param goods
     */
    public static void getFirstImageInGoodsContent(Goods goods) {

        //博客里的内容
        String goodsInfo = goods.getContent();
        //抓取出博客里的内容
        Document document = Jsoup.parse(goodsInfo);
        //提出.jpg图片
        Elements jpgs = document.select("img[src$=.jpg]");
        if (jpgs.size() > 0) {
            String imageName = String.valueOf(jpgs.get(0));
            int begin = imageName.indexOf("/static/images/articleImage/");
            int last = imageName.indexOf(".jpg");
            goods.setImageName(imageName.substring(begin + "/static/images/articleImage/".length(), last));
        } else {
            goods.setImageName("1");
        }
    }

    /**
     * 跳转到用户登录界面
     *
     * @return
     */
    @RequestMapping("/toLoginPage")
    public ModelAndView toLoginPage() {
        ModelAndView mav = new ModelAndView();
        mav.addObject("title", "用户登录--LeDao校园二手交易平台");
        mav.addObject("mainPage", "page/login");
        mav.addObject("mainPageKey", "#b");
        mav.setViewName("index");
        return mav;
    }

    /**
     * 跳转到用户注册界面
     *
     * @return
     */
    @RequestMapping("/toRegisterPage")
    public ModelAndView toRegisterPage() {
        ModelAndView mav = new ModelAndView();
        mav.addObject("title", "用户注册--LeDao校园二手交易平台");
        mav.addObject("mainPage", "page/register");
        mav.addObject("mainPageKey", "#b");
        mav.setViewName("index");
        return mav;
    }

    /**
     * 跳转到找回密码界面
     *
     * @return
     */
    @RequestMapping("/toResetPasswordPage")
    public ModelAndView toResetPasswordPage() {
        ModelAndView mav = new ModelAndView();
        mav.addObject("title", "找回密码--LeDao校园二手交易平台");
        mav.addObject("mainPage", "page/resetPassword");
        mav.addObject("mainPageKey", "#b");
        mav.setViewName("index");
        return mav;
    }

    /**
     * 跳转到联系我们界面
     *
     * @return
     */
    @RequestMapping("/toContactPage")
    public ModelAndView toContactPage(HttpSession session) {
        ModelAndView mav = new ModelAndView();
        User currentUser = (User) session.getAttribute("currentUser");
        if (currentUser == null) {
            ModelAndView mav2 = new ModelAndView("redirect:/toLoginPage");
            return mav2;
        }
        mav.addObject("title", "联系我们--LeDao校园二手交易平台");
        mav.addObject("mainPage", "page/contact");
        mav.addObject("mainPageKey", "#b");
        mav.setViewName("index");
        return mav;
    }

    /**
     * 跳转到个人中心界面
     *
     * @return
     */
    @RequestMapping("/toPersonalHubsPage")
    public ModelAndView toPersonalHubsPage(HttpSession session) {
        ModelAndView mav = new ModelAndView();
        User currentUser = (User) session.getAttribute("currentUser");
        if (currentUser == null) {
            ModelAndView mav2 = new ModelAndView("redirect:/toLoginPage");
            return mav2;
        }
        mav.addObject("title", "个人中心--LeDao校园二手交易平台");
        mav.addObject("mainPage", "page/personalHubs");
        mav.addObject("mainPageKey", "#b");
        mav.setViewName("index");
        return mav;
    }

    /**
     * 跳转到查看个人信息界面
     *
     * @return
     */
    @RequestMapping("/toPersonalInfoPage")
    public ModelAndView toPersonalInfoPage(HttpSession session) {
        ModelAndView mav = new ModelAndView();
        User currentUser = (User) session.getAttribute("currentUser");
        if (currentUser == null) {
            ModelAndView mav2 = new ModelAndView("redirect:/toLoginPage");
            return mav2;
        }
        mav.addObject("title", "个人中心--LeDao校园二手交易平台");
        mav.addObject("mainPage", "page/personalInfo");
        mav.addObject("mainPageKey", "#b");
        mav.setViewName("index");
        return mav;
    }

    /**
     * 跳转到发布商品界面
     *
     * @return
     */
    @RequestMapping("/toAddGoodsPage")
    public ModelAndView toAddGoodsPage(HttpSession session) {
        ModelAndView mav = new ModelAndView();
        User currentUser = (User) session.getAttribute("currentUser");
        if (currentUser == null) {
            ModelAndView mav2 = new ModelAndView("redirect:/toLoginPage");
            return mav2;
        }
        QueryWrapper<GoodsType> goodsTypeQueryWrapper = new QueryWrapper<>();
        goodsTypeQueryWrapper.orderByAsc("sortNum");
        List<GoodsType> goodsTypeList = goodsTypeService.list(goodsTypeQueryWrapper);
        mav.addObject("goodsTypeList", goodsTypeList);
        mav.addObject("title", "发布商品--LeDao校园二手交易平台");
        mav.addObject("mainPage", "page/addGoods");
        mav.addObject("mainPageKey", "#b");
        mav.setViewName("index");
        return mav;
    }

    /**
     * 跳转到我的商品管理界面
     *
     * @return
     */
    @RequestMapping("/toGoodsManagePage")
    public ModelAndView toGoodsManagePage(HttpSession session, Goods searchGoods) {
        ModelAndView mav = new ModelAndView();
        User currentUser = (User) session.getAttribute("currentUser");
        if (currentUser == null) {
            ModelAndView mav2 = new ModelAndView("redirect:/toLoginPage");
            return mav2;
        }
        QueryWrapper<Goods> goodsQueryWrapper = new QueryWrapper<>();
        goodsQueryWrapper.eq("userId", currentUser.getId());
        goodsQueryWrapper.orderByDesc("addTime");
        if (searchGoods.getName() != null) {
            goodsQueryWrapper.like("name", searchGoods.getName());
            mav.addObject("name", searchGoods.getName());
        }
        if (searchGoods.getGoodsTypeId() != null) {
            goodsQueryWrapper.eq("goodsTypeId", searchGoods.getGoodsTypeId());
            mav.addObject("goodsTypeId", searchGoods.getGoodsTypeId());
        }
        if (searchGoods.getState() != null) {
            goodsQueryWrapper.eq("state", searchGoods.getState());
            mav.addObject("state", searchGoods.getState());
        }
        if (searchGoods.getIsRecommend() != null) {
            goodsQueryWrapper.eq("isRecommend", searchGoods.getIsRecommend());
            mav.addObject("recommend", searchGoods.getIsRecommend());
        }
        List<Goods> goodsList = goodsService.list(goodsQueryWrapper);
        for (Goods goods : goodsList) {
            goods.setGoodsTypeName(goodsTypeService.findById(goods.getGoodsTypeId()).getName());
        }
        //商品分类列表
        QueryWrapper<GoodsType> goodsTypeQueryWrapper = new QueryWrapper<>();
        goodsTypeQueryWrapper.orderByAsc("sortNum");
        List<GoodsType> goodsTypeList = goodsTypeService.list(goodsTypeQueryWrapper);
        mav.addObject("goodsTypeList", goodsTypeList);
        mav.addObject("goodsList", goodsList);
        mav.addObject("title", "我的商品管理--LeDao校园二手交易平台");
        mav.addObject("mainPage", "page/goodsManage");
        mav.addObject("mainPageKey", "#b");
        mav.setViewName("index");
        return mav;
    }

    /**
     * 跳转到我的消息界面
     *
     * @return
     */
    @RequestMapping("/toMyMessagePage")
    public ModelAndView toMyMessagePage(HttpSession session) {
        ModelAndView mav = new ModelAndView();
        User currentUser = (User) session.getAttribute("currentUser");
        if (currentUser == null) {
            ModelAndView mav2 = new ModelAndView("redirect:/toLoginPage");
            return mav2;
        }
        QueryWrapper<Message> messageQueryWrapper = new QueryWrapper<>();
        messageQueryWrapper.eq("userId", currentUser.getId());
        messageQueryWrapper.orderByDesc("time");
        List<Message> messageList = messageService.list(messageQueryWrapper);
        mav.addObject("messageList", messageList);
        mav.addObject("title", "我的消息--LeDao校园二手交易平台");
        mav.addObject("mainPage", "page/myMessage");
        mav.addObject("mainPageKey", "#b");
        mav.setViewName("index");
        return mav;
    }

    /**
     * ckeditor上传图片
     *
     * @param file
     * @param CKEditorFuncNum
     * @return
     * @throws Exception
     */
    @ResponseBody
    @RequestMapping("/ckeditorUpload")
    public String ckeditorUpload(@RequestParam("upload") MultipartFile file, String CKEditorFuncNum) throws Exception {
        // 获取文件名
        String fileName = file.getOriginalFilename();
        // 获取文件的后缀
        String suffixName = fileName.substring(fileName.lastIndexOf("."));
        //拼接新的文件名
        String newFileName1 = DateUtil.getCurrentDateStr2() + System.currentTimeMillis() + ".jpg";
        FileUtils.copyInputStreamToFile(file.getInputStream(), new File(articleImageFilePath + "/" + newFileName1));
        //新文件名2
        String newFileName2 = DateUtil.getCurrentDateStr2() + System.currentTimeMillis() + ".jpg";
        //压缩图片
        ImageUtil.compressImage(new File(articleImageFilePath + newFileName1), new File(articleImageFilePath + newFileName2));
        StringBuffer sb = new StringBuffer();
        sb.append("<script type=\"text/javascript\">");
        sb.append("window.parent.CKEDITOR.tools.callFunction(" + CKEditorFuncNum + ",'" + "/static/images/articleImage/" + newFileName2 + "','')");
        sb.append("</script>");
        return sb.toString();
    }

    /**
     * 跳转到求购页面
     *
     * @return
     */
    @RequestMapping("/toWantToBuyPage")
    public ModelAndView toWantToBuyPage() {
        ModelAndView mav = new ModelAndView();
        //商品分类列表
        QueryWrapper<GoodsType> goodsTypeQueryWrapper = new QueryWrapper<>();
        goodsTypeQueryWrapper.orderByAsc("sortNum");
        List<GoodsType> goodsTypeList = goodsTypeService.list(goodsTypeQueryWrapper);
        for (int i = 0; i < goodsTypeList.size(); i++) {
            if ("求购".equals(goodsTypeList.get(i).getName())) {
                goodsTypeList.remove(goodsTypeList.get(i));
                i--;
            }
        }
        mav.addObject("goodsTypeList", goodsTypeList);
        //获取推荐商品列表
        QueryWrapper<Goods> goodsQueryWrapper3 = new QueryWrapper<>();
        goodsQueryWrapper3.eq("state", 1);
        goodsQueryWrapper3.eq("isRecommend", 1);
        Page<Goods> goodsPage3 = new Page<>(1, 9);
        List<Goods> goodsRecommendList = goodsService.list(goodsPage3, goodsQueryWrapper3);
        for (Goods goods2 : goodsRecommendList) {
            getFirstImageInGoodsContent(goods2);
            goods2.setGoodsTypeName(goodsTypeService.findById(goods2.getGoodsTypeId()).getName());
        }
        Collections.shuffle(goodsRecommendList);
        mav.addObject("goodsRecommendList", goodsRecommendList);
        //获取求购列表
        QueryWrapper<Goods> goodsQueryWrapper2 = new QueryWrapper<>();
        goodsQueryWrapper2.eq("goodsTypeId", wantToBuyId);
        goodsQueryWrapper2.eq("state", 1);
        goodsQueryWrapper2.orderByDesc("addTime");
        List<Goods> goodsWantToBuyList = goodsService.list(goodsQueryWrapper2);
        mav.addObject("isWantToBuy", true);
        mav.addObject("goodsWantToBuyList", goodsWantToBuyList);
        mav.addObject("title", "用户求购--LeDao校园二手交易平台");
        mav.addObject("mainPage", "page/wantToBuy");
        mav.addObject("mainPageKey", "#b");
        mav.setViewName("index");
        return mav;
    }

    /**
     * 跳转到分类页面
     *
     * @return
     */
    @RequestMapping("/toSortPage")
    public ModelAndView toSortPage(Integer goodsTypeId, Integer page) {
        //每页展示的商品数量
        int pageSize = 9;
        if (page == null) {
            page = 1;
        }
        ModelAndView mav = new ModelAndView();
        //获取商品列表
        QueryWrapper<Goods> goodsQueryWrapper = new QueryWrapper<>();
        goodsQueryWrapper.eq("goodsTypeId", goodsTypeId);
        goodsQueryWrapper.eq("state", 1);
        Page<Goods> goodsPage = new Page<>(page, pageSize);
        List<Goods> goodsList = goodsService.list(goodsPage, goodsQueryWrapper);
        for (Goods goods : goodsList) {
            getFirstImageInGoodsContent(goods);
        }
        mav.addObject("goodsList", goodsList);
        //商品分类列表
        QueryWrapper<GoodsType> goodsTypeQueryWrapper = new QueryWrapper<>();
        goodsTypeQueryWrapper.orderByAsc("sortNum");
        List<GoodsType> goodsTypeList = goodsTypeService.list(goodsTypeQueryWrapper);
        for (int i = 0; i < goodsTypeList.size(); i++) {
            if ("求购".equals(goodsTypeList.get(i).getName())) {
                goodsTypeList.remove(goodsTypeList.get(i));
                i--;
            }
        }
        mav.addObject("goodsTypeList", goodsTypeList);
        //获取推荐商品列表
        QueryWrapper<Goods> goodsQueryWrapper3 = new QueryWrapper<>();
        goodsQueryWrapper3.eq("isRecommend", 1);
        goodsQueryWrapper3.eq("state", 1);
        Page<Goods> goodsPage3 = new Page<>(1, 9);
        List<Goods> goodsRecommendList = goodsService.list(goodsPage3, goodsQueryWrapper3);
        for (Goods goods2 : goodsRecommendList) {
            getFirstImageInGoodsContent(goods2);
            goods2.setGoodsTypeName(goodsTypeService.findById(goods2.getGoodsTypeId()).getName());
        }
        Collections.shuffle(goodsRecommendList);
        mav.addObject("goodsRecommendList", goodsRecommendList);
        mav.addObject("isSort", true);
        mav.addObject("goodsTypeName", goodsTypeService.findById(goodsTypeId).getName());
        StringBuilder param = new StringBuilder();
        param.append("&goodsTypeId=").append(goodsTypeId);
        mav.addObject("pageCode", PageUtil.genPagination1("/toSortPage", goodsService.getCount(goodsQueryWrapper), page, pageSize, param.toString()));
        mav.addObject("title", "分类--LeDao校园二手交易平台");
        mav.addObject("mainPage", "page/sortPage");
        mav.addObject("mainPageKey", "#b");
        mav.setViewName("index");
        return mav;
    }

    /**
     * 跳转到我的购物车界面
     *
     * @param session
     * @return
     */
    @RequestMapping("/toMyShoppingCart")
    public ModelAndView toMyShoppingCart(HttpSession session) {
        ModelAndView mav = new ModelAndView();
        Gson gson = new Gson();
        User currentUser = (User) session.getAttribute("currentUser");
        if (currentUser == null) {
            ModelAndView mav2 = new ModelAndView("redirect:/toLoginPage");
            return mav2;
        }
        String shoppingCartName = currentUser.getId() + "_shoppingCart";
        List<String> shoppingCartGoodsStr = RedisUtil.listRange(shoppingCartName, 0L, -1L);
        List<Goods> shoppingCartGoodsList = new ArrayList<>();
        for (String s : shoppingCartGoodsStr) {
            Goods goods = gson.fromJson(s, Goods.class);
            shoppingCartGoodsList.add(goods);
            getFirstImageInGoodsContent(goods);
        }
        Iterator<Goods> iterator = shoppingCartGoodsList.iterator();
        while (iterator.hasNext()) {
            Goods goods = goodsService.findById(iterator.next().getId());
            if (goods == null) {
                iterator.remove();
            }
        }
        mav.addObject("shoppingCartGoodsList", shoppingCartGoodsList);
        mav.addObject("shoppingCartGoodsListSize", shoppingCartGoodsList.size());
        //商品分类列表
        QueryWrapper<GoodsType> goodsTypeQueryWrapper = new QueryWrapper<>();
        goodsTypeQueryWrapper.orderByAsc("sortNum");
        List<GoodsType> goodsTypeList = goodsTypeService.list(goodsTypeQueryWrapper);
        for (int i = 0; i < goodsTypeList.size(); i++) {
            if ("求购".equals(goodsTypeList.get(i).getName())) {
                goodsTypeList.remove(goodsTypeList.get(i));
                i--;
            }
        }
        mav.addObject("goodsTypeList", goodsTypeList);
        //获取推荐商品列表
        QueryWrapper<Goods> goodsQueryWrapper3 = new QueryWrapper<>();
        goodsQueryWrapper3.eq("isRecommend", 1);
        goodsQueryWrapper3.eq("state", 1);
        Page<Goods> goodsPage3 = new Page<>(1, 9);
        List<Goods> goodsRecommendList = goodsService.list(goodsPage3, goodsQueryWrapper3);
        for (Goods goods2 : goodsRecommendList) {
            getFirstImageInGoodsContent(goods2);
            goods2.setGoodsTypeName(goodsTypeService.findById(goods2.getGoodsTypeId()).getName());
        }
        Collections.shuffle(goodsRecommendList);
        mav.addObject("goodsRecommendList", goodsRecommendList);
        mav.addObject("title", "我的购物车--LeDao校园二手交易平台");
        mav.addObject("mainPage", "page/myShoppingCart");
        mav.addObject("mainPageKey", "#b");
        mav.setViewName("index");
        return mav;
    }


    /**
     * 跳转到我的预订界面
     *
     * @param session
     * @param searchReserveRecord
     * @return
     */
    @RequestMapping("/toMyReserveRecordPage")
    public ModelAndView toMyReserveRecordPage(HttpSession session, ReserveRecord searchReserveRecord) {
        ModelAndView mav = new ModelAndView();
        User currentUser = (User) session.getAttribute("currentUser");
        if (currentUser == null) {
            ModelAndView mav2 = new ModelAndView("redirect:/toLoginPage");
            return mav2;
        }
        QueryWrapper<ReserveRecord> reserveRecordQueryWrapper = new QueryWrapper<>();
        if (searchReserveRecord.getState() != null) {
            reserveRecordQueryWrapper.eq("state", searchReserveRecord.getState());
            mav.addObject("state", searchReserveRecord.getState());
        }
        if (searchReserveRecord.getGoodsName() != null) {
            List<Integer> goodsIdList = new ArrayList<>();
            QueryWrapper<Goods> goodsQueryWrapper = new QueryWrapper<>();
            goodsQueryWrapper.like("name", searchReserveRecord.getGoodsName());
            mav.addObject("goodsName", searchReserveRecord.getGoodsName());
            List<Goods> goodsList = goodsService.list(goodsQueryWrapper);
            if (goodsList.size() > 0) {
                for (Goods goods : goodsList) {
                    goodsIdList.add(goods.getId());
                }
            } else {
                goodsIdList.add(-1);
            }
            reserveRecordQueryWrapper.in("goodsId", goodsIdList);
        }
        reserveRecordQueryWrapper.eq("userId", currentUser.getId());
        reserveRecordQueryWrapper.orderByDesc("reserveTime");
        List<ReserveRecord> reserveRecordList = reserveRecordService.list(reserveRecordQueryWrapper);
        for (ReserveRecord reserveRecord : reserveRecordList) {
            reserveRecord.setGoodsName(goodsService.findById(reserveRecord.getGoodsId()).getName());
        }
        mav.addObject("reserveRecordList", reserveRecordList);
        mav.addObject("title", "我的预订--LeDao校园二手交易平台");
        mav.addObject("mainPage", "page/myReserveRecord");
        mav.addObject("mainPageKey", "#b");
        mav.setViewName("index");
        return mav;
    }

    @ResponseBody
    @RequestMapping("/setRedisKey")
    public String setRedisKey() {
        RedisUtil.setKey("a", "1");
        RedisUtil.setKeyTime("a", 10);
        System.out.println(new Date() + ": " + "设置了key,过期时间为" + 10 + "秒");
        return "设置成功";
    }

    /**
     * 跳转到测试界面
     *
     * @return
     */
    @RequestMapping("/toTestPage")
    public ModelAndView toTestPage() {
        ModelAndView mav = new ModelAndView();
        List<GoodsType> goodsTypeList = goodsTypeService.list(null);
        mav.addObject("goodsTypeList", goodsTypeList);
        mav.addObject("title", "测试界面--LeDao校园二手交易平台");
        mav.addObject("mainPage", "page/test");
        mav.addObject("mainPageKey", "#b");
        mav.setViewName("index");
        return mav;
    }

    /**
     * 根据商品类别id获取商品集合
     *
     * @param goodsTypeId
     * @return
     */
    @ResponseBody
    @RequestMapping("/getGoodsListByGoodsTypeId")
    public List<Goods> getGoodsListByGoodsTypeId(Integer goodsTypeId) {
        QueryWrapper<Goods> goodsQueryWrapper = new QueryWrapper<>();
        goodsQueryWrapper.eq("goodsTypeId", goodsTypeId);
        return goodsService.list(goodsQueryWrapper);
    }
}

  • 18
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序猿毕业分享网

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值