Przeglądaj źródła

优化 编辑业主照片信息

wuxw 6 lat temu
rodzic
commit
05e80502aa

+ 213 - 0
Api/src/main/java/com/java110/api/listener/owner/UploadOwnerPhotoListener.java

@@ -0,0 +1,213 @@
+package com.java110.api.listener.owner;
+
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
+import com.java110.api.listener.AbstractServiceApiDataFlowListener;
+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.core.smo.file.IFileRelInnerServiceSMO;
+import com.java110.core.smo.owner.IOwnerInnerServiceSMO;
+import com.java110.dto.file.FileDto;
+import com.java110.dto.file.FileRelDto;
+import com.java110.dto.owner.OwnerDto;
+import com.java110.entity.center.AppService;
+import com.java110.event.service.api.ServiceDataFlowEvent;
+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.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;
+import java.util.Map;
+
+/**
+ * @ClassName EditOwnerListener
+ * @Description TODO 上传业主照片
+ * @Author wuxw
+ * @Date 2019/4/28 15:19
+ * @Version 1.0
+ * add by wuxw 2019/4/28
+ **/
+@Java110Listener("uploadOwnerPhotoListener")
+public class UploadOwnerPhotoListener extends AbstractServiceApiListener {
+
+    private static Logger logger = LoggerFactory.getLogger(UploadOwnerPhotoListener.class);
+
+    @Autowired
+    private IFileInnerServiceSMO fileInnerServiceSMOImpl;
+
+    @Autowired
+    private IOwnerInnerServiceSMO ownerInnerServiceSMOImpl;
+
+    @Autowired
+    private IFileRelInnerServiceSMO fileRelInnerServiceSMOImpl;
+
+    @Override
+    public String getServiceCode() {
+        return ServiceCodeConstant.SERVICE_CODE_UPLOAD_OWNER_PHOTO;
+    }
+
+    @Override
+    public HttpMethod getHttpMethod() {
+        return HttpMethod.POST;
+    }
+
+    @Override
+    protected void validate(ServiceDataFlowEvent event, JSONObject reqJson) {
+        Assert.jsonObjectHaveKey(reqJson, "memberId", "请求报文中未包含ownerId");
+        Assert.jsonObjectHaveKey(reqJson, "photo", "请求报文中未包含photo");
+        Assert.jsonObjectHaveKey(reqJson, "communityId", "请求报文中未包含communityId");
+    }
+
+    @Override
+    protected void doSoService(ServiceDataFlowEvent event, DataFlowContext context, JSONObject reqJson) {
+        logger.debug("ServiceDataFlowEvent : {}", event);
+
+        DataFlowContext dataFlowContext = event.getDataFlowContext();
+        AppService service = event.getAppService();
+
+        HttpHeaders header = new HttpHeaders();
+        //dataFlowContext.getRequestCurrentHeaders().put(CommonConstant.HTTP_USER_ID, "-1");
+        dataFlowContext.getRequestCurrentHeaders().put(CommonConstant.HTTP_ORDER_TYPE_CD, "D");
+        JSONArray businesses = new JSONArray();
+
+        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"));
+            if (fileInnerServiceSMOImpl.saveFile(fileDto) < 1) {
+                throw new ListenerExecuteException(ResponseConstant.RESULT_PARAM_ERROR, "保存文件出错");
+            }
+            reqJson.put("ownerPhotoId", fileDto.getFileId());
+
+            businesses.add(editOwnerPhoto(reqJson, dataFlowContext));
+
+        }
+        //添加小区楼
+        businesses.add(editOwner(reqJson));
+
+
+        JSONObject paramInObj = super.restToCenterProtocol(businesses, dataFlowContext.getRequestCurrentHeaders());
+
+        //将 rest header 信息传递到下层服务中去
+        super.freshHttpHeader(header, dataFlowContext.getRequestCurrentHeaders());
+
+        ResponseEntity<String> responseEntity = this.callService(dataFlowContext, service.getServiceCode(), paramInObj);
+
+        dataFlowContext.setResponseEntity(responseEntity);
+    }
+
+
+    /**
+     * 添加小区楼信息
+     *
+     * @param paramInJson 接口调用放传入入参
+     * @return 订单服务能够接受的报文
+     */
+    private JSONObject editOwner(JSONObject paramInJson) {
+
+        OwnerDto ownerDto = new OwnerDto();
+        ownerDto.setMemberId(paramInJson.getString("memberId"));
+        List<OwnerDto> ownerDtos = ownerInnerServiceSMOImpl.queryOwnerMembers(ownerDto);
+
+        Assert.listOnlyOne(ownerDtos, "未查询到业主信息或查询到多条");
+
+        JSONObject business = JSONObject.parseObject("{\"datas\":{}}");
+        business.put(CommonConstant.HTTP_BUSINESS_TYPE_CD, BusinessTypeConstant.BUSINESS_TYPE_UPDATE_OWNER_INFO);
+        business.put(CommonConstant.HTTP_SEQ, DEFAULT_SEQ);
+        business.put(CommonConstant.HTTP_INVOKE_MODEL, CommonConstant.HTTP_INVOKE_MODEL_S);
+        JSONObject businessOwner = new JSONObject();
+        Map ownerDtoMap = BeanConvertUtil.beanCovertMap(ownerDtos.get(0));
+        businessOwner.putAll(ownerDtoMap);
+        business.getJSONObject(CommonConstant.HTTP_BUSINESS_DATAS).put("businessOwner", businessOwner);
+
+        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;
+    }
+
+    public IOwnerInnerServiceSMO getOwnerInnerServiceSMOImpl() {
+        return ownerInnerServiceSMOImpl;
+    }
+
+    public void setOwnerInnerServiceSMOImpl(IOwnerInnerServiceSMO ownerInnerServiceSMOImpl) {
+        this.ownerInnerServiceSMOImpl = ownerInnerServiceSMOImpl;
+    }
+}

