Просмотр исходного кода

fix(群增加标签搜索和展示)

gengyang 5 лет назад
Родитель
Сommit
9aebfbc4dc

+ 6 - 0
src/main/java/com/mokamrp/privates/mapper/WorkRoomMapper.java

@@ -8,11 +8,15 @@ import com.mokamrp.privates.mapper.pojo.WorkContactEmployee;
 import com.mokamrp.privates.mapper.pojo.WorkRoom;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.mokamrp.privates.mapper.vo.WorkContactEmployeeVo;
+import com.mokamrp.privates.mapper.vo.WorkGroupDataVo;
 import com.mokamrp.privates.mapper.vo.WorkRoomVo;
+import org.apache.ibatis.annotations.MapKey;
 import org.apache.ibatis.annotations.Param;
 import org.springframework.stereotype.Component;
 
+import java.util.HashMap;
 import java.util.List;
+import java.util.Map;
 
 /**
  * <p>
@@ -27,4 +31,6 @@ public interface WorkRoomMapper extends BaseMapper<WorkRoom> {
     List<WorkRoomVo> getVoList(IPage<WorkRoomVo> page, @Param("ew") QueryWrapper<WorkRoomVo> queryWrapper);
 
     Integer getVoListTotal(@Param("ew") QueryWrapper<WorkRoomVo> queryWrapper);
+
+    List<HashMap<String, Object>> getRoomTagList(@Param("ew") QueryWrapper<WorkRoomVo> queryWrapper);
 }

+ 14 - 0
src/main/java/com/mokamrp/privates/mapper/WorkRoomMapper.xml

@@ -65,5 +65,19 @@
         </where>
     </select>
 
+    <select id="getRoomTagList" resultType="Map">
+        SELECT
+        a.id,
+        GROUP_CONCAT(g.tag_name) as tag_names,
+        GROUP_CONCAT(g.id) as tag_ids
+        FROM
+            mc_work_room AS a
+        LEFT JOIN private_room_tag AS f ON a.id = f.room_id
+        LEFT JOIN private_tag AS g ON g.id = f.tag_id
+        <where>
+            ${ew.sqlSegment}
+        </where>
+        group by a.id;
+    </select>
 
 </mapper>

+ 28 - 4
src/main/java/com/mokamrp/privates/service/impl/WorkRoomServiceImpl.java

@@ -145,25 +145,48 @@ public class WorkRoomServiceImpl extends ServiceImpl<WorkRoomMapper, WorkRoom> i
 
         List<WorkRoomVo> list = mapperObj.getVoList(pageObj, room);
 
-        System.out.println("获取数量是"+list.size());
-
         if (list.size() > 0) {
             List<Integer> ids = list.stream().map(WorkRoomVo -> WorkRoomVo.getId()).collect(Collectors.toList());
             HashMap<Integer, HashMap<String, Integer>> dataById = getDataById(ids);
 
+            QueryWrapper<WorkRoomVo> tagObj = new QueryWrapper<WorkRoomVo>();
+            tagObj.in("a.id", ids);
+            List<HashMap<String, Object>> tagMapData = mapperObj.getRoomTagList(tagObj);
+            System.out.println(tagMapData);
+
             if (dataById.size() > 0) {
+                int j  = list.size();
+                //for (int i=0;i<j;i++)
                 list = list.stream().map(WorkRwoomVo -> {
                     WorkRoomVo detail = new WorkRoomVo();
                     BeanUtils.copyProperties(WorkRwoomVo, detail);
                     detail.setTotalNum(0);
                     detail.setAddNum(0);
                     detail.setLeftNum(0);
+                    detail.setTagNames("");
+                    detail.setTagIdsStr("");
                     if (dataById.get(detail.getId()) != null) {
                         detail.setTotalNum((dataById.get(detail.getId()).get("total")));
                         detail.setAddNum(dataById.get(detail.getId()).get("add_num"));
                         detail.setLeftNum(dataById.get(detail.getId()).get("left_num"));
                     }
 
+                    System.out.println(tagMapData);
+
+                    for (HashMap<String,Object> m :tagMapData){
+                        System.out.println(m);
+                        if(m.get("id").toString().equals(detail.getId().toString())){
+                            if(m.get("tag_names") != null){
+                                detail.setTagNames(m.get("tag_names").toString());
+                            }
+
+                            if(m.get("tag_ids") != null){
+                                detail.setTagIdsStr(m.get("tag_ids").toString());
+                            }
+                        }
+                    }
+
+
                     return detail;
                 }).collect(Collectors.toList());
             }
@@ -321,6 +344,8 @@ public class WorkRoomServiceImpl extends ServiceImpl<WorkRoomMapper, WorkRoom> i
         QueryWrapper<WorkContactRoom> contactRoomQueryWrapperTotal = new QueryWrapper<WorkContactRoom>();
         QueryWrapper<WorkContactRoom> contactRoomQueryWrapperTodayAdd = new QueryWrapper<WorkContactRoom>();
         QueryWrapper<WorkContactRoom> contactRoomQueryWrapperTodayLeft = new QueryWrapper<WorkContactRoom>();
+
+
         contactRoomQueryWrapperTotal.in("room_id", ids);
         contactRoomQueryWrapperTotal.eq("status", 1);
 
@@ -329,7 +354,6 @@ public class WorkRoomServiceImpl extends ServiceImpl<WorkRoomMapper, WorkRoom> i
         contactRoomQueryWrapperTodayAdd.le("join_time", todayEndDate);
         contactRoomQueryWrapperTodayAdd.ge("join_time", todayStartDate);//大于
 
-
         contactRoomQueryWrapperTodayLeft.in("room_id", ids);
         contactRoomQueryWrapperTodayLeft.eq("status", 2);
         contactRoomQueryWrapperTodayLeft.le("out_time", todayEndDate);
@@ -339,7 +363,6 @@ public class WorkRoomServiceImpl extends ServiceImpl<WorkRoomMapper, WorkRoom> i
         List<WorkContactRoomGroupDataVo> todayAdds = contanctMapperObj.getNum(contactRoomQueryWrapperTodayAdd);
         List<WorkContactRoomGroupDataVo> totals = contanctMapperObj.getNum(contactRoomQueryWrapperTotal);
 
-
         HashMap<Integer, HashMap<String, Integer>> dataById =
                 new HashMap<Integer, HashMap<String, Integer>>();
 
@@ -379,6 +402,7 @@ public class WorkRoomServiceImpl extends ServiceImpl<WorkRoomMapper, WorkRoom> i
                 dataById.put(o.getRoom_id(), tempSetAdd);
             }
         }
+
         return dataById;
 
     }