Browse Source

优化 跳蚤市场图片显示问题

java110 6 years ago
parent
commit
a3c500db80

+ 11 - 0
Api/src/main/java/com/java110/api/bmo/junkRequirement/IJunkRequirementBMO.java

@@ -3,6 +3,8 @@ package com.java110.api.bmo.junkRequirement;
 import com.alibaba.fastjson.JSONObject;
 import com.java110.api.bmo.IApiBaseBMO;
 import com.java110.core.context.DataFlowContext;
+import com.java110.utils.constant.BusinessTypeConstant;
+import com.java110.utils.constant.CommonConstant;
 
 public interface IJunkRequirementBMO extends IApiBaseBMO {
 
@@ -33,6 +35,15 @@ public interface IJunkRequirementBMO extends IApiBaseBMO {
      */
      JSONObject deleteJunkRequirement(JSONObject paramInJson, DataFlowContext dataFlowContext);
 
+    /**
+     * 添加图片
+     *
+     * @param paramInJson     接口调用放传入入参
+     * @param dataFlowContext 数据上下文
+     * @return 订单服务能够接受的报文
+     */
+    public JSONObject addPhoto(JSONObject paramInJson, DataFlowContext dataFlowContext);
+
 
 
 }

+ 26 - 0
Api/src/main/java/com/java110/api/bmo/junkRequirement/impl/JunkRequirementBMOImpl.java

@@ -96,4 +96,30 @@ public class JunkRequirementBMOImpl extends ApiBaseBMO implements IJunkRequireme
         return business;
     }
 
+    /**
+     * 添加物业费用
+     *
+     * @param paramInJson     接口调用放传入入参
+     * @param dataFlowContext 数据上下文
+     * @return 订单服务能够接受的报文
+     */
+    public JSONObject addPhoto(JSONObject paramInJson, DataFlowContext dataFlowContext) {
+
+
+        JSONObject business = JSONObject.parseObject("{\"datas\":{}}");
+        business.put(CommonConstant.HTTP_BUSINESS_TYPE_CD, BusinessTypeConstant.BUSINESS_TYPE_SAVE_FILE_REL);
+        business.put(CommonConstant.HTTP_SEQ, DEFAULT_SEQ + 2);
+        business.put(CommonConstant.HTTP_INVOKE_MODEL, CommonConstant.HTTP_INVOKE_MODEL_S);
+        JSONObject businessUnit = new JSONObject();
+        businessUnit.put("fileRelId", "-1");
+        businessUnit.put("relTypeCd", "80000");
+        businessUnit.put("saveWay", "ftp");
+        businessUnit.put("objId", paramInJson.getString("junkRequirementId"));
+        businessUnit.put("fileRealName", paramInJson.getString("photoId"));
+        businessUnit.put("fileSaveName", paramInJson.getString("fileSaveName"));
+        business.getJSONObject(CommonConstant.HTTP_BUSINESS_DATAS).put("businessFileRel", businessUnit);
+
+        return business;
+    }
+
 }

+ 25 - 0
Api/src/main/java/com/java110/api/listener/junkRequirement/ListJunkRequirementsListener.java

@@ -4,13 +4,17 @@ 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.file.IFileRelInnerServiceSMO;
 import com.java110.core.smo.junkRequirement.IJunkRequirementInnerServiceSMO;
+import com.java110.dto.advert.AdvertItemDto;
+import com.java110.dto.file.FileRelDto;
 import com.java110.dto.junkRequirement.JunkRequirementDto;
 import com.java110.event.service.api.ServiceDataFlowEvent;
 import com.java110.utils.constant.ServiceCodeJunkRequirementConstant;
 import com.java110.utils.util.BeanConvertUtil;
 import com.java110.vo.api.junkRequirement.ApiJunkRequirementDataVo;
 import com.java110.vo.api.junkRequirement.ApiJunkRequirementVo;
+import com.java110.vo.api.junkRequirement.PhotoVo;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.http.HttpMethod;
 import org.springframework.http.HttpStatus;
