123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146 |
- package com.simuwang.manage.api.email;
- import com.simuwang.base.common.page.TableDataInfo;
- import com.simuwang.base.common.result.AjaxResult;
- import com.simuwang.base.common.util.EncodeUtil;
- import com.simuwang.base.pojo.vo.EmailFileInfoVO;
- import com.simuwang.base.pojo.vo.EmailParseInfoVO;
- import com.simuwang.base.pojo.vo.EmailTypeRuleVO;
- import com.simuwang.daq.service.EmailParseApiService;
- import com.simuwang.manage.api.base.BaseController;
- import com.simuwang.manage.service.ParseEmailService;
- import jakarta.servlet.ServletOutputStream;
- import jakarta.servlet.http.HttpServletRequest;
- import jakarta.servlet.http.HttpServletResponse;
- import org.apache.ibatis.annotations.Param;
- import org.apache.poi.hssf.usermodel.HSSFWorkbook;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.web.bind.annotation.*;
- import java.io.FileInputStream;
- import java.io.FileOutputStream;
- import java.io.IOException;
- import java.util.List;
- import java.util.Map;
- /**
- * 解析详情管理
- * Author: chenjianhua
- * Date: 2024/9/10 11:21
- * Description: ${DESCRIPTION}
- */
- @RestController
- @RequestMapping("/v1/parse")
- public class ParseEmailController extends BaseController {
- @Autowired
- private ParseEmailService parseEmailService;
- @Autowired
- private EmailParseApiService emailParseApiService;
- /**
- * 保存邮件类型识别配置
- * @param emailTypeRuleVO
- * @return
- */
- @PostMapping("/save-email-type")
- public AjaxResult saveEmailType(@RequestBody EmailTypeRuleVO emailTypeRuleVO){
- try{
- parseEmailService.saveEmailType(emailTypeRuleVO);
- }catch (Exception e){
- logger.error(e.getMessage(),e);
- return AjaxResult.error("保存失败");
- }
- return AjaxResult.success();
- }
- /**
- * 查询邮件类型识别配置
- * @param
- * @return
- */
- @GetMapping("/search-email-type")
- public AjaxResult searchEmailType(){
- EmailTypeRuleVO emailTypeRuleVO = new EmailTypeRuleVO();
- try{
- emailTypeRuleVO = parseEmailService.searchEmailType();
- }catch (Exception e){
- logger.error(e.getMessage(),e);
- return AjaxResult.error("查询失败");
- }
- return AjaxResult.success(emailTypeRuleVO);
- }
- /**
- * 邮箱配置页面展示查询
- * @param emailTitle -邮件标题
- * @param emailType -邮件类型
- * @param parseStatus 解析状态:1-成功,2-净值缺失,3-未匹配基金,4-净值<=0,5-资产净值<=0
- * @return
- */
- @GetMapping("/search-email-list")
- public TableDataInfo searchEmailList(@RequestParam(value = "emailTitle",required = false)String emailTitle,
- @RequestParam(value = "emailType",required = false)Integer emailType,
- @RequestParam(value = "parseStatus",required = false)Integer parseStatus){
- List<EmailParseInfoVO> result = parseEmailService.searchEmailList(emailTitle,emailType,parseStatus);
- return getDataTable(result);
- }
- /**
- * 详情查询
- * @param id
- * @return
- */
- @GetMapping("/{id}")
- public AjaxResult searchEmail(@PathVariable("id") Integer id){
- EmailParseInfoVO result = parseEmailService.searchEmailById(id);
- return AjaxResult.success(result);
- }
- /**
- * 解析邮件数据统计
- * @param parseDate
- * @return
- */
- @GetMapping("/search-email-count")
- public AjaxResult searchEmailCount(@RequestParam("parseDate") String parseDate){
- Map<String,Integer> result = parseEmailService.searchEmailCount(parseDate);
- return AjaxResult.success(result);
- }
- /**
- * 根据fileId下载邮件附件
- * @param fileId
- * @return
- */
- @PostMapping("/download-email-file")
- public void downloadEmailFile(@RequestParam("fileId") Integer fileId, HttpServletResponse response, HttpServletRequest request){
- try {
- EmailFileInfoVO emailFileInfoVO = parseEmailService.getEmailFileById(fileId);
- FileInputStream fileInputStream = new FileInputStream(emailFileInfoVO.getFilePath());
- response.setContentType("application/octet-stream");
- response.addHeader("Content-Disposition", "attachment;filename=" + EncodeUtil.encodeUTF8(emailFileInfoVO.getFileName()));
- ServletOutputStream outputStream = response.getOutputStream();
- byte[] b = new byte[1024];
- while(fileInputStream.read(b) > 0){
- outputStream.write(b);
- }
- fileInputStream.close();
- outputStream.flush();
- outputStream.close();
- } catch (IOException e) {
- logger.error(e.getMessage(),e);
- }
- }
- /**
- * 根据邮件ID重新解析
- * @param id
- * @return
- */
- @GetMapping("/reparse/{id}")
- public AjaxResult reparse(@PathVariable("id")Integer id){
- emailParseApiService.reparseEmail(id);
- return AjaxResult.success();
- }
- }
|