java110 лет назад: 5
Родитель
Сommit
3ab8d7f124

+ 11 - 0
java110-bean/src/main/java/com/java110/dto/owner/OwnerDto.java

@@ -1,6 +1,7 @@
 package com.java110.dto.owner;
 
 import com.java110.dto.PageDto;
+import com.java110.dto.RoomDto;
 
 import java.io.Serializable;
 import java.util.Date;
@@ -52,6 +53,8 @@ public class OwnerDto extends PageDto implements Serializable {
 
     private List<OwnerAttrDto> ownerAttrDtos;
 
+    private List<RoomDto> rooms;
+
 
     private Date createTime;
 
@@ -275,4 +278,12 @@ public class OwnerDto extends PageDto implements Serializable {
     public void setOwnerIds(String[] ownerIds) {
         this.ownerIds = ownerIds;
     }
+
+    public List<RoomDto> getRooms() {
+        return rooms;
+    }
+
+    public void setRooms(List<RoomDto> rooms) {
+        this.rooms = rooms;
+    }
 }

+ 25 - 9
service-user/src/main/java/com/java110/user/api/OwnerApi.java

@@ -3,16 +3,13 @@ package com.java110.user.api;
 import com.alibaba.fastjson.JSONObject;
 import com.java110.po.owner.OwnerPo;
 import com.java110.user.bmo.owner.IChangeOwnerPhone;
+import com.java110.user.bmo.owner.IComprehensiveQuery;
 import com.java110.user.bmo.owner.IQueryTenants;
 import com.java110.user.bmo.owner.IVisitorRecord;
 import com.java110.utils.util.Assert;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.http.HttpMethod;
 import org.springframework.http.ResponseEntity;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RequestMethod;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.bind.annotation.*;
 
 @RestController
 @RequestMapping(value = "/ownerApi")
@@ -27,6 +24,10 @@ public class OwnerApi {
     @Autowired
     private IChangeOwnerPhone changeOwnerPhoneImpl;
 
+
+    @Autowired
+    private IComprehensiveQuery comprehensiveQueryImpl;
+
     @RequestMapping(value = "/tenants")
     public ResponseEntity<String> tenants(@RequestBody JSONObject reqJson) {
         Assert.hasKeyAndValue(reqJson, "code", "小区编码不能为空");
@@ -49,10 +50,10 @@ public class OwnerApi {
      */
     @RequestMapping(value = "/changeOwnerPhone", method = RequestMethod.POST)
     public ResponseEntity<String> changeOwnerPhone(@RequestBody JSONObject reqJson) {
-        Assert.hasKeyAndValue(reqJson,"link","请求报文中未包含手机号");
-        Assert.hasKeyAndValue(reqJson,"userId","请求报文中未包含用户ID");
-        Assert.hasKeyAndValue(reqJson,"memberId","请求报文中未包含业主信息");
-        Assert.hasKeyAndValue(reqJson,"communityId","请求报文中未包含小区信息");
+        Assert.hasKeyAndValue(reqJson, "link", "请求报文中未包含手机号");
+        Assert.hasKeyAndValue(reqJson, "userId", "请求报文中未包含用户ID");
+        Assert.hasKeyAndValue(reqJson, "memberId", "请求报文中未包含业主信息");
+        Assert.hasKeyAndValue(reqJson, "communityId", "请求报文中未包含小区信息");
         OwnerPo ownerPo = new OwnerPo();
         ownerPo.setLink(reqJson.getString("link"));
         ownerPo.setMemberId(reqJson.getString("memberId"));
@@ -61,4 +62,19 @@ public class OwnerApi {
 
         return changeOwnerPhoneImpl.change(ownerPo);
     }
+
+    /**
+     * 综合查询
+     *
+     * @param communityId 小区ID
+     * @return
+     * @service /ownerApi/comprehensiveQuery
+     * @path /app/ownerApi/comprehensiveQuery
+     */
+    @RequestMapping(value = "/comprehensiveQuery", method = RequestMethod.GET)
+    public ResponseEntity<String> comprehensiveQuery(@RequestParam(value = "communityId") String communityId,
+                                                     @RequestParam(value = "searchValue") String searchValue,
+                                                     @RequestParam(value = "searchType") String searchType) {
+        return comprehensiveQueryImpl.query(communityId, searchValue, searchType);
+    }
 }

+ 13 - 0
service-user/src/main/java/com/java110/user/bmo/owner/IComprehensiveQuery.java

@@ -0,0 +1,13 @@
+package com.java110.user.bmo.owner;
+
+import org.springframework.http.ResponseEntity;
+
+public interface IComprehensiveQuery {
+
+    /**
+     * 综合查询
+     *
+     * @return
+     */
+    ResponseEntity<String> query(String communityId, String searchValue, String searchType);
+}

+ 101 - 0
service-user/src/main/java/com/java110/user/bmo/owner/impl/ComprehensiveQueryImpl.java

@@ -0,0 +1,101 @@
+package com.java110.user.bmo.owner.impl;
+
+import com.java110.dto.RoomDto;
+import com.java110.dto.owner.OwnerDto;
+import com.java110.intf.common.IFileInnerServiceSMO;
+import com.java110.intf.common.IFileRelInnerServiceSMO;
+import com.java110.intf.community.IRoomInnerServiceSMO;
+import com.java110.intf.user.IOwnerInnerServiceSMO;
+import com.java110.intf.user.IOwnerRoomRelInnerServiceSMO;
+import com.java110.user.bmo.owner.IComprehensiveQuery;
+import com.java110.utils.util.Assert;
+import com.java110.vo.ResultVo;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.ResponseEntity;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+@Service
+public class ComprehensiveQueryImpl implements IComprehensiveQuery {
+
+    public static final String SEARCH_TYPE_ROOM = "1"; //根据房屋来查
+    public static final String SEARCH_TYPE_OWNER_NAME = "2"; //根据业主名称查询
+    public static final String SEARCH_TYPE_OWNER_TEL = "3"; //根据业主手机号
+    public static final String SEARCH_TYPE_OWNER_IDCARD = "4"; //根据业主身份证
+    public static final String SEARCH_TYPE_OWNER_CAR = "5"; //根据业主车牌号
+    public static final String SEARCH_TYPE_OWNER_MEMBER_NAME = "6"; //根据家庭成员名称
+    public static final String SEARCH_TYPE_OWNER_MEMBER_TEL = "7"; //根据家庭成员电话
+    public static final String SEARCH_TYPE_OWNER_MEMBER_IDCARD = "8"; //根据家庭成员身份证
+
+    @Autowired
+    private IOwnerInnerServiceSMO ownerInnerServiceSMOImpl;
+
+    @Autowired
+    private IRoomInnerServiceSMO roomInnerServiceSMOImpl;
+
+    @Autowired
+    private IOwnerRoomRelInnerServiceSMO ownerRoomRelInnerServiceSMOImpl;
+
+    @Autowired
+    private IFileRelInnerServiceSMO fileRelInnerServiceSMOImpl;
+
+    @Autowired
+    private IFileInnerServiceSMO fileInnerServiceSMOImpl;
+
+    @Override
+    public ResponseEntity<String> query(String communityId, String searchValue, String searchType) {
+        OwnerDto ownerDto = null;
+        switch (searchType) {
+            case SEARCH_TYPE_ROOM:
+                ownerDto = queryByRoom(communityId, searchValue);
+                break;
+        }
+        return ResultVo.createResponseEntity(1, 1, ownerDto);
+    }
+
+    /**
+     * 根据房屋查询
+     *
+     * @param communityId
+     * @param searchValue
+     * @return
+     */
+    private OwnerDto queryByRoom(String communityId, String searchValue) {
+
+        if (!searchValue.contains("-")) {
+            throw new IllegalArgumentException("查询内容格式错误,请输入 楼栋-单元-房屋 如 1-1-1");
+        }
+
+        String[] values = searchValue.split("-");
+
+        if (values.length != 3) {
+            throw new IllegalArgumentException("查询内容格式错误,请输入 楼栋-单元-房屋 如 1-1-1");
+        }
+
+        RoomDto roomDto = new RoomDto();
+        roomDto.setFloorNum(values[0]);
+        roomDto.setUnitNum(values[1]);
+        roomDto.setRoomNum(values[2]);
+        roomDto.setCommunityId(communityId);
+
+        List<RoomDto> roomDtos = roomInnerServiceSMOImpl.queryRooms(roomDto);
+
+        Assert.listOnlyOne(roomDtos, "未找到房屋信息");
+
+        OwnerDto ownerDto = new OwnerDto();
+        ownerDto.setCommunityId(communityId);
+        ownerDto.setRoomId(roomDtos.get(0).getRoomId());
+        List<OwnerDto> ownerDtos = ownerInnerServiceSMOImpl.queryOwners(ownerDto);
+
+        Assert.listOnlyOne(ownerDtos, "未找到业主信息");
+
+        OwnerDto resOwnerDto = ownerDtos.get(0);
+
+        resOwnerDto.setRooms(roomDtos);
+
+        return resOwnerDto;
+    }
+
+
+}