Commit 5daae7e8 authored by 李灿灿's avatar 李灿灿

订单添加回复记录支持多文件上传

parent 56e2dc2d
...@@ -114,7 +114,7 @@ public class OrderController { ...@@ -114,7 +114,7 @@ public class OrderController {
*/ */
@Schema(description = "添加回复") @Schema(description = "添加回复")
@PostMapping(value = "/uploadReplyEnclosure") @PostMapping(value = "/uploadReplyEnclosure")
public R uploadReplyEnclosure(@RequestBody MultipartFile file, String filePath, String replyContent,String orderNo) throws IOException { public R uploadReplyEnclosure(@RequestBody MultipartFile[] file, String filePath, String replyContent,String orderNo) throws IOException {
return tOrderService.uploadReplyEnclosure(file, filePath,replyContent,orderNo); return tOrderService.uploadReplyEnclosure(file, filePath,replyContent,orderNo);
} }
......
...@@ -80,7 +80,7 @@ public interface TOrderService extends IService<TOrder> { ...@@ -80,7 +80,7 @@ public interface TOrderService extends IService<TOrder> {
* @return {@link R} * @return {@link R}
* @throws IOException * @throws IOException
*/ */
R uploadReplyEnclosure(MultipartFile file, String filePath, String replyContent, String orderNo) throws IOException; R uploadReplyEnclosure(MultipartFile[] file, String filePath, String replyContent, String orderNo) throws IOException;
/** /**
* 订单回复列表分页查询 * 订单回复列表分页查询
......
...@@ -26,6 +26,7 @@ import com.yifu.cloud.plus.v1.yifu.order.vo.OrderReplyListVO; ...@@ -26,6 +26,7 @@ import com.yifu.cloud.plus.v1.yifu.order.vo.OrderReplyListVO;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections.CollectionUtils; import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.compress.utils.Lists; import org.apache.commons.compress.utils.Lists;
import org.apache.commons.lang3.ArrayUtils;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
...@@ -183,12 +184,12 @@ public class TOrderServiceImpl extends ServiceImpl<TOrderMapper, TOrder> impleme ...@@ -183,12 +184,12 @@ public class TOrderServiceImpl extends ServiceImpl<TOrderMapper, TOrder> impleme
*/ */
@Override @Override
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public R uploadReplyEnclosure(MultipartFile file, String filePath, String replyContent, String orderNo) throws IOException { public R uploadReplyEnclosure(MultipartFile[] file, String filePath, String replyContent, String orderNo) throws IOException {
YifuUser user = SecurityUtils.getUser(); YifuUser user = SecurityUtils.getUser();
if (Common.isEmpty(orderNo)){ if (Common.isEmpty(orderNo)){
return R.failed(OrderConstants.ORDER_NO_IS_EMPTY); return R.failed(OrderConstants.ORDER_NO_IS_EMPTY);
} }
if (Common.isEmpty(replyContent) && Common.isEmpty(file)){ if (Common.isEmpty(replyContent) && ArrayUtils.isEmpty(file)){
return R.failed(OrderConstants.REPLY_CONTENT_AND_ENCLOSURE_IS_EMPTY); return R.failed(OrderConstants.REPLY_CONTENT_AND_ENCLOSURE_IS_EMPTY);
} }
// 校验回复内容200字以内 // 校验回复内容200字以内
...@@ -196,14 +197,19 @@ public class TOrderServiceImpl extends ServiceImpl<TOrderMapper, TOrder> impleme ...@@ -196,14 +197,19 @@ public class TOrderServiceImpl extends ServiceImpl<TOrderMapper, TOrder> impleme
return R.failed(OrderConstants.REPLY_CONTENT_MORE_THAN_200); return R.failed(OrderConstants.REPLY_CONTENT_MORE_THAN_200);
} }
if (!Common.isEmpty(file)){ if (ArrayUtils.isNotEmpty(file)){
if(!Common.checkInsuranceFile(file.getOriginalFilename())){ if (file.length > CommonConstants.TWENTY_INT){
return R.failed(OrderConstants.ENCLOSURE_TYPE_IS_ERROR);
}
if (file.getSize() > (CommonConstants.FIFTY_INT*CommonConstants.BYTE*CommonConstants.BYTE)){
return R.failed(OrderConstants.ENCLOSURE_SIZE_ERROR); return R.failed(OrderConstants.ENCLOSURE_SIZE_ERROR);
} }
for (MultipartFile multipartFile : file) {
if(!Common.checkInsuranceFile(multipartFile.getOriginalFilename())){
return R.failed(OrderConstants.ENCLOSURE_TYPE_IS_ERROR);
}
if (multipartFile.getSize() > (CommonConstants.FIFTY_INT*CommonConstants.BYTE*CommonConstants.BYTE)){
return R.failed(OrderConstants.ENCLOSURE_SIZE_ERROR);
}
}
} }
TOrderReply reply = new TOrderReply(); TOrderReply reply = new TOrderReply();
...@@ -214,34 +220,36 @@ public class TOrderServiceImpl extends ServiceImpl<TOrderMapper, TOrder> impleme ...@@ -214,34 +220,36 @@ public class TOrderServiceImpl extends ServiceImpl<TOrderMapper, TOrder> impleme
reply.setDeleteFlag(CommonConstants.ZERO_INT); reply.setDeleteFlag(CommonConstants.ZERO_INT);
boolean save = tOrderReplyService.save(reply); boolean save = tOrderReplyService.save(reply);
//todo 同步推送ekp //todo 同步推送ekp
if (save && !Common.isEmpty(file)){ if (save && ArrayUtils.isNotEmpty(file)){
String fileName = System.currentTimeMillis() + "_" + file.getOriginalFilename(); for (MultipartFile multipartFile : file) {
//filePath不传默认存储空间的根目录 String fileName = System.currentTimeMillis() + "_" + multipartFile.getOriginalFilename();
//支持的附件格式 //filePath不传默认存储空间的根目录
String key = ""; //支持的附件格式
if (!Common.isNotNull(filePath)) { String key = "";
key = fileName; if (!Common.isNotNull(filePath)) {
} else { key = fileName;
key = filePath + "/" + fileName; } else {
} key = filePath + "/" + fileName;
boolean flag = ossUtil.uploadFileByStream(file.getInputStream(), key, null); }
if (flag) { boolean flag = ossUtil.uploadFileByStream(multipartFile.getInputStream(), key, null);
log.info("文件:" + fileName + "上传至存储空间" + ossUtil.getBucketName() + "成功!"); if (flag) {
TOrderEnclosure orderEnclosure = new TOrderEnclosure(); log.info("文件:" + fileName + "上传至存储空间" + ossUtil.getBucketName() + "成功!");
orderEnclosure.setOrderNo(reply.getId()); TOrderEnclosure orderEnclosure = new TOrderEnclosure();
orderEnclosure.setEnclosureName(file.getOriginalFilename()); orderEnclosure.setOrderNo(reply.getId());
orderEnclosure.setEnclosureFlag(CommonConstants.ONE_INT); orderEnclosure.setEnclosureName(multipartFile.getOriginalFilename());
orderEnclosure.setEnclosureAddress(key); orderEnclosure.setEnclosureFlag(CommonConstants.ONE_INT);
orderEnclosure.setDeleteFlag(CommonConstants.ZERO_INT); orderEnclosure.setEnclosureAddress(key);
try { orderEnclosure.setDeleteFlag(CommonConstants.ZERO_INT);
tOrderEnclosureService.save(orderEnclosure); try {
} catch (Exception e) { tOrderEnclosureService.save(orderEnclosure);
log.error("OSS文件上传接口异常:" + e.getMessage()); } catch (Exception e) {
ossUtil.deleteObject(null, key); log.error("OSS文件上传接口异常:" + e.getMessage());
return R.failed("failed:" + e.getMessage()); ossUtil.deleteObject(null, key);
return R.failed("failed:" + e.getMessage());
}
} else {
return R.failed(OrderConstants.OPERATE_FAILED);
} }
} else {
return R.failed(OrderConstants.OPERATE_FAILED);
} }
} }
return R.ok(OrderConstants.OPERATE_SUCCESS); return R.ok(OrderConstants.OPERATE_SUCCESS);
......
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