From f3fb691a52a02954ca017a07ae39ac90b322aa1c Mon Sep 17 00:00:00 2001
From: wuxw <928255095@qq.com>
Date: 星期一, 11 十一月 2019 22:59:39 +0800
Subject: [PATCH] 修复 编辑时添加图片信息

---
 Api/src/main/java/com/java110/api/listener/owner/EditOwnerListener.java |   91 +++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 91 insertions(+), 0 deletions(-)

diff --git a/Api/src/main/java/com/java110/api/listener/owner/EditOwnerListener.java b/Api/src/main/java/com/java110/api/listener/owner/EditOwnerListener.java
index 371fd22..c991d07 100644
--- a/Api/src/main/java/com/java110/api/listener/owner/EditOwnerListener.java
+++ b/Api/src/main/java/com/java110/api/listener/owner/EditOwnerListener.java
@@ -3,19 +3,31 @@
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import com.java110.api.listener.AbstractServiceApiDataFlowListener;
+import com.java110.core.factory.GenerateCodeFactory;
+import com.java110.core.smo.file.IFileInnerServiceSMO;
+import com.java110.core.smo.file.IFileRelInnerServiceSMO;
+import com.java110.dto.file.FileDto;
+import com.java110.dto.file.FileRelDto;
 import com.java110.utils.constant.BusinessTypeConstant;
 import com.java110.utils.constant.CommonConstant;
+import com.java110.utils.constant.ResponseConstant;
 import com.java110.utils.constant.ServiceCodeConstant;
+import com.java110.utils.exception.ListenerExecuteException;
 import com.java110.utils.util.Assert;
 import com.java110.core.annotation.Java110Listener;
 import com.java110.core.context.DataFlowContext;
 import com.java110.entity.center.AppService;
 import com.java110.event.service.api.ServiceDataFlowEvent;
+import com.java110.utils.util.BeanConvertUtil;
+import org.apache.commons.lang3.StringUtils;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.http.HttpHeaders;
 import org.springframework.http.HttpMethod;
 import org.springframework.http.ResponseEntity;
+
+import java.util.List;
 
 /**
  * @ClassName EditOwnerListener
@@ -29,6 +41,12 @@
 public class EditOwnerListener extends AbstractServiceApiDataFlowListener {
 
     private static Logger logger = LoggerFactory.getLogger(EditOwnerListener.class);
+
+    @Autowired
+    private IFileInnerServiceSMO fileInnerServiceSMOImpl;
+
+    @Autowired
+    private IFileRelInnerServiceSMO fileRelInnerServiceSMOImpl;
 
     @Override
     public String getServiceCode() {
@@ -61,6 +79,22 @@
 
         if (!paramObj.containsKey("ownerId") || "1001".equals(paramObj.getString("ownerTypeCd"))) {
             paramObj.put("ownerId", paramObj.getString("memberId"));
+        }
+
+        if (paramObj.containsKey("ownerPhoto") && !StringUtils.isEmpty(paramObj.getString("ownerPhoto"))) {
+            FileDto fileDto = new FileDto();
+            fileDto.setFileId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_file_id));
+            fileDto.setFileName(fileDto.getFileId());
+            fileDto.setContext(paramObj.getString("ownerPhoto"));
+            fileDto.setSuffix("jpeg");
+            fileDto.setCommunityId(paramObj.getString("communityId"));
+            if (fileInnerServiceSMOImpl.saveFile(fileDto) < 1) {
+                throw new ListenerExecuteException(ResponseConstant.RESULT_PARAM_ERROR, "淇濆瓨鏂囦欢鍑洪敊");
+            }
+            paramObj.put("ownerPhotoId", fileDto.getFileId());
+
+            businesses.add(editOwnerPhoto(paramObj, dataFlowContext));
+
         }
         //娣诲姞灏忓尯妤�
         businesses.add(editOwner(paramObj));
@@ -116,8 +150,65 @@
         return business;
     }
 
+    /**
+     * 娣诲姞鐗╀笟璐圭敤
+     *
+     * @param paramInJson     鎺ュ彛璋冪敤鏀句紶鍏ュ叆鍙�
+     * @param dataFlowContext 鏁版嵁涓婁笅鏂�
+     * @return 璁㈠崟鏈嶅姟鑳藉鎺ュ彈鐨勬姤鏂�
+     */
+    private JSONObject editOwnerPhoto(JSONObject paramInJson, DataFlowContext dataFlowContext) {
+
+        FileRelDto fileRelDto = new FileRelDto();
+        fileRelDto.setRelTypeCd("10000");
+        fileRelDto.setObjId(paramInJson.getString("memberId"));
+        List<FileRelDto> fileRelDtos = fileRelInnerServiceSMOImpl.queryFileRels(fileRelDto);
+        if(fileRelDtos == null || fileRelDtos.size() == 0){
+            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", "10000");
+            businessUnit.put("saveWay", "table");
+            businessUnit.put("objId", paramInJson.getString("memberId"));
+            businessUnit.put("fileRealName", paramInJson.getString("ownerPhotoId"));
+            businessUnit.put("fileSaveName", paramInJson.getString("ownerPhotoId"));
+            business.getJSONObject(CommonConstant.HTTP_BUSINESS_DATAS).put("businessFileRel", businessUnit);
+            return business;
+        }
+        JSONObject business = JSONObject.parseObject("{\"datas\":{}}");
+        business.put(CommonConstant.HTTP_BUSINESS_TYPE_CD, BusinessTypeConstant.BUSINESS_TYPE_UPDATE_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.putAll(BeanConvertUtil.beanCovertMap(fileRelDtos.get(0)));
+        businessUnit.put("fileRealName", paramInJson.getString("ownerPhotoId"));
+        businessUnit.put("fileSaveName", paramInJson.getString("ownerPhotoId"));
+        business.getJSONObject(CommonConstant.HTTP_BUSINESS_DATAS).put("businessFileRel", businessUnit);
+        return business;
+
+
+    }
     @Override
     public int getOrder() {
         return DEFAULT_ORDER;
     }
+
+    public IFileInnerServiceSMO getFileInnerServiceSMOImpl() {
+        return fileInnerServiceSMOImpl;
+    }
+
+    public void setFileInnerServiceSMOImpl(IFileInnerServiceSMO fileInnerServiceSMOImpl) {
+        this.fileInnerServiceSMOImpl = fileInnerServiceSMOImpl;
+    }
+
+    public IFileRelInnerServiceSMO getFileRelInnerServiceSMOImpl() {
+        return fileRelInnerServiceSMOImpl;
+    }
+
+    public void setFileRelInnerServiceSMOImpl(IFileRelInnerServiceSMO fileRelInnerServiceSMOImpl) {
+        this.fileRelInnerServiceSMOImpl = fileRelInnerServiceSMOImpl;
+    }
 }

--
Gitblit v1.8.0