@@ -28,12 +32,15 @@ public class ListJunkRequirementsListener extends AbstractServiceApiListener {
 
     @Autowired
     private IJunkRequirementInnerServiceSMO junkRequirementInnerServiceSMOImpl;
+    @Autowired
+    private IFileRelInnerServiceSMO fileRelInnerServiceSMOImpl;
 
     @Override
     public String getServiceCode() {
         return ServiceCodeJunkRequirementConstant.LIST_JUNKREQUIREMENTS;
     }
 
+
     @Override
     public HttpMethod getHttpMethod() {
         return HttpMethod.GET;
@@ -70,6 +77,7 @@ public class ListJunkRequirementsListener extends AbstractServiceApiListener {
 
         if (count > 0) {
             junkRequirements = BeanConvertUtil.covertBeanList(junkRequirementInnerServiceSMOImpl.queryJunkRequirements(junkRequirementDto), ApiJunkRequirementDataVo.class);
+            refreshPhotos(junkRequirements);
         } else {
             junkRequirements = new ArrayList<>();
         }
@@ -85,4 +93,21 @@ public class ListJunkRequirementsListener extends AbstractServiceApiListener {
         context.setResponseEntity(responseEntity);
 
     }
+
+    private void refreshPhotos(List<ApiJunkRequirementDataVo> junkRequirements) {
+        List<PhotoVo> photoVos = null;
+        PhotoVo photoVo = null;
+        for (ApiJunkRequirementDataVo junkRequirementDataVo : junkRequirements) {
+            FileRelDto fileRelDto = new FileRelDto();
+            fileRelDto.setObjId(junkRequirementDataVo.getJunkRequirementId());
+            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=" + junkRequirementDataVo.getCommunityId());
+                photoVos.add(photoVo);
+            }
+
+        }
+    }
 }

+ 33 - 1
Api/src/main/java/com/java110/api/listener/junkRequirement/SaveJunkRequirementListener.java

@@ -6,6 +6,9 @@ import com.java110.api.bmo.junkRequirement.IJunkRequirementBMO;
 import com.java110.api.listener.AbstractServiceApiListener;
 import com.java110.core.annotation.Java110Listener;
 import com.java110.core.context.DataFlowContext;
+import com.java110.core.factory.GenerateCodeFactory;
+import com.java110.core.smo.file.IFileInnerServiceSMO;
+import com.java110.dto.file.FileDto;
 import com.java110.entity.center.AppService;
 import com.java110.event.service.api.ServiceDataFlowEvent;
 import com.java110.utils.constant.CommonConstant;
@@ -26,6 +29,9 @@ public class SaveJunkRequirementListener extends AbstractServiceApiListener {
     @Autowired
     private IJunkRequirementBMO junkRequirementBMOImpl;
 
+    @Autowired
+    private IFileInnerServiceSMO fileInnerServiceSMOImpl;
+
     @Override
     protected void validate(ServiceDataFlowEvent event, JSONObject reqJson) {
         //Assert.hasKeyAndValue(reqJson, "xxx", "xxx");
@@ -50,7 +56,14 @@ public class SaveJunkRequirementListener extends AbstractServiceApiListener {
 
         AppService service = event.getAppService();
 
-        reqJson.put("state","12001");
+        reqJson.put("state", "12001");
+
+        String junkRequirementId = GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_junkRequirementId);
+        reqJson.put("junkRequirementId",junkRequirementId);
+
+        if (reqJson.containsKey("photos")) {
+            dealPhotos(businesses,reqJson,context);
+        }
 
         //添加单元信息
         businesses.add(junkRequirementBMOImpl.addJunkRequirement(reqJson, context));
@@ -60,6 +73,25 @@ public class SaveJunkRequirementListener extends AbstractServiceApiListener {
         context.setResponseEntity(responseEntity);
     }
 
+    private void dealPhotos(JSONArray businesses, JSONObject reqJson,DataFlowContext context) {
+        JSONArray photos = reqJson.getJSONArray("photos");
+        JSONObject photo = null;
+        for (int photoIndex = 0; photoIndex < photos.size(); photoIndex++) {
+            photo = photos.getJSONObject(photoIndex);
+            FileDto fileDto = new FileDto();
+            fileDto.setFileId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_file_id));
+            fileDto.setFileName(fileDto.getFileId());
+            fileDto.setContext(photo.getString("photo"));
+            fileDto.setSuffix("jpeg");
+            fileDto.setCommunityId(reqJson.getString("communityId"));
+            String fileName = fileInnerServiceSMOImpl.saveFile(fileDto);
+            reqJson.put("photoId", fileDto.getFileId());
+            reqJson.put("fileSaveName", fileName);
+
+            businesses.add(junkRequirementBMOImpl.addPhoto(reqJson, context));
+        }
+    }
+
     @Override
     public String getServiceCode() {
         return ServiceCodeJunkRequirementConstant.ADD_JUNKREQUIREMENT;

+ 8 - 0
java110-bean/src/main/java/com/java110/vo/api/junkRequirement/ApiJunkRequirementDataVo.java

@@ -1,6 +1,7 @@
 package com.java110.vo.api.junkRequirement;
 
 import java.io.Serializable;
+import java.util.List;
 
 public class ApiJunkRequirementDataVo implements Serializable {
 
@@ -17,6 +18,7 @@ public class ApiJunkRequirementDataVo implements Serializable {
     private String state;
     private String communityId;
     private String bId;
+    private List<PhotoVo> photoVos;
 
     public String getPublishUserName() {
         return publishUserName;
@@ -122,5 +124,11 @@ public class ApiJunkRequirementDataVo implements Serializable {
         this.bId = bId;
     }
 
+    public List<PhotoVo> getPhotoVos() {
+        return photoVos;
+    }
 
+    public void setPhotoVos(List<PhotoVo> photoVos) {
+        this.photoVos = photoVos;
+    }
 }

+ 23 - 0
java110-bean/src/main/java/com/java110/vo/api/junkRequirement/PhotoVo.java

@@ -0,0 +1,23 @@
+package com.java110.vo.api.junkRequirement;
+
+import java.io.Serializable;
+
+/**
+ * @ClassName Photo
+ * @Description TODO
+ * @Author wuxw
+ * @Date 2020/4/20 20:31
+ * @Version 1.0
+ * add by wuxw 2020/4/20
+ **/
+public class PhotoVo implements Serializable {
+    private String url;
+
+    public String getUrl() {
+        return url;
+    }
+
+    public void setUrl(String url) {
+        this.url = url;
+    }
+}