刘梅 卜言彬 周越
摘 要:农村土地闲置导致土地资源浪费,影响农村经济发展。为盘活农村闲置土地,促进美好乡村建设,设计并实现了农村闲置土地租赁的微信小程序,完成了需求分析、交互设计、数据库设计以及业务逻辑实现,运用MINA+Spring Boot+MyBatis-Plus等技术开发。提供了发布闲置土地,提交土地租赁需求,搜索、租赁土地,浏览土地政策,用户管理等功能。小程序功能齐全、页面简洁、易用、易推广,具备一定实用价值。
关键词:土地租赁;
微信小程序;
Spring Boot;
MyBatis-Plus
中图分类号:TP311 文献标识码:A 文章编号:2096-4706(2023)10-0095-04
Abstract:
Idle rural land leads to the waste of land resources and affects the development of rural economy. In order to revitalize the idle rural land and promote the construction of beautiful rural areas, this paper designs and realizes the WeChat Mini Programs for the lease of rural idle land, completes demand analysis, interaction design, database design, business logic realization, and uses MINA+Spring Boot+MyBatis-Plus and other technologies to develop. It provides functions such as issuing idle land, submitting land lease demand, searching and leasing land, browsing land policies, user management and so on. The mini program has complete functions, simple pages, and it is easy to use and promote, with a certain practical value.
Keywords:
land lease; WeChat Mini Program; Spring Boot; MyBatis-Plus
0 引 言
隨着工业发展和城镇化进程推进,农村人口涌向城市,农村出现大量土地闲置现象,导致土地资源浪费,影响经济发展,与国家发布的土地供给侧改革目标[1]相悖。如何盘活土地、化零为整、变废为宝、提高农村土地利用率、增加农民收入、做大农村集体经济,成为建设美好乡村亟待解决的问题。开发一款农村闲置土地租赁的微信小程序,可一定程度解决上述问题。
1 相关技术
微信小程序是一种可以直接在微信上运行的应用服务。具备开发周期短、成本低、用户无须安装即开即用、无须占用内存[2]等优点,已经广泛应用于电商、教育、服务等行业[3]。微信小程序使用运行机制为“响应—绑定”的MINA框架,开发者只需关注前端视图层和后端逻辑层[4]的代码开发。视图层完成逻辑层数据在页面展示,并将视图层事件发送到逻辑层;
逻辑层专注具体业务处理;
视图层与逻辑层数据传递遵从JSON格式。
前端视图层采用WXML(WeiXin Markup Language)与WXSS(WeiXin Style Sheet)编写。WXML是微信标记语言,用于描述页面的结构;
WXSS是样式语言,用于描述页面的样式[5]。
后端逻辑层采用Spring Boot和MyBatis-Plus框架进行开发。Spring是开源的Java主流框架,提供了具有控制反转和切面编程能力的容器[6]。Spring Boot在其基础上,简化配置文件并内置Web容器,是使用最为广泛的微服务开发框架之一。MyBatis是一款优秀的基于Java语言的持久层框架,对JDBC进行封装,屏蔽了JDBC API底层访问细节,解决了Java实体和数据库映射问题。开发者只需要关注SQL语句本身即可完成数据持久化操作。Mybatis-Plus框架是Mybatis框架的增强版,继承Mybatis功能外,新增Lambda形式调用、简化单表操作等功能。
2 农村闲置土地租赁小程序设计
农村闲置土地出现的原因:1)随着城镇化的发展,大量农村人口涌向城市,土地无人耕种。2)外出务工收入大于传统农业收入,农民耕种意愿下降。3)农民对土地政策、土地补贴信息了解不及时、不到位,对土地流转的流程不熟悉。4)缺少相关信息平台连接土地租赁者和出租者,无法有效盘活闲置土地。为改善土地闲置现状,提升土地利用率,设计并开发了一款用于土地租赁的微信小程序。
2.1 小程序应用场景
土地租赁小程序主要实现以下三个场景的应用。场景一(租赁者):租赁者需要租赁土地,传统的线下租赁方式很难迅速找到自己心仪的土地。租赁者可以在小程序中通过搜索功能搜索、比较闲置土地,联系出租者租地;
还可以主动发布租赁需求,等待合适的土地,从而节省租赁者时间和精力。场景二(出租者):出租者需要出租闲置土地,传统出租方式宣传困难。出租者可以在小程序中发布待出租的闲置土地信息;
可以在土地需求中主动寻找租赁者,达到快速出租土地的目的。场景三(游客):游客可以浏览最新土地资讯,补充土地政策知识。
2.2 系统需求
对上述应用场景进行需求分析,从小程序用户角度梳理出的功能性需求如下。租赁者:1)多维度检索、浏览、比较土地和收藏土地。2)联系土地出租者咨询洽谈。3)在线支付意向金。4)发布租地需求,修改、查看租地需求和个人信息。5)通过土地单位换算工具进行换算。出租者:1)发布待出租土地信息,对发布的土地信息进行增、删、改、查操作。2)查看土地被浏览情况,合理调整待出租土地的出租条件。游客:在资讯栏中阅读土地相关的政策、新闻等。
2.3 系统设计
通过对小程序需求和使用人群特点分析后,完成了小程序的用户交互、系统功能、数据库的系统设计。
2.3.1 用户交互设计
为减轻小程序使用难度,降低小程序使用门槛,为方便小程序在农村推广,提高用户体验度,用户交互设计以操作便捷,模块分明为目标。操作便捷:每个用户交互界面均设置了子功能入口和翔实的操作说明。例如:为引导用户合理操作,在首页设置快捷入口,放置了如发布需求、发布土地、单位换算、互动逛地等常用功能,用户能快速直达相关功能。用户模块的个人中心以醒目图标为功能入口,降低使用门槛。模块分明:土地和新闻模块的交互页面根据主题进行分类,并设置导航栏,方便用户迅速获得信息,以及页面之间快速切换。
2.3.2 系统功能设计
系统功能主要包含用户管理(登录、个人中心等)、土地管理(土地发布、搜索、浏览、租赁,互动逛地等)、土地政策新闻管理模块。小程序具体功能如图1所示。
其中土地浏览除了基本文本信息的查看功能外,还提供了查看土地实地图片、土地位置地图等互动逛地功能。
2.3.3 数据库设计
土地租赁小程序的数据库设计以规范性、高效性、紧凑性、易用性为目标。规范性:为尽量消除冗余,数据库设计符合三大范式要求,即第一范式是表中每个属性具备原子性,不可再分;
第二范式是表中的每列都和主键相关;
第三范式是确保每列都和主键直接相关,非间接相关。高效率:要求查询效率非常高的场景下,兼顾效率与规范,可适当反范式化,满足应用系统的性能要求。紧凑性:提高存储的利用率和系统性能,设置表的字段类型需要充分考虑字段属性的特点,例如身份证为18位的字符,用户表中身份证字段选用char(18),选用char(20)则不利于提高存储空间使用率,同时也要兼顾扩展性和可移植性,字段属性为可变字符串,宜选用varchar(n)类型。易用性:数据库设计清晰易用,例如数据库中对象应规范命名,见其名知其意,提高可读性。
通过需求分析、数据分析、概念设计、逻辑设计、物理设计、实施与运行维护设计完成了土地租赁数据库设计,数据库主要包含土地表、土地类型表、土地浏览表、土地订单表、用户表、用户角色表、用户收藏表、用户土地租赁需求表、资讯类表、土地政策表等。表中的字段和表之间的关系如图2所示。
其中土地表(t_land_info)中的所有字段不可再分,且均与主键编号(ID)相关,符合第一范式和第二范式。对于用户频繁使用查看土地详情和土地地图信息等功能,为提升效率,采用反范式设计,将土地经度(longitude)和纬度(latitude)存放在土地表中,经纬度与字段(location)存在直接依赖,与主键的关系为间接依赖。
3 系统实现
土地租赁小程序开发主要包含开发环境搭建、代码工程管理、业务逻辑实现以及功能验收。
3.1 开发环境搭建
小程序开发环境包含:前端开发工具为微信小程序官方开发工具;
后端开发工具采用IntelliJ IDEA,数据库MySQL,工程管理工具Maven,代码管理工具Git。
3.2 项目管理
Maven是Apache组织开源的一个跨平台的项目管理工具。Maven可对Java项目进行依赖管理(Jar包自动导入、升级)、项目构建(编译、打包、测试、部署)、统一项目目录结构。
为方便多人协同开发,小程序采用Maven管理项目,Maven工程的统一目录结构为src、resource、test文件夹。resource文件夹存放系统配置文件,test文件夹存放Junit的测试代码,src文件夹存放源代码。本工程的src子目录如
下:1)config包,封装了配置类对象、定义了项目中对象的配置。2)constant包封装了项目中常量类对象。3)controller包封装了业务控制层对象,架起了视图层与业务逻辑层沟通的桥梁。4)interceptor包封装了用于功能增强的拦截器对象。5)mapper包封装了数据处理层对象、以及负责逻辑层与数据库之间的SQL操作。6)service包封装了业务逻辑层对象,完成业务逻辑的实现。7)util包封装了一些实用的方法。
3.3 业务逻辑实现
为提高代码的可读性、可维护性、可扩展性,后端代码采用控制层、服务层、数据层的三层架构开发。控制层负责接收前端请求,获取相应的参数,完成简单的字段判空操作后,向服务层发送请求;
服务层完成逻辑处理后,向数据处理层发送请求;
数据层完成与数据库交互,最终返回页面层进行可视化。
3.3.1 查询土地詳情
以租客查询闲置土地为例说明前端页面与后端业务逻辑开发。微信小程序页面输入查询条件,前端将条件字段值封装成Json格式消息发送到后端。具体的操作如图3所示。
后端三层处理如下:1)首先前端查询的请求消息传递到控制层LandController类的getLandlist接口中,该接口主要完成前端字段的非空校验,并将字段封装成结构体透传给服务层。2)服务层先完成字段的逻辑校验,再判断是否为分页查询,最后封装查询条件的结构体透传给数据层。3)数据层编写用于查询的SQL语句,借助MyBatis-Plus工具完成到数据库查询操作。最后数据逐层返回前端展示。
3.3.2 互动逛地
小程序提供了查看土地实物图、查看土地位置地图的互动逛地功能。1)查看土地实物图:在小程序端获取本机图片,点击提交后,通过后端将图片存储至服务器,同时将图片存储信息上传至数据库。小程序在显示图片时,通过访问数据库中的图片信息,获取服务器中的图片。2)查看土地位置地图:借助微信小程序MAP组件和百度地图微信小程序JavaScript API,可完成土地位置地图显示,以及查询周边设施信息功能。发布闲置土地出租信息时,前端调用百度地图的地址解析接口,将土地详细地址解析成对应的经纬度坐标,后端将坐标信息写入数据库。查看土地位置地图时,调用小程序的查询土地详情接口,返回土地基本信息(包含经纬度信息),前端调用微信小程序MAP组件中的获取位置详细接口和百度地图API中的获取周边信息接口,完成地图和周边信息显示。
3.4 功能验收
以租赁者角度说明检索选地、支付定金操作流程和效果。租赁者登录界面后,在首页中查看发布的热门闲置土地列表如图4所示,选择感兴趣的土地查看详细如图5所示。此外,除直接查看热门土地外,也可在首页搜索输入框输入检索条件进行查询。租赁者寻找到合适土地后,在土地详情界面单击立即租用按钮,跳转至订单详情界面,可进行租赁意向金支付,如图6所示。
4 结 论
基于微信11亿活跃用户,小程序具备易推广的特点,本小程序可采用以下的推广方式:1)通过微信公众号和微博官微推文介绍小程序,提高曝光率。2)与农村村委公众号建立合作关系,进一步扩大影响力。3)村民群体间通过微信、QQ群聊或个人推荐来提高小程序的使用率。
综上,立足于解决当前农村闲置土地如何合理利用的問题,精心设计了小程序,解决租赁者寻找心仪土地困难问题;
解决出租者宣传土地困难问题;
促进用户学习有关土地的理论知识。具备功能强大、简单易用、易推广等特点,具有一定的实际使用价值。
参考文献:
[1] 张容军,段建南.供给侧改革背景下农村闲置土地的概况与利用研究 [J].江苏农业科学,2017,45(19):39-45.
[2] 李昊.基于微信小程序的智能推荐点餐系统的设计与实现 [D].南京:南京邮电大学,2020.
[3] 栗琳,温薇,孙朝阳.基于微信小程序实验室资源开放平台探索 [J].实验室研究与探索,2021,40(2):248-251+265.
[4] 陆禹文.基于微信小程序的移动学习平台的设计、开发及应用 [D].兰州:兰州大学,2020.
[5] 杨建敏,伏健,郑珊珊.基于微信小程序的大学生成长纪实平台的设计与实现 [J].现代电子技术,2022,45(22):101-106.
[6] 邓笑.基于Spring Boot的校园轻博客系统的设计与实现 [D].武汉:华中科技大学,2018.
作者简介:刘梅(1985—),女,汉族,江苏南京人,工程
师,硕士,主要研究方向:计算机应用、智能算法;
通讯作者:卜言彬(1984—),男,汉族,江苏南京人,副教授,硕士,主要研究方向:机器学习、计算机视觉;
周越(2003—),男,汉族,江苏盐城人,本科在读,主要研究方向:计算机应用。