Parcourir la source

加入剩余车位

wuxw il y a 6 ans
Parent
commit
978b1e3401

+ 40 - 0
WebService/src/main/java/com/java110/web/components/parkingSpace/RemainingParkingSpaceComponent.java

@@ -0,0 +1,40 @@
+
+package com.java110.web.components.parkingSpace;
+
+
+import com.java110.core.context.IPageData;
+import com.java110.web.smo.IParkingSpaceServiceSMO;
+import com.java110.web.smo.IRemainingParkingSpaceServiceSMO;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.ResponseEntity;
+import org.springframework.stereotype.Component;
+
+/**
+ * 停车位 组件处理类
+ */
+@Component("remainingParkingSpace")
+public class RemainingParkingSpaceComponent {
+
+    
+    @Autowired
+    private IRemainingParkingSpaceServiceSMO remainingParkingSpaceServiceSMOImpl;
+
+    /**
+     * 显示 停车位
+     *
+     * @param pd 页面数据封装对象
+     * @return 停车位信息
+     */
+    public ResponseEntity<String> list(IPageData pd) {
+
+        return remainingParkingSpaceServiceSMOImpl.list(pd);
+    }
+
+    public IRemainingParkingSpaceServiceSMO getRemainingParkingSpaceServiceSMOImpl() {
+        return remainingParkingSpaceServiceSMOImpl;
+    }
+
+    public void setRemainingParkingSpaceServiceSMOImpl(IRemainingParkingSpaceServiceSMO remainingParkingSpaceServiceSMOImpl) {
+        this.remainingParkingSpaceServiceSMOImpl = remainingParkingSpaceServiceSMOImpl;
+    }
+}

+ 19 - 0
WebService/src/main/java/com/java110/web/smo/IRemainingParkingSpaceServiceSMO.java

@@ -0,0 +1,19 @@
+package com.java110.web.smo;
+
+import com.java110.core.context.IPageData;
+import org.springframework.http.ResponseEntity;
+
+/**
+ * 剩余车位
+ */
+public interface IRemainingParkingSpaceServiceSMO {
+
+    /**
+     * 剩余车位
+     *
+     * @param pd 页面数据封装对象
+     * @return 返回 ResponseEntity对象包含 http状态 信息 body信息
+     */
+    ResponseEntity<String> list(IPageData pd);
+
+}

+ 95 - 0
WebService/src/main/java/com/java110/web/smo/impl/RemainingPackingSpaceServiceSMOImpl.java

@@ -0,0 +1,95 @@
+package com.java110.web.smo.impl;
+
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
+import com.java110.core.component.BaseComponentSMO;
+import com.java110.core.context.IPageData;
+import com.java110.utils.constant.PrivilegeCodeConstant;
+import com.java110.utils.constant.ResponseConstant;
+import com.java110.utils.constant.ServiceConstant;
+import com.java110.utils.exception.SMOException;
+import com.java110.utils.util.Assert;
+import com.java110.web.smo.IRemainingParkingSpaceServiceSMO;
+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;
+
+import java.util.HashMap;
+import java.util.Map;
+
+/**
+ * 小区楼实现类
+ * <p>
+ * add by wuxw 2019-04-22
+ */
+
+@Service("remainingPackingSpaceServiceSMOImpl")
+public class RemainingPackingSpaceServiceSMOImpl extends BaseComponentSMO implements IRemainingParkingSpaceServiceSMO {
+
+    private static Logger logger = LoggerFactory.getLogger(RemainingPackingSpaceServiceSMOImpl.class);
+
+
+    @Autowired
+    private RestTemplate restTemplate;
+
+    /**
+     * 查询小区楼
+     *
+     * @param pd 页面数据封装对象
+     * @return 返回 ResponseEntity对象包含 http状态 信息 body信息
+     */
+    @Override
+    public ResponseEntity<String> list(IPageData pd) {
+
+        validateRemainingParkingSpace(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);
+        String apiUrl = ServiceConstant.SERVICE_API_URL + "/api/machineTranslate.machineGetFreeParkingSpace" + mapToUrlParam(paramIn);
+
+
+        responseEntity = this.callCenterService(restTemplate, pd, "",
+                apiUrl,
+                HttpMethod.GET);
+
+        return responseEntity;
+    }
+
+
+    /**
+     * 校验查询小区楼信息
+     *
+     * @param pd 页面封装对象
+     */
+    private void validateRemainingParkingSpace(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;
+    }
+}

+ 55 - 0
WebService/src/main/resources/components/parkingSpacePackage/remaining-parking-space/remainingParkingSpace.html

