基于Spring Boot的智慧农业专家远程指导系统

发布于:2024-12-23 ⋅ 阅读:(19) ⋅ 点赞:(0)

一、系统背景与意义

随着科技的不断进步,农业领域也在积极寻求创新与发展。然而,传统农业生产中农民往往依靠经验进行种植和养殖,缺乏科学的指导和技术支持。同时,农业专家资源有限,难以覆盖广大的农村地区,无法及时为农民提供面对面的指导。因此,开发一种智慧农业专家远程指导系统显得尤为重要。该系统能够打破时间和空间的限制,为农民提供实时、高效的远程指导服务,提高农业生产的科学性和效益。

二、系统架构与技术选型

系统架构:基于B/S(Browser/Server)架构,实现用户界面的集中化和业务逻辑处理的分散化。
技术选型:
后端:采用Spring Boot框架,集成Spring MVC和MyBatis等组件,实现业务逻辑的处理和数据存储。Spring Boot具有高效的开发和稳定运行特性,能够简化依赖管理和配置,提高开发效率。
前端:采用Vue.js框架,实现前后端分离的开发模式。Vue.js具有轻量级、易学易用和高效的数据绑定机制等特点,能够构建出用户体验良好的用户界面。
数据库:采用MySQL数据库,用于存储和管理系统所需的数据信息。MySQL具有高性能、可靠性和易用性等特点,能够满足系统对数据存储和处理的需求。

部分代码

package com.example.controller;

import cn.hutool.core.util.StrUtil;
import cn.hutool.crypto.SecureUtil;
import com.example.common.Result;
import com.example.common.ResultCode;
import com.example.entity.Caiwu;
import com.example.exception.CustomException;
import com.example.service.CaiwuService;
import com.example.utils.MapWrapperUtils;
import com.example.utils.jwt.JwtUtil;
import com.example.vo.CaiwuVo;
import org.springframework.beans.BeanUtils;
import org.springframework.web.bind.annotation.*;

import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

@RestController
@RequestMapping(value = "/caiwu")
public class CaiwuController {

    @Resource
    private CaiwuService caiwuService;

    @PostMapping
    public Result<Caiwu> add(@RequestBody CaiwuVo caiwu) {
        caiwuService.add(caiwu);
           return Result.success(caiwu);
    }
	
	

    @PostMapping("/deleteList")
    public Result<Caiwu> deleteList(@RequestBody CaiwuVo caiwu) {
        caiwuService.deleteList(caiwu.getList());
        return Result.success();
    }

    @DeleteMapping("/{id}")
    public Result delete(@PathVariable Long id) {
        caiwuService.delete(id);
        return Result.success();
    }

    @PutMapping
    public Result update(@RequestBody CaiwuVo caiwu) {
        caiwuService.update(caiwu);
        return Result.success();
    }

    @GetMapping("/{id}")
    public Result<Caiwu> detail(@PathVariable Integer id) {
        Caiwu caiwu = caiwuService.findById(id);
        return Result.success(caiwu);
    }

    @GetMapping
    public Result<List<Caiwu>> all() {
        return Result.success(caiwuService.list());
    }

    @PostMapping("/page")
    public Result<CaiwuVo> page(@RequestBody CaiwuVo caiwuVo) {
        return Result.success(caiwuService.findPage(caiwuVo));
    }
	    @PostMapping("/login")
    public Result login(@RequestBody Caiwu caiwu, HttpServletRequest request) {
        if (StrUtil.isBlank(caiwu.getZhanghao()) || StrUtil.isBlank(caiwu.getMima())) {
            throw new CustomException(ResultCode.PARAM_LOST_ERROR);
        }
        Caiwu login = caiwuService.login(caiwu);
//        if(!login.getStatus()){
//            return Result.error("1001","状态限制,无法登录系统");
//        }
        if(login != null) {
            HashMap hashMap = new HashMap();
            hashMap.put("user", login);
            Map<String, Object> map = MapWrapperUtils.builder(MapWrapperUtils.KEY_USER_ID,caiwu.getId());
            String token = JwtUtil.creatToken(map);
            hashMap.put("token", token);
            return Result.success(hashMap);
        }else {
            return Result.error();
        }
    }
    @PutMapping("/updatePassword")
    public Result updatePassword(@RequestBody Caiwu info, HttpServletRequest request) {
        Caiwu caiwu = caiwuService.findById(info.getId());
        String oldPassword = SecureUtil.md5(info.getMima());
        if (!oldPassword.equals(caiwu.getMima())) {
            return Result.error(ResultCode.PARAM_PASSWORD_ERROR.code, ResultCode.PARAM_PASSWORD_ERROR.msg);
        }
        info.setMima(SecureUtil.md5(info.getNewPassword()));
        Caiwu caiwu1 = new Caiwu();
        BeanUtils.copyProperties(info, caiwu1);
        caiwuService.update(caiwu1);
        return Result.success();
    }
}

效果图

请添加图片描述

请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述

三、系统功能模块

用户管理模块:实现用户注册、登录、个人信息管理等功能,确保用户能够安全、便捷地使用系统。
专家信息模块:展示农业专家的基本信息和擅长领域,方便农民根据需求选择合适的专家进行咨询。
知识库模块:整理并分类存储常见的农业问题和解决方案,形成知识库,方便农民自主查询和学习。
在线咨询模块:实现农民与农业专家之间的实时在线交流和咨询,农民可以上传农业生产中遇到的问题图片或视频,让专家更直观地了解问题并给出专业解答。
数据分析模块:利用大数据分析技术对农民提出的问题进行分析,总结出农业生产中的常见问题和热点问题,为专家提供研究方向和决策依据。

四、系统特点与优势

实时高效:农民可以随时随地向农业专家咨询问题,获得及时的指导和解答。
直观易懂:系统支持图像、视频上传功能,让专家能够更直观地了解农民遇到的问题,并以多种形式呈现指导意见,方便农民理解和操作。
个性化服务:系统可以根据不同地区、不同农作物的问题特点,为农民提供个性化的农业生产建议。
可扩展性:采用Spring Boot框架开发,系统具有良好的可扩展性和可维护性,能够满足不断变化的需求和环境。

五、应用前景与展望

基于Spring Boot的智慧农业专家远程指导系统具有广阔的应用前景。它可以为农民提供科学、高效的农业生产指导,提高农产品的质量和产量,增强市场竞争力。同时,该系统还可以为农业专家提供一个展示自己专业知识和技能的平台,促进农业技术的传播和推广。未来,随着技术的不断进步和应用的深入,该系统将进一步优化和完善,为智慧农业的发展做出更大的贡献。


网站公告

今日签到

点亮在社区的每一天
去签到