SpringBoot在线失物招领系统

一个基于SpringBoot+SemanticUI的pc Web在线失物招领系统

http://localhost:8080/swzl/index  主页

http://localhost:8080/swzl/login  登录页   用户表user  admin字段为true是管理员  false用户

springboot2.3  springmvc mybatis  html ajax

idea 或eclipse  maven  mysql  jdk1.8

package com.ctgu.swzl.controller;

import com.ctgu.swzl.dao.FeedbackDao;
import com.ctgu.swzl.dao.NoticeDao;
import com.ctgu.swzl.dao.TypeDao;
import com.ctgu.swzl.domain.Feedback;
import com.ctgu.swzl.domain.Notice;
import com.ctgu.swzl.domain.Post;
import com.ctgu.swzl.domain.User;
import com.ctgu.swzl.service.PostService;
import com.ctgu.swzl.service.UserService;
import com.ctgu.swzl.utils.Jmail;
import com.github.pagehelper.Page;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.servlet.ModelAndView;

import javax.mail.MessagingException;
import javax.servlet.http.HttpServletRequest;
import java.util.Date;
import java.util.List;

@Controller
@RequestMapping("/admin")
public class AdminController {

    @Autowired
    private Jmail jmail;

    @Autowired
    private UserService userService;

    @Autowired
    private PostService postService;

    @Autowired
    private NoticeDao noticeDao;

    @Autowired
    private FeedbackDao feedbackDao;

    @Autowired
    private TypeDao typeDao;

    /*---------------------------------------------------userManage------------------------------------------------*/
    @GetMapping("/searchUser")
    public ModelAndView findUser(@RequestParam("search") String uname){

        User user = userService.findUserByUname(uname).get(0);
        ModelAndView mv = new ModelAndView();

        mv.addObject("users",user);
        mv.setViewName("/admin/userManage");
        return mv;
    }

    @GetMapping("/userManage")
    public ModelAndView showUser(@RequestParam(value = "page",required = false)Integer page){
        int pageSize=4;
        if (page==null) {
            page=1;
        }
        Page<Object> pages = PageHelper.startPage(page, pageSize);

        ModelAndView modelAndView = new ModelAndView();
        List<User> users = userService.findAll();
        modelAndView.addObject("users",users);

        PageInfo pageInfo = new PageInfo();
        pageInfo.setPageNum(page);
        pageInfo.setPages(pageSize);
        int a = (int)pages.getTotal()%pageSize==0?0:1;
        pageInfo.setPages((int)pages.getTotal()/pageSize+a);
        pageInfo.setPrePage(page-1);
        pageInfo.setNextPage(page+1);
        modelAndView.addObject("pageInfo",pageInfo);
        modelAndView.setViewName("/admin/userManage");
        return modelAndView;
    }

    /*---------------------------------------------------postManage---------------------------------------------------*/
    @GetMapping("/searchPost")
    public ModelAndView findPost(@RequestParam("search") String uname){
        List<Post> posts = postService.findByUname(uname);
        System.out.println(uname);
        System.out.println(posts);
        ModelAndView mv = new ModelAndView();
        mv.addObject("posts",posts);
        mv.setViewName("/admin/postManage");
        return mv;
    }

    @GetMapping("/postManage")
    public ModelAndView showPost(@RequestParam(value = "page",required = false)Integer page){
        int pageSize=4;
        if (page==null) {
            page=1;
        }
        Page<Object> pages = PageHelper.startPage(page, pageSize);

        ModelAndView modelAndView = new ModelAndView();
        List<Post> posts = postService.findAll();
        modelAndView.addObject("posts",posts);

        PageInfo pageInfo = new PageInfo();
        pageInfo.setPageNum(page);
        pageInfo.setPages(pageSize);
        int a = (int)pages.getTotal()%pageSize==0?0:1;
        pageInfo.setPages((int)pages.getTotal()/pageSize+a);
        pageInfo.setPrePage(page-1);
        pageInfo.setNextPage(page+1);
        modelAndView.addObject("pageInfo",pageInfo);
        modelAndView.setViewName("/admin/postManage");
        return modelAndView;
    }

