Springboot+Vue+小程序+基于微信小程序护农远程看护系统

news/2024/5/17 18:49:57

         开发平台为idea,maven管理工具,Mybatis操作数据库,根据市场数字化需要为农户打造小程序可远程查看农场的种植情况。项目是调试,讲解服务均可有偿获取,需要可在最下方QQ二维码处联系我。

Springboot+Vue+小程序,基于微信小程序的农场信息管理系统。数据库Mysql,17张表。
前台可以查阅接受保护的农产品。
后台对请求进行管理。
后台管理功能有。
1.农户管理
2.农产品展示
3.产品类型
4.农产品订单管理
5.预采摘登记管理
6.远程看护管理
7.蔬果类型管理
8.播种管理
9.施肥信息管理
10.浇水管理
11.轮播图管理,农业活动及活动分类管理。
12.个人信息管理。

         

                 

                                  

部分数据库设计:

表名:nongchanpindingdan

功能:农产品订单

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

  主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

dingdanbianhao

varchar

200

订单编号

chanpinmingcheng

varchar

200

产品名称

chanpinleixing

varchar

200

产品类型

chanpintupian

longtext

4294967295

产品图片

chandi

varchar

200

产地

guige

varchar

200

规格

shuliang

int

数量

jiage

int

价格

zonge

double

总额

goumaishijian

datetime

购买时间

dingdanbeizhu

varchar

200

订单备注

shouhuodizhi

varchar

200

收货地址

youkexingming

varchar

200

游客姓名

nonghuzhanghao

varchar

200

农户账号

nonghuxingming

varchar

200

农户姓名

表名:newstype

功能:农业活动分类

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

  主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

typename

varchar

200

分类名称

表名:yucaizhaidengji

功能:预采摘登记

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

  主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

caizhaichanpin

varchar

200

采摘产品

caizhaishijian

datetime

采摘时间

caizhaididian

varchar

200

采摘地点

caizhairenshu

int

采摘人数

caizhaigongju

varchar

200

采摘工具

caizhaitupian

longtext

4294967295

采摘图片

nonghuzhanghao

varchar

200

农户账号

nonghuxingming

varchar

200

农户姓名

表名:news

功能:农业活动

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

  主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

title

varchar

200

标题

introduction

longtext

4294967295

简介

typename

varchar

200

分类名称

name

varchar

200

发布人

headportrait

longtext

4294967295

头像

clicknum

int

点击次数

0

clicktime

datetime

最近点击时间

thumbsupnum

int

0

crazilynum

int

0

storeupnum

int

收藏数

0

picture

longtext

4294967295

图片

content

longtext

4294967295

内容

代码示例:

1.农产品增删改查模块

