Browse Source

首页功能未开发完成

吴学文 6 years ago
parent
commit
63466d8214

+ 205 - 0
Api/src/main/java/com/java110/api/listener/index/QueryIndexStatisticListener.java

@@ -0,0 +1,205 @@
+package com.java110.api.listener.index;
+
+
+import com.alibaba.fastjson.JSONObject;
+import com.java110.api.listener.AbstractServiceApiDataFlowListener;
+import com.java110.common.constant.ResponseConstant;
+import com.java110.common.constant.ServiceCodeConstant;
+import com.java110.common.exception.ListenerExecuteException;
+import com.java110.common.util.Assert;
+import com.java110.common.util.BeanConvertUtil;
+import com.java110.core.annotation.Java110Listener;
+import com.java110.core.context.DataFlowContext;
+import com.java110.core.smo.fee.IFeeInnerServiceSMO;
+import com.java110.core.smo.floor.IFloorInnerServiceSMO;
+import com.java110.core.smo.owner.IOwnerInnerServiceSMO;
+import com.java110.core.smo.owner.IOwnerRoomRelInnerServiceSMO;
+import com.java110.core.smo.room.IRoomInnerServiceSMO;
+import com.java110.core.smo.unit.IUnitInnerServiceSMO;
+import com.java110.dto.FeeDto;
+import com.java110.dto.OwnerDto;
+import com.java110.dto.OwnerRoomRelDto;
+import com.java110.dto.RoomDto;
+import com.java110.event.service.api.ServiceDataFlowEvent;
+import com.java110.vo.api.ApiFeeVo;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.HttpMethod;
+import org.springframework.http.HttpStatus;
+import org.springframework.http.ResponseEntity;
+
+import java.util.List;
+
+/**
+ * @ClassName FloorDto
+ * @Description 查询首页统计信息
+ * @Author wuxw
+ * @Date 2019/4/24 8:52
+ * @Version 1.0
+ * add by wuxw 2019/4/24
+ **/
+@Java110Listener("queryIndexStatistic")
+public class QueryIndexStatisticListener extends AbstractServiceApiDataFlowListener {
+
+    @Autowired
+    private IFeeInnerServiceSMO feeInnerServiceSMOImpl;
+
+    @Autowired
+    private IRoomInnerServiceSMO roomInnerServiceSMOImpl;
+
+    @Autowired
+    private IUnitInnerServiceSMO unitInnerServiceSMOImpl;
+
+    @Autowired
+    private IFloorInnerServiceSMO floorInnerServiceSMOImpl;
+
+    @Autowired
+    private IOwnerInnerServiceSMO ownerInnerServiceSMOImpl;
+
+    @Autowired
+    private IOwnerRoomRelInnerServiceSMO ownerRoomRelInnerServiceSMOImpl;
+
+    @Override
+    public String getServiceCode() {
+        return ServiceCodeConstant.SERVICE_CODE_QUERY_INDEX_STATISTIC;
+    }
+
+    @Override
+    public HttpMethod getHttpMethod() {
+        return HttpMethod.GET;
+    }
+
+    /**
+     * 业务层数据处理
+     *
+     * @param event 时间对象
+     */
+    @Override
+    public void soService(ServiceDataFlowEvent event) {
+        DataFlowContext dataFlowContext = event.getDataFlowContext();
+        //获取请求数据
+        JSONObject reqJson = dataFlowContext.getReqJson();
+        validateFeeData(reqJson);
+        FeeDto feeDtoParamIn = BeanConvertUtil.covertBean(reqJson, FeeDto.class);
+        feeDtoParamIn.setPayerObjId(reqJson.getString("roomId"));
+
+        List<FeeDto> feeDtos = feeInnerServiceSMOImpl.queryFees(feeDtoParamIn);
+        ResponseEntity<String> responseEntity = null;
+        if (feeDtos == null || feeDtos.size() == 0) {
+            responseEntity = new ResponseEntity<String>("{}", HttpStatus.OK);
+        }
+
+        FeeDto feeDto = feeDtos.get(0);
+
+        ApiFeeVo apiFeeVo = BeanConvertUtil.covertBean(feeDto, ApiFeeVo.class);
+        //apiFeeVo.setStartTime(DateUtil.getFormatTimeString(feeDto.getStartTime(), DateUtil.DATE_FORMATE_STRING_A));
+        //apiFeeVo.setEndTime(DateUtil.getFormatTimeString(feeDto.getEndTime(), DateUtil.DATE_FORMATE_STRING_A));
+
+        //查询 房屋信息
+        RoomDto roomDto = new RoomDto();
+        roomDto.setRoomId(feeDto.getPayerObjId());
+        roomDto.setCommunityId(feeDto.getCommunityId());
+        List<RoomDto> roomDtos = roomInnerServiceSMOImpl.queryRooms(roomDto);
+
+        if (roomDtos == null || roomDtos.size() != 1) {
+            throw new ListenerExecuteException(ResponseConstant.RESULT_CODE_ERROR, "数据错误,未找到房屋信息 roomId" + feeDto.getPayerObjId());
+        }
+
+        roomDto = roomDtos.get(0);
+        /*apiFeeVo.setRoomId(roomDto.getRoomId());
+        apiFeeVo.setRoomNum(roomDto.getRoomNum());*/
+        apiFeeVo = BeanConvertUtil.covertBean(roomDto,apiFeeVo);
+
+        // 业主信息
+        OwnerRoomRelDto ownerRoomRelDto = new OwnerRoomRelDto();
+        ownerRoomRelDto.setRoomId(roomDto.getRoomId());
+        List<OwnerRoomRelDto> ownerRoomRelDtos = ownerRoomRelInnerServiceSMOImpl.queryOwnerRoomRels(ownerRoomRelDto);
+        if (ownerRoomRelDtos == null || ownerRoomRelDtos.size() != 1) {
+            throw new ListenerExecuteException(ResponseConstant.RESULT_CODE_ERROR, "数据错误,未找到房屋和业主关系信息 roomId=" + roomDto.getRoomId());
+        }
+        OwnerDto ownerDto = new OwnerDto();
+        ownerDto.setOwnerId(ownerRoomRelDtos.get(0).getOwnerId());
+        ownerDto.setCommunityId(feeDto.getCommunityId());
+        List<OwnerDto> ownerDtos = ownerInnerServiceSMOImpl.queryOwners(ownerDto);
+
+        if (ownerDtos == null || ownerDtos.size() != 1) {
+            throw new ListenerExecuteException(ResponseConstant.RESULT_CODE_ERROR, "数据错误,未找到业主信息 ownerId=" + ownerRoomRelDtos.get(0).getOwnerId());
+        }
+        ownerDto = ownerDtos.get(0);
+        apiFeeVo.setOwnerId(ownerDto.getOwnerId());
+        apiFeeVo.setOwnerName(ownerDto.getName());
+        apiFeeVo.setLink(ownerDto.getLink());
+
+        responseEntity = new ResponseEntity<String>(JSONObject.toJSONString(apiFeeVo), HttpStatus.OK);
+
+
+        dataFlowContext.setResponseEntity(responseEntity);
+    }
+
+    /**
+     * 校验查询条件是否满足条件
+     *
+     * @param reqJson 包含查询条件
+     */
+    private void validateFeeData(JSONObject reqJson) {
+        Assert.jsonObjectHaveKey(reqJson, "communityId", "请求中未包含communityId信息");
+        Assert.jsonObjectHaveKey(reqJson, "feeTypeCd", "请求中未包含feeTypeCd信息");
+        Assert.jsonObjectHaveKey(reqJson, "roomId", "请求中未包含roomId信息");
+
+
+    }
+
+    @Override
+    public int getOrder() {
+        return super.DEFAULT_ORDER;
+    }
+
+    public IFeeInnerServiceSMO getFeeInnerServiceSMOImpl() {
+        return feeInnerServiceSMOImpl;
+    }
+
+    public void setFeeInnerServiceSMOImpl(IFeeInnerServiceSMO feeInnerServiceSMOImpl) {
+        this.feeInnerServiceSMOImpl = feeInnerServiceSMOImpl;
+    }
+
+
+    public IRoomInnerServiceSMO getRoomInnerServiceSMOImpl() {
+        return roomInnerServiceSMOImpl;
+    }
+
+    public void setRoomInnerServiceSMOImpl(IRoomInnerServiceSMO roomInnerServiceSMOImpl) {
+        this.roomInnerServiceSMOImpl = roomInnerServiceSMOImpl;
+    }
+
+
+    public IFloorInnerServiceSMO getFloorInnerServiceSMOImpl() {
+        return floorInnerServiceSMOImpl;
+    }
+
+    public void setFloorInnerServiceSMOImpl(IFloorInnerServiceSMO floorInnerServiceSMOImpl) {
+        this.floorInnerServiceSMOImpl = floorInnerServiceSMOImpl;
+    }
+
+    public IUnitInnerServiceSMO getUnitInnerServiceSMOImpl() {
+        return unitInnerServiceSMOImpl;
+    }
+
+    public void setUnitInnerServiceSMOImpl(IUnitInnerServiceSMO unitInnerServiceSMOImpl) {
+        this.unitInnerServiceSMOImpl = unitInnerServiceSMOImpl;
+    }
+
+    public IOwnerInnerServiceSMO getOwnerInnerServiceSMOImpl() {
+        return ownerInnerServiceSMOImpl;
+    }
+
+    public void setOwnerInnerServiceSMOImpl(IOwnerInnerServiceSMO ownerInnerServiceSMOImpl) {
+        this.ownerInnerServiceSMOImpl = ownerInnerServiceSMOImpl;
+    }
+
+    public IOwnerRoomRelInnerServiceSMO getOwnerRoomRelInnerServiceSMOImpl() {
+        return ownerRoomRelInnerServiceSMOImpl;
+    }
+
+    public void setOwnerRoomRelInnerServiceSMOImpl(IOwnerRoomRelInnerServiceSMO ownerRoomRelInnerServiceSMOImpl) {
+        this.ownerRoomRelInnerServiceSMOImpl = ownerRoomRelInnerServiceSMOImpl;
+    }
+}

