微信小程序源码-基于Java后端的会议发布与预约系统毕业设计(附源码+演示录像+LW)

大家好!我是程序员一帆,感谢您阅读本文,欢迎一键三连哦。

💞当前专栏:微信小程序毕业设计

精彩专栏推荐👇🏻👇🏻👇🏻

🎀 Python毕业设计
🌎Java毕业设计

开发环境

①前端:微信小程序开发工具

② 后端:Java
框架:ssm
JDK版本:JDK1.8
服务器:tomcat7
数据库:mysql 5.7
数据库工具:Navicat12
开发软件:eclipse/myeclipse/idea
Maven包:Maven3.3.9
浏览器:谷歌浏览器

演示视频

前端:

weixin072会议发布与预约系统的设计与开发-微信端

后端:

weixin072会议发布与预约系统的设计与开发-服务端

原版高清演示视频-编号:072
https://pan.quark.cn/s/c0c9519df9d4

源码下载地址:

https://download.csdn.net/download/2301_76953549/89089639

LW目录

【如需全文请按文末获取联系】
在这里插入图片描述
在这里插入图片描述

一、项目简介

本基于微信小程序的会议发布与预约系统管理员功能有个人中心,发布者管理,用户管理,发布会议管理,会议预约管理,留言板管理,交流论坛,系统管理等。用户可以查看会议,预约会议等操作。

二、系统设计

2.1软件功能模块设计

设计的功能结构图如下图所示:
在这里插入图片描述

2.2数据库设计

(1)管理员信息的实体属性图如下:
在这里插入图片描述
(2)会议通知实体属性图如图4.13所示:
在这里插入图片描述
(3)发布者信息实体属性图如图4.14所示:
在这里插入图片描述

三、系统项目部分截图

3.1后台模块的实现

交流论坛管理
管理员可以对留言进行回复。具体界面的展示如图5.1所示。
在这里插入图片描述
发布者管理
管理员可以查看发布者信息。具体界面如图5.2所示。
在这里插入图片描述
发布会议管理
管理员可以查看发布会议信息。界面如下图所示:
在这里插入图片描述

3.2小程序会员模块的实现

系统首页
小程序用户是需要注册才可以进行登录的,登录后在首页可以查看相关信息,并且下面导航可以点击到其他功能模块。界面如下图所示:
在这里插入图片描述
我的菜单
在小程序里点击我的,会出现关于我的界面,在这里可以修改个人信息,以及可以点击其他功能模块。界面如下图所示:
在这里插入图片描述
会议预约
用户可以对发布者发布的会议进行预约。界面如下图所示:
在这里插入图片描述

四、部分核心代码

4.1 用户部分

package com.controller;

import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Calendar;
import java.util.Map;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Date;
import java.util.List;
import javax.servlet.http.HttpServletRequest;

import com.utils.ValidatorUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.format.annotation.DateTimeFormat;
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.baomidou.mybatisplus.mapper.Wrapper;
import com.annotation.IgnoreAuth;

import com.entity.FabuzheEntity;
import com.entity.view.FabuzheView;

import com.service.FabuzheService;
import com.service.TokenService;
import com.utils.PageUtils;
import com.utils.R;
import com.utils.MD5Util;
import com.utils.MPUtil;
import com.utils.CommonUtil;


/**
 * 发布者
 * 后端接口
 * @author 
 * @email 
 * @date 2021-05-10 09:51:10
 */
@RestController
@RequestMapping("/fabuzhe")
public class FabuzheController {
    @Autowired
    private FabuzheService fabuzheService;
    
	@Autowired
	private TokenService tokenService;
	
	/**
	 * 登录
	 */
	@IgnoreAuth
	@RequestMapping(value = "/login")
	public R login(String username, String password, String captcha, HttpServletRequest request) {
		FabuzheEntity user = fabuzheService.selectOne(new EntityWrapper<FabuzheEntity>().eq("zhanghao", username));
		if(user==null || !user.getMima().equals(password)) {
			return R.error("账号或密码不正确");
		}
		String token = tokenService.generateToken(user.getId(), username,"fabuzhe",  "发布者" );
		return R.ok().put("token", token);
	}
	
