案例093:基于微信小程序的南宁周边乡村游设计与实现

news2024/10/5 17:23:30

文末获取源码

开发语言:Java

框架:SSM

JDK版本:JDK1.8

数据库:mysql 5.7

开发软件:eclipse/myeclipse/idea

Maven包:Maven3.5.4

小程序框架:uniapp

小程序开发软件:HBuilder X

小程序运行软件:微信开发者

目录

前言

系统展示

微信端功能实现

服务端功能实现

代码实现

登录功能实现代码

注册功能实现代码

密码重置功能实现代码

修改信息功能实现代码

删除信息功能实现代码

保存信息功能实现代码


前言

随着我国经济迅速发展,人们对手机的需求越来越大,各种手机软件也都在被广泛应用,但是对于手机进行数据信息管理,对于手机的各种软件也是备受游客的喜爱,南宁周边乡村游被游客普遍使用,为方便游客能够可以随时进行南宁周边乡村游的数据信息管理,特开发了基于南宁周边乡村游的管理系统。

南宁周边乡村游的设计主要是对系统所要实现的功能进行详细考虑,确定所要实现的功能后进行界面的设计,在这中间还要考虑如何可以更好的将功能及页面进行很好的结合,方便游客可以很容易明了的找到自己所需要的信息,还有系统平台后期的可操作性,通过对信息内容的详细了解进行技术的开发。

南宁周边乡村游的开发利用现有的成熟技术参考,以源代码为模板,分析功能调整与南宁周边乡村游的实际需求相结合,讨论了基于南宁周边乡村游的使用。 


系统展示

微信端功能实现

游客注册通过注册窗口,进行在线填写自己的账号、密码、姓名、年龄、手机、邮箱等,信息编辑完成后核对信息无误后进行选择注册,系统核对游客所输入的账号信息是否准确,核对信息准确无误后系统进入到操作界面。

 游客登录通过账号、密码行页面,进入到南宁周边乡村游主界面,进入到操作界面,进行相对应操作

 游客首页页面可以查看首页、景点信息、景点美食、特产信息、我的等信息,进行提交操作

 游客进入景点信息页面可以查看景点名称、景点类型、景点图片、景点星级、景点地址、营业时间、注意事项、价格等信息,进行加入购物车、立即订购操作

 游客进入景点美食页面可以查看美食名称、美食类型、美食图片、美食介绍、价格等信息,进行加入购物车、立即订购操作

 游客进入景点攻略页面可以查看攻略标题、景点名称、出发城市、行程天数、行程距离、交通工具、行程路线、景点封面等信息,进行点我收藏操作

 

服务端功能实现

管理员通过南宁周边乡村游进行确认,管理员进入到南宁周边乡村游主界面,管理员进入到操作界面,通过登录窗口进行在线填写自己的用户名和密码、角色进行登录,登录成功后进入到系统操作界面进行相应信息的获取

 管理员进入到界面,通过界面的任务大厅,登录成功后进入到系统可以进行查看首页、个人中心、游客管理、景点信息管理、景点美食管理、美食类型管理、景点攻略管理、特产信息管理、特产类型管理、留言板管理、系统管理、订单管理等功能模块,进行相对应操作

 管理员点击景点信息管理进入页面可以查看景点名称、景点类型、景点图片、景点星级、景点地址、营业时间、注意事项、价格等信息,进行详情、修改、删除操作

 管理员进入景点美食管理界面,通过界面的任务大厅,登录成功后进入到系统可以查看美食名称、美食类型、美食图片、美食介绍、价格等信息,进行相对应操作

管理员进入到景点攻略管理界面,通过界面的任务大厅,登录成功后进入到系统可以查看攻略标题、景点名称、出发城市、行程天数、行程距离、交通工具、行程路线、景点封面等信息,进行相对应操作 

 管理员进入到特产信息管理界面,通过界面的任务大厅,登录成功后进入到系统可以查看特产名称、特产类型、图片、生产日期、保质期、价格等信息,进行相对应操作

 管理员进入到订单管理界面,通过界面的任务大厅,登录成功后进入到系统可以查看订单编号、商品名称、商品图片、购买数量、价格/积分、折扣价格、总价格/总积分、折扣总价格、支付类型、状态、地址等信息,进行相对应操作

 轮播图;该页面为轮播图管理界面。管理员可以在此页面进行首页轮播图的管理,通过新建操作可在轮播图中加入新的图片,还可以对以上传的图片进行修改操作,以及图片的删除操作

 


代码实现

登录功能实现代码

@IgnoreAuth
	@PostMapping(value = "/login")
	public R login(String username, String password, String captcha, HttpServletRequest request) {
		UserEntity user = userService.selectOne(new EntityWrapper<UserEntity>().eq("username", username));
		if(user==null || !user.getPassword().equals(password)) {
			return R.error("账号或密码不正确");
		}
		String token = tokenService.generateToken(user.getId(),username, "users", user.getRole());
		return R.ok().put("token", token);
	}

注册功能实现代码

