Procházet zdrojové kódy

销售、总后台优化导出功能

yjwang před 3 týdny
rodič
revize
5fd770197b

+ 26 - 0
fs-company/src/main/java/com/fs/company/controller/course/FsCourseWatchLogController.java

@@ -7,6 +7,7 @@ import com.fs.common.core.domain.AjaxResult;
 import com.fs.common.core.domain.R;
 import com.fs.common.core.page.TableDataInfo;
 import com.fs.common.enums.BusinessType;
+import com.fs.common.exception.ServiceException;
 import com.fs.common.utils.ServletUtils;
 import com.fs.common.utils.poi.ExcelUtil;
 import com.fs.company.service.impl.CompanyDeptServiceImpl;
@@ -443,4 +444,29 @@ public class FsCourseWatchLogController extends BaseController
         PageHelper.startPage(pageNum, pageSize);
         return R.ok().put("data", new PageInfo<>(fsCourseWatchLogService.getCourseStatisticsUserDetailList(param)));
     }
+
+    /**
+     * 课程小结-用户详情导出(按创建时间倒序,最多50000条)
+     */
+    @PreAuthorize("@ss.hasPermi('course:courseWatchLog:query')")
+    @Log(title = "课程小结用户详情导出", businessType = BusinessType.EXPORT)
+    @GetMapping("/courseStatisticsUserDetailExport")
+    public AjaxResult courseStatisticsUserDetailExport(
+            @RequestParam("videoId") Long videoId,
+            @RequestParam("periodId") Long periodId) {
+        if (videoId == null || periodId == null) {
+            return AjaxResult.error("视频ID和营期ID不能为空");
+        }
+        LoginUser loginUser = tokenService.getLoginUser(ServletUtils.getRequest());
+        if(loginUser == null || loginUser.getCompany() == null || loginUser.getCompany().getCompanyId() == null){
+            throw new ServiceException("销售信息不存在!");
+        }
+        com.fs.course.param.CourseStatisticsUserDetailParam param = new com.fs.course.param.CourseStatisticsUserDetailParam();
+        param.setVideoId(videoId);
+        param.setPeriodId(periodId);
+        param.setCompanyId(loginUser.getCompany().getCompanyId());
+        List<com.fs.course.vo.CourseStatisticsUserDetailVO> list = fsCourseWatchLogService.getCourseStatisticsUserDetailExportList(param);
+        ExcelUtil<com.fs.course.vo.CourseStatisticsUserDetailVO> util = new ExcelUtil<>(com.fs.course.vo.CourseStatisticsUserDetailVO.class);
+        return util.exportExcel(list, "用户看课数据");
+    }
 }

+ 2 - 0
fs-service/src/main/java/com/fs/course/service/impl/FsCourseLinkServiceImpl.java

@@ -915,6 +915,7 @@ public class FsCourseLinkServiceImpl implements IFsCourseLinkService
 //                    return "未配置点播小程序id";
 //                }
                 //获取微信token
+                log.info("打印APPID-------->开始刷新TOKEN:{}",appId);
                 final WxMaService wxService = WxMaConfiguration.getMaService(appId);
                 String token = wxService.getAccessToken();
                 log.info("小程序TOKEN值-------->刷新前TOKEN:{}", token);
@@ -946,6 +947,7 @@ public class FsCourseLinkServiceImpl implements IFsCourseLinkService
                 }
 
                 if(null != jsonObject && !jsonObject.isEmpty() && jsonObject.containsKey("url_link")){
+                    log.info("打印小程序跳转链接-------->{}", jsonObject.getString("url_link"));
                     return jsonObject.getString("url_link");
                 }
             } else {

+ 2 - 2
fs-service/src/main/java/com/fs/course/vo/CourseStatisticsUserDetailVO.java

@@ -19,9 +19,9 @@ public class CourseStatisticsUserDetailVO implements Serializable {
     private Long userId;
     @Excel(name = "用户名称")
     private String userName;
+//    @Excel(name = "观看时长(秒)")
+//    private Long watchDuration;
     @Excel(name = "观看时长(秒)")
-    private Long watchDuration;
-    @Excel(name = "第2-n次观看时长(秒)")
     private Long repeatWatchDuration;
     @Excel(name = "订单数")
     private Long orderCount;

+ 6 - 0
fs-service/src/main/resources/mapper/course/FsCourseWatchLogMapper.xml

@@ -1518,6 +1518,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             INNER JOIN fs_user_course_period_days fcpd ON fcpd.period_id = l.period_id AND fcpd.video_id = l.video_id AND fcpd.del_flag = '0'
             INNER JOIN fs_user_course_video v ON v.video_id = l.video_id AND v.is_del = 0
             WHERE l.video_id = #{param.videoId} AND l.period_id = #{param.periodId} AND l.user_id IS NOT NULL
+        <if test="param.companyId != null">
+            AND l.company_id = #{param.companyId}
+        </if>
             GROUP BY l.user_id
         ) ua
         LEFT JOIN fs_user u ON u.user_id = ua.user_id
@@ -1529,6 +1532,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
                 MIN(o.id) AS min_order_id
             FROM fs_store_order_scrm o
             WHERE o.order_type = 3 AND o.video_id = #{param.videoId} AND o.period_id = #{param.periodId} AND o.paid = 1
+        <if test="param.companyId != null">
+            AND o.company_id = #{param.companyId}
+        </if>
             GROUP BY o.user_id
         ) ord ON ord.user_id = ua.user_id
         LEFT JOIN company c ON c.company_id = ua.company_id