diff --git a/base-commons/common-core/src/main/java/com/evotech/hd/common/core/dao/cloud/HomeDataTradeCollateDao.java b/base-commons/common-core/src/main/java/com/evotech/hd/common/core/dao/cloud/HomeDataTradeCollateDao.java index e6db676..e2b03a5 100644 --- a/base-commons/common-core/src/main/java/com/evotech/hd/common/core/dao/cloud/HomeDataTradeCollateDao.java +++ b/base-commons/common-core/src/main/java/com/evotech/hd/common/core/dao/cloud/HomeDataTradeCollateDao.java @@ -2,12 +2,15 @@ package com.evotech.hd.common.core.dao.cloud; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.evotech.hd.common.core.constant.HDConstant; import com.evotech.hd.common.core.entity.cloud.HomeDataTradeCollate; +import com.evotech.hd.common.core.permission.DataScope; /** * @author zrb * @since 2025-03-08 */ +@DataScope(permissionObject = HDConstant.OPERATOR_ROLE_CODE, permissionScopeName = "station_code", permissionScopeRedisKey = HDConstant.PermissionConstant.PERMISSION_STATION_CODE) public interface HomeDataTradeCollateDao extends BaseMapper { } diff --git a/base-commons/common-core/src/main/java/com/evotech/hd/common/core/entity/cloud/HomeDataTradeCollate.java b/base-commons/common-core/src/main/java/com/evotech/hd/common/core/entity/cloud/HomeDataTradeCollate.java index 6e42dc5..21bb474 100644 --- a/base-commons/common-core/src/main/java/com/evotech/hd/common/core/entity/cloud/HomeDataTradeCollate.java +++ b/base-commons/common-core/src/main/java/com/evotech/hd/common/core/entity/cloud/HomeDataTradeCollate.java @@ -5,15 +5,13 @@ import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import com.evotech.hd.common.core.entity.BaseEntity; import com.fasterxml.jackson.annotation.JsonFormat; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import org.springframework.format.annotation.DateTimeFormat; import java.io.Serializable; import java.util.Date; -import org.springframework.format.annotation.DateTimeFormat; - -import io.swagger.v3.oas.annotations.media.Schema; -import lombok.Data; - /** * @author zrb * @since 2025-03-08 @@ -28,6 +26,9 @@ public class HomeDataTradeCollate extends BaseEntity implements Serializable { @Schema(description = "日期") private String day; + @Schema(description = "交易站点") + private String stationCode; + @Schema(description = "交易类型:1-充值,2-订单消费,9-提现") private Integer tradeType; diff --git a/cloud-manage-server/src/main/java/com/evotech/hd/cloud/entity/vo/HomeData4.java b/cloud-manage-server/src/main/java/com/evotech/hd/cloud/entity/vo/HomeData4.java index 4875f5c..ac10751 100644 --- a/cloud-manage-server/src/main/java/com/evotech/hd/cloud/entity/vo/HomeData4.java +++ b/cloud-manage-server/src/main/java/com/evotech/hd/cloud/entity/vo/HomeData4.java @@ -24,10 +24,10 @@ public class HomeData4 { private Integer refundTradeQuantity; @Schema(description = "收入总钱数") - private Integer totalMoney; + private Double totalMoney; @Schema(description = "支出总钱数") - private Integer totalRefund; + private Double totalRefund; diff --git a/cloud-manage-server/src/main/java/com/evotech/hd/cloud/service/impl/HomeDataManualCollateServiceImpl.java b/cloud-manage-server/src/main/java/com/evotech/hd/cloud/service/impl/HomeDataManualCollateServiceImpl.java index 9c7d723..c7ca3b2 100644 --- a/cloud-manage-server/src/main/java/com/evotech/hd/cloud/service/impl/HomeDataManualCollateServiceImpl.java +++ b/cloud-manage-server/src/main/java/com/evotech/hd/cloud/service/impl/HomeDataManualCollateServiceImpl.java @@ -1,14 +1,7 @@ package com.evotech.hd.cloud.service.impl; -import java.util.ArrayList; -import java.util.Date; -import java.util.List; -import java.util.Map; -import java.util.stream.Collectors; - -import org.springframework.stereotype.Service; -import org.springframework.util.StringUtils; - +import cn.hutool.core.date.DatePattern; +import cn.hutool.core.date.DateUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.evotech.hd.cloud.dao.TradeDetailDao; import com.evotech.hd.cloud.service.HomeDataManualCollateService; @@ -20,11 +13,16 @@ import com.evotech.hd.common.core.entity.cloud.HomeDataOrderSwapCollate; import com.evotech.hd.common.core.entity.cloud.HomeDataTradeCollate; import com.evotech.hd.common.core.entity.cloud.OrderSwapBattery; import com.evotech.hd.common.core.entity.cloud.TradeDetail; - -import cn.hutool.core.date.DatePattern; -import cn.hutool.core.date.DateUtil; import jakarta.annotation.Resource; import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; +import org.springframework.util.StringUtils; + +import java.util.ArrayList; +import java.util.Date; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; @Service @@ -130,26 +128,51 @@ public class HomeDataManualCollateServiceImpl implements HomeDataManualCollateSe if (tradeList.isEmpty()) { continue; } - Map>> map = tradeList.stream().collect(Collectors.groupingBy(TradeDetail::getTradeType, Collectors.groupingBy(TradeDetail::getPayType))); + //Map>> map = tradeList.stream().collect(Collectors.groupingBy(TradeDetail::getTradeType, Collectors.groupingBy(TradeDetail::getPayType))); + + Map>>> map1 = tradeList.stream().collect(Collectors.groupingBy(TradeDetail::getStationCode,Collectors.groupingBy(TradeDetail::getTradeType, Collectors.groupingBy(TradeDetail::getPayType)))); Date d = new Date(); List tradeCollateList = new ArrayList(); - for (Map.Entry>> m : map.entrySet()) { - Integer tradeType = m.getKey(); - Map> payTypeMap = m.getValue(); - for (Map.Entry> entry : payTypeMap.entrySet()) { - Integer payType = entry.getKey(); - List dayPayTypeTradeList = entry.getValue(); - HomeDataTradeCollate tradeCollate = new HomeDataTradeCollate(); - tradeCollate.setDay(dayString); - tradeCollate.setCtime(d); - tradeCollate.setQuantity(dayPayTypeTradeList.size()); - tradeCollate.setTradeType(tradeType); - tradeCollate.setPayType(payType); - tradeCollate.setTradeAmount(dayPayTypeTradeList.stream().collect(Collectors.summingInt(item -> item.getTradeAmount()))); - tradeCollateList.add(tradeCollate); + for (Map.Entry>>> pm : map1.entrySet()) { + String stationCode = pm.getKey(); + Map>> mc = pm.getValue(); + for (Map.Entry>> m : mc.entrySet()) { + Integer tradeType = m.getKey(); + Map> payTypeMap = m.getValue(); + for (Map.Entry> entry : payTypeMap.entrySet()) { + Integer payType = entry.getKey(); + List dayPayTypeTradeList = entry.getValue(); + HomeDataTradeCollate tradeCollate = new HomeDataTradeCollate(); + tradeCollate.setDay(dayString); + tradeCollate.setCtime(d); + tradeCollate.setStationCode(stationCode); + tradeCollate.setQuantity(dayPayTypeTradeList.size()); + tradeCollate.setTradeType(tradeType); + tradeCollate.setPayType(payType); + tradeCollate.setTradeAmount(dayPayTypeTradeList.stream().collect(Collectors.summingInt(item -> item.getTradeAmount()))); + tradeCollateList.add(tradeCollate); + } } - } + + +// for (Map.Entry>> m : map.entrySet()) { +// Integer tradeType = m.getKey(); +// Map> payTypeMap = m.getValue(); +// for (Map.Entry> entry : payTypeMap.entrySet()) { +// Integer payType = entry.getKey(); +// List dayPayTypeTradeList = entry.getValue(); +// HomeDataTradeCollate tradeCollate = new HomeDataTradeCollate(); +// tradeCollate.setDay(dayString); +// tradeCollate.setCtime(d); +// tradeCollate.setQuantity(dayPayTypeTradeList.size()); +// tradeCollate.setTradeType(tradeType); +// tradeCollate.setPayType(payType); +// tradeCollate.setTradeAmount(dayPayTypeTradeList.stream().collect(Collectors.summingInt(item -> item.getTradeAmount()))); +// tradeCollateList.add(tradeCollate); +// } +// +// } // 插入数据 homeDataTradeCollateDao.delete(new QueryWrapper().eq("day", dayString)); diff --git a/cloud-manage-server/src/main/java/com/evotech/hd/cloud/service/impl/HomeServiceImpl.java b/cloud-manage-server/src/main/java/com/evotech/hd/cloud/service/impl/HomeServiceImpl.java index 34fb677..3c7ffa1 100644 --- a/cloud-manage-server/src/main/java/com/evotech/hd/cloud/service/impl/HomeServiceImpl.java +++ b/cloud-manage-server/src/main/java/com/evotech/hd/cloud/service/impl/HomeServiceImpl.java @@ -169,11 +169,11 @@ public class HomeServiceImpl implements HomeService { Integer refundTradeQuantity = collateList.stream().filter(i -> i.getTradeType() == 3).collect(Collectors.summingInt(HomeDataTradeCollate::getQuantity)); data.setRefundTradeQuantity(refundTradeQuantity); - Integer chargeAmount = collateList.stream().filter(i -> i.getTradeType() == 1).collect(Collectors.summingInt(HomeDataTradeCollate::getTradeAmount)); - Integer orderAmount = collateList.stream().filter(i -> i.getTradeType() == 2 && i.getPayType() != 1).collect(Collectors.summingInt(HomeDataTradeCollate::getTradeAmount)); + Double chargeAmount = collateList.stream().filter(i -> i.getTradeType() == 1).collect(Collectors.summingDouble(HomeDataTradeCollate::getTradeAmount)); + Double orderAmount = collateList.stream().filter(i -> i.getTradeType() == 2 && i.getPayType() != 1).collect(Collectors.summingDouble(HomeDataTradeCollate::getTradeAmount)); data.setTotalMoney(chargeAmount + orderAmount); - - int refundSum = collateList.stream().filter(i -> i.getTradeType() == 9).collect(Collectors.summingInt(HomeDataTradeCollate::getTradeAmount)); + + Double refundSum = collateList.stream().filter(i -> i.getTradeType() == 9).collect(Collectors.summingDouble(HomeDataTradeCollate::getTradeAmount)); data.setTotalRefund(refundSum); return new Result().success(data); diff --git a/resource-server/src/main/java/com/evotech/hd/resource/service/impl/AuthUserServiceImpl.java b/resource-server/src/main/java/com/evotech/hd/resource/service/impl/AuthUserServiceImpl.java index 67a4534..7d169cb 100644 --- a/resource-server/src/main/java/com/evotech/hd/resource/service/impl/AuthUserServiceImpl.java +++ b/resource-server/src/main/java/com/evotech/hd/resource/service/impl/AuthUserServiceImpl.java @@ -162,7 +162,7 @@ public class AuthUserServiceImpl implements AuthUserService { @Override public BaseResponse> loadUserStation(String uid) { - return new BaseResponse>().success(authUserStationDao.selectList(new LambdaQueryWrapper().eq(AuthUserStation::getUid, uid).select(AuthUserStation::getStationId, AuthUserStation::getStationId))); + return new BaseResponse>().success(authUserStationDao.selectList(new LambdaQueryWrapper().eq(AuthUserStation::getUid, uid).select(AuthUserStation::getStationId, AuthUserStation::getStationCode))); }