Sfoglia il codice sorgente

课堂分类重粉导出

yh 1 settimana fa
parent
commit
b7b2ebad33

+ 28 - 8
fs-admin/src/main/java/com/fs/course/controller/FsUserCourseCategoryController.java

@@ -1,10 +1,13 @@
 package com.fs.course.controller;
 
+import java.util.Arrays;
 import java.util.List;
+import java.util.Map;
 
 import com.fs.common.core.domain.R;
 import com.fs.common.core.domain.model.LoginUser;
 import com.fs.common.utils.ServletUtils;
+import com.fs.course.domain.DuplicateFans;
 import com.fs.framework.web.service.TokenService;
 import com.fs.his.domain.FsStoreProductCategory;
 import com.fs.his.vo.FsStoreProductCategoryVO;
@@ -17,14 +20,8 @@ import com.fs.his.vo.OptionsVO;
 import com.fs.system.service.ISysConfigService;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.PutMapping;
-import org.springframework.web.bind.annotation.DeleteMapping;
-import org.springframework.web.bind.annotation.PathVariable;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.util.CollectionUtils;
+import org.springframework.web.bind.annotation.*;
 import com.fs.common.annotation.Log;
 import com.fs.common.core.controller.BaseController;
 import com.fs.common.core.domain.AjaxResult;
@@ -91,6 +88,29 @@ public class FsUserCourseCategoryController extends BaseController
         return util.exportExcel(list, "课堂分类数据");
     }
 
+    /**
+     * 导出重粉
+     */
+    @PreAuthorize("@ss.hasPermi('course:userCourseCategory:fansExport')")
+    @Log(title = "课堂分类重粉", businessType = BusinessType.EXPORT)
+    @PostMapping("/exportFans")
+    public AjaxResult exportFans(@RequestBody Map<String, List<Integer>> map) {
+
+        List<Integer> ids = map.get("ids");
+
+        List<DuplicateFans> list = fsUserCourseCategoryService.exportFans(ids);
+
+        if (CollectionUtils.isEmpty(list)) {
+            return AjaxResult.error("没有可导出的数据");
+        }
+
+        ExcelUtil<DuplicateFans> util = new ExcelUtil<>(DuplicateFans.class);
+
+        return util.exportExcel(list, "课堂分类重粉数据");
+    }
+
+
+
     /**
      * 获取课堂分类详细信息
      */

+ 12 - 0
fs-service/src/main/java/com/fs/course/domain/DuplicateFans.java

@@ -0,0 +1,12 @@
+package com.fs.course.domain;
+
+import com.fs.common.annotation.Excel;
+
+public class DuplicateFans {
+    @Excel(name = "appId")
+    private String appId;
+    @Excel(name = "unionId")
+    private String unionId;
+    @Excel(name = "mpOpenId")
+    private String mpOpenId;
+}

+ 3 - 0
fs-service/src/main/java/com/fs/course/mapper/FsUserCourseCategoryMapper.java

@@ -1,5 +1,6 @@
 package com.fs.course.mapper;
 
+import com.fs.course.domain.DuplicateFans;
 import com.fs.course.domain.FsUserCourseCategory;
 import com.fs.his.vo.OptionsVO;
 import org.apache.ibatis.annotations.MapKey;
@@ -101,4 +102,6 @@ public interface FsUserCourseCategoryMapper
 
     @Select("select cate_id dict_value, cate_name dict_label  from fs_user_course_category WHERE pid = 0 and is_del=0 ")
     List<OptionsVO> selectAllFsUserCourseCategoryPidList();
+
+    List<DuplicateFans> exportFans(@Param("ids") List<Integer> ids);
 }

+ 4 - 0
fs-service/src/main/java/com/fs/course/service/IFsUserCourseCategoryService.java

@@ -1,6 +1,8 @@
 package com.fs.course.service;
 
 import java.util.List;
+
+import com.fs.course.domain.DuplicateFans;
 import com.fs.course.domain.FsUserCourseCategory;
 import com.fs.his.vo.OptionsVO;
 
@@ -68,4 +70,6 @@ public interface IFsUserCourseCategoryService
     List<OptionsVO> selectFsUserCourseCategoryPidList(Long userId);
 
     List<OptionsVO> selectCateListByPid(Long pid);
+
+    List<DuplicateFans> exportFans(List<Integer> ids);
 }

+ 6 - 0
fs-service/src/main/java/com/fs/course/service/impl/FsUserCourseCategoryServiceImpl.java

@@ -2,6 +2,7 @@ package com.fs.course.service.impl;
 
 import java.util.List;
 import com.fs.common.utils.DateUtils;
+import com.fs.course.domain.DuplicateFans;
 import com.fs.his.vo.OptionsVO;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
@@ -118,4 +119,9 @@ public class FsUserCourseCategoryServiceImpl implements IFsUserCourseCategorySer
     public List<OptionsVO> selectCateListByPid(Long pid) {
         return fsUserCourseCategoryMapper.selectCateListByPid(pid);
     }
+
+    @Override
+    public List<DuplicateFans> exportFans(List<Integer> ids) {
+        return fsUserCourseCategoryMapper.exportFans(ids);
+    }
 }

+ 33 - 0
fs-service/src/main/resources/mapper/course/FsUserCourseCategoryMapper.xml

@@ -45,6 +45,39 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         order by sort asc
     </select>
 
+    <select id="exportFans" resultType="com.fs.course.domain.DuplicateFans">
+        SELECT
+        'wx6ee517a8d8743f88' AS app_id,
+        fu.union_id,
+        fu.mp_open_id
+        FROM fs_user fu
+        WHERE
+        fu.union_id IS NOT NULL
+        AND fu.mp_open_id IS NOT NULL
+        AND fu.user_id IN (
+        SELECT fswl.user_id
+        FROM fs_course_watch_log fswl
+        INNER JOIN fs_user_course fuc
+        ON fuc.course_id = fswl.course_id
+        WHERE
+        fswl.user_id IS NOT NULL
+        AND fswl.user_id &gt; 0
+        <if test="ids != null and ids.size() > 0">
+            AND fuc.cate_id IN
+            <foreach collection="ids"
+                     item="id"
+                     open="("
+                     separator=","
+                     close=")">
+                #{id}
+            </foreach>
+        </if>
+        GROUP BY fswl.user_id
+        )
+    </select>
+
+
+
     <insert id="insertFsUserCourseCategory" parameterType="FsUserCourseCategory" useGeneratedKeys="true" keyProperty="cateId">
         insert into fs_user_course_category
         <trim prefix="(" suffix=")" suffixOverrides=",">