|
@@ -15,6 +15,7 @@ import com.kxs.stat.api.model.KxsUserActTrade;
|
|
|
import com.kxs.stat.api.model.KxsUserLogoutTrade;
|
|
import com.kxs.stat.api.model.KxsUserLogoutTrade;
|
|
|
import com.kxs.stat.api.model.KxsUserTrade;
|
|
import com.kxs.stat.api.model.KxsUserTrade;
|
|
|
import com.kxs.stat.api.vo.ShdTradeAmtVO;
|
|
import com.kxs.stat.api.vo.ShdTradeAmtVO;
|
|
|
|
|
+import com.kxs.stat.api.vo.TotalTradeAmtVO;
|
|
|
import com.kxs.stat.api.vo.statUser.*;
|
|
import com.kxs.stat.api.vo.statUser.*;
|
|
|
import com.kxs.stat.biz.constant.enums.TotalTypeEnum;
|
|
import com.kxs.stat.biz.constant.enums.TotalTypeEnum;
|
|
|
import com.kxs.stat.biz.mapper.*;
|
|
import com.kxs.stat.biz.mapper.*;
|
|
@@ -33,10 +34,7 @@ import java.math.BigDecimal;
|
|
|
import java.math.RoundingMode;
|
|
import java.math.RoundingMode;
|
|
|
import java.time.LocalDate;
|
|
import java.time.LocalDate;
|
|
|
import java.time.LocalDateTime;
|
|
import java.time.LocalDateTime;
|
|
|
-import java.util.ArrayList;
|
|
|
|
|
-import java.util.HashMap;
|
|
|
|
|
-import java.util.List;
|
|
|
|
|
-import java.util.Map;
|
|
|
|
|
|
|
+import java.util.*;
|
|
|
|
|
|
|
|
/**
|
|
/**
|
|
|
* 个人交易统计总表(KxsUserTrade)表服务实现类
|
|
* 个人交易统计总表(KxsUserTrade)表服务实现类
|
|
@@ -59,9 +57,11 @@ public class KxsUserTradeServiceImpl extends ServiceImpl<KxsUserTradeMapper, Kxs
|
|
|
private final KxsUserLogoutTradeMapper kxsUserLogoutTradeMapper;
|
|
private final KxsUserLogoutTradeMapper kxsUserLogoutTradeMapper;
|
|
|
|
|
|
|
|
private final KxsUserNewTradeMapper kxsUserNewTradeMapper;
|
|
private final KxsUserNewTradeMapper kxsUserNewTradeMapper;
|
|
|
|
|
+
|
|
|
|
|
+ private final KxsZlbTradeMapper kxsZlbTradeMapper;
|
|
|
private final static String PREFIX_TABLE_NAME = "kxs_user_trade_";
|
|
private final static String PREFIX_TABLE_NAME = "kxs_user_trade_";
|
|
|
private final static String PREFIX_TABLE_NAME_TEMP = "kxs_user_trade_temp_";
|
|
private final static String PREFIX_TABLE_NAME_TEMP = "kxs_user_trade_temp_";
|
|
|
-
|
|
|
|
|
|
|
+ private final KxsUserGdTradeMapper kxsUserGdTradeMapper;
|
|
|
|
|
|
|
|
@Override
|
|
@Override
|
|
|
@Async
|
|
@Async
|
|
@@ -216,8 +216,7 @@ public class KxsUserTradeServiceImpl extends ServiceImpl<KxsUserTradeMapper, Kxs
|
|
|
// 将LocalDate转换为字符串 yyyyMMdd 获取到所需查询日期
|
|
// 将LocalDate转换为字符串 yyyyMMdd 获取到所需查询日期
|
|
|
String currentDateString = LocalDateTimeUtil.format(currentDay, DatePattern.PURE_DATE_PATTERN);
|
|
String currentDateString = LocalDateTimeUtil.format(currentDay, DatePattern.PURE_DATE_PATTERN);
|
|
|
//获取当前日的月份值
|
|
//获取当前日的月份值
|
|
|
- int monthValue = now.getMonthValue();
|
|
|
|
|
- //判断今日月份值与当前查询日月份是否一致
|
|
|
|
|
|
|
+ int monthValue = now.getMonthValue();//判断今日月份值与当前查询日月份是否一致
|
|
|
if (toDayMonth == monthValue){
|
|
if (toDayMonth == monthValue){
|
|
|
//一致加入正常查询序列
|
|
//一致加入正常查询序列
|
|
|
times.add(currentDateString);
|
|
times.add(currentDateString);
|
|
@@ -249,13 +248,91 @@ public class KxsUserTradeServiceImpl extends ServiceImpl<KxsUserTradeMapper, Kxs
|
|
|
public R getHomeAmout(Long userId) {
|
|
public R getHomeAmout(Long userId) {
|
|
|
LocalDate now = LocalDate.now();
|
|
LocalDate now = LocalDate.now();
|
|
|
String month = LocalDateTimeUtil.format(now, DatePattern.SIMPLE_MONTH_PATTERN);
|
|
String month = LocalDateTimeUtil.format(now, DatePattern.SIMPLE_MONTH_PATTERN);
|
|
|
- String date = LocalDateTimeUtil.format(now, DatePattern.PURE_DATE_PATTERN);
|
|
|
|
|
|
|
+ String today = LocalDateTimeUtil.format(now, DatePattern.PURE_DATE_PATTERN);
|
|
|
//拼接表名
|
|
//拼接表名
|
|
|
String tableName = PREFIX_TABLE_NAME + month;
|
|
String tableName = PREFIX_TABLE_NAME + month;
|
|
|
- StatUserGetHomeAmoutVO statUserGetHomeAmoutVO = baseMapper.getHomeAmout(userId,tableName,date,month);
|
|
|
|
|
|
|
+// StatUserGetHomeAmoutVO statUserGetHomeAmoutVO1 = baseMapper.getHomeAmout(userId,tableName,date,month);
|
|
|
|
|
+ //今日交易额
|
|
|
|
|
+ StatUserGetHomeAmoutVO statUserGetHomeAmoutVO = new StatUserGetHomeAmoutVO();
|
|
|
|
|
+
|
|
|
|
|
+ //获取团队日总交易额
|
|
|
|
|
+ BigDecimal amountToDay = statUserGetHomeAmoutVO.getAmountToDay();
|
|
|
|
|
+ amountToDay = getAmountToDayOrMonth(userId, today, tableName, amountToDay, 1);
|
|
|
|
|
+ statUserGetHomeAmoutVO.setAmountToDay(amountToDay);
|
|
|
|
|
+
|
|
|
|
|
+ //获取团队月总交易额
|
|
|
|
|
+ BigDecimal amountMonth = statUserGetHomeAmoutVO.getAmountMonth();
|
|
|
|
|
+ amountMonth = getAmountToDayOrMonth(userId, month, tableName, amountMonth, 2);
|
|
|
|
|
+ statUserGetHomeAmoutVO.setAmountMonth(amountMonth);
|
|
|
|
|
+
|
|
|
|
|
+ //获取今日新增用户
|
|
|
|
|
+ Integer userAddToDay = statUserGetHomeAmoutVO.getUserAddToDay();
|
|
|
|
|
+ List<String> todayList = Arrays.asList(today);
|
|
|
|
|
+ List<TrendTimesVO> userAddTrendToday = kxsUserNewTradeMapper.getUserAddTrend(userId, todayList, 1);
|
|
|
|
|
+ for (TrendTimesVO trendTimesVO : userAddTrendToday) {
|
|
|
|
|
+ userAddToDay += trendTimesVO.getTotal();
|
|
|
|
|
+ }
|
|
|
|
|
+ statUserGetHomeAmoutVO.setUserAddToDay(userAddToDay);
|
|
|
|
|
+
|
|
|
|
|
+ //获取本月新增用户
|
|
|
|
|
+ Integer userAddMonth = statUserGetHomeAmoutVO.getUserAddMonth();
|
|
|
|
|
+ List<String> monthList = Arrays.asList(month);
|
|
|
|
|
+ List<TrendTimesVO> userAddTrendMonth = kxsUserNewTradeMapper.getUserAddTrend(userId, monthList, 2);
|
|
|
|
|
+ for (TrendTimesVO trendTimesVO : userAddTrendMonth) {
|
|
|
|
|
+ userAddMonth += trendTimesVO.getTotal();
|
|
|
|
|
+ }
|
|
|
|
|
+ statUserGetHomeAmoutVO.setUserAddMonth(userAddMonth);
|
|
|
|
|
+
|
|
|
|
|
+ //获取今日新增商户
|
|
|
|
|
+ Integer merchantAddToDay = statUserGetHomeAmoutVO.getMerchantAddToDay();
|
|
|
|
|
+ List<TrendTimesVO> userActListByDay = kxsUserActTradeMapper.getUserActListByDayOrMonth(monthList, userId, null, 1);
|
|
|
|
|
+ for (TrendTimesVO trendTimesVO : userActListByDay) {
|
|
|
|
|
+ merchantAddToDay += trendTimesVO.getTotal();
|
|
|
|
|
+ }
|
|
|
|
|
+ statUserGetHomeAmoutVO.setMerchantAddToDay(merchantAddToDay);
|
|
|
|
|
+
|
|
|
|
|
+ //获取本月新增商户
|
|
|
|
|
+ Integer merchantAddMonth = statUserGetHomeAmoutVO.getMerchantAddMonth();
|
|
|
|
|
+ List<TrendTimesVO> userActListByMonth = kxsUserActTradeMapper.getUserActListByDayOrMonth(monthList, userId, null, 2);
|
|
|
|
|
+ for (TrendTimesVO trendTimesVO : userActListByMonth) {
|
|
|
|
|
+ merchantAddMonth += trendTimesVO.getTotal();
|
|
|
|
|
+ }
|
|
|
|
|
+ statUserGetHomeAmoutVO.setMerchantAddMonth(merchantAddMonth);
|
|
|
return R.ok(statUserGetHomeAmoutVO);
|
|
return R.ok(statUserGetHomeAmoutVO);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+ private BigDecimal getAmountToDayOrMonth(Long userId, String date, String tableName, BigDecimal amount, int type) {
|
|
|
|
|
+ //pos交易
|
|
|
|
|
+ TotalTradeAmtVO totalTradeAmtVO = baseMapper.getPosTrade(userId, tableName, date, type);
|
|
|
|
|
+ if (totalTradeAmtVO!= null){
|
|
|
|
|
+ amount = amount.add(totalTradeAmtVO.getPosAmt());
|
|
|
|
|
+ }
|
|
|
|
|
+ //来客吧交易额
|
|
|
|
|
+ totalTradeAmtVO = kxsLkbTradeMapper.getLkbTrade(userId, date, type);
|
|
|
|
|
+ if (totalTradeAmtVO!= null) {
|
|
|
|
|
+ amount = amount.add(totalTradeAmtVO.getLkbAmt());
|
|
|
|
|
+ amount = amount.add(totalTradeAmtVO.getLkbActAmt());
|
|
|
|
|
+ }
|
|
|
|
|
+ //助力宝交易额
|
|
|
|
|
+ totalTradeAmtVO = kxsZlbTradeMapper.getZlbTrade(userId, date, type);
|
|
|
|
|
+ if (totalTradeAmtVO != null) {
|
|
|
|
|
+ amount = amount.add(totalTradeAmtVO.getZlbAmt());
|
|
|
|
|
+ }
|
|
|
|
|
+ //广电交易额
|
|
|
|
|
+ totalTradeAmtVO = kxsUserGdTradeMapper.getGdActCount(userId, date, type);
|
|
|
|
|
+ if (totalTradeAmtVO != null){
|
|
|
|
|
+ Integer gdCount = totalTradeAmtVO.getGdCount();
|
|
|
|
|
+ //广电激活量 * 10000
|
|
|
|
|
+ amount = amount.add(new BigDecimal(gdCount * 10000));
|
|
|
|
|
+ }
|
|
|
|
|
+ //广电话费
|
|
|
|
|
+ totalTradeAmtVO = kxsUserGdTradeMapper.getGdTrade(userId, date, type);
|
|
|
|
|
+ if (totalTradeAmtVO != null){
|
|
|
|
|
+ amount = amount.add(totalTradeAmtVO.getGdAmount());
|
|
|
|
|
+ }
|
|
|
|
|
+ return amount;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
|
|
|
private StatUserGetUserStatByDayOrMonthVO getStatUserGetUserStatByDayOrMonthVO(Long userId, LocalDate now, List<String> times, List<String> lastMonthTimes, Integer type) {
|
|
private StatUserGetUserStatByDayOrMonthVO getStatUserGetUserStatByDayOrMonthVO(Long userId, LocalDate now, List<String> times, List<String> lastMonthTimes, Integer type) {
|
|
|
StatUserGetUserStatByDayOrMonthVO statUserGetUserStatByDayOrMonthVO = new StatUserGetUserStatByDayOrMonthVO();
|
|
StatUserGetUserStatByDayOrMonthVO statUserGetUserStatByDayOrMonthVO = new StatUserGetUserStatByDayOrMonthVO();
|