Преглед изворни кода

加入 停车费初始化 开发测试完成

吴学文 пре 7 година
родитељ
комит
c0eaeb45dc

+ 40 - 0
WebService/src/main/java/com/java110/web/components/fee/ConfigParkingSpaceFeeComponent.java

@@ -0,0 +1,40 @@
+package com.java110.web.components.fee;
+
+import com.java110.core.context.IPageData;
+import com.java110.web.smo.IFeeServiceSMO;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.ResponseEntity;
+import org.springframework.stereotype.Component;
+
+/**
+ * @ClassName ViewPropertyFeeConfigComponent
+ * @Description 展示物业费信息
+ * @Author wuxw
+ * @Date 2019/6/1 14:33
+ * @Version 1.0
+ * add by wuxw 2019/6/1
+ **/
+@Component("configParkingSpaceFee")
+public class ConfigParkingSpaceFeeComponent {
+
+    @Autowired
+    private IFeeServiceSMO feeServiceSMOImpl;
+
+    /**
+     * 修改费用
+     * @param pd 页面上数据封装
+     * @return ResponseEntity 对象
+     */
+    public ResponseEntity<String> change(IPageData pd) {
+        return feeServiceSMOImpl.saveOrUpdateParkingSpaceFeeConfig(pd);
+    }
+
+
+    public IFeeServiceSMO getFeeServiceSMOImpl() {
+        return feeServiceSMOImpl;
+    }
+
+    public void setFeeServiceSMOImpl(IFeeServiceSMO feeServiceSMOImpl) {
+        this.feeServiceSMOImpl = feeServiceSMOImpl;
+    }
+}

+ 40 - 0
WebService/src/main/java/com/java110/web/components/fee/ViewParkingSpaceFeeConfigComponent.java

@@ -0,0 +1,40 @@
+package com.java110.web.components.fee;
+
+import com.java110.core.context.IPageData;
+import com.java110.web.smo.IFeeServiceSMO;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.ResponseEntity;
+import org.springframework.stereotype.Component;
+
+/**
+ * @ClassName ViewPropertyFeeConfigComponent
+ * @Description 展示物业费信息
+ * @Author wuxw
+ * @Date 2019/6/1 14:33
+ * @Version 1.0
+ * add by wuxw 2019/6/1
+ **/
+@Component("viewParkingSpaceFeeConfig")
+public class ViewParkingSpaceFeeConfigComponent {
+
+    @Autowired
+    private IFeeServiceSMO feeServiceSMOImpl;
+
+    /**
+     * 加载 停车费配置信息
+     * @param pd 页面数据封装
+     * @return  ResponseEntity 对象
+     */
+    public ResponseEntity<String> loadData(IPageData pd) {
+        return feeServiceSMOImpl.loadParkingSpaceConfigFee(pd);
+    }
+
+
+    public IFeeServiceSMO getFeeServiceSMOImpl() {
+        return feeServiceSMOImpl;
+    }
+
+    public void setFeeServiceSMOImpl(IFeeServiceSMO feeServiceSMOImpl) {
+        this.feeServiceSMOImpl = feeServiceSMOImpl;
+    }
+}

+ 16 - 0
WebService/src/main/java/com/java110/web/smo/IFeeServiceSMO.java

@@ -17,6 +17,15 @@ public interface IFeeServiceSMO {
      */
     ResponseEntity<String> loadPropertyConfigFee(IPageData pd, String feeTypeCd);
 
+
+    /**
+     * 停车配置费
+     *
+     * @param pd 页面数据封装对象
+     * @return 返回 ResponseEntity对象包含 http状态 信息 body信息
+     */
+    ResponseEntity<String> loadParkingSpaceConfigFee(IPageData pd);
+
     /**
      * 缴费
      *
@@ -48,6 +57,13 @@ public interface IFeeServiceSMO {
      */
     ResponseEntity<String> saveOrUpdatePropertyFeeConfig(IPageData pd);
 
+    /**
+     * 保存或修改停车费配置
+     * @param pd 页面数据封装对象
+     * @return 返回 ResponseEntity对象包含 http状态 信息 body信息
+     */
+    ResponseEntity<String> saveOrUpdateParkingSpaceFeeConfig(IPageData pd);
+
 
 
 }

