增加form表单下载

master
wujingtao 3 years ago
parent 1f4ee2c27d
commit 6be90376dd

@ -1,37 +1,39 @@
/*
* Copyright 2019-2020 Zheng Jie
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
* Copyright 2019-2020 Zheng Jie
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package me.zhengjie.modules.tmpfilerecord.domain;
import lombok.Data;
import cn.hutool.core.bean.BeanUtil;
import io.swagger.annotations.ApiModelProperty;
import cn.hutool.core.bean.copier.CopyOptions;
import javax.persistence.*;
import javax.validation.constraints.*;
import java.io.Serializable;
import java.util.Date;
/**
* @website https://el-admin.vip
* @description /
* @author X
* @date 2020-10-15
**/
* @author X
* @website https://el-admin.vip
* @description /
* @date 2020-10-15
**/
@Entity
@Data
@Table(name="tb_temp_file_record")
@Table(name = "tb_temp_file_record")
public class TempFileRecord implements Serializable {
@Id
@ -63,7 +65,19 @@ public class TempFileRecord implements Serializable {
@ApiModelProperty(value = "文件保存状态")
private Integer fileStatus;
public void copy(TempFileRecord source){
BeanUtil.copyProperties(source,this, CopyOptions.create().setIgnoreNullValue(true));
@Column(name = "origin")
@ApiModelProperty(value = "链接来源")
private Integer origin;
@Column(name = "gmt_create")
@ApiModelProperty(value = "生成日期")
private Date gmtCreate;
@Column(name = "act_name")
@ApiModelProperty(value = "业务名")
private String actName;
public void copy(TempFileRecord source) {
BeanUtil.copyProperties(source, this, CopyOptions.create().setIgnoreNullValue(true));
}
}

@ -1,32 +1,24 @@
/*
* Copyright 2019-2020 Zheng Jie
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
* Copyright 2019-2020 Zheng Jie
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package me.zhengjie.modules.tmpfilerecord.rest;
import cn.hutool.json.JSON;
import cn.hutool.json.JSONUtil;
import me.zhengjie.annotation.Log;
import me.zhengjie.common.http.CommonResponse;
import me.zhengjie.common.http.ResponseCode;
import me.zhengjie.common.json.OnceLinkMsgJsonContent;
import me.zhengjie.modules.tmpfilerecord.domain.TempFileRecord;
import me.zhengjie.modules.tmpfilerecord.service.TempFileRecordService;
import me.zhengjie.modules.tmpfilerecord.service.dto.TempFileRecordQueryCriteria;
import me.zhengjie.service.EmailService;
import me.zhengjie.utils.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Pageable;
import lombok.RequiredArgsConstructor;
import org.springframework.http.HttpStatus;
@ -35,16 +27,15 @@ import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import io.swagger.annotations.*;
import org.springframework.web.multipart.MultipartFile;
import java.io.IOException;
import javax.servlet.http.HttpServletResponse;
/**
* @website https://el-admin.vip
* @author X
* @date 2020-10-15
**/
* @author X
* @website https://el-admin.vip
* @date 2020-10-15
**/
@RestController
@RequiredArgsConstructor
@Api(tags = "tmpfilerecord管理")
@ -65,23 +56,23 @@ public class TempFileRecordController {
@Log("查询tmpfilerecord")
@ApiOperation("查询tmpfilerecord")
@PreAuthorize("@el.check('tempFileRecord:list')")
public ResponseEntity<Object> query(TempFileRecordQueryCriteria criteria, Pageable pageable){
return new ResponseEntity<>(tempFileRecordService.queryAll(criteria,pageable),HttpStatus.OK);
public ResponseEntity<Object> query(TempFileRecordQueryCriteria criteria, Pageable pageable) {
return new ResponseEntity<>(tempFileRecordService.queryAll(criteria, pageable), HttpStatus.OK);
}
@PostMapping
@Log("新增tmpfilerecord")
@ApiOperation("新增tmpfilerecord")
@PreAuthorize("@el.check('tempFileRecord:add')")
public ResponseEntity<Object> create(@Validated @RequestBody TempFileRecord resources){
return new ResponseEntity<>(tempFileRecordService.create(resources),HttpStatus.CREATED);
public ResponseEntity<Object> create(@Validated @RequestBody TempFileRecord resources) {
return new ResponseEntity<>(tempFileRecordService.create(resources), HttpStatus.CREATED);
}
@PutMapping
@Log("修改tmpfilerecord")
@ApiOperation("修改tmpfilerecord")
@PreAuthorize("@el.check('tempFileRecord:edit')")
public ResponseEntity<Object> update(@Validated @RequestBody TempFileRecord resources){
public ResponseEntity<Object> update(@Validated @RequestBody TempFileRecord resources) {
tempFileRecordService.update(resources);
return new ResponseEntity<>(HttpStatus.NO_CONTENT);
}
@ -94,4 +85,5 @@ public class TempFileRecordController {
tempFileRecordService.deleteAll(ids);
return new ResponseEntity<>(HttpStatus.OK);
}
}

@ -1,24 +1,25 @@
/*
* Copyright 2019-2020 Zheng Jie
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
* Copyright 2019-2020 Zheng Jie
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package me.zhengjie.modules.tmpfilerecord.service;
import me.zhengjie.modules.tmpfilerecord.domain.TempFileRecord;
import me.zhengjie.modules.tmpfilerecord.service.dto.TempFileRecordDto;
import me.zhengjie.modules.tmpfilerecord.service.dto.TempFileRecordQueryCriteria;
import org.springframework.data.domain.Pageable;
import org.springframework.http.ResponseEntity;
import org.springframework.web.multipart.MultipartFile;
import java.util.Map;
@ -27,23 +28,25 @@ import java.io.IOException;
import javax.servlet.http.HttpServletResponse;
/**
* @website https://el-admin.vip
* @description
* @author X
* @date 2020-10-15
**/
* @author X
* @website https://el-admin.vip
* @description
* @date 2020-10-15
**/
public interface TempFileRecordService {
/**
*
*
* @param criteria
* @param pageable
* @return Map<String,Object>
* @return Map<String, Object>
*/
Map<String,Object> queryAll(TempFileRecordQueryCriteria criteria, Pageable pageable);
Map<String, Object> queryAll(TempFileRecordQueryCriteria criteria, Pageable pageable);
/**
*
*
* @param criteria
* @return List<TempFileRecordDto>
*/
@ -51,6 +54,7 @@ public interface TempFileRecordService {
/**
* ID
*
* @param id ID
* @return TempFileRecordDto
*/
@ -58,6 +62,7 @@ public interface TempFileRecordService {
/**
*
*
* @param resources /
* @return TempFileRecordDto
*/
@ -65,18 +70,21 @@ public interface TempFileRecordService {
/**
*
*
* @param resources /
*/
void update(TempFileRecord resources);
/**
*
*
* @param ids /
*/
void deleteAll(Integer[] ids);
/**
*
*
* @param all
* @param response /
* @throws IOException /

@ -1,47 +1,71 @@
/*
* Copyright 2019-2020 Zheng Jie
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
* Copyright 2019-2020 Zheng Jie
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package me.zhengjie.modules.tmpfilerecord.service.dto;
import lombok.Data;
import java.io.Serializable;
import java.util.Date;
/**
* @website https://el-admin.vip
* @description /
* @author X
* @date 2020-10-15
**/
* @author X
* @website https://el-admin.vip
* @description /
* @date 2020-10-15
**/
@Data
public class TempFileRecordDto implements Serializable {
/** id */
/**
* id
*/
private Integer id;
/** 访问接口的ip地址记录 */
/**
* 访ip
*/
private String ipAddrs;
/** 文件生成地址 */
/**
*
*/
private String filePaths;
/** 访问文件验证码 */
/**
* 访
*/
private String verificationCode;
/** 有效保存时间 */
/**
*
*/
private Integer days;
/** 文件保存状态 */
/**
*
*/
private Integer fileStatus;
/**
* 1-formManager 2-eladmin
*/
private Integer origin;
private Date gmtCreate;
/**
*
*/
private String actName;
}

@ -1,49 +1,74 @@
/*
* Copyright 2019-2020 Zheng Jie
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
* Copyright 2019-2020 Zheng Jie
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package me.zhengjie.modules.tmpfilerecord.service.dto;
import lombok.Data;
import java.sql.Timestamp;
import java.util.Date;
import java.util.List;
import me.zhengjie.annotation.Query;
/**
* @website https://el-admin.vip
* @author X
* @date 2020-10-15
**/
* @author X
* @website https://el-admin.vip
* @date 2020-10-15
**/
@Data
public class TempFileRecordQueryCriteria{
public class TempFileRecordQueryCriteria {
/** 精确 */
/**
*
*/
@Query
private Integer id;
/** 精确 */
/**
*
*/
@Query
private String ipAddrs;
/** 精确 */
/**
*
*/
@Query
private String verificationCode;
/** 精确 */
/**
*
*/
@Query
private Integer days;
/** 精确 */
/**
*
*/
@Query
private Integer fileStatus;
/**
*
*/
@Query
private Integer origin;
/**
* BETWEEN
*/
@Query(type = Query.Type.BETWEEN)
private List<Timestamp> gmtCreate;
}

@ -1,25 +1,28 @@
/*
* Copyright 2019-2020 Zheng Jie
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
* Copyright 2019-2020 Zheng Jie
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package me.zhengjie.modules.tmpfilerecord.service.impl;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.util.RandomUtil;
import cn.hutool.system.OsInfo;
import cn.hutool.system.SystemUtil;
import cn.hutool.core.date.DateUnit;
import cn.hutool.core.date.DateUtil;
import lombok.extern.slf4j.Slf4j;
import me.zhengjie.common.http.CommonResponse;
import me.zhengjie.common.http.ResponseCode;
import me.zhengjie.common.json.OnceLinkMsgJsonContent;
import me.zhengjie.exception.BadRequestException;
import me.zhengjie.modules.tmpfilerecord.domain.TempFileRecord;
import me.zhengjie.utils.*;
import lombok.RequiredArgsConstructor;
@ -29,26 +32,23 @@ import me.zhengjie.modules.tmpfilerecord.service.dto.TempFileRecordDto;
import me.zhengjie.modules.tmpfilerecord.service.dto.TempFileRecordQueryCriteria;
import me.zhengjie.modules.tmpfilerecord.service.mapstruct.TempFileRecordMapper;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
import org.springframework.web.multipart.MultipartFile;
import java.nio.file.Paths;
import java.util.List;
import java.util.Map;
import java.util.*;
import java.io.IOException;
import javax.servlet.http.HttpServletResponse;
import java.util.ArrayList;
import java.util.LinkedHashMap;
/**
* @website https://el-admin.vip
* @description
* @author X
* @date 2020-10-15
**/
* @author X
* @website https://el-admin.vip
* @description
* @date 2020-10-15
**/
@Service
@RequiredArgsConstructor
@Slf4j
@ -56,23 +56,28 @@ public class TempFileRecordServiceImpl implements TempFileRecordService {
private final TempFileRecordRepository tempFileRecordRepository;
private final TempFileRecordMapper tempFileRecordMapper;
/**
*
*/
@Value("${remote.link.address}")
private String remoteFileServerAddress;
@Override
public Map<String,Object> queryAll(TempFileRecordQueryCriteria criteria, Pageable pageable){
Page<TempFileRecord> page = tempFileRecordRepository.findAll((root, criteriaQuery, criteriaBuilder) -> QueryHelp.getPredicate(root,criteria,criteriaBuilder),pageable);
public Map<String, Object> queryAll(TempFileRecordQueryCriteria criteria, Pageable pageable) {
Page<TempFileRecord> page = tempFileRecordRepository.findAll((root, criteriaQuery, criteriaBuilder) -> QueryHelp.getPredicate(root, criteria, criteriaBuilder), pageable);
return PageUtil.toPage(page.map(tempFileRecordMapper::toDto));
}
@Override
public List<TempFileRecordDto> queryAll(TempFileRecordQueryCriteria criteria){
return tempFileRecordMapper.toDto(tempFileRecordRepository.findAll((root, criteriaQuery, criteriaBuilder) -> QueryHelp.getPredicate(root,criteria,criteriaBuilder)));
public List<TempFileRecordDto> queryAll(TempFileRecordQueryCriteria criteria) {
return tempFileRecordMapper.toDto(tempFileRecordRepository.findAll((root, criteriaQuery, criteriaBuilder) -> QueryHelp.getPredicate(root, criteria, criteriaBuilder)));
}
@Override
@Transactional
public TempFileRecordDto findById(Integer id) {
TempFileRecord tempFileRecord = tempFileRecordRepository.findById(id).orElseGet(TempFileRecord::new);
ValidationUtil.isNull(tempFileRecord.getId(),"TempFileRecord","id",id);
ValidationUtil.isNull(tempFileRecord.getId(), "TempFileRecord", "id", id);
return tempFileRecordMapper.toDto(tempFileRecord);
}
@ -86,7 +91,7 @@ public class TempFileRecordServiceImpl implements TempFileRecordService {
@Transactional(rollbackFor = Exception.class)
public void update(TempFileRecord resources) {
TempFileRecord tempFileRecord = tempFileRecordRepository.findById(resources.getId()).orElseGet(TempFileRecord::new);
ValidationUtil.isNull( tempFileRecord.getId(),"TempFileRecord","id",resources.getId());
ValidationUtil.isNull(tempFileRecord.getId(), "TempFileRecord", "id", resources.getId());
tempFileRecord.copy(resources);
tempFileRecordRepository.save(tempFileRecord);
}
@ -102,7 +107,7 @@ public class TempFileRecordServiceImpl implements TempFileRecordService {
public void download(List<TempFileRecordDto> all, HttpServletResponse response) throws IOException {
List<Map<String, Object>> list = new ArrayList<>();
for (TempFileRecordDto tempFileRecord : all) {
Map<String,Object> map = new LinkedHashMap<>();
Map<String, Object> map = new LinkedHashMap<>();
map.put("访问接口的ip地址记录", tempFileRecord.getIpAddrs());
map.put("文件生成地址", tempFileRecord.getFilePaths());
map.put("访问文件验证码", tempFileRecord.getVerificationCode());
@ -122,7 +127,7 @@ public class TempFileRecordServiceImpl implements TempFileRecordService {
@Override
public long batchUpdate(List<TempFileRecordDto> TempFileRecordDto) {
TempFileRecordDto.forEach(
each->{
each -> {
TempFileRecord tempFileRecord = new TempFileRecord();
BeanUtil.copyProperties(each, tempFileRecord);
update(tempFileRecord);

Loading…
Cancel
Save