dcs 1 jaar geleden
bovenliggende
commit
7f0ec7536f

+ 7 - 0
virgo.api/src/main/java/com/bosshand/virgo/api/controller/ProjectController.java

@@ -1,6 +1,7 @@
 package com.bosshand.virgo.api.controller;
 
 import com.bosshand.virgo.api.model.Project;
+import com.bosshand.virgo.api.service.ProjectItemTargetRoomService;
 import com.bosshand.virgo.api.service.ProjectService;
 import com.bosshand.virgo.core.response.Response;
 import io.swagger.annotations.Api;
@@ -20,6 +21,9 @@ public class ProjectController {
     @Autowired
     ProjectService projectService;
 
+    @Autowired
+    ProjectItemTargetRoomService projectItemTargetRoomService;
+
     @ApiOperation("获取")
     @RequestMapping(value = "/{currPage}/{pageSize}", method = RequestMethod.POST)
     public Response list(@RequestBody Project project, @PathVariable int currPage, @PathVariable int pageSize) {
@@ -47,6 +51,7 @@ public class ProjectController {
     @RequestMapping(value = "", method = RequestMethod.POST)
     public Response insertProject(@RequestBody Project project) {
         projectService.insert(project);
+        projectItemTargetRoomService.projectCache.clear();
         return Response.ok();
     }
 
@@ -54,6 +59,7 @@ public class ProjectController {
     @RequestMapping(value = "/delete/{id}", method = RequestMethod.DELETE)
     public Response deleteProject(@PathVariable long id) {
         projectService.deleteProject(id);
+        projectItemTargetRoomService.projectCache.clear();
         return Response.ok();
     }
 
@@ -61,6 +67,7 @@ public class ProjectController {
     @RequestMapping(value = "/update", method = RequestMethod.PUT)
     public Response updateProject(@RequestBody Project project) {
         projectService.update(project);
+        projectItemTargetRoomService.projectCache.clear();
         return Response.ok();
     }
 

+ 7 - 0
virgo.api/src/main/java/com/bosshand/virgo/api/controller/ProjectItemController.java

@@ -2,6 +2,7 @@ package com.bosshand.virgo.api.controller;
 
 import com.bosshand.virgo.api.model.ProjectItem;
 import com.bosshand.virgo.api.service.ProjectItemService;
+import com.bosshand.virgo.api.service.ProjectItemTargetRoomService;
 import com.bosshand.virgo.core.response.Response;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
@@ -20,6 +21,9 @@ public class ProjectItemController {
 	@Autowired
 	ProjectItemService projectItemService;
 
+	@Autowired
+	ProjectItemTargetRoomService projectItemTargetRoomService;
+
 	@ApiOperation("获取")
 	@RequestMapping(value = "/{currPage}/{pageSize}", method = RequestMethod.POST)
 	public Response list(@RequestBody ProjectItem projectItem, @PathVariable int currPage, @PathVariable int pageSize) {
@@ -35,6 +39,7 @@ public class ProjectItemController {
 	@RequestMapping(value = "", method = RequestMethod.POST)
 	public Response insertProjectItem(@RequestBody ProjectItem projectItem) {
 		projectItemService.insert(projectItem);
+		projectItemTargetRoomService.projectItemCache.clear();
 		return Response.ok();
 	}
 
@@ -42,6 +47,7 @@ public class ProjectItemController {
 	@RequestMapping(value = "/delete/{id}", method = RequestMethod.DELETE)
 	public Response deleteProjectItem(@PathVariable long id) {
 		projectItemService.delete(id);
+		projectItemTargetRoomService.projectItemCache.clear();
 		return Response.ok();
 	}
 	
@@ -49,6 +55,7 @@ public class ProjectItemController {
 	@RequestMapping(value = "/update", method = RequestMethod.PUT)
 	public Response updateProjectItem(@RequestBody ProjectItem projectItem) {
 		projectItemService.update(projectItem);
+		projectItemTargetRoomService.projectItemCache.clear();
 		return Response.ok();
 	}
 

+ 7 - 0
virgo.api/src/main/java/com/bosshand/virgo/api/controller/ProjectItemTargetController.java

@@ -1,6 +1,7 @@
 package com.bosshand.virgo.api.controller;
 
 import com.bosshand.virgo.api.model.ProjectItemTarget;
+import com.bosshand.virgo.api.service.ProjectItemTargetRoomService;
 import com.bosshand.virgo.api.service.ProjectItemTargetService;
 import com.bosshand.virgo.core.response.Response;
 import io.swagger.annotations.Api;
@@ -16,6 +17,9 @@ public class ProjectItemTargetController {
     @Autowired
     ProjectItemTargetService projectItemTargetService;
 
+    @Autowired
+    ProjectItemTargetRoomService projectItemTargetRoomService;
+
     @ApiOperation("详情")
     @RequestMapping(value = "/{id}", method = RequestMethod.GET)
     public Response get(@PathVariable long id) {
@@ -26,6 +30,7 @@ public class ProjectItemTargetController {
     @RequestMapping(value = "", method = RequestMethod.POST)
     public Response insert(@RequestBody ProjectItemTarget projectItemTarget) {
         projectItemTargetService.insert(projectItemTarget);
+        projectItemTargetRoomService.projectItemTargetCache.clear();
         return Response.ok();
     }
 
@@ -33,6 +38,7 @@ public class ProjectItemTargetController {
     @RequestMapping(value = "/{id}", method = RequestMethod.DELETE)
     public Response delete(@PathVariable long id) {
         projectItemTargetService.delete(id);
+        projectItemTargetRoomService.projectItemTargetCache.clear();
         return Response.ok();
     }
 
@@ -40,6 +46,7 @@ public class ProjectItemTargetController {
     @RequestMapping(value = "", method = RequestMethod.PUT)
     public Response update(@RequestBody ProjectItemTarget projectItemTarget) {
         projectItemTargetService.update(projectItemTarget);
+        projectItemTargetRoomService.projectItemTargetCache.clear();
         return Response.ok();
     }
 

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

@@ -8,6 +8,10 @@ import io.swagger.annotations.ApiOperation;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
 @RestController
 @RequestMapping("projectItemTargetRoom")
 @Api(tags = {"房源管理"})
@@ -17,9 +21,14 @@ public class ProjectItemTargetRoomController {
     ProjectItemTargetRoomService projectItemTargetRoomService;
 
     @ApiOperation("获取")
-    @RequestMapping(value = "/getList", method = RequestMethod.POST)
-    public Response getProjectItemTargetRoom(@RequestBody ProjectItemTargetRoom projectItemTargetRoom) {
-        return Response.ok(projectItemTargetRoomService.getProjectItemTargetRoom(projectItemTargetRoom));
+    @RequestMapping(value = "/{currPage}/{pageSize}", method = RequestMethod.POST)
+    public Response list(@RequestBody ProjectItemTargetRoom projectItemTargetRoom, @PathVariable int currPage, @PathVariable int pageSize) {
+        int totalCount = projectItemTargetRoomService.getTotalCount(projectItemTargetRoom);
+        List<ProjectItemTargetRoom> dataList = projectItemTargetRoomService.getLimit(projectItemTargetRoom, currPage, pageSize);
+        Map<String, Object> result = new HashMap<>();
+        result.put("dataList", dataList);
+        result.put("totalCount", totalCount);
+        return Response.ok(result);
     }
 
     @ApiOperation("新增")

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

@@ -18,6 +18,8 @@ public interface ProjectDao {
 
     Project get(long id);
 
+    Project getProject(long id);
+
     List<Project> getProjectByOrganizationId(long organizationId);
 
     int getTotalCount(Project project);

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

@@ -19,6 +19,8 @@ public interface ProjectItemDao {
 
     ProjectItem get(long id);
 
+    ProjectItem getProjectItem(long id);
+
     List<ProjectItem> getIds(List<Long> ids);
 
     int getTotalCount(ProjectItem projectItem);

+ 5 - 0
virgo.api/src/main/java/com/bosshand/virgo/api/dao/ProjectItemTargetRoomDao.java

@@ -2,6 +2,7 @@ package com.bosshand.virgo.api.dao;
 
 import com.bosshand.virgo.api.model.ProjectItemTargetRoom;
 import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
 
 import java.util.List;
 
@@ -12,6 +13,10 @@ public interface ProjectItemTargetRoomDao {
 
     List<ProjectItemTargetRoom> getProjectItemTargetRoom(ProjectItemTargetRoom projectItemTargetRoom);
 
+    int getTotalCount(ProjectItemTargetRoom projectItemTargetRoom);
+
+    List<ProjectItemTargetRoom> getLimit(@Param("p") ProjectItemTargetRoom p, @Param("currIndex") int currIndex, @Param("pageSize") int pageSize);
+
     int insert(ProjectItemTargetRoom projectItemTargetRoom);
 
     int update(ProjectItemTargetRoom projectItemTargetRoom);

+ 35 - 5
virgo.api/src/main/java/com/bosshand/virgo/api/model/ProjectItemTargetRoom.java

@@ -12,16 +12,22 @@ public class ProjectItemTargetRoom {
      */
     private long projectId;
 
+    private String projectName;
+
     /**
      * 单位工程id
      */
     private long projectItemId;
 
+    private String projectItemName;
+
     /**
      * 楼层id
      */
     private long projectItemTargetId;
 
+    private String projectItemTargetName;
+
     /**
      * 房源类型
      */
@@ -75,7 +81,7 @@ public class ProjectItemTargetRoom {
     /**
      * 标签ids
      */
-    private long tagId;
+    private String tagIds;
 
     /**
      * 是否公开
@@ -95,6 +101,30 @@ public class ProjectItemTargetRoom {
         this.id = id;
     }
 
+    public String getProjectName() {
+        return projectName;
+    }
+
+    public void setProjectName(String projectName) {
+        this.projectName = projectName;
+    }
+
+    public String getProjectItemName() {
+        return projectItemName;
+    }
+
+    public void setProjectItemName(String projectItemName) {
+        this.projectItemName = projectItemName;
+    }
+
+    public String getProjectItemTargetName() {
+        return projectItemTargetName;
+    }
+
+    public void setProjectItemTargetName(String projectItemTargetName) {
+        this.projectItemTargetName = projectItemTargetName;
+    }
+
     public long getProjectId() {
         return projectId;
     }
@@ -199,12 +229,12 @@ public class ProjectItemTargetRoom {
         this.video = video;
     }
 
-    public long getTagId() {
-        return tagId;
+    public String getTagIds() {
+        return tagIds;
     }
 
-    public void setTagId(long tagId) {
-        this.tagId = tagId;
+    public void setTagIds(String tagIds) {
+        this.tagIds = tagIds;
     }
 
     public long getOpenState() {

+ 79 - 3
virgo.api/src/main/java/com/bosshand/virgo/api/service/ProjectItemTargetRoomService.java

@@ -1,25 +1,101 @@
 package com.bosshand.virgo.api.service;
 
+import com.bosshand.virgo.api.dao.ProjectDao;
+import com.bosshand.virgo.api.dao.ProjectItemDao;
+import com.bosshand.virgo.api.dao.ProjectItemTargetDao;
 import com.bosshand.virgo.api.dao.ProjectItemTargetRoomDao;
+import com.bosshand.virgo.api.model.Project;
+import com.bosshand.virgo.api.model.ProjectItem;
+import com.bosshand.virgo.api.model.ProjectItemTarget;
 import com.bosshand.virgo.api.model.ProjectItemTargetRoom;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import java.util.HashMap;
 import java.util.List;
+import java.util.Map;
 
 @Service
 public class ProjectItemTargetRoomService {
 
+    @Autowired
+    private ProjectDao projectDao;
+
+    @Autowired
+    private ProjectItemDao projectItemDao;
+
+    @Autowired
+    private ProjectItemTargetDao projectItemTargetDao;
 
     @Autowired
     private ProjectItemTargetRoomDao projectItemTargetRoomDao;
 
+    public Map<Long, Project> projectCache = new HashMap<Long, Project>();
+
+    public Map<Long, ProjectItem> projectItemCache = new HashMap<Long, ProjectItem>();
+
+    public Map<Long, ProjectItemTarget> projectItemTargetCache = new HashMap<Long, ProjectItemTarget>();
+
+    public Project getProject(Long pk) {
+        Project project = projectCache.get(pk);
+        if (project == null) {
+            project = projectDao.getProject(pk);
+            projectCache.put((Long) pk, project);
+        }
+        return project;
+    }
+
+    public ProjectItem getProjectItem(Long pk) {
+        ProjectItem projectItem = projectItemCache.get(pk);
+        if (projectItem == null) {
+            projectItem = projectItemDao.getProjectItem(pk);
+            projectItemCache.put((Long) pk, projectItem);
+        }
+        return projectItem;
+    }
+
+    public ProjectItemTarget getProjectItemTarget(Long pk) {
+        ProjectItemTarget projectItemTarget = projectItemTargetCache.get(pk);
+        if (projectItemTarget == null) {
+            projectItemTarget = projectItemTargetDao.get(pk);
+            projectItemTargetCache.put((Long) pk, projectItemTarget);
+        }
+        return projectItemTarget;
+    }
+
     public ProjectItemTargetRoom get(long id) {
-        return projectItemTargetRoomDao.get(id);
+        ProjectItemTargetRoom room = projectItemTargetRoomDao.get(id);
+        if (room != null) {
+            room.setProjectName(projectCache.get(room.getProjectId()).getName());
+            room.setProjectItemName(projectItemCache.get(room.getProjectItemId()).getName());
+            room.setProjectItemTargetName(projectItemTargetCache.get(room.getProjectItemTargetId()).getName());
+        }
+        return room;
+    }
+
+    public int getTotalCount(ProjectItemTargetRoom project) {
+        return projectItemTargetRoomDao.getTotalCount(project);
+    }
+
+    public List<ProjectItemTargetRoom> getLimit(ProjectItemTargetRoom project, int currPage, int pageSize) {
+        int currIndex = (currPage - 1) * pageSize;
+        List<ProjectItemTargetRoom> list = projectItemTargetRoomDao.getLimit(project, currIndex, pageSize);
+        for (ProjectItemTargetRoom room : list) {
+            room.setProjectName(projectCache.get(room.getProjectId()).getName());
+            room.setProjectItemName(projectItemCache.get(room.getProjectItemId()).getName());
+            room.setProjectItemTargetName(projectItemTargetCache.get(room.getProjectItemTargetId()).getName());
+        }
+        return list;
     }
 
-    public List<ProjectItemTargetRoom> getProjectItemTargetRoom (ProjectItemTargetRoom projectItemTargetRoom) {
-        return projectItemTargetRoomDao.getProjectItemTargetRoom(projectItemTargetRoom);
+    public List<ProjectItemTargetRoom> getProjectItemTargetRoom(ProjectItemTargetRoom projectItemTargetRoom) {
+        List<ProjectItemTargetRoom> list = projectItemTargetRoomDao.getProjectItemTargetRoom(projectItemTargetRoom);
+        for (ProjectItemTargetRoom room : list) {
+            room.setProjectName(projectCache.get(room.getProjectId()).getName());
+            room.setProjectItemName(projectItemCache.get(room.getProjectItemId()).getName());
+            room.setProjectItemTargetName(projectItemTargetCache.get(room.getProjectItemTargetId()).getName());
+        }
+        return list;
     }
 
     public int insert(ProjectItemTargetRoom projectItemTargetRoom) {

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

@@ -45,6 +45,10 @@
 	    left join project_item_target pi on p.id = pi.projectItemId
 	</sql>
 
+	<select id="getProjectItem" resultMap="projectItemResult">
+		SELECT * FROM project_item WHERE id=#{id}
+	</select>
+
 	<select id="get" resultMap="result">
 		<include refid="query"/>
 		where p.id=#{id}

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

@@ -48,6 +48,27 @@
             <if test="projectItemTargetId != 0">
                 and projectItemTargetId = #{projectItemTargetId}
             </if>
+            <if test="roomTypeId != 0">
+                and roomTypeId = #{roomTypeId}
+            </if>
+            <if test="roomNumber != null">
+                and roomNumber = #{roomNumber}
+            </if>
+            <if test="roomState == 0 or roomState == 1">
+                and roomState = #{roomState}
+            </if>
+            <if test="investmentState == 0 or investmentState == 1">
+                and investmentState = #{investmentState}
+            </if>
+            <if test="invocationDate != null">
+                and invocationDate = #{invocationDate}
+            </if>
+            <if test="decoration != 0">
+                and decoration = #{decoration}
+            </if>
+            <if test="propertyCertificateNumber != null">
+                and propertyCertificateNumber = #{propertyCertificateNumber}
+            </if>
             <if test="tagIds != null">and
                 <foreach item="tagId" collection="tagIds.split(',')" open="(" separator=" and " close=")">
                     FIND_IN_SET (#{tagId}, tagIds)
@@ -74,6 +95,95 @@
         DELETE FROM project_item_target_room WHERE projectId=#{projectId}
     </delete>
 
+    <select id="getTotalCount" parameterType="com.bosshand.virgo.api.model.ProjectItemTargetRoom" resultType="Integer">
+        SELECT count(*) FROM project_item_target_room
+        <where>
+            <if test="projectId != 0">
+                and projectId = #{projectId}
+            </if>
+            <if test="projectItemId != 0">
+                and projectItemId = #{projectItemId}
+            </if>
+            <if test="projectItemTargetId != 0">
+                and projectItemTargetId = #{projectItemTargetId}
+            </if>
+            <if test="roomTypeId != 0">
+                and roomTypeId = #{roomTypeId}
+            </if>
+            <if test="roomNumber != null">
+                and roomNumber = #{roomNumber}
+            </if>
+            <if test="roomState == 0 or roomState == 1">
+                and roomState = #{roomState}
+            </if>
+            <if test="investmentState == 0 or investmentState == 1">
+                and investmentState = #{investmentState}
+            </if>
+            <if test="invocationDate != null">
+                and invocationDate = #{invocationDate}
+            </if>
+            <if test="decoration != 0">
+                and decoration = #{decoration}
+            </if>
+            <if test="propertyCertificateNumber != null">
+                and propertyCertificateNumber = #{propertyCertificateNumber}
+            </if>
+            <if test="tagIds != null">and
+                <foreach item="tagId" collection="tagIds.split(',')" open="(" separator=" and " close=")">
+                    FIND_IN_SET (#{tagId}, tagIds)
+                </foreach>
+            </if>
+            <if test="openState == 0 or openState == 1">
+                and openState = #{openState}
+            </if>
+        </where>
+    </select>
+
+    <select id="getLimit" resultMap="projectItemTargetRoomResult">
+        SELECT * FROM project_item_target_room
+        <where>
+            <if test="p.projectId != 0">
+                and projectId = #{p.projectId}
+            </if>
+            <if test="p.projectItemId != 0">
+                and projectItemId = #{p.projectItemId}
+            </if>
+            <if test="p.projectItemTargetId != 0">
+                and projectItemTargetId = #{p.projectItemTargetId}
+            </if>
+            <if test="p.roomTypeId != 0">
+                and roomTypeId = #{p.roomTypeId}
+            </if>
+            <if test="p.roomNumber != null">
+                and roomNumber = #{p.roomNumber}
+            </if>
+            <if test="p.roomState == 0 or p.roomState == 1">
+                and roomState = #{p.roomState}
+            </if>
+            <if test="p.investmentState == 0 or p.investmentState == 1">
+                and investmentState = #{p.investmentState}
+            </if>
+            <if test="p.invocationDate != null">
+                and invocationDate = #{p.invocationDate}
+            </if>
+            <if test="p.decoration != 0">
+                and decoration = #{p.decoration}
+            </if>
+            <if test="p.propertyCertificateNumber != null">
+                and propertyCertificateNumber = #{p.propertyCertificateNumber}
+            </if>
+            <if test="p.tagIds != null">and
+                <foreach item="tagId" collection="p.tagIds.split(',')" open="(" separator=" and " close=")">
+                    FIND_IN_SET (#{tagId}, tagIds)
+                </foreach>
+            </if>
+            <if test="p.openState == 0 or p.openState == 1">
+                and openState = #{p.openState}
+            </if>
+        </where>
+        limit #{currIndex} , #{pageSize}
+    </select>
+
     <update id="update" parameterType="com.bosshand.virgo.api.model.ProjectItemTargetRoom">
         UPDATE project_item_target_room
         <trim prefix="set" suffixOverrides=",">

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

@@ -43,6 +43,10 @@
 		left join project_item pi on p.id = pi.projectId
 	</sql>
 
+	<select id="getProject" resultMap="result">
+		SELECT * FROM project WHERE id=#{id}
+	</select>
+
 	<select id="get" resultMap="projectResult">
 		<include refid="ProjectQuery"/>
 		where p.deleteState = 0 and p.id=#{id}

+ 1 - 1
virgo.manager/src/main/java/com/bosshand/virgo/controller/AdminController.java

@@ -32,7 +32,7 @@ public class AdminController {
 	}
 	
 	@ApiOperation(value="用户新增", notes="用户新增")
-	@RequestMapping(value = "/insertUser/{organizationId}/{roles}/{departments}", method = RequestMethod.POST)
+	@RequestMapping(value = "/insertUser/{organizationId}/{roles}", method = RequestMethod.POST)
 	public Response insertUser(@RequestBody MgrUser user, @PathVariable long organizationId, @PathVariable String roles) {
 		MgrUser mgrUser = userService.insertUser(user);
 		userService.insertUserRole(mgrUser.getId(),organizationId, roles);