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

feat(客服下载部分,以及增加两个公司列表的字段展示mobile和uuid用于登录)

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

+ 10 - 2
src/main/java/com/mokamrp/privates/entity/JobRedis.java

@@ -11,14 +11,22 @@ public class JobRedis implements Serializable {
 
     private Downfile downFile;
 
-
-
     private String jobName;
 
     private JobWorkContactEmployeeRedis jobWorkContactEmployeeRedis;
 
     private JobRoomJobRedis jobRoomJobRedis;
 
+    private JobWorkEmployeeJobRedis jobWorkEmployeeJobRedis;
+
+    public JobWorkEmployeeJobRedis getJobWorkEmployeeJobRedis() {
+        return jobWorkEmployeeJobRedis;
+    }
+
+    public void setJobWorkEmployeeJobRedis(JobWorkEmployeeJobRedis jobWorkEmployeeJobRedis) {
+        this.jobWorkEmployeeJobRedis = jobWorkEmployeeJobRedis;
+    }
+
     public JobWorkContactEmployeeRedis getJobWorkContactEmployeeRedis() {
         return jobWorkContactEmployeeRedis;
     }

+ 18 - 0
src/main/java/com/mokamrp/privates/entity/JobWorkEmployeeJobRedis.java

@@ -0,0 +1,18 @@
+package com.mokamrp.privates.entity;
+
+import java.io.Serializable;
+
+public class JobWorkEmployeeJobRedis implements Serializable {
+
+    public final static String TASK_NAME = "WorkEmployeeService";
+    private PostWorkEmployee PostWorkEmployee;
+
+    public com.mokamrp.privates.entity.PostWorkEmployee getPostWorkEmployee() {
+        return PostWorkEmployee;
+    }
+
+    public void setPostWorkEmployee(com.mokamrp.privates.entity.PostWorkEmployee postWorkEmployee) {
+        PostWorkEmployee = postWorkEmployee;
+    }
+
+}

+ 3 - 1
src/main/java/com/mokamrp/privates/mapper/CorpMapper.xml

@@ -21,12 +21,14 @@
         <result column="created_at" property="createdAt"/>
         <result column="updated_at" property="updatedAt"/>
         <result column="deleted_at" property="deletedAt"/>
+        <result column="mobile" property="mobile"/>
+        <result column="uuid" property="uuid"/>
     </resultMap>
 
     <!-- 通用查询结果列 -->
     <sql id="Base_Column_List">
         id
-        , name, wx_corpid, social_code, employee_secret, event_callback, contact_secret, token, encoding_aes_key, power, tenant_id, created_at, updated_at, deleted_at
+        , name, wx_corpid, social_code, employee_secret, event_callback, contact_secret, token, encoding_aes_key, power, tenant_id, created_at, updated_at, deleted_at,mobile,uuid
     </sql>
 
 </mapper>

+ 1 - 0
src/main/java/com/mokamrp/privates/mapper/WorkEmployeeMapper.xml

@@ -55,6 +55,7 @@
             A.cust_cnt,
             A.group_cnt,
             A.in_group_cnt,
+            A.wx_user_id,
             C.`name` AS companyName,
             D.group_id
         FROM

+ 20 - 1
src/main/java/com/mokamrp/privates/mapper/pojo/Corp.java

@@ -4,6 +4,8 @@ import com.baomidou.mybatisplus.annotation.IdType;
 import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableName;
 import com.baomidou.mybatisplus.extension.activerecord.Model;
+import com.mokamrp.privates.utils.StringUtils;
+
 import java.util.Date;
 import java.io.Serializable;
 
@@ -65,7 +67,8 @@ public class Corp extends Model<Corp> {
     private Date createdAt;
     private Date updatedAt;
     private Date deletedAt;
-
+    private Integer mobile;
+    private String uuid;
 
     public Integer getId() {
         return id;
@@ -179,6 +182,22 @@ public class Corp extends Model<Corp> {
         this.deletedAt = deletedAt;
     }
 
+    public String getUuid() {
+        return uuid;
+    }
+
+    public void setUuid(String uuid) {
+        this.uuid = uuid;
+    }
+
+    public Integer getMobile() {
+        return mobile;
+    }
+
+    public void setMobile(Integer mobile) {
+        this.mobile = mobile;
+    }
+
     @Override
     protected Serializable pkVal() {
         return this.id;

+ 3 - 2
src/main/java/com/mokamrp/privates/mapper/pojo/Downfile.java

@@ -20,10 +20,11 @@ import java.util.Date;
 @TableName("private_downfile")
 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";
+    public static final String WORK_EMPLOYEE = "客服数据.csv";
 
-    public static final String DEFAULT_MSG = "数据下载中";
+    public static final String DEFAULT_MSG = "数据下载中";
 
     private static final long serialVersionUID = 1L;
 

+ 30 - 0
src/main/java/com/mokamrp/privates/mapper/vo/WorkEmployeeVo.java

@@ -16,6 +16,7 @@ public class WorkEmployeeVo {
     private String groupName;
     private String name;
     private Integer gender;
+    private String genderTxt;
     private String avatar;
     private String qrCode;
     private String mobile;
@@ -30,6 +31,19 @@ public class WorkEmployeeVo {
     private String companyName;
     private Object roomNum;
     private Object fanNum;
+    private String wxUserId;
+
+    public void setQrCode(String qrCode) {
+        this.qrCode = qrCode;
+    }
+
+    public String getWxUserId() {
+        return wxUserId;
+    }
+
+    public void setWxUserId(String wxUserId) {
+        this.wxUserId = wxUserId;
+    }
 
     public Object getRoomNum() {
         return roomNum;
@@ -75,10 +89,26 @@ public class WorkEmployeeVo {
         return gender;
     }
 
+    public void setGenderTxt(String genderTxt) {
+        this.genderTxt = genderTxt;
+    }
+
     public void setGender(Integer gender) {
         this.gender = gender;
     }
 
+    public String getGenderTxt() {
+        String genderTxt = "未知";
+
+        if(gender.equals(1)){
+            genderTxt = "男";
+        }else if(gender.equals(2)){
+            genderTxt = "女";
+        }
+
+        return genderTxt;
+    }
+
     public String getAvatar() {
         return avatar;
     }

+ 63 - 0
src/main/java/com/mokamrp/privates/service/impl/WorkEmployeeServiceImpl.java

@@ -1,5 +1,6 @@
 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.baomidou.mybatisplus.extension.plugins.pagination.Page;
@@ -49,6 +50,15 @@ public class WorkEmployeeServiceImpl extends ServiceImpl<WorkEmployeeMapper, Wor
     @Autowired
     private WorkRoomMapper workRoomMapper;
 
+    @Autowired
+    private DownfileMapper downfileMapper;
+
+    @Autowired
+    private OSSConfiguration ossConfiguration;
+
+    @Autowired
+    private OSS ossClient;
+
     public Object selectWorkEmployeeList(String authUserId, WorkEmployeeHandle workEmployee) {
         List<Integer> userCorpIds = userCorpService.getAuthUserCorpIds(authUserId);
         List<Integer> corpIds = new ArrayList<Integer>();
@@ -89,6 +99,59 @@ public class WorkEmployeeServiceImpl extends ServiceImpl<WorkEmployeeMapper, Wor
 
     @Override
     public void export(Downfile downFile, PostWorkEmployee handle) {
+        List<Object> tempObj;
+        List<List<Object>> resList = new ArrayList<List<Object>>();
+
+        /*
+        所属主体        主体分组     客服名称 标签 性别      头像    客服唯一码       手机编号  手机号  封禁状态  粉丝数 管理群数 迁移状态
+        companyName    groupName   name        gender   avatar   wxUserId       mobile                  fanNum  roomNum
+         */
+
+        Object[] head = {"id", "所属主体", "主体分组", "客服名称", "性别", "头像", "客服唯一码", "手机编号", "粉丝数", "管理群数"};
+        List<Object> headList = Arrays.asList(head);
+        Date currentTime = new Date();
+        String fileName = Downfile.WORK_EMPLOYEE;
+
+        QueryWrapper<WorkEmployeeVo> obj = getWrapper(handle);
+        Integer total = workEmployeeMapper.getVoListTotal(obj);
+        Page<WorkEmployeeVo> pageObj = new Page<>(1, total);
+        List<WorkEmployeeVo> list = getCommonList(pageObj, obj);
+
+        resList.add(headList);
+
+        if (list.size() >= 1) {
+            for (WorkEmployeeVo o : list) {
+                tempObj = new ArrayList<Object>() {
+                    {
+                        this.add(o.getId());
+                        this.add(o.getCompanyName());
+                        this.add(o.getGroupName());
+                        this.add(o.getName());
+                        this.add(o.getGenderTxt());
+                        this.add(o.getAvatar());
+                        this.add(o.getWxUserId());
+                        this.add(o.getMobile());
+                        this.add(o.getFanNum());
+                        this.add(o.getRoomNum());
+                    }
+                };
+                resList.add(tempObj);
+            }
+        }
+
+        StringBuffer content = OssFile.createCSV(resList);
+
+        SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
+        String dateString = formatter.format(currentTime);
+        String filePath = OSSConfiguration.DOWN_DIR + dateString + "/" + downFile.getId().toString() + "_" + fileName;
+
+        PutObjectRequest putObjectRequest = new PutObjectRequest(ossConfiguration.getBucketName(), filePath,
+                new ByteArrayInputStream(content.toString().getBytes()));
+        ossClient.putObject(putObjectRequest);
+
+        downFile.setDownUrl(ossConfiguration.getHost() + filePath);
+        downFile.setStatus(1);
+        downfileMapper.updateById(downFile);
 
         return;
     }

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

@@ -3,15 +3,15 @@ package com.mokamrp.privates.tast;
 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.mapper.pojo.Downfile;
 import com.mokamrp.privates.service.WorkContactEmployeeService;
+import com.mokamrp.privates.service.WorkEmployeeService;
 import com.mokamrp.privates.service.WorkRoomService;
 import com.mokamrp.privates.utils.RedisUtil;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.scheduling.annotation.EnableScheduling;
 import org.springframework.scheduling.annotation.Scheduled;
 import org.springframework.stereotype.Component;
-
 import javax.annotation.Resource;
 import java.util.Date;
 
@@ -24,10 +24,12 @@ public class ExportJobTask {
     @Autowired
     private WorkRoomService workRoomService;
 
-
     @Autowired
     private WorkContactEmployeeService workContactEmployeeService;
 
+    @Autowired
+    private WorkEmployeeService workEmployeeService;
+
     /**
      * 导出任务,单进程
      */
@@ -44,6 +46,7 @@ public class ExportJobTask {
                 continue;
             }
 
+            System.out.println("id:"+downFile.getId());
             switch(out.getJobName()){
                 case "Room":
                     JobRoomJobRedis job= out.getJobRoomJobRedis();
@@ -53,6 +56,10 @@ public class ExportJobTask {
                     JobWorkContactEmployeeRedis eJob= out.getJobWorkContactEmployeeRedis();
                     workContactEmployeeService.export(downFile,eJob.getWorkContactEmployeeHandle());
                     break;
+                case "WorkEmployeeService":
+                    JobWorkEmployeeJobRedis weJob= out.getJobWorkEmployeeJobRedis();
+                    workEmployeeService.export(downFile,weJob.getPostWorkEmployee());
+                    break;
                 default :
             }
         }