基于微信小程序的智慧农业农产品商城【毕设包过】

这篇具有很好参考价值的文章主要介绍了基于微信小程序的智慧农业农产品商城【毕设包过】。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

  博主介绍:👉全网个人号和企业号粉丝40W+,每年辅导几千名大学生较好的完成毕业设计,专注计算机软件领域的项目研发,不断的进行新技术的项目实战👈
⭐️热门专栏推荐订阅⭐️ 订阅收藏起来,防止下次找不到

🔎千套JAVA实战项目持续更新中~

🔎上百套小程序实战项目持续更新中~

🔎上百套Python实战项目持续更新中
有需求的各位可以先收藏起来,还有大家在毕设选题,开题报告有疑惑的都可以找我,给你参考意见,需要开题模板的可以私信留言告诉我

❤️文末获取源码联系❤️        ⚠️一定要先收藏⚠️

基于微信小程序的智慧农业农产品商城【毕设包过】,微信小程序项目实战,微信小程序,小程序,maven,java

基于微信小程序的智慧农业农产品商城【毕设包过】,微信小程序项目实战,微信小程序,小程序,maven,java

4  系统设计

4.1 功能模块设计

智慧农业小程序根据权限类型进行分类,主要可分为用户微信端和管理员服务端二大模块。用户微信端模块主要实现了修改个人信息,查看知识科普、土壤信息、水质信息、购物商城、论坛交流、天气操作,加强了用户的操作体验。管理员服务端模块主要根据管理员对整个系统的管理进行设计,提高了管理的效率和规范[11]。系统总体模块设计如下图所示:

基于微信小程序的智慧农业农产品商城【毕设包过】,微信小程序项目实战,微信小程序,小程序,maven,java

图4-1 系统总体模块设计

4.2 系统数据库设计

4.2.1 数据库系统

本系统采用MySQL来进行数据库的管理。基于WEB的MySQL体积小、速度快、成本低,能够及时处理上千万条记录,初步满足和支持大型的数据库高并发的读写和高效率读写等要求。

4.2.2 数据库概念设计

概念模型用于对信息世界建模,并与指定的数据库管理系统分离。它有助于将真实世界的事物抽象为适合于数据库管理系统的数据库模型。人们往往把现实世界抽象成信息世界,再把信息世界变成机器世界。也就是说,将现实世界的目标抽象成独立于专用计算机软件和专用数据库管理系统的信息结构的数据模型,然后将物理模型转化为适合电子计算机的数据库管理系统。事实上,数据模型是从现实世界到机器世界的中间层。

信息世界的基本要素包括实体和关联。实体(entity) 客观存在并可相互区别的事物称为实体。实体可以是实际的人、事或物,还可以是抽象化的概念或联络。以下是对部分主要的关键实体E-R如下:

4.2.3 数据表设计

本管理系统的数据表的设计根据管理过程中的具体流程所需,方便了管理员对数据进行新增、删除、修改和查询的操作。

4.2.4 数据表的建立

系统使用MySQL工具对数据库进行操作,它有着简便的数据库管理操作以及强大的数据处理能力。以下是数据表的建立情况:

4-1token表

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

  主键

userid

bigint

用户id

username

varchar

100

用户名

tablename

varchar

100

表名

role

varchar

100

角色

token

varchar

200

密码

addtime

timestamp

新增时间

CURRENT_TIMESTAMP

expiratedtime

timestamp

过期时间

CURRENT_TIMESTAMP

4-2知识科普评论表

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

  主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

refid

bigint

关联表id

userid

bigint

用户id

avatarurl

longtext

4294967295

头像

nickname

varchar

200

用户名

content

longtext

4294967295

评论内容

reply

longtext

4294967295

回复内容

4-3土壤信息评论表

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

  主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

refid

bigint

关联表id

userid

bigint

用户id

avatarurl

longtext

4294967295

头像

nickname

varchar

200

用户名

content

longtext

4294967295

评论内容

reply

longtext

4294967295

回复内容

4-4水质信息评论表

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

  主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

refid

bigint

关联表id

userid

bigint

用户id

avatarurl

longtext

4294967295

头像

nickname

varchar

200

用户名

content

longtext

4294967295

评论内容

reply

longtext

4294967295

回复内容

4-5购物商城评论表

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

  主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

refid

bigint

关联表id

userid

bigint

用户id

avatarurl

longtext

4294967295

头像

nickname

varchar

200

用户名

content

longtext

4294967295

评论内容

reply

longtext

4294967295

回复内容

4-6关于我们

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

  主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

title

varchar

200

标题

subtitle

varchar

200

副标题

content

longtext

4294967295

内容

picture1

longtext

4294967295

图片1

picture2

longtext

4294967295

图片2

picture3

longtext

4294967295

图片3

4-7配置文件

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

  主键

name