	/**
     * 注册
     */
	@IgnoreAuth
    @RequestMapping("/register")
    public R register(@RequestBody FabuzheEntity fabuzhe){
    	//ValidatorUtils.validateEntity(fabuzhe);
    	FabuzheEntity user = fabuzheService.selectOne(new EntityWrapper<FabuzheEntity>().eq("zhanghao", fabuzhe.getZhanghao()));
		if(user!=null) {
			return R.error("注册用户已存在");
		}
		Long uId = new Date().getTime();
		fabuzhe.setId(uId);
        fabuzheService.insert(fabuzhe);
        return R.ok();
    }
	
	/**
	 * 退出
	 */
	@RequestMapping("/logout")
	public R logout(HttpServletRequest request) {
		request.getSession().invalidate();
		return R.ok("退出成功");
	}
	
	/**
     * 获取用户的session用户信息
     */
    @RequestMapping("/session")
    public R getCurrUser(HttpServletRequest request){
    	Long id = (Long)request.getSession().getAttribute("userId");
        FabuzheEntity user = fabuzheService.selectById(id);
        return R.ok().put("data", user);
    }
    
    /**
     * 密码重置
     */
    @IgnoreAuth
	@RequestMapping(value = "/resetPass")
    public R resetPass(String username, HttpServletRequest request){
    	FabuzheEntity user = fabuzheService.selectOne(new EntityWrapper<FabuzheEntity>().eq("zhanghao", username));
    	if(user==null) {
    		return R.error("账号不存在");
    	}
    	user.setMima("123456");
        fabuzheService.updateById(user);
        return R.ok("密码已重置为:123456");
    }


