网站下载限速怎么办_东莞网站开发设计公司_线上商城的推广文案_随州抖音seo技巧 第 3 章高校学生考证资源共享小程序总体设计

在上一章节中分析了高校学生考证资源共享小程序的功能性需求,并且根据需求分析了高校学生考证资源共享小程序中的用例。那么接下来就要开始对高校学生考证资源共享小程序架构、主要功能和数据库开始进行设计。

3.1系统功能模块设计

系统的整体架构确定以后,再来看高校学生考证资源共享小程序的主要功能模块图整体的功能模块包括管理员+用户两个模块,实现的模块主要有用户管理、考证资讯管理、资讯分类管理、考证交流管理、练习题库管理、考证分类管理、考证资料管理等。

图3.1 高校学生考证资源共享小程序功能模块图

3.2数据库设计

数据库设计一般包括需求分析、概念模型设计、数据库表建立三大过程,其中需求分析前面章节已经阐述,概念模型设计有E-R模型和逻辑结构设计两部分。

3.2.1数据库概念结构设计

下面是整个高校学生考证资源共享小程序中主要的数据库表总E-R实体关系图。

图3.2 高校学生考证资源共享小程序总E-R关系图

下面根据高校学生考证资源共享小程序的数据库总E-R关系图可以得出高校学生考证资源共享小程序需要很多E-R图,在此罗列出来一些主要的数据库E-R模型图。

图3.3 考证交流E-R关系图

图3.4 考证资料E-R关系图

图3.5 练习题库E-R关系图

3.2.2数据库逻辑结构设计

通过前面E-R关系图一共需要创建很多个数据表。在此罗列这几个主要数据库表的关系模型如下:

(1)registered_users表:

名称

类型

长度

不是null

主键

注释

registered_users_id

int

11

注册用户ID

full_name

varchar

64

姓名

gender

varchar

64

性别

examine_state

varchar

16

审核状态

recommend

int

11

智能推荐

user_id

int

11

用户ID

create_time

datetime

0

创建时间

update_time

timestamp

0

更新时间

(2)data_classification表:

名称

类型

长度

不是null

主键

注释

data_classification_id

int

11

资料分类ID

data_type

varchar

64

资料类型

recommend

int

11

智能推荐

create_time

datetime

0

创建时间

update_time

timestamp

0

更新时间

(3)exam_question表

名称

类型

长度

不是null

主键

注释

exam_question_id

mediumint

8

练习题库

type

varchar

20

类型

title

varchar

255

题目

question_item

varchar

500

选项

answer

varchar

500

参考答案

score

double

8

总分

question_order

int

11

排序

exam_id

mediumint

8

所属试卷

create_time

timestamp

0

创建时间:

update_time

timestamp

0

更新时间:

(4)exam表:

名称

类型

长度

不是null

主键

注释

exam_id

mediumint

8

考试id

name

varchar

32

考试名称:[2,32]

duration

int

11

答题时长

score

double

8

总分

status

varchar

10

状态:启用、禁用

create_time

timestamp

0

创建时间:

update_time

timestamp

0

更新时间:

(5)notice表

名称

类型

长度

不是null

主键

注释

notice_id

mediumint

8

公告id:

title

varchar

125

标题:

content

longtext

0

正文:

create_time

timestamp

0

创建时间:

update_time

timestamp

0

更新时间:

(6)textual_research_classificationn表:

名称

类型

长度

不是null

主键

注释

textual_research_classification_id

int

11

考证分类ID

name

varchar

64

考证名称

recommend

int

11

智能推荐

create_time

datetime

0

创建时间

update_time

timestamp

0

更新时间

(7)textual_research_materials表:

名称

类型

长度

不是null

主键

注释

textual_research_materials_id

int

11

考证资料ID

data_name

varchar

64

资料名称

data_type

varchar

64

资料类别

name

varchar

64

考证名称

cover

varchar

255

封面

data

varchar

255

资料

data_introduction

text

0

资料介绍

hits

int

11

点击数

praise_len

int

11

点赞数

recommend

