|
|
@@ -2,7 +2,13 @@ package com.mokamrp.privates.service.impl;
|
|
|
|
|
|
import com.baomidou.mybatisplus.mapper.EntityWrapper;
|
|
|
import com.baomidou.mybatisplus.plugins.Page;
|
|
|
+import com.mokamrp.privates.constant.HttpStatus;
|
|
|
+import com.mokamrp.privates.help.AjaxResult;
|
|
|
+import com.mokamrp.privates.mapper.RoomTagMapper;
|
|
|
+import com.mokamrp.privates.mapper.TagMapper;
|
|
|
import com.mokamrp.privates.mapper.WorkContactRoomMapper;
|
|
|
+import com.mokamrp.privates.mapper.pojo.RoomTag;
|
|
|
+import com.mokamrp.privates.mapper.pojo.Tag;
|
|
|
import com.mokamrp.privates.mapper.pojo.WorkContactRoom;
|
|
|
import com.mokamrp.privates.mapper.pojo.WorkRoom;
|
|
|
import com.mokamrp.privates.mapper.WorkRoomMapper;
|
|
|
@@ -13,7 +19,6 @@ import com.baomidou.mybatisplus.service.impl.ServiceImpl;
|
|
|
import org.springframework.beans.BeanUtils;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
-
|
|
|
import java.text.SimpleDateFormat;
|
|
|
import java.util.Date;
|
|
|
import java.util.HashMap;
|
|
|
@@ -38,71 +43,73 @@ public class WorkRoomServiceImpl extends ServiceImpl<WorkRoomMapper, WorkRoom> i
|
|
|
@Autowired
|
|
|
private WorkContactRoomMapper contanctMapperObj;
|
|
|
|
|
|
+ @Autowired
|
|
|
+ private TagMapper tagMapperObj;
|
|
|
+
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private RoomTagMapper roomTagMapperObj;
|
|
|
+
|
|
|
@Override
|
|
|
public Map<String, Object> getPageList(Integer pagesize, Integer page,
|
|
|
String name, Integer corp_id,
|
|
|
String start_create_time, String end_create_time,
|
|
|
String wx_chat_id, Integer corp_group_id,
|
|
|
- List owner_id, List tag_id) {
|
|
|
+ List owner_id, List tag_id ){
|
|
|
+
|
|
|
|
|
|
|
|
|
Page<WorkRoom> pageObj = new Page<>(page, pagesize);
|
|
|
EntityWrapper<WorkRoom> obj = new EntityWrapper<WorkRoom>();
|
|
|
|
|
|
- if (name != null && !"".equals(name)) {
|
|
|
- obj.like("a.name", name);
|
|
|
+ if(name != null && !"".equals(name)){
|
|
|
+ obj.like("a.name",name);
|
|
|
}
|
|
|
|
|
|
- if (corp_id != null) {
|
|
|
- obj.eq("a.corp_id", corp_id);
|
|
|
+ if(corp_id != null){
|
|
|
+ obj.eq("a.corp_id",corp_id);
|
|
|
}
|
|
|
|
|
|
- if (start_create_time != null && !"".equals(start_create_time)) {
|
|
|
+ if(start_create_time != null && !"".equals(start_create_time)) {
|
|
|
obj.ge("a.create_time", start_create_time);
|
|
|
}
|
|
|
|
|
|
- if (end_create_time != null && !"".equals(end_create_time)) {
|
|
|
+ if(end_create_time != null && !"".equals(end_create_time)) {
|
|
|
obj.le("a.create_time", end_create_time);
|
|
|
}
|
|
|
|
|
|
- if (owner_id != null) {
|
|
|
+ if(owner_id !=null) {
|
|
|
obj.in("a.owner_id", owner_id);
|
|
|
}
|
|
|
|
|
|
- if (tag_id != null) {
|
|
|
+ if(tag_id !=null) {
|
|
|
obj.in("f.tag_id", tag_id);
|
|
|
}
|
|
|
|
|
|
- if (corp_id != null) {
|
|
|
- obj.eq("a.corp_id", owner_id);
|
|
|
+ if(corp_id != null){
|
|
|
+ obj.eq("a.corp_id",owner_id);
|
|
|
}
|
|
|
|
|
|
- if (corp_group_id != null) {
|
|
|
- obj.eq("c.group_id", corp_group_id);
|
|
|
+ if(corp_group_id != null){
|
|
|
+ obj.eq("c.group_id",corp_group_id);
|
|
|
}
|
|
|
|
|
|
- if (wx_chat_id != null && !"".equals(wx_chat_id)) {
|
|
|
- obj.eq("a.wx_chat_id", wx_chat_id);
|
|
|
+ if(wx_chat_id != null && !"".equals(wx_chat_id)){
|
|
|
+ obj.eq("a.wx_chat_id",wx_chat_id);
|
|
|
}
|
|
|
|
|
|
- List<WorkRoomVo> list = mapperObj.getVoList(pageObj, obj);
|
|
|
+ List<WorkRoomVo> list = mapperObj.getVoList(pageObj,obj);
|
|
|
Integer total = mapperObj.getVoListTotal(obj);
|
|
|
- System.out.println("数据总数");
|
|
|
- System.out.println(total);
|
|
|
-
|
|
|
- if (list.size() > 0) {
|
|
|
-
|
|
|
|
|
|
+ if(list.size() > 0 ) {
|
|
|
List<Integer> ids = list.stream().map(WorkRoomVo -> WorkRoomVo.getId()).collect(Collectors.toList());
|
|
|
- HashMap<Integer, HashMap<String, Integer>> dataById = getDataById(ids);
|
|
|
-
|
|
|
+ HashMap<Integer ,HashMap<String,Integer >> dataById = getDataById(ids);
|
|
|
|
|
|
- System.out.println(dataById);
|
|
|
- if (dataById.size() > 0) {
|
|
|
- list = list.stream().map(WorkRwoomVo -> {
|
|
|
+ if(dataById.size() > 0){
|
|
|
+ list=list.stream().map(WorkRwoomVo -> {
|
|
|
WorkRoomVo detail = new WorkRoomVo();
|
|
|
BeanUtils.copyProperties(WorkRwoomVo, detail);
|
|
|
- if (dataById.get(detail.getId()) != null) {
|
|
|
+ if(dataById.get(detail.getId()) != null){
|
|
|
;
|
|
|
detail.setTotal_num((dataById.get(detail.getId()).get("total")));
|
|
|
detail.setAdd_num(dataById.get(detail.getId()).get("add_num"));
|
|
|
@@ -116,15 +123,107 @@ public class WorkRoomServiceImpl extends ServiceImpl<WorkRoomMapper, WorkRoom> i
|
|
|
}
|
|
|
|
|
|
|
|
|
- Map<String, Object> resMap = new HashMap<String, Object>();
|
|
|
+ Map<String, Object> resMap = new HashMap<String,Object>();
|
|
|
|
|
|
- resMap.put("list", list);
|
|
|
- resMap.put("total", total);
|
|
|
+ resMap.put("list",list);
|
|
|
+ resMap.put("total",total);
|
|
|
|
|
|
return resMap;
|
|
|
}
|
|
|
|
|
|
- private HashMap<Integer, HashMap<String, Integer>> getDataById(List<Integer> ids) {
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public Object bangTagIds(Integer[] ids,Integer[] tagIds){
|
|
|
+
|
|
|
+ //1-先查room是否存在
|
|
|
+ Object res = checkOption(ids,tagIds);
|
|
|
+ if(res != null){
|
|
|
+ return res;
|
|
|
+ }
|
|
|
+
|
|
|
+ //3-绑定插入但是要检测已经存在的
|
|
|
+ //roomTagMapperObj.
|
|
|
+
|
|
|
+ EntityWrapper<RoomTag> obj = new EntityWrapper<RoomTag>();
|
|
|
+ obj.in("id",ids);
|
|
|
+ RoomTag roomTagObj;
|
|
|
+
|
|
|
+ Date nowDate =new Date();
|
|
|
+ for(Integer id : ids){
|
|
|
+ for(Integer tagId : tagIds){
|
|
|
+ //检测是否已经存在
|
|
|
+ obj = new EntityWrapper<RoomTag>();
|
|
|
+ obj.eq("room_id",id);
|
|
|
+ obj.eq("tag_id",tagId);
|
|
|
+
|
|
|
+
|
|
|
+ if(roomTagMapperObj.selectCount(obj)<=0){//插入
|
|
|
+ roomTagObj = new RoomTag();
|
|
|
+ roomTagObj.setRoomId(id);
|
|
|
+ roomTagObj.setTagId(tagId);
|
|
|
+ roomTagObj.setCreateAt(nowDate);
|
|
|
+ roomTagObj.setUpdateAt(nowDate);
|
|
|
+ roomTagMapperObj.insert(roomTagObj);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return AjaxResult.success("操作成功");
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public Object leftTagIds(Integer[] ids,Integer[] tagIds){
|
|
|
+
|
|
|
+ //1-先查room是否存在
|
|
|
+ Object res = checkOption(ids,tagIds);
|
|
|
+ if(res != null){
|
|
|
+ return res;
|
|
|
+ }
|
|
|
+
|
|
|
+ //3-绑定插入但是要检测已经存在的
|
|
|
+ //roomTagMapperObj.
|
|
|
+ EntityWrapper<RoomTag> obj = new EntityWrapper<RoomTag>();
|
|
|
+ obj.in("id",ids);
|
|
|
+ RoomTag roomTagObj;
|
|
|
+
|
|
|
+ Date nowDate =new Date();
|
|
|
+ for(Integer id : ids){
|
|
|
+ for(Integer tagId : tagIds){
|
|
|
+ //检测是否已经存在
|
|
|
+ obj = new EntityWrapper<RoomTag>();
|
|
|
+ obj.eq("room_id",id);
|
|
|
+ obj.eq("tag_id",tagId);
|
|
|
+ if(roomTagMapperObj.selectCount(obj)>=0){//插入
|
|
|
+ roomTagMapperObj.delete(obj);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ return AjaxResult.success("操作成功");
|
|
|
+ }
|
|
|
+
|
|
|
+ private Object checkOption(Integer[] ids,Integer[] tagIds){
|
|
|
+ //1-先查room是否存在
|
|
|
+ EntityWrapper<WorkRoom> obj = new EntityWrapper<WorkRoom>();
|
|
|
+ obj.in("id",ids);
|
|
|
+
|
|
|
+ Integer total = mapperObj.selectCount(obj);
|
|
|
+ if(total != ids.length){
|
|
|
+ return AjaxResult.error(HttpStatus.ERROR,"room不全存在");
|
|
|
+ }
|
|
|
+
|
|
|
+ //2-tag是否都存在
|
|
|
+ EntityWrapper<Tag> tagWrapper = new EntityWrapper<Tag>();
|
|
|
+ tagWrapper.in("id",tagIds);
|
|
|
+ Integer tagTotal = tagMapperObj.selectCount(tagWrapper);
|
|
|
+
|
|
|
+ if(tagTotal != tagIds.length){
|
|
|
+ return AjaxResult.error(HttpStatus.ERROR,"tag不全存在");
|
|
|
+ }
|
|
|
+
|
|
|
+ return null;
|
|
|
+ }
|
|
|
+
|
|
|
+ private HashMap<Integer ,HashMap<String,Integer >> getDataById(List<Integer> ids){
|
|
|
|
|
|
String todayStartDate = (new SimpleDateFormat("yyyy-MM-dd 00:00:00")).format(new Date());
|
|
|
String todayEndDate = (new SimpleDateFormat("yyyy-MM-dd 23:59:59")).format(new Date());
|
|
|
@@ -147,51 +246,48 @@ public class WorkRoomServiceImpl extends ServiceImpl<WorkRoomMapper, WorkRoom> i
|
|
|
contactRoomEntityWrapperTodayLeft.le("out_time", todayEndDate);
|
|
|
contactRoomEntityWrapperTodayLeft.ge("out_time", todayStartDate);//大于
|
|
|
|
|
|
- List<WorkContactRoomGroupDataVo> todayLefts = contanctMapperObj.getNum(contactRoomEntityWrapperTodayLeft);
|
|
|
- List<WorkContactRoomGroupDataVo> todayAdds = contanctMapperObj.getNum(contactRoomEntityWrapperTodayAdd);
|
|
|
- List<WorkContactRoomGroupDataVo> totals = contanctMapperObj.getNum(contactRoomEntityWrapperTotal);
|
|
|
+ List<WorkContactRoomGroupDataVo> todayLefts= contanctMapperObj.getNum(contactRoomEntityWrapperTodayLeft);
|
|
|
+ List<WorkContactRoomGroupDataVo> todayAdds= contanctMapperObj.getNum(contactRoomEntityWrapperTodayAdd);
|
|
|
+ List<WorkContactRoomGroupDataVo> totals= contanctMapperObj.getNum(contactRoomEntityWrapperTotal);
|
|
|
|
|
|
|
|
|
- HashMap<Integer, HashMap<String, Integer>> dataById =
|
|
|
+ HashMap<Integer ,HashMap<String,Integer >> dataById =
|
|
|
new HashMap<Integer, HashMap<String, Integer>>();
|
|
|
|
|
|
HashMap<String, Integer> temp = new HashMap<String, Integer>();
|
|
|
for (WorkContactRoomGroupDataVo o : totals) {
|
|
|
- temp.put("total", o.getNum());
|
|
|
- temp.put("add_num", 0);
|
|
|
- temp.put("left_num", 0);
|
|
|
- dataById.put(o.getRoom_id(), temp);
|
|
|
+ temp.put("total",o.getNum());
|
|
|
+ temp.put("add_num",0);
|
|
|
+ temp.put("left_num",0);
|
|
|
+ dataById.put(o.getRoom_id(),temp);
|
|
|
}
|
|
|
|
|
|
HashMap<String, Integer> tempSetLeft = new HashMap<String, Integer>();
|
|
|
- System.out.println("查看类型");
|
|
|
- System.out.println(todayLefts);
|
|
|
- System.out.println(todayAdds);
|
|
|
for (WorkContactRoomGroupDataVo o : todayLefts) {
|
|
|
- if (dataById.get(o.getRoom_id()) == null) {//不存在
|
|
|
- temp.put("total", 0);
|
|
|
- temp.put("left_num", o.getNum());
|
|
|
- temp.put("add_num", 0);
|
|
|
- dataById.put(o.getRoom_id(), temp);
|
|
|
- } else {
|
|
|
+ if(dataById.get(o.getRoom_id())==null){//不存在
|
|
|
+ temp.put("total",0);
|
|
|
+ temp.put("left_num",o.getNum());
|
|
|
+ temp.put("add_num",0);
|
|
|
+ dataById.put(o.getRoom_id(),temp);
|
|
|
+ }else{
|
|
|
tempSetLeft = dataById.get(o.getRoom_id());
|
|
|
- tempSetLeft.put("left_num", o.getNum());
|
|
|
- dataById.put(o.getRoom_id(), tempSetLeft);
|
|
|
+ tempSetLeft.put("left_num",o.getNum());
|
|
|
+ dataById.put(o.getRoom_id(),tempSetLeft);
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
HashMap<String, Integer> tempSetAdd = new HashMap<String, Integer>();
|
|
|
for (WorkContactRoomGroupDataVo o : todayAdds) {
|
|
|
- if (dataById.get(o.getRoom_id()) == null) {//不存在
|
|
|
- temp.put("total", 0);
|
|
|
- temp.put("add_num", o.getNum());
|
|
|
- temp.put("left_num", 0);
|
|
|
- dataById.put(o.getRoom_id(), temp);
|
|
|
- } else {
|
|
|
- tempSetAdd = dataById.get(o.getRoom_id());
|
|
|
- tempSetAdd.put("add_num", o.getNum());
|
|
|
- dataById.put(o.getRoom_id(), tempSetAdd);
|
|
|
+ if(dataById.get(o.getRoom_id())==null){//不存在
|
|
|
+ temp.put("total",0);
|
|
|
+ temp.put("add_num",o.getNum());
|
|
|
+ temp.put("left_num",0);
|
|
|
+ dataById.put(o.getRoom_id(),temp);
|
|
|
+ }else{
|
|
|
+ tempSetAdd = dataById.get(o.getRoom_id());
|
|
|
+ tempSetAdd.put("add_num",o.getNum());
|
|
|
+ dataById.put(o.getRoom_id(),tempSetAdd);
|
|
|
}
|
|
|
}
|
|
|
return dataById;
|