package com.controller;import java.util.Arrays;
import java.util.Map;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Date;
import javax.servlet.http.HttpServletRequest;import com.entity.NonghuEntity;
import com.service.NonghuService;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.ObjectUtils;
import org.springframework.web.bind.annotation.PathVariable;
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.RestController;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.annotation.IgnoreAuth;import com.entity.NongchanpinzhanshiEntity;
import com.entity.view.NongchanpinzhanshiView;import com.service.NongchanpinzhanshiService;
import com.utils.PageUtils;
import com.utils.R;
import com.utils.MPUtil;/*** 农产品展示* 后端接口*/
@RestController
@RequestMapping("/nongchanpinzhanshi")
public class NongchanpinzhanshiController {@Autowiredprivate NonghuService nonghuService;@Autowiredprivate NongchanpinzhanshiService nongchanpinzhanshiService;/*** 后端列表*/@RequestMapping("/page")public R page(@RequestParam Map<String, Object> params, NongchanpinzhanshiEntity nongchanpinzhanshi,HttpServletRequest request) {String tableName = request.getSession().getAttribute("tableName").toString();if (tableName.equals("nonghu")) {nongchanpinzhanshi.setNonghuzhanghao((String) request.getSession().getAttribute("username"));}EntityWrapper<NongchanpinzhanshiEntity> ew = new EntityWrapper<>();PageUtils page = nongchanpinzhanshiService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, nongchanpinzhanshi), params), params));return R.ok().put("data", page);}/*** 前端列表*/@RequestMapping("/list")public R list(@RequestParam Map<String, Object> params, NongchanpinzhanshiEntity nongchanpinzhanshi,HttpServletRequest request) {String tableName = request.getSession().getAttribute("tableName").toString();if (tableName.equals("nonghu")) {nongchanpinzhanshi.setNonghuzhanghao((String) request.getSession().getAttribute("username"));}EntityWrapper<NongchanpinzhanshiEntity> ew = new EntityWrapper<>();PageUtils page = nongchanpinzhanshiService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, nongchanpinzhanshi), params), params));return R.ok().put("data", page);}/*** 列表*/@RequestMapping("/lists")public R list(NongchanpinzhanshiEntity nongchanpinzhanshi) {EntityWrapper<NongchanpinzhanshiEntity> ew = new EntityWrapper<>();ew.allEq(MPUtil.allEQMapPre(nongchanpinzhanshi, "nongchanpinzhanshi"));return R.ok().put("data", nongchanpinzhanshiService.selectListView(ew));}/*** 查询*/@RequestMapping("/query")public R query(NongchanpinzhanshiEntity nongchanpinzhanshi) {EntityWrapper<NongchanpinzhanshiEntity> ew = new EntityWrapper<>();ew.allEq(MPUtil.allEQMapPre(nongchanpinzhanshi, "nongchanpinzhanshi"));NongchanpinzhanshiView nongchanpinzhanshiView = nongchanpinzhanshiService.selectView(ew);return R.ok("查询农产品展示成功").put("data", nongchanpinzhanshiView);}/*** 后端详情*/@RequestMapping("/info/{id}")public R info(@PathVariable("id") Long id) {NongchanpinzhanshiEntity nongchanpinzhanshi = nongchanpinzhanshiService.selectById(id);nongchanpinzhanshi.setClicknum(nongchanpinzhanshi.getClicknum() + 1);nongchanpinzhanshi.setClicktime(new Date());nongchanpinzhanshiService.updateById(nongchanpinzhanshi);nongchanpinzhanshi = nongchanpinzhanshiService.selectView(new EntityWrapper<NongchanpinzhanshiEntity>().eq("id", id));return R.ok().put("data", nongchanpinzhanshi);}/*** 前端详情*/@IgnoreAuth@RequestMapping("/detail/{id}")public R detail(@PathVariable("id") Long id) {NongchanpinzhanshiEntity nongchanpinzhanshi = nongchanpinzhanshiService.selectById(id);nongchanpinzhanshi.setClicknum(nongchanpinzhanshi.getClicknum() + 1);nongchanpinzhanshi.setClicktime(new Date());nongchanpinzhanshiService.updateById(nongchanpinzhanshi);nongchanpinzhanshi = nongchanpinzhanshiService.selectView(new EntityWrapper<NongchanpinzhanshiEntity>().eq("id", id));return R.ok().put("data", nongchanpinzhanshi);}/*** 后端保存*/@RequestMapping("/save")public R save(@RequestBody NongchanpinzhanshiEntity nongchanpinzhanshi, HttpServletRequest request) {NonghuEntity nonghu = nonghuService.selectOne(new EntityWrapper<NonghuEntity>().eq("nonghuzhanghao", nongchanpinzhanshi.getNonghuzhanghao()).eq("nonghuxingming", nongchanpinzhanshi.getNonghuxingming()));if (ObjectUtils.isEmpty(nonghu)) {return R.error(404, "该账户不存在,请确认农户账号姓名");}nongchanpinzhanshiService.insert(nongchanpinzhanshi);return R.ok();}/*** 前端保存*/@RequestMapping("/add")public R add(@RequestBody NongchanpinzhanshiEntity nongchanpinzhanshi, HttpServletRequest request) {nongchanpinzhanshi.setUserid((Long) request.getSession().getAttribute("userId"));nongchanpinzhanshiService.insert(nongchanpinzhanshi);return R.ok();}/*** 修改*/@RequestMapping("/update")@Transactionalpublic R update(@RequestBody NongchanpinzhanshiEntity nongchanpinzhanshi, HttpServletRequest request) {nongchanpinzhanshiService.updateById(nongchanpinzhanshi);//全部更新return R.ok();}/*** 删除*/@RequestMapping("/delete")public R delete(@RequestBody Long[] ids) {nongchanpinzhanshiService.deleteBatchIds(Arrays.asList(ids));return R.ok();}/*** 前端智能排序*/@IgnoreAuth@RequestMapping("/autoSort")public R autoSort(@RequestParam Map<String, Object> params, NongchanpinzhanshiEntity nongchanpinzhanshi, HttpServletRequest request, String pre) {EntityWrapper<NongchanpinzhanshiEntity> ew = new EntityWrapper<NongchanpinzhanshiEntity>();Map<String, Object> newMap = new HashMap<String, Object>();Map<String, Object> param = new HashMap<String, Object>();Iterator<Map.Entry<String, Object>> it = param.entrySet().iterator();while (it.hasNext()) {Map.Entry<String, Object> entry = it.next();String key = entry.getKey();String newKey = entry.getKey();if (pre.endsWith(".")) {newMap.put(pre + newKey, entry.getValue());} else if (StringUtils.isEmpty(pre)) {newMap.put(newKey, entry.getValue());} else {newMap.put(pre + "." + newKey, entry.getValue());}}params.put("sort", "clicknum");params.put("order", "desc");PageUtils page = nongchanpinzhanshiService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, nongchanpinzhanshi), params), params));return R.ok().put("data", page);}
}

