package com.java110.report.cmd.room; import com.alibaba.fastjson.JSONObject; import com.java110.core.annotation.Java110Cmd; import com.java110.core.context.ICmdDataFlowContext; import com.java110.core.event.cmd.Cmd; import com.java110.core.event.cmd.CmdEvent; import com.java110.dto.room.RoomDto; import com.java110.intf.report.IReportCommunityInnerServiceSMO; import com.java110.utils.exception.CmdException; import com.java110.utils.util.Assert; import com.java110.utils.util.BeanConvertUtil; import com.java110.utils.util.ListUtil; import com.java110.vo.api.ApiRoomDataVo; import com.java110.vo.api.ApiRoomVo; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; import java.util.List; @Java110Cmd(serviceCode = "room.queryAdminRoomsTree") public class QueryAdminRoomsTreeCmd extends Cmd { @Autowired private IReportCommunityInnerServiceSMO reportCommunityInnerServiceSMOImpl; @Override public void validate(CmdEvent event, ICmdDataFlowContext cmdDataFlowContext, JSONObject reqJson) { Assert.jsonObjectHaveKey(reqJson, "unitId", "请求中未包含单元信息"); super.validatePageInfo(reqJson); super.validateAdmin(cmdDataFlowContext); } @Override public void doCmd(CmdEvent event, ICmdDataFlowContext cmdDataFlowContext, JSONObject reqJson) throws CmdException { RoomDto roomDto = BeanConvertUtil.covertBean(reqJson, RoomDto.class); ApiRoomVo apiRoomVo = new ApiRoomVo(); List roomDtoList = null; roomDtoList = reportCommunityInnerServiceSMOImpl.queryRoomsTree(roomDto); apiRoomVo.setTotal(0); if (ListUtil.isNotNull(roomDtoList)) { apiRoomVo.setTotal(roomDtoList.size()); } apiRoomVo.setRooms(BeanConvertUtil.covertBeanList(roomDtoList, ApiRoomDataVo.class)); int row = reqJson.getInteger("row"); apiRoomVo.setRecords((int) Math.ceil((double) apiRoomVo.getTotal() / (double) row)); ResponseEntity responseEntity = new ResponseEntity(JSONObject.toJSONString(apiRoomVo), HttpStatus.OK); cmdDataFlowContext.setResponseEntity(responseEntity); } }