基于php+vue+mysql的社团活动助手微信小程序

🙊作者简介:多年编程开发经验,专注java技术领域和毕业设计项目实战,系统定制、远程部署调试、代码讲解、代码修改
🍅擅长语言:springboot、ssm、vue、html、jsp、php、python、爬虫、小程序、安卓app
⬇️源码获取:文末可以获取源码+数据库+文档

 

⚡感兴趣的可以先收藏+关注,后续会更新更多项目资料,所有项目均配有开发文档和安装配置教程

efe0743de0404b2eb019816993593781.png

系统介绍

社团活动助手微信小程序按照微信端和服务端分为管理员和用户。管理员的功能包括用户管理,活动分类管理,社团活动管理,报名信息管理,签到登记管理,投票项目管理,投票信息管理,奖励情况管理,系统管理。用户的功能包括注册,信息查看等功能。

系统主要技术

开发语言:PHP

使用框架:ThinkPHP

系统架构:B/S

前端技术:Vue、JavaScript

数据库 :Mysql 5.7/8.0

编译工具:idea或者eclipse,jdk1.8,maven

系统功能结构设计

通过市场调研及咨询研究,了解了用户的使用需求,于是制定了管理员和用户模块。功能结构图如下所示:

aa89e1972e3a4e6a90e1568e45c63839.png

图4-1系统功能结构图

 

系统功能实现

5.1用户功能模块(微信端) 

用户注册,在用户注册页面通过填写账号、姓名、密码、性别、联系电话等信息进行注册操作;如图5-1所示。

d22fcd6de9ee45bdaaf67907b7d761e1.png

图5-1用户注册界面图

 

用户登录,用户通过登录页面输入账号和密码,并点击登录进行系统登录操作,如图5-2所示。

5d397a4ffdb14a619f9719e0f5afe6ff.png

图5-2用户登录界面图

用户登陆系统后,可以对首页、社团活动、投票项目、我的等功能进行详细操作,如图5-3所示。

247ebe2f25be4123885afae6e4233578.png

图5-3系统首页界面图

用户信息,在用户信息页面可以填写账号、姓名、密码、性别、联系电话、头像等信息,进行保存,如图5-4所示。

ac5ae21fb1f84b8abfa772d42c212e41.png

图5-4用户信息界面图

投票项目,在投票项目页面可以查看投票标题、封面、选项a、选项b、选项c、选项d、发布时间、投票内容等信息进行投票等操作,如图5-5所示。

82111199655149a58e158a0467188c58.png

图5-5投票项目界面图

我的,在我的页面可以对社团活动、报名信息、签到登记、投票项目、投票信息、奖励情况、我的收藏管理等详细信息,如图5-6所示。

26decf6fdc3c4b1c8d69c5b39957628e.png

图5-6我的界面图

社团活动,在社团活动页面通过查看社团名称、活动分类、活动名称、活动图片、开始时间、结束时间、活动地点等详细信息,进行收藏、报名,如图5-7所示。

c206a471318a47edac00724c9d854931.png

图5-7社团活动界面图

 

投票信息,在投票信息页面通过查看投票编号、投票标题、封面、用户账号、投票时间、投票结果等详细信息,如图5-8所示。

f8c14f8120724107bd71355eafd15ea0.png

图5-8投票信息界面图

 

签到登记,在签到登记页面通过查看社团名称、活动分类、活动名称、活动图片、活动地点、签到类型、账号、姓名、签到时间、地址等详细信息,如图5-9所示。

b99ce6d8d0874902b48fba4a022dd332.png

图5-9签到登记界面图

 

奖励情况,在奖励情况页面通过查看社团名称、活动分类、活动名称、账号、姓名、奖励积分、登记时间等详细信息,如图5-10所示。

40dd1b9f38744f629892ec860a1b221d.png

图5-10奖励情况界面图

 

5.2管理员功能模块(服务端)

管理员登录,管理员通过登录页面输入用户名、密码,选择角色并点击登录进行系统登录操作,如图5-11所示。

5758caa6ad934eb48283a9136d86f99e.png

图5-11管理员登录界图面

 

管理员登陆系统后,可以对首页、个人中心、用户管理、活动分类管理、社团活动管理、报名信息管理、签到登记管理、投票项目管理、投票信息管理、奖励情况管理、系统管理等功能进行相应操作,如图5-12所示。

4916e49d1526483f9edd3f0223dc2909.png

图5-12管理员功能界图面

用户管理,在用户管理页面可以对账号、姓名、性别、联系电话、头像等内容进行详情、修改或删除等操作,如图5-13所示。

d1f8a35a9aa34762b675e04742a90106.png

图5-13用户管理界面图

活动分类管理,在活动分类管理页面可以对活动分类等内容进行详情,修改或删除等操作,如图5-14所示。

6ccc6992f3344bab911438c45afdef62.png