2.农产品展示实体:

package com.entity.vo;import java.util.Date;
import org.springframework.format.annotation.DateTimeFormat;
import com.fasterxml.jackson.annotation.JsonFormat;
import java.io.Serializable;/*** 农产品展示*/
public class NongchanpinzhanshiVO implements Serializable {private static final long serialVersionUID = 1L;/*** 产品类型*/private String chanpinleixing;/*** 产地*/private String chandi;/*** 规格*/private String guige;/*** 数量*/private Integer shuliang;/*** 价格*/private Integer jiage;/*** 采摘日期*/@JsonFormat(locale = "zh", timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")@DateTimeFormatprivate Date caizhairiqi;/*** 保质期*/private String baozhiqi;/*** 产品描述*/private String chanpinmiaoshu;/*** 产品图片*/private String chanpintupian;/*** 农户账号*/private String nonghuzhanghao;/*** 农户姓名*/private String nonghuxingming;/*** 最近点击时间*/@JsonFormat(locale = "zh", timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")@DateTimeFormatprivate Date clicktime;/*** 点击次数*/private Integer clicknum;/*** 用户id*/private Long userid;/*** 设置:产品类型*/public void setChanpinleixing(String chanpinleixing) {this.chanpinleixing = chanpinleixing;}/*** 获取:产品类型*/public String getChanpinleixing() {return chanpinleixing;}/*** 设置:产地*/public void setChandi(String chandi) {this.chandi = chandi;}/*** 获取:产地*/public String getChandi() {return chandi;}/*** 设置:规格*/public void setGuige(String guige) {this.guige = guige;}/*** 获取:规格*/public String getGuige() {return guige;}/*** 设置:数量*/public void setShuliang(Integer shuliang) {this.shuliang = shuliang;}/*** 获取:数量*/public Integer getShuliang() {return shuliang;}/*** 设置:价格*/public void setJiage(Integer jiage) {this.jiage = jiage;}/*** 获取:价格*/public Integer getJiage() {return jiage;}/*** 设置:采摘日期*/public void setCaizhairiqi(Date caizhairiqi) {this.caizhairiqi = caizhairiqi;}/*** 获取:采摘日期*/public Date getCaizhairiqi() {return caizhairiqi;}/*** 设置:保质期*/public void setBaozhiqi(String baozhiqi) {this.baozhiqi = baozhiqi;}/*** 获取:保质期*/public String getBaozhiqi() {return baozhiqi;}/*** 设置:产品描述*/public void setChanpinmiaoshu(String chanpinmiaoshu) {this.chanpinmiaoshu = chanpinmiaoshu;}/*** 获取:产品描述*/public String getChanpinmiaoshu() {return chanpinmiaoshu;}/*** 设置:产品图片*/public void setChanpintupian(String chanpintupian) {this.chanpintupian = chanpintupian;}/*** 获取:产品图片*/public String getChanpintupian() {return chanpintupian;}/*** 设置:农户账号*/public void setNonghuzhanghao(String nonghuzhanghao) {this.nonghuzhanghao = nonghuzhanghao;}/*** 获取:农户账号*/public String getNonghuzhanghao() {return nonghuzhanghao;}/*** 设置:农户姓名*/public void setNonghuxingming(String nonghuxingming) {this.nonghuxingming = nonghuxingming;}/*** 获取:农户姓名*/public String getNonghuxingming() {return nonghuxingming;}/*** 设置:最近点击时间*/public void setClicktime(Date clicktime) {this.clicktime = clicktime;}/*** 获取:最近点击时间*/public Date getClicktime() {return clicktime;}/*** 设置:点击次数*/public void setClicknum(Integer clicknum) {this.clicknum = clicknum;}/*** 获取:点击次数*/public Integer getClicknum() {return clicknum;}/*** 设置:用户id*/public void setUserid(Long userid) {this.userid = userid;}/*** 获取:用户id*/public Long getUserid() {return userid;}
}

                                     


