Kaynağa Gözat

优化代码

Your Name 3 yıl önce
ebeveyn
işleme
5f2ff0afcd

+ 29 - 0
java110-db/src/main/resources/mapper/report/ReportCommunityServiceDaoImplMapper.xml

@@ -272,4 +272,33 @@
         </if>
     </select>
 
+    <select id="queryHisOwnerCount" parameterType="Map" resultType="Map">
+        select count(1) count
+        from business_building_owner t
+        left join c_business cb on t.b_id = cb.b_id
+        left join c_orders co on cb.o_id = co.o_id
+        left join u_user uu on co.user_id = uu.user_id
+        where 1=1
+        and t.member_id = #{memberId}
+        and t.community_id = #{communityId}
+    </select>
+
+    <select id="queryHisOwners" parameterType="Map" resultType="Map">
+        select t.operate,t.sex,t.name,t.link,t.remark,t.owner_id ownerId,t.b_id bId,
+        t.age,t.member_id memberId,
+        t.owner_type_cd ownerTypeCd,t.community_id communityId,t.owner_flag ownerFlag,
+        t.id_card idCard,t.state,t.address,t.create_time createTime,uu.`name` userName
+        from business_building_owner t
+        left join c_business cb on t.b_id = cb.b_id
+        left join c_orders co on cb.o_id = co.o_id
+        left join u_user uu on co.user_id = uu.user_id
+        where 1=1
+        and t.member_id = #{memberId}
+        and t.community_id = #{communityId}
+        order by t.create_time desc,t.operate
+        <if test="page != -1 and page != null ">
+            limit #{page}, #{row}
+        </if>
+    </select>
+
 </mapper>

+ 7 - 0
java110-interface/src/main/java/com/java110/intf/report/IReportCommunityInnerServiceSMO.java

@@ -3,6 +3,7 @@ package com.java110.intf.report;
 import com.java110.config.feign.FeignConfiguration;
 import com.java110.dto.RoomDto;
 import com.java110.dto.owner.OwnerCarDto;
+import com.java110.dto.owner.OwnerDto;
 import org.springframework.cloud.openfeign.FeignClient;
 import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
@@ -64,4 +65,10 @@ public interface IReportCommunityInnerServiceSMO {
      */
     @RequestMapping(value = "/queryHisOwnerCars", method = RequestMethod.POST)
     List<OwnerCarDto> queryHisOwnerCars(@RequestBody OwnerCarDto ownerCarDto);
+
+    @RequestMapping(value = "/queryHisOwnerCount", method = RequestMethod.POST)
+    int queryHisOwnerCount(@RequestBody OwnerDto ownerDto);
+
+    @RequestMapping(value = "/queryHisOwners", method = RequestMethod.POST)
+    List<OwnerDto> queryHisOwners(@RequestBody OwnerDto ownerDto);
 }

+ 55 - 0
service-report/src/main/java/com/java110/report/cmd/owner/QueryHisOwnerCmd.java

@@ -0,0 +1,55 @@
+package com.java110.report.cmd.owner;
+
+import com.alibaba.fastjson.JSONObject;
+import com.java110.core.annotation.Java110Cmd;
+import com.java110.core.context.ICmdDataFlowContext;
+import com.java110.core.event.cmd.Cmd;
+import com.java110.core.event.cmd.CmdEvent;
+import com.java110.dto.owner.OwnerCarDto;
+import com.java110.dto.owner.OwnerDto;
+import com.java110.intf.report.IReportCommunityInnerServiceSMO;
+import com.java110.utils.exception.CmdException;
+import com.java110.utils.util.Assert;
+import com.java110.utils.util.BeanConvertUtil;
+import com.java110.vo.ResultVo;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.ResponseEntity;
+
+import java.text.ParseException;
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * 查询业主变更记录
+ */
+@Java110Cmd(serviceCode = "owner.queryHisOwner")
+public class QueryHisOwnerCmd extends Cmd {
+
+    @Autowired
+    private IReportCommunityInnerServiceSMO reportCommunityInnerServiceSMOImpl;
+
+    @Override
+    public void validate(CmdEvent event, ICmdDataFlowContext context, JSONObject reqJson) throws CmdException, ParseException {
+        Assert.hasKeyAndValue(reqJson,"memberId","未包含业主ID");
+        Assert.hasKeyAndValue(reqJson,"communityId","未包含小区");
+
+    }
+
+    @Override
+    public void doCmd(CmdEvent event, ICmdDataFlowContext context, JSONObject reqJson) throws CmdException, ParseException {
+        int row = reqJson.getInteger("row");
+        OwnerDto ownerDto = BeanConvertUtil.covertBean(reqJson, OwnerDto.class);
+
+        int total = reportCommunityInnerServiceSMOImpl.queryHisOwnerCount(ownerDto);
+//        int count = 0;
+        List<OwnerDto> ownerDtos = null;
+        if (total > 0) {
+            ownerDtos = reportCommunityInnerServiceSMOImpl.queryHisOwners(ownerDto);
+        } else {
+            ownerDtos = new ArrayList<>();
+        }
+
+        ResponseEntity<String> responseEntity = ResultVo.createResponseEntity((int) Math.ceil((double) total / (double) row), total, ownerDtos);
+        context.setResponseEntity(responseEntity);
+    }
+}

+ 4 - 0
service-report/src/main/java/com/java110/report/dao/IReportCommunityServiceDao.java

@@ -95,4 +95,8 @@ public interface IReportCommunityServiceDao {
      * @return
      */
     List<Map> queryHisOwnerCars(Map info);
+
+    int queryHisOwnerCount(Map info);
+
+    List<Map> queryHisOwners(Map info);
 }