    @ResponseBody
    @DeleteMapping("/deletePost/{id}")
    public void deletePost(@PathVariable("id")long postId){
        postService.deleteById(postId);
    }

    @PostMapping("/postStatus")
    public String updateStatus(@RequestParam("postID")long postId,
                               @RequestParam("status")String status){
        int s = "已完成".equals(status)?0:1;
        Post post = postService.findById(postId).get(0);
        post.setStatus(s);
        postService.updateStatus(post);
        return "redirect:postManage";
    }

    /*---------------------------------------------------noticeManage---------------------------------------------------*/
    @GetMapping("/searchNotice")
    public ModelAndView findNotice(@RequestParam("search") String cuser){
        List<Notice> notices = noticeDao.findByCuser(cuser);
        ModelAndView mv = new ModelAndView();
        mv.addObject("notices",notices);
        mv.setViewName("/admin/noticeManage");
        return mv;
    }

    @GetMapping("/noticeManage")
    public ModelAndView showNotice(@RequestParam(value = "page",required = false)Integer page){
        int pageSize=4;
        if (page==null) {
            page=1;
        }
        Page<Object> pages = PageHelper.startPage(page, pageSize);

        ModelAndView modelAndView = new ModelAndView();
        List<Notice> notices = noticeDao.findAll();
        modelAndView.addObject("notices",notices);

        PageInfo pageInfo = new PageInfo();
        pageInfo.setPageNum(page);
        pageInfo.setPages(pageSize);
        int a = (int)pages.getTotal()%pageSize==0?0:1;
        pageInfo.setPages((int)pages.getTotal()/pageSize+a);
        pageInfo.setPrePage(page-1);
        pageInfo.setNextPage(page+1);
        modelAndView.addObject("pageInfo",pageInfo);
        modelAndView.setViewName("/admin/noticeManage");
        return modelAndView;
    }

    @ResponseBody
    @DeleteMapping("/deleteNotice/{id}")
    public void deleteNotice(@PathVariable("id")long noticeId){
        noticeDao.deleteById(noticeId);
    }

    @PostMapping("/addNotice")
    public String addNotice(HttpServletRequest request,Notice notice){
        String cuser = request.getSession().getAttribute("loginUser").toString();
        notice.setCuser(cuser).setCtime(new Date());
        noticeDao.addNotice(notice);
        return "redirect:noticeManage";
    }
    /*---------------------------------------------------feedbackManage---------------------------------------------------*/
    @GetMapping("/searchFeedback")
    public ModelAndView findFeedback(@RequestParam("search") String uname){
        List<Feedback> feedbacks = feedbackDao.findByUname(uname);
        ModelAndView mv = new ModelAndView();
        mv.addObject("feedbacks",feedbacks);
        mv.setViewName("/admin/feedbackManage");
        return mv;
    }

    @GetMapping("/feedbackManage")
    public ModelAndView showFeedback(@RequestParam(value = "page",required = false)Integer page){
        int pageSize=4;
        if (page==null) {
            page=1;
        }
        Page<Object> pages = PageHelper.startPage(page, pageSize);

        ModelAndView modelAndView = new ModelAndView();
        List<Feedback> feedbacks = feedbackDao.findAll();
        modelAndView.addObject("feedbacks",feedbacks);

        PageInfo pageInfo = new PageInfo();
        pageInfo.setPageNum(page);
        pageInfo.setPages(pageSize);
        int a = (int)pages.getTotal()%pageSize==0?0:1;
        pageInfo.setPages((int)pages.getTotal()/pageSize+a);
        pageInfo.setPrePage(page-1);
        pageInfo.setNextPage(page+1);
        modelAndView.addObject("pageInfo",pageInfo);
        modelAndView.setViewName("/admin/feedbackManage");
        return modelAndView;
    }

    @ResponseBody
    @DeleteMapping("/deleteFeedback/{id}")
    public void deleteFeedback(@PathVariable("id")long feedbackId){
        feedbackDao.deleteById(feedbackId);
    }

