SSH项目--国税(七)

13投诉受理管理
13.1投诉受理流程图

SSH项目--国税(七)


13.2概念、物理模型设计
CDM概念模型

SSH项目--国税(七)


根据CDM生成的PDM物理模型

SSH项目--国税(七)


13.3生成表及逆向生成实体映射文件
注意在生成的映射文件中去掉catalog=”数据库名称”。配置Complain.hbm.xml的set的属性,使其支持级联更新。
       <set name="complainReplies" inverse="true"cascade="save-update,delete" lazy="false"order-by="reply_time">
          <key>
              <column name="comp_id"length="32" not-null="true" />
          </key>
          <one-to-many class="cn.itcast.nsfw.complain.entity.ComplainReply"/>
       </set>


13.4投诉受理
1、编写ComplainDao/ComplainDaoImpl
2、编写ComplainService/ComplainServiceImpl
3、编写 ComplainAction包括:listUI()、dealUI()、deal()
4、编写complain-struts.xml和complain-spring.xml文件;并将complain-struts.xml引入struts.xml文件中。
5、引入美工页面并改动,完成列表、回复。


--在数据库中初始化一条投诉信息:


在action中的deal中,需要级联插入回复信息(注意:需要配置Complain.hbm.xml中的级联属性);具体如下:
public String deal(){
if(complain != null){
Complain tem =complainService.findObjectById(complain.getCompId());
//1、更新投诉的状态为 已受理
if(!Complain.COMPLAIN_STATE_DONE.equals(tem.getState())){//更新状态为已受理
tem.setState(Complain.COMPLAIN_STATE_DONE);
}
//2、保存回复信息
if(reply != null){
reply.setComplain(tem);
reply.setReplyTime(new Timestamp(new Date().getTime()));
tem.getComplainReplies().add(reply);
}
complainService.update(tem);
}
return "list";
}



13.5我要投诉
在工作主页中的“我要投诉”,点击后弹出,投诉的新增页面,保存后到投诉受理后台管理进行处理。在这边添加时候需要使用到Ajax根据部门名称级联查询部门人员;查询到部门对应的人员列表后,需要将这些人员转换为json字符串;要在项目中引入对应的包:找到struts2.x的lib包,向本项目lib包加入“json-lib-2.3-jdk15.jar,ezmorph-1.0.6.jar,commons-beanutils-1.8.0.jar”
1、在cn.itcast.home.action.HomeAction中编写complainAddUI()、complainAdd()、getUserJson()方法分别实现打开我要投诉页面、保存投诉信息和根据部门名称获取用户列表。
2、在页面中需要一个二级联动查询,选择部门后,需要根据部门名称到用户表里面去查询出该部门下的所有用户,然后将用户回设置到页面下拉项供用户选择。
页面js脚本中需要去获取用户列表:
//根据部门查询该部门下的用户列表
    functiondoSelectDept(){
    //1、获取部门
    var dept =$("#toCompDept option:selected").val();
    if(dept != ""){
    //2、根据部门查询列表
    $.ajax({
   url:"${basePath}sys/home_getUserJson2.action",
   data:{"dept":dept},
    type:"post",
   dataType:"json",//返回数据类型
    success:function(data){
   //2.1、将用户列表设置到被投诉人下拉框中
    if(data != null&& data != "" && data != undefined){
    if("success" ==data.msg){
    var toCompName =$("#toCompName");
   toCompName.empty();
    $.each(data.userList,function(index, user){
   toCompName.append("<option value='" + user.name + "'>" + user.name+ "</option>");
    });
    } else{alert("获取被投诉人列表失败!");}
    } else {
   alert("获取被投诉人列表失败!");
    }
    },
   error:function(){alert("获取被投诉人列表失败!");}
    });
    } else {
    //清空被投诉人列表下拉框
   $("#toCompName").empty();
    }
    }




后台Action中输出json格式文本:
方法一:直接用输出流输出Json格式的文本内容。
public void getUserJson(){
try {
//1、获取部门
String dept =ServletActionContext.getRequest().getParameter("dept");
if(StringUtils.isNotBlank(dept)){
QueryHelper queryHelper = new QueryHelper(User.class,"u");
queryHelper.addCondition("u.dept like ?", "%" + dept);
//2、根据部门查询用户列表
List<User> userList =userService.findObjects(queryHelper);
//创建Json对象
JSONObject jso = new JSONObject();
jso.put("msg", "success");
jso.accumulate("userList", userList);
//3、输出用户列表以json格式字符串形式输出
HttpServletResponse response =ServletActionContext.getResponse();
response.setContentType("text/html");
ServletOutputStream outputStream =response.getOutputStream();
outputStream.write(jso.toString().getBytes("utf-8"));
outputStream.close();
}
} catch (Exception e) {
e.printStackTrace();
}
}




方法二:使用struts2-json-plugin-2.x.jar包,由struts将action中的变量组装成Json对象。
加入 struts2-json-plugin-2.x.jar到项目中,在*-struts.xml中配置对应请求方法的返回类型为json。如下:
在Action中:
public String getUserJson2(){
try {
//1、获取部门
String dept =ServletActionContext.getRequest().getParameter("dept");
if(StringUtils.isNotBlank(dept)){
QueryHelper queryHelper = new QueryHelper(User.class,"u");
queryHelper.addCondition("u.dept like ?", "%" +dept);
//2、根据部门查询用户列表
return_map = new HashMap<String, Object>();
return_map.put("msg", "success");
return_map.put("userList",userService.findObjects(queryHelper));
}
} catch (Exception e) {
e.printStackTrace();
}
return SUCCESS;
}




配置文件:
<package name="sysHomeJson-action" namespace="/sys"extends="json-default">
<action name="home_getUserJson2"class="cn.itcast.home.action.HomeAction"method="getUserJson2">
<result type="json">
<param name="root">return_map</param>
</result>
</action>
</package>




在返回类型中指定了root参数,意思是只返回并格式化这个类属性为json。
注意:需要利用struts返回json对象的变量,要有对应的get方法。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值