int

11

智能推荐

create_time

datetime

0

创建时间

update_time

timestamp

0

更新时间

(8)upload表:

名称

类型

长度

不是null

主键

注释

upload_id

int

11

上传ID

name

varchar

64

文件名

path

varchar

255

访问路径

file

varchar

255

文件路径

display

varchar

255

显示顺序

father_id

int

11

父级ID

dir

varchar

255

文件夹

type

varchar

32

文件类型

praise_len

int

11

点赞数

第 4 章关键模块的设计与实现

高校学生考证资源共享小程序的详细设计与实现主要是根据前面的高校学生考证资源共享小程序的需求分析和高校学生考证资源共享小程序的总体设计来设计页面并实现业务逻辑。主要从高校学生考证资源共享小程序界面实现、业务逻辑实现这两部分进行介绍。

4.1用户模块

4.1.1前台首页界面

当进入高校学生考证资源共享小程序的时候,首先映入眼帘的是系统的导航栏,在左上角能够看到导航栏,其主界面展示如下图4.1所示。

图4.1 首页界面图

4.1.2 用户登录界面

高校学生考证资源共享小程序中的前台上注册后的用户是可以通过自己的username和password进行登录的,当会员输入完整的自己的username和password信息并点击“登录”按钮后,将会首先验证输入的有没有空数据,再次验证输入的username和password在数据库中当前保存的用户信息是否一致,只有在一致后将会登录成功并自动跳转到高校学生考证资源共享小程序的首页中;否则将会提示相应错误信息,用户登录界面如下图4.2所示。

图4.2 用户登录界面图

用户登录的关键代码如下。

public function login()

    {

        if (Request::isPost()) {

            $request = Request::param();

            $result = $this->validate($request, $this->validate);

            if (true !== $result) {

                // 验证失败 输出错误信息

                $data['error'] = 30000;

                $data['message'] = $result;

            } else {

                $request['password'] = md5($request['password']);

                $result = $this->model->login($request, $this->table);

                $data = $result;

            }

        } else {

            $data['error'] = 30000;

            $data['message'] = "field的值不能为空!";

        }

        return json_encode($data);

    }

public function login($request=[],$table_name = ''){

        $username = $request['username'];

        $password = $request['password'];

        $bol = $this->where(['username'=>$username])->find();

        if ($bol){

            $password = md5($password);

            if ($request['password']==$bol['password']) {

                //添加token信息

                $access_token['create_time'] = date('Y-m-d H:i:s');

                $access_token['update_time'] = date('Y-m-d H:i:s');

$access_token['info'] = json_encode($bol);

                // $access_token['info'] = $bol;

                $access_token['token'] = md5(date('Y-m-d H:i:s'));

                $bol_token = Db::name('AccessToken')->insert($access_token);

                if ($bol_token){

                    $data['obj'] = $bol;

                    $data['obj']['token'] = $access_token['token'];

                    return ['result' => $data];

                }else{

                    return ['error' => ['code' => 5000, 'message' => '登录失败,token生成失败']];

                }

            } else {

                return ['error' => ['code' => 5000, 'message' => '登录失败,密码不正确']];

            }

        }else{

            return ['error' => ['code' => 5000, 'message' => '登录失败,账号不存在']];

        }

    }

4.1.3 考证资讯界面

当用户点击高校学生考证资源共享小程序中导航栏上的“考证资讯”后将会进入到该“资讯”列表的界面,然后选择想要看的资讯信息,点击进入到详细界面,考证资讯界面如下图4.3 所示。

图4.3考证资讯界面图

考证资讯的关键代码如下。

  @PostMapping("/add")

    @Transactional

    public Map<String, Object> add(HttpServletRequest request) throws IOException {

        service.insert(service.readBody(request.getReader()));

        return success(1);

    }

    @Transactional

    public Map<String, Object> addMap(Map<String,Object> map){

        service.insert(map);

        return success(1);

}

4.1.4考证交流界面