    @PostMapping("/reply")
    public String reply(@RequestParam("feedbackId")long feedbackId,
                      @RequestParam("content")String content,
                      HttpServletRequest request){
        String admin = request.getSession().getAttribute("loginUser").toString();
        String feedbackName = feedbackDao.fingNameById(feedbackId);
        String tomail = userService.findMailByName(feedbackName);
        jmail.setToMail(tomail);
        jmail.setTopic("失物招领回复");
        jmail.setContent(content);
        System.out.println(tomail+":::"+content);
        try {
            jmail.send();
        } catch (MessagingException e) {
            throw new RuntimeException("邮箱发送失败!");
        }
        return "redirect:feedbackManage";
    }


    @ResponseBody
    @GetMapping("/addType")
    public void addType(@RequestParam("typeName") String typeName){
        typeDao.addType(typeName);
    }

}

 

package com.ctgu.swzl.controller;

import com.ctgu.swzl.domain.Post;
import com.ctgu.swzl.domain.User;
import com.ctgu.swzl.service.PostService;
import com.ctgu.swzl.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import org.springframework.web.servlet.ModelAndView;

import javax.servlet.http.HttpServletRequest;
import java.io.File;
import java.io.IOException;
import java.util.List;
import java.util.UUID;

@Controller
public class MineController {

    @Value("${images.path}")
    private String path;

    @Autowired
    private UserService userService;

    @Autowired
    private PostService postService;

    @GetMapping("/mine")
    public ModelAndView toMine(HttpServletRequest request){
        ModelAndView modelAndView = new ModelAndView();
        String uname = request.getSession().getAttribute("loginUser").toString();
        List<User> users = userService.findUserByUname(uname);
        List<Post> posts = postService.findByUname(uname);
        modelAndView.addObject("mine",users.get(0));
        modelAndView.addObject("posts",posts);
        modelAndView.setViewName("mine");
        return modelAndView;
    }

    @PostMapping("/mine")
    public String updateMine(@RequestParam(value = "frequency",required = false)String sexx,
                             @RequestParam(value = "age",required = false)Integer age,
                             @RequestParam(value = "personalSay",required = false)String personalSay,
                             @RequestParam(value = "upload",required = false) MultipartFile upload,
                             @RequestParam(value = "upload5",required = false) MultipartFile upload5,
                             HttpServletRequest request) throws IOException {
        User loginUser = (User) request.getSession().getAttribute("localUser");

        String filename = upload.getOriginalFilename();
        if (filename.length()!=0){
            filename = UUID.randomUUID().toString().replaceAll("-", "") + "_" + filename;
            upload.transferTo(new File(path, filename));
            loginUser.setPhoto("/images/"+filename);
        }
        String filename5 = upload5.getOriginalFilename();
        if (filename5.length()!=0){
            filename5 = UUID.randomUUID().toString().replaceAll("-", "") + "_" + filename5;
            upload5.transferTo(new File(path, filename5));
            loginUser.setRewardCode("/images/"+filename5);
        }

        if (sexx.length()!=0) {
            char sex = "man".equals(sexx) ? '男' : '女';
            loginUser.setSex(sex);
        }
        if (age!=null) {
            loginUser.setAge(age);
        }
        if (personalSay.length()!=0){
            loginUser.setPersonalSay(personalSay);
        }
        userService.updateUser(loginUser);
        return "redirect:/mine";
    }

    @ResponseBody
    @DeleteMapping("/mine/{id}")
    public String deletePostById(@PathVariable("id") long postId) {
        try {
            postService.deleteById(postId);
        } catch (Exception e) {
            e.printStackTrace();
//            throw new CustomException("删除失败");
        }
        return "success";
    }

    @PostMapping("/postStatus")
    public String updateStatus(@RequestParam("postID")long postId,
                               @RequestParam("status")String status){
        int s = "已完成".equals(status)?0:1;
        Post post = postService.findById(postId).get(0);
        post.setStatus(s);
        postService.updateStatus(post);
        return "redirect:mine";
    }
}

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【Linux进行时】进程概念

