mirror of
https://codeup.aliyun.com/67762337eccfc218f6110e0e/per-boe/java-servers.git
synced 2025-12-11 03:46:50 +08:00
自适应
This commit is contained in:
@@ -159,6 +159,11 @@ public class CasesApi extends ApiBaseController {
|
||||
return success(views);
|
||||
}
|
||||
|
||||
@PostMapping("/caseYears")
|
||||
public JsonResponse<List<String>> caseYears() {
|
||||
List<String> result = casesService.getCaseYears();
|
||||
return success(result);
|
||||
}
|
||||
|
||||
/**
|
||||
* 案例分页搜索 是否置顶
|
||||
|
||||
@@ -5,6 +5,7 @@ import cn.hutool.core.collection.ListUtil;
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import cn.hutool.core.io.IoUtil;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import cn.hutool.poi.excel.BigExcelWriter;
|
||||
import cn.hutool.poi.excel.ExcelReader;
|
||||
import cn.hutool.poi.excel.ExcelUtil;
|
||||
import cn.hutool.poi.excel.ExcelWriter;
|
||||
@@ -25,9 +26,9 @@ import com.xboe.module.boecase.vo.BrowseDurationVo;
|
||||
import com.xboe.module.boecase.vo.CasesRecommendLaunchVo;
|
||||
import com.xboe.module.boecase.vo.CasesRecommendPushVo;
|
||||
import com.xboe.module.boecase.vo.CasesRecommendVo;
|
||||
import com.xboe.module.excel.ExportsExcelSenderUtil;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.apache.poi.xssf.streaming.SXSSFSheet;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
import org.springframework.web.multipart.MultipartFile;
|
||||
|
||||
@@ -35,9 +36,7 @@ import javax.annotation.Resource;
|
||||
import javax.servlet.ServletOutputStream;
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import java.io.OutputStream;
|
||||
import java.util.ArrayList;
|
||||
import java.util.LinkedHashMap;
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
@@ -137,8 +136,8 @@ public class CasesRecommendApi extends ApiBaseController {
|
||||
public void downloadTemplate(HttpServletResponse response) throws Exception {
|
||||
// 通过工具类创建writer,默认创建xls格式
|
||||
ExcelWriter writer = ExcelUtil.getWriter();
|
||||
writer.setColumnWidth(0, 40);
|
||||
writer.writeHeadRow(ListUtil.toList("标题"));
|
||||
writer.autoSizeColumnAll();
|
||||
response.setContentType("application/vnd.ms-excel;charset=utf-8");
|
||||
response.setHeader("Content-Disposition", "attachment;filename=failData.xls");
|
||||
ServletOutputStream out = response.getOutputStream();
|
||||
@@ -167,6 +166,7 @@ public class CasesRecommendApi extends ApiBaseController {
|
||||
if (CollectionUtil.isNotEmpty(dataList)) {
|
||||
writer.write(dataList);
|
||||
}
|
||||
writer.autoSizeColumnAll();
|
||||
response.setContentType("application/vnd.ms-excel;charset=utf-8");
|
||||
response.setHeader("Content-Disposition", "attachment;filename=failData.xls");
|
||||
ServletOutputStream out = response.getOutputStream();
|
||||
@@ -208,8 +208,7 @@ public class CasesRecommendApi extends ApiBaseController {
|
||||
if (StringUtils.isEmpty(token)) {
|
||||
token = request.getHeader("token");
|
||||
}
|
||||
iCasesRecommendPushRecordService.launchPush(casesRecommendLaunch, getCurrent(), token);
|
||||
return success(true);
|
||||
return success(iCasesRecommendPushRecordService.launchPush(casesRecommendLaunch, getCurrent(), token));
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -219,61 +218,42 @@ public class CasesRecommendApi extends ApiBaseController {
|
||||
* @throws Exception
|
||||
*/
|
||||
@PostMapping("/info_download")
|
||||
public void infoDownload(@RequestBody CasesRecommendVo vo, HttpServletResponse response) {
|
||||
public void infoDownload(@RequestBody CasesRecommendVo vo, HttpServletResponse response) throws Exception {
|
||||
if (StringUtils.isEmpty(vo.getCasesRecommendId())) {
|
||||
throw new RuntimeException("缺少必要参数");
|
||||
}
|
||||
|
||||
try (OutputStream outputStream = response.getOutputStream()) {
|
||||
// 用个List<Map>装表格的所有内容
|
||||
// 拼接上列明。我这里用的最土的方法,很不优雅别学我
|
||||
LinkedHashMap<String, String> map = new LinkedHashMap<>();
|
||||
map.put("案例名称", "caseTitle");
|
||||
map.put("目标用户", "pushUserName");
|
||||
map.put("所属组织", "recommendOrgName");
|
||||
map.put("推送时间", "pushTime");
|
||||
map.put("是否查看", "readFlag");
|
||||
map.put("首次查看时间", "readStartTime");
|
||||
map.put("总查看时间(秒)", "totalReadTime");
|
||||
CasesRecommend casesRecommend = iCasesRecommendService.findById(vo.getCasesRecommendId());
|
||||
|
||||
CasesRecommend casesRecommend = iCasesRecommendService.findById(vo.getCasesRecommendId());
|
||||
|
||||
// 拿取表格里需要的数据
|
||||
List<CasesRecommendPushRecord> recordList = iCasesRecommendPushRecordService.findAllByRecommendId(vo.getCasesRecommendId());
|
||||
List<CasesRecommendPushRecordExportVo> exportVos = new ArrayList<>();
|
||||
if (CollectionUtil.isNotEmpty(recordList)) {
|
||||
exportVos = recordList.stream().map(record -> {
|
||||
CasesRecommendPushRecordExportVo exportVo = new CasesRecommendPushRecordExportVo();
|
||||
exportVo.setCaseTitle(record.getCaseTitle());
|
||||
exportVo.setPushUserName(record.getPushUserName());
|
||||
exportVo.setRecommendOrgName(casesRecommend.getRecommendOrgName());
|
||||
exportVo.setPushTime(DateUtil.formatDateTime(record.getPushTime()));
|
||||
exportVo.setReadFlag(record.getReadFlag() == 1 ? "是" : "否");
|
||||
exportVo.setReadStartTime(DateUtil.formatDateTime(record.getReadStartTime()));
|
||||
Long browseDuration = casesBrowseService.getBrowseDuration(record.getCaseId(), getCurrent().getAccountId());
|
||||
exportVo.setTotalReadTime(browseDuration.toString());
|
||||
return exportVo;
|
||||
}).collect(Collectors.toList());
|
||||
}
|
||||
|
||||
// 通过工具类创建writer,默认创建xls格式
|
||||
ExcelWriter writer = ExcelUtil.getWriter();
|
||||
writer.setColumnWidth(0, 40);
|
||||
writer.write(exportVos, true);
|
||||
response.setContentType("application/vnd.ms-excel;charset=utf-8");
|
||||
response.setHeader("Content-Disposition", "attachment;filename=casesRecommend.xls");
|
||||
ServletOutputStream out = response.getOutputStream();
|
||||
writer.flush(out, true);
|
||||
writer.close();
|
||||
IoUtil.close(out);
|
||||
|
||||
// response.setContentType("application/octet-stream");
|
||||
// response.setHeader("Content-disposition", "attachment;filename=casesRecommend.xls");
|
||||
// ExportsExcelSenderUtil.export(map, exportVos, outputStream, "yyyy-MM-dd HH:mm:ss");
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
log.error("导出失败", e.getMessage());
|
||||
// 拿取表格里需要的数据
|
||||
List<CasesRecommendPushRecord> recordList = iCasesRecommendPushRecordService.findAllByRecommendId(vo.getCasesRecommendId());
|
||||
List<CasesRecommendPushRecordExportVo> exportVos = new ArrayList<>();
|
||||
if (CollectionUtil.isNotEmpty(recordList)) {
|
||||
exportVos = recordList.stream().map(record -> {
|
||||
CasesRecommendPushRecordExportVo exportVo = new CasesRecommendPushRecordExportVo();
|
||||
exportVo.setCaseTitle(record.getCaseTitle());
|
||||
exportVo.setPushUserName(record.getPushUserName());
|
||||
exportVo.setRecommendOrgName(casesRecommend.getRecommendOrgName());
|
||||
exportVo.setPushTime(DateUtil.formatDateTime(record.getPushTime()));
|
||||
exportVo.setReadFlag(record.getReadFlag() == 1 ? "是" : "否");
|
||||
exportVo.setReadStartTime(DateUtil.formatDateTime(record.getReadStartTime()));
|
||||
Long browseDuration = casesBrowseService.getBrowseDuration(record.getCaseId(), getCurrent().getAccountId());
|
||||
exportVo.setTotalReadTime(browseDuration.toString());
|
||||
return exportVo;
|
||||
}).collect(Collectors.toList());
|
||||
}
|
||||
// 通过工具类创建writer,默认创建xls格式
|
||||
BigExcelWriter writer = ExcelUtil.getBigWriter();
|
||||
// 设置所有列为自动宽度,不考虑合并单元格
|
||||
writer.write(exportVos, true);
|
||||
SXSSFSheet sheet = (SXSSFSheet) writer.getSheet();
|
||||
writer.autoSizeColumnAll();
|
||||
response.setContentType("application/vnd.ms-excel;charset=utf-8");
|
||||
response.setHeader("Content-Disposition", "attachment;filename=casesRecommend.xls");
|
||||
ServletOutputStream out = response.getOutputStream();
|
||||
writer.flush(out, true);
|
||||
writer.close();
|
||||
IoUtil.close(out);
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -72,4 +72,8 @@ public interface CasesRecordDao extends JpaRepository<Cases, String>, JpaSpecifi
|
||||
" and (:isTop IS NULL or bc.isTop = :isTop)" +
|
||||
" GROUP BY bc.id ORDER BY bc.sysCreateTime desc")
|
||||
List<Cases> exportCase(String keyWord, String authorName,String orgDomain,Boolean excellent,Boolean isTop);
|
||||
|
||||
|
||||
@Query(nativeQuery = true, value ="SELECT DATE_FORMAT(sys_create_time,'%Y') FROM `boe_cases` where deleted = FALSE GROUP BY DATE_FORMAT(sys_create_time,'%Y')")
|
||||
List<String> caseYears();
|
||||
}
|
||||
|
||||
@@ -33,6 +33,6 @@ public class CasesRecommendPushRecordExportVo {
|
||||
@Alias(value = "首次查看时间")
|
||||
private String readStartTime;
|
||||
|
||||
@Alias(value = "总查看时间(秒)")
|
||||
@Alias(value = "总查看时间(分)")
|
||||
private String totalReadTime;
|
||||
}
|
||||
|
||||
@@ -16,7 +16,7 @@ public interface ICasesRecommendPushRecordService {
|
||||
* @param
|
||||
* @return
|
||||
*/
|
||||
void launchPush(CasesRecommendLaunchVo casesRecommendLaunch, CurrentUser currentUser, String token);
|
||||
boolean launchPush(CasesRecommendLaunchVo casesRecommendLaunch, CurrentUser currentUser, String token);
|
||||
|
||||
/**
|
||||
* 根据案例推荐ID查询案例推送列表信息
|
||||
|
||||
@@ -108,5 +108,7 @@ public interface ICasesService{
|
||||
|
||||
List<CasesVo> caseIndexV2(CurrentUser current);
|
||||
|
||||
List<String> getCaseYears();
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -23,7 +23,6 @@ import com.xboe.module.boecase.vo.CasesRecommendLaunchVo;
|
||||
import com.xboe.system.user.dao.UserDao;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Value;
|
||||
import org.springframework.scheduling.annotation.Async;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
@@ -66,8 +65,7 @@ public class CasesRecommendPushRecordServiceImpl implements ICasesRecommendPushR
|
||||
private AsyncSendCasesRecommendService asyncSendCasesRecommendService;
|
||||
|
||||
@Override
|
||||
@Async
|
||||
public void launchPush(CasesRecommendLaunchVo casesRecommendLaunch, CurrentUser currentUser, String token) {
|
||||
public boolean launchPush(CasesRecommendLaunchVo casesRecommendLaunch, CurrentUser currentUser, String token) {
|
||||
|
||||
long t1 = System.currentTimeMillis();
|
||||
List<String> caseIds = new ArrayList<>();
|
||||
@@ -154,7 +152,7 @@ public class CasesRecommendPushRecordServiceImpl implements ICasesRecommendPushR
|
||||
} catch (Exception e) {
|
||||
log.error("推送失败", e);
|
||||
}
|
||||
// return true;
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -1037,6 +1037,12 @@ public class CasesServiceImpl implements ICasesService {
|
||||
return casesVos;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<String> getCaseYears() {
|
||||
List<String> years = this.casesRecordDao.caseYears();
|
||||
return years;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void excellent(String id, Boolean excellent) {
|
||||
//取消时,把时间清空
|
||||
|
||||
Reference in New Issue
Block a user