varchar

100

配置参数名称

value

varchar

100

配置参数值

4-8收藏表

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

  主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

userid

bigint

用户id

refid

bigint

商品id

tablename

varchar

200

表名

name

varchar

200

名称

picture

longtext

4294967295

图片

type

varchar

200

类型(1:收藏,21:赞,22:踩,31:竞拍参与,41:关注)

1

inteltype

varchar

200

推荐类型

remark

varchar

200

备注

4-9关于我们

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

  主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

title

varchar

200

标题

subtitle

varchar

200

副标题

content

longtext

4294967295

内容

picture1

longtext

4294967295

图片1

picture2

longtext

4294967295

图片2

picture3

longtext

4294967295

图片3

4-10农业资讯

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

  主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

title

varchar

200

标题

introduction

longtext

4294967295

简介

picture

longtext

4294967295

图片

content

longtext

4294967295

内容

4-11用户表

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

  主键

username

varchar

100

用户名

password

varchar

100

密码

role

varchar

100

角色

管理员

addtime

timestamp

新增时间

CURRENT_TIMESTAMP

4-12购物订单

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

  主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

chanpinmingcheng

varchar

200

产品名称

chanpinleibie

varchar

200

产品类别

guige

varchar

200

规格

pinpai

varchar

200

品牌

jiage

float

价格

fengmian

longtext

4294967295

封面

yonghuzhanghao

varchar

200

用户账号

yonghuxingming

varchar

200

用户姓名

yonghushouji

varchar

200

用户手机

shouhuodizhi

varchar

200

收货地址

xiadanriqi

date

下单日期

goumaishuliang

int

购买数量

heji

float

合计

ispay

varchar

200

是否支付

未支付

4-13土壤信息

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

  主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

zhidimingcheng

varchar

200

质地名称

fengmian

longtext

4294967295

封面

turangrongzhong

varchar

200

土壤容重

suanjiandu

varchar

200

酸碱度

turanghanshuiliang

varchar

200

土壤含水量

tianjianchishuiliang

varchar

200

田间持水量

dixingdishi

varchar

200

地形地势

turangwuzhi

longtext

4294967295

土壤物质

4-14论坛交流

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

  主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

title

varchar

200

帖子标题

content

longtext

4294967295

帖子内容

parentid

bigint

父节点id

userid

bigint

用户id

username

varchar

200

用户名

avatarurl

longtext

4294967295

头像

isdone

varchar

200

状态

4-15产品类别

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

  主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

chanpinleibie

varchar

200

产品类别

4-16知识科普

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

  主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

biaoti

varchar

200

标题

zhishifenlei

varchar

200

知识分类

tupian

longtext

4294967295

图片

shipin

longtext

4294967295

视频

fabushijian

datetime

发布时间

yingduizhengce

longtext

4294967295

应对政策

faburen

varchar

200

发布人

anlishuoming

longtext

4294967295

案例说明

laiyuan

varchar

200

来源

4-17水质信息

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

  主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

didian

varchar

200

地点

fengmiantupian

longtext

4294967295

封面图片

phzhi

varchar

200

ph值

sedu

varchar

200

色度

zhuodu

varchar

200

浊度

diandaolv

varchar

200

电导率

suandu

varchar

200

酸度

jiandu

varchar

200

碱度

jiancejieguo

varchar

200

检测结果

dengjiriqi

date

登记日期

beizhu

varchar

200

备注

4-18知识分类

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

  主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

zhishifenlei

varchar

200

知识分类

4-19用户

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

  主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

yonghuzhanghao

varchar

200

用户账号

mima

varchar

200

密码

yonghuxingming

varchar

200

用户姓名

xingbie

varchar

200

性别

nianling

varchar

200

年龄

touxiang

longtext

4294967295

头像

yonghushouji

varchar

200

用户手机

4-20购物商城

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

  主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

chanpinmingcheng

varchar

200

产品名称

chanpinleibie

varchar

200

产品类别

guige

varchar

200

规格

pinpai

varchar

200

品牌

jiage

float

价格

fengmian

longtext

4294967295

封面

shengchanchangjia

varchar

200

生产厂家

shangjiariqi

date

上架日期

chanpinxiangqing

longtext

4294967295

产品详情

5  系统实现

5.1用户微信端模块实现

游客打开微信小程序的网址后,首先看到的就是微信小程序首页界面在这里,游客能够看到智慧农业小程序低部导航条显示首页、知识科普、土壤信息、水质信息、购物商城、论坛交流、天气、我的,如图5-1所示。

                         

基于微信小程序的智慧农业农产品商城【毕设包过】,微信小程序项目实战,微信小程序,小程序,maven,java

图5-1微信小程序首页界面图

   

