java110
2023-03-31 8d7554d5e7e6d9f5576fd7b94baf68c27f3ca4c2
optimize owner member
1个文件已修改
54 ■■■■■ 已修改文件
service-fee/src/main/java/com/java110/fee/cmd/fee/PayFeeCmd.java 54 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
service-fee/src/main/java/com/java110/fee/cmd/fee/PayFeeCmd.java
@@ -38,6 +38,7 @@
import com.java110.po.owner.RepairPoolPo;
import com.java110.po.owner.RepairUserPo;
import com.java110.po.payFeeDetailDiscount.PayFeeDetailDiscountPo;
import com.java110.utils.cache.CommonCache;
import com.java110.utils.constant.FeeFlagTypeConstant;
import com.java110.utils.constant.ResponseConstant;
import com.java110.utils.exception.CmdException;
@@ -56,6 +57,12 @@
import java.text.SimpleDateFormat;
import java.util.*;
/**
 * 前台 现金或者转账收费 缴费处理类
 *
 * 假如 缴费 后要处理一些逻辑建议用databus
 * 这个类已经很复杂 ,最好不要加新逻辑
 */
@Java110Cmd(serviceCode = "fee.payFee")
public class PayFeeCmd extends Cmd {
@@ -531,6 +538,8 @@
        //获取车位id
        String psId = ownerCarDtos.get(0).getPsId();
        //获取车辆状态(1001 正常状态,2002 欠费状态  3003 车位释放)
        boolean sonMotherParking = false;
        String num = "";
        String carState = ownerCarDtos.get(0).getState();
        if (!StringUtil.isEmpty(psId) && "3003".equals(carState)) {
            ParkingSpaceDto parkingSpaceDto = new ParkingSpaceDto();
@@ -542,6 +551,18 @@
            if (!StringUtil.isEmpty(state) && !state.equals("F")) {
                throw new IllegalArgumentException("车位已被使用,不能再缴费!");
            }
            if(ParkingSpaceDto.TYPE_CD_SON_MOTHER.equals(parkingSpaceDtos.get(0).getTypeCd())
                    && !parkingSpaceDtos.get(0).getTypeCd().contains(ParkingSpaceDto.NUM_MOTHER)
            ){
                sonMotherParking = true;
                num = parkingSpaceDtos.get(0).getNum();
            }
        }
        // todo  字母车位,子车位缴费 母车位延期
        if(sonMotherParking){
            queryMotherOwnerCars(num,ownerCarDtos,psId);
        }
@@ -569,6 +590,39 @@
        }
    }
    /**
     * 子母车位延期 母车位也需要延期
     * @param num
     * @param ownerCarDtos
     */
    private void queryMotherOwnerCars(String num, List<OwnerCarDto> ownerCarDtos,String paId) {
        String sonMotherSwitch = CommonCache.getValue("SON_MOTHER_PARKING_AUTO_FEE");
        if(!"ON".equals(sonMotherSwitch)){
            return ;
        }
        ParkingSpaceDto parkingSpaceDto = new ParkingSpaceDto();
        parkingSpaceDto.setNum(num+ParkingSpaceDto.NUM_MOTHER);
        parkingSpaceDto.setPaId(paId);
        List<ParkingSpaceDto> parkingSpaceDtos = parkingSpaceInnerServiceSMOImpl.queryParkingSpaces(parkingSpaceDto);
        Assert.listOnlyOne(parkingSpaceDtos, "查询车位信息错误!");
        OwnerCarDto ownerCarDto = new OwnerCarDto();
        ownerCarDto.setCommunityId(parkingSpaceDtos.get(0).getCommunityId());
        ownerCarDto.setPsId(parkingSpaceDtos.get(0).getPsId());
        ownerCarDto.setCarTypeCd("1001"); //业主车辆
        List<OwnerCarDto> tmpOwnerCarDtos = ownerCarInnerServiceSMOImpl.queryOwnerCars(ownerCarDto);
        if(ownerCarDtos == null){
            ownerCarDtos = new ArrayList<>();
        }
        ownerCarDtos.addAll(tmpOwnerCarDtos);
    }