+ 35 - 0
WebService/src/main/java/com/java110/web/components/index/IndexContextComponent.java

@@ -0,0 +1,35 @@
+package com.java110.web.components.index;
+
+
+import com.java110.core.context.IPageData;
+import com.java110.web.smo.IIndexServiceSMO;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.ResponseEntity;
+import org.springframework.stereotype.Component;
+
+@Component("indexContext")
+public class IndexContextComponent  {
+
+
+    @Autowired
+    private IIndexServiceSMO indexServiceSMOImpl;
+    /**
+     * 查询数据
+     *
+     * @param pd 页面数据封装
+     * @return 查询数据 ResponseEntity对象
+     */
+    public ResponseEntity<String> getData(IPageData pd) {
+
+        return indexServiceSMOImpl.getStatisticInformation(pd);
+    }
+
+
+    public IIndexServiceSMO getIndexServiceSMOImpl() {
+        return indexServiceSMOImpl;
+    }
+
+    public void setIndexServiceSMOImpl(IIndexServiceSMO indexServiceSMOImpl) {
+        this.indexServiceSMOImpl = indexServiceSMOImpl;
+    }
+}

+ 17 - 0
WebService/src/main/java/com/java110/web/smo/IIndexServiceSMO.java

@@ -0,0 +1,17 @@
+package com.java110.web.smo;
+
+import com.java110.core.context.IPageData;
+import org.springframework.http.ResponseEntity;
+
+/**
+ * 首页服务类
+ */
+public interface IIndexServiceSMO {
+
+    /**
+     * 获取统计信息
+     * @param pd 页面请求数据
+     * @return ResponseEntity 对象
+     */
+    ResponseEntity<String> getStatisticInformation(IPageData pd);
+}

