@Controller
@RequestMapping("/data")public class DataAction extendsBasicAction{
@Resource(name="dataService")privateDataService dataService;//课件信息统计
@RequestMapping(params = "method=getKeJianCount1",method =RequestMethod.GET)public voidgetKeJianCount1(String startTime,String endTime,ModelMap model,HttpServletRequest request,HttpServletResponse response)
{
String urlPath= request.getScheme()+"://"+request.getServerName()+request.getContextPath();
XSSFWorkbook rwb1= newXSSFWorkbook();while(true)
{if(rwb1.getNumberOfSheets() != 0){
rwb1.removeSheetAt(0);
}else{break;
}
}try{
String bank2= request.getParameter("bank2");
String[] keJianTypeArray= bank2.split(",");
XSSFSheet ws1= rwb1.createSheet("课件统计");
ws1.addMergedRegion(new CellRangeAddress(0, 1, 0, 0));
ws1.addMergedRegion(new CellRangeAddress(0, 1, 1, 1));
ws1.addMergedRegion(new CellRangeAddress(0, 1, 2, 2));int count = 0;//行
XSSFRow row1 =ws1.createRow(count);
row1.createCell(0).setCellValue("课件类别");
row1.createCell(1).setCellValue("课件标题");
row1.createCell(2).setCellValue("课件作者");
row1.createCell(3).setCellValue("APP");
count++;
XSSFRow row4=ws1.createRow(count);
row4.createCell(3).setCellValue("总点击次数");if(keJianTypeArray != null){int keJianTypeArrayLength =keJianTypeArray.length;//1、遍历model_id 数组
for (int i = 0; i < keJianTypeArrayLength; i++) {int modelId =Integer.valueOf(keJianTypeArray[i]);
String keJianType= modelId == 40?"CSCO年会 2016": modelId == 31?"CSCO年会 2017":modelId == 42 ?"BOA 2017":modelId == 39?"CSCO指南会 2017":"CSCO免疫肿瘤高峰论坛 2017";//根据modelId查询某个课件类别的总点击量
int tatolClickNum =dataService.countKeJianTatolNumByModelId(modelId,startTime,endTime);
count++;
XSSFRow row2=ws1.createRow(count);
row2.createCell(0).setCellValue(keJianType);
row2.createCell(1).setCellValue("所有课件总和");
row2.createCell(3).setCellValue(tatolClickNum);//2、根据model_id 来查询资源集合
List dataList =dataService.getDataListByModelId(modelId);//3、遍历得到的资源集合 得到统计数据
if(dataList != null && dataList.size() != 0){for(Data data : dataList) {
Integer dataId=data.getDataId();
String keJianTitle=data.getTitle();
String keJianAuthor=data.getAuthor();//4、根据dataId统计被点击的次数
int clickNum =dataService.countKeJianNumByDataId(dataId,startTime,endTime);
count++;
XSSFRow row3=ws1.createRow(count);
row3.createCell(0).setCellValue(keJianType);
row3.createCell(1).setCellValue(keJianTitle);
row3.createCell(2).setCellValue(keJianAuthor);
row3.createCell(3).setCellValue(clickNum);
}
}
}
}
String filePath= request.getSession().getServletContext().getRealPath("files/execl");
File conFile= new File(filePath); //目录结构
if(!conFile.exists())
{
conFile.mkdir();
}
String fileName= "keJianCount.xlsx";
File file= new File(filePath+"/"+fileName);if(file.exists())
{
file.delete();
}else{
file.createNewFile();
}
FileOutputStream fout= newFileOutputStream(file);
rwb1.write(fout);
fout.close();
JSONObject jsonObject= newJSONObject();
jsonObject.accumulate("url",urlPath+"/files/execl/"+fileName);
writejson(response, jsonObject.toString());
}catch(Exception e) {
e.printStackTrace();
}
}
}