博主主页:猫头鹰源码
博主简介:Java领域优质创作者、CSDN博客专家、公司架构师、全网粉丝5万+、专注Java技术领域和毕业设计项目实战
主要内容:毕业设计(Javaweb项目|小程序等)、简历模板、学习资料、面试题库、技术咨询
文末联系获取
该系统创作于2022年5月,包含详细数据库设计。基于springboot技术,数据层为MyBatis,mysql数据库,页面使用html,具有完整的业务逻辑,适合选题:校园跑腿、跑腿、校园帮等。



后端:springboot、mybatis
前端:layui,js,css等,html页面
开发工具:idea
数据库:mysql 5.7
JDK版本:jdk1.8
下面是用户首页,可以看到部分任务和商品

登录页面如下:

分页展示商品,可以筛选

点击某一个,可以看到商品详情,可以加入购物车

所有任务

任务详情查看
商品订单

管理员-首页
管理员-商家认证

管理员-骑手认证

管理员-用户管理

商家-添加商品

商家-商品管理

拦截器
- @Override
- public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
- HttpSession session = request.getSession();
- if(session.getAttribute("userInfo") != null){
- return true;
- }
- // 不符合条件的给出提示信息,并转发到主页面
- request.setAttribute("msg", "您还没有登录,请先登录!");
- request.getRequestDispatcher("/logout").forward(request, response);
- //返回true通过,返回false拦截
- return false;
- }
文件上传
- /**
- * 文件上传
- * @param dropFile
- * @param request
- * @return
- */
- @ResponseBody
- @RequestMapping(value = "/avatar", method = RequestMethod.POST)
- public Map<String, Object> acticleAvatar(MultipartFile dropFile, HttpServletRequest request) throws IOException {
- Map<String, Object> result = new HashMap<>();
- //获取文件后缀
- String fileName = dropFile.getOriginalFilename();
- String fileSuffix = fileName.substring(fileName.lastIndexOf('.'));
- //文件存放路径
- String fileDirPath = new String(uploadDir);
- File fileDir = new File(fileDirPath);
- //判断文件是否存在
- if (!fileDir.exists()){
- fileDir.mkdirs();
- }
- File file = new File(fileDir.getAbsolutePath()+ File.separator+ UUID.randomUUID() + fileSuffix);
- try {
- dropFile.transferTo(file);
- } catch (IOException e) {
- e.printStackTrace();
- }
- //传到前端
- result.put("fileName", "http://localhost:"+port+"/upload/"+file.getName());
- return result;
- }
首页相关操作
- //首页
- @GetMapping("/")
- public String userIframe(Model model){
- Map mp = new HashMap<>();
- mp.put("limit","1");
- mp.put("status","01");
- List<CustomOrder> customOrderList = customOrderService.queryFilter(mp);
- model.addAttribute("customOrderList",customOrderList);
- List<Goods> goods = goodsService.queryFilter(mp);
- model.addAttribute("goods",goods);
- return "show";
- }
-
- //自定义订单
- @GetMapping("/corder")
- public String corder(Model model, String searchName, Integer pageNum, Integer pageSize){
- Map mp = new HashMap<>();
- mp.put("name",searchName);
- mp.put("status","01");
- if(pageNum==null){
- pageNum =1;
- }
- if(pageSize==null){
- pageSize =10;
- }
- PageHelper.startPage(pageNum,pageSize);
- List<CustomOrder> customOrders = customOrderService.queryFilter(mp);
- PageInfo<CustomOrder> customOrderList = new PageInfo<>(customOrders);
- model.addAttribute("customOrderList",customOrderList);
- return "CustomOrder";
- }
-
-
- //商品订单
- @GetMapping("/sorder")
- public String sorder(Model model, String searchName, Integer pageNum, Integer pageSize){
- Map mp = new HashMap<>();
- mp.put("no",searchName);
- mp.put("status","01");
- if(pageNum==null){
- pageNum =1;
- }
- if(pageSize==null){
- pageSize =10;
- }
- PageHelper.startPage(pageNum,pageSize);
- List<Orders> orderss = ordersService.queryFilter(mp);
- PageInfo<Orders> ordersList = new PageInfo<>(orderss);
- model.addAttribute("ordersList",ordersList);
- return "goodsOrder";
- }
-
- //商品
- @GetMapping("/good")
- public String good(Model model, String storeName, String name, Integer pageNum, Integer pageSize){
- Map mp = new HashMap<>();
- mp.put("storeName",storeName);
- mp.put("name",name);
- mp.put("status","01");
- if(pageNum==null){
- pageNum =1;
- }
- if(pageSize==null){
- pageSize =8;
- }
- PageHelper.startPage(pageNum,pageSize);
- List<Goods> goodsList = goodsService.queryFilter(mp);
- PageInfo<Goods> goods = new PageInfo<>(goodsList);
- model.addAttribute("goods",goods);
- return "good";
- }
-
- //商品详情
- @GetMapping("/goodDetail")
- public String goodDetail(String id, Model model){
- Goods good = goodsService.selectById(id);
- model.addAttribute("id",id);
- model.addAttribute("good",good);
- return "goodDetail";
- }
商品操作
- /**列表数据*/
- @GetMapping("/list")
- @ResponseBody
- public PageResultVo findGoods(Goods goods, Integer limit, Integer page, HttpSession session){
- String type = (String)session.getAttribute("type");
- if(type.equals("03")){
- User user = (User)session.getAttribute("userInfo");
- goods.setUid(String.valueOf(user.getId()));
- }
- PageHelper.startPage(page,limit);
- List<Goods> goodsList = goodsService.selectByCondition(goods);
- PageInfo<Goods> pages = new PageInfo<>(goodsList);
- return JsonData.table(goodsList,pages.getTotal());
- }
-
-
- /**编辑详情*/
- @GetMapping("/edit")
- @ResponseBody
- public Goods edit(Model model, String id){
- return goodsService.selectById(id);
- }
-
-
- /**编辑*/
- @PostMapping("/edit")
- @ResponseBody
- public JsonData edit(Goods goods){
- int a = goodsService.updateById(goods);
- if (a > 0) {
- return JsonData.success(null,"编辑成功!");
- } else {
- return JsonData.fail("编辑失败");
- }
- }
-
-
- /**删除*/
- @PostMapping("/del")
- @ResponseBody
- public JsonData del(String id){
- try{
- goodsService.deleteById(Integer.parseInt(id));
- }catch(Exception ex){
- JsonData.fail("出现错误");
- }
- return JsonData.success(null,"删除成功");
- }
以上就是部分功能展示,从整体上来看,本系统功能是十分完整的,界面设计简洁大方,交互友好,数据库设计也很合理,规模适中,代码工整,清晰,适合学习使用。
好了,今天就到这儿吧,小伙伴们点赞、收藏、评论,一键三连走起呀,下期见~~