+ 21 - 0
service-report/src/main/java/com/java110/report/dao/impl/ReportCommunityServiceDaoImpl.java

@@ -148,4 +148,25 @@ public class ReportCommunityServiceDaoImpl extends BaseServiceDao implements IRe
 
         return businessOwnerCarInfos;
     }
+
+    @Override
+    public int queryHisOwnerCount(Map info) {
+        logger.debug("查询queryHisOwnerCount 入参 info : {}", info);
+
+        List<Map> businessOwnerCarInfos = sqlSessionTemplate.selectList("reportCommunityServiceDaoImpl.queryHisOwnerCount", info);
+        if (businessOwnerCarInfos.size() < 1) {
+            return 0;
+        }
+
+        return Integer.parseInt(businessOwnerCarInfos.get(0).get("count").toString());
+    }
+
+    @Override
+    public List<Map> queryHisOwners(Map info) {
+        logger.debug("查询queryHisOwners 入参 info : {}", info);
+
+        List<Map> businessOwnerCarInfos = sqlSessionTemplate.selectList("reportCommunityServiceDaoImpl.queryHisOwners", info);
+
+        return businessOwnerCarInfos;
+    }
 }

+ 76 - 1
service-report/src/main/java/com/java110/report/smo/impl/ReportCommunityInnerServiceSMOImpl.java

@@ -4,11 +4,15 @@ package com.java110.report.smo.impl;
 import com.java110.core.base.smo.BaseServiceSMO;
 import com.java110.dto.PageDto;
 import com.java110.dto.RoomDto;
+import com.java110.dto.owner.OwnerAttrDto;
 import com.java110.dto.owner.OwnerCarDto;
+import com.java110.dto.owner.OwnerDto;
 import com.java110.dto.ownerCarAttr.OwnerCarAttrDto;
 import com.java110.dto.reportOwnerPayFee.ReportOwnerPayFeeDto;
+import com.java110.dto.user.UserDto;
 import com.java110.intf.report.IReportCommunityInnerServiceSMO;
 import com.java110.intf.report.IReportOwnerPayFeeInnerServiceSMO;
+import com.java110.intf.user.IOwnerAttrInnerServiceSMO;
 import com.java110.po.reportOwnerPayFee.ReportOwnerPayFeePo;
 import com.java110.report.dao.IReportCommunityServiceDao;
 import com.java110.report.dao.IReportOwnerPayFeeServiceDao;
@@ -18,6 +22,7 @@ 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;
@@ -39,7 +44,8 @@ public class ReportCommunityInnerServiceSMOImpl extends BaseServiceSMO implement
     @Autowired
     private IReportCommunityServiceDao reportCommunityServiceDaoImpl;
 
-
+    @Autowired
+    private IOwnerAttrInnerServiceSMO ownerAttrInnerServiceSMOImpl;
 
 
     @Override
@@ -87,4 +93,73 @@ public class ReportCommunityInnerServiceSMOImpl extends BaseServiceSMO implement
         return ownerCars;
     }
 
+    @Override
+    public int queryHisOwnerCount(OwnerDto ownerDto) {
+        return reportCommunityServiceDaoImpl.queryHisOwnerCount(BeanConvertUtil.beanCovertMap(ownerDto));
+    }
+
+    @Override
+    public List<OwnerDto> queryHisOwners(OwnerDto ownerDto) {
+        int page = ownerDto.getPage();
+
+        if (page != PageDto.DEFAULT_PAGE) {
+            ownerDto.setPage((page - 1) * ownerDto.getRow());
+        }
+
+        List<OwnerDto> ownerDtos = BeanConvertUtil.covertBeanList(
+                reportCommunityServiceDaoImpl.queryHisOwners(BeanConvertUtil.beanCovertMap(ownerDto)),
+                OwnerDto.class);
+
+        if (ownerDtos == null || ownerDtos.size()  < 1) {
+            return ownerDtos;
+        }
+        String[] memberIds = getMemberIds(ownerDtos);
+        OwnerAttrDto ownerAttrDto = new OwnerAttrDto();
+        ownerAttrDto.setMemberIds(memberIds);
+        ownerAttrDto.setCommunityId(ownerDto.getCommunityId());
+        List<OwnerAttrDto> ownerAttrDtos = ownerAttrInnerServiceSMOImpl.queryOwnerAttrs(ownerAttrDto);
+
+        for (OwnerDto owner : ownerDtos) {
+            refreshOwner(owner, ownerAttrDtos);
+        }
+
+
+        return ownerDtos;
+    }
+
+    /**
+     * 获取批量userId
+     *
+     * @param owners 小区楼信息
+     * @return 批量userIds 信息
+     */
+    private String[] getMemberIds(List<OwnerDto> owners) {
+        List<String> memberIds = new ArrayList<String>();
+        for (OwnerDto owner : owners) {
+            memberIds.add(owner.getMemberId());
+        }
+
+        return memberIds.toArray(new String[memberIds.size()]);
+    }
+
+    /**
+     * 从用户列表中查询用户,将用户中的信息 刷新到 floor对象中
+     *
+     * @param owner 小区业主信息
+     */
+    private void refreshOwner(OwnerDto owner, List<OwnerAttrDto> ownerAttrDtos) {
+
+        if (ownerAttrDtos == null || ownerAttrDtos.size() < 1) {
+            return;
+        }
+        List<OwnerAttrDto> tmpOwnerAttrDtos = new ArrayList<>();
+        for (OwnerAttrDto ownerAttrDto : ownerAttrDtos) {
+            if (ownerAttrDto.getMemberId().equals(owner.getMemberId())) {
+                tmpOwnerAttrDtos.add(ownerAttrDto);
+            }
+        }
+
+        owner.setOwnerAttrDtos(tmpOwnerAttrDtos);
+    }
+
 }