dcs преди 10 месеца
родител
ревизия
d7f667ca4a

+ 4 - 4
virgo.api/src/main/java/com/bosshand/virgo/api/controller/ProjectItemTargetRoomController.java

@@ -37,10 +37,10 @@ public class ProjectItemTargetRoomController {
         return getResponse(currPage, pageSize, room);
     }
 
-    @ApiOperation("查询")
-    @RequestMapping(value = "/query", method = RequestMethod.POST)
-    public Response queryList(@RequestBody ProjectItemTargetRoom projectItemTargetRoom) {
-        return Response.ok(projectItemTargetRoomService.getProjectItemTargetRoom(projectItemTargetRoom));
+    @ApiOperation("关键字模糊查询")
+    @RequestMapping(value = "/query/{keyWord}", method = RequestMethod.GET)
+    public Response queryKeyWord(@PathVariable String keyWord) {
+        return Response.ok(projectItemTargetRoomService.queryKeyWord(keyWord));
     }
 
     @ApiOperation("获取")

+ 1 - 1
virgo.api/src/main/java/com/bosshand/virgo/api/dao/ProjectDao.java

@@ -28,6 +28,6 @@ public interface ProjectDao {
 
     List<Project> getIds(List<Long> ids);
 
-    List<Long> fuzzyName(String name);
+    List<Project> fuzzyName(Project project);
 
 }

+ 2 - 0
virgo.api/src/main/java/com/bosshand/virgo/api/dao/TagDao.java

@@ -24,4 +24,6 @@ public interface TagDao {
 
     int delete(long id);
 
+    List<Long> fuzzyName(String name);
+
 }

+ 13 - 0
virgo.api/src/main/java/com/bosshand/virgo/api/model/Project.java

@@ -53,6 +53,11 @@ public class Project {
      */
     private String tagIds;
 
+    /**
+     * 标签列表
+     */
+    private List<Tag> tagList;
+
     /**
      * 描述
      */
@@ -152,6 +157,14 @@ public class Project {
         this.tagIds = tagIds;
     }
 
+    public List<Tag> getTagList() {
+        return tagList;
+    }
+
+    public void setTagList(List<Tag> tagList) {
+        this.tagList = tagList;
+    }
+
     public String getComment() {
         return comment;
     }

+ 0 - 10
virgo.api/src/main/java/com/bosshand/virgo/api/model/ProjectItemTargetRoom.java

@@ -21,8 +21,6 @@ public class ProjectItemTargetRoom {
 
     private String projectName;
 
-    private List<Long> projectIds;
-
     /**
      * 地理坐标
      */
@@ -205,14 +203,6 @@ public class ProjectItemTargetRoom {
         this.projectName = projectName;
     }
 
-    public List<Long> getProjectIds() {
-        return projectIds;
-    }
-
-    public void setProjectIds(List<Long> projectIds) {
-        this.projectIds = projectIds;
-    }
-
     public String getCoordinates() {
         return coordinates;
     }

+ 58 - 10
virgo.api/src/main/java/com/bosshand/virgo/api/service/ProjectItemTargetRoomService.java

@@ -11,6 +11,7 @@ import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
+import java.util.stream.Collectors;
 
 @Service
 public class ProjectItemTargetRoomService {
@@ -144,23 +145,70 @@ public class ProjectItemTargetRoomService {
         return list;
     }
 
-    public List<ProjectItemTargetRoom> getProjectItemTargetRoom(ProjectItemTargetRoom projectItemTargetRoom) {
+    public Map<String, Object> queryKeyWord(String keyWord) {
+        Map<String, Object> map = new HashMap<>();
 
-        String projectName = projectItemTargetRoom.getProjectName();
-        if (StringUtil.notBlank(projectName)) {
-            List<Long> projectIds = projectDao.fuzzyName(projectName);
-            if (projectIds.size() > 0) {
-                projectItemTargetRoom.setProjectIds(projectIds);
-            }
+        // 根据关键字查询标签名称
+        String ids = "-1";
+        List<Long> tagIds = tagDao.fuzzyName(keyWord);
+        if (tagIds.size() > 0) {
+            ids = tagIds.stream().map(String::valueOf).collect(Collectors.joining(","));
         }
 
-        List<ProjectItemTargetRoom> list = projectItemTargetRoomDao.getProjectItemTargetRoom(projectItemTargetRoom);
-        for (ProjectItemTargetRoom room : list) {
+        List<Project> projectList = new ArrayList<>();
+        // 根据关键字查询项目
+        Project project = new Project();
+        project.setName(keyWord);
+        List<Project> ll = projectDao.fuzzyName(project);
+        if (ll.size() > 0) {
+            projectList.addAll(ll);
+        }
+        project.setName(null);
+        project.setTagIds(ids);
+        List<Project> ls = projectDao.fuzzyName(project);
+        if (ls.size() > 0) {
+            projectList.addAll(ls);
+        }
+        for (Project p : projectList) {
+            List<Tag> tags = new ArrayList<>();
+            if (StringUtil.notBlank(p.getTagIds())) {
+                for (String tagId : p.getTagIds().split(",")) {
+                    tags.add(this.getTag(Long.parseLong(tagId)));
+                }
+            }
+            p.setTagList(tags);
+        }
+        map.put("projectList", projectList);
+
+        List<ProjectItemTargetRoom> projectItemTargetRoomList = new ArrayList<>();
+        //根据关键字查询房源
+        ProjectItemTargetRoom projectItemTargetRoom = new ProjectItemTargetRoom();
+        projectItemTargetRoom.setName(keyWord);
+        List<ProjectItemTargetRoom> lll = projectItemTargetRoomDao.getProjectItemTargetRoom(projectItemTargetRoom);
+        if (lll.size() > 0) {
+            projectItemTargetRoomList.addAll(lll);
+        }
+        projectItemTargetRoom.setName(null);
+        projectItemTargetRoom.setTagIds(ids);
+        List<ProjectItemTargetRoom> lss = projectItemTargetRoomDao.getProjectItemTargetRoom(projectItemTargetRoom);
+        if (lss.size() > 0) {
+            projectItemTargetRoomList.addAll(lss);
+        }
+        for (ProjectItemTargetRoom room : projectItemTargetRoomList) {
             room.setProjectName(this.getProject(room.getProjectId()).getName());
             room.setProjectItemName(this.getProjectItem(room.getProjectItemId()).getName());
             room.setProjectItemTargetName(this.getProjectItemTarget(room.getProjectItemTargetId()).getName());
+            List<Tag> tags = new ArrayList<>();
+            if (StringUtil.notBlank(room.getTagIds())) {
+                for (String tagId : room.getTagIds().split(",")) {
+                    tags.add(this.getTag(Long.parseLong(tagId)));
+                }
+            }
+            room.setTagList(tags);
         }
-        return list;
+        map.put("houseList", projectItemTargetRoomList);
+
+        return map;
     }
 
     public int insert(ProjectItemTargetRoom projectItemTargetRoom) {

+ 0 - 60
virgo.api/src/main/resources/mapper/ProjectItemTargetRoomMapper.xml

@@ -60,74 +60,14 @@
     <select id="getProjectItemTargetRoom" resultMap="projectItemTargetRoomResult">
         <include refid="ProjectItemTargetRoomQuery"/>
         <where>
-            <if test="id != 0">
-                and a.id = #{id}
-            </if>
-            <if test="code != null">
-                and a.code = #{code}
-            </if>
-            <if test="projectId != 0">
-                and a.projectId = #{projectId}
-            </if>
-            <if test="projectIds != null">
-                and a.projectId in
-            <foreach collection="projectIds" open="(" separator="," close=")" item="id">
-                #{id}
-            </foreach>
-            </if>
-            <if test="projectItemId != 0">
-                and a.projectItemId = #{projectItemId}
-            </if>
-            <if test="projectItemTargetId != 0">
-                and a.projectItemTargetId = #{projectItemTargetId}
-            </if>
             <if test="name != null">
                 and a.name LIKE CONCAT('%', #{name}, '%')
             </if>
-            <if test="chargePersonId != 0">
-                and a.chargePersonId = #{chargePersonId}
-            </if>
-            <if test="roomTypeId != 0">
-                and a.roomTypeId = #{roomTypeId}
-            </if>
-            <if test="roomNumber != null">
-                and a.roomNumber = #{roomNumber}
-            </if>
-            <if test="roomState != null">
-                and a.roomState = #{roomState}
-            </if>
-            <if test="investmentState != null">
-                and a.investmentState = #{investmentState}
-            </if>
-            <if test="invocationDate != null">
-                and a.invocationDate = #{invocationDate}
-            </if>
-            <if test="decoration != 0">
-                and a.decoration = #{decoration}
-            </if>
-            <if test="propertyCertificateNumber != null">
-                and a.propertyCertificateNumber = #{propertyCertificateNumber}
-            </if>
             <if test="tagIds != null">and
                 <foreach item="tagId" collection="tagIds.split(',')" open="(" separator=" or " close=")">
                     FIND_IN_SET (#{tagId}, a.tagIds)
                 </foreach>
             </if>
-            <if test="openState != null">
-                and a.openState = #{openState}
-            </if>
-            <if test="price != null">
-                and a.price = #{price}
-            </if>
-            <if test="payWay != 0">
-                and a.payWay = #{payWay}
-            </if>
-            <if test="payType != 0">
-                and a.payType = #{payType}
-            </if>
-            <if test="introduce != null">
-                and a.introduce = #{introduce}
-            </if>
         </where>
     </select>
 

+ 13 - 4
virgo.api/src/main/resources/mapper/ProjectMapper.xml

@@ -50,8 +50,17 @@
 		left join project_item pi on p.id = pi.projectId
 	</sql>
 
-	<select id="fuzzyName" resultType="long">
-		SELECT id FROM project where name LIKE CONCAT('%', #{name}, '%')
+	<select id="fuzzyName" resultMap="result">
+		SELECT a.*, b.name as organizationName FROM project a LEFT JOIN mgr_organization b ON a.organizationId = b.id
+		<where>
+			and a.deleteState = 0
+			<if test="tagIds != null">and
+				<foreach item="tagId" collection="tagIds.split(',')" open="(" separator=" or " close=")">
+					FIND_IN_SET (#{tagId}, a.tagIds)
+				</foreach>
+			</if>
+			<if test="name!=null">and a.name LIKE CONCAT('%', #{name}, '%')</if>
+		</where>
 	</select>
 
 	<select id="getProject" resultMap="result">
@@ -108,7 +117,7 @@
 			and deleteState = 0
 			<if test="organizationId != 0">and organizationId = #{organizationId}</if>
 			<if test="tagIds != null">and
-				<foreach item="tagId" collection="tagIds.split(',')" open="(" separator=" and " close=")">
+				<foreach item="tagId" collection="tagIds.split(',')" open="(" separator=" or " close=")">
 					FIND_IN_SET (#{tagId}, tagIds)
 				</foreach>
 			</if>
@@ -124,7 +133,7 @@
 			and a.deleteState = 0
 			<if test="p.organizationId!=0">and a.organizationId=#{p.organizationId}</if>
 			<if test="p.tagIds != null">and
-				<foreach item="tagId" collection="p.tagIds.split(',')" open="(" separator=" and " close=")">
+				<foreach item="tagId" collection="p.tagIds.split(',')" open="(" separator=" or " close=")">
 					FIND_IN_SET (#{tagId}, a.tagIds)
 				</foreach>
 			</if>

+ 4 - 0
virgo.api/src/main/resources/mapper/TagMapper.xml

@@ -16,6 +16,10 @@
         select * from tag where id = #{id}
     </select>
 
+    <select id="fuzzyName" resultType="long">
+        SELECT id FROM tag where name LIKE CONCAT('%', #{name}, '%')
+    </select>
+
     <select id="getType" resultMap="tagResult">
         select * from tag where type = #{type} or type = 0
     </select>