基于微信小程序的洗衣店在线洗衣系统设计与实现

2023-12-19

????博主介绍:✌全网粉丝10W+,CSDN全栈领域优质创作者,博客之星、掘金/华为云/阿里云等平台优质作者。
???????? 精彩专栏 推荐订阅????????
计算机毕设精品项目案例(持续更新)
???? 文末获取源码+数据库+文档 ????
感兴趣的可以先收藏起来,还有大家在毕设选题,项目以及论文编写等相关问题都可以和学长沟通,希望帮助更多的人

一.前言

在这里插入图片描述

随着时代的发展,人们的工作也学习压力越来越大,很多时候空闲时间也越来也少,经常没有时间去洗自己的衣服,很多商家在看到这种情况之后开设了洗衣机店专门用于服务这些没有时间洗衣服的人,但是传统的洗衣店都是用手动的的模式在管理,这种模式很落后,为了改善这一情况很多地方开设了线上洗衣的服务,为了让线上洗衣变的更加方便快捷,为此我开发了本次的基于微信小程序的线上洗衣平台本基于微信小程序的线上洗衣平台是根据当前洗衣店和用户的实际情况开发的,在系统语言选择上我们使用的 Java 语言,数据库是小巧灵活的 MySQL 数据库,框架方便使用的是当前最主流的 Spring boot 框架,本系统的开发可以让线下洗衣变的 更加的方便快捷。


二.技术环境

jdk版本:1.8 及以上
ide工具:Eclipse或者 IDEA,微信小程序开发工具
数据库: mysql5.7 (必须5.7)
编程语言: Java
java框架:SpringBoot
maven: 3.6.1
详细技术:HTML+CSS+JAVA+SpringBoot+MYSQL+VUE+MAVEN+微信开发工具


三.功能设计

基于微信小程序的线上洗衣平台是一个可以提高洗衣处理流程的系统。基于微信小程序的线上洗衣平台分为小程序部分和后台管理两部分的小程序部分小程序主要功能包含:用户注册登录,首页,商家,会员信息,通知公告,会员购买,线下洗衣,洗衣报价,快递信息,订单信息,在线客服等功能;后台管理部分功能主要包括登录,系统首页,个人中心,用户管理,商家管理,快递员管理,会员信息管理,会员购买管理,线上洗衣管理,洗衣报价管理,快递信息管理,订单完成管理,系统管理等功能。
具体功能如下图所示:
在这里插入图片描述

程序上交给用户进行使用时,需要提供程序的操作流程图,这样便于用户容易理解程序的具体工作步骤,现如今程序的操作流程都有一个大致的标准,即先通过登录页面提交登录数据,通过程序验证正确之后,用户才能在程序功能操作区页面操作对应的功能。
在这里插入图片描述

四.部分效果展示

4.1用户微信端实现效果

用户登录通过账号、密码页面,进入到系统小程序主界面,进入到操作界面,进行相对应操作,如下图所示。
在这里插入图片描述
小程序首页是用户注册登录后进入的第一个界面,包括轮播图以及商家推荐等信息,界面如下图所示:
在这里插入图片描述

用户进入商家详情界面,能够查看商家信息,并可以进行预约洗衣的操作,界面如下图所示:

在这里插入图片描述
在这里插入图片描述

用户进入会员信息界面,能够进行购买会员的操作,界面如下图所示:
在这里插入图片描述

在这里插入图片描述
用户预约洗衣并且商家报价后,用户可支付对应的费用,还可进行呼叫快递操作,界面如下所示:
在这里插入图片描述

我的,在我的页面包括会员购买、线上洗衣、洗衣报价、快递信息、订单完成、我的收藏管理、在线客服等详细信息进行操作,如下图所示。
在这里插入图片描述

4.2商家微信端实现效果

在用户预约洗衣后,商家可以给用户进行报价,界面如下图所示:

在这里插入图片描述
在这里插入图片描述

商家的我的界面如下图所示:
在这里插入图片描述

4.3快递员-后台管理端实现效果

在这里插入图片描述
在这里插入图片描述

4.4管理员-后台管理端实现效果

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

五.部分功能代码

/**
 * 权限(Token)验证
 */
@Component
public class AuthorizationInterceptor implements HandlerInterceptor {

    public static final String LOGIN_TOKEN_KEY = "Token";

    @Autowired
    private TokenService tokenService;
    
	@Override

    public 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中获取token
        String 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;
    }
}


最后

最新计算机毕业设计选题篇-选题推荐(值得收藏)
计算机毕业设计精品项目案例-200套(值得订阅)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

基于微信小程序的洗衣店在线洗衣系统设计与实现 的相关文章

  • 西南科技大学数据库实验七(综合实验—选课系统综合查询)

    一 实验目的 存储过程与触发器 二 实验任务 一 创建数据库及表 提供数据库文件mytables sql 可以导入 可以拷贝 1 创建班级表class 2 创建学生表student 3 创建选课表choose 4 创建课程表course 5
  • thinkphp+mysql_vue汽车资讯新闻网站

    本汽车资讯网站有管理员和用户 管理员功能有个人中心 用户管理 汽车品牌管理 价格分类管理 经销商管理 汽车信息管理 留言板管理 系统管理等 用户可以查看各种汽车信息 还可以进行留言 因而具有一定的实用性 运行环境 phpstudy wamp
  • Elasticsearch——深入原理

    在正式介绍Elasticsearch的具体功能以前 将介绍Elasticsearch中比较重要的原理与机制 这有助于理解Elasticsearch的内部机制 以及从表面功能深入了解其背后的逻辑本质 主要内容如下 搜索引擎的基本原理和组成结构
  • Linux——apt-get工具

    apt get是Debian和Ubuntu等基于Debian的Linux发行版的包管理工具 用于自动从互联网软件仓库中搜索 下载 安装 升级 卸载软件或操作系统 以及自动处理依赖关系 使用apt get进行软件包安装的基本步骤 请注意 具体
  • Python3 集合

    在Python3中 集合 Set 是一种无序 不重复的数据集合 集合使用 或set 来创建 以下是一些常用的集合操作 创建集合 set1 1 2 3 使用 创建集合 set2 set 4 5 6 使用set 创建集合 http www js
  • 零售EDI:如何与EDEKA 建立EDI连接?

    艾德卡EDEKA 是德国最大的食品零售商 因其采用 指纹付款 的方式进行结算 成为德国超市付款方式改革的先驱 与EDEKA建立EDI连接 首先需要填写EDEKA提供的调查问卷 其中包括公司信息 EDI负责人信息 EDI供应商信息 销售部门信

随机推荐