大家好!我是岛上程序猿,感谢您阅读本文,欢迎一键三连哦。
💞当前专栏:微信小程序毕业设计
精彩专栏推荐👇🏻👇🏻👇🏻
开发运行环境
①前端:微信小程序开发工具
② 后端:PHP
演示视频
weixin164校园跑腿php演示录像
原版高清演示视频-编号:164
https://pan.quark.cn/s/c0c9519df9d4
源码下载地址:
https://download.csdn.net/download/m0_46388260/89224198
论文目录
【如需全文请按文末获取联系】
目录
一、项目简介
(1)使用系统的用户分为管理员,用户、跑腿员。
(2)不同的用户类型对应不同的页面访问权限。
(3)小程序用户有两种角色,即跑腿员和用户,服务端即管理员。
(4)用户可以查看自己的信息,发布跑腿订单,修改自己的跑腿订单。
(5)用户实现在线申请活动报名。
(6)实现用户对跑腿订单费用进行支付,以及对跑腿员进行评分。
(7)用户通过意见角可进行帖子发布,以及对他人帖子进行评论等操作。
(8)跑腿员可以实现通过跑腿订单查看审核接单,查看订单支付费用。
(9)跑腿员通过活动页面可点击参与活动,后台管理员审核。
(10)后台服务端管理员实现对整个小程序校园跑腿系统的维护。
二、系统设计
2.1软件功能模块设计
总体设计图规定了系统的主要功能,如图3-1所示:
2.2数据库设计
用户信息属性图如图3-2所示。
投诉中心实体属性图如图3-3所示。
跑腿订单实体属性图如图3-4所示。
活动信息属性图如图3-5所示。
三、系统项目部分截图
3.1用户微信端功能模块
用户要登录微信小程序,则需要注册。在小程序校园跑腿里用户可以进行登录,用户注册:个人账号、密码、姓名、性别、邮箱、手机号码进行注册,如图4-1所示。
用户登录:用户通过登录页面输入账号、密码,进行登录,如图4-2所示。
用户登录进入小程序校园跑腿首页,查看首页、跑腿订单、订单信息、意见角、我的等功能模块的相应操作,如图4-3所示。
3.2跑腿员微信端功能模块
跑腿员要登录微信小程序,则需要注册。在小程序校园跑腿里跑腿员可以进行登录,在注册页面填写:跑腿账号、跑腿服姓名、性别、邮箱、联系手机进行注册,如图4-10所示。
登录小程序校园跑腿首页,跑腿员可以看到首页、跑腿订单、订单信息、意见角、我的等功能模块的相应操作,如图4-12所示。
我的:在我的页面,可以对跑腿员信息、跑腿订单、订单信息、评价信息、活动信息、跑腿员参与、我要发贴、我的发贴等功能进行相应的操作,如图4-13所示。
3.3管理员服务端功能模块
管理员通过输入用户名,密码,角色等内容进行登录,登录到系统后台,进行相应的操作,如下图4-18所示。
管理员登录进入到微信小程序校园跑腿的后台,管理员查看首页、个人中心、用户管理、跑腿员管理、跑腿订单管理、订单信息管理、评价信息管理、活动信息管理、用户申请管理、跑腿员参与管理、意见角、系统管理等进行相应操作,如下图4-19所示:
跑腿订单管理:管理员可对跑腿订单查看订单编号、订单名称、地点类型、出发地、目的地、相关图片、跑腿费用、状态、个人账号、姓名、手机号码、发布日期等内容进行详情查看、修改、删除,以及审核用户上传跑腿订单进行审核,如图下图4-22所示。
四、部分核心代码
<?php
session_start();
class UsersController extends CommonController {
public function __construct()
{
header("Access-Control-Allow-Origin: *");
header("Access-Control-Allow-Methods: POST, GET, OPTIONS, PUT, DELETE");
header('Access-Control-Allow-Headers:Origin,Content-Type,Accept,token,X-Requested-With,device');
}
public $columData = [
'id','addtime','username','password','role'
];
/**
* 登录接口
* POST
* */
public function login(){
$username = isset($_REQUEST['username'])?$_REQUEST['username']:"";
$password = isset($_REQUEST['password'])?$_REQUEST['password']:"";
$sql = "select * from `users` where username = '".$username."' and password = '".$password."'";
$result = table_sql($sql);
if ($result->num_rows > 0) {
// 输出数据
while($row = $result->fetch_assoc()) {
$token_array = [
"iat" => time(), //签发时间
"exp" => time()+7200, //token 过期时间
'tablename'=> 'users',//表名
'isAdmin' => 1,
'id' => $row["id"],
"success" => $row,//记录的uid的信息,如果有其它信息,可以再添加数组的键值对
];
$tokens = base64_encode(json_encode($token_array));
$data = ['code' => 0, 'token' => $tokens];
exit(json_encode($data));
}
} else {
exit(json_encode(['code'=>500,'msg'=>"账号或密码错误"]));
}
}
/**
* 退出
* post
*/
public function logout(){
$token = $this->token();
unset($token);
exit(json_encode(['code'=>0,'msg'=>'退出成功']));
}
/**
* 获取session
*/
public function session(){
$token = $this->token();
$data = json_decode(base64_decode($token),true);
$arrayData = $data['success'];
exit(json_encode(['code'=>0,'data'=>$arrayData]));
}
/**
* 找回密码 重置为123456
**/
public function resetPass(){
$username = input('post.username');
$counts = "select * from `users` where username = '".$username."'";
$cotte = table_sql($counts);
if($cotte->num_rows<1){
exit(json_encode(['code'=>500,'msg'=>"用户名错误。"]));
}
$sql = "update users set password = '123456' where username = '".$username."'";
$result = table_sql($sql);
if($result) exit(json_encode(['code'=>500,'msg'=>"重置密码错误。"]));
exit(json_encode(['code'=>0,'msg'=>"密码已重置为:123456"]));
}
/**
* 分页,列表
* get
*/
public function page(){
$token = $this->token();
$tokens = json_decode(base64_decode($token),true);
if (!isset($tokens['id']) || empty($tokens['id'])) exit(json_encode(['code'=>403,'msg'=>"你还没有登录。"]));
$userid = $tokens['id'];
$page = isset($_REQUEST['page'])?$_REQUEST['page']:"1";
$limt = isset($_REQUEST['limit'])?$_REQUEST['limit']:"10";
$sort = isset($_REQUEST['sort'])?$_REQUEST['sort']:"id";
$order = isset($_REQUEST['order'])?$_REQUEST['order']:"asc";
$where = "";//查询条件
$sql = "select * from `users`".$where;
$count = table_sql($sql);
if ($count->num_rows < 1){
$numberCount = 1;
}else{
$numberCount = $count->num_rows;
}
$page_count = ceil($numberCount/$limt);//页数
$startCount = ($page-1)*10;
$lists = "select * from `users` ".$where." order by ".$sort." ".$order." limit ".$startCount.",".$limt;
$result = table_sql($lists);
$arrayData = array();
if ($result->num_rows > 0) {
while ($datas = $result->fetch_assoc()){
array_push($arrayData,$datas);
}
}
exit(json_encode([
'code'=>0,
'data' => [
"total" => $count,
"pageSize" => $limt,
"totalPage" => $page_count,
"currPage" => $page,
"list" => $arrayData
]
]));
}
/**
* 新增数据接口
* post
*/
public function save(){
$token = $this->token();
$tokens = json_decode(base64_decode($token),true);
if (!isset($tokens['id']) || empty($tokens['id'])) exit(json_encode(['code'=>403,'msg'=>"你还没有登录。"]));
$userid = $tokens['id'];
$keyArr = $valArr = array();
$tmpData = strval(file_get_contents("php://input"));//Content-Type: application/json 需要用到php://input 处理输入流
if (!empty($tmpData)&& isset($tmpData)){
$postData = json_decode($tmpData,true);
foreach ($postData as $key => $value){
if (in_array($key, $this->columData)){
array_push($keyArr,"`".$key."`");
array_push($valArr,"'".$value."'");
}
}
}
$k = implode(',',$keyArr);
$v = implode(',',$valArr);
$sql = "INSERT INTO `users` (".$k.") VALUES (".$v.")";
$result = table_sql($sql);
if (!$result) exit(json_encode(['code'=>500,'msg'=>"新增失败"]));
exit(json_encode(['code'=>0]));
}
/**
* 更新接口
* post
*/
public function update(){
$tmpData = strval(file_get_contents("php://input"));
$postData = json_decode($tmpData,true);
$v = array();
foreach ($postData as $key => $value){
if (in_array($key, $this->columData) && $key != 'id'){
array_push($v,$key." = '".$value."'");
}
}
$value = implode(',',$v);
$sql = "UPDATE users SET ".$value." where id=".$postData['id'];;
$result = table_sql($sql);
if (!$result) exit(json_encode(['code'=>500,'msg'=>"修改失败"]));
exit(json_encode(['code'=>0]));
}
/**
* 删除
* post
*/
public function delete(){
$ids = strval(file_get_contents("php://input"));//发现接收的是字符串
preg_match_all('/\d+/',$ids,$arr);
$str = implode(',',$arr[0]);//拼接字符,
$sql = "delete from users WHERE id in({$str})";
$result = table_sql($sql);
if (!$result) exit(json_encode(['code'=>500,'msg'=>"删除失败。"]));
exit(json_encode(['code'=>0]));
}
/**
* 查询一条数据
* get
*/
public function info($id=false){
$token = $this->token();
$tokens = json_decode(base64_decode($token),true);
if (!isset($tokens['id']) || empty($tokens['id'])) exit(json_encode(['code'=>403,'msg'=>"你还没有登录。"]));
$userid = $tokens['id'];
$name = isset($_REQUEST['name'])? $_REQUEST['name']:"";
if (!empty($id)){
$where = "`id` = ".$id;
}else{
$where = "`name` = ".$name;
}
$sql = "select * from `users` where ".$where;
$result = table_sql($sql);
if (!$result) exit(json_encode(['code'=>500,'msg'=>"查询数据发生错误。"]));
if ($result->num_rows > 0) {
// 输出数据
while($row = $result->fetch_assoc()) {
$lists = $row;
}
}
exit(json_encode([
'code'=>0,
'data'=> $lists
]));
}
}
获取源码或论文
如需对应的论文或源码,以及其他定制需求,也可以下方微信联系我。