@IgnoreAuth
	@PostMapping(value = "/register")
	public R register(@RequestBody UserEntity user){
//    	ValidatorUtils.validateEntity(user);
    	if(userService.selectOne(new EntityWrapper<UserEntity>().eq("username", user.getUsername())) !=null) {
    		return R.error("用户已存在");
    	}
        userService.insert(user);
        return R.ok();
    }

密码重置功能实现代码

@IgnoreAuth
	@RequestMapping(value = "/resetPass")
    public R resetPass(String username, HttpServletRequest request){
    	UserEntity user = userService.selectOne(new EntityWrapper<UserEntity>().eq("username", username));
    	if(user==null) {
    		return R.error("账号不存在");
    	}
    	user.setPassword("123456");
        userService.update(user,null);
        return R.ok("密码已重置为:123456");
    }

修改信息功能实现代码

 @RequestMapping("/update")
    public R update(@RequestBody UserEntity user){
//        ValidatorUtils.validateEntity(user);
    	UserEntity u = userService.selectOne(new EntityWrapper<UserEntity>().eq("username", user.getUsername()));
    	if(u!=null && u.getId()!=user.getId() && u.getUsername().equals(user.getUsername())) {
    		return R.error("用户名已存在。");
    	}
        userService.updateById(user);//全部更新
        return R.ok();
    }

删除信息功能实现代码

@RequestMapping("/delete")
    public R delete(@RequestBody Long[] ids){
        userService.deleteBatchIds(Arrays.asList(ids));
        return R.ok();
    }

保存信息功能实现代码

@PostMapping("/save")
    public R save(@RequestBody UserEntity user){
//    	ValidatorUtils.validateEntity(user);
    	if(userService.selectOne(new EntityWrapper<UserEntity>().eq("username", user.getUsername())) !=null) {
    		return R.error("用户已存在");
    	}
        userService.insert(user);
        return R.ok();
    }

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1361409.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Redis——centos7环境安装Redis6.2.14版本,make命令编译时报错:jemalloc/jemalloc.h:没有那个文件或目录

一、报错原因 在redis-6.2.14文件夹下有一个README.md文件&#xff0c;有如下一段话&#xff1a; 在构建 Redis 时&#xff0c;通过设置 MALLOC 环境变量来选择非默认的内存分配器。Redis 默认编译并链接到 libc malloc&#xff0c;但在 Linux 系统上&#xff0c;jemalloc 是…

如何实现安卓端与苹果端互通的多种方案

随着移动设备用户的爆炸性增长&#xff0c;跨平台应用开发变得尤为重要。在Android与iOS之间实现互通对于推广应用、增加用户覆盖面和提升用户体验有至关重要的作用。以下是实现Android与iOS互通的多种方案&#xff0c;以及每种方案的实现方法、细节注意点、适合团队的规模和建…

AWS EKS1.26+kubesphere3.4.1

1、前提准备 1台EC2服务器Amazon Linux2&#xff0c;设置admin的角色 安装 aws cli V2 ​ curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"unzip awscliv2.zipsudo ./aws/installexport PATH/usr/local/bin:$PATHsou…

OpenHarmony鸿蒙源码下载编译和开发环境搭建

目录 一、开发环境搭建和源码下载二、编译三、总结 一、开发环境搭建 最好是在如Ubuntu18.04以上的系统中搭建&#xff0c;不然有些软件依赖需要解决&#xff0c;加大搭建时间 如gitee中开源OpenHarmony中的文档所示&#xff0c;搭建开发环境&#xff0c;搭建文档网站如下&a…

【算法设计与分析】分治-时间复杂度计算

目录 主定理 Master Theorem分治算法运行时间的递归表示主定理的简化形式 主定理的一般形式 递归树 Recursion Tree递归树的简单结论 主定理 Master Theorem 分治算法运行时间的递归表示 将原问题分解成 a 个子问题递归求解&#xff0c;每个子问题的规模是原问题的 1/b。同时子…

Unity游戏内相机(主角头部视角)的旋转问题:“万向节锁定”(Gimbal Lock)

前言&#xff1a; 在Unity中&#xff0c;相机的正前方是Z正半轴&#xff0c;相机的正右方是X正半轴&#xff0c;相机的正上方是Y正半轴。这个很好理解。 现在&#xff0c;我想要相机看向左前上方45&#xff0c;你会觉得要怎么做呢&#xff1f; 如果是我的话&#xff0c;我的第一…

在VM下使用Composer完成快照方式的软件制作

Composer允许您构建软件、应用程序、偏好设置文件或是文档的安装包&#xff0c;安装包可以部署到远程电脑或是作为镜像流程的一部分。构建软件包的第一步就是创建包源&#xff0c;根据要打包的软件&#xff0c;Composer允许您监视软件的安装和使用驱动器上已存在的文件来创建包…

Linux的top命令

通过top命令可以查看CPU、内存使用情况 -p&#xff1a;只显示某个进程的信息 -d&#xff1a;设置刷新时间 -c&#xff1a;显示产生进程的完整命令&#xff0c;默认是进程名 -n&#xff1a;指定刷新次数 -u&#xff1a;查找特点用户启动的进程 -b&#xff1a;以非交互非全…

