ソースを参照

加入投诉建议接口

wuxw 6 年 前
コミット
94e84f7ea4

+ 1 - 1
Api/src/main/java/com/java110/api/listener/complaint/SaveComplaintListener.java

@@ -37,7 +37,7 @@ public class SaveComplaintListener extends AbstractServiceApiListener {
     protected void validate(ServiceDataFlowEvent event, JSONObject reqJson) {
     protected void validate(ServiceDataFlowEvent event, JSONObject reqJson) {
         //Assert.hasKeyAndValue(reqJson, "xxx", "xxx");
         //Assert.hasKeyAndValue(reqJson, "xxx", "xxx");
 
 
-        /*Assert.hasKeyAndValue(reqJson, "storeId", "必填,请填写商户ID");*/
+        Assert.hasKeyAndValue(reqJson, "storeId", "必填,请填写商户ID");
         Assert.hasKeyAndValue(reqJson, "typeCd", "必填,请选择投诉类型");
         Assert.hasKeyAndValue(reqJson, "typeCd", "必填,请选择投诉类型");
         Assert.hasKeyAndValue(reqJson, "roomId", "必填,请选择房屋编号");
         Assert.hasKeyAndValue(reqJson, "roomId", "必填,请选择房屋编号");
         Assert.hasKeyAndValue(reqJson, "complaintName", "必填,请填写投诉人");
         Assert.hasKeyAndValue(reqJson, "complaintName", "必填,请填写投诉人");

+ 112 - 0
Api/src/main/java/com/java110/api/listener/store/ListStoresByCommunityListener.java

@@ -0,0 +1,112 @@
+package com.java110.api.listener.store;
+
+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.DataFlowFactory;
+import com.java110.core.factory.GenerateCodeFactory;
+import com.java110.core.smo.community.ICommunityInnerServiceSMO;
+import com.java110.core.smo.store.IStoreInnerServiceSMO;
+import com.java110.dto.CommunityMemberDto;
+import com.java110.dto.store.StoreDto;
+import com.java110.entity.center.AppService;
+import com.java110.event.service.api.ServiceDataFlowEvent;
+import com.java110.utils.cache.MappingCache;
+import com.java110.utils.constant.*;
+import com.java110.utils.util.Assert;
+import com.java110.utils.util.BeanConvertUtil;
+import com.java110.vo.api.advert.ApiAdvertDataVo;
+import com.java110.vo.api.advert.ApiAdvertVo;
+import com.java110.vo.api.store.ApiStoreDataVo;
+import com.java110.vo.api.store.ApiStoreVo;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.*;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * 保存商户信息
+ * Created by Administrator on 2019/3/29.
+ */
+@Java110Listener("listStoresByCommunityListener")
+public class ListStoresByCommunityListener extends AbstractServiceApiListener {
+
+    @Autowired
+    private ICommunityInnerServiceSMO communityInnerServiceSMOImpl;
+
+    @Autowired
+    private IStoreInnerServiceSMO storeInnerServiceSMOImpl;
+
+    @Override
+    public int getOrder() {
+        return 0;
+    }
+
+    @Override
+    public String getServiceCode() {
+        return ServiceCodeConstant.SERVICE_CODE_LIST_STORES_BY_COMMUNITY;
+    }
+
+    @Override
+    public HttpMethod getHttpMethod() {
+        return HttpMethod.POST;
+    }
+
+    @Override
+    protected void validate(ServiceDataFlowEvent event, JSONObject reqJson) {
+        super.validatePageInfo(reqJson);
+        Assert.hasKeyAndValue(reqJson, "communityId", "未包含小区信息");
+
+    }
+
+    @Override
+    protected void doSoService(ServiceDataFlowEvent event, DataFlowContext context, JSONObject reqJson) {
+
+
+        CommunityMemberDto communityMemberDto = BeanConvertUtil.covertBean(reqJson, CommunityMemberDto.class);
+        int storeCount = communityInnerServiceSMOImpl.getCommunityMemberCount(communityMemberDto);
+        List<CommunityMemberDto> communityMemberDtos = null;
+        List<ApiStoreDataVo> stores = null;
+        if (storeCount > 0) {
+            communityMemberDtos = communityInnerServiceSMOImpl.getCommunityMembers(communityMemberDto);
+            StoreDto storeDto = new StoreDto();
+            storeDto.setStoreIds(getStoreIds(communityMemberDtos));
+            List<StoreDto> storeDtos = storeInnerServiceSMOImpl.getStores(storeDto);
+            stores = BeanConvertUtil.covertBeanList(storeDtos, ApiStoreDataVo.class);
+        } else {
+            stores = new ArrayList<>();
+        }
+
+        ApiStoreVo apiStoreVo = new ApiStoreVo();
+
+        apiStoreVo.setTotal(storeCount);
+        apiStoreVo.setRecords((int) Math.ceil((double) storeCount / (double) reqJson.getInteger("row")));
+        apiStoreVo.setStores(stores);
+
+        ResponseEntity<String> responseEntity = new ResponseEntity<String>(JSONObject.toJSONString(apiStoreVo), HttpStatus.OK);
+
+        context.setResponseEntity(responseEntity);
+
+    }
+
+    /**
+     * 查询商户ID
+     *
+     * @param communityMemberDtos
+     * @return
+     */
+    private String[] getStoreIds(List<CommunityMemberDto> communityMemberDtos) {
+        List<String> storeIds = new ArrayList<>();
+        for (CommunityMemberDto communityMemberDto : communityMemberDtos) {
+            storeIds.add(communityMemberDto.getMemberId());
+        }
+
+        return storeIds.toArray(new String[storeIds.size()]);
+    }
+
+
+}

+ 8 - 2
AppFrontService/src/main/java/com/java110/app/controller/ComplaintController.java

@@ -1,10 +1,12 @@
 package com.java110.app.controller;
 package com.java110.app.controller;
 
 
 import com.alibaba.fastjson.JSONObject;
 import com.alibaba.fastjson.JSONObject;
+import com.java110.app.smo.complaint.ISaveComplaintSMO;
 import com.java110.app.smo.wxLogin.IWxLoginSMO;
 import com.java110.app.smo.wxLogin.IWxLoginSMO;
 import com.java110.core.base.controller.BaseController;
 import com.java110.core.base.controller.BaseController;
 import com.java110.core.context.IPageData;
 import com.java110.core.context.IPageData;
 import com.java110.core.context.PageData;
 import com.java110.core.context.PageData;
+import com.java110.utils.constant.CommonConstant;
 import org.slf4j.Logger;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -26,7 +28,7 @@ public class ComplaintController extends BaseController {
     private final static Logger logger = LoggerFactory.getLogger(ComplaintController.class);
     private final static Logger logger = LoggerFactory.getLogger(ComplaintController.class);
 
 
     @Autowired
     @Autowired
-    private IWxLoginSMO wxLoginSMOImpl;
+    private ISaveComplaintSMO saveComplaintSMOImpl;
 
 
 
 
     /**
     /**
@@ -38,7 +40,11 @@ public class ComplaintController extends BaseController {
     @RequestMapping(path = "/complaint", method = RequestMethod.POST)
     @RequestMapping(path = "/complaint", method = RequestMethod.POST)
     public ResponseEntity<String> complaint(@RequestBody String postInfo, HttpServletRequest request) {
     public ResponseEntity<String> complaint(@RequestBody String postInfo, HttpServletRequest request) {
 
 
-        return wxLoginSMOImpl.doLogin(null);
+        /*IPageData pd = (IPageData) request.getAttribute(CommonConstant.CONTEXT_PAGE_DATA);*/
+
+        IPageData pd = (IPageData) request.getAttribute(CommonConstant.CONTEXT_PAGE_DATA);
+
+        return saveComplaintSMOImpl.save(pd);
     }
     }
 
 
 }
 }

