Explorar o código

fix(小说粉丝标签下载)

yang G %!s(int64=5) %!d(string=hai) anos
pai
achega
58fa367fd4

+ 40 - 0
src/main/java/com/mokamrp/privates/controller/WorkContactEmployeeController.java

@@ -6,6 +6,7 @@ import com.mokamrp.privates.entity.GetWorkContactEmployeeHandle;
 import com.mokamrp.privates.entity.HubWorkContactEmployeeHandle;
 import com.mokamrp.privates.entity.JobRedis;
 import com.mokamrp.privates.entity.JobWorkContactEmployeeRedis;
+import com.mokamrp.privates.entity.job.ExportNovelRedis;
 import com.mokamrp.privates.help.AjaxResult;
 import com.mokamrp.privates.interceptor.AuthUser;
 import com.mokamrp.privates.mapper.pojo.Downfile;
@@ -72,6 +73,45 @@ public class WorkContactEmployeeController extends BaseController<WorkContactEmp
         return AjaxResult.success(resMap);
     }
 
+    @RequestMapping("/exportnovel")
+    @ResponseBody
+    public Object export(
+            @AuthUser User authUser,
+            @Valid @RequestBody HubWorkContactEmployeeHandle handle, BindingResult bindingResult) {
+
+        if (bindingResult.hasErrors()) {
+            return AjaxResult.error(HttpStatus.ERROR, bindingResult.getFieldError().getDefaultMessage());
+        }
+
+        List<Integer> corpIds = userCorpService.getAuthUserCorpIds(authUser.getId().toString());
+        if(corpIds.size() <=0){
+            return AjaxResult.error(HttpStatus.ERROR, UserCorpService.USER_MSG);
+        }
+
+        handle.setAuthCorpIds(corpIds);
+
+        //这边开始迭代
+        Downfile downObj = new Downfile();
+        downObj.setMsg(Downfile.DEFAULT_MSG);
+        downObj.setAuthId(Integer.parseInt(authUser.getId().toString()));
+        downObj.setAuthName(authUser.getName());
+
+        downObj.setTitle(Downfile.NOVEL);
+        downfileService.save(downObj);
+
+        JobRedis realJob = new JobRedis();
+        ExportNovelRedis job = new ExportNovelRedis();
+        job.setHandle(handle);
+
+        realJob.setExportNovelRedis(job);
+        realJob.setJobName(ExportNovelRedis.TASK_NAME);
+        realJob.setDownFile(downObj);
+        redisUtil.leftPush(JobRedis.QUEUE_KEY,realJob);
+
+        return AjaxResult.success("正在异步生成请稍后");
+
+    }
+
     @PostMapping("/hublist")
     @ResponseBody
     public Object hubList(

+ 16 - 0
src/main/java/com/mokamrp/privates/entity/JobRedis.java

@@ -1,5 +1,6 @@
 package com.mokamrp.privates.entity;
 
+import com.mokamrp.privates.entity.job.ExportNovelRedis;
 import com.mokamrp.privates.mapper.pojo.Downfile;
 
 import java.io.Serializable;
@@ -12,12 +13,27 @@ public class JobRedis implements Serializable {
 
     private String jobName;
 
+    /*TODO*/
     private JobWorkContactEmployeeRedis jobWorkContactEmployeeRedis;
 
     private JobRoomJobRedis jobRoomJobRedis;
 
     private JobWorkEmployeeJobRedis jobWorkEmployeeJobRedis;
 
+    private ExportNovelRedis exportNovelRedis;
+
+    public ExportNovelRedis getExportNovelRedis() {
+        return exportNovelRedis;
+    }
+
+    public void setExportNovelRedis(ExportNovelRedis exportNovelRedis) {
+        this.exportNovelRedis = exportNovelRedis;
+    }
+
+    public static String getQueueKey() {
+        return QUEUE_KEY;
+    }
+
     public JobWorkEmployeeJobRedis getJobWorkEmployeeJobRedis() {
         return jobWorkEmployeeJobRedis;
     }

+ 20 - 0
src/main/java/com/mokamrp/privates/entity/job/ExportNovelRedis.java

@@ -0,0 +1,20 @@
+package com.mokamrp.privates.entity.job;
+
+import com.mokamrp.privates.entity.GetWorkRoomHandle;
+import com.mokamrp.privates.entity.HubWorkContactEmployeeHandle;
+
+import java.io.Serializable;
+
+public class ExportNovelRedis implements Serializable {
+
+    public final static String TASK_NAME = "NOVEL";
+    private HubWorkContactEmployeeHandle hubWorkContactEmployeeHandle;
+
+    public HubWorkContactEmployeeHandle getHandle() {
+        return hubWorkContactEmployeeHandle;
+    }
+
+    public void setHandle(HubWorkContactEmployeeHandle hubWorkContactEmployeeHandle) {
+        this.hubWorkContactEmployeeHandle = hubWorkContactEmployeeHandle;
+    }
+}

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

@@ -19,6 +19,7 @@ import java.io.Serializable;
 public class Downfile extends Model<Downfile> {
 
     public static final String WORK_CONTACT_EMPLOYEE = "客户信息下载.csv";
+    public static final String NOVEL = "小说下载.csv";
     public static final String WORM_ROOM = "群数据下载.csv";
     public static final String WORK_EMPLOYEE = "客服数据.csv";
 

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

@@ -28,6 +28,8 @@ public interface WorkContactEmployeeService extends IService<WorkContactEmployee
 
     public void export(Downfile downFile,GetWorkContactEmployeeHandle handle);
 
+    public void exportNovel(Downfile downFile,HubWorkContactEmployeeHandle handle);
+
     public void formatChanelCode();
 
     public void sendToDatahub();

+ 50 - 6
src/main/java/com/mokamrp/privates/service/impl/WorkContactEmployeeServiceImpl.java

@@ -114,12 +114,6 @@ public class WorkContactEmployeeServiceImpl extends ServiceImpl<WorkContactEmplo
         Integer total = mapperObj.getHubListTotal(obj);
         Map<String, Object> resMap = new HashMap<String, Object>();
 
-        //请求typer,匹配typer标签
-        /*if (list.size() > 0) {
-            list = getTyperTag(list);
-        }
-         */
-
         resMap.put("list", list);
         resMap.put("total", total);
 
@@ -313,6 +307,56 @@ public class WorkContactEmployeeServiceImpl extends ServiceImpl<WorkContactEmplo
         return vos;
     }
 
+    @Override
+    public void exportNovel(Downfile downFile, HubWorkContactEmployeeHandle handle) {
+
+        String title = Downfile.NOVEL;
+        List<Object> tempObj;
+        QueryWrapper<WorkContactEmployeeVo> obj = getHubWrapper(handle);
+        Integer total = mapperObj.getHubListTotal(obj);
+        List<WorkContactEmployeeVo> list = mapperObj.getHubVoList(obj,0,total);
+
+        //实现下载
+        List<List<Object>> resList = new ArrayList<List<Object>>();
+        Object[] head = {"id", "客户名称", "状态(1正常 2删除 3拉黑)", "平台", "ghid", "appid", "标签", "客服名称", "所属公司","备注","创建时间"};
+        List<Object> headList = Arrays.asList(head);
+        resList.add(headList);
+
+        if (list.size() >= 1) {
+            for (WorkContactEmployeeVo o : list) {
+                tempObj = new ArrayList<Object>() {//这个大括号 就相当于我们  new 接口
+                    {//这个大括号 就是 构造代码块 会在构造函数前 调用
+                        this.add(o.getId());
+                        this.add(o.getClientName());
+                        this.add(o.getClientStatus());
+                        this.add(o.getPlatform());
+                        this.add(o.getGhId());
+                        this.add(o.getAppId());
+                        this.add(o.getTyperTag());
+                        this.add(o.getEmployeeName());
+                        this.add(o.getCompanyName());
+                        this.add(o.getRemark());
+                        this.add(o.getClientCreatedAt());
+                    }
+                };
+                resList.add(tempObj);
+            }
+        }
+
+        StringBuffer content = OssFile.createCSV(resList);
+
+        /*上传到oss*/
+        Date currentTime = new Date();
+        SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
+        String bom = new String(new byte[] { (byte) 0xEF, (byte) 0xBB,(byte) 0xBF });
+        String dateString = formatter.format(currentTime);
+        String filePath = OSSConfiguration.DOWN_DIR + dateString + "/" + downFile.getId().toString() + "_" + title;
+        PutObjectRequest putObjectRequest = new PutObjectRequest(ossConfiguration.getBucketName(), filePath, new ByteArrayInputStream((bom+content.toString()).getBytes()));
+        ossClient.putObject(putObjectRequest);
+        downFile.setDownUrl(ossConfiguration.getHost() + filePath);
+        downFile.setStatus(1);
+        downfileMapper.updateById(downFile);
+    }
 
     @Override
     public void export(Downfile downFile, GetWorkContactEmployeeHandle handle) {

+ 5 - 0
src/main/java/com/mokamrp/privates/tast/ExportJobTask.java

@@ -4,6 +4,7 @@ import com.mokamrp.privates.entity.JobRedis;
 import com.mokamrp.privates.entity.JobRoomJobRedis;
 import com.mokamrp.privates.entity.JobWorkContactEmployeeRedis;
 import com.mokamrp.privates.entity.JobWorkEmployeeJobRedis;
+import com.mokamrp.privates.entity.job.ExportNovelRedis;
 import com.mokamrp.privates.mapper.pojo.Downfile;
 import com.mokamrp.privates.service.WorkContactEmployeeService;
 import com.mokamrp.privates.service.WorkEmployeeService;
@@ -61,6 +62,10 @@ public class ExportJobTask {
                     JobWorkEmployeeJobRedis weJob= out.getJobWorkEmployeeJobRedis();
                     workEmployeeService.export(downFile,weJob.getPostWorkEmployee());
                     break;
+                case ExportNovelRedis.TASK_NAME:
+                    ExportNovelRedis novelJob= out.getExportNovelRedis();
+                    workContactEmployeeService.exportNovel(downFile,novelJob.getHandle());
+                    break;
                 default :
             }
         }