Sfoglia il codice sorgente

feat(增加一个客户群下载)

gengyang 5 anni fa
parent
commit
b70c05f49d

+ 0 - 4
src/main/java/com/mokamrp/privates/controller/UserCorpController.java

@@ -9,12 +9,8 @@ import com.mokamrp.privates.mapper.pojo.UserCorp;
 import com.mokamrp.privates.service.UserCorpService;
 import com.mokamrp.privates.service.UserCorpService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RequestMapping;
-
-import org.springframework.stereotype.Controller;
 import org.springframework.web.bind.annotation.RestController;
 import org.springframework.web.bind.annotation.RestController;
-
 import java.util.List;
 import java.util.List;
 import java.util.Map;
 import java.util.Map;
 
 

+ 25 - 8
src/main/java/com/mokamrp/privates/controller/WorkRoomController.java

@@ -8,6 +8,7 @@ import com.mokamrp.privates.mapper.pojo.WorkRoom;
 import com.mokamrp.privates.service.WorkContactEmployeeService;
 import com.mokamrp.privates.service.WorkContactEmployeeService;
 import com.mokamrp.privates.service.WorkRoomService;
 import com.mokamrp.privates.service.WorkRoomService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.scheduling.annotation.EnableAsync;
 import org.springframework.validation.BindingResult;
 import org.springframework.validation.BindingResult;
 import org.springframework.web.bind.annotation.*;
 import org.springframework.web.bind.annotation.*;
 
 
@@ -25,6 +26,7 @@ import java.util.Map;
  */
  */
 @RestController
 @RestController
 @RequestMapping("/workRoom")
 @RequestMapping("/workRoom")
+@EnableAsync
 public class WorkRoomController extends BaseController<WorkRoom> {
 public class WorkRoomController extends BaseController<WorkRoom> {
 
 
     @Autowired
     @Autowired
@@ -48,24 +50,39 @@ public class WorkRoomController extends BaseController<WorkRoom> {
         return AjaxResult.success(resMap);
         return AjaxResult.success(resMap);
     }
     }
 
 
+    @RequestMapping("/export")
+    @ResponseBody
+    public Object export(
+            String name, Integer corp_id,
+            String start_create_time, String end_create_time,
+            String wx_chat_id, Integer corp_group_id,
+            @RequestParam List owner_id, @RequestParam List tag_id
+    ) {
+
+        workRoomService.export(name, corp_id, start_create_time, end_create_time,
+                wx_chat_id, corp_group_id, owner_id, tag_id);//所有
+
+        return AjaxResult.success("正在异步生成请稍后");
+    }
+
     @PostMapping("/band")
     @PostMapping("/band")
-    public Object band(@Valid @RequestBody WorkRoomBandTagHandle handle, BindingResult bindingResult){
-        if(bindingResult.hasErrors()){
-            return AjaxResult.error(HttpStatus.ERROR,bindingResult.getFieldError().getDefaultMessage());
+    public Object band(@Valid @RequestBody WorkRoomBandTagHandle handle, BindingResult bindingResult) {
+        if (bindingResult.hasErrors()) {
+            return AjaxResult.error(HttpStatus.ERROR, bindingResult.getFieldError().getDefaultMessage());
         }
         }
 
 
         //绑定关系用去吧
         //绑定关系用去吧
-        return workRoomService.bangTagIds(handle.getIds(),handle.getTag_ids());
+        return workRoomService.bangTagIds(handle.getIds(), handle.getTag_ids());
     }
     }
 
 
     @PostMapping("/left")
     @PostMapping("/left")
-    public Object left(@Valid @RequestBody WorkRoomBandTagHandle handle, BindingResult bindingResult){
-        if(bindingResult.hasErrors()){
-            return AjaxResult.error(HttpStatus.ERROR,bindingResult.getFieldError().getDefaultMessage());
+    public Object left(@Valid @RequestBody WorkRoomBandTagHandle handle, BindingResult bindingResult) {
+        if (bindingResult.hasErrors()) {
+            return AjaxResult.error(HttpStatus.ERROR, bindingResult.getFieldError().getDefaultMessage());
         }
         }
 
 
         //绑定关系用去吧
         //绑定关系用去吧
-        return workRoomService.leftTagIds(handle.getIds(),handle.getTag_ids());
+        return workRoomService.leftTagIds(handle.getIds(), handle.getTag_ids());
     }
     }
 
 
 }
 }