进程的概念 什么是进程呢&#xff1f; ❓首先我们需要认识一下什么叫进程呢&#xff1f; 课本概念&#xff1a;程序的一个执行实例&#xff0c;正在执行的程序等 &#x1f525;内核观点&#xff1a;担当分配系统资源&#xff08;CPU时间&#xff0c;内存&#xff09;的实体。…

SpringBoot06---前端路由VueRouter

单页面应用&#xff0c;意思是只有一个html&#xff0c;变化的内容是不同组件进行切换&#xff0c;每个组件加载网络请求&#xff0c;渲染对应的数据&#xff0c;这个内容就是学习怎么完成组件切换 以网易云音乐为例&#xff1a; 网易云音乐 (163.com) 现在无需注册&#xf…

springBoot的日志文件

日志是程序的重要组成部分&#xff0c;主要可以用来定位和排查问题。除此之外&#xff0c;还可以用来&#xff1a; 1. 记录用户的登录日志&#xff0c;方便分析用户是正常登录还是恶意破解&#xff1b; 2. 记录系统的操作日志&#xff0c;方便数据恢复和定位操作人&#xff1b;…

docker 安装elasticsearch、kibana

下载es镜像 docker pull elasticsearch 启动es容器 docker run --name elasticsearch -p 9200:9200 -p 9300:9300 -e "discovery.typesingle-node" -e ES_JAVA_OPTS"-Xms512m -Xmx512m" -d elasticsearch 验证es界面访问 ​​​​​http://节点ip:9200/ ​…

leetcode 416. 分割等和子集

2023.8.12 太难了ToT.... 一题做了一个下午。 本题是动规题目的0-1背包问题系列。将分割子集转化为 在nums数组中任取任意元素使其和等于总元素和的一半&#xff0c;即可满足题目条件。 1、使用一个bool型二维dp数组&#xff0c;dp[i][j] 的含义是&#xff1a;任取nums数组在索…

已有公司将ChatGPT集成到客服中心以增强用户体验

Ozonetel正在利用ChatGPT来改善客户体验。该公司表示&#xff0c;他们通过使用ChatGPT收集与客户互动过程收集的“语料”能够更有针对性地提高服务效率&#xff0c;提供个性化的用户体验&#xff0c;并实现更高的客户满意度。[1] 通过这套解决方案&#xff0c;客服中心将拥有一…

27.Netty源码之FastThreadLocal

highlight: arduino-light FastThreadLocal FastThreadLocal 的实现与 ThreadLocal 非常类似&#xff0c;Netty 为 FastThreadLocal 量身打造了 FastThreadLocalThread 和 InternalThreadLocalMap 两个重要的类。下面我们看下这两个类是如何实现的。 FastThreadLocalThread 是对…

c++文件流详细笔记