http://www.mrgr.cn/p/56812211

相关文章

Java零基础入门到精通_Day 11

1.继承 定义&#xff1a; 继承是面向对象三大特征之一。可以使得子类具有父类的属性和方法&#xff0c;还可以在子类中重新定义&#xff0c;追加属性和方法 格式&#xff1a; public class 子类 extends 父类{} 子类&#xff1a;也叫派生类 父类&#xff1a;基类/超类 继…

mit6.828 - lab1笔记

安装环境编译qemu1. PC启动 打开两个窗口,在第一个窗口中 make qemu-gdb,会启动内核,但在执行第一个指令之前停下; 在第二个窗口中make gdb,实时观察第一个窗口中的执行过程。从这里可以观察到:IBM PC 在物理地址 0x000ffff0 开始执行, 位于为 ROM BIOS 保留的 64KB 区域…

一加Ace3/12/Ace2pro手机ColorOS14刷KernelSU内核ROOT-解决无限重启变砖

一加Ace3/一加12/一加11等手机升级了安卓14底层&#xff0c;并且ColorOS版本也更新到了14版本界面和功能都比之前的系统表现更加优秀&#xff0c;但刷机方面&#xff0c;相对之前存在一些差异&#xff0c;特别是KernelSU内核级别root权限&#xff0c;不再支持一键刷入KernelSU通…

混入、插件、插槽、vuex、本地存储

【混入】# mixin(混入)功能:可以把多个组件共用的配置提取成一个混入对象,不需要在每个组件中都写了 使用步骤 。 。 。 【插件】1 # 1 写plugins/index.js2 import Vue from "vue";3 import axios from "axios";4 import hunru from "@/mixin&quo…

Python 语音识别系列-实战学习-语音识别特征提取

Python 语音识别系列-实战学习-语音识别特征提取 前言1.预加重、分帧和加窗2.提取特征3.可视化特征4.总结 前言 语音识别特征提取是语音处理中的一个重要环节&#xff0c;其主要任务是将连续的时域语音信号转换为连续的特征向量&#xff0c;以便于后续的语音识别和语音处理任务…

[PS小技能学习]抠图和切图

详情见视频教程&#xff1a;PS小技巧--抠图与切图 今天我们来学习如何使用PS对表情包合辑进行抠图和裁剪保存 1、首先&#xff0c;将图片导入&#xff0c;双击图层新建一个图层 2、然后点击工具栏的魔棒工具&#xff0c;再点击顶部菜单栏的添加到选区 3、点击图片的空白区域即…

Linux进程

程序与进程 程序:是可执行文件,其本质是是一个文件,程序是静态的,同一个程序可以运行多次,产生多个进程 进程:它是程序的一次运行过程,当应用程序被加载到内存中运行之后它就称为了一个进程,进程是动态的,进程的生命周期是从程序运行到程序退出 父子进程:当一个进程A…

RISC-V SoC研发flow的总结

RISC-V SoC研发flow的总结 今年的流片接近尾声了,我个人的评价是相比去年,在进度管理和流程管理上做的更好了一些。对比今年一月份开会时开会的PPT,基本上当时的规划和目标基本上都达成了。这次聊聊整个研发过程中的一些感悟。 首先是对于整个团队的研发方向做了一个比较大的…

es环境安装及php对接使用

Elasticsearch Elasticsearch 是一个分布式、高扩展、高实时的搜索与数据分析引擎。它提供了一个分布式多用户能力的全文搜索引擎&#xff0c;基于RESTful web接口。Elasticsearch是用Java语言开发的&#xff0c;并作为Apache许可条款下的开放源码发布&#xff0c;是一种流行的…

golang初学:交叉编译

