wuxw 1 год назад
Родитель
Сommit
e70dd8b5e9

+ 94 - 0
service-common/src/main/java/com/java110/common/bmo/mall/impl/GetCommunitysImpl.java

@@ -0,0 +1,94 @@
+package com.java110.common.bmo.mall.impl;
+
+import com.alibaba.fastjson.JSONObject;
+import com.java110.common.bmo.mall.IMallCommonApiBmo;
+import com.java110.core.context.ICmdDataFlowContext;
+import com.java110.dto.area.AreaDto;
+import com.java110.dto.community.CommunityDto;
+import com.java110.intf.common.IAreaInnerServiceSMO;
+import com.java110.intf.community.ICommunityInnerServiceSMO;
+import com.java110.utils.util.Assert;
+import com.java110.utils.util.BeanConvertUtil;
+import com.java110.utils.util.ListUtil;
+import com.java110.vo.api.community.ApiCommunityDataVo;
+import com.java110.vo.api.community.ApiCommunityVo;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.HttpStatus;
+import org.springframework.http.ResponseEntity;
+import org.springframework.stereotype.Service;
+
+import java.util.ArrayList;
+import java.util.List;
+
+@Service("getCommunitysImpl")
+public class GetCommunitysImpl implements IMallCommonApiBmo {
+
+    @Autowired
+    private ICommunityInnerServiceSMO communityInnerServiceSMOImpl;
+
+    @Autowired
+    private IAreaInnerServiceSMO areaInnerServiceSMOImpl;
+
+    @Override
+    public void validate(ICmdDataFlowContext context, JSONObject reqJson) {
+        Assert.hasKeyAndValue(reqJson, "page", "未包含page");
+        Assert.hasKeyAndValue(reqJson, "row", "未包含row");
+
+    }
+
+    @Override
+    public void doCmd(ICmdDataFlowContext context, JSONObject reqJson) {
+        CommunityDto communityDto = BeanConvertUtil.covertBean(reqJson, CommunityDto.class);
+
+        int count = communityInnerServiceSMOImpl.queryCommunitysCount(communityDto);
+
+        List<ApiCommunityDataVo> communitys = null;
+        ApiCommunityDataVo apiCommunityDataVo = null;
+        if (count > 0) {
+            communitys = new ArrayList<>();
+            List<CommunityDto> communityDtos = communityInnerServiceSMOImpl.queryCommunitys(communityDto);
+            for (CommunityDto tmpCommunityDto : communityDtos) {
+                apiCommunityDataVo = BeanConvertUtil.covertBean(tmpCommunityDto, ApiCommunityDataVo.class);
+                apiCommunityDataVo.setCommunityAttrDtos(tmpCommunityDto.getCommunityAttrDtos());
+                communitys.add(apiCommunityDataVo);
+            }
+            refreshCommunityCity(communitys);
+        } else {
+            communitys = new ArrayList<>();
+        }
+        ApiCommunityVo apiCommunityVo = new ApiCommunityVo();
+        apiCommunityVo.setTotal(count);
+        apiCommunityVo.setRecords((int) Math.ceil((double) count / (double) reqJson.getInteger("row")));
+        apiCommunityVo.setCommunitys(communitys);
+        ResponseEntity<String> responseEntity = new ResponseEntity<String>(JSONObject.toJSONString(apiCommunityVo), HttpStatus.OK);
+        context.setResponseEntity(responseEntity);
+    }
+
+    /**
+     * 刷新cityName
+     *
+     * @param communitys
+     */
+    private void refreshCommunityCity(List<ApiCommunityDataVo> communitys) {
+        List<String> areaCodes = new ArrayList<>();
+        for (ApiCommunityDataVo communityDataVo : communitys) {
+            areaCodes.add(communityDataVo.getCityCode());
+        }
+        if (ListUtil.isNull(areaCodes)) {
+            return;
+        }
+        AreaDto areaDto = new AreaDto();
+        areaDto.setAreaCodes(areaCodes.toArray(new String[areaCodes.size()]));
+        List<AreaDto> areaDtos = areaInnerServiceSMOImpl.getProvCityArea(areaDto);
+        for (ApiCommunityDataVo communityDataVo : communitys) {
+            for (AreaDto tmpAreaDto : areaDtos) {
+                if (communityDataVo.getCityCode().equals(tmpAreaDto.getAreaCode())) {
+                    communityDataVo.setCityName(tmpAreaDto.getProvName() + tmpAreaDto.getCityName() + tmpAreaDto.getAreaName());
+                    break;
+                }
+                communityDataVo.setCityName("未知");
+            }
+        }
+
+    }
+}