当用户进入微信小程序进行相关操作前必须注册登录在注册页面填写用户账号、密码、确认密码、用户姓名、性别、年龄、头像、用户手机信息然后点击注册,如图5-2所示。

                        

基于微信小程序的智慧农业农产品商城【毕设包过】,微信小程序项目实战,微信小程序,小程序,maven,java

图5-2用户注册界面图

用户登录用户登录页面通过填写账号、密码完成登录,如图5-3所示。

   基于微信小程序的智慧农业农产品商城【毕设包过】,微信小程序项目实战,微信小程序,小程序,maven,java

图5-3用户登录界面图

用户点击知识科普在知识科普页面的搜索栏输入标题,进行查询,然后可以查看标题、知识分类、图片、视频、发布时间、发布人、来源等信息如有需要进行收藏或者评论等操作,如图5-4所示。 

                        

基于微信小程序的智慧农业农产品商城【毕设包过】,微信小程序项目实战,微信小程序,小程序,maven,java

图5-4知识科普界面图

用户点击土壤信息在土壤信息页面的搜索栏输入质地名称,进行查询,然后可以查看质地名称、封面、土壤容重、酸碱度、土壤含水量、田间持水量、地形地势等信息如有需要进行收藏或者评论等操作,如图5-5所示。 

                         

基于微信小程序的智慧农业农产品商城【毕设包过】,微信小程序项目实战,微信小程序,小程序,maven,java

图5-5土壤信息界面图

用户点击我的页面,在我的页面可以对购物订单、我的收藏管理、我要发帖、我的发帖,进行详细操作,如图5-6所示。

基于微信小程序的智慧农业农产品商城【毕设包过】,微信小程序项目实战,微信小程序,小程序,maven,java

   图5-6我的界面图

5.2管理员服务端模块实现

管理员登录,在登录页面选择需要登录的角色,在正确输入用户名和密码后,点击登录操作;如图5-7所示。                               

基于微信小程序的智慧农业农产品商城【毕设包过】,微信小程序项目实战,微信小程序,小程序,maven,java

图5-7 管理员登录界面

管理员进入系统主页面,主要功能包括对首页、个人中心、用户管理、知识科普管理、土壤信息管理、水质信息管理、购物商城管理、产品分类管理、购物订单管理、知识分类管理、论坛交流、系统管理等进行操作。如5-8所示

基于微信小程序的智慧农业农产品商城【毕设包过】,微信小程序项目实战,微信小程序,小程序,maven,java

5-8管理员主界面

代码实现

package com.controller;
 
import java.util.Arrays;
import java.util.Calendar;
import java.util.Date;
import java.util.Map;
 
import javax.servlet.http.HttpServletRequest;
 
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestController;
 
import com.annotation.IgnoreAuth;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.entity.TokenEntity;
import com.entity.UserEntity;
import com.service.TokenService;
import com.service.UserService;
import com.utils.CommonUtil;
import com.utils.MD5Util;
import com.utils.MPUtil;
import com.utils.PageUtils;
import com.utils.R;
import com.utils.ValidatorUtils;
 
/**
 * 登录相关
 */
@RequestMapping("users")
@RestController
public class UserController{
	
	@Autowired
	private UserService userService;
	
	@Autowired
	private TokenService tokenService;
 
	/**
	 * 登录
	 */
	@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();
    }
 
	/**
	 * 退出
	 */
	@GetMapping(value = "logout")
	public R logout(HttpServletRequest request) {
		request.getSession().invalidate();
		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("/page")
    public R page(@RequestParam Map<String, Object> params,UserEntity user){
        EntityWrapper<UserEntity> ew = new EntityWrapper<UserEntity>();
    	PageUtils page = userService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.allLike(ew, user), params), params));
        return R.ok().put("data", page);
    }
 
	/**
     * 列表
     */
    @RequestMapping("/list")
    public R list( UserEntity user){
       	EntityWrapper<UserEntity> ew = new EntityWrapper<UserEntity>();
      	ew.allEq(MPUtil.allEQMapPre( user, "user")); 
        return R.ok().put("data", userService.selectListView(ew));
    }
 
    /**
     * 信息
     */
    @RequestMapping("/info/{id}")
    public R info(@PathVariable("id") String id){
        UserEntity user = userService.selectById(id);
        return R.ok().put("data", user);
    }
    
    /**
     * 获取用户的session用户信息
     */
    @RequestMapping("/session")
    public R getCurrUser(HttpServletRequest request){
    	Long id = (Long)request.getSession().getAttribute("userId");
        UserEntity user = userService.selectById(id);
        return R.ok().put("data", user);
    }
 
    /**
     * 保存
     */
    @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();
    }
 
    /**
     * 修改
     */
    @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();
    }
}

源码获取

大家点赞、收藏、关注 ,让更多需要的同学看到

不同开发语言专栏推荐订阅

🔎千套JAVA实战项目持续更新中~

