package com.fadu.jeefw.controller.lawyer; import com.fadu.app.util.SystemCache; import com.fadu.core.support.ExtJSBaseParameter; import com.fadu.core.support.JqGridPageView; import com.fadu.core.support.QueryResult; import com.fadu.core.util.BeanUtils; import com.fadu.jeefw.core.Constant; import com.fadu.jeefw.core.JavaEEFrameworkBaseController; import com.fadu.jeefw.model.web.LawyerCaseVO; import com.fadu.jeefw.service.lawer.LawyerCaseService; import com.fadu.model.lawyer.LawyerCase; import net.sf.json.JSONArray; import net.sf.json.JSONObject; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.ResponseBody; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.io.OutputStream; import java.lang.reflect.InvocationTargetException; import java.net.URLDecoder; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; /** * 律师的控制层 */ @Controller @RequestMapping("/sys/lawyercase") public class LawyerCaseController extends JavaEEFrameworkBaseController<LawyerCaseVO> implements Constant { @Autowired private LawyerCaseService lawyercaseService; //hql分页例子 @RequestMapping(value = "/getHqlLawyer", method = { RequestMethod.POST, RequestMethod.GET }) public void getHqlLawyer(HttpServletRequest request, HttpServletResponse response) throws Exception { // Integer page=Integer.valueOf(request.getParameter("page")); Integer rows=Integer.valueOf(request.getParameter("rows")); Integer firstResult = 0; Integer maxResults =rows; String sortedObject = request.getParameter("sidx"); String sortedValue = request.getParameter("sord"); List<String> whereCondition = new ArrayList<String>(); String address = request.getParameter("address"); if (StringUtils.isNotBlank(address)) { whereCondition.add(" address like '%"+address+"%'"); } String mobile = request.getParameter("mobile"); if (StringUtils.isNotBlank(mobile)) { whereCondition.add(" mobile like '%"+mobile+"%'"); } String office = request.getParameter("office"); if (StringUtils.isNotBlank(office)) { whereCondition.add(" office like '%"+office+"%'"); } String realName = request.getParameter("realName"); if (StringUtils.isNotBlank(realName)) { whereCondition.add(" realName like '%"+realName+"%'"); } Map<String, String> sortedCondition = new HashMap<String, String>(); sortedCondition.put(sortedObject, sortedValue); QueryResult<LawyerCase> queryResult = lawyercaseService.doPaginationQuery(whereCondition,sortedCondition,firstResult,maxResults); JqGridPageView<LawyerCase> lawyerListView = new JqGridPageView<LawyerCase>(); lawyerListView.setMaxResults(maxResults); /*List<LawyerCaseVO> lawyerWithSubList = lawyercaseService.queryLawyerWithSubList(queryResult.getResultList()); lawyerListView.setRows(lawyerWithSubList); lawyerListView.setRecords(queryResult.getTotalCount()); */ /*ListView<Company> forestryListView = new ListView<Company>(); forestryListView.setData(queryResult.getResultList()); forestryListView.setTotalRecord(queryResult.getTotalCount());*/ writeJSON(response, lawyerListView); } // 查询律师的表格,包括分页、搜索和排序 @RequestMapping(value = "/getLawyer", method = { RequestMethod.POST, RequestMethod.GET }) public void getLawyer(HttpServletRequest request, HttpServletResponse response) throws Exception { Integer firstResult = Integer.valueOf(request.getParameter("page")); Integer maxResults = Integer.valueOf(request.getParameter("rows")); String sortedObject = request.getParameter("sidx"); String sortedValue = request.getParameter("sord"); String filters = request.getParameter("filters"); LawyerCaseVO lawyervo = new LawyerCaseVO(); if (StringUtils.isNotBlank(filters)) { JSONObject jsonObject = JSONObject.fromObject(filters); JSONArray jsonArray = (JSONArray) jsonObject.get("rules"); for (int i = 0; i < jsonArray.size(); i++) { JSONObject result = (JSONObject) jsonArray.get(i); /* if (result.getString("field").equals("mobile") && result.getString("op").equals("eq")) { lawyervo.set$eq_mobile(result.getString("data")); } if (result.getString("field").equals("realName") && result.getString("op").equals("cn")) { lawyervo.set$like_realName(result.getString("data")); }*/ } if (((String) jsonObject.get("groupOp")).equalsIgnoreCase("OR")) { lawyervo.setFlag("OR"); } else { lawyervo.setFlag("AND"); } } lawyervo.setFirstResult((firstResult - 1) * maxResults); lawyervo.setMaxResults(maxResults); Map<String, String> sortedCondition = new HashMap<String, String>(); sortedCondition.put(sortedObject, sortedValue); lawyervo.setSortedConditions(sortedCondition); QueryResult<LawyerCase> queryResult = lawyercaseService.doPaginationQuery(lawyervo); JqGridPageView<LawyerCaseVO> lawyerListView = new JqGridPageView<LawyerCaseVO>(); lawyerListView.setMaxResults(maxResults); List<LawyerCaseVO> lawyerWithSubList = lawyercaseService.queryLawyerWithSubList(queryResult.getResultList()); lawyerListView.setRows(lawyerWithSubList); lawyerListView.setRecords(queryResult.getTotalCount()); writeJSON(response, lawyerListView); } // 保存律师的实体Bean @Override @RequestMapping(value = "/saveLawyer", method = { RequestMethod.POST, RequestMethod.GET }) public void doSave(LawyerCaseVO vo, HttpServletRequest request, HttpServletResponse response) throws IOException { ExtJSBaseParameter parameter = (vo); if (CMD_EDIT.equals(parameter.getCmd())) { LawyerCase entity = lawyercaseService.get(vo.getId()); lawyercaseService.update(entity); } else if (CMD_NEW.equals(parameter.getCmd())) { LawyerCase entity = new LawyerCase(); try { BeanUtils.copyProperties(entity, vo); } catch (IllegalAccessException e) { e.printStackTrace(); } catch (InvocationTargetException e) { e.printStackTrace(); } lawyercaseService.createLawyer(entity); } parameter.setSuccess(true); writeJSON(response, parameter); } // 操作律师的删除、导出Excel、字段判断和保存 @RequestMapping(value = "/operateLawyer", method = { RequestMethod.POST, RequestMethod.GET }) public void operateLawyer(LawyerCaseVO vo, HttpServletRequest request, HttpServletResponse response) throws Exception { String oper = request.getParameter("oper"); String id = request.getParameter("id"); if (oper.equals("del")) { String[] ids = id.split(","); deleteLawyer(request, response, ids); } else if (oper.equals("excel")) { response.setContentType("application/msexcel;charset=UTF-8"); OutputStream out = null; try { response.addHeader("Content-Disposition", "attachment;filename=file.xls"); out = response.getOutputStream(); out.write(URLDecoder.decode(request.getParameter("csvBuffer"), "UTF-8").getBytes()); out.flush(); } catch (Exception e) { e.printStackTrace(); }finally{ if(out!=null){ out.close(); } } } else { Map<String, Object> result = new HashMap<String, Object>(); // Lawyer mobileLawyer = lawyerService.getByProerties("mobile", vo.getMobile()); if (oper.equals("edit")) { vo.setCmd("edit"); doSave(vo, request, response); } else if (oper.equals("add")) { vo.setCmd("new"); doSave(vo, request, response); } } } // 删除律师 @RequestMapping("/deleteLawyer") public void deleteLawyer(HttpServletRequest request, HttpServletResponse response, @RequestParam("ids") String[] ids) throws IOException { boolean flag = lawyercaseService.deleteByPK(ids); if (flag) { writeJSON(response, SUCCESS_TRUE); } else { writeJSON(response, SUCCESS_FAlSE); } } // 获取律师状态的下拉框 @RequestMapping(value = "/getLawyerStatusSelectList", method = { RequestMethod.POST, RequestMethod.GET }) public void getLawyerStatusSelectList(HttpServletRequest request, HttpServletResponse response) throws Exception { List<LawyerCase> departmentList = lawyercaseService.doQueryAll(); StringBuilder builder = new StringBuilder(); builder.append("<select>"); /*for (int i = 0; i < departmentList.size(); i++) { builder.append("<option value='" + departmentList.get(i).getStatus() + "'>" + departmentList.get(i).getStatusName() + "</option>"); }*/ builder.append("<option value='" + 0+ "'>" + "注册"+"</option>"); builder.append("<option value='" + 1+ "'>" + "已经完善资料"+"</option>"); builder.append("<option value='" + 2+ "'>" + "认证审核中"+"</option>"); builder.append("<option value='" + 3+ "'>" + "认证审核失败"+"</option>"); builder.append("<option value='" + 4+ "'>" + "认证成功"+"</option>"); builder.append("</select>"); writeJSON(response, builder.toString()); } // 获取律师状态的下拉框 @RequestMapping(value = "/getLawyerByid", method = { RequestMethod.POST, RequestMethod.GET }) public void getLawyerByid(HttpServletRequest request, HttpServletResponse response) throws Exception { String lawyerid=request.getParameter("lawyerid"); if(!StringUtils.isEmpty(lawyerid)){ LawyerCase lawyer= lawyercaseService.getByProerties("id", lawyerid); if(null!=lawyer){ writeJSON(response, lawyer); } } } @ResponseBody @RequestMapping(value = "/getCaseTypes") public Map<String, String> getCaseTypes(){ return SystemCache.caseTypeMap; } }