    /**
     * 后端列表
     */
    @RequestMapping("/page")
    public R page(@RequestParam Map<String, Object> params,FabuzheEntity fabuzhe, 
		HttpServletRequest request){

        EntityWrapper<FabuzheEntity> ew = new EntityWrapper<FabuzheEntity>();
		PageUtils page = fabuzheService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, fabuzhe), params), params));
        return R.ok().put("data", page);
    }
    
    /**
     * 前端列表
     */
    @RequestMapping("/list")
    public R list(@RequestParam Map<String, Object> params,FabuzheEntity fabuzhe, 
		HttpServletRequest request){
        EntityWrapper<FabuzheEntity> ew = new EntityWrapper<FabuzheEntity>();
		PageUtils page = fabuzheService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, fabuzhe), params), params));
        return R.ok().put("data", page);
    }

	/**
     * 列表
     */
    @RequestMapping("/lists")
    public R list( FabuzheEntity fabuzhe){
       	EntityWrapper<FabuzheEntity> ew = new EntityWrapper<FabuzheEntity>();
      	ew.allEq(MPUtil.allEQMapPre( fabuzhe, "fabuzhe")); 
        return R.ok().put("data", fabuzheService.selectListView(ew));
    }

	 /**
     * 查询
     */
    @RequestMapping("/query")
    public R query(FabuzheEntity fabuzhe){
        EntityWrapper< FabuzheEntity> ew = new EntityWrapper< FabuzheEntity>();
 		ew.allEq(MPUtil.allEQMapPre( fabuzhe, "fabuzhe")); 
		FabuzheView fabuzheView =  fabuzheService.selectView(ew);
		return R.ok("查询发布者成功").put("data", fabuzheView);
    }
	
    /**
     * 后端详情
     */
    @RequestMapping("/info/{id}")
    public R info(@PathVariable("id") Long id){
        FabuzheEntity fabuzhe = fabuzheService.selectById(id);
        return R.ok().put("data", fabuzhe);
    }

    /**
     * 前端详情
     */
    @RequestMapping("/detail/{id}")
    public R detail(@PathVariable("id") Long id){
        FabuzheEntity fabuzhe = fabuzheService.selectById(id);
        return R.ok().put("data", fabuzhe);
    }
    



    /**
     * 后端保存
     */
    @RequestMapping("/save")
    public R save(@RequestBody FabuzheEntity fabuzhe, HttpServletRequest request){
    	fabuzhe.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());
    	//ValidatorUtils.validateEntity(fabuzhe);
    	FabuzheEntity user = fabuzheService.selectOne(new EntityWrapper<FabuzheEntity>().eq("zhanghao", fabuzhe.getZhanghao()));
		if(user!=null) {
			return R.error("用户已存在");
		}

		fabuzhe.setId(new Date().getTime());
        fabuzheService.insert(fabuzhe);
        return R.ok();
    }
    
    /**
     * 前端保存
     */
    @RequestMapping("/add")
    public R add(@RequestBody FabuzheEntity fabuzhe, HttpServletRequest request){
    	fabuzhe.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());
    	//ValidatorUtils.validateEntity(fabuzhe);
    	FabuzheEntity user = fabuzheService.selectOne(new EntityWrapper<FabuzheEntity>().eq("zhanghao", fabuzhe.getZhanghao()));
		if(user!=null) {
			return R.error("用户已存在");
		}

		fabuzhe.setId(new Date().getTime());
        fabuzheService.insert(fabuzhe);
        return R.ok();
    }

    /**
     * 修改
     */
    @RequestMapping("/update")
    public R update(@RequestBody FabuzheEntity fabuzhe, HttpServletRequest request){
        //ValidatorUtils.validateEntity(fabuzhe);
        fabuzheService.updateById(fabuzhe);//全部更新
        return R.ok();
    }
    

    /**
     * 删除
     */
    @RequestMapping("/delete")
    public R delete(@RequestBody Long[] ids){
        fabuzheService.deleteBatchIds(Arrays.asList(ids));
        return R.ok();
    }
    
    /**
     * 提醒接口
     */
	@RequestMapping("/remind/{columnName}/{type}")
	public R remindCount(@PathVariable("columnName") String columnName, HttpServletRequest request, 
						 @PathVariable("type") String type,@RequestParam Map<String, Object> map) {
		map.put("column", columnName);
		map.put("type", type);
		
		if(type.equals("2")) {
			SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
			Calendar c = Calendar.getInstance();
			Date remindStartDate = null;
			Date remindEndDate = null;
			if(map.get("remindstart")!=null) {
				Integer remindStart = Integer.parseInt(map.get("remindstart").toString());
				c.setTime(new Date()); 
				c.add(Calendar.DAY_OF_MONTH,remindStart);
				remindStartDate = c.getTime();
				map.put("remindstart", sdf.format(remindStartDate));
			}
			if(map.get("remindend")!=null) {
				Integer remindEnd = Integer.parseInt(map.get("remindend").toString());
				c.setTime(new Date());
				c.add(Calendar.DAY_OF_MONTH,remindEnd);
				remindEndDate = c.getTime();
				map.put("remindend", sdf.format(remindEndDate));
			}
		}
		
		Wrapper<FabuzheEntity> wrapper = new EntityWrapper<FabuzheEntity>();
		if(map.get("remindstart")!=null) {
			wrapper.ge(columnName, map.get("remindstart"));
		}
		if(map.get("remindend")!=null) {
			wrapper.le(columnName, map.get("remindend"));
		}


		int count = fabuzheService.selectCount(wrapper);
		return R.ok().put("count", count);
	}
	


}

获取源码或论文

如需对应的LW或源码,以及其他定制需求,也可以点我头像查看个人简介联系。

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

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

相关文章

从cuda到cudnn到pytorch

一、预配版本信息 1、cuda12.1.1 2、cudnn8.9.7 3、pytorch2.2.0 二、引用 深度学习之环境配置&#xff1a;【CUDA 12.1.1cuDNN 8.9.1】最新安装教程记录 -- 20240429_torch 1.12.0对应torchvision-CSDN博客 补充&#xff1a; cuda历史版本索引&#xff1a; NVIDIA Dev…

