old mode 100755
new mode 100644
| File was renamed from service-api/src/main/java/com/java110/api/listener/fee/SaveParkingSpaceCreateFeeListener.java |
| | |
| | | package com.java110.api.listener.fee; |
| | | package com.java110.fee.cmd.fee; |
| | | |
| | | import com.alibaba.fastjson.JSONArray; |
| | | import com.alibaba.fastjson.JSONObject; |
| | | import com.java110.api.bmo.fee.IFeeBMO; |
| | | import com.java110.api.listener.AbstractServiceApiListener; |
| | | import com.java110.core.annotation.Java110Listener; |
| | | import com.java110.core.context.DataFlowContext; |
| | | import com.java110.core.event.service.api.ServiceDataFlowEvent; |
| | | import com.java110.core.annotation.Java110Cmd; |
| | | import com.java110.core.context.ICmdDataFlowContext; |
| | | import com.java110.core.event.cmd.AbstractServiceCmdListener; |
| | | import com.java110.core.event.cmd.CmdEvent; |
| | | import com.java110.core.factory.GenerateCodeFactory; |
| | | import com.java110.dto.fee.FeeAttrDto; |
| | | import com.java110.dto.fee.FeeConfigDto; |
| | |
| | | import com.java110.dto.parking.ParkingSpaceDto; |
| | | import com.java110.dto.payFeeBatch.PayFeeBatchDto; |
| | | import com.java110.dto.user.UserDto; |
| | | import com.java110.entity.center.AppService; |
| | | import com.java110.fee.bmo.fee.IFeeBMO; |
| | | import com.java110.intf.community.IParkingSpaceInnerServiceSMO; |
| | | import com.java110.intf.fee.IFeeAttrInnerServiceSMO; |
| | | import com.java110.intf.fee.IFeeConfigInnerServiceSMO; |
| | | import com.java110.intf.fee.IFeeInnerServiceSMO; |
| | | import com.java110.intf.fee.IPayFeeBatchV1InnerServiceSMO; |
| | | import com.java110.intf.user.IOwnerCarInnerServiceSMO; |
| | | import com.java110.intf.user.IUserInnerServiceSMO; |
| | | import com.java110.po.fee.FeeAttrPo; |
| | | import com.java110.po.fee.PayFeePo; |
| | | import com.java110.po.payFeeBatch.PayFeeBatchPo; |
| | | import com.java110.utils.constant.CommonConstant; |
| | | import com.java110.utils.constant.ServiceCodeConstant; |
| | | import com.java110.utils.exception.CmdException; |
| | | import com.java110.utils.util.Assert; |
| | | import com.java110.utils.util.BeanConvertUtil; |
| | | import com.java110.utils.util.DateUtil; |
| | | import com.java110.utils.util.StringUtil; |
| | | import org.slf4j.Logger; |
| | | import com.java110.core.log.LoggerFactory; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.http.HttpHeaders; |
| | | import org.springframework.http.HttpMethod; |
| | | import org.springframework.http.HttpStatus; |
| | | import org.springframework.http.ResponseEntity; |
| | | |
| | |
| | | import java.util.Date; |
| | | import java.util.List; |
| | | |
| | | /** |
| | | * @ClassName SaveParkingSpaceCreateFeeListener |
| | | * @Description TODO |
| | | * @Author wuxw |
| | | * @Date 2020/1/31 15:57 |
| | | * @Version 1.0 |
| | | * add by wuxw 2020/1/31 |
| | | **/ |
| | | @Java110Listener("saveParkingSpaceCreateFeeListener") |
| | | public class SaveParkingSpaceCreateFeeListener extends AbstractServiceApiListener { |
| | | private static Logger logger = LoggerFactory.getLogger(SaveParkingSpaceCreateFeeListener.class); |
| | | |
| | | @Java110Cmd(serviceCode = "fee.saveParkingSpaceCreateFee") |
| | | public class SaveParkingSpaceCreateFeeCmd extends AbstractServiceCmdListener { |
| | | |
| | | @Autowired |
| | | private IFeeBMO feeBMOImpl; |
| | |
| | | @Autowired |
| | | private IUserInnerServiceSMO userInnerServiceSMOImpl; |
| | | |
| | | @Override |
| | | public String getServiceCode() { |
| | | return ServiceCodeConstant.SERVICE_CODE_SAVE_PARKING_SPEC_CREATE_FEE; |
| | | } |
| | | @Autowired |
| | | private IFeeInnerServiceSMO feeInnerServiceSMOImpl; |
| | | |
| | | @Autowired |
| | | private IFeeAttrInnerServiceSMO feeAttrInnerServiceSMOImpl; |
| | | |
| | | @Override |
| | | public HttpMethod getHttpMethod() { |
| | | return HttpMethod.POST; |
| | | } |
| | | |
| | | @Override |
| | | protected void validate(ServiceDataFlowEvent event, JSONObject reqJson) { |
| | | public void validate(CmdEvent event, ICmdDataFlowContext cmdDataFlowContext, JSONObject reqJson) { |
| | | // super.validatePageInfo(pd); |
| | | Assert.hasKeyAndValue(reqJson, "communityId", "未包含小区ID"); |
| | | Assert.hasKeyAndValue(reqJson, "locationTypeCd", "未包含收费类型"); |
| | |
| | | } |
| | | |
| | | @Override |
| | | protected void doSoService(ServiceDataFlowEvent event, DataFlowContext context, JSONObject reqJson) { |
| | | logger.debug("ServiceDataFlowEvent : {}", event); |
| | | public void doCmd(CmdEvent event, ICmdDataFlowContext cmdDataFlowContext, JSONObject reqJson) throws CmdException { |
| | | List<OwnerCarDto> ownerCarDtos = null; |
| | | FeeConfigDto feeConfigDto = new FeeConfigDto(); |
| | | feeConfigDto.setCommunityId(reqJson.getString("communityId")); |
| | |
| | | throw new IllegalArgumentException("未查到需要付费的车位"); |
| | | } |
| | | |
| | | dealParkingSpaceFee(ownerCarDtos, context, reqJson, event); |
| | | dealParkingSpaceFee(ownerCarDtos, cmdDataFlowContext, reqJson, event); |
| | | } |
| | | |
| | | |
| | | private List<OwnerCarDto> getOwnerCarByParkingArea(JSONObject reqJson) { |
| | | List<OwnerCarDto> ownerCarDtos = new ArrayList<>(); |
| | |
| | | ownerCarDtos.addAll(townerCarDtos); |
| | | } |
| | | |
| | | private void dealParkingSpaceFee(List<OwnerCarDto> ownerCarDtos, DataFlowContext context, JSONObject reqJson, ServiceDataFlowEvent event) { |
| | | private void dealParkingSpaceFee(List<OwnerCarDto> ownerCarDtos, ICmdDataFlowContext context, JSONObject reqJson, CmdEvent event) { |
| | | |
| | | AppService service = event.getAppService(); |
| | | |
| | | |
| | | HttpHeaders header = new HttpHeaders(); |
| | | context.getRequestCurrentHeaders().put(CommonConstant.HTTP_ORDER_TYPE_CD, "D"); |
| | | JSONArray businesses = new JSONArray(); |
| | | List<PayFeePo> feePos = new ArrayList<>(); |
| | | List<FeeAttrPo> feeAttrsPos = new ArrayList<>(); |
| | | JSONObject paramInObj = null; |
| | | ResponseEntity<String> responseEntity = null; |
| | | int failParkingSpaces = 0; |
| | | int curFailRoomCount = 0; |
| | | //添加单元信息 |
| | | int saveFlag = 0; |
| | | for (int ownerCarIndex = 0; ownerCarIndex < ownerCarDtos.size(); ownerCarIndex++) { |
| | | |
| | | businesses.add(feeBMOImpl.addFee(ownerCarDtos.get(ownerCarIndex), reqJson, context)); |
| | | curFailRoomCount++; |
| | | feePos.add(BeanConvertUtil.covertBean(feeBMOImpl.addFee(ownerCarDtos.get(ownerCarIndex), reqJson, context), PayFeePo.class)); |
| | | if (!StringUtil.isEmpty(ownerCarDtos.get(ownerCarIndex).getOwnerId())) { |
| | | if (FeeDto.FEE_FLAG_ONCE.equals(reqJson.getString("feeFlag"))) { |
| | | businesses.add(feeBMOImpl.addFeeAttr(reqJson, context, FeeAttrDto.SPEC_CD_ONCE_FEE_DEADLINE_TIME, |
| | | feeAttrsPos.add(feeBMOImpl.addFeeAttr(reqJson, context, FeeAttrDto.SPEC_CD_ONCE_FEE_DEADLINE_TIME, |
| | | reqJson.containsKey("endTime") ? reqJson.getString("endTime") : reqJson.getString("configEndTime"))); |
| | | } |
| | | businesses.add(feeBMOImpl.addFeeAttr(reqJson, context, FeeAttrDto.SPEC_CD_OWNER_ID, ownerCarDtos.get(ownerCarIndex).getOwnerId())); |
| | | businesses.add(feeBMOImpl.addFeeAttr(reqJson, context, FeeAttrDto.SPEC_CD_OWNER_LINK, ownerCarDtos.get(ownerCarIndex).getLink())); |
| | | businesses.add(feeBMOImpl.addFeeAttr(reqJson, context, FeeAttrDto.SPEC_CD_OWNER_NAME, ownerCarDtos.get(ownerCarIndex).getOwnerName())); |
| | | feeAttrsPos.add(feeBMOImpl.addFeeAttr(reqJson, context, FeeAttrDto.SPEC_CD_OWNER_ID, ownerCarDtos.get(ownerCarIndex).getOwnerId())); |
| | | feeAttrsPos.add(feeBMOImpl.addFeeAttr(reqJson, context, FeeAttrDto.SPEC_CD_OWNER_LINK, ownerCarDtos.get(ownerCarIndex).getLink())); |
| | | feeAttrsPos.add(feeBMOImpl.addFeeAttr(reqJson, context, FeeAttrDto.SPEC_CD_OWNER_NAME, ownerCarDtos.get(ownerCarIndex).getOwnerName())); |
| | | } |
| | | |
| | | //付费对象名称 |
| | | feeAttrsPos.add(feeBMOImpl.addFeeAttr(reqJson, context, FeeAttrDto.SPEC_CD_PAY_OBJECT_NAME, |
| | | ownerCarDtos.get(ownerCarIndex).getAreaNum() + ownerCarDtos.get(ownerCarIndex).getNum() + "(" + ownerCarDtos.get(ownerCarIndex).getCarNum() + ")")); |
| | | |
| | | if (ownerCarIndex % DEFAULT_ADD_FEE_COUNT == 0 && ownerCarIndex != 0) { |
| | | |
| | | responseEntity = feeBMOImpl.callService(context, service.getServiceCode(), businesses); |
| | | |
| | | if (responseEntity.getStatusCode() != HttpStatus.OK) { |
| | | failParkingSpaces += businesses.size(); |
| | | saveFlag = saveFeeAndAttrs(feePos, feeAttrsPos); |
| | | feePos = new ArrayList<>(); |
| | | feeAttrsPos = new ArrayList<>(); |
| | | if (saveFlag < 1) { |
| | | failParkingSpaces += curFailRoomCount; |
| | | } else { |
| | | curFailRoomCount = 0; |
| | | } |
| | | |
| | | businesses = new JSONArray(); |
| | | } |
| | | } |
| | | if (businesses != null && businesses.size() > 0) { |
| | | |
| | | responseEntity = feeBMOImpl.callService(context, service.getServiceCode(), businesses); |
| | | if (responseEntity.getStatusCode() != HttpStatus.OK) { |
| | | failParkingSpaces += businesses.size(); |
| | | if (feePos != null && feePos.size() > 0) { |
| | | saveFlag = saveFeeAndAttrs(feePos, feeAttrsPos); |
| | | if (saveFlag < 1) { |
| | | failParkingSpaces += curFailRoomCount; |
| | | } |
| | | } |
| | | |
| | |
| | | context.setResponseEntity(responseEntity); |
| | | } |
| | | |
| | | @Override |
| | | public int getOrder() { |
| | | return DEFAULT_ORDER; |
| | | private int saveFeeAndAttrs(List<PayFeePo> feePos, List<FeeAttrPo> feeAttrsPos) { |
| | | int flag = feeInnerServiceSMOImpl.saveFee(feePos); |
| | | if (flag < 1) { |
| | | return flag; |
| | | } |
| | | |
| | | flag = feeAttrInnerServiceSMOImpl.saveFeeAttrs(feeAttrsPos); |
| | | |
| | | return flag; |
| | | } |
| | | |
| | | public IParkingSpaceInnerServiceSMO getParkingSpaceInnerServiceSMOImpl() { |
| | | return parkingSpaceInnerServiceSMOImpl; |
| | | } |
| | | |
| | | public void setParkingSpaceInnerServiceSMOImpl(IParkingSpaceInnerServiceSMO parkingSpaceInnerServiceSMOImpl) { |
| | | this.parkingSpaceInnerServiceSMOImpl = parkingSpaceInnerServiceSMOImpl; |
| | | } |
| | | } |