图5-14活动分类管理界面图

社团活动管理,在社团活动管理页面可以对社团名称、活动分类、活动名称、活动图片、开始时间、结束时间、活动地点等内容进行详情、修改或删除等操作,如图5-15所示。

0fdca85030e7458293855b65de3d2d7c.png

图5-15社团活动管理界面图

报名信息管理,在报名信息管理页面可以对活动编号、社团名称、活动分类、活动名称、活动图片、活动地点、账号、姓名、报名时间等内容进行详情、修改或删除等操作,如图5-16所示。

13900c33d03e463dbf6a01f306b8b7c8.png

图5-16报名信息管理界面图

签到登记管理,在签到登记管理页面可以对社团名称、活动分类、活动名称、活动图片、活动地点、签到类型、账号、姓名、签到时间、地址等内容进行详情,修改、删除等操作,如图5-17所示。

a4b8d52f58764bb5a2aae3803bc2deb2.png

图5-17签到登记管理界面图

 

投票项目管理,在投票项目管理页面可以对投票标题、封面、选项a、选项b、选项c、选项d、发布时间等内容进行详情,修改、删除等操作,如图5-18所示。

6f73adc9056346478cdd852af5133414.png

图5-18投票项目管理界面图

投票信息管理,在投票信息管理页面可以对投票编号、投票标题、封面、用户账号、投票时间、投票结果等内容进行详情,修改、删除等操作,如图5-19所示。

ce1bdafa9b5543fe81472abb727c7de7.png

图5-19投票信息管理界面图

 

奖励情况管理,在奖励情况管理页面可以对社团名称、活动分类、活动名称、账号、姓名、奖励积分、登记时间等内容进行详情,修改、删除等操作,如图5-20所示。

06abbb21bbb646b696310c23f3fc6236.png

图5-20奖励情况管理界面图

 

系统管理;管理员在该页面为轮播图管理界面、公告信息。管理员可以在此页面进行首页轮播图的管理,公告信息发布,通过新建操作可在轮播图中加入新的图片,还可以对以上传的图片进行修改操作,以及图片的删除操作,如图5-21  5-22所示。

e11af6748a4544dba800bac47a0601a9.png

图5-21轮播图管理界面图

 

77ab76f6e52342b59c8e58b58e63cece.png

图5-22公告信息界面图

 

 

论文参考

7847680f14c2431f94e0913dcf91a8b1.png

14fdd16e39cb4e339e321069cab6cb99.png

f77a28c849964a9086ff2ed1ae8c8ce9.png

 

核心代码

