自适应

This commit is contained in:
lims1@hunktimes.com
2023-08-05 20:54:11 +08:00
parent 439626790a
commit 1c06ccec8e
8 changed files with 56 additions and 61 deletions

View File

@@ -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);
}
/**
* 案例分页搜索 是否置顶

View File

@@ -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);
}

View File

@@ -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();
}

View File

@@ -33,6 +33,6 @@ public class CasesRecommendPushRecordExportVo {
@Alias(value = "首次查看时间")
private String readStartTime;
@Alias(value = "总查看时间()")
@Alias(value = "总查看时间()")
private String totalReadTime;
}

View File

@@ -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查询案例推送列表信息

View File

@@ -108,5 +108,7 @@ public interface ICasesService{
List<CasesVo> caseIndexV2(CurrentUser current);
List<String> getCaseYears();
}

View File

@@ -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;
}

View File

@@ -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) {
//取消时,把时间清空