package com.java110.fee.bmo.impl; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.java110.dto.fee.FeeDetailDto; import com.java110.dto.fee.FeeDto; import com.java110.dto.owner.OwnerCarDto; import com.java110.fee.bmo.IQueryParkspaceFee; import com.java110.intf.fee.IFeeDetailInnerServiceSMO; import com.java110.intf.fee.IFeeInnerServiceSMO; import com.java110.intf.user.IOwnerCarInnerServiceSMO; import com.java110.vo.ResultVo; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.ResponseEntity; import org.springframework.stereotype.Service; import java.util.List; @Service public class QueryParkspaceFeeImpl implements IQueryParkspaceFee { @Autowired private IOwnerCarInnerServiceSMO ownerCarInnerServiceSMOImpl; @Autowired private IFeeInnerServiceSMO feeInnerServiceSMOImpl; @Autowired private IFeeDetailInnerServiceSMO feeDetailInnerServiceSMOImpl; @Override public ResponseEntity query(JSONObject reqJson) { OwnerCarDto ownerCarDto = new OwnerCarDto(); ownerCarDto.setCommunityId(reqJson.getString("code")); JSONArray data = new JSONArray(); List cars = ownerCarInnerServiceSMOImpl.queryOwnerCars(ownerCarDto); for (OwnerCarDto carDto : cars) { dealOwnerCar(reqJson, carDto, data); } return ResultVo.createResponseEntity(1, data.size(), data); } /** * @param reqJson * @param carDto * @param data */ private void dealOwnerCar(JSONObject reqJson, OwnerCarDto carDto, JSONArray data) { FeeDto feeDto = new FeeDto(); feeDto.setPayerObjType(FeeDto.PAYER_OBJ_TYPE_PARKING_SPACE); feeDto.setPayerObjId(carDto.getPsId()); List feeDtos = feeInnerServiceSMOImpl.queryFees(feeDto); for (FeeDto tmpFeeDto : feeDtos) { dealFee(reqJson, carDto, data, tmpFeeDto); } } /** * 处理费用 * * @param reqJson * @param carDto * @param data * @param tmpFeeDto */ private void dealFee(JSONObject reqJson, OwnerCarDto carDto, JSONArray data, FeeDto tmpFeeDto) { FeeDetailDto feeDetailDto = new FeeDetailDto(); feeDetailDto.setCommunityId(reqJson.getString("code")); feeDetailDto.setFeeId(tmpFeeDto.getFeeId()); List feeDetailDtos = feeDetailInnerServiceSMOImpl.queryFeeDetails(feeDetailDto); for (FeeDetailDto tmpFeeDetailDto : feeDetailDtos) { dealFeeDetail(reqJson, carDto, data, tmpFeeDto, tmpFeeDetailDto); } } /** * 缴费明细 * * @param reqJson * @param carDto * @param data * @param tmpFeeDto * @param tmpFeeDetailDto */ private void dealFeeDetail(JSONObject reqJson, OwnerCarDto carDto, JSONArray data, FeeDto tmpFeeDto, FeeDetailDto tmpFeeDetailDto) { JSONObject dataObj = new JSONObject(); dataObj.put("Code", reqJson.getString("code")); dataObj.put("serialNo", tmpFeeDetailDto.getDetailId()); dataObj.put("order", tmpFeeDetailDto.getDetailId()); dataObj.put("account", tmpFeeDto.getPayerObjId()); dataObj.put("payTime", tmpFeeDetailDto.getCreateTime()); dataObj.put("payTyte", "1"); dataObj.put("fee", tmpFeeDetailDto.getReceivedAmount()); dataObj.put("license", carDto.getCarNum()); dataObj.put("carType", carDto.getCarType()); dataObj.put("parkType", "1"); dataObj.put("carPhoto", ""); dataObj.put("update_time", tmpFeeDetailDto.getCreateTime()); data.add(dataObj); } }