<?php
session_start();
class ShetuanhuodongController 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'
                ,'shetuanmingcheng'
                ,'huodongfenlei'
                ,'huodongmingcheng'
                ,'huodongtupian'
                ,'kaishishijian'
                ,'jieshushijian'
                ,'huodongdidian'
                ,'huodongxiangqing'
                ,'thumbsupnum'
                ,'crazilynum'
            ];
        /**
     * 分页,列表
     * 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'];
		$where = " where 1 ";//查询条件
                                                                                                                                                                                				
        $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";
        foreach ($_REQUEST as $k => $val){
			if(in_array($k, $this->columData)){
                if ($val != ''){
                    $where.= " and ".$k." like '".$val."'";
                }
			}
        }
                                                                                                                                                                                                		        
                                        $sql = "select * from `shetuanhuodong` ".$where;
        $count = table_sql($sql);
        if ($count->num_rows < 1){
            $numberCount = 0;
        }else{
            $numberCount = $count->num_rows;
        }
        $page_count = ceil($numberCount/$limt);//页数
        $startCount = ($page-1)*$limt;
                    $lists = "select * from `shetuanhuodong` ".$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" => $numberCount,
                "pageSize" => $limt,
                "totalPage" => $page_count,
                "currPage" => $page,
                "list" => $arrayData
            ]
        ]));
		    }
    /**
     * 分页,列表list
     * get
     */
    public function lists(){
                $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";
        $refid = isset($_REQUEST['refid']) ? $_REQUEST['refid'] : "0";
		$where = " where 1 ";//查询条件
                                                                                                                                                                                				foreach ($_REQUEST as $k => $val){
			if(in_array($k, $this->columData)){
				$where.= " and ".$k." like '".$val."'";
			}
        }
		                $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'];

                
                		                                $sql = "select * from `shetuanhuodong`".$where;
        $count = table_sql($sql);
        if ($count->num_rows < 1){
            $numberCount = 0;
        }else{
            $numberCount = $count->num_rows;
        }
        $page_count = ceil($numberCount/$limt);//页数
        $startCount = ($page-1)*$limt;
        $lists = "select * from `shetuanhuodong` ".$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" => $numberCount,
                "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'=>"你还没有登录。"]));
        $uid = $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)){
                    if(!empty($value) || $value == 0) {
                        if ($key == 'id') {
                            continue;
                        }
                        array_push($keyArr,"`".$key."`");
                        if($key == 'clicktime') {
                            array_push($valArr,"'".date('Y-m-d h:i:s', time())."'");
                        } else {
                            array_push($valArr,"'".$value."'");
                        }
                    }
                }
            }
        }
                $k = implode(',',$keyArr);
        $v = implode(',',$valArr);
                        $sql = "INSERT INTO `shetuanhuodong` (".$k.") VALUES (".$v.")";
                $result = table_sql($sql);
		        exit(json_encode(['code'=>0]));
    }
    /**
     * 新增数据接口 add
     * post
     */
    public function add(){
        $keyArr = $valArr = array();
		                $token = $this->token();
        $tokens = json_decode(base64_decode($token),true);
        if (!isset($tokens['id']) || empty($tokens['id'])) exit(json_encode(['code'=>403,'msg'=>"你还没有登录。"]));
        $uid = $tokens['id'];
                        $tmpData = strval(file_get_contents("php://input"));
        if (!empty($tmpData)&& isset($tmpData)){
            $postData = json_decode($tmpData,true);
			            foreach ($postData as $key => $value){
                if (in_array($key, $this->columData)){
                    if(!empty($value) || $value == 0) {
                        if ($key == 'id') {
                            continue;
                        }
                        array_push($keyArr,"`".$key."`");
                        if($key == 'clicktime') {
                            array_push($valArr,"'".date('Y-m-d h:i:s', time())."'");
                        } else {
                            array_push($valArr,"'".$value."'");
                        }
                    }
                }
            }
        }
        $k = implode(',',$keyArr);
        $v = implode(',',$valArr);
                $sql = "INSERT INTO `shetuanhuodong` (".$k.") VALUES (".$v.")";
        $result = table_sql($sql);
		        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)){
                if ($key == "id"){
                    $id = $value;
                }
                if(!empty($value) || $value === 0) {
                    array_push($v,$key." = '".$value."'");
                }
            }
        }
        $value = implode(',',$v);
         $sql = "UPDATE shetuanhuodong SET ".$value." where id = ".$id;
        $result = table_sql($sql);
        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 shetuanhuodong WHERE id in({$str})";
        $result = table_sql($sql);
        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 `shetuanhuodong` where ".$where;
        $result = table_sql($sql);
        if ($result->num_rows > 0) {
            // 输出数据
            while($row = $result->fetch_assoc()) {
                $lists = $row;
            }
        }
        exit(json_encode([
            'code'=>0,
            'data'=> $lists
        ]));
    }
    /**
     * 查询一条数据
     * get
     */
    public function detail($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 ($id){
            $where = "`id` = ".$id;
        }else{
            $where = "`name` = ".$name;
        }
                        $sql = "select * from `shetuanhuodong` 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
        ]));
    }
            /**
     * 赞和踩
     **/
    public function thumbsup($id=false){
        $type = isset($_REQUEST['type'])?$_REQUEST['type']:"";
        if ($type==1){
            $result = $this->andone('shetuanhuodong',$id,$column = 'thumbsupnum',$num = 1);
        }else{
            $result = $this->andone('shetuanhuodong',$id,$column = 'crazilynum',$num = 1);
        }
        exit(json_encode(['code'=>0,'msg'=>"投票成功"]));
    }
        
    
    /**
     * 获取需要提醒的记录数接口
     * get
     */
    public function remind($columnName,$type){
        $remindStart = isset($_GET['remindstart'])?$_GET['remindstart']:"";
        $remindEnd = isset($_GET['remindend'])?$_GET['remindend']:"";
        $where = '';
                if ($type == 1){//数字
            if ($remindStart && $remindEnd){
                $where .= " and ".$columnName."<='".$remindEnd."' and ".$columnName.">='".$remindStart."'";
            }elseif($remindStart){
                $where .= " and ".$columnName.">='".$remindStart."'";
            }elseif($remindEnd){
                $where .= " and ".$columnName."<='".$remindEnd."'";
            }
        }else{
            if ($remindStart && $remindEnd){
                $where .= " and ".$columnName."<='".date("Y-m-d",strtotime("+".$remindEnd." day"))."' and ".$columnName.">='".date("Y-m-d",strtotime("+".$remindStart." day"))."'";
            }elseif($remindStart){
                $where .= " and ".$columnName.">='".date("Y-m-d",strtotime("+".$remindStart." day"))."'";
            }elseif($remindEnd){
                $where .= " and ".$columnName."<='".date("Y-m-d",strtotime("+".$remindEnd." day"))."'";
            }
            
        }
        $sql = "select * from `shetuanhuodong` where 1 ".$where;
        $result = table_sql($sql);
        exit(json_encode(['code'=> 0 ,'count' => $result->num_rows]));
    }

    }

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值