wuxw
2023-10-23 16d1b061d8462aa5da6792cd65e36819b21f9d3f
service-fee/src/main/java/com/java110/fee/cmd/fee/ListFeeCmd.java
@@ -2,12 +2,14 @@
import com.alibaba.fastjson.JSONObject;
import com.java110.core.annotation.Java110Cmd;
import com.java110.core.context.CmdContextUtils;
import com.java110.core.context.ICmdDataFlowContext;
import com.java110.core.event.cmd.Cmd;
import com.java110.core.event.cmd.CmdEvent;
import com.java110.core.factory.CommunitySettingFactory;
import com.java110.core.log.LoggerFactory;
import com.java110.core.smo.IComputeFeeSMO;
import com.java110.core.smo.IOwnerGetDataCheck;
import com.java110.dto.floor.FloorDto;
import com.java110.dto.room.RoomDto;
import com.java110.dto.unit.UnitDto;
@@ -82,6 +84,9 @@
    @Autowired
    private IOwnerInnerServiceSMO ownerInnerServiceSMOImpl;
    @Autowired
    private IOwnerGetDataCheck ownerGetDataCheckImpl;
    //域
    public static final String DOMAIN_COMMON = "DOMAIN.COMMON";
@@ -98,6 +103,9 @@
    public void validate(CmdEvent event, ICmdDataFlowContext cmdDataFlowContext, JSONObject reqJson) {
        super.validatePageInfo(reqJson);
        Assert.hasKeyAndValue(reqJson, "communityId", "未包含小区ID");
        // todo 业主查询合法性校验
        ownerGetDataCheckImpl.checkOwnerFee(CmdContextUtils.getAppId(cmdDataFlowContext), CmdContextUtils.getLoginUserId(cmdDataFlowContext), reqJson);
    }
    @Override