go version go1.22.1 windows/amd64 Windows 11 + amd64 x86_64 x86_64 GNU/Linux ---序章 golang 支持 跨平台,支持的方式 是 在一个平台 编译其它平台的可执行程序。 本文 介绍 Windows 11(开发主机) 上 编译 Linux(目标主机) 上的可执行程序。#go build开发主机 和 目标…

DRF之三大认证

一、认证 1、自定义认证 在前面说的 APIView 中封装了三大认证,分别为认证、权限、频率。认证即登录认证,权限表示该用户是否有权限访问接口,频率表示用户指定时间内能访问接口的次数。整个请求最开始的也是认证。 (1)需求登陆认证 用户登陆成功--》签发token 以后需要登陆…

外包干了3天,技术就明显退步了。。。。。

先说一下自己的情况&#xff0c;本科生&#xff0c;19年通过校招进入广州某软件公司&#xff0c;干了接近4年的功能测试&#xff0c;今年年初&#xff0c;感觉自己不能够在这样下去了&#xff0c;长时间呆在一个舒适的环境会让一个人堕落!而我已经在一个企业干了四年的功能测试…

Vue入门到关门之Vue项目工程化

一、创建Vue项目 1、安装node环境官网下载,无脑下一步,注意别放c盘就行Node.js — Run JavaScript Everywhere (nodejs.org)需要两个命令npm---->pip node--->python装完检查一下,hello world检测,退出crtl+c2、搭建vue项目环境装cnpm 这个包,下载东西会快很多,装模…

QT 开发COM(ActiveX)组件基础介绍和方案验证

一、COM简介 1.1 COM是什么&#xff1f; COM&#xff0c;Component Object Model&#xff0c;即组件对象模型&#xff0c;是一种以组件为发布单元的对象模型&#xff0c;这种模型使各软件组件可以用一种统一的方式进行交互。COM 既提供了组件之间进行交互的规范&#xff0c;也…

BIO、NIO与AIO

文章目录 一 BIO同步阻塞案例BIO模式消息多发多收实现 二 NIONIO核心组件Buffer(缓冲区)Buffer常见方法缓冲区的数据操作直接内存与非直接内存 Channel(通道)channel常用操作 Selector(选择器)selector选择器处理流程NIO非阻塞式网络通信原理分析 NIO网络编程实现群聊系统服务端…

第6讲需求分析--uml用例图

用例图 一.识别参与者 参与者在系统外所以画图时画在框外。系统用例图比业务用例图更完善所以经常让画的是系统用例图。在商品销售系统里:参与者是顾客。 在会计系统里:参与者是商品销售系统。 二.关系 1.参与者之间 泛化关系子指向父 2.参与者和用例之间 关联关系3.用例和用…

AI大模型探索之路-训练篇10:大语言模型Transformer库-Tokenizer组件实践

系列篇章&#x1f4a5; AI大模型探索之路-训练篇1&#xff1a;大语言模型微调基础认知 AI大模型探索之路-训练篇2&#xff1a;大语言模型预训练基础认知 AI大模型探索之路-训练篇3&#xff1a;大语言模型全景解读 AI大模型探索之路-训练篇4&#xff1a;大语言模型训练数据集概…

认知提升的方法

认知提升的方法一、什么是认知 经验是对于过往经历的总结归纳,当把这种经验传授给别人时,这种经验对别人来说就是知识。所以,知识是人脑对客观事物的信息沉淀。 技能是人们通过练习而获得的动作方式和系统,例如操作技能中的PS技术、木工技术、电工技术、水工技术等,而能力…

万兴PDF专家 PDFelement Pro v10.3.8 破姐版!

&#x1f9d1;‍&#x1f4bb;万兴PDF专家 PDFelement Pro v10.3.8 破姐版 (https://docs.qq.com/sheet/DRVVxTHJ3RXJFVHVr)

QBXT五一集训DAY1笔记

\(Day 1\) \(ASCII\) 简单来说,\(ASCII\) 其实就是字符与数字之间的映射 比如说,\(a\) 的 \(ASCII\) 就是 \(97\) 模运算:% 来复习一下小学数学:\(a/b=c……d\) 这里的\(d\) 就是 \(a\) 除以 \(b\) 的余数,在计算机中,用%来表示 通过这个式子,我们进而得出 \(a=b*c+d\) …