|
@@ -1,6 +1,5 @@
|
|
|
package com.fs.his.service.impl;
|
|
package com.fs.his.service.impl;
|
|
|
|
|
|
|
|
-import java.io.IOException;
|
|
|
|
|
import java.lang.reflect.Field;
|
|
import java.lang.reflect.Field;
|
|
|
import java.math.BigDecimal;
|
|
import java.math.BigDecimal;
|
|
|
import java.math.BigInteger;
|
|
import java.math.BigInteger;
|
|
@@ -20,7 +19,6 @@ import cn.hutool.core.bean.BeanUtil;
|
|
|
import cn.hutool.core.util.IdUtil;
|
|
import cn.hutool.core.util.IdUtil;
|
|
|
import cn.hutool.json.JSONUtil;
|
|
import cn.hutool.json.JSONUtil;
|
|
|
import com.alibaba.fastjson.JSON;
|
|
import com.alibaba.fastjson.JSON;
|
|
|
-import com.alibaba.fastjson.JSONObject;
|
|
|
|
|
import com.baomidou.mybatisplus.core.conditions.Wrapper;
|
|
import com.baomidou.mybatisplus.core.conditions.Wrapper;
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
|
import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
|
|
import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
|
|
@@ -31,10 +29,8 @@ import com.fs.common.core.domain.R;
|
|
|
import com.fs.common.core.domain.ResponseResult;
|
|
import com.fs.common.core.domain.ResponseResult;
|
|
|
import com.fs.common.core.domain.entity.SysDictData;
|
|
import com.fs.common.core.domain.entity.SysDictData;
|
|
|
import com.fs.common.core.page.TableDataInfo;
|
|
import com.fs.common.core.page.TableDataInfo;
|
|
|
-import com.fs.common.core.redis.RedisCache;
|
|
|
|
|
import com.fs.common.enums.ImTypeEnum;
|
|
import com.fs.common.enums.ImTypeEnum;
|
|
|
import com.fs.common.exception.CustomException;
|
|
import com.fs.common.exception.CustomException;
|
|
|
-import com.fs.common.exception.base.BaseException;
|
|
|
|
|
import com.fs.common.param.LoginMaWxParam;
|
|
import com.fs.common.param.LoginMaWxParam;
|
|
|
import com.fs.common.utils.DateUtils;
|
|
import com.fs.common.utils.DateUtils;
|
|
|
import com.fs.common.utils.DictUtils;
|
|
import com.fs.common.utils.DictUtils;
|
|
@@ -76,13 +72,11 @@ import com.fs.im.config.ImTypeConfig;
|
|
|
import com.fs.im.service.OpenIMService;
|
|
import com.fs.im.service.OpenIMService;
|
|
|
import com.fs.hisStore.domain.FsStoreOrderScrm;
|
|
import com.fs.hisStore.domain.FsStoreOrderScrm;
|
|
|
import com.fs.hisStore.domain.FsUserBillScrm;
|
|
import com.fs.hisStore.domain.FsUserBillScrm;
|
|
|
-import com.fs.hisStore.domain.FsUserScrm;
|
|
|
|
|
import com.fs.hisStore.enums.BillDetailEnum;
|
|
import com.fs.hisStore.enums.BillDetailEnum;
|
|
|
import com.fs.hisStore.mapper.FsStoreOrderScrmMapper;
|
|
import com.fs.hisStore.mapper.FsStoreOrderScrmMapper;
|
|
|
import com.fs.hisStore.service.IFsUserBillScrmService;
|
|
import com.fs.hisStore.service.IFsUserBillScrmService;
|
|
|
import com.fs.hisStore.vo.FsCompanyUserListQueryVO;
|
|
import com.fs.hisStore.vo.FsCompanyUserListQueryVO;
|
|
|
import com.fs.live.vo.HisFsUserVO;
|
|
import com.fs.live.vo.HisFsUserVO;
|
|
|
-import com.fs.qw.cache.IQwExternalContactCacheService;
|
|
|
|
|
import com.fs.qw.dto.FsUserTransferParamDTO;
|
|
import com.fs.qw.dto.FsUserTransferParamDTO;
|
|
|
import com.fs.qw.param.QwFsUserParam;
|
|
import com.fs.qw.param.QwFsUserParam;
|
|
|
import com.fs.qw.vo.QwFsUserVO;
|
|
import com.fs.qw.vo.QwFsUserVO;
|
|
@@ -105,14 +99,7 @@ import com.github.pagehelper.PageHelper;
|
|
|
import com.github.pagehelper.PageInfo;
|
|
import com.github.pagehelper.PageInfo;
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
import org.apache.commons.collections4.CollectionUtils;
|
|
import org.apache.commons.collections4.CollectionUtils;
|
|
|
-import org.apache.http.client.ClientProtocolException;
|
|
|
|
|
-import org.apache.http.client.methods.CloseableHttpResponse;
|
|
|
|
|
-import org.apache.http.client.methods.HttpPost;
|
|
|
|
|
-import org.apache.http.entity.StringEntity;
|
|
|
|
|
-import org.apache.http.impl.client.CloseableHttpClient;
|
|
|
|
|
-import org.apache.http.impl.client.HttpClients;
|
|
|
|
|
import org.apache.http.util.Asserts;
|
|
import org.apache.http.util.Asserts;
|
|
|
-import org.apache.http.util.EntityUtils;
|
|
|
|
|
import org.redisson.api.RLock;
|
|
import org.redisson.api.RLock;
|
|
|
import org.redisson.api.RedissonClient;
|
|
import org.redisson.api.RedissonClient;
|
|
|
import org.slf4j.Logger;
|
|
import org.slf4j.Logger;
|
|
@@ -1150,6 +1137,29 @@ public class FsUserServiceImpl implements IFsUserService {
|
|
|
return list;
|
|
return list;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+ @Override
|
|
|
|
|
+ public List<FsUserGraphicStatisticsVO> graphicStatisticsDetailsV2(Long companyUserId, Long videoId, Long periodId) {
|
|
|
|
|
+ Map<String, Object> result = fsUserMapper.countCourseInviteFunnel(companyUserId, videoId, periodId);
|
|
|
|
|
+ List<FsUserGraphicStatisticsVO> list = new LinkedList<>();
|
|
|
|
|
+ list.add(new FsUserGraphicStatisticsVO("邀请看课人数(未发送成功人" + toInt(result.get("sendFailed")) + "+发送成功" + toInt(result.get("sendSuccess")) + "人)", toInt(result.get("inviteTotal")), toInt(result.get("inviteTotal"))));
|
|
|
|
|
+ list.add(new FsUserGraphicStatisticsVO("未看课" + toInt(result.get("notWatched")) + "人", toInt(result.get("notWatched")), toInt(result.get("notWatched"))));
|
|
|
|
|
+ list.add(new FsUserGraphicStatisticsVO("未完播" + toInt(result.get("watchingIncomplete")) + "人", toInt(result.get("watchingIncomplete")),toInt(result.get("watchingIncomplete"))));
|
|
|
|
|
+ list.add(new FsUserGraphicStatisticsVO("完播" + toInt(result.get("watchedComplete")) + "人", toInt(result.get("watchedComplete")), toInt(result.get("watchedComplete"))));
|
|
|
|
|
+ list.add(new FsUserGraphicStatisticsVO("链接失效后未看课" + toInt(result.get("expiredNotWatched")) + "人", toInt(result.get("expiredNotWatched")), toInt(result.get("expiredNotWatched"))));
|
|
|
|
|
+ list.sort(Comparator.comparingInt(FsUserGraphicStatisticsVO::getValue).reversed());
|
|
|
|
|
+ return list;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ private int toInt(Object obj) {
|
|
|
|
|
+ if (obj == null) {
|
|
|
|
|
+ return 0;
|
|
|
|
|
+ }
|
|
|
|
|
+ if (obj instanceof Number) {
|
|
|
|
|
+ return ((Number) obj).intValue();
|
|
|
|
|
+ }
|
|
|
|
|
+ return Integer.parseInt(obj.toString());
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
@Override
|
|
@Override
|
|
|
public List<FsCourseAnalysisVO> courseAnalysis(CourseAnalysisParam param) {
|
|
public List<FsCourseAnalysisVO> courseAnalysis(CourseAnalysisParam param) {
|
|
|
//1、查询课程视频信息
|
|
//1、查询课程视频信息
|