Browse Source

总后台-红包记录导出

三七 20 hours ago
parent
commit
4321ab46af

+ 8 - 1
fs-service/src/main/java/com/fs/course/mapper/FsCourseRedPacketLogMapper.java

@@ -107,13 +107,14 @@ public interface FsCourseRedPacketLogMapper
     List<FsCourseRedPacketLogListPVO> selectRedPacketLogListVO(@Param("maps") FsCourseRedPacketLogParam param);
 
     @Select({"<script> " +
-            "select l.*,v.title,u.nick_name as fsNickName,u.avatar as fsAvatar,u.phone,cu.nick_name company_user_name,c.company_name,qu.qw_user_name,fuc.course_name,u.phone as phoneNumber   from fs_course_red_packet_log l  \n" +
+            "select l.*,v.title,u.nick_name as fsNickName,u.avatar as fsAvatar,u.phone,cu.nick_name company_user_name,c.company_name,qu.qw_user_name,fuc.course_name,cd.dept_name,u.phone as phoneNumber   from fs_course_red_packet_log l  \n" +
             "left join fs_user_course_video v on v.video_id = l.video_id \n" +
             "left join fs_user u on u.user_id = l.user_id \n" +
             "left join fs_user_course fuc on fuc.course_id = l.course_id \n" +
             "left join company_user cu on cu.user_id=l.company_user_id \n" +
             "left join company c on c.company_id=l.company_id \n" +
             "LEFT JOIN qw_user qu on qu.id= l.qw_user_id  " +
+            "LEFT JOIN company_dept cd on cd.dept_id= cu.dept_id  " +
             "where 1=1   " +
             "<if test = ' maps.userId !=null '> and l.user_id = #{maps.userId} </if>" +
             "<if test = ' maps.watchLogId !=null '> and l.watch_log_id = #{maps.watchLogId} </if>" +
@@ -128,6 +129,12 @@ public interface FsCourseRedPacketLogMapper
             "<if test = ' maps.qwUserId !=null '> and l.qw_user_id = #{maps.qwUserId} </if>" +
             "<if test=\"maps.sTime != null \">  and DATE(l.create_time) &gt;= DATE(#{maps.sTime})</if>\n" +
             "<if test=\"maps.eTime != null \">  and DATE(l.create_time) &lt;= DATE(#{maps.eTime})</if>\n" +
+            "            <if test=\"maps.companyUserIds != null and !maps.companyUserIds.isEmpty()\">\n" +
+            "                AND l.company_user_id IN\n" +
+            "                <foreach collection='maps.companyUserIds' item='item' open='(' separator=',' close=')'>\n" +
+            "                    #{item}\n" +
+            "                </foreach>\n" +
+            "            </if>" +
             " order by l.log_id desc  "+
             "</script>"})
     List<FsCourseRedPacketLogListPVO> selectFsCourseRedPacketLogListVO(@Param("maps")FsCourseRedPacketLogParam fsCourseRedPacketLog);

+ 29 - 0
fs-service/src/main/java/com/fs/course/param/FsCourseRedPacketLogParam.java

@@ -1,9 +1,12 @@
 package com.fs.course.param;
 
+import com.baomidou.mybatisplus.annotation.TableField;
 import com.fasterxml.jackson.annotation.JsonFormat;
 import lombok.Data;
 
+import java.util.ArrayList;
 import java.util.Date;
+import java.util.List;
 
 @Data
 public class FsCourseRedPacketLogParam {
@@ -34,4 +37,30 @@ public class FsCourseRedPacketLogParam {
 
     @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
     private Date sTime;
+
+    @TableField(exist = false)
+    private List<String> companyUserIds=new ArrayList<>();
+
+
+    public List<String> getCompanyUserIds() {
+        if (companyUserIds == null || companyUserIds.isEmpty()) {
+            return companyUserIds;
+        }
+
+        // 直接在原始列表上修改
+        for (int i = 0; i < companyUserIds.size(); i++) {
+            String id = companyUserIds.get(i);
+            if (id != null) {
+                if (id.startsWith("dept_")) {
+                    companyUserIds.set(i, id.substring(5));
+                } else if (id.startsWith("company_")) {
+                    companyUserIds.set(i, id.substring(8));
+                } else if (id.startsWith("user_")) {
+                    companyUserIds.set(i, id.substring(5));
+                }
+            }
+        }
+        return companyUserIds;
+    }
+
 }

+ 28 - 22
fs-service/src/main/java/com/fs/course/vo/FsCourseRedPacketLogListPVO.java

@@ -28,24 +28,31 @@ public class FsCourseRedPacketLogListPVO extends BaseEntity
 
     private String fsAvatar;
 
+    @Excel(name = "课程id")
+    private String courseId;
     @Excel(name = "课程名称")
     private String courseName;
 
-    @Excel(name = "小节名称")
-    private String videoName;
+    @Excel(name = "小节id")
+    private String videoId;
 
-    @Excel(name = "记录类型" ,dictType = "sys_course_watch_log_type")
-    private Integer logType;
+    @Excel(name = "小节名称")
+    private String title;
 
-    @Excel(name = "企微外部联系人id")
-    private String qwExternalContactId;
+    @Excel(name = "小节名称")
+    private String videoName;
 
 
-    @Excel(name = "播放时长")
-    private String duration;
+    @Excel(name = "电话")
+    private String phone;
+    /** 转帐金额 */
+    @Excel(name = "转帐金额")
+    private BigDecimal amount;
 
+    @Excel(name = "状态",dictType = "sys_course_red_packet_status")
+    private Integer status;//状态 0 发送中  1  已发送
 
-    @Excel(name = "分享人企微userId")
+    @Excel(name = "分享人企微Id")
     private String qwUserId;
     /**
      * 企业微信员工名称
@@ -56,6 +63,10 @@ public class FsCourseRedPacketLogListPVO extends BaseEntity
     @Excel(name = "所属销售")
     private String companyUserName;
 
+
+    @Excel(name = "所属部门")
+    private String deptName;
+
     @Excel(name = "所属团队")
     private String companyName;
 
@@ -72,21 +83,16 @@ public class FsCourseRedPacketLogListPVO extends BaseEntity
     @Excel(name = "批次编号")
     private String outBatchNo;
 
-    @Excel(name = "课程id")
-    private String courseId;
-    @Excel(name = "课程id")
-    private String videoId;
 
-    @Excel(name = "小节名称")
-    private String title;
 
-    @Excel(name = "电话")
-    private String phone;
-    /** 转帐金额 */
-    @Excel(name = "转帐金额")
-    private BigDecimal amount;
+    @Excel(name = "记录类型" ,dictType = "sys_course_watch_log_type_new")
+    private Integer logType;
 
-    @Excel(name = "状态",dictType = "sys_course_red_packet_status")
-    private Integer status;//状态 0 发送中  1  已发送
+    @Excel(name = "企微外部联系人id")
+    private String qwExternalContactId;
+
+
+    @Excel(name = "播放时长")
+    private String duration;
 
 }