@@ -212,50 +220,56 @@
    private void freshFeeAttrs(List<ApiFeeDataVo> fees, List<FeeDto> feeDtos) {
        String link = "";
        //todo 影响查询性能 注释 by wuxw
//        for (FeeDto feeDto : feeDtos) {
//            if (FeeDto.PAYER_OBJ_TYPE_ROOM.equals(feeDto.getPayerObjType())) { //房屋
//                OwnerRoomRelDto ownerRoomRelDto = new OwnerRoomRelDto();
//                ownerRoomRelDto.setRoomId(feeDto.getPayerObjId());
//                List<OwnerRoomRelDto> ownerRoomRelDtos = ownerRoomRelV1InnerServiceSMOImpl.queryOwnerRoomRels(ownerRoomRelDto);
//                if (ownerRoomRelDtos == null || ownerRoomRelDtos.size() < 1) {
//                    continue;
//                }
//                OwnerDto ownerDto = new OwnerDto();
//                ownerDto.setMemberId(ownerRoomRelDtos.get(0).getOwnerId());
//                List<OwnerDto> ownerDtos = ownerInnerServiceSMOImpl.queryOwners(ownerDto);
//                Assert.listOnlyOne(ownerDtos, "查询业主错误!");
//                link = ownerDtos.get(0).getLink();
//            } else if (FeeDto.PAYER_OBJ_TYPE_CAR.equals(feeDto.getPayerObjType())) {
//                OwnerCarDto ownerCarDto = new OwnerCarDto();
//                ownerCarDto.setMemberId(feeDto.getPayerObjId());
//                List<OwnerCarDto> ownerCarDtos = ownerCarInnerServiceSMOImpl.queryOwnerCars(ownerCarDto);
//                Assert.listOnlyOne(ownerCarDtos, "查询业主车辆表错误!");
//                OwnerDto ownerDto = new OwnerDto();
//                ownerDto.setMemberId(ownerCarDtos.get(0).getOwnerId());
//                List<OwnerDto> ownerDtos = ownerInnerServiceSMOImpl.queryOwners(ownerDto);
//                Assert.listOnlyOne(ownerDtos, "查询业主错误!");
//                link = ownerDtos.get(0).getLink();
//            }
//            FeeAttrDto feeAttrDto = new FeeAttrDto();
//            feeAttrDto.setFeeId(feeDto.getFeeId());
//            List<FeeAttrDto> feeAttrDtos = feeAttrInnerServiceSMOImpl.queryFeeAttrs(feeAttrDto);
//            if (feeAttrDtos == null || feeAttrDtos.size() < 1) {
//                continue;
//            }
//            for (FeeAttrDto feeAttr : feeAttrDtos) {
//                if (!FeeAttrDto.SPEC_CD_OWNER_LINK.equals(feeAttr.getSpecCd())) { //联系方式
//                    continue;
//                }
//                if (feeAttr.getValue().equals(link)) {
//                    continue;
//                }
//                FeeAttrPo feeAttrPo = new FeeAttrPo();
//                feeAttrPo.setAttrId(feeAttr.getAttrId());
//                feeAttrPo.setValue(link);
//                int flag = feeAttrInnerServiceSMOImpl.updateFeeAttr(feeAttrPo);
//                if (flag < 1) {
//                    throw new CmdException("更新业主联系方式失败");
//                }
//
//            }
//        }
        for (ApiFeeDataVo apiFeeDataVo : fees) {
            for (FeeDto feeDto : feeDtos) {
                if (FeeDto.PAYER_OBJ_TYPE_ROOM.equals(feeDto.getPayerObjType())) { //房屋
                    OwnerRoomRelDto ownerRoomRelDto = new OwnerRoomRelDto();
                    ownerRoomRelDto.setRoomId(feeDto.getPayerObjId());
                    List<OwnerRoomRelDto> ownerRoomRelDtos = ownerRoomRelV1InnerServiceSMOImpl.queryOwnerRoomRels(ownerRoomRelDto);
                    if (ownerRoomRelDtos != null && ownerRoomRelDtos.size() == 1) {
                        OwnerDto ownerDto = new OwnerDto();
                        ownerDto.setMemberId(ownerRoomRelDtos.get(0).getOwnerId());
                        List<OwnerDto> ownerDtos = ownerInnerServiceSMOImpl.queryOwners(ownerDto);
                        Assert.listOnlyOne(ownerDtos, "查询业主错误!");
                        link = ownerDtos.get(0).getLink();
                    } else {
                        continue;
                    }
                } else if (FeeDto.PAYER_OBJ_TYPE_CAR.equals(feeDto.getPayerObjType())) {
                    OwnerCarDto ownerCarDto = new OwnerCarDto();
                    ownerCarDto.setMemberId(feeDto.getPayerObjId());
                    List<OwnerCarDto> ownerCarDtos = ownerCarInnerServiceSMOImpl.queryOwnerCars(ownerCarDto);
                    Assert.listOnlyOne(ownerCarDtos, "查询业主车辆表错误!");
                    OwnerDto ownerDto = new OwnerDto();
                    ownerDto.setMemberId(ownerCarDtos.get(0).getOwnerId());
                    List<OwnerDto> ownerDtos = ownerInnerServiceSMOImpl.queryOwners(ownerDto);
                    Assert.listOnlyOne(ownerDtos, "查询业主错误!");
                    link = ownerDtos.get(0).getLink();
                }
                FeeAttrDto feeAttrDto = new FeeAttrDto();
                feeAttrDto.setFeeId(feeDto.getFeeId());
                List<FeeAttrDto> feeAttrDtos = feeAttrInnerServiceSMOImpl.queryFeeAttrs(feeAttrDto);
                if (feeAttrDtos != null || feeAttrDtos.size() > 0) {
                    for (FeeAttrDto feeAttr : feeAttrDtos) {
                        if (!StringUtil.isEmpty(feeAttr.getSpecCd()) && feeAttr.getSpecCd().equals("390009")) { //联系方式
                            if (!feeAttr.getValue().equals(link)) {
                                FeeAttrPo feeAttrPo = new FeeAttrPo();
                                feeAttrPo.setAttrId(feeAttr.getAttrId());
                                feeAttrPo.setValue(link);
                                int flag = feeAttrInnerServiceSMOImpl.updateFeeAttr(feeAttrPo);
                                if (flag < 1) {
                                    throw new CmdException("更新业主联系方式失败");
                                }
                            }
                        }
                    }
                }
                if (apiFeeDataVo.getFeeId().equals(feeDto.getFeeId())) {
                    apiFeeDataVo.setFeeAttrs(feeDto.getFeeAttrDtos());
                }
@@ -375,7 +389,6 @@
        computeFeeSMOImpl.dealRentRate(feeDto);
    }
    /**