+ 45 - 3
AppFrontService/src/main/java/com/java110/app/smo/complaint/impl/SaveComplaintSMOImpl.java

@@ -1,26 +1,68 @@
 package com.java110.app.smo.complaint.impl;
 package com.java110.app.smo.complaint.impl;
 
 
+import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import com.alibaba.fastjson.JSONObject;
 import com.java110.app.smo.AppAbstractComponentSMO;
 import com.java110.app.smo.AppAbstractComponentSMO;
 import com.java110.app.smo.complaint.ISaveComplaintSMO;
 import com.java110.app.smo.complaint.ISaveComplaintSMO;
+import com.java110.app.smo.wxLogin.impl.WxLoginSMOImpl;
 import com.java110.core.context.IPageData;
 import com.java110.core.context.IPageData;
+import com.java110.utils.constant.ServiceConstant;
+import com.java110.utils.util.Assert;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.HttpMethod;
+import org.springframework.http.HttpStatus;
 import org.springframework.http.ResponseEntity;
 import org.springframework.http.ResponseEntity;
+import org.springframework.stereotype.Service;
+import org.springframework.web.client.RestTemplate;
 
 
 import java.io.IOException;
 import java.io.IOException;
+import java.util.HashMap;
+import java.util.Map;
 
 
+@Service("saveComplaintSMOImpl")
 public class SaveComplaintSMOImpl extends AppAbstractComponentSMO implements ISaveComplaintSMO {
 public class SaveComplaintSMOImpl extends AppAbstractComponentSMO implements ISaveComplaintSMO {
+    private final static Logger logger = LoggerFactory.getLogger(SaveComplaintSMOImpl.class);
+
+    @Autowired
+    private RestTemplate restTemplate;
+
     @Override
     @Override
     public ResponseEntity<String> save(IPageData pd) {
     public ResponseEntity<String> save(IPageData pd) {
-        return null;
+        return businessProcess(pd);
     }
     }
 
 
     @Override
     @Override
     protected void validate(IPageData pd, JSONObject paramIn) {
     protected void validate(IPageData pd, JSONObject paramIn) {
-
+        Assert.hasKeyAndValue(paramIn, "communityId", "请求报文中未包含小区信息");
     }
     }
 
 
     @Override
     @Override
     protected ResponseEntity<String> doBusinessProcess(IPageData pd, JSONObject paramIn) throws IOException {
     protected ResponseEntity<String> doBusinessProcess(IPageData pd, JSONObject paramIn) throws IOException {
-        return null;
+
+        //查询用户ID
+        paramIn.put("userId", pd.getUserId());
+        //查询商户ID
+        Map paramObj = new HashMap();
+        paramObj.put("communityId", paramIn.getString("communityId"));
+        paramObj.put("auditStatusCd", "1100");
+        paramObj.put("memberTypeCd", "390001200002");
+        paramObj.put("page", 1);
+        paramObj.put("row", 1);
+        String url = ServiceConstant.SERVICE_API_URL + "/api/store.listStoresByCommunity" + mapToUrlParam(paramObj);
+        ResponseEntity<String> responseEntity = super.callCenterService(restTemplate, pd, "", url, HttpMethod.GET);
+        if (responseEntity.getStatusCode() != HttpStatus.OK) {
+            return responseEntity;
+        }
+
+        JSONObject storeObj = JSONObject.parseObject(responseEntity.getBody());
+        JSONArray stores = storeObj.getJSONArray("stores");
+        String storeId = stores.getJSONObject(0).getString("storeId");
+        paramIn.put("storeId", storeId);
+        url = ServiceConstant.SERVICE_API_URL + "/api/complaint.saveComplaint";
+        responseEntity = super.callCenterService(restTemplate, pd, paramIn.toJSONString(), url, HttpMethod.POST);
+
+        return responseEntity;
     }
     }
 }
 }