【C语言深度解剖】(15):动态内存管理和柔性数组

&#x1f921;博客主页&#xff1a;醉竺 &#x1f970;本文专栏&#xff1a;《C语言深度解剖》 &#x1f63b;欢迎关注&#xff1a;感谢大家的点赞评论关注&#xff0c;祝您学有所成&#xff01; ✨✨&#x1f49c;&#x1f49b;想要学习更多C语言深度解剖点击专栏链接查看&…

IDEA 将多个微服务Springboot项目Application启动类添加到services标签,统一启动、关闭服务

IDEA 将多个微服务Springboot项目Application启动类添加到services标签&#xff0c;统一启动、关闭服务 首先在Views > Tool Windows > Services 添加services窗口 点击services窗口&#xff0c;首次需要添加配置类型&#xff0c;我们选择Springboot 默认按照运行状态分…

【竞技宝】英超:足总杯踢完解雇腾帅,曼联管理层心意已决

根据知名媒体《卫报》的报道,足总杯之后曼联将会 解雇滕哈格,哪怕他率领曼联队能够击败强大的曼城夺冠,也无法改变他将下课的事实。因为曼联本赛季的联赛排名只有第8名,已经来到了近30年来的最差成绩,这种情况下滕哈格与曼联的缘分似乎将被终结。 滕哈格上赛季成为曼联的主帅,由…

2024洗地机哪个牌子好?洗地机十大品牌

洗地机在不同家庭环境中都能发挥其独特的优势&#xff0c;无论是大面积的地板还是狭小的角落&#xff0c;都能轻松应对。 对于有孩子或宠物的家庭&#xff0c;地面上经常会有各种杂物和污渍&#xff0c;洗地机强大的吸力和深度清洁功能&#xff0c;可以迅速清理掉这些脏东西&a…

SpringCloud的Config配置中心,为什么要分Server服务端和Client客户端?

SpringCloud的Config配置中心&#xff0c;为什么要分Server服务端和Client客户端&#xff1f; 在SpringCloud的Config配置中心中分了Server服务端和Client客户端&#xff0c;为什么需要这样分呢&#xff1f;它的思想是所有微服务的配置文件都放到git远程服务器上&#xff0c;让…

Vue 导出 Excel

theme: smartblue 依赖下载 npm i exceljs file-saver 简单案例 Export 导出后的文件如下&#xff1a; 相关操作 合并单元格 worksheet.mergeCells(A1:B1) 添加边框 worksheet.getCell(A2).border { top:{style:thin}, left:{style:thin}, right:{style:thin}, bottom:{st…

9.1 Go语言入门(环境篇)

Go语言入门&#xff08;环境篇&#xff09; 目录一、什么是Go语言二、下载安装配置Go语言开发环境1. 下载2. 安装3. 配置环境变量4. 安装环境验证 三、 开发工具1. 下载2. 安装3. 激活4. 配置SDK 四、 创建go工程文件并运行1. 创建go工程2. 示例代码3. 运行代码 目录 一、什么…

amis-editor 低代码可视化编辑器开发 和 使用说明

1.amis-editor可视化编辑器 React版本&#xff08;推荐&#xff09;&#xff1a; GitHub - aisuda/amis-editor-demo: amis 可视化编辑器示例 https://aisuda.github.io/amis-editor-demo 建议使用react版本&#xff0c;好维护&#xff0c;升级版本更新package.json中对应版本…

Ollama:一个在本地部署、运行大型语言模型的工具

Ollama&#xff1a;一个在本地部署、运行大型语言模型的工具 Ollama部署、运行大型语言模型概述安装配置Ollama命令模型库使用示例自定义模型从GGUF导入自定义提示从PyTorch或Safetensors导入 开启服务REST API卸载Ollama One-API概述One-API管理本地模型 Open WebUI概述Docker…

RuntimeException 和 Exception区别 (比如事务管理中)