+ 40 - 36
WebService/src/main/resources/components/advertPackage/view-advert-info/viewAdvertInfo.html

@@ -4,74 +4,78 @@
             <div class="ibox-title">
             <div class="ibox-title">
                 <h5>发布广告信息</h5>
                 <h5>发布广告信息</h5>
                 <div class="ibox-tools" style="top:10px;">
                 <div class="ibox-tools" style="top:10px;">
-                    <button type="button" v-if="viewAdvertInfo.index != 2" class="btn btn-primary btn-sm" style="margin-right:10px;"  v-on:click="_openSelectAdvertInfoModel()">
-                        <i class="glyphicon glyphicon-search"></i> 选择发布广告</button>
+                    <button type="button" v-if="viewAdvertInfo.index != 2" class="btn btn-primary btn-sm"
+                            style="margin-right:10px;" v-on:click="_openSelectAdvertInfoModel()">
+                        <i class="glyphicon glyphicon-search"></i> 选择发布广告
+                    </button>
 
 
-                    <button type="button" v-if="viewAdvertInfo.index != 2" class="btn btn-primary btn-sm" v-on:click="_openAddAdvertInfoModel()">
-                        <i class="glyphicon glyphicon-plus"></i> 添加发布广告</button>
+                    <button type="button" v-if="viewAdvertInfo.index != 2" class="btn btn-primary btn-sm"
+                            v-on:click="_openAddAdvertInfoModel()">
+                        <i class="glyphicon glyphicon-plus"></i> 添加发布广告
+                    </button>
                 </div>
                 </div>
             </div>
             </div>
             <div class="ibox-content">
             <div class="ibox-content">
                 <div class="row">
                 <div class="row">
-<div class="col-sm-4">
+                    <div class="col-sm-4">
                         <div class="form-group">
                         <div class="form-group">
-                            <label class="col-form-label" >广告名称:</label>
+                            <label class="col-form-label">广告名称:</label>
                             <label class="">{{viewAdvertInfo.adName}}</label>
                             <label class="">{{viewAdvertInfo.adName}}</label>
                         </div>
                         </div>
-</div>
-<div class="col-sm-4">
+                    </div>
+                    <div class="col-sm-4">
                         <div class="form-group">
                         <div class="form-group">
-                            <label class="col-form-label" >广告类型:</label>
+                            <label class="col-form-label">广告类型:</label>
                             <label class="">{{viewAdvertInfo.adTypeCd}}</label>
                             <label class="">{{viewAdvertInfo.adTypeCd}}</label>
                         </div>
                         </div>
-</div>
-<div class="col-sm-4">
+                    </div>
+                    <div class="col-sm-4">
                         <div class="form-group">
                         <div class="form-group">
-                            <label class="col-form-label" >广告分类:</label>
+                            <label class="col-form-label">广告分类:</label>
                             <label class="">{{viewAdvertInfo.classify}}</label>
                             <label class="">{{viewAdvertInfo.classify}}</label>
                         </div>
                         </div>
-</div>
-</div>
-<div class="row">
-<div class="col-sm-4">
+                    </div>
+                </div>
+                <div class="row">
+                    <div class="col-sm-4">
                         <div class="form-group">
                         <div class="form-group">