+ 9 - 0
java110-bean/src/main/java/com/java110/dto/store/StoreDto.java

@@ -17,6 +17,7 @@ public class StoreDto extends PageDto implements Serializable {
 
 
 
 
     private String storeId;
     private String storeId;
+    private String[] storeIds;
     private String userId;
     private String userId;
     private String name;
     private String name;
     private String address;
     private String address;
@@ -136,4 +137,12 @@ public class StoreDto extends PageDto implements Serializable {
     public void setStoreTypeName(String storeTypeName) {
     public void setStoreTypeName(String storeTypeName) {
         this.storeTypeName = storeTypeName;
         this.storeTypeName = storeTypeName;
     }
     }
+
+    public String[] getStoreIds() {
+        return storeIds;
+    }
+
+    public void setStoreIds(String[] storeIds) {
+        this.storeIds = storeIds;
+    }
 }
 }

+ 115 - 0
java110-bean/src/main/java/com/java110/vo/api/store/ApiStoreDataVo.java

@@ -0,0 +1,115 @@
+package com.java110.vo.api.store;
+
+import java.io.Serializable;
+import java.util.Date;
+
+public class ApiStoreDataVo implements Serializable {
+    private String storeId;
+    private String userId;
+    private String name;
+    private String address;
+    private String tel;
+    private String storeTypeCd;
+    private String nearByLandmarks;
+    private String mapX;
+    private String mapY;
+    private String storeName;
+    private String storeTypeName;
+    private String createTime;
+
+    public String getStoreId() {
+        return storeId;
+    }
+
+    public void setStoreId(String storeId) {
+        this.storeId = storeId;
+    }
+
+    public String getUserId() {
+        return userId;
+    }
+
+    public void setUserId(String userId) {
+        this.userId = userId;
+    }
+
+    public String getName() {
+        return name;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+
+    public String getAddress() {
+        return address;
+    }
+
+    public void setAddress(String address) {
+        this.address = address;
+    }
+
+    public String getTel() {
+        return tel;
+    }
+
+    public void setTel(String tel) {
+        this.tel = tel;
+    }
+
+    public String getStoreTypeCd() {
+        return storeTypeCd;
+    }
+
+    public void setStoreTypeCd(String storeTypeCd) {
+        this.storeTypeCd = storeTypeCd;
+    }
+
+    public String getNearByLandmarks() {
+        return nearByLandmarks;
+    }
+
+    public void setNearByLandmarks(String nearByLandmarks) {
+        this.nearByLandmarks = nearByLandmarks;
+    }
+
+    public String getMapX() {
+        return mapX;
+    }
+
+    public void setMapX(String mapX) {
+        this.mapX = mapX;
+    }
+
+    public String getMapY() {
+        return mapY;
+    }
+
+    public void setMapY(String mapY) {
+        this.mapY = mapY;
+    }
+
+    public String getStoreName() {
+        return storeName;
+    }
+
+    public void setStoreName(String storeName) {
+        this.storeName = storeName;
+    }
+
+    public String getStoreTypeName() {
+        return storeTypeName;
+    }
+
+    public void setStoreTypeName(String storeTypeName) {
+        this.storeTypeName = storeTypeName;
+    }
+
+    public String getCreateTime() {
+        return createTime;
+    }
+
+    public void setCreateTime(String createTime) {
+        this.createTime = createTime;
+    }
+}

+ 19 - 0
java110-bean/src/main/java/com/java110/vo/api/store/ApiStoreVo.java

@@ -0,0 +1,19 @@
+package com.java110.vo.api.store;
+
+import com.java110.vo.MorePageVo;
+
+import java.io.Serializable;
+import java.util.List;
+
+public class ApiStoreVo extends MorePageVo implements Serializable {
+    List<ApiStoreDataVo> stores;
+
+
+    public List<ApiStoreDataVo> getStores() {
+        return stores;
+    }
+
+    public void setStores(List<ApiStoreDataVo> stores) {
+        this.stores = stores;
+    }
+}

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

@@ -127,6 +127,11 @@ public class ServiceCodeConstant {
      */
      */
     public static final String SERVICE_CODE_SAVE_STORE_INFO = "save.store.info";
     public static final String SERVICE_CODE_SAVE_STORE_INFO = "save.store.info";
 
 
+    /**
+     * 保存商户信息
+     */
+    public static final String SERVICE_CODE_LIST_STORES_BY_COMMUNITY = "store.listStoresByCommunity";
+
     /**
     /**
      * 修改商户信息
      * 修改商户信息
      */
      */