在 Spring 框架中&#xff0c;RuntimeException 和 Exception 的区别主要体现在异常处理和事务管理的方面。这两者都是 Java 异常处理体系的一部分&#xff0c;以下是它们在 Spring 中的区别&#xff1a; 异常处理&#xff1a; RuntimeException&#xff1a;在 Spring 中&…

IDEA打开项目报错

IDEA打开项目报错&#xff1a; Cannot read scheme C:\Users\xxxxxx\AppData\Roaming\JetBrains\IntelliJIdea2023.2\qaplug_profiles\Default.xmljava.lang.AbstractMethodError: Receiver class com.soldevelo.qaplug.scanner.AnalysisProfileManager$2 does not define or i…

Linux 共享内存

Linux 共享内存 1. shmget函数2. shmat函数3. shmdt函数4. shmctl函数5. 注意&#xff1a; 多线程共享进程的地址空间&#xff0c;如果多个线程需要访问同一块内存&#xff0c;用全局变量就可以了。 在多进程中&#xff0c;每个进程的地址空间是独立的&#xff0c;不共享的&am…

【Linux学习】深入了解Linux中进程状态及其转换

文章目录 进程状态进程排队进程的状态&#xff08;运行&#xff0c;阻塞&#xff0c;挂起&#xff09;进程的七个状态 孤儿进程 进程状态 进程 task_struct 可执行程序 进程不是一 直在运行的&#xff0c;可能在等待软硬件资源&#xff0c;比如scanf后&#xff0c;程序停止运…

Leetcode刷题笔记4

1658. 将 x 减到 0 的最小操作数 1658. 将 x 减到 0 的最小操作数 - 力扣&#xff08;LeetCode&#xff09; 示例 3&#xff1a; 输入&#xff1a;nums [3,2,20,1,1,3], x 10 输出&#xff1a;5 解释&#xff1a;最佳解决方案是移除后三个元素和前两个元素&#xff08;总共…

无人机测绘遥感技术及应用详解

一、技术原理与特点 无人机测绘遥感技术是基于无人机平台搭载各类遥感传感器&#xff0c;通过遥控或自主飞行的方式&#xff0c;快速获取地面目标信息的一种先进技术手段。该技术具有灵活高效、高分辨率、实时性强等特点&#xff0c;广泛应用于国土资源调查、环境监测、城市规…

OpenH264 编解码器介绍

思科 思科系统&#xff08;英语&#xff1a;Cisco Systems, Inc.&#xff09;是一间跨国际综合技术企业&#xff0c;总部设于加州硅谷&#xff1b;思科开发、制作和售卖网络硬件、软件、通信设备等高科技产品及服务&#xff0c;并透过子公司&#xff08;例子有OpenDNS、Webex、…

ICode国际青少年编程竞赛- Python-6级训练场-递归入门

ICode国际青少年编程竞赛- Python-6级训练场-递归入门 1、 def recur(n):# 边界条件if n<1:return# 额外动作Dev.step(n)Dev.turnRight()# 递归调用recur(n-1)recur(8)2、 def recur(n):# 边界条件if n<1:return# 额外动作Dev.step(n)Dev.turnLeft()# 递归调用recur(n-1)…

小红书无限加群脚本无需ROOT【使用简单无教程】

小红书无限加群脚本无需ROOT&#xff0c;包含了对应的小红书版本【使用简单无教程】 链接&#xff1a;https://pan.baidu.com/s/1HkLhahmHDFMKvqCC3Q3haA?pwd6hzf 提取码&#xff1a;6hzf

数据结构_链式二叉树(Chained binary tree)基础

✨✨所属专栏&#xff1a;数据结构✨✨ ✨✨作者主页&#xff1a;嶔某✨✨ 二叉树的遍历 前序、中序以及后序遍历 学习二叉树结构&#xff0c;最简单的方式就是遍历。所谓二叉树遍历(Traversal)是按照某种特定的规则&#xff0c;依次对二叉树中的结点进行相应的操作&#xff…