|
|
@@ -2,6 +2,7 @@ package com.cyksj.web.controller.manage.statistics;
|
|
|
|
|
|
import cn.hutool.core.date.DateTime;
|
|
|
import cn.hutool.core.date.DateUtil;
|
|
|
+import cn.hutool.json.JSONObject;
|
|
|
import com.alibaba.excel.support.ExcelTypeEnum;
|
|
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
|
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
|
|
@@ -10,6 +11,8 @@ import com.cyksj.common.util.Jsons;
|
|
|
import com.cyksj.dto.Result;
|
|
|
import com.cyksj.enums.GatewayResponse;
|
|
|
import com.cyksj.mapper.*;
|
|
|
+import com.cyksj.mapper.corp.CorpUserFollowRelationMapper;
|
|
|
+import com.cyksj.mapper.corp.CorpUserMapper;
|
|
|
import com.cyksj.mapper.manage.statistics.IncrExpiryTimeRecordMapper;
|
|
|
import com.cyksj.mapper.manage.statistics.StatisticsUserDataMapper;
|
|
|
import com.cyksj.model.entity.*;
|
|
|
@@ -36,6 +39,7 @@ import javax.servlet.http.HttpServletRequest;
|
|
|
import javax.servlet.http.HttpServletResponse;
|
|
|
import java.math.BigDecimal;
|
|
|
import java.util.*;
|
|
|
+import java.util.concurrent.atomic.AtomicInteger;
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
/*
|
|
|
@@ -332,4 +336,64 @@ public class StatisticsDataController {
|
|
|
return GatewayResponse.SUCCESS.newBuilder().toResult(Jsons.toJson(map));
|
|
|
}
|
|
|
|
|
|
+ private final RegisterOrderDonMapper registerOrderDonMapper;
|
|
|
+ /**
|
|
|
+ * 所有先注册声破天会员,再买声破天年付车票的用户数
|
|
|
+ */
|
|
|
+ @GetMapping("/get/spotify/data")
|
|
|
+ public Result<Integer> getSpotifyData() {
|
|
|
+ List<RegisterOrderDon> orderDons = registerOrderDonMapper.selectList(Wrappers.lambdaQuery(RegisterOrderDon.class)
|
|
|
+ .eq(RegisterOrderDon::getPlatform, "spotify")
|
|
|
+ .eq(RegisterOrderDon::getStatus, RegisterOrderDon.Status.complete)
|
|
|
+ .ne(RegisterOrderDon::getMoney, 0));
|
|
|
+ Map<Long, List<RegisterOrderDon>> collect = orderDons.stream().collect(Collectors.groupingBy(RegisterOrderDon::getUserId));
|
|
|
+ AtomicInteger atomicInteger = new AtomicInteger();
|
|
|
+ collect.forEach((k,v)->{
|
|
|
+ v.sort(Comparator.comparing(RegisterOrderDon::getId));
|
|
|
+ Long userId = k;
|
|
|
+ Date payTime = v.get(0).getPayTime();
|
|
|
+ Integer count = orderDonMapper.selectCount(Wrappers.lambdaQuery(OrderDon.class)
|
|
|
+ .eq(OrderDon::getStatus, OrderDon.Status.complete)
|
|
|
+ .eq(OrderDon::getUserId, userId)
|
|
|
+ .gt(OrderDon::getPayTime, payTime)
|
|
|
+ .eq(OrderDon::getSkuId, 14));
|
|
|
+ if (count > 0) {
|
|
|
+ atomicInteger.incrementAndGet();
|
|
|
+ }
|
|
|
+ });
|
|
|
+ return GatewayResponse.SUCCESS.newBuilder().toResult(atomicInteger.get());
|
|
|
+ }
|
|
|
+
|
|
|
+ private final CorpUserMapper corpUserMapper;
|
|
|
+
|
|
|
+ private final CorpUserFollowRelationMapper corpUserFollowRelationMapper;
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 月份加入的企业微信,有过已完成订单的用户数
|
|
|
+ */
|
|
|
+ @GetMapping("/get/corpWx/user/order")
|
|
|
+ public Result<String> getCorpWxUsrOrder(String start, String end) {
|
|
|
+ /* List<CorpUser> corpUsers = corpUserMapper.selectList(Wrappers.lambdaQuery(CorpUser.class)
|
|
|
+ .ne(CorpUser::getUnionid,"")
|
|
|
+ .between(CorpUser::getCreatedTime, start, end));
|
|
|
+ List<User> users = userMapper.selectList(Wrappers.lambdaQuery(User.class)
|
|
|
+ .in(User::getUnionid, corpUsers.stream()
|
|
|
+ .map(CorpUser::getUnionid).collect(Collectors.toList()))
|
|
|
+ .ne(User::getUnionid, ""));
|
|
|
+
|
|
|
+ Integer count = orderDonMapper.selectCount(Wrappers.lambdaQuery(OrderDon.class)
|
|
|
+ .eq(OrderDon::getStatus, OrderDon.Status.complete)
|
|
|
+ .in(OrderDon::getUserId, users.stream().map(User::getId)));*/
|
|
|
+ JSONObject jsonObject = new JSONObject();
|
|
|
+
|
|
|
+ Integer corpOrderNum = orderDonMapper.getCountByCorpUserTime(start,end);
|
|
|
+
|
|
|
+ Integer equibe = corpUserFollowRelationMapper.selectCorpEqubeBytime(start,end);
|
|
|
+
|
|
|
+ Integer account = corpUserFollowRelationMapper.selectCorpAccountBytime(start, end);
|
|
|
+ jsonObject.putOpt("月份企业微信订单", corpOrderNum);
|
|
|
+ jsonObject.putOpt("月份设备企业微信订单", equibe);
|
|
|
+ jsonObject.putOpt("月份账号企业微信订单", account);
|
|
|
+ return GatewayResponse.SUCCESS.newBuilder().toResult(jsonObject.toString());
|
|
|
+ }
|
|
|
}
|