当前位置: 首页 > news >正文

微信小程序毕业设计-跑腿系统项目开发实战(附源码+演示视频+LW)

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

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

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

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

开发运行环境

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

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

演示视频

前端:

weixin082微信小程序跑腿-微信端

后端:

weixin082微信小程序跑腿-服务端

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

源码下载地址:

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

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.FaburenwuEntity;
import com.entity.view.FaburenwuView;import com.service.FaburenwuService;
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-05 11:28:49*/
@RestController
@RequestMapping("/faburenwu")
public class FaburenwuController {@Autowiredprivate FaburenwuService faburenwuService;/*** 后端列表*/@RequestMapping("/page")public R page(@RequestParam Map<String, Object> params,FaburenwuEntity faburenwu, HttpServletRequest request){String tableName = request.getSession().getAttribute("tableName").toString();if(tableName.equals("xiaoyou")) {faburenwu.setXiaoyouzhanghao((String)request.getSession().getAttribute("username"));}EntityWrapper<FaburenwuEntity> ew = new EntityWrapper<FaburenwuEntity>();PageUtils page = faburenwuService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, faburenwu), params), params));return R.ok().put("data", page);}/*** 前端列表*/@RequestMapping("/list")public R list(@RequestParam Map<String, Object> params,FaburenwuEntity faburenwu, HttpServletRequest request){String tableName = request.getSession().getAttribute("tableName").toString();if(tableName.equals("xiaoyou")) {faburenwu.setXiaoyouzhanghao((String)request.getSession().getAttribute("username"));}EntityWrapper<FaburenwuEntity> ew = new EntityWrapper<FaburenwuEntity>();PageUtils page = faburenwuService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, faburenwu), params), params));return R.ok().put("data", page);}/*** 列表*/@RequestMapping("/lists")public R list( FaburenwuEntity faburenwu){EntityWrapper<FaburenwuEntity> ew = new EntityWrapper<FaburenwuEntity>();ew.allEq(MPUtil.allEQMapPre( faburenwu, "faburenwu")); return R.ok().put("data", faburenwuService.selectListView(ew));}/*** 查询*/@RequestMapping("/query")public R query(FaburenwuEntity faburenwu){EntityWrapper< FaburenwuEntity> ew = new EntityWrapper< FaburenwuEntity>();ew.allEq(MPUtil.allEQMapPre( faburenwu, "faburenwu")); FaburenwuView faburenwuView =  faburenwuService.selectView(ew);return R.ok("查询发布任务成功").put("data", faburenwuView);}/*** 后端详情*/@RequestMapping("/info/{id}")public R info(@PathVariable("id") Long id){FaburenwuEntity faburenwu = faburenwuService.selectById(id);faburenwu.setClicknum(faburenwu.getClicknum()+1);faburenwu.setClicktime(new Date());faburenwuService.updateById(faburenwu);return R.ok().put("data", faburenwu);}/*** 前端详情*/@RequestMapping("/detail/{id}")public R detail(@PathVariable("id") Long id){FaburenwuEntity faburenwu = faburenwuService.selectById(id);faburenwu.setClicknum(faburenwu.getClicknum()+1);faburenwu.setClicktime(new Date());faburenwuService.updateById(faburenwu);return R.ok().put("data", faburenwu);}/*** 后端保存*/@RequestMapping("/save")public R save(@RequestBody FaburenwuEntity faburenwu, HttpServletRequest request){faburenwu.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());//ValidatorUtils.validateEntity(faburenwu);faburenwuService.insert(faburenwu);return R.ok();}/*** 前端保存*/@RequestMapping("/add")public R add(@RequestBody FaburenwuEntity faburenwu, HttpServletRequest request){faburenwu.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());//ValidatorUtils.validateEntity(faburenwu);faburenwu.setUserid((Long)request.getSession().getAttribute("userId"));faburenwuService.insert(faburenwu);return R.ok();}/*** 修改*/@RequestMapping("/update")public R update(@RequestBody FaburenwuEntity faburenwu, HttpServletRequest request){//ValidatorUtils.validateEntity(faburenwu);faburenwuService.updateById(faburenwu);//全部更新return R.ok();}/*** 删除*/@RequestMapping("/delete")public R delete(@RequestBody Long[] ids){faburenwuService.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<FaburenwuEntity> wrapper = new EntityWrapper<FaburenwuEntity>();if(map.get("remindstart")!=null) {wrapper.ge(columnName, map.get("remindstart"));}if(map.get("remindend")!=null) {wrapper.le(columnName, map.get("remindend"));}String tableName = request.getSession().getAttribute("tableName").toString();if(tableName.equals("xiaoyou")) {wrapper.eq("xiaoyouzhanghao", (String)request.getSession().getAttribute("username"));}int count = faburenwuService.selectCount(wrapper);return R.ok().put("count", count);}/*** 前端智能排序*/@IgnoreAuth@RequestMapping("/autoSort")public R autoSort(@RequestParam Map<String, Object> params,FaburenwuEntity faburenwu, HttpServletRequest request,String pre){EntityWrapper<FaburenwuEntity> ew = new EntityWrapper<FaburenwuEntity>();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 = faburenwuService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, faburenwu), params), params));return R.ok().put("data", page);}}

