package com.java110.api.listener.unit; import com.alibaba.fastjson.JSONObject; import com.java110.api.bmo.unit.IUnitBMO; import com.java110.api.listener.AbstractServiceApiPlusListener; import com.java110.core.annotation.Java110Listener; import com.java110.core.context.DataFlowContext; import com.java110.core.smo.community.IFloorInnerServiceSMO; import com.java110.core.smo.community.IUnitInnerServiceSMO; import com.java110.dto.FloorDto; import com.java110.dto.UnitDto; import com.java110.core.event.service.api.ServiceDataFlowEvent; import com.java110.utils.constant.ServiceCodeConstant; import com.java110.utils.util.Assert; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.HttpMethod; /** * 删除单元信息侦听 */ @Java110Listener("deleteUnitListener") public class DeleteUnitListener extends AbstractServiceApiPlusListener { private static Logger logger = LoggerFactory.getLogger(SaveUnitListener.class); @Autowired private IUnitBMO unitBMOImpl; @Autowired private IFloorInnerServiceSMO floorInnerServiceSMOImpl; @Autowired private IUnitInnerServiceSMO unitInnerServiceSMOImpl; @Override public String getServiceCode() { return ServiceCodeConstant.SERVICE_CODE_DELETE_UNIT; } @Override public HttpMethod getHttpMethod() { return HttpMethod.POST; } @Override protected void validate(ServiceDataFlowEvent event, JSONObject reqJson) { Assert.jsonObjectHaveKey(reqJson, "communityId", "请求报文中未包含communityId节点"); Assert.jsonObjectHaveKey(reqJson, "floorId", "请求报文中未包含floorId节点"); Assert.jsonObjectHaveKey(reqJson, "unitId", "请求报文中未包含unitId节点"); FloorDto floorDto = new FloorDto(); floorDto.setCommunityId(reqJson.getString("communityId")); floorDto.setFloorId(reqJson.getString("floorId")); //校验小区楼ID和小区是否有对应关系 int total = floorInnerServiceSMOImpl.queryFloorsCount(floorDto); if (total < 1) { throw new IllegalArgumentException("传入小区楼ID不是该小区的楼"); } //校验 小区楼ID 和单元ID是否有关系 UnitDto unitDto = new UnitDto(); unitDto.setFloorId(reqJson.getString("floorId")); unitDto.setUnitId(reqJson.getString("unitId")); total = unitInnerServiceSMOImpl.queryUnitsCount(unitDto); if (total < 1) { throw new IllegalArgumentException("传入单元不是该小区的楼的单元"); } } @Override protected void doSoService(ServiceDataFlowEvent event, DataFlowContext context, JSONObject reqJson) { unitBMOImpl.editUnit(reqJson, context); } /** * 数据校验 * * @param paramIn "communityId": "7020181217000001", * "memberId": "3456789", * "memberTypeCd": "390001200001" */ private void validate(String paramIn) { } @Override public int getOrder() { return DEFAULT_ORDER; } public IFloorInnerServiceSMO getFloorInnerServiceSMOImpl() { return floorInnerServiceSMOImpl; } public void setFloorInnerServiceSMOImpl(IFloorInnerServiceSMO floorInnerServiceSMOImpl) { this.floorInnerServiceSMOImpl = floorInnerServiceSMOImpl; } public IUnitInnerServiceSMO getUnitInnerServiceSMOImpl() { return unitInnerServiceSMOImpl; } public void setUnitInnerServiceSMOImpl(IUnitInnerServiceSMO unitInnerServiceSMOImpl) { this.unitInnerServiceSMOImpl = unitInnerServiceSMOImpl; } }