EasyUI+JavaWeb奖助学金管理系统[17]-问题反馈功能开发

简介: 本文目录1. 本章任务2. 添加菜单3. 学生问题反馈开发4. 管理员问题答复功能开发5. 总结

1. 本章任务

前期已完成以下功能开发:


登录

后台管理主页面

奖助学金项目管理

机构管理

人员管理

角色权限管理

今天来开发问题反馈功能。问题反馈是指学生提出反馈问题,并且查看反馈问题的答复信息(管理员负责答复问题)。


此处涉及两个页面:学生问题反馈页面questionAsk.html,管理员问题答复页面questionReply.html。


2. 添加菜单

首先在WebContent目录下添加两个页面questionAsk.html和questionReply.html。


然后在Menu表添加两个菜单:


INSERT INTO `scholar-system`.`menu`(`id`, `name`, `path`) VALUES (5, '问题反馈', 'questionAsk.html');

INSERT INTO `scholar-system`.`menu`(`id`, `name`, `path`) VALUES (6, '问题答复', 'questionReply.html');

1

2

最后还需要通过管理员的权限管理页面,为管理员角色添加问题答复权限,为学生角色添加问题反馈权限。


3. 学生问题反馈开发

首先学生需要能分页查看自己反馈的问题,此处就是一个普通的分页查询,需要注意的一点是在查询时需要携带当前登录用户的信息,因为学生只能查看自己反馈的问题。然后学生可以提交问题,在问题反馈表中新增一条记录即可。


修改questionAsk.html代码:

<!DOCTYPE html>
<html>
  <head>
    <meta charset="UTF-8">
    <title></title>
    <link rel="stylesheet" type="text/css" href="easyui/themes/default/easyui.css">
    <link rel="stylesheet" type="text/css" href="easyui/themes/icon.css">
    <link rel="stylesheet" type="text/css" href="css/main.css">
    <script type="text/javascript" src="easyui/jquery.min.js"></script>
    <script type="text/javascript" src="easyui/jquery.easyui.min.js"></script>
    <script type="text/javascript" src="easyui/locale/easyui-lang-zh_CN.js"></script>
  </head>
  <body>
    <div class="tool-box">
      <a id="btn" onclick="btnAddClick()" href="#" class="easyui-linkbutton" data-options="iconCls:'icon-add'">反馈问题</a>
    </div>
    <table id="mainTable" title="已反馈问题列表" class="easyui-datagrid" url="CoreServlet?method=getQuestionPage" pagination="true"
     singleSelect="true" fitColumns="true">
      <thead>
        <tr>
          <th data-options="field:'id',width:50">序号</th>
          <th data-options="field:'userName',width:50">反馈人</th>
          <th data-options="field:'departName',width:50">所属班级</th>
          <th data-options="field:'content',width:100">问题内容</th>
          <th data-options="field:'reply',width:100">问题答复</th>
        </tr>
      </thead>
    </table>
    <!-- 新增弹窗 -->
    <div id="dialog-add" class="easyui-dialog" title="问题反馈" data-options="iconCls:'icon-ok',closed:'true'" style="width: 600px; height: 400px; padding: 10px">
      <table>
        <tr>
          <td>反馈内容:</td>
          <td><input id="add-content" class="easyui-textbox" style="width: 200px"></td>
        </tr>
        <tr>
          <td></td>
          <td><a id="btn" onclick="btnAddSubmit()" href="#" class="easyui-linkbutton">保存</a></td>
        </tr>
      </table>
    </div>
  </body>
  <script>
    // 新增点击
    function btnAddClick() {
      $('#dialog-add').dialog('open');
    }
    // 新增保存
    function btnAddSubmit() {
      var param = {
        content: $("#add-content").val()
      }
      $.ajax({
        url: "CoreServlet?method=questionSubmit",
        type: "post",
        dataType: "json",
        data: param,
        success: function(res) {
          console.log(res);
          if (res.code == 0) { //成功则刷新表格
            $('#mainTable').datagrid('reload');
            $('#dialog-add').dialog('close');
          } else { //提示错误信息
            alert(res.msg);
          }
        },
      });
    }
  </script>
