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

fix(修改群下载部分参数) controller service

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

+ 19 - 37
src/main/java/com/mokamrp/privates/controller/WorkRoomController.java

@@ -3,6 +3,7 @@ package com.mokamrp.privates.controller;
 
 import com.fasterxml.jackson.datatype.jdk8.Jdk8OptionalBeanPropertyWriter;
 import com.mokamrp.privates.constant.HttpStatus;
+import com.mokamrp.privates.entity.GetWorkRoomHandle;
 import com.mokamrp.privates.entity.JobRedis;
 import com.mokamrp.privates.entity.JobRoomJobRedis;
 import com.mokamrp.privates.entity.WorkRoomBandTagHandle;
@@ -21,6 +22,8 @@ import org.springframework.web.bind.annotation.*;
 
 import javax.annotation.Resource;
 import javax.validation.Valid;
+import javax.validation.constraints.Min;
+import javax.validation.constraints.NotNull;
 import java.util.*;
 
 /**
@@ -45,55 +48,34 @@ public class WorkRoomController extends BaseController<WorkRoom> {
     @Resource
     private RedisUtil redisUtil;
 
-    @RequestMapping("/list")
+    @PostMapping("/list")
     @ResponseBody
-    public Object getList(
-            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,
-            @RequestParam List owner_id, @RequestParam List tag_id
-    ) {
-
-        Map<String, Object> resMap = workRoomService.getPageList(pagesize, page, name, corp_id,
-                start_create_time, end_create_time,
-                wx_chat_id, corp_group_id,
-                owner_id, tag_id);//所有
+    public Object getList(@Valid @RequestBody GetWorkRoomHandle handle, BindingResult bindingResult) {
+        if (bindingResult.hasErrors()) {
+            return AjaxResult.error(HttpStatus.ERROR, bindingResult.getFieldError().getDefaultMessage());
+        }
+
+        Map<String, Object> resMap = workRoomService.getPageList(handle);//所有
 
         return AjaxResult.success(resMap);
     }
 
-    @RequestMapping("/export")
+    @PostMapping("/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);
-         */
-        /*先生成下载记录*/
+    public Object export(@Valid @RequestBody GetWorkRoomHandle handle, BindingResult bindingResult) {
+
+        JobRedis realJob = new JobRedis();
+        JobRoomJobRedis job = new JobRoomJobRedis();
         Downfile downObj = new Downfile();
+
+        /*先生成下载记录*/
         downObj.setMsg(Downfile.DEFAULT_MSG);
         downObj.setTitle(Downfile.WORM_ROOM);
         downfileService.insert(downObj);
 
         /*推送简单任务*/
-        JobRedis realJob = new JobRedis();
-        JobRoomJobRedis job = new JobRoomJobRedis();
-        job.setName(name);
-        job.setCorpId(corp_id);
-        job.setStartCreateTime(start_create_time);
-        job.setEndCreateTtime(end_create_time);
-        job.setWxChatId(wx_chat_id);
-        job.setCorpGroupId(corp_group_id);
-        job.setOwnerId(owner_id);
-        job.setTagId(tag_id);
+        job.setWorkRoomHandle(handle);
+
         realJob.setJobRoomJobRedis(job);
         realJob.setDownFile(downObj);
         realJob.setJobName(JobRoomJobRedis.TASK_NAME);

+ 26 - 0
src/main/java/com/mokamrp/privates/entity/GetWorkContactEmployeeHandle.java

@@ -0,0 +1,26 @@
+package com.mokamrp.privates.entity;
+
+import lombok.Data;
+
+import javax.validation.constraints.Min;
+import java.util.List;
+
+@Data
+public class GetWorkContactEmployeeHandle {
+    @Min(value = 1,message = "页码错误")
+    private Integer pagesize;
+    @Min(value = 1,message = "页码错误")
+    private Integer page;
+    private Integer gender;
+    private Integer status;
+    private String name;
+    private Integer start_deleted_at;
+    private Integer end_deleted_at;
+    private Integer start_created_at;
+    private Integer end_created_at;
+    private Integer group_id;
+    private Integer corp_id;
+    private List employee_id;
+    private List tag_id;
+    private Integer channel_code_id;
+}

+ 24 - 0
src/main/java/com/mokamrp/privates/entity/GetWorkRoomHandle.java

@@ -0,0 +1,24 @@
+package com.mokamrp.privates.entity;
+
+import com.alibaba.fastjson.annotation.JSONField;
+import lombok.Data;
+import javax.validation.constraints.Min;
+import java.util.List;
+
+@Data
+public class GetWorkRoomHandle {
+    @Min(value = 1,message = "页码错误")
+    private Integer pagesize;
+    @Min(value = 1,message = "页码错误")
+    private Integer page;
+    private String name;
+    private Integer corpId;
+    private String startCreateTime;
+    private String endCreateTime;
+    private String wxChatId;
+    private Integer corpGroupId;
+    private List ownerId;
+    private List tagId;
+
+
+}

+ 5 - 79
src/main/java/com/mokamrp/privates/entity/JobRoomJobRedis.java

@@ -7,87 +7,13 @@ import java.util.Map;
 public class JobRoomJobRedis implements Serializable {
 
     public final static String TASK_NAME = "Room";
+    private GetWorkRoomHandle workRoomHandle;
 
-    private String JobName;
-    private String name;
-    private Integer corpId;
-    private String endCreateTtime;
-    private String startCreateTime;
-    private String wxChatId;
-    private Integer corpGroupId;
-    private List ownerId;
-    private List tagId;
-
-    public Integer getCorpGroupId() {
-        return corpGroupId;
-    }
-
-    public void setCorpGroupId(Integer corpGroupId) {
-        this.corpGroupId = corpGroupId;
-    }
-
-    public String getStartCreateTime() {
-        return startCreateTime;
-    }
-
-    public void setStartCreateTime(String startCreateTime) {
-        this.startCreateTime = startCreateTime;
-    }
-
-    public String getName() {
-        return name;
-    }
-
-    public void setName(String name) {
-        this.name = name;
-    }
-
-    public Integer getCorpId() {
-        return corpId;
-    }
-
-    public void setCorpId(Integer corpId) {
-        this.corpId = corpId;
-    }
-
-    public String getEndCreateTtime() {
-        return endCreateTtime;
+    public GetWorkRoomHandle getWorkRoomHandle() {
+        return workRoomHandle;
     }
 
-    public void setEndCreateTtime(String endCreateTtime) {
-        this.endCreateTtime = endCreateTtime;
+    public void setWorkRoomHandle(GetWorkRoomHandle workRoomHandle) {
+        this.workRoomHandle = workRoomHandle;
     }
-
-    public String getWxChatId() {
-        return wxChatId;
-    }
-
-    public void setWxChatId(String wxChatId) {
-        this.wxChatId = wxChatId;
-    }
-
-    public List getOwnerId() {
-        return ownerId;
-    }
-
-    public void setOwnerId(List ownerId) {
-        this.ownerId = ownerId;
-    }
-
-    public List getTagId() {
-        return tagId;
-    }
-
-    public void setTagId(List tagId) {
-        this.tagId = tagId;
-    }
-
-    public String getJobName() {
-        return JobName;
-    }
-
-    public void setJobName(String jobName) {
-        JobName = jobName;
-    }
-
 }

+ 3 - 9
src/main/java/com/mokamrp/privates/service/WorkRoomService.java

@@ -1,5 +1,6 @@
 package com.mokamrp.privates.service;
 
+import com.mokamrp.privates.entity.GetWorkRoomHandle;
 import com.mokamrp.privates.mapper.pojo.Downfile;
 import com.mokamrp.privates.mapper.pojo.WorkRoom;
 import com.baomidou.mybatisplus.service.IService;
@@ -17,16 +18,9 @@ import java.util.Map;
  */
 public interface WorkRoomService extends IService<WorkRoom> {
 
-    //final public String TASK_NAME ="Room";
+    public Map<String, Object> getPageList(GetWorkRoomHandle handle);
 
-    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);
-
-    public void export(Downfile downFile, 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 void export(Downfile downFile, GetWorkRoomHandle handle);
 
     public Object bangTagIds(Integer[] ids, Integer[] tagIds);
 

+ 26 - 29
src/main/java/com/mokamrp/privates/service/impl/WorkRoomServiceImpl.java

@@ -6,6 +6,7 @@ import com.baomidou.mybatisplus.mapper.EntityWrapper;
 import com.baomidou.mybatisplus.plugins.Page;
 import com.mokamrp.privates.config.OSSConfiguration;
 import com.mokamrp.privates.constant.HttpStatus;
+import com.mokamrp.privates.entity.GetWorkRoomHandle;
 import com.mokamrp.privates.help.AjaxResult;
 import com.mokamrp.privates.mapper.*;
 import com.mokamrp.privates.mapper.pojo.*;
@@ -59,58 +60,54 @@ public class WorkRoomServiceImpl extends ServiceImpl<WorkRoomMapper, WorkRoom> i
     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) {
+    public Map<String, Object> getPageList(GetWorkRoomHandle handle) {
 
+        Integer pagesize = handle.getPagesize();
+        Integer page = handle.getPage();
         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);
+        Map<String, Object> resMap = new HashMap<String, Object>();
+        resMap.put("list", null);
+        resMap.put("total", 0);
+
+        EntityWrapper<WorkRoom> obj = getWrapper(handle.getName(), handle.getCorpId(), handle.getStartCreateTime(),
+                handle.getEndCreateTime(), handle.getWxChatId(), handle.getCorpGroupId(), handle.getOwnerId(), handle.getTagId());
 
         Integer total = mapperObj.getVoListTotal(obj);
-        List<WorkRoomVo> list = mapperObj.getVoList(pageObj, obj);
-        getCommonList(pageObj,obj);
+        resMap.put("total", total);
+        if(total <=0){
+            return resMap;
+        }
 
-        Map<String, Object> resMap = new HashMap<String, Object>();
+        List<WorkRoomVo> list = mapperObj.getVoList(pageObj, obj);
+        getCommonList(pageObj, obj);
 
         resMap.put("list", list);
-        resMap.put("total", total);
 
         return resMap;
     }
 
     /**
      * @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
-    public void export(Downfile downFile,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 void export(Downfile downFile, GetWorkRoomHandle handle) {
 
         List<Object> tempObj;
         List<List<Object>> resList = new ArrayList<List<Object>>();
-        Object[] head = { "id","群id", "群名称", "群主","所属主体","客服","群标签","群人数","当日入群","当日退群","创建时间" };
+        Object[] head = {"id", "群id", "群名称", "群主", "所属主体", "客服", "群标签", "群人数", "当日入群", "当日退群", "创建时间"};
         List<Object> headList = Arrays.asList(head);
         Date currentTime = new Date();
 
-        EntityWrapper<WorkRoom> obj = getWrapper(name, corp_id, start_create_time, end_create_time, wx_chat_id, corp_group_id, owner_id, tag_id);
+        EntityWrapper<WorkRoom> obj = getWrapper(handle.getName(), handle.getCorpId(), handle.getStartCreateTime(),
+                handle.getEndCreateTime(), handle.getWxChatId(), handle.getCorpGroupId(), handle.getOwnerId(), handle.getTagId());
         Integer total = mapperObj.getVoListTotal(obj);
         Page<WorkRoom> pageObj = new Page<>(1, total);
-        List<WorkRoomVo> list =  getCommonList(pageObj,obj);
+        List<WorkRoomVo> list = getCommonList(pageObj, obj);
 
         resList.add(headList);
 
-        if(list.size() >=1){
-            for (WorkRoomVo o: list){
+        if (list.size() >= 1) {
+            for (WorkRoomVo o : list) {
                 tempObj = new ArrayList<Object>() {//这个大括号 就相当于我们  new 接口
                     {//这个大括号 就是 构造代码块 会在构造函数前 调用
                         this.add(o.getId());
@@ -133,20 +130,20 @@ public class WorkRoomServiceImpl extends ServiceImpl<WorkRoomMapper, WorkRoom> i
 
         SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
         String dateString = formatter.format(currentTime);
-        String filePath = OSSConfiguration.DOWN_DIR+dateString+"/"+downFile.getId().toString()+"_"+Downfile.WORM_ROOM;
+        String filePath = OSSConfiguration.DOWN_DIR + dateString + "/" + downFile.getId().toString() + "_" + Downfile.WORM_ROOM;
 
         PutObjectRequest putObjectRequest = new PutObjectRequest(ossConfiguration.getBucketName(), filePath,
                 new ByteArrayInputStream(content.toString().getBytes()));
         ossClient.putObject(putObjectRequest);
 
-        downFile.setDownUrl(ossConfiguration.getHost()+filePath);
+        downFile.setDownUrl(ossConfiguration.getHost() + filePath);
         downFile.setStatus(1);
         downfileMapper.updateById(downFile);
 
         return;
     }
 
-    private List<WorkRoomVo> getCommonList(Page<WorkRoom> pageObj,EntityWrapper<WorkRoom> room) {
+    private List<WorkRoomVo> getCommonList(Page<WorkRoom> pageObj, EntityWrapper<WorkRoom> room) {
 
         List<WorkRoomVo> list = mapperObj.getVoList(pageObj, room);
 

+ 2 - 3
src/main/java/com/mokamrp/privates/tast/ExportJobTask.java

@@ -31,7 +31,7 @@ public class ExportJobTask {
     /**
      * 导出任务,单进程
      */
-    @Scheduled(fixedDelay = 20000)
+    @Scheduled(fixedDelay = 300000)
     public void execute() {
 
         System.out.println("下载任务执行中,当前时间"+(new Date())+",当前长度"+redisUtil.lGetListSize("java:job:mochat"));
@@ -47,8 +47,7 @@ public class ExportJobTask {
             switch(out.getJobName()){
                 case "Room":
                     JobRoomJobRedis job= out.getJobRoomJobRedis();
-                    workRoomService.export(downFile,job.getName(),job.getCorpGroupId(),job.getStartCreateTime(),job.getEndCreateTtime(),
-                            job.getWxChatId(),job.getCorpGroupId(),job.getOwnerId(),job.getTagId());
+                    workRoomService.export(downFile,job.getWorkRoomHandle());
                     break; //可选
                 case "WorkContactEmployeeService":
                     JobWorkContactEmployeeRedis eJob= out.getJobWorkContactEmployeeRedis();