From 0fea532b07be89978343cb4aede3693af99f5656 Mon Sep 17 00:00:00 2001
From: Your Name <you@example.com>
Date: 星期二, 25 七月 2023 23:04:41 +0800
Subject: [PATCH] Merge branch 'master' of http://git.homecommunity.cn/supervip/MicroCommunity

---
 service-job/src/main/java/com/java110/job/adapt/fee/asyn/impl/UpdateFeeOwnerInfoImpl.java |  115 ++++++++++++++++++++++++++++++++++++++++++++-------------
 1 files changed, 89 insertions(+), 26 deletions(-)

diff --git a/service-job/src/main/java/com/java110/job/adapt/fee/asyn/impl/UpdateFeeOwnerInfoImpl.java b/service-job/src/main/java/com/java110/job/adapt/fee/asyn/impl/UpdateFeeOwnerInfoImpl.java
index ea2b4a8..f426991 100644
--- a/service-job/src/main/java/com/java110/job/adapt/fee/asyn/impl/UpdateFeeOwnerInfoImpl.java
+++ b/service-job/src/main/java/com/java110/job/adapt/fee/asyn/impl/UpdateFeeOwnerInfoImpl.java
@@ -2,19 +2,20 @@
 
 import com.alibaba.fastjson.JSONObject;
 import com.java110.core.factory.GenerateCodeFactory;
-import com.java110.dto.RoomDto;
+import com.java110.dto.room.RoomDto;
 import com.java110.dto.fee.FeeAttrDto;
 import com.java110.dto.fee.FeeDto;
+import com.java110.dto.owner.OwnerCarDto;
 import com.java110.dto.owner.OwnerDto;
-import com.java110.entity.order.Business;
+import com.java110.dto.system.Business;
 import com.java110.intf.community.IRoomInnerServiceSMO;
 import com.java110.intf.fee.IFeeAttrInnerServiceSMO;
 import com.java110.intf.fee.IFeeInnerServiceSMO;
+import com.java110.intf.user.IOwnerCarV1InnerServiceSMO;
 import com.java110.intf.user.IOwnerInnerServiceSMO;
 import com.java110.job.adapt.fee.asyn.IUpdateFeeOwnerInfo;
 import com.java110.po.fee.FeeAttrPo;
 import com.java110.po.owner.OwnerPo;
-import com.java110.utils.util.Assert;
 import com.java110.utils.util.BeanConvertUtil;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.scheduling.annotation.Async;
@@ -38,55 +39,70 @@
 
     @Autowired
     private IOwnerInnerServiceSMO ownerInnerServiceSMOImpl;
