Sfoglia il codice sorgente

显示照片问题

java110 5 anni fa
parent
commit
5209bb6572

+ 13 - 0
java110-bean/src/main/java/com/java110/vo/api/complaint/ApiComplaintDataVo.java

@@ -1,7 +1,10 @@
 package com.java110.vo.api.complaint;
 
+import com.java110.vo.api.junkRequirement.PhotoVo;
+
 import java.io.Serializable;
 import java.util.Date;
+import java.util.List;
 
 public class ApiComplaintDataVo implements Serializable {
 
@@ -26,6 +29,8 @@ public class ApiComplaintDataVo implements Serializable {
     //
     private String auditCode;
 
+    private List<PhotoVo> photos;
+
     private String auditMessage;
 
     private String createTime;
@@ -210,4 +215,12 @@ public class ApiComplaintDataVo implements Serializable {
     public void setCurrentUserTel(String currentUserTel) {
         this.currentUserTel = currentUserTel;
     }
+
+    public List<PhotoVo> getPhotos() {
+        return photos;
+    }
+
+    public void setPhotos(List<PhotoVo> photos) {
+        this.photos = photos;
+    }
 }

+ 27 - 4
service-api/src/main/java/com/java110/api/listener/complaint/ListComplaintsListener.java

@@ -4,16 +4,19 @@ import com.alibaba.fastjson.JSONObject;
 import com.java110.api.listener.AbstractServiceApiListener;
 import com.java110.core.annotation.Java110Listener;
 import com.java110.core.context.DataFlowContext;
-import com.java110.core.smo.store.IComplaintInnerServiceSMO;
+import com.java110.core.event.service.api.ServiceDataFlowEvent;
 import com.java110.core.smo.common.IComplaintUserInnerServiceSMO;
+import com.java110.core.smo.common.IFileRelInnerServiceSMO;
 import com.java110.core.smo.community.IRoomInnerServiceSMO;
+import com.java110.core.smo.store.IComplaintInnerServiceSMO;
 import com.java110.dto.complaint.ComplaintDto;
-import com.java110.core.event.service.api.ServiceDataFlowEvent;
+import com.java110.dto.file.FileRelDto;
 import com.java110.utils.constant.ServiceCodeComplaintConstant;
 import com.java110.utils.util.Assert;
 import com.java110.utils.util.BeanConvertUtil;
 import com.java110.vo.api.complaint.ApiComplaintDataVo;
 import com.java110.vo.api.complaint.ApiComplaintVo;
+import com.java110.vo.api.junkRequirement.PhotoVo;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.http.HttpMethod;
 import org.springframework.http.HttpStatus;
@@ -37,6 +40,8 @@ public class ListComplaintsListener extends AbstractServiceApiListener {
 
     @Autowired
     private IComplaintUserInnerServiceSMO complaintUserInnerServiceSMOImpl;
+    @Autowired
+    private IFileRelInnerServiceSMO fileRelInnerServiceSMOImpl;
 
     @Override
     public String getServiceCode() {
@@ -82,7 +87,7 @@ public class ListComplaintsListener extends AbstractServiceApiListener {
             List<ComplaintDto> complaintDtos = complaintInnerServiceSMOImpl.queryComplaints(complaintDto);
             complaintDtos = freshCurrentUser(complaintDtos);
             complaints = BeanConvertUtil.covertBeanList(complaintDtos, ApiComplaintDataVo.class);
-
+            refreshPhotos(complaints);
         } else {
             complaints = new ArrayList<>();
         }
@@ -101,7 +106,7 @@ public class ListComplaintsListener extends AbstractServiceApiListener {
 
     private List<ComplaintDto> freshCurrentUser(List<ComplaintDto> complaintDtos) {
         List<ComplaintDto> tmpComplaintDtos = new ArrayList<>();
-        for(ComplaintDto complaintDto : complaintDtos){
+        for (ComplaintDto complaintDto : complaintDtos) {
             complaintDto = complaintUserInnerServiceSMOImpl.getTaskCurrentUser(complaintDto);
             tmpComplaintDtos.add(complaintDto);
         }
@@ -109,4 +114,22 @@ public class ListComplaintsListener extends AbstractServiceApiListener {
         return tmpComplaintDtos;
     }
 
+    private void refreshPhotos(List<ApiComplaintDataVo> complaints) {
+        List<PhotoVo> photoVos = null;
+        PhotoVo photoVo = null;
+        for (ApiComplaintDataVo complaintDataVo : complaints) {
+
+            FileRelDto fileRelDto = new FileRelDto();
+            fileRelDto.setObjId(complaintDataVo.getComplaintId());
+            List<FileRelDto> fileRelDtos = fileRelInnerServiceSMOImpl.queryFileRels(fileRelDto);
+            photoVos = new ArrayList<>();
+            for (FileRelDto tmpFileRelDto : fileRelDtos) {
+                photoVo = new PhotoVo();
+                photoVo.setUrl("/callComponent/download/getFile/file?fileId=" + tmpFileRelDto.getFileRealName() + "&communityId=" + complaintDataVo.getCommunityId());
+                photoVos.add(photoVo);
+            }
+            complaintDataVo.setPhotos(photoVos);
+        }
+    }
+
 }

+ 31 - 0
service-api/src/main/java/com/java110/api/listener/complaint/SaveComplaintListener.java

@@ -3,8 +3,13 @@ package com.java110.api.listener.complaint;
 import com.alibaba.fastjson.JSONObject;
 import com.java110.api.bmo.complaint.IComplaintBMO;
 import com.java110.api.listener.AbstractServiceApiPlusListener;
+import com.java110.core.factory.GenerateCodeFactory;
 import com.java110.core.smo.common.IComplaintUserInnerServiceSMO;
+import com.java110.core.smo.common.IFileInnerServiceSMO;
 import com.java110.dto.complaint.ComplaintDto;
+import com.java110.dto.file.FileDto;
+import com.java110.po.file.FileRelPo;
+import com.java110.utils.constant.BusinessTypeConstant;
 import com.java110.utils.util.Assert;
 import com.java110.core.context.DataFlowContext;
 import com.java110.core.event.service.api.ServiceDataFlowEvent;
@@ -13,6 +18,7 @@ import com.java110.utils.constant.ServiceCodeComplaintConstant;
 
 import com.java110.core.annotation.Java110Listener;
 import com.java110.utils.util.BeanConvertUtil;
+import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.http.HttpMethod;
 import org.springframework.http.HttpStatus;
@@ -27,6 +33,9 @@ public class SaveComplaintListener extends AbstractServiceApiPlusListener {
     @Autowired
     private IComplaintBMO complaintBMOImpl;
 
+    @Autowired
+    private IFileInnerServiceSMO fileInnerServiceSMOImpl;
+
     @Autowired
     private IComplaintUserInnerServiceSMO complaintUserInnerServiceSMOImpl;
 
@@ -50,6 +59,28 @@ public class SaveComplaintListener extends AbstractServiceApiPlusListener {
 
         complaintBMOImpl.addComplaint(reqJson, context);
 
+        if (reqJson.containsKey("photo") && !StringUtils.isEmpty(reqJson.getString("photo"))) {
+            FileDto fileDto = new FileDto();
+            fileDto.setFileId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_file_id));
+            fileDto.setFileName(fileDto.getFileId());
+            fileDto.setContext(reqJson.getString("photo"));
+            fileDto.setSuffix("jpeg");
+            fileDto.setCommunityId(reqJson.getString("communityId"));
+            String fileName = fileInnerServiceSMOImpl.saveFile(fileDto);
+            reqJson.put("ownerPhotoId", fileDto.getFileId());
+            reqJson.put("fileSaveName", fileName);
+
+            JSONObject businessUnit = new JSONObject();
+            businessUnit.put("fileRelId", "-1");
+            businessUnit.put("relTypeCd", "13000");
+            businessUnit.put("saveWay", "table");
+            businessUnit.put("objId", reqJson.getString("complaintId"));
+            businessUnit.put("fileRealName", fileDto.getFileId());
+            businessUnit.put("fileSaveName", fileName);
+            FileRelPo fileRelPo = BeanConvertUtil.covertBean(businessUnit, FileRelPo.class);
+            super.insert(context, fileRelPo, BusinessTypeConstant.BUSINESS_TYPE_SAVE_FILE_REL);
+        }
+
         commit(context);
 
         if (HttpStatus.OK == context.getResponseEntity().getStatusCode()) {