|
@@ -94,6 +94,8 @@ public class ExportController extends BaseController {
|
|
|
private CooperationOrganService cooperationOrganService;
|
|
|
@Autowired
|
|
|
private StudentPaymentRouteOrderDao studentPaymentRouteOrderDao;
|
|
|
+ @Autowired
|
|
|
+ private StudentPaymentOrderDao studentPaymentOrderDao;
|
|
|
|
|
|
@Autowired
|
|
|
private TeacherService teacherService;
|
|
@@ -2117,4 +2119,86 @@ public class ExportController extends BaseController {
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
+ @ApiOperation(value = "回款统计")
|
|
|
+ @RequestMapping("export/studentOrder")
|
|
|
+ @PreAuthorize("@pcs.hasPermissions('export/studentOrder')")
|
|
|
+ public void studentOrder(String organIds,Date date, HttpServletResponse response) throws IOException {
|
|
|
+ SysUser sysUser = sysUserFeignService.queryUserInfo();
|
|
|
+ if (!sysUser.getIsSuperAdmin()) {
|
|
|
+ Employee employee = employeeDao.get(sysUser.getId());
|
|
|
+ if (StringUtils.isBlank(organIds)) {
|
|
|
+ organIds = employee.getOrganIdList();
|
|
|
+ }
|
|
|
+ }
|
|
|
+ Date startTime = DateUtil.getFirstDayOfMonth(date);
|
|
|
+ Date EndTime = DateUtil.getLastDayOfMonth(date);
|
|
|
+
|
|
|
+ List<OrderTypeEnum> orderTypeList = new ArrayList<>();
|
|
|
+ orderTypeList.add(OrderTypeEnum.SPORADIC);
|
|
|
+ orderTypeList.add(OrderTypeEnum.PRACTICE_GROUP_BUY);
|
|
|
+ orderTypeList.add(OrderTypeEnum.PRACTICE_GROUP_RENEW);
|
|
|
+ orderTypeList.add(OrderTypeEnum.SMALL_CLASS_TO_BUY);
|
|
|
+ List<OrderByTypeExportDto> orders = studentPaymentOrderDao.getOrderByMonthAndType(organIds, orderTypeList,startTime,EndTime);
|
|
|
+
|
|
|
+ if (orders.size() <= 0) {
|
|
|
+ response.setStatus(200);
|
|
|
+ response.setContentType("Content-Type: application/json;charset=UTF-8");
|
|
|
+ response.getOutputStream().write("{\"data\": null, \"code\": 500, \"status\": false, \"msg\": \"没有可导出的记录\"}".getBytes());
|
|
|
+ response.flushBuffer();
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ List<Long> vipGroupIds = orders.stream().filter(e -> e.getGroupType().equals(GroupType.VIP)).map(OrderByTypeExportDto::getMusicGroupId).collect(Collectors.toList());
|
|
|
+ List<Long> practiceGroupIds = orders.stream().filter(e -> e.getGroupType().equals(GroupType.PRACTICE)).map(OrderByTypeExportDto::getMusicGroupId).collect(Collectors.toList());
|
|
|
+
|
|
|
+ List<VipBuyResultDto> vipGroupTeachers = new ArrayList<>();
|
|
|
+ List<PracticeCourseDto> practiceGroupsTeacher = new ArrayList<>();
|
|
|
+ if(vipGroupIds.size() > 0){
|
|
|
+ vipGroupTeachers = vipGroupDao.getGroupTeachers(vipGroupIds);
|
|
|
+ }
|
|
|
+
|
|
|
+ if(practiceGroupIds.size() >0){
|
|
|
+ practiceGroupsTeacher = practiceGroupDao.getPracticeGroupByIds(practiceGroupIds);
|
|
|
+ }
|
|
|
+
|
|
|
+ for (OrderByTypeExportDto order : orders) {
|
|
|
+ for (VipBuyResultDto vipGroupTeacher : vipGroupTeachers) {
|
|
|
+ if(order.getMusicGroupId().equals(vipGroupTeacher.getVipGroupId().longValue())){
|
|
|
+ order.setTeacherName(vipGroupTeacher.getTeacherName());
|
|
|
+ order.setEduTeacherName(vipGroupTeacher.getEduTeacherName());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ for (PracticeCourseDto practiceCourseDto : practiceGroupsTeacher) {
|
|
|
+ if(order.getMusicGroupId().equals(practiceCourseDto.getId())){
|
|
|
+ order.setTeacherName(practiceCourseDto.getTeacherName());
|
|
|
+ order.setEduTeacherName(practiceCourseDto.getEduTeacherName());
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ OutputStream outputStream = response.getOutputStream();
|
|
|
+ try {
|
|
|
+ String[] header = {"学员编号", "学员姓名", "指导老师", "教务老师", "订单日期", "交易类型", "实际金额"};
|
|
|
+ String[] body = {"studentId", "studentName", "teacherName", "eduTeacherName", "createTime", "orderType.msg", "actualAmount"};
|
|
|
+
|
|
|
+ HSSFWorkbook workbook = POIUtil.exportExcel(header, body, orders);
|
|
|
+ response.setContentType("application/octet-stream");
|
|
|
+ response.setHeader("Content-Disposition", "attachment;filename=lender-" + DateUtil.getDate(new Date()) + ".xls");
|
|
|
+ response.flushBuffer();
|
|
|
+ outputStream = response.getOutputStream();
|
|
|
+ workbook.write(outputStream);
|
|
|
+ outputStream.flush();
|
|
|
+ } catch (Exception e) {
|
|
|
+ e.printStackTrace();
|
|
|
+ } finally {
|
|
|
+ if (outputStream != null) {
|
|
|
+ try {
|
|
|
+ outputStream.close();
|
|
|
+ } catch (IOException e) {
|
|
|
+ e.printStackTrace();
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|