mirror of
https://codeup.aliyun.com/67762337eccfc218f6110e0e/per-boe/java-servers.git
synced 2025-12-10 19:36:50 +08:00
自适应
This commit is contained in:
@@ -159,6 +159,11 @@ public class CasesApi extends ApiBaseController {
|
|||||||
return success(views);
|
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.date.DateUtil;
|
||||||
import cn.hutool.core.io.IoUtil;
|
import cn.hutool.core.io.IoUtil;
|
||||||
import cn.hutool.core.util.StrUtil;
|
import cn.hutool.core.util.StrUtil;
|
||||||
|
import cn.hutool.poi.excel.BigExcelWriter;
|
||||||
import cn.hutool.poi.excel.ExcelReader;
|
import cn.hutool.poi.excel.ExcelReader;
|
||||||
import cn.hutool.poi.excel.ExcelUtil;
|
import cn.hutool.poi.excel.ExcelUtil;
|
||||||
import cn.hutool.poi.excel.ExcelWriter;
|
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.CasesRecommendLaunchVo;
|
||||||
import com.xboe.module.boecase.vo.CasesRecommendPushVo;
|
import com.xboe.module.boecase.vo.CasesRecommendPushVo;
|
||||||
import com.xboe.module.boecase.vo.CasesRecommendVo;
|
import com.xboe.module.boecase.vo.CasesRecommendVo;
|
||||||
import com.xboe.module.excel.ExportsExcelSenderUtil;
|
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.apache.commons.lang3.StringUtils;
|
import org.apache.commons.lang3.StringUtils;
|
||||||
|
import org.apache.poi.xssf.streaming.SXSSFSheet;
|
||||||
import org.springframework.web.bind.annotation.*;
|
import org.springframework.web.bind.annotation.*;
|
||||||
import org.springframework.web.multipart.MultipartFile;
|
import org.springframework.web.multipart.MultipartFile;
|
||||||
|
|
||||||
@@ -35,9 +36,7 @@ import javax.annotation.Resource;
|
|||||||
import javax.servlet.ServletOutputStream;
|
import javax.servlet.ServletOutputStream;
|
||||||
import javax.servlet.http.HttpServletRequest;
|
import javax.servlet.http.HttpServletRequest;
|
||||||
import javax.servlet.http.HttpServletResponse;
|
import javax.servlet.http.HttpServletResponse;
|
||||||
import java.io.OutputStream;
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.LinkedHashMap;
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
@@ -137,8 +136,8 @@ public class CasesRecommendApi extends ApiBaseController {
|
|||||||
public void downloadTemplate(HttpServletResponse response) throws Exception {
|
public void downloadTemplate(HttpServletResponse response) throws Exception {
|
||||||
// 通过工具类创建writer,默认创建xls格式
|
// 通过工具类创建writer,默认创建xls格式
|
||||||
ExcelWriter writer = ExcelUtil.getWriter();
|
ExcelWriter writer = ExcelUtil.getWriter();
|
||||||
writer.setColumnWidth(0, 40);
|
|
||||||
writer.writeHeadRow(ListUtil.toList("标题"));
|
writer.writeHeadRow(ListUtil.toList("标题"));
|
||||||
|
writer.autoSizeColumnAll();
|
||||||
response.setContentType("application/vnd.ms-excel;charset=utf-8");
|
response.setContentType("application/vnd.ms-excel;charset=utf-8");
|
||||||
response.setHeader("Content-Disposition", "attachment;filename=failData.xls");
|
response.setHeader("Content-Disposition", "attachment;filename=failData.xls");
|
||||||
ServletOutputStream out = response.getOutputStream();
|
ServletOutputStream out = response.getOutputStream();
|
||||||
@@ -167,6 +166,7 @@ public class CasesRecommendApi extends ApiBaseController {
|
|||||||
if (CollectionUtil.isNotEmpty(dataList)) {
|
if (CollectionUtil.isNotEmpty(dataList)) {
|
||||||
writer.write(dataList);
|
writer.write(dataList);
|
||||||
}
|
}
|
||||||
|
writer.autoSizeColumnAll();
|
||||||
response.setContentType("application/vnd.ms-excel;charset=utf-8");
|
response.setContentType("application/vnd.ms-excel;charset=utf-8");
|
||||||
response.setHeader("Content-Disposition", "attachment;filename=failData.xls");
|
response.setHeader("Content-Disposition", "attachment;filename=failData.xls");
|
||||||
ServletOutputStream out = response.getOutputStream();
|
ServletOutputStream out = response.getOutputStream();
|
||||||
@@ -208,8 +208,7 @@ public class CasesRecommendApi extends ApiBaseController {
|
|||||||
if (StringUtils.isEmpty(token)) {
|
if (StringUtils.isEmpty(token)) {
|
||||||
token = request.getHeader("token");
|
token = request.getHeader("token");
|
||||||
}
|
}
|
||||||
iCasesRecommendPushRecordService.launchPush(casesRecommendLaunch, getCurrent(), token);
|
return success(iCasesRecommendPushRecordService.launchPush(casesRecommendLaunch, getCurrent(), token));
|
||||||
return success(true);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -219,61 +218,42 @@ public class CasesRecommendApi extends ApiBaseController {
|
|||||||
* @throws Exception
|
* @throws Exception
|
||||||
*/
|
*/
|
||||||
@PostMapping("/info_download")
|
@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())) {
|
if (StringUtils.isEmpty(vo.getCasesRecommendId())) {
|
||||||
throw new RuntimeException("缺少必要参数");
|
throw new RuntimeException("缺少必要参数");
|
||||||
}
|
}
|
||||||
|
|
||||||
try (OutputStream outputStream = response.getOutputStream()) {
|
CasesRecommend casesRecommend = iCasesRecommendService.findById(vo.getCasesRecommendId());
|
||||||
// 用个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());
|
// 拿取表格里需要的数据
|
||||||
|
List<CasesRecommendPushRecord> recordList = iCasesRecommendPushRecordService.findAllByRecommendId(vo.getCasesRecommendId());
|
||||||
// 拿取表格里需要的数据
|
List<CasesRecommendPushRecordExportVo> exportVos = new ArrayList<>();
|
||||||
List<CasesRecommendPushRecord> recordList = iCasesRecommendPushRecordService.findAllByRecommendId(vo.getCasesRecommendId());
|
if (CollectionUtil.isNotEmpty(recordList)) {
|
||||||
List<CasesRecommendPushRecordExportVo> exportVos = new ArrayList<>();
|
exportVos = recordList.stream().map(record -> {
|
||||||
if (CollectionUtil.isNotEmpty(recordList)) {
|
CasesRecommendPushRecordExportVo exportVo = new CasesRecommendPushRecordExportVo();
|
||||||
exportVos = recordList.stream().map(record -> {
|
exportVo.setCaseTitle(record.getCaseTitle());
|
||||||
CasesRecommendPushRecordExportVo exportVo = new CasesRecommendPushRecordExportVo();
|
exportVo.setPushUserName(record.getPushUserName());
|
||||||
exportVo.setCaseTitle(record.getCaseTitle());
|
exportVo.setRecommendOrgName(casesRecommend.getRecommendOrgName());
|
||||||
exportVo.setPushUserName(record.getPushUserName());
|
exportVo.setPushTime(DateUtil.formatDateTime(record.getPushTime()));
|
||||||
exportVo.setRecommendOrgName(casesRecommend.getRecommendOrgName());
|
exportVo.setReadFlag(record.getReadFlag() == 1 ? "是" : "否");
|
||||||
exportVo.setPushTime(DateUtil.formatDateTime(record.getPushTime()));
|
exportVo.setReadStartTime(DateUtil.formatDateTime(record.getReadStartTime()));
|
||||||
exportVo.setReadFlag(record.getReadFlag() == 1 ? "是" : "否");
|
Long browseDuration = casesBrowseService.getBrowseDuration(record.getCaseId(), getCurrent().getAccountId());
|
||||||
exportVo.setReadStartTime(DateUtil.formatDateTime(record.getReadStartTime()));
|
exportVo.setTotalReadTime(browseDuration.toString());
|
||||||
Long browseDuration = casesBrowseService.getBrowseDuration(record.getCaseId(), getCurrent().getAccountId());
|
return exportVo;
|
||||||
exportVo.setTotalReadTime(browseDuration.toString());
|
}).collect(Collectors.toList());
|
||||||
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());
|
|
||||||
}
|
}
|
||||||
|
// 通过工具类创建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)" +
|
" and (:isTop IS NULL or bc.isTop = :isTop)" +
|
||||||
" GROUP BY bc.id ORDER BY bc.sysCreateTime desc")
|
" GROUP BY bc.id ORDER BY bc.sysCreateTime desc")
|
||||||
List<Cases> exportCase(String keyWord, String authorName,String orgDomain,Boolean excellent,Boolean isTop);
|
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 = "首次查看时间")
|
@Alias(value = "首次查看时间")
|
||||||
private String readStartTime;
|
private String readStartTime;
|
||||||
|
|
||||||
@Alias(value = "总查看时间(秒)")
|
@Alias(value = "总查看时间(分)")
|
||||||
private String totalReadTime;
|
private String totalReadTime;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -16,7 +16,7 @@ public interface ICasesRecommendPushRecordService {
|
|||||||
* @param
|
* @param
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
void launchPush(CasesRecommendLaunchVo casesRecommendLaunch, CurrentUser currentUser, String token);
|
boolean launchPush(CasesRecommendLaunchVo casesRecommendLaunch, CurrentUser currentUser, String token);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 根据案例推荐ID查询案例推送列表信息
|
* 根据案例推荐ID查询案例推送列表信息
|
||||||
|
|||||||
@@ -108,5 +108,7 @@ public interface ICasesService{
|
|||||||
|
|
||||||
List<CasesVo> caseIndexV2(CurrentUser current);
|
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 com.xboe.system.user.dao.UserDao;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.springframework.beans.factory.annotation.Value;
|
import org.springframework.beans.factory.annotation.Value;
|
||||||
import org.springframework.scheduling.annotation.Async;
|
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
|
||||||
@@ -66,8 +65,7 @@ public class CasesRecommendPushRecordServiceImpl implements ICasesRecommendPushR
|
|||||||
private AsyncSendCasesRecommendService asyncSendCasesRecommendService;
|
private AsyncSendCasesRecommendService asyncSendCasesRecommendService;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@Async
|
public boolean launchPush(CasesRecommendLaunchVo casesRecommendLaunch, CurrentUser currentUser, String token) {
|
||||||
public void launchPush(CasesRecommendLaunchVo casesRecommendLaunch, CurrentUser currentUser, String token) {
|
|
||||||
|
|
||||||
long t1 = System.currentTimeMillis();
|
long t1 = System.currentTimeMillis();
|
||||||
List<String> caseIds = new ArrayList<>();
|
List<String> caseIds = new ArrayList<>();
|
||||||
@@ -154,7 +152,7 @@ public class CasesRecommendPushRecordServiceImpl implements ICasesRecommendPushR
|
|||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
log.error("推送失败", e);
|
log.error("推送失败", e);
|
||||||
}
|
}
|
||||||
// return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -1037,6 +1037,12 @@ public class CasesServiceImpl implements ICasesService {
|
|||||||
return casesVos;
|
return casesVos;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<String> getCaseYears() {
|
||||||
|
List<String> years = this.casesRecordDao.caseYears();
|
||||||
|
return years;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void excellent(String id, Boolean excellent) {
|
public void excellent(String id, Boolean excellent) {
|
||||||
//取消时,把时间清空
|
//取消时,把时间清空
|
||||||
|
|||||||
Reference in New Issue
Block a user