</html>
修改CoreServlet:
// 获取问题列表
    else if (method.equals("getQuestionPage")) {
      if (loginUser.getRole().equals("schoolmaster")) {// 管理员查看全部问题
        QuestionDao questionDao = new QuestionDao();
        total = questionDao.getCount();
        result.setTotal(total);
        result.setRows(questionDao.getPage(page, rows));
      } else if (loginUser.getRole().equals("student")) {// 学生查看自己提交的问题
        QuestionDao questionDao = new QuestionDao();
        total = questionDao.getCount(loginUser.getId());
        result.setTotal(total);
        result.setRows(questionDao.getPage(page, rows, loginUser.getId()));
      }
    }
    // 提交问题
    else if (method.equals("questionSubmit")) {
      // 获取机构信息
      DepartDao departDao = new DepartDao();
      Depart depart = departDao.getById(loginUser.getDepartId());
      // 组装问题信息
      Question question = new Question();
      question.setUserId(loginUser.getId());
      question.setUserName(loginUser.getUserName());
      question.setDepartId(depart.getId());
      question.setDepartName(depart.getName());
      question.setContent(request.getParameter("content"));
      // 插入数据库
      QuestionDao questionDao = new QuestionDao();
      questionDao.insert(question);
      result.setCode(0);
      result.setMsg("操作成功");
    }
修改QuestionDao:
  /**
   * 获取数量
   */
  public int getCount() throws Exception {
    Connection conn = ConnectionUtils.getConnection();
    String sql = "select count(id) from question ";
    QueryRunner runner = new QueryRunner();
    Number number = (Number) runner.query(conn, sql, new ScalarHandler());
    int value = number.intValue();
    ConnectionUtils.releaseConnection(conn);
    return value;
  }
  /**
   * 分页查询
   */
  public List<Question> getPage(int page, int rows) throws Exception {
    Connection conn = ConnectionUtils.getConnection();
    String sql = "select * from question limit ?,?";
    QueryRunner runner = new QueryRunner();
    Object[] params = { (page - 1) * rows };
    List<Question> questions = runner.query(conn, sql, new BeanListHandler<Question>(Question.class), params);
    ConnectionUtils.releaseConnection(conn);
    return questions;
  }
  /**
   * 获取数量(通过userId)
   */
  public int getCount(String userId) throws Exception {
    Connection conn = ConnectionUtils.getConnection();
    String sql = "select count(id) from question where userId=?";
    QueryRunner runner = new QueryRunner();
    Object[] params = { userId };
    Number number = (Number) runner.query(conn, sql, new ScalarHandler(), params);
    int value = number.intValue();
    ConnectionUtils.releaseConnection(conn);
    return value;
  }
  /**
   * 分页查询(通过userId)
   */
  public List<Question> getPage(int page, int rows, String userId) throws Exception {
    Connection conn = ConnectionUtils.getConnection();
    String sql = "select * from question where userId=? limit ?,?";
    QueryRunner runner = new QueryRunner();
    Object[] params = { userId,(page - 1) * rows, rows };
    List<Question> questions = runner.query(conn, sql, new BeanListHandler<Question>(Question.class), params);
    ConnectionUtils.releaseConnection(conn);
    return questions;
  }

4. 管理员问题答复功能开发

其实管理员功能答复,首先是显示所有问题的分页列表,然后就是可以编辑其中一个问题的reply属性。


没有什么新的功能,感兴趣的可以直接去看源码。


5. 总结

问题反馈和问题答复其实就是一个变通版本的分页查询、新增、修改功能。需要根据登录人员的角色查询/处理不同的数据库数据而已。

相关文章
|
4天前
基于EasyUI的后台管理系统页面原型_示例图_下载地址
基于EasyUI的后台管理系统页面原型_示例图_下载地址
5 0
|
8月前
|
数据库
22EasyUI 数据网格- 添加查询功能
22EasyUI 数据网格- 添加查询功能
23 0
|
11月前
|
数据可视化 安全 Java
【项目源码】基于spring boot+mybatis+easyui开发的质量溯源系统
粮油溯源系统是从种植到加工、包装、库存、物流、销售、售出、异常反馈的全流程可视化质量溯源系统。技术架构:spring boot+mybatis+easyui+mysql
【项目源码】基于spring boot+mybatis+easyui开发的质量溯源系统
|
安全 数据安全/隐私保护
EasyUI+JavaWeb奖助学金管理系统[20]-项目总结与展望
本文目录 1. 总结 1.1 管理员新增奖助学金项目 1.2 学生发起申请 1.3 班主任审批 1.4 学院管理员审批 1.5 学校管理员审批 1.6 学生查看申请结果 2. 展望
153 0
EasyUI+JavaWeb奖助学金管理系统[20]-项目总结与展望
|
前端开发
EasyUI+JavaWeb奖助学金管理系统[19]-奖助学金审批功能开发
本文目录 1. 本章任务 2. 查看当前待审批的申请 3. 审批功能的开发 4. 总结
180 0

热门文章

最新文章