Quellcode durchsuchen

feat(小说标签导出)

yang G vor 5 Jahren
Ursprung
Commit
e572fff754

+ 22 - 1
src/main/java/com/mokamrp/privates/controller/WorkContactEmployeeController.java

@@ -117,7 +117,28 @@ public class WorkContactEmployeeController extends BaseController<WorkContactEmp
 
     }
 
-    //接受文件上传
+    @RequestMapping("/exporttag")
+    @ResponseBody
+    public Object export(@AuthUser User authUser,
+                                    @Valid @RequestBody SetUserTagHandle handle, BindingResult bindingResult) {
+
+        if (bindingResult.hasErrors()) {
+            return AjaxResult.error(HttpStatus.ERROR, bindingResult.getFieldError().getDefaultMessage());
+        }
+
+        Downfile downObj = new Downfile();
+        downObj.setMsg(Downfile.DEFAULT_MSG);
+        downObj.setAuthId(Integer.parseInt(authUser.getId().toString()));
+        downObj.setAuthName(authUser.getName());
+
+        downObj.setTitle("任务id:"+handle.getMainId().toString()+"小说标签导入记录");
+        downfileService.save(downObj);
+
+        SetUserTagService.export(handle,authUser,downObj);
+
+        return AjaxResult.success(downObj);
+    }
+
     @RequestMapping("/setUserTagHistory")
     @ResponseBody
     public Object setUserTagHistory(@AuthUser User authUser,

+ 3 - 0
src/main/java/com/mokamrp/privates/service/SetUserTagService.java

@@ -1,6 +1,7 @@
 package com.mokamrp.privates.service;
 
 import com.mokamrp.privates.entity.SetUserTagHandle;
+import com.mokamrp.privates.mapper.pojo.Downfile;
 import com.mokamrp.privates.mapper.pojo.SetUserTag;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.mokamrp.privates.mapper.pojo.User;
@@ -20,4 +21,6 @@ public interface SetUserTagService extends IService<SetUserTag> {
 
     public Map<String, Object> searchList(SetUserTagHandle handle, User authUser);
 
+    public void export(SetUserTagHandle handle, User authUser, Downfile downObj);
+
 }

+ 69 - 3
src/main/java/com/mokamrp/privates/service/impl/SetUserTagServiceImpl.java

@@ -1,21 +1,27 @@
 package com.mokamrp.privates.service.impl;
 
+import com.aliyun.oss.OSS;
+import com.aliyun.oss.model.PutObjectRequest;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.mokamrp.privates.config.OSSConfiguration;
 import com.mokamrp.privates.entity.SetUserTagHandle;
+import com.mokamrp.privates.mapper.DownfileMapper;
 import com.mokamrp.privates.mapper.WorkContactEmployeeMapper;
+import com.mokamrp.privates.mapper.pojo.Downfile;
 import com.mokamrp.privates.mapper.pojo.SetUserTag;
 import com.mokamrp.privates.mapper.SetUserTagMapper;
 import com.mokamrp.privates.mapper.pojo.User;
 import com.mokamrp.privates.mapper.vo.WorkContactEmployeeVo;
 import com.mokamrp.privates.service.SetUserTagService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.mokamrp.privates.utils.OssFile;
 import com.mokamrp.privates.utils.PageUtil;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
+import java.io.ByteArrayInputStream;
+import java.text.SimpleDateFormat;
+import java.util.*;
 
 /**
  * <p>
@@ -31,6 +37,15 @@ public class SetUserTagServiceImpl extends ServiceImpl<SetUserTagMapper, SetUser
     @Autowired
     private SetUserTagMapper mapperObj;
 
+    @Autowired
+    private OSS ossClient;
+
+    @Autowired
+    private DownfileMapper downfileMapper;
+
+    @Autowired
+    private OSSConfiguration ossConfiguration;
+
     @Override
     public Map<String, Object> searchList(SetUserTagHandle handle, User authUser) {
 
@@ -53,6 +68,57 @@ public class SetUserTagServiceImpl extends ServiceImpl<SetUserTagMapper, SetUser
         return resMap;
     }
 
+    public void export(SetUserTagHandle handle, User authUser,Downfile downObj){
+        QueryWrapper<SetUserTag> obj = new QueryWrapper<SetUserTag>();
+        obj.eq("a.auth_id",authUser.getId());
+        obj.eq("a.main_id",handle.getMainId());
+
+        Integer total = mapperObj.getListTotal(obj);
+        List<Map<String,Object>> list = mapperObj.getList(obj,total,0);
+
+        //开始导出
+
+        String title = Downfile.NOVEL;
+        List<Object> tempObj;
+        //实现下载
+        List<List<Object>> resList = new ArrayList<List<Object>>();
+        Object[] head = {"id", "标签名称", "客户id", "状态(0代执行 1正常 2异常 4执行中)", "错误类型","错误原因"};
+        List<Object> headList = Arrays.asList(head);
+        resList.add(headList);
+
+        if (list.size() >= 1) {
+            for (Map<String,Object> o : list) {
+                tempObj = new ArrayList<Object>() {//这个大括号 就相当于我们  new 接口
+                    {//这个大括号 就是 构造代码块 会在构造函数前 调用
+                        this.add(o.get("id"));
+                        this.add(o.get("sourceTagNames"));
+                        this.add(o.get("sourceFanId"));
+                        this.add(o.get("status"));
+                        this.add(o.get("keyword"));
+                        this.add(o.get("msg"));
+                    }
+                };
+                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 + "/" + downObj.getId().toString() + "_" + title;
+        PutObjectRequest putObjectRequest = new PutObjectRequest(ossConfiguration.getBucketName(), filePath, new ByteArrayInputStream((bom+content.toString()).getBytes()));
+        ossClient.putObject(putObjectRequest);
+        downObj.setDownUrl(ossConfiguration.getHost() + filePath);
+        downObj.setStatus(1);
+        downfileMapper.updateById(downObj);
+        //这边开始迭代
+        return ;
+    }
+
     public Map<String, Object> get(SetUserTagHandle handle, User authUser) {
 
         Map<String, Object> resMap = new HashMap<String, Object>();