🔎上百套小程序实战项目持续更新中~

🔎上百套Python实战项目持续更新中

👇下方有我的微信名片👇文章来源地址https://www.toymoban.com/news/detail-834171.html

到了这里,关于基于微信小程序的智慧农业农产品商城【毕设包过】的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • springboot农产品销售信息微信小程序 毕业设计-附源码35557

    摘  要 在信息飞速发展的今天,网络已成为人们重要的信息交流平台。每天都有大量的农产品需要通过网络发布,为此,本人开发了一个基于springboot农产品销售信息微信小程序。 对于本农产品销售信息系统的设计来说,它主要是采用后台采用java语言、springboot框架,它是应

    2024年02月03日
    浏览(50)
  • (附源码)springboot农产品销售信息微信小程序 毕业设计35557

    摘  要 在信息飞速发展的今天,网络已成为人们重要的信息交流平台。每天都有大量的农产品需要通过网络发布,为此,本人开发了一个基于springboot农产品销售信息微信小程序。 对于本农产品销售信息系统的设计来说,它主要是采用后台采用java语言、springboot框架,它是应

    2024年02月03日
    浏览(42)
  • (附源码)springboot农产品销售信息微信小程序 计算机毕设35557

    摘  要 在信息飞速发展的今天,网络已成为人们重要的信息交流平台。每天都有大量的农产品需要通过网络发布,为此,本人开发了一个基于springboot农产品销售信息微信小程序。 对于本农产品销售信息系统的设计来说,它主要是采用后台采用java语言、springboot框架,它是应

    2024年02月04日
    浏览(46)
  • 【毕业设计】微信小程序vue+uniapp助农平台的农产品商城系统uniapp

    1.    题目:助农平台的设计与实现(这是毕设题目不是平台名称,平台名称是爱心助农) 2.    概述:针对小农产品销售进行设计的平台。用户可以通过平台快捷购买小农产品,通过平台有更好的购买体验。销售方可在平台注册商家销售产品,也可以设定自己的优惠活动和

    2024年02月04日
    浏览(48)
  • java农业信息化技术一体化服务农产品商城平台springboot+vue

    农业信息化服务平台,能够推进农村农业信息化的发展,提升农业和农村信息化水平,促进先进农业技术在农业生产中的推广应用,推动农业向现代化、集约化发展。同时,进一步探索农村信息化建设的新模式,以技术规划来支撑农业未来信息化管理的发展。 开发软件有很多种可以用

    2024年01月21日
    浏览(57)
  • 农产品销售|助农惠农|基于Springboot实现农产品销售管理系统

    作者主页:编程指南针 作者简介:Java领域优质创作者、CSDN博客专家 、掘金特邀作者、多年架构师设计经验、腾讯课堂常驻讲师 主要内容:Java项目、毕业设计、简历模板、学习资料、面试题库、技术互助 收藏点赞不迷路  关注作者有好处 文末获取源码   语言环境:Java: 

    2024年02月09日
    浏览(65)
  • 基于微信小程序的智慧农业小程序

    博主主页: 一点素材 博主简介: 专注Java技术领域和毕业设计项目实战、Java、微信小程序、安卓等技术开发,远程调试部署、代码讲解、文档指导、ppt制作等技术指导。 主要内容: SpringBoot、Vue、SSM、HLMT、Jsp、PHP、Nodejs、Python、小程序、安卓app、大数据等设计与开发。 感兴

    2024年02月22日
    浏览(38)
  • 基于微信小程序的智慧农业小程序设计与实现

    💗博主介绍:✌全网粉丝10W+,CSDN全栈领域优质创作者,博客之星、掘金/知乎/华为云/阿里云等平台优质作者。 👇🏻 精彩专栏 推荐订阅👇🏻 计算机毕业设计精品项目案例(持续更新) 🌟 文末获取源码+数据库+文档 🌟 感兴趣的可以先收藏起来,还有大家在毕设选题,项

    2024年02月20日
    浏览(53)
  • 农产品小程序商城定制开发攻略

    在当前的电商环境下,小程序商城的开发已经成为了一种趋势。特别是对于农产品这类需要直接触达消费者的商品,小程序商城的开发不仅可以拓宽销售渠道,提升品牌影响力,更可以为消费者提供更便捷的购物体验。本文将详细介绍如何从零开始开发一个农产品小程序商城

    2024年02月10日
    浏览(51)
  • 基于SpringBoot的特色农产品销售设计与实现

    摘  要:目前市场上众多的特色农产品销售系统存在种种不足,比如系统无需登录即可查看农产品卖家的联系方式,并且交易大多为线下交易,很难实现线上购买、物流配送、线上收货收款的功能。本系统提供线上购买服务,使用数据库进行订单管理,设计优化交互界面,进

    2024年02月06日
    浏览(58)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包