+ 77 - 0
WebService/src/main/java/com/java110/web/smo/impl/IndexServiceSMOImpl.java

@@ -0,0 +1,77 @@
+package com.java110.web.smo.impl;
+
+import com.alibaba.fastjson.JSONObject;
+import com.java110.common.constant.ServiceConstant;
+import com.java110.common.util.Assert;
+import com.java110.core.context.IPageData;
+import com.java110.web.core.BaseComponentSMO;
+import com.java110.web.smo.IIndexServiceSMO;
+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.stereotype.Service;
+import org.springframework.web.client.RestTemplate;
+
+
+/**
+ * 首页服务类
+ */
+@Service("indexServiceSMOImpl")
+public class IndexServiceSMOImpl extends BaseComponentSMO implements IIndexServiceSMO {
+
+
+    private static Logger logger = LoggerFactory.getLogger(IndexServiceSMOImpl.class);
+
+
+    @Autowired
+    private RestTemplate restTemplate;
+
+    @Override
+    public ResponseEntity<String> getStatisticInformation(IPageData pd) {
+        validateLoadStatisticInformation(pd);
+
+
+        JSONObject paramIn = JSONObject.parseObject(pd.getReqData());
+        String communityId = paramIn.getString("communityId");
+        ResponseEntity responseEntity = super.getStoreInfo(pd, restTemplate);
+        if (responseEntity.getStatusCode() != HttpStatus.OK) {
+            return responseEntity;
+        }
+        Assert.jsonObjectHaveKey(responseEntity.getBody().toString(), "storeId", "根据用户ID查询商户ID失败,未包含storeId节点");
+        Assert.jsonObjectHaveKey(responseEntity.getBody().toString(), "storeTypeCd", "根据用户ID查询商户类型失败,未包含storeTypeCd节点");
+
+        String storeId = JSONObject.parseObject(responseEntity.getBody().toString()).getString("storeId");
+        String storeTypeCd = JSONObject.parseObject(responseEntity.getBody().toString()).getString("storeTypeCd");
+        //数据校验是否 商户是否入驻该小区
+        super.checkStoreEnterCommunity(pd, storeId, storeTypeCd, communityId, restTemplate);
+        responseEntity = this.callCenterService(restTemplate, pd, "",
+                ServiceConstant.SERVICE_API_URL + "/api/index.queryIndexStatistic" + mapToUrlParam(paramIn),
+                HttpMethod.GET);
+
+        return responseEntity;
+    }
+
+    /**
+     * 小区房屋查询数据校验
+     *
+     * @param pd 页面数据封装对象
+     */
+    private void validateLoadStatisticInformation(IPageData pd) {
+        Assert.jsonObjectHaveKey(pd.getReqData(), "communityId", "请求报文中未包含communityId节点");
+
+        JSONObject paramIn = JSONObject.parseObject(pd.getReqData());
+        Assert.hasLength(paramIn.getString("communityId"), "小区ID不能为空");
+    }
+
+
+    public RestTemplate getRestTemplate() {
+        return restTemplate;
+    }
+
+    public void setRestTemplate(RestTemplate restTemplate) {
+        this.restTemplate = restTemplate;
+    }
+}

