From 27e7b45cc416bb558d922440646af7e6e844e0e7 Mon Sep 17 00:00:00 2001 From: zhizhi wu <2377881365@qq.com> Date: Fri, 4 Sep 2020 14:36:44 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E6=96=87=E4=BB=B6=E4=B8=8A=E4=BC=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/ccsens/mt/api/FileController.java | 84 +++ .../com/ccsens/mt/bean/po/CommonFile.java | 106 +++ .../ccsens/mt/bean/po/CommonFileExample.java | 711 ++++++++++++++++++ .../java/com/ccsens/mt/bean/vo/CompeteVo.java | 2 + .../java/com/ccsens/mt/bean/vo/FileVo.java | 44 ++ .../mt/persist/mapper/CommonFileMapper.java | 30 + .../com/ccsens/mt/service/FileService.java | 67 ++ .../com/ccsens/mt/service/IFileService.java | 32 + .../java/com/ccsens/mt/util/Constant.java | 6 +- .../resources/mapper_raw/CommonFileMapper.xml | 258 +++++++ .../java/com/ccsens/util/WebConstant.java | 1 + 11 files changed, 1338 insertions(+), 3 deletions(-) create mode 100644 mt/src/main/java/com/ccsens/mt/api/FileController.java create mode 100644 mt/src/main/java/com/ccsens/mt/bean/po/CommonFile.java create mode 100644 mt/src/main/java/com/ccsens/mt/bean/po/CommonFileExample.java create mode 100644 mt/src/main/java/com/ccsens/mt/bean/vo/FileVo.java create mode 100644 mt/src/main/java/com/ccsens/mt/persist/mapper/CommonFileMapper.java create mode 100644 mt/src/main/java/com/ccsens/mt/service/FileService.java create mode 100644 mt/src/main/java/com/ccsens/mt/service/IFileService.java create mode 100644 mt/src/main/resources/mapper_raw/CommonFileMapper.xml diff --git a/mt/src/main/java/com/ccsens/mt/api/FileController.java b/mt/src/main/java/com/ccsens/mt/api/FileController.java new file mode 100644 index 00000000..dfb13075 --- /dev/null +++ b/mt/src/main/java/com/ccsens/mt/api/FileController.java @@ -0,0 +1,84 @@ +package com.ccsens.mt.api; + +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONObject; +import com.ccsens.cloudutil.feign.TallFeignClient; +import com.ccsens.mt.bean.po.CommonFile; +import com.ccsens.mt.bean.vo.FileVo; +import com.ccsens.mt.service.IFileService; +import com.ccsens.mt.util.Constant; +import com.ccsens.util.*; +import com.ccsens.util.exception.BaseException; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiImplicitParams; +import io.swagger.annotations.ApiOperation; +import lombok.extern.slf4j.Slf4j; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import javax.servlet.http.Part; +import java.util.List; + +/** + * @description: + * @author: whj + * @time: 2020/7/17 11:36 + */ +@Slf4j +@Api(tags = "文件") +@RestController +@RequestMapping("/file") +public class FileController { + + @Resource + private IFileService fileService; + @Resource + private TallFeignClient tallFeignClient; + + + @ApiOperation(value = "上传交付物文件") + @ApiImplicitParams({ + }) + @RequestMapping(value = "upload", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) + public JsonResponse upload(HttpServletRequest request, @RequestParam() List files) throws Exception { + log.info("文件上传:{}", files); + + String authHeader = request.getHeader(WebConstant.HEADER_KEY_TOKEN); + JsonResponse tokenRes = tallFeignClient.getUserIdByToken(authHeader); + log.info("{}查询userId返回:{}", authHeader, tokenRes); + if (tokenRes.getCode().intValue() != CodeEnum.SUCCESS.getCode().intValue()) { + return tokenRes; + } + JSONObject json = JSON.parseObject(JSON.toJSONString(tokenRes.getData())); + Long userId = json.getLong("id"); + String dir = PropUtil.path + Constant.File.UPLOAD_URL; + List fileVos = fileService.saveFile(dir, files, userId); + List vos = FileVo.Upload.transFilePo(fileVos); + log.info("文件上传返回:{}", vos); + return JsonResponse.newInstance().ok(vos); + } + + @ApiOperation(value = "文件下载") + @GetMapping(value = "download/{id}") + public void download(HttpServletResponse response, @PathVariable("id")Long id) throws Exception { + log.info("文件下载:{}", id); + CommonFile file = fileService.getById(id); + log.info("文件信息;{}", file); + if (file == null) { + throw new BaseException(CodeEnum.FILE_NOT_FOUND); + } + UploadFileUtil_Servlet3.download(response, file.getLocation(), file.getFileName()); + log.info("文件下载结束"); + } + + @ApiOperation(value = "文件下载, 指定路径") + @GetMapping(value = "download/know") + public void downloadFile(HttpServletResponse response, String path ) throws Exception { + log.info("文件下载, 指定路径:{}", path); + UploadFileUtil_Servlet3.download(response, path, path.substring(path.lastIndexOf(java.io.File.separator) + 1)); + log.info("文件下载结束"); + } + +} diff --git a/mt/src/main/java/com/ccsens/mt/bean/po/CommonFile.java b/mt/src/main/java/com/ccsens/mt/bean/po/CommonFile.java new file mode 100644 index 00000000..0a92ad83 --- /dev/null +++ b/mt/src/main/java/com/ccsens/mt/bean/po/CommonFile.java @@ -0,0 +1,106 @@ +package com.ccsens.mt.bean.po; + +import java.io.Serializable; +import java.util.Date; + +public class CommonFile implements Serializable { + private Long id; + + private Long userId; + + private String fileName; + + private String location; + + private String visitLocation; + + private Date createdAt; + + private Date updatedAt; + + private Byte recStatus; + + private static final long serialVersionUID = 1L; + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public Long getUserId() { + return userId; + } + + public void setUserId(Long userId) { + this.userId = userId; + } + + public String getFileName() { + return fileName; + } + + public void setFileName(String fileName) { + this.fileName = fileName == null ? null : fileName.trim(); + } + + public String getLocation() { + return location; + } + + public void setLocation(String location) { + this.location = location == null ? null : location.trim(); + } + + public String getVisitLocation() { + return visitLocation; + } + + public void setVisitLocation(String visitLocation) { + this.visitLocation = visitLocation == null ? null : visitLocation.trim(); + } + + public Date getCreatedAt() { + return createdAt; + } + + public void setCreatedAt(Date createdAt) { + this.createdAt = createdAt; + } + + public Date getUpdatedAt() { + return updatedAt; + } + + public void setUpdatedAt(Date updatedAt) { + this.updatedAt = updatedAt; + } + + public Byte getRecStatus() { + return recStatus; + } + + public void setRecStatus(Byte recStatus) { + this.recStatus = recStatus; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append(getClass().getSimpleName()); + sb.append(" ["); + sb.append("Hash = ").append(hashCode()); + sb.append(", id=").append(id); + sb.append(", userId=").append(userId); + sb.append(", fileName=").append(fileName); + sb.append(", location=").append(location); + sb.append(", visitLocation=").append(visitLocation); + sb.append(", createdAt=").append(createdAt); + sb.append(", updatedAt=").append(updatedAt); + sb.append(", recStatus=").append(recStatus); + sb.append("]"); + return sb.toString(); + } +} \ No newline at end of file diff --git a/mt/src/main/java/com/ccsens/mt/bean/po/CommonFileExample.java b/mt/src/main/java/com/ccsens/mt/bean/po/CommonFileExample.java new file mode 100644 index 00000000..94f7eec0 --- /dev/null +++ b/mt/src/main/java/com/ccsens/mt/bean/po/CommonFileExample.java @@ -0,0 +1,711 @@ +package com.ccsens.mt.bean.po; + +import java.util.ArrayList; +import java.util.Date; +import java.util.List; + +public class CommonFileExample { + protected String orderByClause; + + protected boolean distinct; + + protected List oredCriteria; + + public CommonFileExample() { + oredCriteria = new ArrayList(); + } + + public void setOrderByClause(String orderByClause) { + this.orderByClause = orderByClause; + } + + public String getOrderByClause() { + return orderByClause; + } + + public void setDistinct(boolean distinct) { + this.distinct = distinct; + } + + public boolean isDistinct() { + return distinct; + } + + public List getOredCriteria() { + return oredCriteria; + } + + public void or(Criteria criteria) { + oredCriteria.add(criteria); + } + + public Criteria or() { + Criteria criteria = createCriteriaInternal(); + oredCriteria.add(criteria); + return criteria; + } + + public Criteria createCriteria() { + Criteria criteria = createCriteriaInternal(); + if (oredCriteria.size() == 0) { + oredCriteria.add(criteria); + } + return criteria; + } + + protected Criteria createCriteriaInternal() { + Criteria criteria = new Criteria(); + return criteria; + } + + public void clear() { + oredCriteria.clear(); + orderByClause = null; + distinct = false; + } + + protected abstract static class GeneratedCriteria { + protected List criteria; + + protected GeneratedCriteria() { + super(); + criteria = new ArrayList(); + } + + public boolean isValid() { + return criteria.size() > 0; + } + + public List getAllCriteria() { + return criteria; + } + + public List getCriteria() { + return criteria; + } + + protected void addCriterion(String condition) { + if (condition == null) { + throw new RuntimeException("Value for condition cannot be null"); + } + criteria.add(new Criterion(condition)); + } + + protected void addCriterion(String condition, Object value, String property) { + if (value == null) { + throw new RuntimeException("Value for " + property + " cannot be null"); + } + criteria.add(new Criterion(condition, value)); + } + + protected void addCriterion(String condition, Object value1, Object value2, String property) { + if (value1 == null || value2 == null) { + throw new RuntimeException("Between values for " + property + " cannot be null"); + } + criteria.add(new Criterion(condition, value1, value2)); + } + + public Criteria andIdIsNull() { + addCriterion("id is null"); + return (Criteria) this; + } + + public Criteria andIdIsNotNull() { + addCriterion("id is not null"); + return (Criteria) this; + } + + public Criteria andIdEqualTo(Long value) { + addCriterion("id =", value, "id"); + return (Criteria) this; + } + + public Criteria andIdNotEqualTo(Long value) { + addCriterion("id <>", value, "id"); + return (Criteria) this; + } + + public Criteria andIdGreaterThan(Long value) { + addCriterion("id >", value, "id"); + return (Criteria) this; + } + + public Criteria andIdGreaterThanOrEqualTo(Long value) { + addCriterion("id >=", value, "id"); + return (Criteria) this; + } + + public Criteria andIdLessThan(Long value) { + addCriterion("id <", value, "id"); + return (Criteria) this; + } + + public Criteria andIdLessThanOrEqualTo(Long value) { + addCriterion("id <=", value, "id"); + return (Criteria) this; + } + + public Criteria andIdIn(List values) { + addCriterion("id in", values, "id"); + return (Criteria) this; + } + + public Criteria andIdNotIn(List values) { + addCriterion("id not in", values, "id"); + return (Criteria) this; + } + + public Criteria andIdBetween(Long value1, Long value2) { + addCriterion("id between", value1, value2, "id"); + return (Criteria) this; + } + + public Criteria andIdNotBetween(Long value1, Long value2) { + addCriterion("id not between", value1, value2, "id"); + return (Criteria) this; + } + + public Criteria andUserIdIsNull() { + addCriterion("user_id is null"); + return (Criteria) this; + } + + public Criteria andUserIdIsNotNull() { + addCriterion("user_id is not null"); + return (Criteria) this; + } + + public Criteria andUserIdEqualTo(Long value) { + addCriterion("user_id =", value, "userId"); + return (Criteria) this; + } + + public Criteria andUserIdNotEqualTo(Long value) { + addCriterion("user_id <>", value, "userId"); + return (Criteria) this; + } + + public Criteria andUserIdGreaterThan(Long value) { + addCriterion("user_id >", value, "userId"); + return (Criteria) this; + } + + public Criteria andUserIdGreaterThanOrEqualTo(Long value) { + addCriterion("user_id >=", value, "userId"); + return (Criteria) this; + } + + public Criteria andUserIdLessThan(Long value) { + addCriterion("user_id <", value, "userId"); + return (Criteria) this; + } + + public Criteria andUserIdLessThanOrEqualTo(Long value) { + addCriterion("user_id <=", value, "userId"); + return (Criteria) this; + } + + public Criteria andUserIdIn(List values) { + addCriterion("user_id in", values, "userId"); + return (Criteria) this; + } + + public Criteria andUserIdNotIn(List values) { + addCriterion("user_id not in", values, "userId"); + return (Criteria) this; + } + + public Criteria andUserIdBetween(Long value1, Long value2) { + addCriterion("user_id between", value1, value2, "userId"); + return (Criteria) this; + } + + public Criteria andUserIdNotBetween(Long value1, Long value2) { + addCriterion("user_id not between", value1, value2, "userId"); + return (Criteria) this; + } + + public Criteria andFileNameIsNull() { + addCriterion("file_name is null"); + return (Criteria) this; + } + + public Criteria andFileNameIsNotNull() { + addCriterion("file_name is not null"); + return (Criteria) this; + } + + public Criteria andFileNameEqualTo(String value) { + addCriterion("file_name =", value, "fileName"); + return (Criteria) this; + } + + public Criteria andFileNameNotEqualTo(String value) { + addCriterion("file_name <>", value, "fileName"); + return (Criteria) this; + } + + public Criteria andFileNameGreaterThan(String value) { + addCriterion("file_name >", value, "fileName"); + return (Criteria) this; + } + + public Criteria andFileNameGreaterThanOrEqualTo(String value) { + addCriterion("file_name >=", value, "fileName"); + return (Criteria) this; + } + + public Criteria andFileNameLessThan(String value) { + addCriterion("file_name <", value, "fileName"); + return (Criteria) this; + } + + public Criteria andFileNameLessThanOrEqualTo(String value) { + addCriterion("file_name <=", value, "fileName"); + return (Criteria) this; + } + + public Criteria andFileNameLike(String value) { + addCriterion("file_name like", value, "fileName"); + return (Criteria) this; + } + + public Criteria andFileNameNotLike(String value) { + addCriterion("file_name not like", value, "fileName"); + return (Criteria) this; + } + + public Criteria andFileNameIn(List values) { + addCriterion("file_name in", values, "fileName"); + return (Criteria) this; + } + + public Criteria andFileNameNotIn(List values) { + addCriterion("file_name not in", values, "fileName"); + return (Criteria) this; + } + + public Criteria andFileNameBetween(String value1, String value2) { + addCriterion("file_name between", value1, value2, "fileName"); + return (Criteria) this; + } + + public Criteria andFileNameNotBetween(String value1, String value2) { + addCriterion("file_name not between", value1, value2, "fileName"); + return (Criteria) this; + } + + public Criteria andLocationIsNull() { + addCriterion("location is null"); + return (Criteria) this; + } + + public Criteria andLocationIsNotNull() { + addCriterion("location is not null"); + return (Criteria) this; + } + + public Criteria andLocationEqualTo(String value) { + addCriterion("location =", value, "location"); + return (Criteria) this; + } + + public Criteria andLocationNotEqualTo(String value) { + addCriterion("location <>", value, "location"); + return (Criteria) this; + } + + public Criteria andLocationGreaterThan(String value) { + addCriterion("location >", value, "location"); + return (Criteria) this; + } + + public Criteria andLocationGreaterThanOrEqualTo(String value) { + addCriterion("location >=", value, "location"); + return (Criteria) this; + } + + public Criteria andLocationLessThan(String value) { + addCriterion("location <", value, "location"); + return (Criteria) this; + } + + public Criteria andLocationLessThanOrEqualTo(String value) { + addCriterion("location <=", value, "location"); + return (Criteria) this; + } + + public Criteria andLocationLike(String value) { + addCriterion("location like", value, "location"); + return (Criteria) this; + } + + public Criteria andLocationNotLike(String value) { + addCriterion("location not like", value, "location"); + return (Criteria) this; + } + + public Criteria andLocationIn(List values) { + addCriterion("location in", values, "location"); + return (Criteria) this; + } + + public Criteria andLocationNotIn(List values) { + addCriterion("location not in", values, "location"); + return (Criteria) this; + } + + public Criteria andLocationBetween(String value1, String value2) { + addCriterion("location between", value1, value2, "location"); + return (Criteria) this; + } + + public Criteria andLocationNotBetween(String value1, String value2) { + addCriterion("location not between", value1, value2, "location"); + return (Criteria) this; + } + + public Criteria andVisitLocationIsNull() { + addCriterion("visit_location is null"); + return (Criteria) this; + } + + public Criteria andVisitLocationIsNotNull() { + addCriterion("visit_location is not null"); + return (Criteria) this; + } + + public Criteria andVisitLocationEqualTo(String value) { + addCriterion("visit_location =", value, "visitLocation"); + return (Criteria) this; + } + + public Criteria andVisitLocationNotEqualTo(String value) { + addCriterion("visit_location <>", value, "visitLocation"); + return (Criteria) this; + } + + public Criteria andVisitLocationGreaterThan(String value) { + addCriterion("visit_location >", value, "visitLocation"); + return (Criteria) this; + } + + public Criteria andVisitLocationGreaterThanOrEqualTo(String value) { + addCriterion("visit_location >=", value, "visitLocation"); + return (Criteria) this; + } + + public Criteria andVisitLocationLessThan(String value) { + addCriterion("visit_location <", value, "visitLocation"); + return (Criteria) this; + } + + public Criteria andVisitLocationLessThanOrEqualTo(String value) { + addCriterion("visit_location <=", value, "visitLocation"); + return (Criteria) this; + } + + public Criteria andVisitLocationLike(String value) { + addCriterion("visit_location like", value, "visitLocation"); + return (Criteria) this; + } + + public Criteria andVisitLocationNotLike(String value) { + addCriterion("visit_location not like", value, "visitLocation"); + return (Criteria) this; + } + + public Criteria andVisitLocationIn(List values) { + addCriterion("visit_location in", values, "visitLocation"); + return (Criteria) this; + } + + public Criteria andVisitLocationNotIn(List values) { + addCriterion("visit_location not in", values, "visitLocation"); + return (Criteria) this; + } + + public Criteria andVisitLocationBetween(String value1, String value2) { + addCriterion("visit_location between", value1, value2, "visitLocation"); + return (Criteria) this; + } + + public Criteria andVisitLocationNotBetween(String value1, String value2) { + addCriterion("visit_location not between", value1, value2, "visitLocation"); + return (Criteria) this; + } + + public Criteria andCreatedAtIsNull() { + addCriterion("created_at is null"); + return (Criteria) this; + } + + public Criteria andCreatedAtIsNotNull() { + addCriterion("created_at is not null"); + return (Criteria) this; + } + + public Criteria andCreatedAtEqualTo(Date value) { + addCriterion("created_at =", value, "createdAt"); + return (Criteria) this; + } + + public Criteria andCreatedAtNotEqualTo(Date value) { + addCriterion("created_at <>", value, "createdAt"); + return (Criteria) this; + } + + public Criteria andCreatedAtGreaterThan(Date value) { + addCriterion("created_at >", value, "createdAt"); + return (Criteria) this; + } + + public Criteria andCreatedAtGreaterThanOrEqualTo(Date value) { + addCriterion("created_at >=", value, "createdAt"); + return (Criteria) this; + } + + public Criteria andCreatedAtLessThan(Date value) { + addCriterion("created_at <", value, "createdAt"); + return (Criteria) this; + } + + public Criteria andCreatedAtLessThanOrEqualTo(Date value) { + addCriterion("created_at <=", value, "createdAt"); + return (Criteria) this; + } + + public Criteria andCreatedAtIn(List values) { + addCriterion("created_at in", values, "createdAt"); + return (Criteria) this; + } + + public Criteria andCreatedAtNotIn(List values) { + addCriterion("created_at not in", values, "createdAt"); + return (Criteria) this; + } + + public Criteria andCreatedAtBetween(Date value1, Date value2) { + addCriterion("created_at between", value1, value2, "createdAt"); + return (Criteria) this; + } + + public Criteria andCreatedAtNotBetween(Date value1, Date value2) { + addCriterion("created_at not between", value1, value2, "createdAt"); + return (Criteria) this; + } + + public Criteria andUpdatedAtIsNull() { + addCriterion("updated_at is null"); + return (Criteria) this; + } + + public Criteria andUpdatedAtIsNotNull() { + addCriterion("updated_at is not null"); + return (Criteria) this; + } + + public Criteria andUpdatedAtEqualTo(Date value) { + addCriterion("updated_at =", value, "updatedAt"); + return (Criteria) this; + } + + public Criteria andUpdatedAtNotEqualTo(Date value) { + addCriterion("updated_at <>", value, "updatedAt"); + return (Criteria) this; + } + + public Criteria andUpdatedAtGreaterThan(Date value) { + addCriterion("updated_at >", value, "updatedAt"); + return (Criteria) this; + } + + public Criteria andUpdatedAtGreaterThanOrEqualTo(Date value) { + addCriterion("updated_at >=", value, "updatedAt"); + return (Criteria) this; + } + + public Criteria andUpdatedAtLessThan(Date value) { + addCriterion("updated_at <", value, "updatedAt"); + return (Criteria) this; + } + + public Criteria andUpdatedAtLessThanOrEqualTo(Date value) { + addCriterion("updated_at <=", value, "updatedAt"); + return (Criteria) this; + } + + public Criteria andUpdatedAtIn(List values) { + addCriterion("updated_at in", values, "updatedAt"); + return (Criteria) this; + } + + public Criteria andUpdatedAtNotIn(List values) { + addCriterion("updated_at not in", values, "updatedAt"); + return (Criteria) this; + } + + public Criteria andUpdatedAtBetween(Date value1, Date value2) { + addCriterion("updated_at between", value1, value2, "updatedAt"); + return (Criteria) this; + } + + public Criteria andUpdatedAtNotBetween(Date value1, Date value2) { + addCriterion("updated_at not between", value1, value2, "updatedAt"); + return (Criteria) this; + } + + public Criteria andRecStatusIsNull() { + addCriterion("rec_status is null"); + return (Criteria) this; + } + + public Criteria andRecStatusIsNotNull() { + addCriterion("rec_status is not null"); + return (Criteria) this; + } + + public Criteria andRecStatusEqualTo(Byte value) { + addCriterion("rec_status =", value, "recStatus"); + return (Criteria) this; + } + + public Criteria andRecStatusNotEqualTo(Byte value) { + addCriterion("rec_status <>", value, "recStatus"); + return (Criteria) this; + } + + public Criteria andRecStatusGreaterThan(Byte value) { + addCriterion("rec_status >", value, "recStatus"); + return (Criteria) this; + } + + public Criteria andRecStatusGreaterThanOrEqualTo(Byte value) { + addCriterion("rec_status >=", value, "recStatus"); + return (Criteria) this; + } + + public Criteria andRecStatusLessThan(Byte value) { + addCriterion("rec_status <", value, "recStatus"); + return (Criteria) this; + } + + public Criteria andRecStatusLessThanOrEqualTo(Byte value) { + addCriterion("rec_status <=", value, "recStatus"); + return (Criteria) this; + } + + public Criteria andRecStatusIn(List values) { + addCriterion("rec_status in", values, "recStatus"); + return (Criteria) this; + } + + public Criteria andRecStatusNotIn(List values) { + addCriterion("rec_status not in", values, "recStatus"); + return (Criteria) this; + } + + public Criteria andRecStatusBetween(Byte value1, Byte value2) { + addCriterion("rec_status between", value1, value2, "recStatus"); + return (Criteria) this; + } + + public Criteria andRecStatusNotBetween(Byte value1, Byte value2) { + addCriterion("rec_status not between", value1, value2, "recStatus"); + return (Criteria) this; + } + } + + public static class Criteria extends GeneratedCriteria { + + protected Criteria() { + super(); + } + } + + public static class Criterion { + private String condition; + + private Object value; + + private Object secondValue; + + private boolean noValue; + + private boolean singleValue; + + private boolean betweenValue; + + private boolean listValue; + + private String typeHandler; + + public String getCondition() { + return condition; + } + + public Object getValue() { + return value; + } + + public Object getSecondValue() { + return secondValue; + } + + public boolean isNoValue() { + return noValue; + } + + public boolean isSingleValue() { + return singleValue; + } + + public boolean isBetweenValue() { + return betweenValue; + } + + public boolean isListValue() { + return listValue; + } + + public String getTypeHandler() { + return typeHandler; + } + + protected Criterion(String condition) { + super(); + this.condition = condition; + this.typeHandler = null; + this.noValue = true; + } + + protected Criterion(String condition, Object value, String typeHandler) { + super(); + this.condition = condition; + this.value = value; + this.typeHandler = typeHandler; + if (value instanceof List) { + this.listValue = true; + } else { + this.singleValue = true; + } + } + + protected Criterion(String condition, Object value) { + this(condition, value, null); + } + + protected Criterion(String condition, Object value, Object secondValue, String typeHandler) { + super(); + this.condition = condition; + this.value = value; + this.secondValue = secondValue; + this.typeHandler = typeHandler; + this.betweenValue = true; + } + + protected Criterion(String condition, Object value, Object secondValue) { + this(condition, value, secondValue, null); + } + } +} \ No newline at end of file diff --git a/mt/src/main/java/com/ccsens/mt/bean/vo/CompeteVo.java b/mt/src/main/java/com/ccsens/mt/bean/vo/CompeteVo.java index b21d9494..e1ed69b5 100644 --- a/mt/src/main/java/com/ccsens/mt/bean/vo/CompeteVo.java +++ b/mt/src/main/java/com/ccsens/mt/bean/vo/CompeteVo.java @@ -155,6 +155,8 @@ public class CompeteVo { this.memberNums = members.size(); this.members = members; } + + } @Data diff --git a/mt/src/main/java/com/ccsens/mt/bean/vo/FileVo.java b/mt/src/main/java/com/ccsens/mt/bean/vo/FileVo.java new file mode 100644 index 00000000..d04843de --- /dev/null +++ b/mt/src/main/java/com/ccsens/mt/bean/vo/FileVo.java @@ -0,0 +1,44 @@ +package com.ccsens.mt.bean.vo; + +import com.ccsens.mt.bean.po.CommonFile; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.ArrayList; +import java.util.List; + +/** + * @description: 文件 + * @author: whj + * @time: 2020/7/17 11:39 + */ +public class FileVo { + @ApiModel("文件上传") + @Data + public static class Upload{ + @ApiModelProperty("id") + private Long id; + @ApiModelProperty("文件名") + private String name; + @ApiModelProperty("访问路径") + private String visitUrl; + + /** + * 参数转化 + * @param files 文件对象 + * @return 文件访问 + */ + public static List transFilePo(List files) { + List vos = new ArrayList<>(); + files.forEach(file->{ + Upload vo = new Upload(); + vo.setId(file.getId()); + vo.setName(file.getFileName()); + vo.setVisitUrl(file.getVisitLocation()); + vos.add(vo); + }); + return vos; + } + } +} diff --git a/mt/src/main/java/com/ccsens/mt/persist/mapper/CommonFileMapper.java b/mt/src/main/java/com/ccsens/mt/persist/mapper/CommonFileMapper.java new file mode 100644 index 00000000..4f30a7ca --- /dev/null +++ b/mt/src/main/java/com/ccsens/mt/persist/mapper/CommonFileMapper.java @@ -0,0 +1,30 @@ +package com.ccsens.mt.persist.mapper; + +import com.ccsens.mt.bean.po.CommonFile; +import com.ccsens.mt.bean.po.CommonFileExample; +import java.util.List; +import org.apache.ibatis.annotations.Param; + +public interface CommonFileMapper { + long countByExample(CommonFileExample example); + + int deleteByExample(CommonFileExample example); + + int deleteByPrimaryKey(Long id); + + int insert(CommonFile record); + + int insertSelective(CommonFile record); + + List selectByExample(CommonFileExample example); + + CommonFile selectByPrimaryKey(Long id); + + int updateByExampleSelective(@Param("record") CommonFile record, @Param("example") CommonFileExample example); + + int updateByExample(@Param("record") CommonFile record, @Param("example") CommonFileExample example); + + int updateByPrimaryKeySelective(CommonFile record); + + int updateByPrimaryKey(CommonFile record); +} \ No newline at end of file diff --git a/mt/src/main/java/com/ccsens/mt/service/FileService.java b/mt/src/main/java/com/ccsens/mt/service/FileService.java new file mode 100644 index 00000000..5fee1229 --- /dev/null +++ b/mt/src/main/java/com/ccsens/mt/service/FileService.java @@ -0,0 +1,67 @@ +package com.ccsens.mt.service; + +import cn.hutool.core.lang.Snowflake; +import com.ccsens.mt.bean.po.CommonFile; +import com.ccsens.mt.persist.mapper.CommonFileMapper; +import com.ccsens.util.NotSupportedFileTypeException; +import com.ccsens.util.PropUtil; +import com.ccsens.util.UploadFileUtil_Servlet3; +import com.ccsens.util.WebConstant; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Propagation; +import org.springframework.transaction.annotation.Transactional; + +import javax.annotation.Resource; +import javax.servlet.http.Part; +import java.io.IOException; +import java.util.ArrayList; +import java.util.List; + +/** + * @description: 文件操作 + * @author: whj + * @time: 2020/7/17 14:25 + */ +@Slf4j +@Service +@Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class) +public class FileService implements IFileService { + + @Resource + private CommonFileMapper commonFileMapper; + @Resource + private Snowflake snowflake; + + + @Override + public List saveFile(String dir, List files, Long userId) throws IOException, NotSupportedFileTypeException { + List fileList = new ArrayList<>(); + String allowedExt = WebConstant.IMG_TYPE + "," + WebConstant.Wps.FILE_TYPE_ALL; + for (Part file: files) { + log.info("文件名:{}", file.getSubmittedFileName()); + String path = UploadFileUtil_Servlet3.uploadFile(file, allowedExt, dir); + CommonFile fileDo = new CommonFile(); + String name = file.getSubmittedFileName(); + fileDo.setId(snowflake.nextId()); + fileDo.setFileName(name); + fileDo.setLocation(dir + java.io.File.separator + path); + fileDo.setUserId(userId); + if (WebConstant.IMG_TYPE.contains(name.substring(name.lastIndexOf(".") + 1))) { + fileDo.setVisitLocation(PropUtil.imgDomain + path); + } else { + fileDo.setVisitLocation(PropUtil.domain + "file/download/"+fileDo.getId()); + } + commonFileMapper.insertSelective(fileDo); + log.info("保存文件:{}", fileDo); + fileList.add(fileDo); + } + return fileList; + } + + + @Override + public CommonFile getById(Long id) { + return commonFileMapper.selectByPrimaryKey(id); + } +} diff --git a/mt/src/main/java/com/ccsens/mt/service/IFileService.java b/mt/src/main/java/com/ccsens/mt/service/IFileService.java new file mode 100644 index 00000000..c2a33153 --- /dev/null +++ b/mt/src/main/java/com/ccsens/mt/service/IFileService.java @@ -0,0 +1,32 @@ +package com.ccsens.mt.service; + +import com.ccsens.mt.bean.po.CommonFile; +import com.ccsens.util.NotSupportedFileTypeException; + +import javax.servlet.http.Part; +import java.io.IOException; +import java.util.List; + +/** + * 文件操作 + * @author whj + */ +public interface IFileService { + /*** + * 批量上传文件 + * @param dir 上级目录 + * @param files 文件 + * @param userId 用户id + * @return 文件信息 + * @throws IOException 文件存储异常 + * @throws NotSupportedFileTypeException 文件存储异常 + */ + List saveFile(String dir, List files, Long userId) throws IOException, NotSupportedFileTypeException; + + /** + * 根据ID查询数据 + * @param id id + * @return 文件 + */ + CommonFile getById(Long id); +} diff --git a/mt/src/main/java/com/ccsens/mt/util/Constant.java b/mt/src/main/java/com/ccsens/mt/util/Constant.java index 51e556c8..91af8882 100644 --- a/mt/src/main/java/com/ccsens/mt/util/Constant.java +++ b/mt/src/main/java/com/ccsens/mt/util/Constant.java @@ -42,9 +42,9 @@ public class Constant { public final static byte TEAM_NO = 0; public final static byte TEAM_YES = 1; public final static int TIWN_MAX_NUM = 3; + } - - - + public static class File{ + public static final String UPLOAD_URL = "upload"; } } diff --git a/mt/src/main/resources/mapper_raw/CommonFileMapper.xml b/mt/src/main/resources/mapper_raw/CommonFileMapper.xml new file mode 100644 index 00000000..eb2e9080 --- /dev/null +++ b/mt/src/main/resources/mapper_raw/CommonFileMapper.xml @@ -0,0 +1,258 @@ + + + + + + + + + + + + + + + + + + + + + + and ${criterion.condition} + + + and ${criterion.condition} #{criterion.value} + + + and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} + + + and ${criterion.condition} + + #{listItem} + + + + + + + + + + + + + + + + + + and ${criterion.condition} + + + and ${criterion.condition} #{criterion.value} + + + and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} + + + and ${criterion.condition} + + #{listItem} + + + + + + + + + + + id, user_id, file_name, location, visit_location, created_at, updated_at, rec_status + + + + + delete from t_common_file + where id = #{id,jdbcType=BIGINT} + + + delete from t_common_file + + + + + + insert into t_common_file (id, user_id, file_name, + location, visit_location, created_at, + updated_at, rec_status) + values (#{id,jdbcType=BIGINT}, #{userId,jdbcType=BIGINT}, #{fileName,jdbcType=VARCHAR}, + #{location,jdbcType=VARCHAR}, #{visitLocation,jdbcType=VARCHAR}, #{createdAt,jdbcType=TIMESTAMP}, + #{updatedAt,jdbcType=TIMESTAMP}, #{recStatus,jdbcType=TINYINT}) + + + insert into t_common_file + + + id, + + + user_id, + + + file_name, + + + location, + + + visit_location, + + + created_at, + + + updated_at, + + + rec_status, + + + + + #{id,jdbcType=BIGINT}, + + + #{userId,jdbcType=BIGINT}, + + + #{fileName,jdbcType=VARCHAR}, + + + #{location,jdbcType=VARCHAR}, + + + #{visitLocation,jdbcType=VARCHAR}, + + + #{createdAt,jdbcType=TIMESTAMP}, + + + #{updatedAt,jdbcType=TIMESTAMP}, + + + #{recStatus,jdbcType=TINYINT}, + + + + + + update t_common_file + + + id = #{record.id,jdbcType=BIGINT}, + + + user_id = #{record.userId,jdbcType=BIGINT}, + + + file_name = #{record.fileName,jdbcType=VARCHAR}, + + + location = #{record.location,jdbcType=VARCHAR}, + + + visit_location = #{record.visitLocation,jdbcType=VARCHAR}, + + + created_at = #{record.createdAt,jdbcType=TIMESTAMP}, + + + updated_at = #{record.updatedAt,jdbcType=TIMESTAMP}, + + + rec_status = #{record.recStatus,jdbcType=TINYINT}, + + + + + + + + update t_common_file + set id = #{record.id,jdbcType=BIGINT}, + user_id = #{record.userId,jdbcType=BIGINT}, + file_name = #{record.fileName,jdbcType=VARCHAR}, + location = #{record.location,jdbcType=VARCHAR}, + visit_location = #{record.visitLocation,jdbcType=VARCHAR}, + created_at = #{record.createdAt,jdbcType=TIMESTAMP}, + updated_at = #{record.updatedAt,jdbcType=TIMESTAMP}, + rec_status = #{record.recStatus,jdbcType=TINYINT} + + + + + + update t_common_file + + + user_id = #{userId,jdbcType=BIGINT}, + + + file_name = #{fileName,jdbcType=VARCHAR}, + + + location = #{location,jdbcType=VARCHAR}, + + + visit_location = #{visitLocation,jdbcType=VARCHAR}, + + + created_at = #{createdAt,jdbcType=TIMESTAMP}, + + + updated_at = #{updatedAt,jdbcType=TIMESTAMP}, + + + rec_status = #{recStatus,jdbcType=TINYINT}, + + + where id = #{id,jdbcType=BIGINT} + + + update t_common_file + set user_id = #{userId,jdbcType=BIGINT}, + file_name = #{fileName,jdbcType=VARCHAR}, + location = #{location,jdbcType=VARCHAR}, + visit_location = #{visitLocation,jdbcType=VARCHAR}, + created_at = #{createdAt,jdbcType=TIMESTAMP}, + updated_at = #{updatedAt,jdbcType=TIMESTAMP}, + rec_status = #{recStatus,jdbcType=TINYINT} + where id = #{id,jdbcType=BIGINT} + + \ No newline at end of file diff --git a/util/src/main/java/com/ccsens/util/WebConstant.java b/util/src/main/java/com/ccsens/util/WebConstant.java index 0e78721e..085e12b6 100644 --- a/util/src/main/java/com/ccsens/util/WebConstant.java +++ b/util/src/main/java/com/ccsens/util/WebConstant.java @@ -11,6 +11,7 @@ public class WebConstant { public static final byte STATUS_EXIT = 0; /**数据已删除*/ public static final byte STATUS_DELETE = 1; + public static final String IMG_TYPE = "bmp,jpg,png,tif,gif,pcx,tga,exif,fpx,svg,psd,cdr,pcd,dxf,ufo,eps,ai,raw,WMF,webp"; /**属性名*/ public static class Field{ From e570931ce82dd1b766ca22bab835fda6f3183670 Mon Sep 17 00:00:00 2001 From: zhizhi wu <2377881365@qq.com> Date: Fri, 4 Sep 2020 16:43:07 +0800 Subject: [PATCH 2/2] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E5=85=AC=E5=8F=B8?= =?UTF-8?q?=E5=90=8D=E6=97=B6=E6=B7=BB=E5=8A=A0=E7=BC=93=E5=AD=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mt/src/main/java/com/ccsens/mt/service/CompeteService.java | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/mt/src/main/java/com/ccsens/mt/service/CompeteService.java b/mt/src/main/java/com/ccsens/mt/service/CompeteService.java index f950a8b1..873d5c78 100644 --- a/mt/src/main/java/com/ccsens/mt/service/CompeteService.java +++ b/mt/src/main/java/com/ccsens/mt/service/CompeteService.java @@ -144,6 +144,12 @@ public class CompeteService implements ICompeteService{ company.setType((byte) competePlayerInfo.getType()); company.setName(competePlayerInfo.getCompanyName()); competeCompanyMapper.insertSelective(company); + //更新缓存 + String key = competePlayerInfo.getType() + Constant.Redis.COMPETE_COMPANY; + CompeteVo.CompeteCompany competeCompany = new CompeteVo.CompeteCompany(); + competeCompany.setGroupId(company.getId()); + competeCompany.setGroupName(company.getName()); + redisUtil.lSet(key,competeCompany,Constant.Redis.COMPETE_COMPANY_TIME); }else { company = companyList.get(0); }