+ 105 - 2
WebService/src/main/java/com/java110/web/smo/impl/FeeServiceSMOImpl.java

@@ -10,6 +10,7 @@ import com.java110.common.util.StringUtil;
 import com.java110.core.context.IPageData;
 import com.java110.web.core.BaseComponentSMO;
 import com.java110.web.smo.IFeeServiceSMO;
+import org.apache.commons.lang3.StringUtils;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -76,6 +77,50 @@ public class FeeServiceSMOImpl extends BaseComponentSMO implements IFeeServiceSM
         return responseEntity;
     }
 
+
+    @Override
+    public ResponseEntity<String> loadParkingSpaceConfigFee(IPageData pd) {
+        validateLoadPropertyConfigFee(pd);
+
+        //校验员工是否有权限操作
+        super.checkUserHasPrivilege(pd, restTemplate, PrivilegeCodeConstant.PRIVILEGE_PARKING_SPACE_CONFIG_FEE);
+
+        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/fee.queryFeeConfig" + mapToUrlParam(paramIn),
+                HttpMethod.GET);
+        if (responseEntity.getStatusCode() != HttpStatus.OK) {
+            return responseEntity;
+        }
+        JSONArray feeConfigs = JSONArray.parseArray(responseEntity.getBody().toString());
+
+        if (feeConfigs != null && feeConfigs.size() > 1) {
+            responseEntity = new ResponseEntity<String>("数据异常,请检查配置数据", HttpStatus.BAD_REQUEST);
+            return responseEntity;
+        }
+
+        if (feeConfigs != null && feeConfigs.size() > 0) {
+            responseEntity = new ResponseEntity<String>(JSONObject.toJSONString(feeConfigs.get(0)), HttpStatus.OK);
+        } else {
+            responseEntity = new ResponseEntity<String>("{}", HttpStatus.OK);
+
+        }
+
+
+        return responseEntity;
+    }
     @Override
     public ResponseEntity<String> payFee(IPageData pd) {
         validatePayFee(pd);
@@ -106,6 +151,7 @@ public class FeeServiceSMOImpl extends BaseComponentSMO implements IFeeServiceSM
 
     /**
      * 查询主费用
+     *
      * @param pd 页面数据封装对象
      * @return
      */
@@ -158,7 +204,8 @@ public class FeeServiceSMOImpl extends BaseComponentSMO implements IFeeServiceSM
         responseEntity = this.callCenterService(restTemplate, pd, "",
                 ServiceConstant.SERVICE_API_URL + "/api/fee.queryFeeDetail" + mapToUrlParam(paramIn),
                 HttpMethod.GET);
-        return responseEntity;    }
+        return responseEntity;
+    }
 
     /**
      * @param pd 页面数据封装对象
@@ -184,7 +231,7 @@ public class FeeServiceSMOImpl extends BaseComponentSMO implements IFeeServiceSM
         String storeTypeCd = JSONObject.parseObject(responseEntity.getBody().toString()).getString("storeTypeCd");
         //数据校验是否 商户是否入驻该小区
         super.checkStoreEnterCommunity(pd, storeId, storeTypeCd, communityId, restTemplate);
-        paramIn.put("feeTypeCd", FeeTypeConstant.FEE_TYPE_PROPERTY);
+            paramIn.put("feeTypeCd", FeeTypeConstant.FEE_TYPE_PROPERTY);
         if (!paramIn.containsKey("configId") || StringUtil.isEmpty(paramIn.getString("configId"))) {
             responseEntity = this.callCenterService(restTemplate, pd, paramIn.toJSONString(),
                     ServiceConstant.SERVICE_API_URL + "/api/fee.saveFeeConfig",
@@ -199,6 +246,44 @@ public class FeeServiceSMOImpl extends BaseComponentSMO implements IFeeServiceSM
     }
 
 
+    /**
+     * @param pd 页面数据封装对象
+     * @return
+     */
+    @Override
+    public ResponseEntity<String> saveOrUpdateParkingSpaceFeeConfig(IPageData pd) {
+        validateLoadParkingSpaceConfigFee(pd);
+
+        //校验员工是否有权限操作
+        super.checkUserHasPrivilege(pd, restTemplate, PrivilegeCodeConstant.PRIVILEGE_PARKING_SPACE_CONFIG_FEE);
+
+        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);
+
+        if (!paramIn.containsKey("configId") || StringUtil.isEmpty(paramIn.getString("configId"))) {
+            responseEntity = this.callCenterService(restTemplate, pd, paramIn.toJSONString(),
+                    ServiceConstant.SERVICE_API_URL + "/api/fee.saveFeeConfig",
+                    HttpMethod.POST);
+        } else {
+            responseEntity = this.callCenterService(restTemplate, pd, paramIn.toJSONString(),
+                    ServiceConstant.SERVICE_API_URL + "/api/fee.updateFeeConfig",
+                    HttpMethod.POST);
+        }
+
+        return responseEntity;
+    }
+
 
     private void validateLoadFee(IPageData pd) {
         Assert.jsonObjectHaveKey(pd.getReqData(), "communityId", "请求报文中未包含communityId节点");
@@ -213,6 +298,7 @@ public class FeeServiceSMOImpl extends BaseComponentSMO implements IFeeServiceSM
 
     /**
      * 校验缴费参数
+     *
      * @param pd
      */
     private void validatePayFee(IPageData pd) {
@@ -250,6 +336,23 @@ public class FeeServiceSMOImpl extends BaseComponentSMO implements IFeeServiceSM
         Assert.hasLength(paramIn.getString("communityId"), "小区ID不能为空");
     }
 
+    /**
+     * 小区房屋查询数据校验
+     *
+     * @param pd 页面数据封装对象
+     */
+    private void validateLoadParkingSpaceConfigFee(IPageData pd) {
+        validateLoadPropertyConfigFee(pd);
+
+        Assert.jsonObjectHaveKey(pd.getReqData(), "feeTypeCd", "请求报文中未包含feeTypeCd节点");
+
+        JSONObject paramIn = JSONObject.parseObject(pd.getReqData());
+        Assert.hasLength(paramIn.getString("feeTypeCd"), "费用类型不能为空");
+
+
+    }
+
+
     /**
      * 校验数据合法性
      *

+ 23 - 0
WebService/src/main/resources/components/config-parking-space-fee/configParkingSpaceFee.html

@@ -0,0 +1,23 @@
+ <div id = "configParkingSpaceFeeModel" class="modal fade" tabindex="-1" role="dialog" aria-labelledby="exampleModalLabel" aria-hidden="true" >
+    <div class="modal-dialog modal-lg">
+        <div class="modal-content">
+            <div class="modal-body">
+                <h3 class="m-t-none m-b ">编辑{{changeFeeConfigInfo.feeName}}</h3>
+                <div class="ibox-content">
+                    <div>
+                        <div>
+                            <div class="form-group row">
+                                <label class="col-sm-4 col-form-label">{{changeFeeConfigInfo.feeName}}</label>
+                                <div class="col-sm-6"><input v-model="changeFeeConfigInfo.additionalAmount" type="text" placeholder="必填,请填写费用,如200.00" class="form-control"></div>
+                            </div>
+                            <div class="ibox-content">
+                                <button class="btn btn-primary float-right" type="button" v-on:click="saveParkingSpaceConfigFee()" ><i class="fa fa-check"></i>&nbsp;保存</button>
+                                <button type="button" class="btn btn-warning float-right" style="margin-right:20px;" data-dismiss="modal">取消</button>
+                            </div>
+                        </div>
+                    </div>
+                </div>
+            </div>
+        </div>
+    </div>
+</div>

+ 80 - 0
WebService/src/main/resources/components/config-parking-space-fee/configParkingSpaceFee.js

@@ -0,0 +1,80 @@
+(function(vc,vm){
+
+    vc.extends({
+        data:{
+            changeFeeConfigInfo:{
+                configId:"",
+                feeName:'',
+                squarePrice:'0.00',
+                additionalAmount:"",
+                feeTypeCd:'',
+            }
+        },
+         _initMethod:function(){
+
+         },
+         _initEvent:function(){
+             vc.on('configParkingSpaceFee','openConfigParkingSpaceFeeModel',function(_params){
+                vc.copyObject(_params, vc.component.changeFeeConfigInfo);
+                $('#configParkingSpaceFeeModel').modal('show');
+            });
+        },
+        methods:{
+            /**
+                根据楼ID加载房屋
+            **/
+
+            changeFeeConfigValidate:function(){
+                        return vc.validate.validate({
+                            changeFeeConfigInfo:vc.component.changeFeeConfigInfo
+                        },{
+
+                            'changeFeeConfigInfo.additionalAmount':[
+                                {
+                                    limit:"required",
+                                    param:"",
+                                    errInfo:"附加费不能为空"
+                                },
+                                {
+                                    limit:"money",
+                                    param:"",
+                                    errInfo:"必须是金额,如300.00"
+                                },
+                            ],
+
+
+                        });
+             },
+            saveParkingSpaceConfigFee:function(){
+                if(!vc.component.changeFeeConfigValidate()){
+                    vc.message(vc.validate.errInfo);
+                    return ;
+                }
+                vc.component.changeFeeConfigInfo.communityId = vc.getCurrentCommunity().communityId;
+                vc.http.post(
+                    'configParkingSpaceFee',
+                    'change',
+                    JSON.stringify(vc.component.changeFeeConfigInfo),
+                    {
+                        emulateJSON:true
+                     },
+                     function(json,res){
+                        //vm.menus = vm.refreshMenuActive(JSON.parse(json),0);
+                        if(res.status == 200){
+                            //关闭model
+                            $('#configParkingSpaceFeeModel').modal('hide');
+                            vc.emit('viewParkingSpaceFeeConfig','loadParkingSpaceConfigFee',vc.component.changeFeeConfigInfo);
+                            return ;
+                        }
+                        vc.message(json);
+                     },
+                     function(errInfo,error){
+                        console.log('请求失败处理');
+
+                        vc.message(errInfo);
+                     });
+            }
+        }
+    });
+
+})(window.vc,window.vc.component);