+ 1 - 0
src/main/java/com/mokamrp/privates/mapper/pojo/Downfile.java

@@ -23,6 +23,7 @@ public class Downfile extends Model<Downfile> {
 
 
 
 
     public static final String WORK_CONTACT_EMPLOYEE = "客服信息下载.csv";
     public static final String WORK_CONTACT_EMPLOYEE = "客服信息下载.csv";
+    public static final String WORM_ROOM = "群数据下载.csv";
 
 
     private static final long serialVersionUID = 1L;
     private static final long serialVersionUID = 1L;
 
 

+ 1 - 0
src/main/java/com/mokamrp/privates/service/WorkContactEmployeeService.java

@@ -6,6 +6,7 @@ import com.mokamrp.privates.mapper.pojo.WorkContactEmployee;
 import com.baomidou.mybatisplus.service.IService;
 import com.baomidou.mybatisplus.service.IService;
 import com.mokamrp.privates.mapper.vo.WorkContactEmployeeVo;
 import com.mokamrp.privates.mapper.vo.WorkContactEmployeeVo;
 import org.apache.ibatis.annotations.Param;
 import org.apache.ibatis.annotations.Param;
+import org.springframework.scheduling.annotation.EnableAsync;
 import org.springframework.web.bind.annotation.RequestParam;
 import org.springframework.web.bind.annotation.RequestParam;
 
 
 import java.util.List;
 import java.util.List;

+ 2 - 0
src/main/java/com/mokamrp/privates/service/WorkRoomService.java

@@ -21,6 +21,8 @@ public interface WorkRoomService extends IService<WorkRoom> {
                                            String wx_chat_id, Integer corp_group_id,
                                            String wx_chat_id, Integer corp_group_id,
                                            List owner_id, List tag_id);
                                            List owner_id, List tag_id);
 
 
+    public void export(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);
 
 
     public Object bangTagIds(Integer[] ids, Integer[] tagIds);
     public Object bangTagIds(Integer[] ids, Integer[] tagIds);
 
 

+ 8 - 14
src/main/java/com/mokamrp/privates/service/impl/WorkContactEmployeeServiceImpl.java

@@ -59,7 +59,6 @@ public class WorkContactEmployeeServiceImpl extends ServiceImpl<WorkContactEmplo
         Page<WorkContactEmployeeVo> pageObj = new Page<>(page, pagesize);
         Page<WorkContactEmployeeVo> pageObj = new Page<>(page, pagesize);
         EntityWrapper<WorkContactEmployee> obj = new EntityWrapper<WorkContactEmployee>();
         EntityWrapper<WorkContactEmployee> obj = new EntityWrapper<WorkContactEmployee>();
 
 
-
         if(name != null && !name.equals("")){
         if(name != null && !name.equals("")){
             obj.like("c.name", name);
             obj.like("c.name", name);
         }
         }
