(有源码)基于springboot+vue的农产品直卖平台的设计与实现 P10076 计算机毕业设计

news/2024/12/20 14:07:22/

项目说明

本号所发布的项目均由我部署运行验证,可保证项目系统正常运行,以及提供完整源码。

如需要远程部署/定制/讲解系统,可以联系我。定制项目未经同意不会上传!

项目源码获取方式放在文章末尾处

注:项目仅供学习使用,不可商用,如涉及侵权请联系我删除

项目技术

数据库:mysql5.7

开发语言:java、html

开发工具:idea、vscode

前端技术:vue

后端技术:springboot

有参考文档

功能简介

该项目是一个农产品直卖平台,有管理后台、用户前台功能,具体功能菜单如下:

管理后台

首页

个人中心

   修改密码

   个人信息

数据管理

   公告类型管理

   农产品类型管理

    商家信用类型管理

公告信息管理

农产品管理

    农产品管理

    农产品收藏管理

    农产品订单管理

用户管理

轮播图信息

用户前台

登录

首页

公告信息

农产品

商家

个人中心

后台管理

购物车

注:如果想修改部分功能或新增删除,可以联系我做功能改动。也可以联系我定制开发,保证项目唯一性,没有代码冗余,提供讲解服务。                                            

项目截图

1.文档截图(有完整的文档参考)

2.项目部分功能截图

本号所提供的项目均来自我个人付费购得或互联网收集,不可商用,如涉及侵权,请联系删除。

代码片段

package com.interceptor;import java.io.IOException;
import java.io.PrintWriter;
import java.util.HashMap;
import java.util.Map;
import com.alibaba.fastjson.JSONObject;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import org.springframework.web.method.HandlerMethod;
import org.springframework.web.servlet.HandlerInterceptor;import com.annotation.IgnoreAuth;
import com.entity.EIException;
import com.entity.TokenEntity;
import com.service.TokenService;
import com.utils.R;/*** 权限(Token)验证*/
@Component
public class AuthorizationInterceptor implements HandlerInterceptor {public static final String LOGIN_TOKEN_KEY = "Token";@Autowiredprivate TokenService tokenService;@Overridepublic boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {String servletPath = request.getServletPath();if("/dictionary/page".equals(request.getServletPath())  || "/file/upload".equals(request.getServletPath()) || "/yonghu/register".equals(request.getServletPath()) ){//请求路径是字典表或者文件上传 直接放行return true;}//支持跨域请求response.setHeader("Access-Control-Allow-Methods", "POST, GET, OPTIONS, DELETE");response.setHeader("Access-Control-Max-Age", "3600");response.setHeader("Access-Control-Allow-Credentials", "true");response.setHeader("Access-Control-Allow-Headers", "x-requested-with,request-source,Token, Origin,imgType, Content-Type, cache-control,postman-token,Cookie, Accept,authorization");response.setHeader("Access-Control-Allow-Origin", request.getHeader("Origin"));IgnoreAuth annotation;if (handler instanceof HandlerMethod) {annotation = ((HandlerMethod) handler).getMethodAnnotation(IgnoreAuth.class);} else {return true;}//从header中获取tokenString token = request.getHeader(LOGIN_TOKEN_KEY);/*** 不需要验证权限的方法直接放过*/if(annotation!=null) {return true;}TokenEntity tokenEntity = null;if(StringUtils.isNotBlank(token)) {tokenEntity = tokenService.getTokenEntity(token);}if(tokenEntity != null) {request.getSession().setAttribute("userId", tokenEntity.getUserid());request.getSession().setAttribute("role", tokenEntity.getRole());request.getSession().setAttribute("tableName", tokenEntity.getTablename());request.getSession().setAttribute("username", tokenEntity.getUsername());return true;}PrintWriter writer = null;response.setCharacterEncoding("UTF-8");response.setContentType("application/json; charset=utf-8");try {writer = response.getWriter();writer.print(JSONObject.toJSONString(R.error(401, "请先登录")));} finally {if(writer != null){writer.close();}}
//				throw new EIException("请先登录", 401);return false;}
}

项目源码获取方式

注:需要在手机上操作,如果遇到链接失效可以直接联系我

第一步:点击关注:程序员小嗨

第二步:对话框输入:源码,点击进入小程序。

第三步:进入小程序后在搜索界面输入标题或编号,然后点击[获取链接]


http://www.ppmy.cn/news/1556657.html

相关文章

12月22日!蓝桥杯MWORKS新赛道「智能装备数字化建模大赛」总决赛暨颁奖典礼即将启幕

为强化装备数字化人才培养,推动装备数字化技术快速发展,第十六届蓝桥杯全国软件和信息技术专业人才大赛设置专项赛暨智能装备数字化建模大赛,使用MWORKS作为参赛软件。关于参赛软件授权、技术支持与培训等赛事服务均由MWORKS技术团队提供。 …

王佩丰24节Excel学习笔记——第十一讲:Vlookup函数

【以 Excel2010 系列学习,用 Office LTSC 专业增强版 2021 实践】 【本章小技巧】 掌握vlookup使用方法,选区的第一列一定是查询参数条件一。使用通配符查询。vlookup 限 255 位长度。掌握日常使用场景。使用vlookup模糊匹配查询个税 一、使用Vlookup函…

深度学习之目标检测篇——残差网络与FPN结合

特征金字塔多尺度融合特征金字塔的网络原理 这里是基于resnet网络与Fpn做的结合,主要把resnet中的特征层利用FPN的思想一起结合,实现resnet_fpn。增强目标检测backone的有效性。代码实现如下: import torch from torch import Tensor from c…

架构未来:深入探索最热门的编程语言开发框架

开发框架组件简介 开发框架是程序员用来加速开发并确保代码质量的基础组件之一。在不同的编程语言中,开发框架为开发人员提供了丰富的工具、库和最佳实践,帮助构建高效、可维护和安全的应用程序。本文将介绍几种常见编程语言的开发框架组件,…

web3跨链预言机协议-BandProtocol

项目简介 Band Protocol 项目最初于 2017年成立并建立在 ETH 之上。后于2020年转移到了 Cosmos 网络上,基于 Cosmos SDK 搭建了一条 Band Chain 。这是一条 oracle-specific chain,主要功能是提供跨链预言机服务。Cosmos生态上第一个,也是目…

「iOS」通过CoreLocation Framework深入了解MVC架构

「iOS」通过CoreLocation Framework重新了解多界面传值以及MVC架构 文章目录 「iOS」通过CoreLocation Framework重新了解多界面传值以及MVC架构前言CoreLocation了解根据需求建模设计属性方法设计协议传值Block传值KVONotification通知方式 总结参考文章 前言 在这个学期的前…

面试题整理1---正向代理和反向代理的含义及异同

面试题整理1---正向代理和反向代理的含义及异同 1. 正向代理 (Forward Proxy)1.1 正向代理定义:1.2 正向代理的工作流程:1.3 正向代理的应用场景: 2. 反向代理 (Reverse Proxy)2.1 反向代理的定义:2.2 反向代理的工作流程&#xf…

网络协议与网络安全学习记录

SSL(Secure Sockets Layer 安全套接层),及其继任者传输层安全(Transport Layer Security,TLS)是为网络通信提供安全及数据完整性的一种安全协议。TLS与SSL在传输层对网络连接进行加密 HTTPS,代表Hyper Text Transfer Protocol Secure,将SSL/T…