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

+ 11 - 0
java110-bean/src/main/java/com/java110/dto/parking/ParkingAreaDto.java

@@ -1,9 +1,11 @@
 package com.java110.dto.parking;
 
 import com.java110.dto.PageDto;
+import com.java110.dto.parkingAreaAttr.ParkingAreaAttrDto;
 
 import java.io.Serializable;
 import java.util.Date;
+import java.util.List;
 
 /**
  * @ClassName FloorDto
@@ -21,6 +23,7 @@ public class ParkingAreaDto extends PageDto implements Serializable {
     private String[] paIds;
     private String remark;
     private String communityId;
+    private List<ParkingAreaAttrDto> attrs;
 
 
     private String createTime;
@@ -91,4 +94,12 @@ public class ParkingAreaDto extends PageDto implements Serializable {
     public void setPaIds(String[] paIds) {
         this.paIds = paIds;
     }
+
+    public List<ParkingAreaAttrDto> getAttrs() {
+        return attrs;
+    }
+
+    public void setAttrs(List<ParkingAreaAttrDto> attrs) {
+        this.attrs = attrs;
+    }
 }

+ 6 - 0
java110-db/src/main/resources/mapper/community/ParkingAreaAttrServiceDaoImplMapper.xml

@@ -95,6 +95,12 @@
         <if test="paId !=null and paId != ''">
             and t.pa_id= #{paId}
         </if>
+        <if test="paIds !=null">
+            and t.pa_id in
+            <foreach collection="paIds" item="item" open="(" close=")" separator=",">
+                #{item}
+            </foreach>
+        </if>
         <if test="specCd !=null and specCd != ''">
             and t.spec_cd= #{specCd}
         </if>

+ 3 - 1
service-api/src/main/java/com/java110/api/bmo/parkingArea/impl/ParkingAreaBMOImpl.java

@@ -4,6 +4,7 @@ import com.alibaba.fastjson.JSONObject;
 import com.java110.api.bmo.ApiBaseBMO;
 import com.java110.api.bmo.parkingArea.IParkingAreaBMO;
 import com.java110.core.context.DataFlowContext;
+import com.java110.core.factory.GenerateCodeFactory;
 import com.java110.po.parking.ParkingAreaPo;
 import com.java110.utils.constant.BusinessTypeConstant;
 import com.java110.utils.util.BeanConvertUtil;
@@ -44,9 +45,10 @@ public class ParkingAreaBMOImpl extends ApiBaseBMO implements IParkingAreaBMO {
 
         JSONObject businessParkingArea = new JSONObject();
         businessParkingArea.putAll(paramInJson);
-        businessParkingArea.put("paId", "-1");
+        businessParkingArea.put("paId", GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_paId));
         ParkingAreaPo parkingAreaPo = BeanConvertUtil.covertBean(businessParkingArea, ParkingAreaPo.class);
         super.insert(dataFlowContext, parkingAreaPo, BusinessTypeConstant.BUSINESS_TYPE_SAVE_PARKING_AREA);
+        paramInJson.put("paId", businessParkingArea.getString("paId"));
     }
 
     /**

+ 30 - 0
service-api/src/main/java/com/java110/api/listener/parkingArea/SaveParkingAreaListener.java

@@ -1,7 +1,9 @@
 package com.java110.api.listener.parkingArea;
 
+import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import com.java110.api.bmo.parkingArea.IParkingAreaBMO;
+import com.java110.api.bmo.parkingAreaAttr.IParkingAreaAttrBMO;
 import com.java110.api.listener.AbstractServiceApiPlusListener;
 import com.java110.core.annotation.Java110Listener;
 import com.java110.core.context.DataFlowContext;
@@ -20,6 +22,9 @@ public class SaveParkingAreaListener extends AbstractServiceApiPlusListener {
     @Autowired
     private IParkingAreaBMO parkingAreaBMOImpl;
 
+    @Autowired
+    private IParkingAreaAttrBMO parkingAreaAttrBMOImpl;
+
     @Override
     protected void validate(ServiceDataFlowEvent event, JSONObject reqJson) {
         //Assert.hasKeyAndValue(reqJson, "xxx", "xxx");
@@ -28,6 +33,9 @@ public class SaveParkingAreaListener extends AbstractServiceApiPlusListener {
         Assert.hasKeyAndValue(reqJson, "communityId", "必填,请填写小区信息");
         Assert.hasKeyAndValue(reqJson, "typeCd", "必填,请选择停车场类型");
 
+        //属性校验
+        Assert.judgeAttrValue(reqJson);
+
     }
 
     @Override
@@ -37,6 +45,28 @@ public class SaveParkingAreaListener extends AbstractServiceApiPlusListener {
         //添加单元信息
         parkingAreaBMOImpl.addParkingArea(reqJson, context);
 
+        dealAttr(reqJson, context);
+    }
+
+    private void dealAttr(JSONObject paramObj, DataFlowContext context) {
+
+        if (!paramObj.containsKey("attrs")) {
+            return;
+        }
+
+        JSONArray attrs = paramObj.getJSONArray("attrs");
+        if (attrs.size() < 1) {
+            return;
+        }
+
+
+        JSONObject attr = null;
+        for (int attrIndex = 0; attrIndex < attrs.size(); attrIndex++) {
+            attr = attrs.getJSONObject(attrIndex);
+            attr.put("communityId", paramObj.getString("communityId"));
+            attr.put("paId", paramObj.getString("paId"));
+            parkingAreaAttrBMOImpl.addParkingAreaAttr(attr, context);
+        }
 
     }
 

+ 28 - 0
service-api/src/main/java/com/java110/api/listener/parkingArea/UpdateParkingAreaListener.java

@@ -1,13 +1,16 @@
 package com.java110.api.listener.parkingArea;
 
+import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import com.java110.api.bmo.parkingArea.IParkingAreaBMO;
+import com.java110.api.bmo.parkingAreaAttr.IParkingAreaAttrBMO;
 import com.java110.api.listener.AbstractServiceApiPlusListener;
 import com.java110.core.annotation.Java110Listener;
 import com.java110.core.context.DataFlowContext;
 import com.java110.core.event.service.api.ServiceDataFlowEvent;
 import com.java110.utils.constant.ServiceCodeParkingAreaConstant;
 import com.java110.utils.util.Assert;
+import com.java110.utils.util.StringUtil;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.http.HttpMethod;
 
@@ -21,6 +24,9 @@ public class UpdateParkingAreaListener extends AbstractServiceApiPlusListener {
     @Autowired
     private IParkingAreaBMO parkingAreaBMOImpl;
 
+    @Autowired
+    private IParkingAreaAttrBMO parkingAreaAttrBMOImpl;
+
     @Override
     protected void validate(ServiceDataFlowEvent event, JSONObject reqJson) {
 
@@ -29,12 +35,34 @@ public class UpdateParkingAreaListener extends AbstractServiceApiPlusListener {
         Assert.hasKeyAndValue(reqJson, "communityId", "必填,请填写小区信息");
         Assert.hasKeyAndValue(reqJson, "typeCd", "必填,请选择停车场类型");
 
+        Assert.judgeAttrValue(reqJson);
+
     }
 
     @Override
     protected void doSoService(ServiceDataFlowEvent event, DataFlowContext context, JSONObject reqJson) {
 
         parkingAreaBMOImpl.updateParkingArea(reqJson, context);
+
+        if (!reqJson.containsKey("attrs")) {
+            return;
+        }
+
+        JSONArray attrs = reqJson.getJSONArray("attrs");
+        if (attrs.size() < 1) {
+            return;
+        }
+
+        JSONObject attr = null;
+        for (int attrIndex = 0; attrIndex < attrs.size(); attrIndex++) {
+            attr = attrs.getJSONObject(attrIndex);
+            attr.put("communityId", reqJson.getString("communityId"));
+            if (!attr.containsKey("attrId") || attr.getString("attrId").startsWith("-") || StringUtil.isEmpty(attr.getString("attrId"))) {
+                parkingAreaAttrBMOImpl.addParkingAreaAttr(attr, context);
+                continue;
+            }
+            parkingAreaAttrBMOImpl.updateParkingAreaAttr(attr, context);
+        }
     }
 
     @Override

+ 37 - 2
service-community/src/main/java/com/java110/community/smo/impl/ParkingAreaInnerServiceSMOImpl.java

@@ -1,18 +1,23 @@
 package com.java110.community.smo.impl;
 
 
+import com.java110.community.dao.IParkingAreaAttrServiceDao;
 import com.java110.community.dao.IParkingAreaServiceDao;
 import com.java110.core.base.smo.BaseServiceSMO;
-import com.java110.intf.community.IParkingAreaInnerServiceSMO;
-import com.java110.intf.user.IUserInnerServiceSMO;
 import com.java110.dto.PageDto;
 import com.java110.dto.parking.ParkingAreaDto;
+import com.java110.dto.parkingAreaAttr.ParkingAreaAttrDto;
+import com.java110.intf.community.IParkingAreaInnerServiceSMO;
+import com.java110.intf.user.IUserInnerServiceSMO;
 import com.java110.utils.util.BeanConvertUtil;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RestController;
 
+import java.util.ArrayList;
+import java.util.HashMap;
 import java.util.List;
+import java.util.Map;
 
 /**
  * @ClassName FloorInnerServiceSMOImpl
@@ -27,6 +32,8 @@ public class ParkingAreaInnerServiceSMOImpl extends BaseServiceSMO implements IP
 
     @Autowired
     private IParkingAreaServiceDao parkingAreaServiceDaoImpl;
+    @Autowired
+    private IParkingAreaAttrServiceDao parkingAreaAttrServiceDaoImpl;
 
     @Autowired
     private IUserInnerServiceSMO userInnerServiceSMOImpl;
@@ -44,10 +51,38 @@ public class ParkingAreaInnerServiceSMOImpl extends BaseServiceSMO implements IP
 
         List<ParkingAreaDto> parkingAreas = BeanConvertUtil.covertBeanList(parkingAreaServiceDaoImpl.getParkingAreaInfo(BeanConvertUtil.beanCovertMap(parkingAreaDto)), ParkingAreaDto.class);
 
+        freshParkingAreas(parkingAreas);
         return parkingAreas;
     }
 
+    private void freshParkingAreas(List<ParkingAreaDto> parkingAreas) {
+
+        List<String> paIds = new ArrayList<>();
 
+        if (parkingAreas == null || parkingAreas.size() < 1) {
+            return;
+        }
+        for (ParkingAreaDto parkingArea : parkingAreas) {
+            paIds.add(parkingArea.getPaId());
+        }
+
+        Map info = new HashMap();
+        info.put("paIds", paIds.toArray(new String[paIds.size()]));
+        List<ParkingAreaAttrDto> parkingAreaAttrDtos = BeanConvertUtil.covertBeanList(parkingAreaAttrServiceDaoImpl.getParkingAreaAttrInfo(info), ParkingAreaAttrDto.class);
+
+        if (parkingAreaAttrDtos == null || parkingAreaAttrDtos.size() < 1) {
+            return;
+        }
+        for (ParkingAreaDto parkingArea : parkingAreas) {
+            List<ParkingAreaAttrDto> tmpParkingAreaAttrDtos = new ArrayList<>();
+            for (ParkingAreaAttrDto parkingAreaAttrDto : parkingAreaAttrDtos) {
+                if (parkingArea.getPaId().equals(parkingAreaAttrDto.getPaId())) {
+                    tmpParkingAreaAttrDtos.add(parkingAreaAttrDto);
+                }
+            }
+            parkingArea.setAttrs(tmpParkingAreaAttrDtos);
+        }
+    }
 
 
     @Override