五、获取源码或论文

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

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 青蛙跳台阶问题
  • [备忘.经验总结]特例问题通用问题,分而治之
  • 手机App收集个人信息,用户是否有权拒绝?
  • 所有平台均可发布,矩阵操作+工具+素材,自动混剪8090后怀旧视频
  • 牛客循环5.27
  • EPBU/MOBI转PDF
  • fastadmin二次开发 修改默认的前端弹出样式
  • JVM 常见配置参数
  • 汇聚荣科技有限公司怎么样?
  • 人工智能应用层岗位—AI项目经理/AI产品经理
  • 【MySQL】MySQL的安装和基本概念
  • 亚马逊云科技专家分享 | OPENAIGC开发者大赛能量加油站6月5日场预约开启~
  • 文化设计“All in AI”,第二十届文博会中芬设计园分会场盛大开幕
  • 顺序表实现通讯录项目
  • HackTheBox-Machines--Cronos
  • 「面试题」如何实现一个圣杯布局?
  • 【干货分享】SpringCloud微服务架构分布式组件如何共享session对象
  • Android组件 - 收藏集 - 掘金
  • es6
  • ESLint简单操作
  • Github访问慢解决办法
  • hadoop入门学习教程--DKHadoop完整安装步骤
  • iBatis和MyBatis在使用ResultMap对应关系时的区别
  • JSONP原理
  • OpenStack安装流程(juno版)- 添加网络服务(neutron)- controller节点
  • React-flux杂记
  • spring boot下thymeleaf全局静态变量配置
  • SpriteKit 技巧之添加背景图片
  • Sublime Text 2/3 绑定Eclipse快捷键
  • TCP拥塞控制
  • windows下mongoDB的环境配置
  • 问:在指定的JSON数据中(最外层是数组)根据指定条件拿到匹配到的结果
  • 正则学习笔记
  • 基于django的视频点播网站开发-step3-注册登录功能 ...
  • ​2020 年大前端技术趋势解读
  • ​Base64转换成图片,android studio build乱码,找不到okio.ByteString接腾讯人脸识别
  • ​Kaggle X光肺炎检测比赛第二名方案解析 | CVPR 2020 Workshop
  • ​水经微图Web1.5.0版即将上线
  • ​直流电和交流电有什么区别为什么这个时候又要变成直流电呢?交流转换到直流(整流器)直流变交流(逆变器)​
  • #调用传感器数据_Flink使用函数之监控传感器温度上升提醒
  • $var=htmlencode(“‘);alert(‘2“); 的个人理解
  • (附源码)ssm高校运动会管理系统 毕业设计 020419
  • (附源码)计算机毕业设计SSM疫情下的学生出入管理系统
  • (力扣记录)235. 二叉搜索树的最近公共祖先
  • (利用IDEA+Maven)定制属于自己的jar包
  • (十七)devops持续集成开发——使用jenkins流水线pipeline方式发布一个微服务项目
  • (算法)N皇后问题
  • (转)3D模板阴影原理
  • (转载)PyTorch代码规范最佳实践和样式指南
  • *p++,*(p++),*++p,(*p)++区别?
  • .net core 外观者设计模式 实现,多种支付选择
  • .net framework 4.0中如何 输出 form 的name属性。
  • .NET 设计模式初探
  • .net 提取注释生成API文档 帮助文档
  • .Net(C#)常用转换byte转uint32、byte转float等