+ 119 - 0
WebService/src/main/resources/components/view-parkingSpace-fee-config/viewParkingSpaceFeeConfig.html

@@ -0,0 +1,119 @@
+<div class="row" id="component">
+    <div class="col-lg-12">
+        <div class="ibox ">
+            <div class="ibox-title">
+                <h5>{{feeConfigUpHireInfo.feeName}}信息</h5>
+                <div class="ibox-tools" style="top:10px;">
+                    <button type="button" class="btn btn-primary btn-sm" v-on:click="openConfigParkingSpaceFeeModel(feeConfigUpHireInfo)">
+                        <i class="glyphicon glyphicon-plus"></i> 编辑</button>
+                </div>
+            </div>
+            <div class="ibox-content">
+                <div class="row">
+                    <div class="col-sm-6">
+                        <div class="form-group">
+                            <label class="col-form-label" >地上停车费配置ID:</label>
+                            <label class="">{{feeConfigUpHireInfo.configId}}</label>
+                        </div>
+                    </div>
+                    <div class="col-sm-6">
+                        <div class="form-group">
+                            <label class="col-form-label" >每月费用:</label>
+                            <label class="">{{feeConfigUpHireInfo.additionalAmount}} 元</label>
+                        </div>
+                    </div>
+
+                </div>
+            </div>
+        </div>
+    </div>
+
+    <div class="col-lg-12">
+        <div class="ibox ">
+            <div class="ibox-title">
+                <h5>{{feeConfigDownHireInfo.feeName}}信息</h5>
+                <div class="ibox-tools" style="top:10px;">
+                    <button type="button" class="btn btn-primary btn-sm" v-on:click="openConfigParkingSpaceFeeModel(feeConfigDownHireInfo)">
+                        <i class="glyphicon glyphicon-plus"></i> 编辑</button>
+                </div>
+            </div>
+            <div class="ibox-content">
+                <div class="row">
+                    <div class="col-sm-6">
+                        <div class="form-group">
+                            <label class="col-form-label" >地下停车费配置ID:</label>
+                            <label class="">{{feeConfigDownHireInfo.configId}}</label>
+                        </div>
+                    </div>
+                    <div class="col-sm-6">
+                        <div class="form-group">
+                            <label class="col-form-label" >每月费用:</label>
+                            <label class="">{{feeConfigDownHireInfo.additionalAmount}} 元</label>
+                        </div>
+                    </div>
+
+                </div>
+            </div>
+        </div>
+    </div>
+
+
+    <div class="col-lg-12">
+        <div class="ibox ">
+            <div class="ibox-title">
+                <h5>{{feeConfigUpSellInfo.feeName}}信息</h5>
+                <div class="ibox-tools" style="top:10px;">
+                    <button type="button" class="btn btn-primary btn-sm" v-on:click="openConfigParkingSpaceFeeModel(feeConfigUpSellInfo)">
+                        <i class="glyphicon glyphicon-plus"></i> 编辑</button>
+                </div>
+            </div>
+            <div class="ibox-content">
+                <div class="row">
+                    <div class="col-sm-6">
+                        <div class="form-group">
+                            <label class="col-form-label" >地上停车费配置ID:</label>
+                            <label class="">{{feeConfigUpSellInfo.configId}}</label>
+                        </div>
+                    </div>
+                    <div class="col-sm-6">
+                        <div class="form-group">
+                            <label class="col-form-label" >每月费用:</label>
+                            <label class="">{{feeConfigUpSellInfo.additionalAmount}} 元</label>
+                        </div>
+                    </div>
+
+                </div>
+            </div>
+        </div>
+    </div>
+
+    <div class="col-lg-12">
+        <div class="ibox ">
+            <div class="ibox-title">
+                <h5>{{feeConfigDownSellInfo.feeName}}信息</h5>
+                <div class="ibox-tools" style="top:10px;">
+                    <button type="button" class="btn btn-primary btn-sm" v-on:click="openConfigParkingSpaceFeeModel(feeConfigDownSellInfo)">
+                        <i class="glyphicon glyphicon-plus"></i> 编辑</button>
+                </div>
+            </div>
+            <div class="ibox-content">
+                <div class="row">
+                    <div class="col-sm-6">
+                        <div class="form-group">
+                            <label class="col-form-label" >地下停车费配置ID:</label>
+                            <label class="">{{feeConfigDownSellInfo.configId}}</label>
+                        </div>
+                    </div>
+                    <div class="col-sm-6">
+                        <div class="form-group">
+                            <label class="col-form-label" >每月费用:</label>
+                            <label class="">{{feeConfigDownSellInfo.additionalAmount}} 元</label>
+                        </div>
+                    </div>
+
+                </div>
+            </div>
+        </div>
+    </div>
+    <vc:create name="configParkingSpaceFee"></vc:create>
+</div>