@@ -118,7 +117,9 @@ public class WorkContactEmployeeServiceImpl extends ServiceImpl<WorkContactEmplo
                                            Integer group_id,
                                            Integer group_id,
                                            Integer corp_id, List employee_id, List tag_id , Integer channel_code_id){
                                            Integer corp_id, List employee_id, List tag_id , Integer channel_code_id){
 
 
+        Downfile file = new Downfile();
         EntityWrapper<WorkContactEmployee> obj = new EntityWrapper<WorkContactEmployee>();
         EntityWrapper<WorkContactEmployee> obj = new EntityWrapper<WorkContactEmployee>();
+        List<Object> tempObj;
 
 
         if(name != null && !name.equals("")){
         if(name != null && !name.equals("")){
             obj.like("c.name",name);
             obj.like("c.name",name);
@@ -166,7 +167,6 @@ public class WorkContactEmployeeServiceImpl extends ServiceImpl<WorkContactEmplo
         List<Object> headList = Arrays.asList(head);
         List<Object> headList = Arrays.asList(head);
         resList.add(headList);
         resList.add(headList);
 
 
-        List<Object> tempObj;
         if(list.size() >=1){
         if(list.size() >=1){
             for (WorkContactEmployeeVo o: list){
             for (WorkContactEmployeeVo o: list){
                 tempObj = new ArrayList<Object>() {//这个大括号 就相当于我们  new 接口
                 tempObj = new ArrayList<Object>() {//这个大括号 就相当于我们  new 接口
@@ -190,27 +190,21 @@ public class WorkContactEmployeeServiceImpl extends ServiceImpl<WorkContactEmplo
 
 
         StringBuffer content = OssFile.createCSV(resList);
         StringBuffer content = OssFile.createCSV(resList);
 
 
-
         /*上传到oss*/
         /*上传到oss*/
-        Downfile file = new Downfile();
+        file.setTitle(Downfile.WORK_CONTACT_EMPLOYEE);
+        file.setStatus(0);
+        downfileMapper.insert(file);
 
 
         Date currentTime = new Date();
         Date currentTime = new Date();
         SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
         SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
         String dateString = formatter.format(currentTime);
         String dateString = formatter.format(currentTime);
-
-
-        String filePath = OSSConfiguration.DOWN_DIR+dateString+"/"+Downfile.WORK_CONTACT_EMPLOYEE;
-
-        file.setTitle(Downfile.WORK_CONTACT_EMPLOYEE);
-        file.setDownUrl(ossConfiguration.getHost()+filePath);
-        file.setStatus(1);
-        System.out.println(ossConfiguration.getHost()+filePath);
+        String filePath = OSSConfiguration.DOWN_DIR+dateString+"/"+file.getId().toString()+"_"+Downfile.WORK_CONTACT_EMPLOYEE;
 
 
         PutObjectRequest putObjectRequest = new PutObjectRequest(ossConfiguration.getBucketName(), filePath, new ByteArrayInputStream(content.toString().getBytes()));
         PutObjectRequest putObjectRequest = new PutObjectRequest(ossConfiguration.getBucketName(), filePath, new ByteArrayInputStream(content.toString().getBytes()));
         ossClient.putObject(putObjectRequest);
         ossClient.putObject(putObjectRequest);
 
 
-
-        downfileMapper.insert(file);
+        file.setDownUrl(ossConfiguration.getHost()+filePath);
+        downfileMapper.updateById(file);
 
 
         return;
         return;
     }
     }

+ 204 - 109
src/main/java/com/mokamrp/privates/service/impl/WorkRoomServiceImpl.java

@@ -1,29 +1,28 @@
 package com.mokamrp.privates.service.impl;
 package com.mokamrp.privates.service.impl;
 
 
+import com.aliyun.oss.OSS;
+import com.aliyun.oss.model.PutObjectRequest;
 import com.baomidou.mybatisplus.mapper.EntityWrapper;
 import com.baomidou.mybatisplus.mapper.EntityWrapper;
 import com.baomidou.mybatisplus.plugins.Page;
 import com.baomidou.mybatisplus.plugins.Page;
+import com.mokamrp.privates.config.OSSConfiguration;
 import com.mokamrp.privates.constant.HttpStatus;
 import com.mokamrp.privates.constant.HttpStatus;
 import com.mokamrp.privates.help.AjaxResult;
 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;
+import com.mokamrp.privates.mapper.*;
+import com.mokamrp.privates.mapper.pojo.*;
+import com.mokamrp.privates.mapper.vo.WorkContactEmployeeVo;
 import com.mokamrp.privates.mapper.vo.WorkContactRoomGroupDataVo;
 import com.mokamrp.privates.mapper.vo.WorkContactRoomGroupDataVo;
 import com.mokamrp.privates.mapper.vo.WorkRoomVo;
 import com.mokamrp.privates.mapper.vo.WorkRoomVo;
 import com.mokamrp.privates.service.WorkRoomService;
 import com.mokamrp.privates.service.WorkRoomService;
 import com.baomidou.mybatisplus.service.impl.ServiceImpl;
 import com.baomidou.mybatisplus.service.impl.ServiceImpl;
+import com.mokamrp.privates.utils.OssFile;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.scheduling.annotation.Async;
 import org.springframework.stereotype.Service;
 import org.springframework.stereotype.Service;
+
+import java.io.ByteArrayInputStream;
 import java.text.SimpleDateFormat;
 import java.text.SimpleDateFormat;
-import java.util.Date;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
 import java.util.stream.Collectors;
 import java.util.stream.Collectors;
 
 
 /**
 /**
@@ -37,6 +36,16 @@ import java.util.stream.Collectors;
 @Service
 @Service
 public class WorkRoomServiceImpl extends ServiceImpl<WorkRoomMapper, WorkRoom> implements WorkRoomService {
 public class WorkRoomServiceImpl extends ServiceImpl<WorkRoomMapper, WorkRoom> implements WorkRoomService {
 
 
+
+    @Autowired
+    private OSS ossClient;
+
+    @Autowired
+    private DownfileMapper downfileMapper;
+
+    @Autowired
+    private OSSConfiguration ossConfiguration;
+
     @Autowired
     @Autowired
     private WorkRoomMapper mapperObj;
     private WorkRoomMapper mapperObj;
 
 
@@ -46,7 +55,6 @@ public class WorkRoomServiceImpl extends ServiceImpl<WorkRoomMapper, WorkRoom> i
     @Autowired
     @Autowired
     private TagMapper tagMapperObj;
     private TagMapper tagMapperObj;
 
 
-
     @Autowired
     @Autowired
     private RoomTagMapper roomTagMapperObj;
     private RoomTagMapper roomTagMapperObj;
 
 
@@ -55,89 +63,176 @@ public class WorkRoomServiceImpl extends ServiceImpl<WorkRoomMapper, WorkRoom> i
                                            String name, Integer corp_id,
                                            String name, Integer corp_id,
                                            String start_create_time, String end_create_time,
                                            String start_create_time, String end_create_time,
                                            String wx_chat_id, Integer corp_group_id,
                                            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 = getWrapper(name, corp_id, start_create_time, end_create_time,
+                wx_chat_id, corp_group_id, owner_id, tag_id);
 
 
+        Integer total = mapperObj.getVoListTotal(obj);
+        List<WorkRoomVo> list = mapperObj.getVoList(pageObj, obj);
+        getCommonList(pageObj,obj);
 
 
-        Page<WorkRoom> pageObj = new Page<>(page, pagesize);
-        EntityWrapper<WorkRoom> obj = new EntityWrapper<WorkRoom>();
+        Map<String, Object> resMap = new HashMap<String, Object>();
 
 
-        if(name != null && !"".equals(name)){
-            obj.like("a.name",name);
-        }
+        resMap.put("list", list);
+        resMap.put("total", total);
 
 
-        if(corp_id != null){
-            obj.eq("a.corp_id",corp_id);
-        }
+        return resMap;
+    }
 
 
-        if(start_create_time != null && !"".equals(start_create_time)) {
-            obj.ge("a.create_time", start_create_time);
-        }
+    /**
+     * @TODO 稍后需要改参数以及做一个下载限制
+     * @param name
+     * @param corp_id
+     * @param start_create_time
+     * @param end_create_time
+     * @param wx_chat_id
+     * @param corp_group_id
+     * @param owner_id
+     * @param tag_id
+     */
+    @Override
+    @Async
+    public void export(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) {
 
 
-        if(end_create_time != null && !"".equals(end_create_time)) {
-            obj.le("a.create_time", end_create_time);
-        }
+        List<Object> tempObj;
+        Downfile file = new Downfile();
 
 
-        if(owner_id !=null) {
-            obj.in("a.owner_id", owner_id);
+        EntityWrapper<WorkRoom> obj = getWrapper(name, corp_id, start_create_time, end_create_time, wx_chat_id, corp_group_id, owner_id, tag_id);
+        Integer total = mapperObj.getVoListTotal(obj);
+        Page<WorkRoom> pageObj = new Page<>(1, total);
+        List<WorkRoomVo> list =  getCommonList(pageObj,obj);
+
+        //实现下载
+        //群名称,群主 所属主体,主体分组 客服 群标签 群人数 当日入群 当日退群 创建时间 群id
+        List<List<Object>> resList = new ArrayList<List<Object>>();
+        //Object[] head = { "id","群id", "群名称", "群主","所属主体","主体分组","客服","群标签","群人数","当日入群","当日退群","创建时间" };
+        Object[] head = { "id","群id", "群名称", "群主","所属主体","客服","群标签","群人数","当日入群","当日退群","创建时间" };
+        List<Object> headList = Arrays.asList(head);
+        resList.add(headList);
+
+        if(list.size() >=1){
+            for (WorkRoomVo o: list){
+                tempObj = new ArrayList<Object>() {//这个大括号 就相当于我们  new 接口
+                    {//这个大括号 就是 构造代码块 会在构造函数前 调用
+                        this.add(o.getId());
+                        this.add(o.getWxChatId());
+                        this.add(o.getName());
+                        this.add(o.getEmployeeName());
+                        this.add(o.getCorpName());
+                        this.add(o.getTagNames());
+                        this.add(o.getTotalNum());
+                        this.add(o.getAddNum());
+                        this.add(o.getLeftNum());
+                        this.add(o.getCreateTime());
+                    }
+                };
+                resList.add(tempObj);
+            }
         }
         }
 
 
-        if(tag_id !=null) {
-            obj.in("f.tag_id", tag_id);
-        }
+        StringBuffer content = OssFile.createCSV(resList);
 
 
-        if(corp_id != null){
-            obj.eq("a.corp_id",owner_id);
-        }
+        /*上传到oss*/
+        file.setTitle(Downfile.WORK_CONTACT_EMPLOYEE);
+        file.setStatus(0);
+        downfileMapper.insert(file);
 
 
-        if(corp_group_id != null){
-            obj.eq("c.group_id",corp_group_id);
-        }
+        Date currentTime = new Date();
+        SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
+        String dateString = formatter.format(currentTime);
+        String filePath = OSSConfiguration.DOWN_DIR+dateString+"/"+file.getId().toString()+"_"+Downfile.WORM_ROOM;
 
 
-        if(wx_chat_id != null && !"".equals(wx_chat_id)){
-            obj.eq("a.wx_chat_id",wx_chat_id);
-        }
+        PutObjectRequest putObjectRequest = new PutObjectRequest(ossConfiguration.getBucketName(), filePath, new ByteArrayInputStream(content.toString().getBytes()));
+        ossClient.putObject(putObjectRequest);
 
 
-        List<WorkRoomVo> list = mapperObj.getVoList(pageObj,obj);
-        Integer total = mapperObj.getVoListTotal(obj);
+        file.setDownUrl(ossConfiguration.getHost()+filePath);
+        file.setStatus(1);
+        downfileMapper.updateById(file);
 
 
-        if(list.size() > 0 ) {
+        return;
+    }
+
+    private List<WorkRoomVo> getCommonList(Page<WorkRoom> pageObj,EntityWrapper<WorkRoom> room) {
+
+        List<WorkRoomVo> list = mapperObj.getVoList(pageObj, room);
+
+        if (list.size() > 0) {
             List<Integer> ids = list.stream().map(WorkRoomVo -> WorkRoomVo.getId()).collect(Collectors.toList());
             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);
 
 
-            if(dataById.size() > 0){
-                list=list.stream().map(WorkRwoomVo -> {
+            if (dataById.size() > 0) {
+                list = list.stream().map(WorkRwoomVo -> {
                     WorkRoomVo detail = new WorkRoomVo();
                     WorkRoomVo detail = new WorkRoomVo();
                     BeanUtils.copyProperties(WorkRwoomVo, detail);
                     BeanUtils.copyProperties(WorkRwoomVo, detail);
-                    if(dataById.get(detail.getId()) != null){
-                        ;
+                    if (dataById.get(detail.getId()) != null) {
                         detail.setTotalNum((dataById.get(detail.getId()).get("total")));
                         detail.setTotalNum((dataById.get(detail.getId()).get("total")));
                         detail.setAddNum(dataById.get(detail.getId()).get("add_num"));
                         detail.setAddNum(dataById.get(detail.getId()).get("add_num"));
                         detail.setLeftNum(dataById.get(detail.getId()).get("left_num"));
                         detail.setLeftNum(dataById.get(detail.getId()).get("left_num"));
-
                     }
                     }
 
 
                     return detail;
                     return detail;
                 }).collect(Collectors.toList());
                 }).collect(Collectors.toList());
             }
             }
         }
         }
+        return list;
 
 
+    }
 
 
-        Map<String, Object> resMap = new HashMap<String,Object>();
+    private EntityWrapper<WorkRoom> getWrapper(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) {
 
 
-        resMap.put("list",list);
-        resMap.put("total",total);
+        EntityWrapper<WorkRoom> obj = new EntityWrapper<WorkRoom>();
 
 
-        return resMap;
-    }
+        if (name != null && !"".equals(name)) {
+            obj.like("a.name", name);
+        }
+
+        if (corp_id != null) {
+            obj.eq("a.corp_id", corp_id);
+        }
 
 
+        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)) {
+            obj.le("a.create_time", end_create_time);
+        }
+
+        if (owner_id != null) {
+            obj.in("a.owner_id", owner_id);
+        }
+
+        if (tag_id != null) {
+            obj.in("f.tag_id", tag_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 (wx_chat_id != null && !"".equals(wx_chat_id)) {
+            obj.eq("a.wx_chat_id", wx_chat_id);
+        }
+
+        return obj;
+    }
 
 
     @Override
     @Override
-    public Object bangTagIds(Integer[] ids,Integer[] tagIds){
+    public Object bangTagIds(Integer[] ids, Integer[] tagIds) {
 
 
         //1-先查room是否存在
         //1-先查room是否存在
-        Object res = checkOption(ids,tagIds);
-        if(res != null){
+        Object res = checkOption(ids, tagIds);
+        if (res != null) {
             return res;
             return res;
         }
         }
 
 
@@ -145,19 +240,19 @@ public class WorkRoomServiceImpl extends ServiceImpl<WorkRoomMapper, WorkRoom> i
         //roomTagMapperObj.
         //roomTagMapperObj.
 
 
         EntityWrapper<RoomTag> obj = new EntityWrapper<RoomTag>();
         EntityWrapper<RoomTag> obj = new EntityWrapper<RoomTag>();
-        obj.in("id",ids);
+        obj.in("id", ids);
         RoomTag roomTagObj;
         RoomTag roomTagObj;
 
 
-        Date nowDate =new Date();
-        for(Integer id : ids){
-            for(Integer tagId : tagIds){
+        Date nowDate = new Date();
+        for (Integer id : ids) {
+            for (Integer tagId : tagIds) {
                 //检测是否已经存在
                 //检测是否已经存在
                 obj = new EntityWrapper<RoomTag>();
                 obj = new EntityWrapper<RoomTag>();
-                obj.eq("room_id",id);
-                obj.eq("tag_id",tagId);
+                obj.eq("room_id", id);
+                obj.eq("tag_id", tagId);
 
 
 
 
-                if(roomTagMapperObj.selectCount(obj)<=0){//插入
+                if (roomTagMapperObj.selectCount(obj) <= 0) {//插入
                     roomTagObj = new RoomTag();
                     roomTagObj = new RoomTag();
                     roomTagObj.setRoomId(id);
                     roomTagObj.setRoomId(id);
                     roomTagObj.setTagId(tagId);
                     roomTagObj.setTagId(tagId);
@@ -171,28 +266,28 @@ public class WorkRoomServiceImpl extends ServiceImpl<WorkRoomMapper, WorkRoom> i
     }
     }
 
 
     @Override
     @Override
-    public Object leftTagIds(Integer[] ids,Integer[] tagIds){
+    public Object leftTagIds(Integer[] ids, Integer[] tagIds) {
 
 
         //1-先查room是否存在
         //1-先查room是否存在
-        Object res = checkOption(ids,tagIds);
-        if(res != null){
+        Object res = checkOption(ids, tagIds);
+        if (res != null) {
             return res;
             return res;
         }
         }
 
 
         //3-绑定插入但是要检测已经存在的
         //3-绑定插入但是要检测已经存在的
         //roomTagMapperObj.
         //roomTagMapperObj.
         EntityWrapper<RoomTag> obj = new EntityWrapper<RoomTag>();
         EntityWrapper<RoomTag> obj = new EntityWrapper<RoomTag>();
-        obj.in("id",ids);
+        obj.in("id", ids);
         RoomTag roomTagObj;
         RoomTag roomTagObj;
 
 
-        Date nowDate =new Date();
-        for(Integer id : ids){
-            for(Integer tagId : tagIds){
+        Date nowDate = new Date();
+        for (Integer id : ids) {
+            for (Integer tagId : tagIds) {
                 //检测是否已经存在
                 //检测是否已经存在
                 obj = new EntityWrapper<RoomTag>();
                 obj = new EntityWrapper<RoomTag>();
-                obj.eq("room_id",id);
-                obj.eq("tag_id",tagId);
-                if(roomTagMapperObj.selectCount(obj)>=0){//插入
+                obj.eq("room_id", id);
+                obj.eq("tag_id", tagId);
+                if (roomTagMapperObj.selectCount(obj) >= 0) {//插入
                     roomTagMapperObj.delete(obj);
                     roomTagMapperObj.delete(obj);
                 }
                 }
             }
             }
@@ -201,29 +296,29 @@ public class WorkRoomServiceImpl extends ServiceImpl<WorkRoomMapper, WorkRoom> i
         return AjaxResult.success("操作成功");
         return AjaxResult.success("操作成功");
     }
     }
 
 
-    private Object checkOption(Integer[] ids,Integer[] tagIds){
+    private Object checkOption(Integer[] ids, Integer[] tagIds) {
         //1-先查room是否存在
         //1-先查room是否存在
         EntityWrapper<WorkRoom> obj = new EntityWrapper<WorkRoom>();
         EntityWrapper<WorkRoom> obj = new EntityWrapper<WorkRoom>();
-        obj.in("id",ids);
+        obj.in("id", ids);
 
 
         Integer total = mapperObj.selectCount(obj);
         Integer total = mapperObj.selectCount(obj);
-        if(total != ids.length){
-            return AjaxResult.error(HttpStatus.ERROR,"room不全存在");
+        if (total != ids.length) {
+            return AjaxResult.error(HttpStatus.ERROR, "room不全存在");
         }
         }
 
 
         //2-tag是否都存在
         //2-tag是否都存在
         EntityWrapper<Tag> tagWrapper = new EntityWrapper<Tag>();
         EntityWrapper<Tag> tagWrapper = new EntityWrapper<Tag>();
-        tagWrapper.in("id",tagIds);
+        tagWrapper.in("id", tagIds);
         Integer tagTotal = tagMapperObj.selectCount(tagWrapper);
         Integer tagTotal = tagMapperObj.selectCount(tagWrapper);
 
 
-        if(tagTotal != tagIds.length){
-            return AjaxResult.error(HttpStatus.ERROR,"tag不全存在");
+        if (tagTotal != tagIds.length) {
+            return AjaxResult.error(HttpStatus.ERROR, "tag不全存在");
         }
         }
 
 
         return null;
         return null;
     }
     }
 
 
-    private HashMap<Integer ,HashMap<String,Integer >> getDataById(List<Integer> ids){
+    private HashMap<Integer, HashMap<String, Integer>> getDataById(List<Integer> ids) {
 
 
         String todayStartDate = (new SimpleDateFormat("yyyy-MM-dd 00:00:00")).format(new Date());
         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());
         String todayEndDate = (new SimpleDateFormat("yyyy-MM-dd 23:59:59")).format(new Date());
@@ -246,48 +341,48 @@ public class WorkRoomServiceImpl extends ServiceImpl<WorkRoomMapper, WorkRoom> i
         contactRoomEntityWrapperTodayLeft.le("out_time", todayEndDate);
         contactRoomEntityWrapperTodayLeft.le("out_time", todayEndDate);
         contactRoomEntityWrapperTodayLeft.ge("out_time", todayStartDate);//大于
         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>>();
                 new HashMap<Integer, HashMap<String, Integer>>();
 
 
         HashMap<String, Integer> temp = new HashMap<String, Integer>();
         HashMap<String, Integer> temp = new HashMap<String, Integer>();
         for (WorkContactRoomGroupDataVo o : totals) {
         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>();
         HashMap<String, Integer> tempSetLeft = new HashMap<String, Integer>();
         for (WorkContactRoomGroupDataVo o : todayLefts) {
         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 = 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>();
         HashMap<String, Integer> tempSetAdd = new HashMap<String, Integer>();
         for (WorkContactRoomGroupDataVo o : todayAdds) {
         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;
         return dataById;