当访用户击高校学生考证资源共享小程序中导航栏上的“考证交流”后将会进入到该考证交流列表,可以搜索查看某个交流信息,考证交流面如下图4.4所示。

图4.4考证交流界面图

考证交流的关键代码如下。

  public function avg_group()

    {

        $request = Request::param();

        if (isset($request['groupby']) && isset($request['field'])) {

            if (!empty($request['groupby']) && !empty($request['field'])) {

                $result = $this->model->avg_group($request, $this->table, $this->table_id);

                $data = $result;

            } else {

                $data['error']['code'] = 30000;

                $data['error']['message'] = "groupby或者field的值不能为空!";

            }

        } else {

            $data['error']['code'] = 30000;

            $data['error']['message'] = "groupby或者field的值不能为空!";

        }

        return json_encode($data);

    }

4.1.5练习题库界面

当用户点击右上角“练习题库信息”这个按钮,会出现练习题库信息,用户可以进行在线答题操作等,此界面如下图4.5所示。

图4.5练习题库界面图

4.1.6我的收藏界面

当用户点击右上角“我的收藏”这个按钮,会出现个人收藏信息,我的收藏界面如下图4.6所示。

图4.6我的收藏界面图

4.1.7基本信息界面

当用户在后台点击 “基本信息”这个按钮,会出现自己个人信息,支持在线修改,基本信息界面如下图4.7所示。

图4.7基本信息界面图

基本信息关键代码:

 public function avg()

    {

        $request = Request::param();

        if (isset($request['field'])) {

            if (!empty($request['field'])) {

                $result = $this->model->avg_field($request, $this->table, $this->table_id);

                $data = $result;

            } else {

                $data['error']['code'] = 30000;

                $data['error']['message'] = "field的值不能为空!";

            }

        } else {

            $data['error']['code'] = 30000;

            $data['error']['message'] = "field的值不能为空!";

        }

        return json_encode($data);

    }

4.2管理人员角色模块

高校学生考证资源共享小程序的管理员人员包括了管理员,用户两部分,其中管理员拥有最高的权限,可以对用户信息、系统信息进行管控。

4.2.1登录界面

管理员在登录界面输入账号+密码,点击“登录”按钮,系统在用户数据库表中会对管理员的账号进行匹配,账号+密码正确的话,就会登录到系统中各个用户的主管理界面,否则提示对应的信息,返回到登录的界面,如果管理人员忘记密码的话,点击“忘记密码”根据提示可以找回密码,然后再进行登录其主界面展示如下图4.8所示。

图4.8登录界面图

4.2.2用户管理界面

用户管理模块包含了管理员、用户两个部分,管理员在后台都可以查看到用户的信息,可以对用户进行增删改查操作;这里以用户用户为例,界面如下图4.9所示。

图4.9用户管理界面图

用户管理关键代码:

$obj = $this->where($where)->field($field)->find();

$result = self::allowField(true)->save($request);

$result = $this->where($where)->update($request);

$result = $this->where($where)->delete();

4.2.3考证资料管理界面

管理员点击“考证资料”这一按钮后会显示出考证资料列表,任选一条信息,点击“编辑”这一按钮后,会对考证资料状态进行设置;考证资料界面如下图4.10所示。

图4.10考证资料管理界面图

考证资料管理关键代码

public function add($request=[],$table_name = '',$table_id = ''){

        $result = self::allowField(true)->save($request);

        if ($result) {

            return ['result' => 1];

        } else {

            return ['error' => ['code' => 3000, 'message' => '数据添加失败']];

        }

    }

4.2.4考证资讯管理界面

点击“考证资讯”这一按钮后会显示出所有的考证资讯,在考证资讯界面可以添加新的考证资讯,可以对考证资讯进行修改、删除,考证资讯管理界面如下图4.11所示。

图4.11考证资讯管理界面图

考证资讯管理关键代码