-                            <label class="col-form-label" >投放位置:</label>
+                            <label class="col-form-label">投放位置:</label>
                             <label class="">{{viewAdvertInfo.locationTypeCd}}</label>
                             <label class="">{{viewAdvertInfo.locationTypeCd}}</label>
                         </div>
                         </div>
-</div>
-<div class="col-sm-4">
+                    </div>
+                    <div class="col-sm-4">
                         <div class="form-group">
                         <div class="form-group">
-                            <label class="col-form-label" >具体位置:</label>
+                            <label class="col-form-label">具体位置:</label>
                             <label class="">{{viewAdvertInfo.locationObjId}}</label>
                             <label class="">{{viewAdvertInfo.locationObjId}}</label>
                         </div>
                         </div>
-</div>
-<div class="col-sm-4">
+                    </div>
+                    <div class="col-sm-4">
                         <div class="form-group">
                         <div class="form-group">
-                            <label class="col-form-label" >广告状态:</label>
+                            <label class="col-form-label">广告状态:</label>
                             <label class="">{{viewAdvertInfo.state}}</label>
                             <label class="">{{viewAdvertInfo.state}}</label>
                         </div>
                         </div>
-</div>
-</div>
-<div class="row">
-<div class="col-sm-4">
+                    </div>
+                </div>
+                <div class="row">
+                    <div class="col-sm-4">
                         <div class="form-group">
                         <div class="form-group">
-                            <label class="col-form-label" >播放顺序:</label>
+                            <label class="col-form-label">播放顺序:</label>
                             <label class="">{{viewAdvertInfo.seq}}</label>
                             <label class="">{{viewAdvertInfo.seq}}</label>
                         </div>
                         </div>
-</div>
-<div class="col-sm-4">
+                    </div>
+                    <div class="col-sm-4">
                         <div class="form-group">
                         <div class="form-group">
-                            <label class="col-form-label" >投放时间:</label>
+                            <label class="col-form-label">投放时间:</label>
                             <label class="">{{viewAdvertInfo.startTime}}</label>
                             <label class="">{{viewAdvertInfo.startTime}}</label>
                         </div>
                         </div>
-</div>
-<div class="col-sm-4">
+                    </div>
+                    <div class="col-sm-4">
                         <div class="form-group">
                         <div class="form-group">
-                            <label class="col-form-label" >结束时间:</label>
+                            <label class="col-form-label">结束时间:</label>
                             <label class="">{{viewAdvertInfo.endTime}}</label>
                             <label class="">{{viewAdvertInfo.endTime}}</label>
                         </div>
                         </div>
-</div>
-</div>
+                    </div>
+                </div>
 
 
             </div>
             </div>
         </div>
         </div>

+ 29 - 29
WebService/src/main/resources/components/advertPackage/view-advert-info/viewAdvertInfo.js

