|
@@ -0,0 +1,101 @@
|
|
|
|
|
+package com.java110.user.cmd.owner;
|
|
|
|
|
+
|
|
|
|
|
+import com.alibaba.fastjson.JSONObject;
|
|
|
|
|
+import com.java110.core.annotation.Java110Cmd;
|
|
|
|
|
+import com.java110.core.context.CmdContextUtils;
|
|
|
|
|
+import com.java110.core.context.ICmdDataFlowContext;
|
|
|
|
|
+import com.java110.core.event.cmd.Cmd;
|
|
|
|
|
+import com.java110.core.event.cmd.CmdEvent;
|
|
|
|
|
+import com.java110.doc.annotation.*;
|
|
|
|
|
+import com.java110.dto.owner.OwnerDto;
|
|
|
|
|
+import com.java110.dto.privilege.BasePrivilegeDto;
|
|
|
|
|
+import com.java110.dto.room.RoomDto;
|
|
|
|
|
+import com.java110.intf.common.IFileRelInnerServiceSMO;
|
|
|
|
|
+import com.java110.intf.community.IMenuInnerServiceSMO;
|
|
|
|
|
+import com.java110.intf.community.IRoomInnerServiceSMO;
|
|
|
|
|
+import com.java110.intf.user.IOwnerInnerServiceSMO;
|
|
|
|
|
+import com.java110.user.bmo.owner.IQueryOwnerStatisticsBMO;
|
|
|
|
|
+import com.java110.utils.exception.CmdException;
|
|
|
|
|
+import com.java110.utils.util.Assert;
|
|
|
|
|
+import com.java110.utils.util.BeanConvertUtil;
|
|
|
|
|
+import com.java110.utils.util.StringUtil;
|
|
|
|
|
+import com.java110.vo.ResultVo;
|
|
|
|
|
+import org.springframework.beans.factory.annotation.Autowired;
|
|
|
|
|
+import org.springframework.http.ResponseEntity;
|
|
|
|
|
+
|
|
|
|
|
+import java.util.ArrayList;
|
|
|
|
|
+import java.util.List;
|
|
|
|
|
+import java.util.Map;
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+@Java110Cmd(serviceCode = "owner.queryAdminOwners")
|
|
|
|
|
+public class QueryAdminOwnersCmd extends Cmd {
|
|
|
|
|
+
|
|
|
|
|
+ @Autowired
|
|
|
|
|
+ private IOwnerInnerServiceSMO ownerInnerServiceSMOImpl;
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+ @Autowired
|
|
|
|
|
+ private IRoomInnerServiceSMO roomInnerServiceSMOImpl;
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+ @Autowired
|
|
|
|
|
+ private IQueryOwnerStatisticsBMO queryOwnerStatisticsBMOImpl;
|
|
|
|
|
+
|
|
|
|
|
+ @Override
|
|
|
|
|
+ public void validate(CmdEvent event, ICmdDataFlowContext cmdDataFlowContext, JSONObject reqJson) throws CmdException {
|
|
|
|
|
+ super.validateAdmin(cmdDataFlowContext);
|
|
|
|
|
+ super.validatePageInfo(reqJson);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ @Override
|
|
|
|
|
+ public void doCmd(CmdEvent event, ICmdDataFlowContext cmdDataFlowContext, JSONObject reqJson) throws CmdException {
|
|
|
|
|
+
|
|
|
|
|
+ String userId = CmdContextUtils.getUserId(cmdDataFlowContext);
|
|
|
|
|
+
|
|
|
|
|
+ //todo 根据房屋查询时 先用 房屋信息查询 业主ID
|
|
|
|
|
+ freshRoomId(reqJson);
|
|
|
|
|
+ OwnerDto ownerDto = BeanConvertUtil.covertBean(reqJson, OwnerDto.class);
|
|
|
|
|
+
|
|
|
|
|
+ int row = reqJson.getInteger("row");
|
|
|
|
|
+ //查询总记录数
|
|
|
|
|
+ int total = ownerInnerServiceSMOImpl.queryOwnersCount(ownerDto);
|
|
|
|
|
+ List<OwnerDto> ownerDtos = null;
|
|
|
|
|
+ if (total > 0) {
|
|
|
|
|
+ ownerDtos = ownerInnerServiceSMOImpl.queryOwners(ownerDto);
|
|
|
|
|
+ // 查询统计数据
|
|
|
|
|
+ ownerDtos = queryOwnerStatisticsBMOImpl.queryAdminData(ownerDtos);
|
|
|
|
|
+ } else {
|
|
|
|
|
+ ownerDtos = new ArrayList<>();
|
|
|
|
|
+ }
|
|
|
|
|
+ ResponseEntity<String> responseEntity = ResultVo.createResponseEntity((int) Math.ceil((double) total / (double) row), total, ownerDtos);
|
|
|
|
|
+ cmdDataFlowContext.setResponseEntity(responseEntity);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ private void freshRoomId(JSONObject reqJson) {
|
|
|
|
|
+ if (!reqJson.containsKey("roomName")) {
|
|
|
|
|
+ return;
|
|
|
|
|
+ }
|
|
|
|
|
+ String roomName = reqJson.getString("roomName");
|
|
|
|
|
+ if (StringUtil.isEmpty(roomName)) {
|
|
|
|
|
+ return;
|
|
|
|
|
+ }
|
|
|
|
|
+ if (!roomName.contains("-")) {
|
|
|
|
|
+ throw new IllegalArgumentException("房屋格式错误,请写入如 楼栋-单元-房屋 格式");
|
|
|
|
|
+ }
|
|
|
|
|
+ String[] params = roomName.split("-", 3);
|
|
|
|
|
+ if (params.length != 3) {
|
|
|
|
|
+ throw new IllegalArgumentException("房屋格式错误,请写入如 楼栋-单元-房屋 格式");
|
|
|
|
|
+ }
|
|
|
|
|
+ RoomDto roomDto = new RoomDto();
|
|
|
|
|
+ roomDto.setFloorNum(params[0]);
|
|
|
|
|
+ roomDto.setUnitNum(params[1]);
|
|
|
|
|
+ roomDto.setRoomNum(params[2]);
|
|
|
|
|
+ roomDto.setCommunityId(reqJson.getString("communityId"));
|
|
|
|
|
+ List<RoomDto> roomDtos = roomInnerServiceSMOImpl.queryRooms(roomDto);
|
|
|
|
|
+ Assert.listOnlyOne(roomDtos, "未查询到房屋下业主信息");
|
|
|
|
|
+ reqJson.put("roomId", roomDtos.get(0).getRoomId());
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+}
|