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:
- sys_user_role
- sys_client
- sys_region
- sys_user_file_record
- contact_info
- customer_user
- 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;
import com.dsk.common.core.domain.R;
import com.dsk.common.core.page.TableDataInfo;
import com.dsk.common.core.service.OssService;
import com.dsk.component.UploadComponent;
import com.dsk.jsk.domain.JskCombineBidPageDto;
import com.dsk.jsk.domain.JskCombineCertificateDto;
import com.dsk.jsk.domain.JskCombineCountDto;
......@@ -18,8 +19,10 @@ import com.dsk.jsk.service.JskCombineInfoService;
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 lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
......@@ -44,7 +47,7 @@ public class JskCombineInfoController extends BaseController {
@Autowired
private JskCombineInfoService baseService;
@Autowired
private ISysOssService ossService;
private UploadComponent uploadComponent;
/**
* 集团成员列表
......@@ -164,11 +167,12 @@ public class JskCombineInfoController extends BaseController {
*/
@PostMapping("/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);
String title = dto.getCombineName().concat("中标业绩清单");
ExcelUtils<JskCombineWinBidProjectExportVo> util = new ExcelUtils<>(JskCombineWinBidProjectExportVo.class);
util.exportExcel(response, list, "集团中标", dto.getCombineName().concat("中标业绩清单"), true);
// String fileName = util.localInit(list, "集团中标", dto.getCombineName().concat("中标业绩清单"), true);
ByteArrayOutputStream ba = util.exportExcel(list, "集团中标", title, true);
return uploadComponent.upload(title, ba, Constants.SUFFIX_XLSX, Constants.CONTENT_TYPE_XLSX);
}
/**
......@@ -176,10 +180,12 @@ public class JskCombineInfoController extends BaseController {
*/
@PostMapping("/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);
String title = dto.getCombineName().concat("招标公告清单");
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 {
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
*@Param:
......@@ -217,7 +205,7 @@ public class JskCombineInfoController extends BaseController {
*@date: 2023/9/12 16:05
*/
@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);
}
......
......@@ -3,17 +3,24 @@ package com.dsk.search.controller;
import cn.dev33.satoken.annotation.SaCheckPermission;
import com.alibaba.fastjson2.JSONObject;
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.R;
import com.dsk.common.utils.poi.ExcelUtil;
import com.dsk.component.UploadComponent;
import com.dsk.jsk.domain.bo.ComposeQueryDto;
import com.dsk.jsk.domain.vo.ImportantProjectExportVo;
import com.dsk.jsk.domain.vo.JskCombineBidProjectExportVo;
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.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;
import java.io.ByteArrayOutputStream;
import java.util.List;
......@@ -29,6 +36,8 @@ public class BusinessOpportunityRadarController {
@Resource
private BusinessOpportunityRadarService opportunityRadarService;
@Autowired
private UploadComponent uploadComponent;
/*
* 公招标讯
......@@ -184,11 +193,12 @@ public class BusinessOpportunityRadarController {
*/
@RequestMapping("/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);
// ExcelUtil<ImportantProjectExportVo> util = new ExcelUtil<>(ImportantProjectExportVo.class);
String title = "重点项目导出明细";
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