@@ -1,53 +1,53 @@
 /**
 /**
-    发布广告 组件
-**/
-(function(vc){
+ 发布广告 组件
+ **/
+(function (vc) {
 
 
     vc.extends({
     vc.extends({
         propTypes: {
         propTypes: {
-           callBackListener:vc.propTypes.string, //父组件名称
-           callBackFunction:vc.propTypes.string //父组件监听方法
+            callBackListener: vc.propTypes.string, //父组件名称
+            callBackFunction: vc.propTypes.string //父组件监听方法
         },
         },
-        data:{
-            viewAdvertInfo:{
-                index:0,
-                flowComponent:'viewAdvertInfo',
-                adName:'',
-adTypeCd:'',
-classify:'',
-locationTypeCd:'',
-locationObjId:'',
-state:'',
-seq:'',
-startTime:'',
-endTime:'',
+        data: {
+            viewAdvertInfo: {
+                index: 0,
+                flowComponent: 'viewAdvertInfo',
+                adName: '',
+                adTypeCd: '',
+                classify: '',
+                locationTypeCd: '',
+                locationObjId: '',
+                state: '',
+                seq: '',
+                startTime: '',
+                endTime: '',
 
 
             }
             }
         },
         },
-        _initMethod:function(){
+        _initMethod: function () {
             //根据请求参数查询 查询 业主信息
             //根据请求参数查询 查询 业主信息
             vc.component._loadAdvertInfoData();
             vc.component._loadAdvertInfoData();
         },
         },
-        _initEvent:function(){
-            vc.on('viewAdvertInfo','chooseAdvert',function(_app){
+        _initEvent: function () {
+            vc.on('viewAdvertInfo', 'chooseAdvert', function (_app) {
                 vc.copyObject(_app, vc.component.viewAdvertInfo);
                 vc.copyObject(_app, vc.component.viewAdvertInfo);
-                vc.emit($props.callBackListener,$props.callBackFunction,vc.component.viewAdvertInfo);
+                vc.emit($props.callBackListener, $props.callBackFunction, vc.component.viewAdvertInfo);
             });
             });
 
 
-            vc.on('viewAdvertInfo', 'onIndex', function(_index){
+            vc.on('viewAdvertInfo', 'onIndex', function (_index) {
                 vc.component.viewAdvertInfo.index = _index;
                 vc.component.viewAdvertInfo.index = _index;
             });
             });
 
 
         },
         },
-        methods:{
+        methods: {
 
 
-            _openSelectAdvertInfoModel(){
-                vc.emit('chooseAdvert','openChooseAdvertModel',{});
+            _openSelectAdvertInfoModel() {
+                vc.emit('chooseAdvert', 'openChooseAdvertModel', {});
             },
             },
-            _openAddAdvertInfoModel(){
-                vc.emit('addAdvert','openAddAdvertModal',{});
+            _openAddAdvertInfoModel() {
+                vc.emit('addAdvert', 'openAddAdvertModal', {});
             },
             },
-            _loadAdvertInfoData:function(){
+            _loadAdvertInfoData: function () {
 
 
             }
             }
         }
         }

+ 2 - 2
WebService/src/main/resources/components/ownerPackage/list-owner/listOwner.html

@@ -169,7 +169,7 @@
                                             <a href="#"
                                             <a href="#"
                                                v-on:click="_openDeleteOwnerRoom(owner)">删除房屋</a>
                                                v-on:click="_openDeleteOwnerRoom(owner)">删除房屋</a>
                                         </p>
                                         </p>
-                                        <!-- <p style="margin:10px 0;">
+                                         <p style="margin:10px 0;">
                                              <a href="#"
                                              <a href="#"
                                                 v-on:click="_openHireParkingSpace(owner)">车位出租</a>
                                                 v-on:click="_openHireParkingSpace(owner)">车位出租</a>
                                              <span>|</span>
                                              <span>|</span>
@@ -188,7 +188,7 @@
                                                 v-on:click="_openOwnerRepair(owner)">业主报修</a>
                                                 v-on:click="_openOwnerRepair(owner)">业主报修</a>
                                              <span>|</span>
                                              <span>|</span>
 
 
-                                         </p>-->
+                                         </p>
                                     </div>
                                     </div>
                                 </div>
                                 </div>
 
 

+ 1 - 0
java110-front/src/main/java/com/java110/front/configuration/ServiceConfiguration.java

@@ -22,6 +22,7 @@ public class ServiceConfiguration {
         exclusions.append("/flow/advertVedioFlow,");//放开 广告页面是不需要登录的
         exclusions.append("/flow/advertVedioFlow,");//放开 广告页面是不需要登录的
         exclusions.append("/callComponent/advertVedioView/*,");//放开 广告页面是不需要登录的
         exclusions.append("/callComponent/advertVedioView/*,");//放开 广告页面是不需要登录的
         exclusions.append("/callComponent/download/getFile/file,");//放开 下载图片也不需要登录
         exclusions.append("/callComponent/download/getFile/file,");//放开 下载图片也不需要登录
+        exclusions.append("/callComponent/download/getFile/fileByObjId,");//放开 下载图片也不需要登录
         exclusions.append("/app/loginWx");// 登录跳过
         exclusions.append("/app/loginWx");// 登录跳过
         final FilterRegistrationBean registrationBean = new FilterRegistrationBean();
         final FilterRegistrationBean registrationBean = new FilterRegistrationBean();
         registrationBean.setFilter(new JwtFilter());
         registrationBean.setFilter(new JwtFilter());

+ 3 - 0
java110-utils/src/main/java/com/java110/utils/constant/ServiceCodeConstant.java

@@ -460,6 +460,9 @@ public class ServiceCodeConstant {
     // 编辑业主信息
     // 编辑业主信息
     public static final String SERVICE_CODE_EDIT_OWNER = "owner.editOwner";
     public static final String SERVICE_CODE_EDIT_OWNER = "owner.editOwner";
 
 
+    // 上传业主照片
+    public static final String SERVICE_CODE_UPLOAD_OWNER_PHOTO = "owner.uploadOwnerPhoto";
+
     //删除业主信息
     //删除业主信息
     public static final String SERVICE_CODE_DELETE_OWNER = "owner.deleteOwner";
     public static final String SERVICE_CODE_DELETE_OWNER = "owner.deleteOwner";