+ 90 - 0
WebService/src/main/resources/components/view-parkingSpace-fee-config/viewParkingSpaceFeeConfig.js

@@ -0,0 +1,90 @@
+/**
+    权限组
+**/
+(function(vc){
+
+    vc.extends({
+        data:{
+            feeConfigUpHireInfo:{
+                configId:"",
+                additionalAmount:"",
+                feeName:"出租地上停车费",
+                feeTypeCd:'888800010004'
+            },
+            feeConfigDownHireInfo:{
+                configId:"",
+                additionalAmount:"",
+                feeName:"出租地下停车费",
+                feeTypeCd:'888800010005'
+            },
+            feeConfigUpSellInfo:{
+                configId:"",
+                additionalAmount:"",
+                feeName:"出售地上停车费",
+                feeTypeCd:'888800010002'
+            },
+            feeConfigDownSellInfo:{
+                configId:"",
+                additionalAmount:"",
+                feeName:"出售地下停车费",
+                feeTypeCd:'888800010003'
+            }
+        },
+        _initMethod:function(){
+                vc.component.loadParkingSpaceConfigFee(vc.component.feeConfigUpHireInfo);
+                vc.component.loadParkingSpaceConfigFee(vc.component.feeConfigDownHireInfo);
+                vc.component.loadParkingSpaceConfigFee(vc.component.feeConfigUpSellInfo);
+                vc.component.loadParkingSpaceConfigFee(vc.component.feeConfigDownSellInfo);
+        },
+        _initEvent:function(){
+            vc.on('viewParkingSpaceFeeConfig','loadParkingSpaceConfigFee',function(_param){
+                vc.component.loadParkingSpaceConfigFee(_param);
+            });
+
+        },
+        methods:{
+
+            openConfigParkingSpaceFeeModel:function(_feeInfo){
+                vc.emit('configParkingSpaceFee','openConfigParkingSpaceFeeModel',_feeInfo);
+
+            },
+            loadParkingSpaceConfigFee:function(_feeInfo){
+                var param = {
+                    params:{
+                        communityId:vc.getCurrentCommunity().communityId,
+                        configId:_feeInfo.configId,
+                        feeTypeCd:_feeInfo.feeTypeCd
+                    }
+                };
+                vc.http.get(
+                    'viewParkingSpaceFeeConfig',
+                    'loadData',
+                     param,
+                     function(json,res){
+                        //vm.menus = vm.refreshMenuActive(JSON.parse(json),0);
+                        if(res.status == 200){
+                            //关闭model
+                            if(_feeInfo.feeTypeCd == vc.component.feeConfigUpHireInfo.feeTypeCd){
+                                   vc.copyObject(JSON.parse(json), vc.component.feeConfigUpHireInfo);
+                            }else if(_feeInfo.feeTypeCd == vc.component.feeConfigDownHireInfo.feeTypeCd){
+                                   vc.copyObject(JSON.parse(json), vc.component.feeConfigDownHireInfo);
+                            }else if(_feeInfo.feeTypeCd == vc.component.feeConfigUpSellInfo.feeTypeCd){
+                                   vc.copyObject(JSON.parse(json), vc.component.feeConfigUpSellInfo);
+                            }else{
+                                   vc.copyObject(JSON.parse(json), vc.component.feeConfigDownSellInfo);
+                            }
+                            return ;
+                        }
+                        vc.message(json);
+                     },
+                     function(errInfo,error){
+                        console.log('请求失败处理');
+
+                        vc.message(errInfo);
+                     });
+            }
+
+        }
+    });
+
+})(window.vc);

+ 33 - 0
WebService/src/main/resources/views/parkingSpaceFeeConfigFlow.html

@@ -0,0 +1,33 @@
+<!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>
+        <!-- id="component" -->
+        <div class="wrapper wrapper-content animated fadeInRight">
+            <vc:create name="viewParkingSpaceFeeConfig"></vc:create>
+        </div>
+
+        <vc:create name="copyright"></vc:create>
+
+    </div>
+</div>
+
+<vc:create name="commonBottom"></vc:create>
+</body>
+</html>

+ 5 - 0
java110-common/src/main/java/com/java110/common/constant/PrivilegeCodeConstant.java

@@ -49,4 +49,9 @@ public final class PrivilegeCodeConstant {
 
     //车位出售
     public static final String PRIVILEGE_CAR = "500201906019";
+
+
+
+    //停车费用配置权限
+    public static final String PRIVILEGE_PARKING_SPACE_CONFIG_FEE = "500201904021";
 }