义务劳动系统相关
发表于 · 归类于
代码 · 阅读完需 9 分钟 ·
阅读量 报告错误
前言
我最开始想做这个系统的时候是2014年上半年,但是那时候只是想想,首先没什么技术,也没什么资源,并且那时候对我来说关系不大。直到2015年下半年,我负责信息学院的学生资助上的事务,便想着如何安排整个学院的义务劳动,开始做了一个报名功能。那时候,刚开始学写asp.net MVC网页,便做了个能输入学号和生日进行报名,使用的是学校内网,就是http://10.24.32.xx做服务器地址,当然,这样手机连接4G网络是访问不了的,需要报名的时候,才开服务器,要么使用校园网络上网报名,要么使用电脑开热点使用手机连WIFI报名。大概也就是2015年下半年用了一次,2016年上半年用了一次。
我是2016年暑假开始接触PHP语言的。是由于有个电子商务女生要我帮忙做个PHP网页,实现增删改查功能,从此,我便开始以PHP为主要的开发语言。当时,在逛网的时候发现有个叫“百家云”的虚拟主机服务商(现在已改名为“硅云”),试着PHP代码上传到虚拟主机,那时候才知道域名是怎么解析的。后来,9月份在QQ群里有人卖PHP教程,10块钱便宜把视频卖给了我,我便开始学习PHP、ThinkPHP3.2.3、Linux以及一些数据库知识。觉得PHP还是比asp.net好学也好用,搭建起网站也快得多。
2016年11月开始,便是用系统来提供报名及登记学生所做义务劳动,但是由于功能不全,网页访问效果也不太好,所以只是部分人在用。我便是从2017年5月开始写的现在这个版本,那时候我刚毕业答辩完,忙着工作的同时,也抽些周末的时间在做,大概到10月份,就正式投入使用了。有一次是有好几十个人的报名名额,访问量过大,直接是导致所有人访问都响应服务器繁忙,当然,硅云3的服务器是肯定抵挡不住的,应对个人访问还行。2018年3月,开始使用阿里云学生机ECS服务器,当时记录2分钟内50个人报名是没问题的,后来也有过超过1人/秒的记录。2018年9月,开始修改成多学院模式,2018年11月公管学院加入使用,2019年4月数统学院加入使用。
经过不断的完善,日志已经由MongoDB保存,由Redis做数据缓存。已基本满足现在的使用需求。有这个系统,第一主要是因为有这个需求,第二也是学院老师和同学的支持,当然最主要的还是我这一颗永不改变的初心。
直到20年下半年,刘老师离开了信息学院,资助工作由其他老师管理。
技术总览:
- PHP7.3.6+
- ThinkPHP5.1.36+
- Nginx1.16.0+
- MySQL8.0.15+
- MongoDb4.0.6+
- Redis5.0.5+
- LayUI2.5.4+
Git/Composer/postgresql/Websocket/vue.js
功能
- 支持多学院
- 重置密码
- websocket聊天室
- Excel导出报表
- 信息收集
- 增加ipv6支持
- QQ绑定及登录功能
- 权限分级
版本更新:
| 更新日期 | 版本 | |
|---|
| 2018-06-12 | 4.0.0A1 | |
| 2018-09-10 | 4.0.0B1 | |
| 2018-09-25 | 4.0.0 | |
| 2018-10-12 | 4.0.1 | |
| 2018-10-28 | 4.0.2 | |
| 2018-11-09 | 4.0.3 | |
| 2018-11-15 | 4.1.0 | |
| 2018-12-03 | 4.1.1 | |
| 2018-12-20 | 4.1.2 | |
| 2019-01-09 | 4.2.0 | |
| 2019-03-01 | 4.2.1 | |
| 2019-04-01 | 4.2.2 | |
| 2019-05-05 | 4.2.3 | |
| 2019-06-01 | 4.2.4 | |
| 2019-07-05 | 4.2.5 | |
| 2019-09-01 | 4.3.0 | 支持短信登录,兼容Tengine |
| 2020-01-01 | 4.3.1 | 常规更新,功能冻结 |
| 2021-03-01 | 4.4.0 | 支持PHP8.0 |
部署说明
- 复制config/database.php.example文件为config/database.php,并修改数据库配置
- 安装swoole、安装redis、安装mongodb
- 使用composer install安装依赖
- 配置Nginx重写(略)
- 给予runtime目录可写权限
- 部署缓存
bash extend/admin/init.sh
其他功能
Swoole-Websocket聊天功能使用方法
- 启动服务端监听
php think ws,守护进程添加& - 使用http代替https
- 说明:该功能使用纯的swoole扩展,没有使用think-swoole
文件服务器
- 上传参数
- file 文件
- cate 类型,默认images,用于文件夹分类
- filename 文件名,若存在,则放入extend/database目录中
- 响应参数
{
"state": 1,
"msg": "上传成功",
"data": {
"name": "214757780300360.crt",
"type": "application/x-x509-ca-cert",
"tmp_name": "/tmp/phpHYM1uU",
"error": 0,
"size": 3737,
"src": "/uploads/texxt/20190515/036acc9d4e5c3acd41b30689521894d4.crt",
"ext": "crt",
"saveName": "036acc9d4e5c3acd41b30689521894d4.crt"
}
}
开发参考
请参阅 ThinkPHP5 核心框架包。
作者:linzening、联系:linzening@qq.com
数据库刷新表统计
ANALYZE TABLE `b_volunteer`,`b_userinfo`,`b_store`,`b_release`,`b_shipwall`;
PHP代码
//管理员列表
public function showlist(){
$this->assign("info",ExtAdmin::adminlist());
$this->assign("isadmin",session("admin.role")>=8?"yes":'no');
return $this->fetch();
}
页面预览