+    @Autowired
+    private IOwnerCarV1InnerServiceSMO ownerCarV1InnerServiceSMOImpl;
 
 
     @Override
     @Async
     public void doUpdate(Business business, JSONObject businessOwner) {
         OwnerPo ownerPo = BeanConvertUtil.covertBean(businessOwner, OwnerPo.class);
-
-        RoomDto roomDto = new RoomDto();
-        roomDto.setOwnerId(ownerPo.getOwnerId());
-        //杩欑鎯呭喌璇存槑 涓氫富宸茬粡鍒犳帀浜� 闇�瑕佹煡璇㈢姸鎬佷负 1 鐨勬暟鎹�
-        List<RoomDto> rooms = roomInnerServiceSMOImpl.queryRoomsByOwner(roomDto);
-
-        //娌℃湁鎴垮眿鏃惰繑鍥�
-        if (rooms == null || rooms.size() < 1) {
-            return;
-        }
-
         OwnerDto ownerDto = new OwnerDto();
         ownerDto.setMemberId(ownerPo.getMemberId());
         ownerDto.setCommunityId(ownerPo.getCommunityId());
+        ownerDto.setOwnerTypeCd(OwnerDto.OWNER_TYPE_CD_OWNER);
         List<OwnerDto> ownerDtos = ownerInnerServiceSMOImpl.queryOwnerMembers(ownerDto);
-        Assert.listOnlyOne(ownerDtos, "涓氫富涓嶅瓨鍦�");
+        if (ownerDtos == null || ownerDtos.size() <1) { // 涓嶆槸涓氫富 涓嶇浠�
+            return;
+        }
+
+        List<FeeDto> feeDtos = getRoomFee(ownerPo);
+        if (feeDtos != null) {
+            for (FeeDto tmpFeeDto : feeDtos) {
+                doDealFeeDto(tmpFeeDto, ownerDtos.get(0));
+            }
+        }
+
+        feeDtos = getOwnerCarFee(ownerPo);
+        if (feeDtos != null) {
+            for (FeeDto tmpFeeDto : feeDtos) {
+                doDealFeeDto(tmpFeeDto, ownerDtos.get(0));
+            }
+        }
+
+
+    }
+
+    private List<FeeDto> getOwnerCarFee(OwnerPo ownerPo) {
+        OwnerCarDto ownerCarDto = new OwnerCarDto();
+        ownerCarDto.setOwnerId(ownerPo.getOwnerId());
+        //杩欑鎯呭喌璇存槑 涓氫富宸茬粡鍒犳帀浜� 闇�瑕佹煡璇㈢姸鎬佷负 1 鐨勬暟鎹�
+        List<OwnerCarDto> ownerCarDtos = ownerCarV1InnerServiceSMOImpl.queryOwnerCars(ownerCarDto);
+
+        //娌℃湁鎴垮眿鏃惰繑鍥�
+        if (ownerCarDtos == null || ownerCarDtos.size() < 1) {
+            return null;
+        }
+
 
         //鎷垮埌灏忓尯ID
         String communityId = ownerPo.getCommunityId();
 
         List<String> payerObjIds = new ArrayList<>();
-        for (RoomDto tRoomDto : rooms) {
-            payerObjIds.add(tRoomDto.getUnitId());
-            payerObjIds.add(tRoomDto.getRoomId());
-            payerObjIds.add(tRoomDto.getFloorId());
+        for (OwnerCarDto tmpOwnerCarDto : ownerCarDtos) {
+            payerObjIds.add(tmpOwnerCarDto.getCarId());
         }
-
         FeeDto feeDto = new FeeDto();
         feeDto.setCommunityId(communityId);
         feeDto.setPayerObjIds(payerObjIds.toArray(new String[payerObjIds.size()]));
         feeDto.setState(FeeDto.STATE_DOING);
         List<FeeDto> feeDtos = feeInnerServiceSMOImpl.queryFees(feeDto);
-
-        for (FeeDto tmpFeeDto : feeDtos) {
-            doDealFeeDto(tmpFeeDto, ownerDtos.get(0));
-        }
-
+        return feeDtos;
     }
 
     private void doDealFeeDto(FeeDto tmpFeeDto, OwnerDto ownerDto) {
 
         //鍒ゆ柇鏄惁瀛樺湪 涓氫富鍚嶇О
-
         FeeAttrDto ownerNameAttr = getOwnerFeeAttr(tmpFeeDto, FeeAttrDto.SPEC_CD_OWNER_NAME);
         FeeAttrPo tmpFeeAttrPo = new FeeAttrPo();
         if (ownerNameAttr == null) {
@@ -118,6 +134,22 @@
             feeAttrInnerServiceSMOImpl.updateFeeAttr(tmpFeeAttrPo);
         }
 
+        // todo 鏄惁瀛樺湪 涓氫富ID
+        ownerNameAttr = getOwnerFeeAttr(tmpFeeDto, FeeAttrDto.SPEC_CD_OWNER_ID);
+        tmpFeeAttrPo = new FeeAttrPo();
+        if (ownerNameAttr == null) {
+            tmpFeeAttrPo.setAttrId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_attrId));
+            tmpFeeAttrPo.setCommunityId(ownerDto.getCommunityId());
+            tmpFeeAttrPo.setFeeId(tmpFeeDto.getFeeId());
+            tmpFeeAttrPo.setSpecCd(FeeAttrDto.SPEC_CD_OWNER_ID);
+            tmpFeeAttrPo.setValue(ownerDto.getOwnerId());
+            feeAttrInnerServiceSMOImpl.saveFeeAttr(tmpFeeAttrPo);
+        } else {
+            tmpFeeAttrPo.setAttrId(ownerNameAttr.getAttrId());
+            tmpFeeAttrPo.setValue(ownerDto.getOwnerId());
+            feeAttrInnerServiceSMOImpl.updateFeeAttr(tmpFeeAttrPo);
+        }
+
     }
 
     private FeeAttrDto getOwnerFeeAttr(FeeDto tmpFeeDto, String specCd) {
@@ -134,4 +166,35 @@
         }
         return null;
     }
+
+
+    public List<FeeDto> getRoomFee(OwnerPo ownerPo) {
+        RoomDto roomDto = new RoomDto();
+        roomDto.setOwnerId(ownerPo.getOwnerId());
+        //杩欑鎯呭喌璇存槑 涓氫富宸茬粡鍒犳帀浜� 闇�瑕佹煡璇㈢姸鎬佷负 1 鐨勬暟鎹�
+        List<RoomDto> rooms = roomInnerServiceSMOImpl.queryRoomsByOwner(roomDto);
+
+        //娌℃湁鎴垮眿鏃惰繑鍥�
+        if (rooms == null || rooms.size() < 1) {
+            return null;
+        }
+
+
+        //鎷垮埌灏忓尯ID
+        String communityId = ownerPo.getCommunityId();
+
+        List<String> payerObjIds = new ArrayList<>();
+        for (RoomDto tRoomDto : rooms) {
+            payerObjIds.add(tRoomDto.getUnitId());
+            payerObjIds.add(tRoomDto.getRoomId());
+            payerObjIds.add(tRoomDto.getFloorId());
+        }
+        FeeDto feeDto = new FeeDto();
+        feeDto.setCommunityId(communityId);
+        feeDto.setPayerObjIds(payerObjIds.toArray(new String[payerObjIds.size()]));
+        feeDto.setState(FeeDto.STATE_DOING);
+        List<FeeDto> feeDtos = feeInnerServiceSMOImpl.queryFees(feeDto);
+        return feeDtos;
+    }
+
 }

--
Gitblit v1.8.0