Commit 83abd5e4 authored by lcl's avatar lcl

导出相关修改,个人中心导出文件接口

parent dc83791b
package com.dsk.web.controller.system;
import com.dsk.common.core.controller.BaseController;
import com.dsk.common.core.domain.PageQuery;
import com.dsk.common.core.domain.R;
import com.dsk.common.core.page.TableDataInfo;
import com.dsk.system.domain.SysUserFileRecord;
import com.dsk.system.service.ISysUserFileRecordService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
/**
* 系统用户文件记录
*
* @author lcl
* @create 2023/9/15
*/
@RestController
@RequestMapping("/user/file/record")
public class SysUserFileRecordController extends BaseController {
@Autowired
private ISysUserFileRecordService baseService;
/**
* 获取用户文件记录列表
*/
@GetMapping(value = "/list")
public TableDataInfo<SysUserFileRecord> userList(PageQuery page){
return baseService.userList(page);
}
/**
* 添加用户文件记录列表
*/
@PostMapping()
public R<Void> add(@RequestBody SysUserFileRecord bean){
return toAjax(baseService.add(bean));
}
}
...@@ -159,6 +159,7 @@ tenant: ...@@ -159,6 +159,7 @@ tenant:
- sys_user_role - sys_user_role
- sys_client - sys_client
- sys_region - sys_region
- sys_user_file_record
- contact_info - contact_info
- customer_user - customer_user
- customer_follow_record - customer_follow_record
......
package com.dsk.component;
import com.dsk.common.core.domain.R;
import com.dsk.oss.core.OssClient;
import com.dsk.oss.entity.UploadResult;
import com.dsk.oss.factory.OssFactory;
import com.dsk.system.domain.SysUserFileRecord;
import com.dsk.system.domain.vo.SysOssVo;
import com.dsk.system.service.ISysOssService;
import com.dsk.system.service.ISysUserFileRecordService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
/**
* 上传组件
* @author lcl
* @create 2023/9/15
*/
@Component
public class UploadComponent {
@Autowired
private ISysOssService ossService;
@Autowired
private ISysUserFileRecordService fileRecordService;
public R<SysOssVo> upload(String title, ByteArrayOutputStream ba, String suffix, String contentType) {
ByteArrayInputStream bio = new ByteArrayInputStream(ba.toByteArray());
OssClient client = OssFactory.instance();
UploadResult uploadResult = client.uploadSuffix(bio, suffix, contentType);
//总文件记录
SysOssVo sysOssVo = ossService.buildResultEntity(title.concat(suffix), suffix, client.getConfigKey(), uploadResult);
//用户文件记录
fileRecordService.add(new SysUserFileRecord(sysOssVo.getOriginalName(), 1, sysOssVo.getUrl()));
return R.ok(sysOssVo);
}
}
...@@ -8,6 +8,7 @@ import com.dsk.common.core.domain.AjaxResult; ...@@ -8,6 +8,7 @@ import com.dsk.common.core.domain.AjaxResult;
import com.dsk.common.core.domain.R; import com.dsk.common.core.domain.R;
import com.dsk.common.core.page.TableDataInfo; import com.dsk.common.core.page.TableDataInfo;
import com.dsk.common.core.service.OssService; import com.dsk.common.core.service.OssService;
import com.dsk.component.UploadComponent;
import com.dsk.jsk.domain.JskCombineBidPageDto; import com.dsk.jsk.domain.JskCombineBidPageDto;
import com.dsk.jsk.domain.JskCombineCertificateDto; import com.dsk.jsk.domain.JskCombineCertificateDto;
import com.dsk.jsk.domain.JskCombineCountDto; import com.dsk.jsk.domain.JskCombineCountDto;
...@@ -18,8 +19,10 @@ import com.dsk.jsk.service.JskCombineInfoService; ...@@ -18,8 +19,10 @@ import com.dsk.jsk.service.JskCombineInfoService;
import com.dsk.oss.core.OssClient; import com.dsk.oss.core.OssClient;
import com.dsk.oss.entity.UploadResult; import com.dsk.oss.entity.UploadResult;
import com.dsk.oss.factory.OssFactory; import com.dsk.oss.factory.OssFactory;
import com.dsk.system.domain.SysUserFileRecord;
import com.dsk.system.domain.vo.SysOssVo; import com.dsk.system.domain.vo.SysOssVo;
import com.dsk.system.service.ISysOssService; import com.dsk.system.service.ISysOssService;
import com.dsk.system.service.ISysUserFileRecordService;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
...@@ -44,7 +47,7 @@ public class JskCombineInfoController extends BaseController { ...@@ -44,7 +47,7 @@ public class JskCombineInfoController extends BaseController {
@Autowired @Autowired
private JskCombineInfoService baseService; private JskCombineInfoService baseService;
@Autowired @Autowired
private ISysOssService ossService; private UploadComponent uploadComponent;
/** /**
* 集团成员列表 * 集团成员列表
...@@ -164,11 +167,12 @@ public class JskCombineInfoController extends BaseController { ...@@ -164,11 +167,12 @@ public class JskCombineInfoController extends BaseController {
*/ */
@PostMapping("/export/win/bid") @PostMapping("/export/win/bid")
@SaCheckPermission("combine:info:export:win:bid") @SaCheckPermission("combine:info:export:win:bid")
public void exportWinBid(@RequestBody JskCombineSearchDto dto, HttpServletResponse response) { public R<SysOssVo> exportWinBid(@RequestBody JskCombineSearchDto dto) {
List<JskCombineWinBidProjectExportVo> list = baseService.exportWinBid(dto); List<JskCombineWinBidProjectExportVo> list = baseService.exportWinBid(dto);
String title = dto.getCombineName().concat("中标业绩清单");
ExcelUtils<JskCombineWinBidProjectExportVo> util = new ExcelUtils<>(JskCombineWinBidProjectExportVo.class); ExcelUtils<JskCombineWinBidProjectExportVo> util = new ExcelUtils<>(JskCombineWinBidProjectExportVo.class);
util.exportExcel(response, list, "集团中标", dto.getCombineName().concat("中标业绩清单"), true); ByteArrayOutputStream ba = util.exportExcel(list, "集团中标", title, true);
// String fileName = util.localInit(list, "集团中标", dto.getCombineName().concat("中标业绩清单"), true); return uploadComponent.upload(title, ba, Constants.SUFFIX_XLSX, Constants.CONTENT_TYPE_XLSX);
} }
/** /**
...@@ -176,10 +180,12 @@ public class JskCombineInfoController extends BaseController { ...@@ -176,10 +180,12 @@ public class JskCombineInfoController extends BaseController {
*/ */
@PostMapping("/export/bid") @PostMapping("/export/bid")
@SaCheckPermission("combine:info:export:bid") @SaCheckPermission("combine:info:export:bid")
public void exportBid(@RequestBody JskCombineBidPageDto dto, HttpServletResponse response) { public R<SysOssVo> exportBid(@RequestBody JskCombineBidPageDto dto) {
List<JskCombineBidProjectExportVo> list = baseService.exportBid(dto); List<JskCombineBidProjectExportVo> list = baseService.exportBid(dto);
String title = dto.getCombineName().concat("招标公告清单");
ExcelUtils<JskCombineBidProjectExportVo> util = new ExcelUtils<>(JskCombineBidProjectExportVo.class); ExcelUtils<JskCombineBidProjectExportVo> util = new ExcelUtils<>(JskCombineBidProjectExportVo.class);
util.exportExcel(response, list, "集团招标", dto.getCombineName().concat("招标公告清单"), true); ByteArrayOutputStream ba = util.exportExcel(list, "集团招标", title, true);
return uploadComponent.upload(title, ba, Constants.SUFFIX_XLSX, Constants.CONTENT_TYPE_XLSX);
} }
...@@ -191,24 +197,6 @@ public class JskCombineInfoController extends BaseController { ...@@ -191,24 +197,6 @@ public class JskCombineInfoController extends BaseController {
return baseService.bidPage(dto); return baseService.bidPage(dto);
} }
/**
* 导出上传oss测试
*/
@PostMapping("/export/upload")
public R<SysOssVo> exportuUpload(@RequestBody JskCombineSearchDto dto) {
List<JskCombineWinBidProjectExportVo> list = baseService.exportWinBid(dto);
String title = dto.getCombineName().concat("中标业绩清单");
ExcelUtils<JskCombineWinBidProjectExportVo> util = new ExcelUtils<>(JskCombineWinBidProjectExportVo.class);
ByteArrayOutputStream ba = util.exportExcel(list, "集团中标", title, true);
ByteArrayInputStream bio = new ByteArrayInputStream(ba.toByteArray());
OssClient client = OssFactory.instance();
UploadResult uploadResult = client.uploadSuffix(bio, Constants.SUFFIX_XLSX, Constants.CONTENT_TYPE_XLSX);
//总文件记录
SysOssVo sysOssVo = ossService.buildResultEntity(title.concat(Constants.SUFFIX_XLSX), Constants.SUFFIX_XLSX, client.getConfigKey(), uploadResult);
return R.ok(sysOssVo);
}
/*** /***
*@Description: 获取集团logo *@Description: 获取集团logo
*@Param: *@Param:
...@@ -217,7 +205,7 @@ public class JskCombineInfoController extends BaseController { ...@@ -217,7 +205,7 @@ public class JskCombineInfoController extends BaseController {
*@date: 2023/9/12 16:05 *@date: 2023/9/12 16:05
*/ */
@RequestMapping(value = "/combineMemberLogo", method = RequestMethod.POST) @RequestMapping(value = "/combineMemberLogo", method = RequestMethod.POST)
public R combineMemberLogo(@RequestBody Map<String,Object> paramMap) { public R combineMemberLogo(@RequestBody Map<String, Object> paramMap) {
return baseService.combineMemberLogo(paramMap); return baseService.combineMemberLogo(paramMap);
} }
......
...@@ -3,17 +3,24 @@ package com.dsk.search.controller; ...@@ -3,17 +3,24 @@ package com.dsk.search.controller;
import cn.dev33.satoken.annotation.SaCheckPermission; import cn.dev33.satoken.annotation.SaCheckPermission;
import com.alibaba.fastjson2.JSONObject; import com.alibaba.fastjson2.JSONObject;
import com.dsk.biz.utils.ExcelUtils; import com.dsk.biz.utils.ExcelUtils;
import com.dsk.common.constant.Constants;
import com.dsk.common.core.domain.AjaxResult; import com.dsk.common.core.domain.AjaxResult;
import com.dsk.common.core.domain.R;
import com.dsk.common.utils.poi.ExcelUtil; import com.dsk.common.utils.poi.ExcelUtil;
import com.dsk.component.UploadComponent;
import com.dsk.jsk.domain.bo.ComposeQueryDto; import com.dsk.jsk.domain.bo.ComposeQueryDto;
import com.dsk.jsk.domain.vo.ImportantProjectExportVo; import com.dsk.jsk.domain.vo.ImportantProjectExportVo;
import com.dsk.jsk.domain.vo.JskCombineBidProjectExportVo;
import com.dsk.search.service.BusinessOpportunityRadarService; import com.dsk.search.service.BusinessOpportunityRadarService;
import com.dsk.system.domain.vo.SysOssVo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource; import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
import java.io.ByteArrayOutputStream;
import java.util.List; import java.util.List;
...@@ -29,6 +36,8 @@ public class BusinessOpportunityRadarController { ...@@ -29,6 +36,8 @@ public class BusinessOpportunityRadarController {
@Resource @Resource
private BusinessOpportunityRadarService opportunityRadarService; private BusinessOpportunityRadarService opportunityRadarService;
@Autowired
private UploadComponent uploadComponent;
/* /*
* 公招标讯 * 公招标讯
...@@ -184,11 +193,12 @@ public class BusinessOpportunityRadarController { ...@@ -184,11 +193,12 @@ public class BusinessOpportunityRadarController {
*/ */
@RequestMapping("/export/important") @RequestMapping("/export/important")
@SaCheckPermission("radar:export:important") @SaCheckPermission("radar:export:important")
public void exportBid(@RequestBody JSONObject object, HttpServletResponse response) { public R<SysOssVo> exportBid(@RequestBody JSONObject object, HttpServletResponse response) {
List<ImportantProjectExportVo> list = opportunityRadarService.exportImportant(object); List<ImportantProjectExportVo> list = opportunityRadarService.exportImportant(object);
// ExcelUtil<ImportantProjectExportVo> util = new ExcelUtil<>(ImportantProjectExportVo.class); String title = "重点项目导出明细";
ExcelUtils<ImportantProjectExportVo> util = new ExcelUtils<>(ImportantProjectExportVo.class); ExcelUtils<ImportantProjectExportVo> util = new ExcelUtils<>(ImportantProjectExportVo.class);
util.exportExcel(response, list, "重点项目", "重点项目导出明细", true); ByteArrayOutputStream ba = util.exportExcel(list, "重点项目", title, true);
return uploadComponent.upload(title, ba, Constants.SUFFIX_XLSX, Constants.CONTENT_TYPE_XLSX);
} }
/* /*
......
package com.dsk.system.domain;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import java.io.Serializable;
import java.util.Date;
/**
* @author lcl
* @create 2023/9/15
*/
@Data
@NoArgsConstructor
@TableName("sys_user_file_record")
public class SysUserFileRecord implements Serializable {
@TableId(value = "id")
private Long id;
private String fileName;
private Integer type;
private String url;
private Long userId;
private Integer status;
private String remark;
private Date createTime;
public SysUserFileRecord(String fileName, Integer type, String url) {
this.fileName = fileName;
this.type = type;
this.url = url;
}
}
package com.dsk.system.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.dsk.system.domain.SysUserFileRecord;
/**
* 用户文件记录
* @author lcl
* @create 2023/9/15
*/
public interface SysUserFileRecordMapper extends BaseMapper<SysUserFileRecord> {
}
package com.dsk.system.service;
import com.dsk.common.core.domain.PageQuery;
import com.dsk.common.core.page.TableDataInfo;
import com.dsk.system.domain.SysUserFileRecord;
/**
* @author lcl
* @create 2023/9/15
*/
public interface ISysUserFileRecordService {
TableDataInfo<SysUserFileRecord> userList(PageQuery page);
boolean add(SysUserFileRecord bean);
}
package com.dsk.system.service.impl;
import cn.hutool.core.bean.BeanException;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.dsk.common.core.domain.PageQuery;
import com.dsk.common.core.page.TableDataInfo;
import com.dsk.common.helper.LoginHelper;
import com.dsk.system.domain.SysUserFileRecord;
import com.dsk.system.mapper.SysUserFileRecordMapper;
import com.dsk.system.service.ISysUserFileRecordService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import org.springframework.util.ObjectUtils;
import javax.annotation.Resource;
/**
* 用户文件记录
*
* @author lcl
* @create 2023/9/15
*/
@Slf4j
@Service
public class SysUserFileRecordServiceImpl implements ISysUserFileRecordService
{
@Resource
private SysUserFileRecordMapper baseMapper;
@Override
public TableDataInfo<SysUserFileRecord> userList(PageQuery page)
{
return TableDataInfo.build(
baseMapper.selectPage(page.build(), Wrappers.<SysUserFileRecord>lambdaQuery()
// .eq(SysUserFileRecord::getUserId, LoginHelper.getUserId())
.eq(SysUserFileRecord::getUserId, 100L)
.eq(SysUserFileRecord::getType, 1)
.orderByDesc(SysUserFileRecord::getCreateTime))
);
}
@Override
public boolean add(SysUserFileRecord bean)
{
dataVerify(bean);
return baseMapper.insert(bean) != 0;
}
private void dataVerify(SysUserFileRecord bean)
{
if(ObjectUtils.isEmpty(bean.getUrl())) throw new BeanException("文件存储链接不能为空!");
if(ObjectUtils.isEmpty(bean.getFileName())) throw new BeanException("文件名称不能为空!");
if(ObjectUtils.isEmpty(bean.getType())) throw new BeanException("文件类型不能为空!");
bean.setUserId(LoginHelper.getUserId());
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment