QueryRoomsByAppCmd.java 3.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. package com.java110.community.cmd.room;
  2. import com.alibaba.fastjson.JSONObject;
  3. import com.java110.core.annotation.Java110Cmd;
  4. import com.java110.core.context.CmdContextUtils;
  5. import com.java110.core.context.ICmdDataFlowContext;
  6. import com.java110.core.event.cmd.Cmd;
  7. import com.java110.core.event.cmd.CmdEvent;
  8. import com.java110.dto.app.AppDto;
  9. import com.java110.dto.room.RoomDto;
  10. import com.java110.intf.community.IRoomV1InnerServiceSMO;
  11. import com.java110.utils.exception.CmdException;
  12. import com.java110.utils.util.Assert;
  13. import com.java110.utils.util.BeanConvertUtil;
  14. import com.java110.utils.util.ListUtil;
  15. import com.java110.vo.ResultVo;
  16. import org.springframework.beans.factory.annotation.Autowired;
  17. import org.springframework.http.HttpStatus;
  18. import org.springframework.http.ResponseEntity;
  19. import java.text.ParseException;
  20. import java.util.ArrayList;
  21. import java.util.List;
  22. @Java110Cmd(serviceCode = "room.queryRoomsByApp")
  23. public class QueryRoomsByAppCmd extends Cmd {
  24. @Autowired
  25. private IRoomV1InnerServiceSMO roomV1InnerServiceSMOImpl;
  26. @Override
  27. public void validate(CmdEvent event, ICmdDataFlowContext context, JSONObject reqJson) throws CmdException, ParseException {
  28. Assert.jsonObjectHaveKey(reqJson, "communityId", "请求中未包含communityId信息");
  29. //Assert.jsonObjectHaveKey(reqJson, "floorId", "请求中未包含floorId信息");
  30. Assert.jsonObjectHaveKey(reqJson, "page", "请求报文中未包含page节点");
  31. Assert.jsonObjectHaveKey(reqJson, "row", "请求报文中未包含row节点");
  32. Assert.hasKeyAndValue(reqJson, "unitId", "未包含单元");
  33. String appId = CmdContextUtils.getAppId(context);
  34. if (!AppDto.WECHAT_OWNER_APP_ID.equals(appId) && !AppDto.WECHAT_MINA_OWNER_APP_ID.equals(appId)) {
  35. throw new CmdException("此接口用户端专用");
  36. }
  37. }
  38. @Override
  39. public void doCmd(CmdEvent event, ICmdDataFlowContext context, JSONObject reqJson) throws CmdException, ParseException {
  40. RoomDto roomDto = BeanConvertUtil.covertBean(reqJson, RoomDto.class);
  41. roomDto.setUserId("");
  42. //查询总记录数
  43. int total = roomV1InnerServiceSMOImpl.queryRoomsCount(roomDto);
  44. List<RoomDto> roomDtoList = null;
  45. if (total > 0) {
  46. roomDtoList = roomV1InnerServiceSMOImpl.queryRooms(roomDto);
  47. } else {
  48. roomDtoList = new ArrayList<>();
  49. }
  50. roomDtoList = clearRoomDatas(roomDtoList);
  51. ResultVo resultVo = new ResultVo((int) Math.ceil((double) total / (double) reqJson.getInteger("row")), total, roomDtoList);
  52. ResponseEntity<String> responseEntity = new ResponseEntity<String>(resultVo.toString(), HttpStatus.OK);
  53. context.setResponseEntity(responseEntity);
  54. }
  55. private List<RoomDto> clearRoomDatas(List<RoomDto> roomDtoList) {
  56. if(ListUtil.isNull(roomDtoList)){
  57. return roomDtoList;
  58. }
  59. List<RoomDto> roomDtos = new ArrayList<>();
  60. RoomDto tmpRoomDto = null;
  61. for(RoomDto roomDto:roomDtoList){
  62. tmpRoomDto = new RoomDto();
  63. tmpRoomDto.setRoomId(roomDto.getRoomId());
  64. tmpRoomDto.setRoomName(roomDto.getFloorNum()+"-"+roomDto.getUnitNum()+"-"+roomDto.getRoomNum());
  65. roomDtos.add(tmpRoomDto);
  66. }
  67. return roomDtos;
  68. }
  69. }