wuxw лет назад: 7
Родитель
Сommit
5d2829549a

+ 106 - 0
Api/src/main/java/com/java110/api/listener/unit/QueryUnitsListener.java

@@ -0,0 +1,106 @@
+package com.java110.api.listener.unit;
+
+import com.alibaba.fastjson.JSONObject;
+import com.java110.api.listener.AbstractServiceApiDataFlowListener;
+import com.java110.common.constant.ServiceCodeConstant;
+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.floor.IFloorInnerServiceSMO;
+import com.java110.core.smo.unit.IUnitInnerServiceSMO;
+import com.java110.dto.FloorDto;
+import com.java110.dto.UnitDto;
+import com.java110.event.service.api.ServiceDataFlowEvent;
+import com.java110.vo.api.ApiUnitVo;
+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 QueryUnitsListener
+ * @Description TODO
+ * @Author wuxw
+ * @Date 2019/5/2 19:57
+ * @Version 1.0
+ * add by wuxw 2019/5/2
+ **/
+@Java110Listener("queryUnitsListener")
+public class QueryUnitsListener extends AbstractServiceApiDataFlowListener {
+
+    @Autowired
+    private IUnitInnerServiceSMO unitInnerServiceSMOImpl;
+
+    @Autowired
+    private IFloorInnerServiceSMO floorInnerServiceSMOImpl;
+
+    @Override
+    public String getServiceCode() {
+        return ServiceCodeConstant.SERVICE_CODE_QUERY_UNITS;
+    }
+
+    @Override
+    public HttpMethod getHttpMethod() {
+        return HttpMethod.GET;
+    }
+
+    @Override
+    public void soService(ServiceDataFlowEvent event) {
+
+        DataFlowContext dataFlowContext = event.getDataFlowContext();
+        //获取请求数据
+        JSONObject reqJson = dataFlowContext.getReqJson();
+        validateUnitData(reqJson);
+
+        UnitDto unitDto = BeanConvertUtil.covertBean(reqJson, UnitDto.class);
+
+        List<UnitDto> unitDtoList = unitInnerServiceSMOImpl.queryUnits(unitDto);
+
+        List<ApiUnitVo> apiUnitVos = BeanConvertUtil.covertBeanList(unitDtoList, ApiUnitVo.class);
+
+        ResponseEntity<String> responseEntity = new ResponseEntity<String>(JSONObject.toJSONString(apiUnitVos), HttpStatus.OK);
+        dataFlowContext.setResponseEntity(responseEntity);
+
+    }
+
+    /**
+     * 校验小区单元查询入参信息
+     *
+     * @param reqJson 请求入参信息
+     */
+    private void validateUnitData(JSONObject reqJson) {
+        Assert.jsonObjectHaveKey(reqJson, "communityId", "请求中未包含communityId信息");
+        Assert.jsonObjectHaveKey(reqJson, "floorId", "请求中未包含communityId信息");
+        //校验小区楼ID和小区是否有对应关系
+        int total = floorInnerServiceSMOImpl.queryFloorsCount(BeanConvertUtil.covertBean(reqJson, FloorDto.class));
+
+        if (total < 1) {
+            throw new IllegalArgumentException("传入小区楼ID不是该小区的楼");
+        }
+
+    }
+
+    @Override
+    public int getOrder() {
+        return DEFAULT_ORDER;
+    }
+
+    public IUnitInnerServiceSMO getUnitInnerServiceSMOImpl() {
+        return unitInnerServiceSMOImpl;
+    }
+
+    public void setUnitInnerServiceSMOImpl(IUnitInnerServiceSMO unitInnerServiceSMOImpl) {
+        this.unitInnerServiceSMOImpl = unitInnerServiceSMOImpl;
+    }
+
+    public IFloorInnerServiceSMO getFloorInnerServiceSMOImpl() {
+        return floorInnerServiceSMOImpl;
+    }
+
+    public void setFloorInnerServiceSMOImpl(IFloorInnerServiceSMO floorInnerServiceSMOImpl) {
+        this.floorInnerServiceSMOImpl = floorInnerServiceSMOImpl;
+    }
+}

+ 2 - 4
CommunityService/src/main/java/com/java110/community/smo/impl/UnitInnerServiceSMOImpl.java