+ 3 - 6
WebService/src/main/resources/components/index-context/indexContext.js

@@ -32,8 +32,8 @@
                 }
 
                //发送get请求
-               vc.http.get('listOwner',
-                            'list',
+               vc.http.get('indexContext',
+                            'getData',
                              param,
                              function(json,res){
                                 var listOwnerData =JSON.parse(json);
@@ -42,10 +42,7 @@
                                 vc.component.listOwnerInfo.records = listOwnerData.records;
                                 vc.component.listOwnerInfo.owners = listOwnerData.owners;
 
-                                vc.emit('pagination','init',{
-                                    total:vc.component.listOwnerInfo.records,
-                                    currentPage:_page
-                                });
+
                              },function(errInfo,error){
                                 console.log('请求失败处理');
                              }

+ 83 - 0
java110-bean/src/main/java/com/java110/vo/api/ApiIndexStatisticVo.java

@@ -0,0 +1,83 @@
+package com.java110.vo.api;
+
+import com.java110.vo.Vo;
+
+/**
+ * 首页统计信息 对象
+ */
+public class ApiIndexStatisticVo extends Vo {
+
+   private String ownerCount;
+   private String noEnterRoomCount;
+   private String roomCount;
+   private String freeRoomCount;
+   private String parkingSpaceCount;
+   private String freeParkingSpaceCount;
+   private String shopCount;
+   private String freeShopCount;
+
+
+    public String getOwnerCount() {
+        return ownerCount;
+    }
+
+    public void setOwnerCount(String ownerCount) {
+        this.ownerCount = ownerCount;
+    }
+
+    public String getNoEnterRoomCount() {
+        return noEnterRoomCount;
+    }
+
+    public void setNoEnterRoomCount(String noEnterRoomCount) {
+        this.noEnterRoomCount = noEnterRoomCount;
+    }
+
+    public String getRoomCount() {
+        return roomCount;
+    }
+
+    public void setRoomCount(String roomCount) {
+        this.roomCount = roomCount;
+    }
+
+    public String getFreeRoomCount() {
+        return freeRoomCount;
+    }
+
+    public void setFreeRoomCount(String freeRoomCount) {
+        this.freeRoomCount = freeRoomCount;
+    }
+
+    public String getParkingSpaceCount() {
+        return parkingSpaceCount;
+    }
+
+    public void setParkingSpaceCount(String parkingSpaceCount) {
+        this.parkingSpaceCount = parkingSpaceCount;
+    }
+
+    public String getFreeParkingSpaceCount() {
+        return freeParkingSpaceCount;
+    }
+
+    public void setFreeParkingSpaceCount(String freeParkingSpaceCount) {
+        this.freeParkingSpaceCount = freeParkingSpaceCount;
+    }
+
+    public String getShopCount() {
+        return shopCount;
+    }
+
+    public void setShopCount(String shopCount) {
+        this.shopCount = shopCount;
+    }
+
+    public String getFreeShopCount() {
+        return freeShopCount;
+    }
+
+    public void setFreeShopCount(String freeShopCount) {
+        this.freeShopCount = freeShopCount;
+    }
+}

+ 3 - 2
java110-common/src/main/java/com/java110/common/constant/ServiceCodeConstant.java

@@ -428,10 +428,11 @@ public class ServiceCodeConstant {
     //查询费用配置
     public static final String SERVICE_CODE_QUERY_FEE_CONFIG = "fee.queryFeeConfig";
     public static final String SERVICE_CODE_QUERY_FEE_DETAIL = "fee.queryFeeDetail";
-
-    //查询费用配置
     public static final String SERVICE_CODE_QUERY_FEE = "fee.queryFee";
 
+    //查询首页统计信息
+    public static final String SERVICE_CODE_QUERY_INDEX_STATISTIC = "index.queryIndexStatistic";
+
     //查询费用配置 根据停车位
     public static final String SERVICE_CODE_QUERY_FEE_BY_PARKING_SPACE = "fee.queryFeeByParkingSpace";