c++流 IO :向设备输入数据和输出数据 C++的IO流 设备: 文件控制台特定的数据类型(stringstream)c++中,必须通过特定的已经定义好的类, 来处理IO(输入输出) 文件流 文件流: 对文件进行读写操作 头文件: 类库: ifstream 对文件输入(读文件) ofstream 对文件输出(写…

idea中如何处理飘红提示

idea中如何处理飘红提示 在写sql时&#xff0c;总是会提示各种错误 查找资料&#xff0c;大部分都是说关提示&#xff0c;这里把错误提示选择为None即可 关掉以后&#xff0c;也确实不显示任何提示了&#xff0c;但总有一种掩耳盗铃的感觉 这个sms表明明存在&#xff0c;但是还…

深度学习常用的python库学习笔记

文章目录 数据分析四剑客Numpyndarray数组和标量之间的运算基本的索引和切片数学和统计方法线性代数 PandasMatplotlibPIL 数据分析四剑客 Numpy Numpy中文网 ndarray 数组和标量之间的运算 基本的索引和切片 数学和统计方法 线性代数 Pandas Pandas中文网 Matplotlib Mat…

MuMu模拟器运行一段时间后Device.Present耗时突然上升

1&#xff09;MuMu模拟器运行一段时间后Device.Present耗时突然上升 2&#xff09;​如何在运行过程中获得温度信息 3&#xff09;Input System鼠标更换主按键的Bug 4&#xff09;如何禁止Unity向https://config.uca.cloud.unity3d.com发送设备信息 这是第347篇UWA技术知识分享…

Leetcode-每日一题【剑指 Offer 26. 树的子结构】

题目 输入两棵二叉树A和B&#xff0c;判断B是不是A的子结构。(约定空树不是任意一个树的子结构) B是A的子结构&#xff0c; 即 A中有出现和B相同的结构和节点值。 例如: 给定的树 A: 3 / \ 4 5 / \ 1 2 给定的树 B&#xff1a; 4 / 1 返回 true&#xff0…

C++笔记之静态成员函数的使用场景

C笔记之静态成员函数的使用场景 C静态成员函数的核心特点是不与特定类实例相关&#xff0c;可通过类名直接调用&#xff0c;用于执行与类相关的操作而无需创建类对象。其主要用途是在类级别上共享功能&#xff0c;管理全局状态或提供工具函数。 code review! 文章目录 C笔记之…

悬崖传感器调试问题总结

悬崖传感器原理 使用ADC采样电路&#xff0c;周期的进行开/关灯&#xff0c;获取ADC采样值。根据预先设置好ADC门限&#xff0c;判断是否为悬崖。ADC的精度是12位&#xff0c;对应电路的电压是3.3伏&#xff0c;悬崖传感器通过开灯和关灯&#xff0c;接收的不同灯光强度&#x…

[数据集][目标检测]道路坑洼目标检测数据集VOC格式1510张2类别

数据集格式&#xff1a;Pascal VOC格式(不包含分割路径的txt文件和yolo格式的txt文件&#xff0c;仅仅包含jpg图片和对应的xml) 图片数量(jpg文件个数)&#xff1a;1510 标注数量(xml文件个数)&#xff1a;1510 标注类别数&#xff1a;2 标注类别名称:["keng","…

Redis缓存设计

缓存能够有效地加速应用的读写速度&#xff0c;同时也可以降低后端负载&#xff0c;对日常应用的开发至关重要。但是将缓存加入应用架构后也会带来一些问题&#xff0c;本文将针对这些问题介绍缓存使用技巧和设计方案。 1缓存的收益和成本 下图左侧为客户端直接调用存储层的架…

vector【1】介绍与使用(超详解哦)

vector 引言vector介绍接口使用默认成员函数迭代器容量元素访问数据修改 总结 引言 在string部分&#xff0c;我们详细的介绍了各个接口的使用&#xff0c;虽然其不属于STL的一部分&#xff0c;但是接口与STL中的容器相似&#xff0c;所以我们在学习使用vector等STL容器的使用…

JavaScript之BOM+window对象+定时器+location,navigator,history对象

一.BOM概述 BOM即浏览器对象模型,它提供了独立于内容而与窗口进行交互的对象 BOM的顶级对象是window 二.window对象的常见事件 1.窗口加载事件window.onload window.onload function(){} 或者 window.addEventListener("onload" , function(){}); window.onlo…

websocket知识点

http协议 http协议特点&#xff1a; 无状态协议每个请求是独立的单双工通信&#xff0c;且服务器无法主动给客户端发信息http协议受浏览器同源策略影响 http实现双向通信方法: 轮询长轮询iframe流sse EventSource websocket协议 websocket协议: 全双工协议支持跨域支持多…

近地面无人机植被定量遥感与生理参数反演技术

遥感&#xff08;RS-Remote Sensing&#xff09;——不接触物体本身&#xff0c;用传感器收集目标物的电磁波信息&#xff0c;经处理、分析后&#xff0c;识别目标物&#xff0c;揭示其几何、物理性质和相互关系及其变化规律的现代科学技术。 换言之&#xff0c;即是“遥远的感…
最新文章