@@ -2,12 +2,10 @@ package com.java110.community.smo.impl;
 
 
 import com.java110.common.util.BeanConvertUtil;
-import com.java110.community.dao.IFloorServiceDao;
 import com.java110.community.dao.IUnitServiceDao;
 import com.java110.core.base.smo.BaseServiceSMO;
 import com.java110.core.smo.unit.IUnitInnerServiceSMO;
 import com.java110.core.smo.user.IUserInnerServiceSMO;
-import com.java110.dto.FloorDto;
 import com.java110.dto.PageDto;
 import com.java110.dto.UnitDto;
 import com.java110.dto.UserDto;
@@ -58,7 +56,7 @@ public class UnitInnerServiceSMOImpl extends BaseServiceSMO implements IUnitInne
         List<UserDto> users = userInnerServiceSMOImpl.getUserInfo(userIds);
 
         for (UnitDto unit : units) {
-            refreshFloor(unit, users);
+            refreshUnit(unit, users);
         }
         return units;
     }
@@ -69,7 +67,7 @@ public class UnitInnerServiceSMOImpl extends BaseServiceSMO implements IUnitInne
      * @param unit 小区楼单元信息
      * @param users 用户列表
      */
-    private void refreshFloor(UnitDto unit, List<UserDto> users) {
+    private void refreshUnit(UnitDto unit, List<UserDto> users) {
         for (UserDto user : users) {
             if (unit.getUserId().equals(user.getUserId())) {
                 BeanConvertUtil.covertBean(user, unit);

+ 43 - 0
WebService/src/main/java/com/java110/web/components/unit/UnitComponent.java

@@ -0,0 +1,43 @@
+package com.java110.web.components.unit;
+
+import com.java110.core.context.IPageData;
+import com.java110.web.smo.IUnitServiceSMO;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.ResponseEntity;
+import org.springframework.stereotype.Component;
+
+/**
+ * @ClassName UnitComponent
+ * @Description TODO 小区单元组件java处理类
+ * @Author wuxw
+ * @Date 2019/5/2 19:25
+ * @Version 1.0
+ * add by wuxw 2019/5/2
+ **/
+@Component("unit")
+public class UnitComponent {
+
+
+    @Autowired
+    private IUnitServiceSMO unitServiceSMOImpl;
+
+    /**
+     * 加载小区单元
+     *
+     * @param pd 页面数据封装类
+     * @return ResponseEntity 对象
+     */
+    public ResponseEntity<String> loadUnits(IPageData pd) {
+
+        return unitServiceSMOImpl.listUnits(pd);
+
+    }
+
+    public IUnitServiceSMO getUnitServiceSMOImpl() {
+        return unitServiceSMOImpl;
+    }
+
+    public void setUnitServiceSMOImpl(IUnitServiceSMO unitServiceSMOImpl) {
+        this.unitServiceSMOImpl = unitServiceSMOImpl;
+    }
+}

+ 16 - 8
WebService/src/main/java/com/java110/web/smo/IStaffServiceSMO.java

@@ -11,61 +11,69 @@ public interface IStaffServiceSMO {
 
     /**
      * 保存员工信息
+     *
      * @param pd
      * @return
      */
-    public ResponseEntity<String> saveStaff(IPageData pd);
+    ResponseEntity<String> saveStaff(IPageData pd);
 
 
     /**
      * 加载 员工信息
+     *
      * @param pd
      * @return
      */
-    public ResponseEntity<String> loadData(IPageData pd);
+    ResponseEntity<String> loadData(IPageData pd);
 
 
     /**
      * 修改员工信息
+     *
      * @param pd
      * @return
      */
-    public ResponseEntity<String> modifyStaff(IPageData pd);
+    ResponseEntity<String> modifyStaff(IPageData pd);
 
 
     /**
      * 删除员工
+     *
      * @param pd
      * @return
      */
-    public ResponseEntity<String> delete(IPageData pd);
+    ResponseEntity<String> delete(IPageData pd);
 
     /**
      * 查询员工没有绑定的权限组
+     *
      * @param pd
      * @return
      */
-    public ResponseEntity<String> listNoAddPrivilegeGroup(IPageData pd);
+    ResponseEntity<String> listNoAddPrivilegeGroup(IPageData pd);
 
 
     /**
      * 查询员工没有绑定的权限
+     *
      * @param pd
      * @return
      */
-    public ResponseEntity<String> listNoAddPrivilege(IPageData pd);
+    ResponseEntity<String> listNoAddPrivilege(IPageData pd);
 
     /**
      * 添加权限
+     *
      * @param pd
      * @return
      */
-    public ResponseEntity<String> addStaffPrivilegeOrPrivilegeGroup(IPageData pd);
+    ResponseEntity<String> addStaffPrivilegeOrPrivilegeGroup(IPageData pd);
 
     /**
      * 删除权限
+     *
      * @param pd
      * @return
      */
-    public ResponseEntity<String> deleteStaffPrivilege(IPageData pd);
+    ResponseEntity<String> deleteStaffPrivilege(IPageData pd);
 }

+ 24 - 0
WebService/src/main/java/com/java110/web/smo/IUnitServiceSMO.java

@@ -0,0 +1,24 @@
+package com.java110.web.smo;
+
+import com.java110.core.context.IPageData;
+import org.springframework.http.ResponseEntity;
+
+/**
+ * @ClassName IUnitServiceSMO
+ * @Description TODO 小区单元服务类
+ * @Author wuxw
+ * @Date 2019/5/2 19:27
+ * @Version 1.0
+ * add by wuxw 2019/5/2
+ **/
+public interface IUnitServiceSMO {
+
+    /**
+     * 加载小区单元
+     * 单元目前不考虑 分页问题
+     *
+     * @param pd 页面数据封装 包含小区楼ID
+     * @return ResponseEntity 对象给前段页面
+     */
+    ResponseEntity<String> listUnits(IPageData pd);
+}

+ 90 - 0
WebService/src/main/java/com/java110/web/smo/impl/UnitServiceSMOImpl.java

@@ -0,0 +1,90 @@
+package com.java110.web.smo.impl;
+
+import com.alibaba.fastjson.JSONObject;
+import com.java110.common.constant.PrivilegeCodeConstant;
+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.IUnitServiceSMO;
+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;
+
+/**
+ * @ClassName UnitServiceSMOImpl
+ * @Description TODO
+ * @Author wuxw
+ * @Date 2019/5/2 19:30
+ * @Version 1.0
+ * add by wuxw 2019/5/2
+ **/
+@Service("unitServiceSMOImpl")
+public class UnitServiceSMOImpl extends BaseComponentSMO implements IUnitServiceSMO {
+
+    private static Logger logger = LoggerFactory.getLogger(UnitServiceSMOImpl.class);
+
+
+    @Autowired
+    private RestTemplate restTemplate;
+
+
+    @Override
+    public ResponseEntity<String> listUnits(IPageData pd) {
+
+        validateListUnit(pd);
+
+        //校验用户是否有权限
+        super.checkUserHasPrivilege(pd, restTemplate, PrivilegeCodeConstant.PRIVILEGE_UNIT);
+
+        JSONObject paramIn = JSONObject.parseObject(pd.getReqData());
+        String communityId = paramIn.getString("communityId");
+
+        //小区楼编号
+        String floorId = paramIn.getString("floorId");
+
+        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/unit.queryUnits?floorId=" + floorId + "&communityId="
+                + communityId;
+
+        responseEntity = this.callCenterService(restTemplate, pd, "",
+                apiUrl,
+                HttpMethod.GET);
+        return responseEntity;
+    }
+
+    /**
+     * 小区单元查询数据校验
+     *
+     * @param pd 页面数据封装对象
+     */
+    private void validateListUnit(IPageData pd) {
+        Assert.jsonObjectHaveKey(pd.getReqData(), "communityId", "请求报文中未包含communityId节点");
+        Assert.jsonObjectHaveKey(pd.getReqData(), "floorId", "请求报文中未包含floorId节点");
+    }
+
+
+    public RestTemplate getRestTemplate() {
+        return restTemplate;
+    }
+
+    public void setRestTemplate(RestTemplate restTemplate) {
+        this.restTemplate = restTemplate;
+    }
+}

+ 3 - 3
WebService/src/main/resources/components/search-floor/searchFloor.html

@@ -32,16 +32,16 @@
                                         <th>楼ID</th>
                                         <th>名称</th>
                                         <th>编号</th>
-                                        <th>创建时间</th>
+                                        <th>创建</th>
                                         <th>操作</th>
                                     </tr>
                                     </thead>
                                     <tbody>
                                     <tr v-for="floor in searchFloorInfo.floors">
                                         <td>{{floor.floorId}}</td>
-                                        <td>{{floor.name}}</td>
+                                        <td>{{floor.floorName}}</td>
                                         <td>{{floor.floorNum}}</td>
-                                        <td>{{vc.dateFormat(floor.createTime)}}</td>
+                                        <td>{{floor.userName}}</td>
                                         <td>
                                             <button class="btn btn-primary btn-xs" v-on:click="chooseFloor(floor)">选择</button>
                                         </td>

+ 4 - 4
WebService/src/main/resources/components/search-floor/searchFloor.js

@@ -11,7 +11,7 @@
         },
         _initEvent:function(){
             vc.on('searchFloor','openSearchFloorModel',function(_param){
-                console.log("打开定位员工界面")
+                console.log("打开定位小区楼界面")
                 $('#searchFloorModel').modal('show');
                 vc.component._refreshSearchFloorData();
                 vc.component._loadAllFloorInfo(1,10);
@@ -34,15 +34,15 @@
                              param,
                              function(json){
                                 var _floorInfo = JSON.parse(json);
-                                vc.component.searchFloorInfo.floors = _floorInfo.datas;
+                                vc.component.searchFloorInfo.floors = _floorInfo.apiFloorDataVoList;
                              },function(){
                                 console.log('请求失败处理');
                              }
                            );
             },
             chooseFloor:function(_floor){
-                vc.emit('floorInfo','chooseFloor',_floor);
-                vc.emit('unit','_loadUnits',{
+                vc.emit('unitSelectFloor','chooseFloor',_floor);
+                vc.emit('unit','loadUnit',{
                     floorId:_floor.floorId
                 });
                 $('#searchFloorModel').modal('hide');

+ 1 - 1
WebService/src/main/resources/components/unit-select-floor/unitSelectFloor.html

@@ -23,7 +23,7 @@
                     <div class="col-sm-3">
                         <div class="form-group">
                             <label class="col-form-label">名称:</label>
-                            <label class="">{{floorInfo.name}}</label>
+                            <label class="">{{floorInfo.floorName}}</label>
                         </div>
                     </div>
                     <div class="col-sm-3">

+ 1 - 1
WebService/src/main/resources/components/unit-select-floor/unitSelectFloor.js

@@ -7,7 +7,7 @@
         data:{
             floorInfo:{
                 floorId:"",
-                name:"",
+                floorName:"",
                 floorNum:""
             }
         },

+ 13 - 13
WebService/src/main/resources/components/unit/unit.html

@@ -8,12 +8,12 @@
                     <table class="footable table table-stripped toggle-arrow-tiny" data-page-size="15">
                         <thead>
                         <tr>
-                            <th>权限ID</th>
-                            <th data-hide="phone">权限名称</th>
-                            <th data-hide="phone">权限描述</th>
-                            <th data-hide="phone">隶属权限组ID</th>
-                            <th data-hide="phone,tablet" >隶属权限组名称</th>
-                            <th data-hide="phone">状态</th>
+                            <th>单元ID</th>
+                            <th data-hide="phone">单元编号</th>
+                            <th data-hide="phone">总层数</th>
+                            <th data-hide="phone">是否有电梯</th>
+                            <th data-hide="phone,tablet" >创建人</th>
+                            <th data-hide="phone">备注</th>
                             <th class="text-right">操作</th>
 
                         </tr>
@@ -21,24 +21,24 @@
                         <tbody>
                         <tr v-for="unit in unitInfo.units">
                             <td>
-                                {{unit.pId}}
+                                {{unit.unitId}}
                             </td>
                             <td>
-                                {{unit.name}}
+                                {{unit.unitNum}}
                             </td>
                             <td>
-                                {{unit.description}}
+                                {{unit.layerCount}}
                             </td>
                             <td>
-                                {{unit.pgId}}
+                                {{unit.lift}}
                             </td>
                             <td>
-                                {{unit.pgName}}
+                                {{unit.userName}}
                             </td>
                             <td>
-                                <span class="label label-primary">在用</span>
+                                {{unit.remark}}
                             </td>
-                            <td      class="text-right">
+                            <td class="text-right">
                                 <div class="btn-group">
                                     <button class="btn-white btn btn-xs" v-on:click="_openDeleteUnitModel(unit)">删除</button>
                                 </div>

+ 5 - 4
WebService/src/main/resources/components/unit/unit.js

@@ -17,19 +17,20 @@
         },
         methods:{
             _loadUnits:function(_param){
-                vc.component.staffPrivilegeInfo._currentFloorId=_param.floorId;
+                vc.component.unitInfo._currentFloorId=_param.floorId;
                 var param = {
                     params:{
-                        floorId:_param.floorId
+                        floorId:_param.floorId,
+                        communityId:communityId:vc.getCurrentCommunity().communityId
                     }
                 };
              //发送get请求
             vc.http.get('unit',
-                         'loadUnit',
+                         'loadUnits',
                           param,
                           function(json){
                              var _unitInfo = JSON.parse(json);
-                             vc.component.unitInfo.units = _unitInfo.datas;
+                             vc.component.unitInfo.units = _unitInfo;
 
                           },function(){
                              console.log('请求失败处理');

+ 103 - 0
java110-bean/src/main/java/com/java110/vo/api/ApiUnitVo.java

@@ -0,0 +1,103 @@
+package com.java110.vo.api;
+
+import java.io.Serializable;
+
+/**
+ * @ClassName ApiUnitVo
+ * @Description TODO 小区单元数据分装返回
+ * @Author wuxw
+ * @Date 2019/5/2 20:35
+ * @Version 1.0
+ * add by wuxw 2019/5/2
+ **/
+public class ApiUnitVo implements Serializable {
+
+    //小区单元ID
+    private String unitId;
+
+    //小区楼ID
+    private String floorId;
+
+    //单元编号
+    private String unitNum;
+
+    //小区总层数
+    private String layerCount;
+
+    //是否有电梯
+    private String lift;
+
+    //创建人名称
+    private String userName;
+
+    //备注
+    private String remark;
+
+    //创建时间
+    private String createTime;
+
+
+    public String getUnitId() {
+        return unitId;
+    }
+
+    public void setUnitId(String unitId) {
+        this.unitId = unitId;
+    }
+
+    public String getFloorId() {
+        return floorId;
+    }
+
+    public void setFloorId(String floorId) {
+        this.floorId = floorId;
+    }
+
+    public String getUnitNum() {
+        return unitNum;
+    }
+
+    public void setUnitNum(String unitNum) {
+        this.unitNum = unitNum;
+    }
+
+    public String getLayerCount() {
+        return layerCount;
+    }
+
+    public void setLayerCount(String layerCount) {
+        this.layerCount = layerCount;
+    }
+
+    public String getLift() {
+        return lift;
+    }
+
+    public void setLift(String lift) {
+        this.lift = lift;
+    }
+
+    public String getUserName() {
+        return userName;
+    }
+
+    public void setUserName(String userName) {
+        this.userName = userName;
+    }
+
+    public String getRemark() {
+        return remark;
+    }
+
+    public void setRemark(String remark) {
+        this.remark = remark;
+    }
+
+    public String getCreateTime() {
+        return createTime;
+    }
+
+    public void setCreateTime(String createTime) {
+        this.createTime = createTime;
+    }
+}

+ 10 - 2
java110-common/src/main/java/com/java110/common/constant/PrivilegeCodeConstant.java

@@ -4,12 +4,20 @@ package com.java110.common.constant;
 /**
  * 权限编码常量类
  */
-public class PrivilegeCodeConstant {
+public final class PrivilegeCodeConstant {
+
+    private PrivilegeCodeConstant() {
+
+    }
 
     //入驻小区
-    public static final  String PRIVILEGE_ENTER_COMMUNITY = "500201904008";
+    public static final String PRIVILEGE_ENTER_COMMUNITY = "500201904008";
 
 
     //初始化楼
     public static final String PRIVILEGE_FLOOR = "500201904011";
+
+
+    //初始化小区楼单元
+    public static final String PRIVILEGE_UNIT = "500201904012";
 }

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

@@ -366,4 +366,7 @@ public class ServiceCodeConstant {
 
     //删除小区楼信息
     public static final String SERVICE_CODE_DELETE_FLOOR = "floor.deleteFloor";
+
+    //查询小区单元
+    public static final String SERVICE_CODE_QUERY_UNITS = "floor.queryUnits";
 }