【数据结构】八大排序之快速排序算法

&#x1f984;个人主页:修修修也 &#x1f38f;所属专栏:数据结构 ⚙️操作环境:Visual Studio 2022 目录 一.快速排序简介及思路 二.快速排序代码实现的三种方式 &#x1f4cc;左右交换法 &#x1f4cc;挖坑填坑法 &#x1f4cc;前后指针法 三.快速排序的时间复杂度分析…

MvvmToolkit的使用

背景&#xff1a;MvvmLight不更新了&#xff0c;用Toolkit代替 1、首先下载好社区版本的NuGet包 2、ViewModel中需要继承ObservableObject&#xff0c;查看ObservableObject可以看到里面有实现好InotifyPropertyChanged。 3、对于属性的set&#xff0c;可以简写成一行&#xff…

网络名称解读 -入门5

WAN: Wide Area Network(跨区域&#xff09;&#xff0c;LAN&#xff1a; Local Area NetworkWAN MAC&#xff0c; 用来连接上级网络&#xff0c; LAN MAC&#xff0c; 用于内部网路。 LAN & WAN 3.1&#xff0c;LAN表示子网&#xff0c;通过掩码来筛选子网内主机数量&…

【动态规划】【字符串】C++算法:140单词拆分

作者推荐 【动态规划】【字符串】扰乱字符串 本文涉及的基础知识点 动态规划 字符串 LeetCode140:单词拆分 II 给定一个字符串 s 和一个字符串字典 wordDict &#xff0c;在字符串 s 中增加空格来构建一个句子&#xff0c;使得句子中所有的单词都在词典中。以任意顺序 返回…

创建专业电子邮件签名:提升个人与品牌形象的实用指南

电子邮件签名乃是品牌建设中常被忽略的一环。试想一下&#xff0c;若名片只是普通的、手工切割的复印纸&#xff0c;上面用黑体打印着你的联系方式&#xff0c;那将是多么平凡无奇。这将显得廉价、乏味且不专业——这正是人们不愿如此的原因。相反&#xff0c;他们渴望让自己的…

MySQL-DDL

DDL是数据定义语言&#xff0c;用来定义数据对象&#xff08;数据库&#xff0c;表&#xff0c;字段&#xff09; 数据库操作&#xff1a; 1.查询&#xff1a; 查询所有数据库&#xff1a;SHOW DATABASES; 查询当前数据库&#xff1a;SELECT DATABASE(); 2.创建&#xff1a; C…

彻底解决vue-video-player视频铺满div

需求 最近需要接入海康视频摄像头&#xff0c;然后把视频的画面接入到自己的网站系统中。以前对接过rtsp固定IP的显示视频&#xff0c;这次的不一样&#xff0c;没有了固定IP。海康的解决办法是&#xff0c;摄像头通过配置服务器到萤石云平台&#xff0c;然后购买企业版账号和…

编程语言的未来?直观点5年之际!

编程语言的未来&#xff1f;未来5年应该如何发展&#xff01; 随着科技的飞速发展&#xff0c;编程语言在计算机领域中扮演着至关重要的角色。它们是软件开发的核心&#xff0c;为程序员提供了与机器沟通的桥梁。那么&#xff0c;在技术不断进步的未来&#xff0c;编程语言的走…

selenium实现UI自动化

1.selenium简介 selenium是支持web浏览器自动化的一系列工具和库的综合项目。具有支持linux、windows等多个平台&#xff0c;支持Firefox、chrome等多种主流浏览器&#xff1b;支持Java、Python等多种语言。 主要包括的三大工具有&#xff1a; WebDriver&#xff08;rc 1.0)、…

优雅永不过时: spring-retry 重试框架

文章目录 前言一、幂等性是重试的前提二、使用步骤1.引入依赖2.启动类或配置类上添加EnableRetry,启用retry框架3.创建一个要重试的方法4.自定义一个retry监听5.创建一个测试类 总结 前言 Spring Retry 是一个用于在 Spring 应用中实现重试机制的库。它提供了一种方便的方式来…

AOP(面向切面编程)基于XML方式配置

概念解释&#xff1a;&#xff08;理解基本概念方可快速入手&#xff09; 连接点&#xff08;joinpoint&#xff09; 被拦截到的点&#xff0c;因为Spring只支持方法类型的连接点&#xff0c;所以在Spring中连接点指的就是被拦截到的方法。 切入点&#xff08;pointcut&#x…

在电商狂欢中,什么平台更加对商家有利?

我是电商珠珠 近年来&#xff0c;不管是直播电商也好&#xff0c;电商平台也好&#xff0c;都一直朝着向上走的趋势。 我做电商也已经有5年时间了&#xff0c;期间做过天猫&#xff0c;快手、抖店&#xff0c;团队从原来的几个人&#xff0c;扩大到了70。 在22年10月&#x…