怎么联系软件开发者_互联网运营管理_枣庄网站制作_数商云是干嘛的 import org.springframework.amqp.core.Queue;">

服装设计找图网站

ui网站设计模板、好的外贸平台、永久使用、不限域名、微信公众号文章排版设计

美国软件公司排名?

怎么联系软件开发者_互联网运营管理_枣庄网站制作_数商云是干嘛的

  • 3 章 高校学生考证资源共享小程序总体设计

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

    1. 系统功能模块设计

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

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

    1. 数据库设计

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

      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关系图

      1. 数据库逻辑结构设计

通过前面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 章 关键模块的设计与实现

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

    1. 用户模块
      1. 前台首页界面

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

图4.1 首页界面图

      1.  用户登录界面

高校学生考证资源共享小程序中的前台上注册后的用户是可以通过自己的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' => '登录失败,账号不存在']];

        }

    }

      1.  考证资讯界面

当用户点击高校学生考证资源共享小程序中导航栏上的“考证资讯”后将会进入到该“资讯”列表的界面,然后选择想要看的资讯信息,点击进入到详细界面,考证资讯界面如下图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);

}

      1. 考证交流界面

当访用户击高校学生考证资源共享小程序中导航栏上的“考证交流”后将会进入到该考证交流列表,可以搜索查看某个交流信息,考证交流面如下图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);

    }

      1. 练习题库界面

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

图4.5练习题库界面图

      1. 我的收藏界面

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

图4.6我的收藏界面图

      1. 基本信息界面

当用户在后台点击 “基本信息”这个按钮,会出现自己个人信息,支持在线修改,基本信息界面如下图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);

    }

    1. 管理人员角色模块

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

      1. 登录界面

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

图4.8登录界面图

      1. 用户管理界面

用户管理模块包含了管理员、用户两个部分,管理员在后台都可以查看到用户的信息,可以对用户进行增删改查操作;这里以用户用户为例,界面如下图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();

      1. 考证资料管理界面

管理员点击“考证资料”这一按钮后会显示出考证资料列表,任选一条信息,点击“编辑”这一按钮后,会对考证资料状态进行设置;考证资料界面如下图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' => '数据添加失败']];

        }

    }

      1. 考证资讯管理界面

点击“考证资讯”这一按钮后会显示出所有的考证资讯,在考证资讯界面可以添加新的考证资讯,可以对考证资讯进行修改、删除,考证资讯管理界面如下图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);

    }

      1. 练习题库管理界面

点击“练习题库管理”这一按钮后会显示出所有的练习题库,在练习题库界面可以添加新的练习题库,可以对练习题库进行修改、删除,练习题库管理界面如下图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);

}

      1. 资料分类管理界面

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

图4.13资料分类管理界面图

html网页设计代码及素材网络广告营销方案策划内容web浏览器官方下载深圳建溢公司招聘汕头疫情最新消息今天封城了360搜索首页自适应网站建设沈阳凡客资源空间域名绍兴专门做网站江苏省招标投标信息网软件开发软件定制印刷网站建设关于网页设计招标网站哪个比较好临沂免费做网站制作网站的最新软件是什么中国建设银行个人查询网站改版优化济南建网站公司排行榜提供东莞网站制作公司手机版百度入口青岛产品设计公司外贸公司网站怎么做深圳计算机软件培训学校网站建设网站制作哪个好网络推广方案怎么写模板深圳互联网营销网站网页设计制作咸阳市疫情防控指挥部网站seo搜索

猜你喜欢

  • 友情链接:
  • 装修网站免费 seo百度网站排名软件 国外广告联盟平台 怎么免费制作一个企业网站 简述基于构件的软件开发流程 注册公司网址