From 64bb24381f0a4322eb9526e08256d57b90f61a2a Mon Sep 17 00:00:00 2001 From: zhangqinlin <983410zql> Date: Tue, 14 Dec 2021 12:00:18 +0800 Subject: [PATCH] =?UTF-8?q?add:=E8=BF=9C=E7=A8=8B=E5=9C=A8=E7=A0=94?= =?UTF-8?q?=E9=A1=B9=E7=9B=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../PayCaseCommitteeSubitemController.java | 2 +- .../PayResearchProjectController.java | 60 +++++++++-------- .../service/IPayResearchProjectService.java | 8 +++ .../impl/PayResearchProjectServiceImpl.java | 67 ++++++++++++++++++- 4 files changed, 107 insertions(+), 30 deletions(-) diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/data/controller/PayCaseCommitteeSubitemController.java b/jero-boot-incoming-payment/src/main/java/com/jero/data/controller/PayCaseCommitteeSubitemController.java index 6e89786d..48a3ac92 100644 --- a/jero-boot-incoming-payment/src/main/java/com/jero/data/controller/PayCaseCommitteeSubitemController.java +++ b/jero-boot-incoming-payment/src/main/java/com/jero/data/controller/PayCaseCommitteeSubitemController.java @@ -190,12 +190,12 @@ public class PayCaseCommitteeSubitemController extends JeroController listForThree(@RequestParam(name="abbreviation",required = true) String abbreviation, -// @RequestParam(name="pageNo", defaultValue="1") Integer pageNo, -// @RequestParam(name="pageSize", defaultValue="10") Integer pageSize, -// ) { -//// IPage pageList = payResearchProjectService.listForThree(pageNo,pageSize,abbreviation); -// return Result.OK(pageList); -// } + + /** + * 第三方在研项目 + * + * @param + * @param pageNo + * @param pageSize + * @param + * @return + */ + @AutoLog(value = "第三方在研项目-分页列表查询") + @ApiOperation(value="第三方在研项目-分页列表查询", notes="第三方在研项目-分页列表查询") + @GetMapping(value = "/listForThree") + public Result listForThree(@RequestParam(name="abbreviation",required = true) String abbreviation, + @RequestParam(name="pageNo", defaultValue="1") Integer pageNo, + @RequestParam(name="pageSize", defaultValue="10") Integer pageSize, + @RequestParam(name="projectName",required = false) String projectName + ) { + JSONObject pageList = payResearchProjectService.listForThree(pageNo,pageSize,abbreviation,projectName); + return Result.OK(pageList); + } /** - * 添加 + * 第三方在研项目-下载 * - * @param payResearchProject + * @param fileId * @return */ - @AutoLog(value = "在研项目-添加") - @ApiOperation(value="在研项目-添加", notes="在研项目-添加") - @PostMapping(value = "/add") - public Result add(@RequestBody PayResearchProject payResearchProject) { - payResearchProjectService.save(payResearchProject); - return Result.OK("添加成功!"); + @AutoLog(value = "第三方在研项目-下载") + @ApiOperation(value="在研项目-下载", notes="在研项目-下载") + @GetMapping(value = "/downLoad") + public void downLoad(@RequestParam(name="fileId",required = true) Integer fileId, + @RequestParam(name="fileName",required = true) String fileName + ) throws IOException { + payResearchProjectService.downLoad(fileId,fileName); } /** diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/project/service/IPayResearchProjectService.java b/jero-boot-incoming-payment/src/main/java/com/jero/project/service/IPayResearchProjectService.java index d2618527..5826b099 100644 --- a/jero-boot-incoming-payment/src/main/java/com/jero/project/service/IPayResearchProjectService.java +++ b/jero-boot-incoming-payment/src/main/java/com/jero/project/service/IPayResearchProjectService.java @@ -1,8 +1,12 @@ package com.jero.project.service; +import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.core.metadata.IPage; import com.jero.project.entity.PayResearchProject; import com.baomidou.mybatisplus.extension.service.IService; +import java.io.IOException; + /** * @Description: pay_research_project * @Author: jeecg-boot @@ -11,4 +15,8 @@ import com.baomidou.mybatisplus.extension.service.IService; */ public interface IPayResearchProjectService extends IService { + JSONObject listForThree(Integer pageNo, Integer pageSize, String abbreviation, String projectName); + + void downLoad(Integer fileId,String fileName) throws IOException; + } diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/project/service/impl/PayResearchProjectServiceImpl.java b/jero-boot-incoming-payment/src/main/java/com/jero/project/service/impl/PayResearchProjectServiceImpl.java index 67f2a289..88355a97 100644 --- a/jero-boot-incoming-payment/src/main/java/com/jero/project/service/impl/PayResearchProjectServiceImpl.java +++ b/jero-boot-incoming-payment/src/main/java/com/jero/project/service/impl/PayResearchProjectServiceImpl.java @@ -1,22 +1,32 @@ package com.jero.project.service.impl; +import cn.hutool.http.HttpUtil; +import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.core.metadata.IPage; import com.jero.project.entity.PayResearchProject; import com.jero.project.mapper.PayResearchProjectMapper; import com.jero.project.service.IPayResearchProjectService; import lombok.extern.slf4j.Slf4j; import org.apache.commons.codec.binary.Hex; import org.apache.commons.io.Charsets; +import org.checkerframework.checker.units.qual.K; import org.mybatis.logging.Logger; import org.mybatis.logging.LoggerFactory; import org.springframework.stereotype.Service; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.springframework.web.context.request.RequestContextHolder; +import org.springframework.web.context.request.ServletRequestAttributes; +import javax.activation.MimetypesFileTypeMap; import javax.crypto.Cipher; import javax.crypto.SecretKey; import javax.crypto.SecretKeyFactory; import javax.crypto.spec.DESKeySpec; +import javax.servlet.http.HttpServletResponse; +import java.io.*; import java.security.SecureRandom; +import java.util.HashMap; /** * @Description: pay_research_project @@ -28,7 +38,15 @@ import java.security.SecureRandom; @Slf4j public class PayResearchProjectServiceImpl extends ServiceImpl implements IPayResearchProjectService { - private String keys="qczxd00001_memberSystem"; + private String KEYS="qczxd00001_memberSystem";//密匙 + + private String PREFIXS ="appId=QC_APP01&abbreviation=TC114SC";//列表获取参数 + + private String PREFIXF ="appId=QC_APP01&fid=";//文件下载参数 + + private String URL ="http://www.catarc.org.cn:8088/zxd/serviceInterface/getProjectInfoPage"; + + private String URLF ="http://www.catarc.org.cn:8088/zxd/serviceInterface/downloadProjectFile"; /** * 加密,并将结果转成16进制字符串 * @@ -58,4 +76,51 @@ public class PayResearchProjectServiceImpl extends ServiceImpl map = new HashMap<>(); + map.put("appId","QC_APP01"); + map.put("abbreviation",encrypt); + map.put("pageNo",pageNo); + map.put("pageSize",pageSize); + map.put("projectName",projectName); + String s1 = HttpUtil.get(URL, map); + JSONObject jsonObject = JSONObject.parseObject(s1); + return jsonObject; + } + + @Override + public void downLoad(Integer fileId,String fileName) throws IOException { + ServletRequestAttributes requestAttributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes(); + HttpServletResponse response = requestAttributes.getResponse(); + String type = new MimetypesFileTypeMap().getContentType(fileName); + // 设置contenttype,即告诉客户端所发送的数据属于什么类型 + response.setHeader("Content-type",type); + // 设置编码 + String hehe = new String(fileName.getBytes("utf-8"), "iso-8859-1"); + // 设置扩展头,当Content-Type 的类型为要下载的类型时 , 这个信息头会告诉浏览器这个文件的名字和类型。 + response.setHeader("Content-Disposition", "attachment;filename=" + hehe); + OutputStream outputStream = response.getOutputStream(); + String s = PREFIXF + fileId; + String encrypt = encrypt(s, KEYS); + HashMap map = new HashMap<>(); + map.put("appId", "QC_APP01"); + map.put("fid", encrypt); + byte[] bytes = HttpUtil.downloadBytes(URLF + "?" + "appId=QC_APP01&" + "fid=" + encrypt); + byte[] buff = new byte[1024]; + ByteArrayInputStream bis = null; + // 读取filename + bis = new ByteArrayInputStream(bytes); + int i = bis.read(buff); + while (i != -1) { + outputStream.write(buff, 0, buff.length); + outputStream.flush(); + i = bis.read(buff); + + } + bis.close(); + outputStream.close(); + } }