@@ -0,0 +1,55 @@
+<div id="component" >
+
+    <div class="row">
+        <div class="col-lg-12">
+            <div class="ibox">
+                <div class="ibox-title">
+                    <h5>剩余车位</h5>
+                    <div class="ibox-tools" style="top:10px;">
+                    </div>
+                </div>
+                <div class="ibox-content">
+
+                    <table class="footable table table-stripped toggle-arrow-tiny" data-page-size="15">
+                        <thead>
+                        <tr>
+                            <th>总车位数</th>
+                            <th data-hide="phone">剩余车位数</th>
+                            <th data-hide="phone">采集时间</th>
+                            <th class="text-right">操作</th>
+                        </tr>
+                        </thead>
+                        <tbody>
+                        <tr>
+                            <td>
+                                {{remainingParkingSpaceInfo.total}}位
+                            </td>
+
+                            <td>
+                                {{remainingParkingSpaceInfo.freeCount}}位
+                            </td>
+                            <td>
+                                {{remainingParkingSpaceInfo.createTime}}
+                            </td>
+                            <td class="text-right">
+                                <div class="btn-group">
+                                    <button class="btn-white btn btn-xs" v-on:click="_freshRemainingParkingSpace()">刷新</button>
+                                </div>
+                            </td>
+                        </tr>
+                        </tbody>
+                        <tfoot>
+                        <tr>
+                            <td colspan="7">
+                                <ul class="pagination float-right"></ul>
+                            </td>
+                        </tr>
+                        </tfoot>
+                    </table>
+
+                </div>
+            </div>
+        </div>
+    </div>
+
+</div>

+ 45 - 0
WebService/src/main/resources/components/parkingSpacePackage/remaining-parking-space/remainingParkingSpace.js

@@ -0,0 +1,45 @@
+(function (vc) {
+    vc.extends({
+        data: {
+            remainingParkingSpaceInfo: {
+                total: 0,
+                freeCount: 0,
+                createTime: vc.dateFormat(new Date().getTime())
+            }
+        },
+        _initMethod: function () {
+            vc.component._listRemainingParkingSpaceData();
+        },
+        _initEvent: function () {
+
+        },
+        methods: {
+            _listRemainingParkingSpaceData: function () {
+                var param = {
+                    params: {
+                        communityId: vc.getCurrentCommunity().communityId
+                    }
+                }
+
+                //发送get请求
+                vc.http.get('remainingParkingSpace',
+                    'list',
+                    param,
+                    function (json, res) {
+                        var listParkingSpaceData = JSON.parse(json).data;
+
+                        vc.component.remainingParkingSpaceInfo.total = listParkingSpaceData.total;
+                        vc.component.remainingParkingSpaceInfo.freeCount = listParkingSpaceData.freeCount;
+                        vc.component.remainingParkingSpaceInfo.createTime = vc.dateFormat(new Date().getTime());
+                    }, function (errInfo, error) {
+                        console.log('请求失败处理');
+                    }
+                );
+
+            },
+            _freshRemainingParkingSpace:function(){
+                vc.component._listRemainingParkingSpaceData();
+            }
+        }
+    })
+})(window.vc);

+ 36 - 0
WebService/src/main/resources/views/remainingParkingSpaceFlow.html

@@ -0,0 +1,36 @@
+<!DOCTYPE html>
+<html lang="en"
+      xmlns="http://www.w3.org/1999/xhtml"
+      xmlns:th="http://www.thymeleaf.org"
+      xmlns:vc="http://www.thymeleaf.org">
+<head>
+    <meta charset="UTF-8"/>
+    <title>剩余车位|java110</title>
+    <vc:create name="commonTop"></vc:create>
+</head>
+<body>
+<vc:create name="bodyTop"></vc:create>
+<div id="wrapper">
+    <vc:create name="menu"></vc:create>
+
+
+    <div id="page-wrapper" class="gray-bg dashbard-1">
+        <div class="row border-bottom">
+            <vc:create name="nav"></vc:create>
+        </div>
+        <div class="wrapper wrapper-content" style="padding-bottom: 0px;">
+            <vc:create name="breadcrumb"></vc:create>
+        </div>
+        <!-- id="component" -->
+        <div class="wrapper wrapper-content animated fadeInRight">
+            <vc:create name="remainingParkingSpace"></vc:create>
+        </div>
+
+        <vc:create name="copyright"></vc:create>
+
+    </div>
+</div>
+
+<vc:create name="commonBottom"></vc:create>
+</body>
+</html>