public function upload()

    {

        //上传文件目录获取

        $month = date('Ym', time());

        $data = 'file';//文件域

        $path = 'upload/file/' . $month . "/";//上传文件保存位置

        $allow_ext = explode(",", "jpg,jpeg,png,jfif,bmp,gif,ico,xls,xlsx,AVI,mov,rmvb,rm,FLV,mp4,3GP");

        if ($_FILES) {

            $file = $_FILES[$data];

            $rst = [];

            if (!empty($file['name'])) {

                $file_type = explode('.', $file['name']);

                $ext = end($file_type); //获取文件的格式

                $ext = strtolower($ext);

                if (!in_array($ext, $allow_ext)) {

                    $rst['error']['code'] = 30000;

                    $rst['message'] = '只能上传jpg,jpeg,png,jfif,bmp,gif,ico,xls,xlsx,AVI,mov,rmvb,rm,FLV,mp4,3GP类型文件';

                } else {

                    if (!is_dir($path))//判断目录是否存在

                    {

                        mkdir($path, 0777, true);//如果目录不存在则创建目录

                    };

                    $name = date('YmdHis') . '_' . rand(10000, 99999) . '.' . $ext;

                    $save_rst = move_uploaded_file($file['tmp_name'], $path . $name);

                    if ($save_rst !== false) {

//                        $rst['code'] = 1;

                        $rst['result']['url'] = 'http://'.$_SERVER['HTTP_HOST'].'/'.$path . $name;

//                        $rst['ext'] = $ext;

                    } else {

                        $rst['error']['code'] = 30000;

                        $rst['error']['message'] = '文件上传失败';

                    }

                }

            } else {

                $rst['error']['code'] = 30000;

                $rst['error']['message'] = '未选择文件';

            }

        } else {

            $rst['error']['code'] = 30000;

            $rst['error']['message'] = '未获取到文件';

        }

        return json_encode($rst);

    }

4.2.5练习题库管理界面

点击“练习题库管理”这一按钮后会显示出所有的练习题库,在练习题库界面可以添加新的练习题库,可以对练习题库进行修改、删除,练习题库管理界面如下图4.12所示。

图4.12 练习题库管理界面图

练习题库管理关键代码

public function avg()

    {

        $request = Request::param();

        if (isset($request['field'])) {

            if (!empty($request['field'])) {

                $result = $this->model->avg_field($request, $this->table, $this->table_id);

                $data = $result;

            } else {

                $data['error']['code'] = 30000;

                $data['error']['message'] = "field的值不能为空!";

            }

        } else {

            $data['error']['code'] = 30000;

            $data['error']['message'] = "field的值不能为空!";

        }

        return json_encode($data);

}

4.2.6资料分类管理界面

点击“资料分类管理”这一按钮后会显示出所有的资料分类信息,在资料分类信息界面可以添加新的资料分类信息,可以对其进行修改、删除,资料分类管理界面如下图4.13所示。

图4.13资料分类管理界面图

">

万户网络地址

快速建站免费、交互设计之父是谁、永久使用、不限域名、网页的制作流程包括

重庆有限公司?

网站下载限速怎么办_东莞网站开发设计公司_线上商城的推广文案_随州抖音seo技巧

pool.close() 黑龙江电视台购物电话动画场景设计跨境独立站推广方法宁波seo教程推广平台排名网站宣传效果搜索引擎营销的发展历史和特点黄骅市政府领导班子名单最新消息郑州机场建设四川采购招标网官网网站你明白我的意思抖音同城推广怎么操作群星防御平台设计大连网页设计力推仟亿科技好凡科网传单制作的新手教程新企业创办的条件是什么濮阳市城乡一体化示范区招教最近的政治新闻10条购买网站会员合同要交印花税吗app平台制作软件办公室租赁平台python语言解一元二次方程河北廊坊移动套餐网站推广策划案收录贷款产品推广方案视频号视频下载助手app网页源代码编程怎么进入国际贸易公司推广html怎么做网页跳转dw制作个人网站的步骤互联网营销公司简介范文赚钱软件真实可靠学生党

猜你喜欢

  • 友情链接:
  • 教育网站设计理念范例 苏州政务网站建设方案 竞价托管代运营骗局 b2b hc360 淘宝详情页制作要求 app下载并安装