|
|
@@ -1,44 +1,26 @@
|
|
|
package com.kxs.user.biz.service.impl;
|
|
|
|
|
|
-import cn.hutool.core.date.DatePattern;
|
|
|
-import cn.hutool.core.date.LocalDateTimeUtil;
|
|
|
-import cn.hutool.core.util.EnumUtil;
|
|
|
+import cn.hutool.core.collection.CollUtil;
|
|
|
+import cn.hutool.core.util.StrUtil;
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
|
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
import com.kxs.common.core.constant.CommonConstants;
|
|
|
-import com.kxs.common.core.constant.SecurityConstants;
|
|
|
-import com.kxs.common.core.constant.enums.ErrorTypeEnum;
|
|
|
import com.kxs.common.core.constant.enums.KindTypeEnum;
|
|
|
-import com.kxs.common.core.exception.GlobalCustomerException;
|
|
|
-import com.kxs.common.core.util.R;
|
|
|
-import com.kxs.common.core.util.RetOps;
|
|
|
import com.kxs.common.mybatis.handler.MonthTableNameHandler;
|
|
|
import com.kxs.common.security.util.SecurityUtils;
|
|
|
-import com.kxs.product.api.feign.RemoteKxsProductService;
|
|
|
-import com.kxs.product.api.model.KxsMachine;
|
|
|
-import com.kxs.product.api.vo.kxsapp.shop.ShopOrderDetailVO;
|
|
|
import com.kxs.user.api.dto.kxsapp.userAccount.UserAmountVariationListDTO;
|
|
|
-import com.kxs.user.api.model.KxsChangeTypeKind;
|
|
|
-import com.kxs.user.api.model.KxsLeaderAmountLog;
|
|
|
import com.kxs.user.api.model.KxsUser;
|
|
|
+import com.kxs.user.api.model.KxsUserAmountLog;
|
|
|
import com.kxs.user.api.vo.kxsapp.userAccount.*;
|
|
|
-import com.kxs.common.core.constant.enums.VariationTypeEnum;
|
|
|
-import com.kxs.user.biz.mapper.KxsChangeTypeKindMapper;
|
|
|
-import com.kxs.user.biz.mapper.KxsLeaderAmountLogMapper;
|
|
|
import com.kxs.user.biz.mapper.KxsUserAmountLogMapper;
|
|
|
-import com.kxs.user.api.model.KxsUserAmountLog;
|
|
|
import com.kxs.user.biz.mapper.KxsUserMapper;
|
|
|
import com.kxs.user.biz.service.KxsUserAmountLogService;
|
|
|
import lombok.RequiredArgsConstructor;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
|
-import java.time.LocalDateTime;
|
|
|
-import java.util.ArrayList;
|
|
|
-import java.util.HashMap;
|
|
|
import java.util.List;
|
|
|
-import java.util.Map;
|
|
|
|
|
|
/**
|
|
|
* 用户余额记录日志表(KxsUserAmountLog)表服务实现类
|
|
|
@@ -63,31 +45,40 @@ public class KxsUserAmountLogServiceImpl extends ServiceImpl<KxsUserAmountLogMap
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
- public AmountInExpendTotalVO amountInExpendTotal(String tradeMonth) {
|
|
|
+ public AmountInExpendTotalVO amountInExpendTotal(UserAmountVariationListDTO param) {
|
|
|
+
|
|
|
AmountInExpendTotalVO amountInExpendTotalVO = new AmountInExpendTotalVO();
|
|
|
|
|
|
//每个请求线程维护一个month数据,避免多线程数据冲突
|
|
|
- MonthTableNameHandler.setData(tradeMonth);
|
|
|
- QueryWrapper<KxsUserAmountLog> queryWrapper = new QueryWrapper<>();
|
|
|
- queryWrapper.eq("user_id", SecurityUtils.getUser().getId());
|
|
|
- queryWrapper.eq("DATE_FORMAT(create_time, '%Y-%m')", tradeMonth);
|
|
|
- queryWrapper.eq("kind", KindTypeEnum.ADD.getType());
|
|
|
- queryWrapper.select("IFNULL(SUM(amount),0) AS amount");
|
|
|
-
|
|
|
- //收益
|
|
|
- KxsUserAmountLog add = baseMapper.selectOne(queryWrapper);
|
|
|
- amountInExpendTotalVO.setIncome(add.getAmount());
|
|
|
-
|
|
|
- //支出
|
|
|
- queryWrapper.clear();
|
|
|
- queryWrapper.eq("user_id", SecurityUtils.getUser().getId());
|
|
|
- queryWrapper.eq("DATE_FORMAT(create_time, '%Y-%m')", tradeMonth);
|
|
|
- queryWrapper.eq("kind", KindTypeEnum.SUB.getType());
|
|
|
- queryWrapper.select("IFNULL(SUM(amount),0) AS amount");
|
|
|
- KxsUserAmountLog sub = baseMapper.selectOne(queryWrapper);
|
|
|
- amountInExpendTotalVO.setExpend(sub.getAmount());
|
|
|
- //删除线程,避免线程污染
|
|
|
- MonthTableNameHandler.removeData();
|
|
|
+ MonthTableNameHandler.setData(param.getTradeMonth());
|
|
|
+
|
|
|
+ if(StrUtil.isBlank(param.getKind())|| param.getKind().equals(KindTypeEnum.ADD.getType())){
|
|
|
+ QueryWrapper<KxsUserAmountLog> queryWrapper = new QueryWrapper<>();
|
|
|
+ queryWrapper.eq("user_id", SecurityUtils.getUser().getId());
|
|
|
+ queryWrapper.in(CollUtil.isNotEmpty(param.getBrandIds()),"brand_id", param.getBrandIds());
|
|
|
+ queryWrapper.in(CollUtil.isNotEmpty(param.getChangeType()),"variation_type", param.getChangeType());
|
|
|
+ queryWrapper.select("IFNULL(SUM(amount),0) AS amount");
|
|
|
+ queryWrapper.eq( "kind", KindTypeEnum.ADD.getType());
|
|
|
+
|
|
|
+ //收益
|
|
|
+ KxsUserAmountLog add = baseMapper.selectOne(queryWrapper);
|
|
|
+ amountInExpendTotalVO.setIncome(add.getAmount());
|
|
|
+ }
|
|
|
+
|
|
|
+ if(StrUtil.isBlank(param.getKind()) || param.getKind().equals(KindTypeEnum.SUB.getType())){
|
|
|
+ QueryWrapper<KxsUserAmountLog> queryWrapper = new QueryWrapper<>();
|
|
|
+ queryWrapper.eq("user_id", SecurityUtils.getUser().getId());
|
|
|
+ queryWrapper.in(CollUtil.isNotEmpty(param.getBrandIds()),"brand_id", param.getBrandIds());
|
|
|
+ queryWrapper.in(CollUtil.isNotEmpty(param.getChangeType()),"variation_type", param.getChangeType());
|
|
|
+ queryWrapper.select("IFNULL(SUM(amount),0) AS amount");
|
|
|
+
|
|
|
+ queryWrapper.eq("kind", KindTypeEnum.SUB.getType());
|
|
|
+ //支出
|
|
|
+ KxsUserAmountLog add = baseMapper.selectOne(queryWrapper);
|
|
|
+ amountInExpendTotalVO.setExpend(add.getAmount());
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
return amountInExpendTotalVO;
|
|
|
}
|
|
|
|