Commit 3dca66eefa2a2a6b34447288bb32d06624d588ed
1 parent
0b84c187
分销:提现统计
Showing
7 changed files
with
59 additions
and
17 deletions
yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/admin/brokerage/BrokerageUserController.java
| @@ -9,9 +9,12 @@ import cn.iocoder.yudao.module.trade.convert.brokerage.BrokerageUserConvert; | @@ -9,9 +9,12 @@ import cn.iocoder.yudao.module.trade.convert.brokerage.BrokerageUserConvert; | ||
| 9 | import cn.iocoder.yudao.module.trade.dal.dataobject.brokerage.BrokerageUserDO; | 9 | import cn.iocoder.yudao.module.trade.dal.dataobject.brokerage.BrokerageUserDO; |
| 10 | import cn.iocoder.yudao.module.trade.enums.brokerage.BrokerageRecordBizTypeEnum; | 10 | import cn.iocoder.yudao.module.trade.enums.brokerage.BrokerageRecordBizTypeEnum; |
| 11 | import cn.iocoder.yudao.module.trade.enums.brokerage.BrokerageRecordStatusEnum; | 11 | import cn.iocoder.yudao.module.trade.enums.brokerage.BrokerageRecordStatusEnum; |
| 12 | +import cn.iocoder.yudao.module.trade.enums.brokerage.BrokerageWithdrawStatusEnum; | ||
| 13 | +import cn.iocoder.yudao.module.trade.service.brokerage.BrokerageWithdrawService; | ||
| 12 | import cn.iocoder.yudao.module.trade.service.brokerage.bo.UserBrokerageSummaryBO; | 14 | import cn.iocoder.yudao.module.trade.service.brokerage.bo.UserBrokerageSummaryBO; |
| 13 | import cn.iocoder.yudao.module.trade.service.brokerage.BrokerageRecordService; | 15 | import cn.iocoder.yudao.module.trade.service.brokerage.BrokerageRecordService; |
| 14 | import cn.iocoder.yudao.module.trade.service.brokerage.BrokerageUserService; | 16 | import cn.iocoder.yudao.module.trade.service.brokerage.BrokerageUserService; |
| 17 | +import cn.iocoder.yudao.module.trade.service.brokerage.bo.UserWithdrawSummaryBO; | ||
| 15 | import io.swagger.v3.oas.annotations.Operation; | 18 | import io.swagger.v3.oas.annotations.Operation; |
| 16 | import io.swagger.v3.oas.annotations.Parameter; | 19 | import io.swagger.v3.oas.annotations.Parameter; |
| 17 | import io.swagger.v3.oas.annotations.tags.Tag; | 20 | import io.swagger.v3.oas.annotations.tags.Tag; |
| @@ -38,6 +41,8 @@ public class BrokerageUserController { | @@ -38,6 +41,8 @@ public class BrokerageUserController { | ||
| 38 | private BrokerageUserService brokerageUserService; | 41 | private BrokerageUserService brokerageUserService; |
| 39 | @Resource | 42 | @Resource |
| 40 | private BrokerageRecordService brokerageRecordService; | 43 | private BrokerageRecordService brokerageRecordService; |
| 44 | + @Resource | ||
| 45 | + private BrokerageWithdrawService brokerageWithdrawService; | ||
| 41 | 46 | ||
| 42 | @Resource | 47 | @Resource |
| 43 | private MemberUserApi memberUserApi; | 48 | private MemberUserApi memberUserApi; |
| @@ -97,9 +102,12 @@ public class BrokerageUserController { | @@ -97,9 +102,12 @@ public class BrokerageUserController { | ||
| 97 | userId -> userId, | 102 | userId -> userId, |
| 98 | userId -> brokerageUserService.getBrokerageUserCountByBindUserId(userId, null)); | 103 | userId -> brokerageUserService.getBrokerageUserCountByBindUserId(userId, null)); |
| 99 | 104 | ||
| 100 | - // todo 合计提现 | 105 | + // 合计提现 |
| 106 | + Map<Long, UserWithdrawSummaryBO> withdrawMap = convertMap(userIds, | ||
| 107 | + userId -> userId, | ||
| 108 | + userId -> brokerageWithdrawService.getWithdrawSummaryByUserId(userId, BrokerageWithdrawStatusEnum.AUDIT_SUCCESS)); | ||
| 101 | 109 | ||
| 102 | - return success(BrokerageUserConvert.INSTANCE.convertPage(pageResult, userMap, brokerageUserCountMap, userOrderSummaryMap)); | 110 | + return success(BrokerageUserConvert.INSTANCE.convertPage(pageResult, userMap, brokerageUserCountMap, userOrderSummaryMap, withdrawMap)); |
| 103 | } | 111 | } |
| 104 | 112 | ||
| 105 | } | 113 | } |
yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/app/brokerage/AppBrokerageUserController.java
| @@ -15,6 +15,7 @@ import cn.iocoder.yudao.module.trade.enums.brokerage.BrokerageWithdrawStatusEnum | @@ -15,6 +15,7 @@ import cn.iocoder.yudao.module.trade.enums.brokerage.BrokerageWithdrawStatusEnum | ||
| 15 | import cn.iocoder.yudao.module.trade.service.brokerage.BrokerageRecordService; | 15 | import cn.iocoder.yudao.module.trade.service.brokerage.BrokerageRecordService; |
| 16 | import cn.iocoder.yudao.module.trade.service.brokerage.BrokerageUserService; | 16 | import cn.iocoder.yudao.module.trade.service.brokerage.BrokerageUserService; |
| 17 | import cn.iocoder.yudao.module.trade.service.brokerage.BrokerageWithdrawService; | 17 | import cn.iocoder.yudao.module.trade.service.brokerage.BrokerageWithdrawService; |
| 18 | +import cn.iocoder.yudao.module.trade.service.brokerage.bo.UserWithdrawSummaryBO; | ||
| 18 | import io.swagger.v3.oas.annotations.Operation; | 19 | import io.swagger.v3.oas.annotations.Operation; |
| 19 | import io.swagger.v3.oas.annotations.Parameter; | 20 | import io.swagger.v3.oas.annotations.Parameter; |
| 20 | import io.swagger.v3.oas.annotations.tags.Tag; | 21 | import io.swagger.v3.oas.annotations.tags.Tag; |
| @@ -82,7 +83,7 @@ public class AppBrokerageUserController { | @@ -82,7 +83,7 @@ public class AppBrokerageUserController { | ||
| 82 | LocalDateTime endTime = LocalDateTimeUtil.endOfDay(yesterday); | 83 | LocalDateTime endTime = LocalDateTimeUtil.endOfDay(yesterday); |
| 83 | AppBrokerageUserMySummaryRespVO respVO = new AppBrokerageUserMySummaryRespVO() | 84 | AppBrokerageUserMySummaryRespVO respVO = new AppBrokerageUserMySummaryRespVO() |
| 84 | .setYesterdayPrice(brokerageRecordService.getSummaryPriceByUserId(userId, BrokerageRecordBizTypeEnum.ORDER.getType(), beginTime, endTime)) | 85 | .setYesterdayPrice(brokerageRecordService.getSummaryPriceByUserId(userId, BrokerageRecordBizTypeEnum.ORDER.getType(), beginTime, endTime)) |
| 85 | - .setWithdrawPrice(brokerageWithdrawService.getSummaryPriceByUserIdAndStatus(userId, BrokerageWithdrawStatusEnum.AUDIT_SUCCESS.getStatus())) | 86 | + .setWithdrawPrice(Optional.ofNullable(brokerageWithdrawService.getWithdrawSummaryByUserId(userId, BrokerageWithdrawStatusEnum.AUDIT_SUCCESS)).map(UserWithdrawSummaryBO::getPrice).orElse(0)) |
| 86 | .setBrokeragePrice(0).setFrozenPrice(0) | 87 | .setBrokeragePrice(0).setFrozenPrice(0) |
| 87 | .setFirstBrokerageUserCount(brokerageUserService.getBrokerageUserCountByBindUserId(userId, 1)) | 88 | .setFirstBrokerageUserCount(brokerageUserService.getBrokerageUserCountByBindUserId(userId, 1)) |
| 88 | .setSecondBrokerageUserCount(brokerageUserService.getBrokerageUserCountByBindUserId(userId, 2)); | 89 | .setSecondBrokerageUserCount(brokerageUserService.getBrokerageUserCountByBindUserId(userId, 2)); |
yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/convert/brokerage/BrokerageUserConvert.java
| @@ -7,6 +7,7 @@ import cn.iocoder.yudao.module.trade.controller.admin.brokerage.vo.user.Brokerag | @@ -7,6 +7,7 @@ import cn.iocoder.yudao.module.trade.controller.admin.brokerage.vo.user.Brokerag | ||
| 7 | import cn.iocoder.yudao.module.trade.controller.app.brokerage.vo.user.AppBrokerageUserRankByUserCountRespVO; | 7 | import cn.iocoder.yudao.module.trade.controller.app.brokerage.vo.user.AppBrokerageUserRankByUserCountRespVO; |
| 8 | import cn.iocoder.yudao.module.trade.dal.dataobject.brokerage.BrokerageUserDO; | 8 | import cn.iocoder.yudao.module.trade.dal.dataobject.brokerage.BrokerageUserDO; |
| 9 | import cn.iocoder.yudao.module.trade.service.brokerage.bo.UserBrokerageSummaryBO; | 9 | import cn.iocoder.yudao.module.trade.service.brokerage.bo.UserBrokerageSummaryBO; |
| 10 | +import cn.iocoder.yudao.module.trade.service.brokerage.bo.UserWithdrawSummaryBO; | ||
| 10 | import org.mapstruct.Mapper; | 11 | import org.mapstruct.Mapper; |
| 11 | import org.mapstruct.MappingTarget; | 12 | import org.mapstruct.MappingTarget; |
| 12 | import org.mapstruct.factory.Mappers; | 13 | import org.mapstruct.factory.Mappers; |
| @@ -29,13 +30,14 @@ public interface BrokerageUserConvert { | @@ -29,13 +30,14 @@ public interface BrokerageUserConvert { | ||
| 29 | 30 | ||
| 30 | List<BrokerageUserRespVO> convertList(List<BrokerageUserDO> list); | 31 | List<BrokerageUserRespVO> convertList(List<BrokerageUserDO> list); |
| 31 | 32 | ||
| 32 | - PageResult<BrokerageUserRespVO> convertPage(PageResult<BrokerageUserDO> page); | 33 | + PageResult<BrokerageUserRespVO> convertPage(PageResult<BrokerageUserDO> page, Map<Long, MemberUserRespDTO> userMap, Map<Long, Long> brokerageUserCountMap, Map<Long, UserBrokerageSummaryBO> userOrderSummaryMap); |
| 33 | 34 | ||
| 34 | default PageResult<BrokerageUserRespVO> convertPage(PageResult<BrokerageUserDO> pageResult, | 35 | default PageResult<BrokerageUserRespVO> convertPage(PageResult<BrokerageUserDO> pageResult, |
| 35 | Map<Long, MemberUserRespDTO> userMap, | 36 | Map<Long, MemberUserRespDTO> userMap, |
| 36 | Map<Long, Long> brokerageUserCountMap, | 37 | Map<Long, Long> brokerageUserCountMap, |
| 37 | - Map<Long, UserBrokerageSummaryBO> userOrderSummaryMap) { | ||
| 38 | - PageResult<BrokerageUserRespVO> result = convertPage(pageResult); | 38 | + Map<Long, UserBrokerageSummaryBO> userOrderSummaryMap, |
| 39 | + Map<Long, UserWithdrawSummaryBO> withdrawMap) { | ||
| 40 | + PageResult<BrokerageUserRespVO> result = convertPage(pageResult, userMap, brokerageUserCountMap, userOrderSummaryMap); | ||
| 39 | for (BrokerageUserRespVO userVO : result.getList()) { | 41 | for (BrokerageUserRespVO userVO : result.getList()) { |
| 40 | // 用户信息 | 42 | // 用户信息 |
| 41 | copyTo(userMap.get(userVO.getId()), userVO); | 43 | copyTo(userMap.get(userVO.getId()), userVO); |
| @@ -46,7 +48,10 @@ public interface BrokerageUserConvert { | @@ -46,7 +48,10 @@ public interface BrokerageUserConvert { | ||
| 46 | Optional<UserBrokerageSummaryBO> orderSummaryOptional = Optional.ofNullable(userOrderSummaryMap.get(userVO.getId())); | 48 | Optional<UserBrokerageSummaryBO> orderSummaryOptional = Optional.ofNullable(userOrderSummaryMap.get(userVO.getId())); |
| 47 | userVO.setBrokerageOrderCount(orderSummaryOptional.map(UserBrokerageSummaryBO::getCount).orElse(0)) | 49 | userVO.setBrokerageOrderCount(orderSummaryOptional.map(UserBrokerageSummaryBO::getCount).orElse(0)) |
| 48 | .setBrokerageOrderPrice(orderSummaryOptional.map(UserBrokerageSummaryBO::getPrice).orElse(0)); | 50 | .setBrokerageOrderPrice(orderSummaryOptional.map(UserBrokerageSummaryBO::getPrice).orElse(0)); |
| 49 | - // todo 已提现次数、已提现金额 | 51 | + // 已提现次数、已提现金额 |
| 52 | + Optional<UserWithdrawSummaryBO> withdrawSummaryOptional = Optional.ofNullable(withdrawMap.get(userVO.getId())); | ||
| 53 | + userVO.setWithdrawCount(withdrawSummaryOptional.map(UserWithdrawSummaryBO::getCount).orElse(0)) | ||
| 54 | + .setWithdrawPrice(withdrawSummaryOptional.map(UserWithdrawSummaryBO::getPrice).orElse(0)); | ||
| 50 | userVO.setWithdrawCount(0).setWithdrawPrice(0); | 55 | userVO.setWithdrawCount(0).setWithdrawPrice(0); |
| 51 | } | 56 | } |
| 52 | return result; | 57 | return result; |
yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/dal/mysql/brokerage/BrokerageWithdrawMapper.java
| @@ -5,6 +5,7 @@ import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; | @@ -5,6 +5,7 @@ import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; | ||
| 5 | import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; | 5 | import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; |
| 6 | import cn.iocoder.yudao.module.trade.controller.admin.brokerage.vo.withdraw.BrokerageWithdrawPageReqVO; | 6 | import cn.iocoder.yudao.module.trade.controller.admin.brokerage.vo.withdraw.BrokerageWithdrawPageReqVO; |
| 7 | import cn.iocoder.yudao.module.trade.dal.dataobject.brokerage.BrokerageWithdrawDO; | 7 | import cn.iocoder.yudao.module.trade.dal.dataobject.brokerage.BrokerageWithdrawDO; |
| 8 | +import cn.iocoder.yudao.module.trade.service.brokerage.bo.UserWithdrawSummaryBO; | ||
| 8 | import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; | 9 | import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; |
| 9 | import org.apache.ibatis.annotations.Mapper; | 10 | import org.apache.ibatis.annotations.Mapper; |
| 10 | import org.apache.ibatis.annotations.Param; | 11 | import org.apache.ibatis.annotations.Param; |
| @@ -36,8 +37,7 @@ public interface BrokerageWithdrawMapper extends BaseMapperX<BrokerageWithdrawDO | @@ -36,8 +37,7 @@ public interface BrokerageWithdrawMapper extends BaseMapperX<BrokerageWithdrawDO | ||
| 36 | .eq(BrokerageWithdrawDO::getStatus, status)); | 37 | .eq(BrokerageWithdrawDO::getStatus, status)); |
| 37 | } | 38 | } |
| 38 | 39 | ||
| 39 | - @Select("SELECT SUM(price) FROM trade_brokerage_withdraw " + | 40 | + @Select("SELECT COUNT(1) AS count, SUM(price) AS price FROM trade_brokerage_withdraw " + |
| 40 | "WHERE user_id = #{userId} AND status = #{status}") | 41 | "WHERE user_id = #{userId} AND status = #{status}") |
| 41 | - Integer selectSummaryPriceByUserIdAndStatus(@Param("userId") Long userId, @Param("status") Integer status); | ||
| 42 | - | 42 | + UserWithdrawSummaryBO selectCountAndSumPriceByUserIdAndStatus(Long userId, Integer status); |
| 43 | } | 43 | } |
yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/service/brokerage/BrokerageWithdrawService.java
| @@ -5,6 +5,7 @@ import cn.iocoder.yudao.module.trade.controller.admin.brokerage.vo.withdraw.Brok | @@ -5,6 +5,7 @@ import cn.iocoder.yudao.module.trade.controller.admin.brokerage.vo.withdraw.Brok | ||
| 5 | import cn.iocoder.yudao.module.trade.controller.app.brokerage.vo.withdraw.AppBrokerageWithdrawCreateReqVO; | 5 | import cn.iocoder.yudao.module.trade.controller.app.brokerage.vo.withdraw.AppBrokerageWithdrawCreateReqVO; |
| 6 | import cn.iocoder.yudao.module.trade.dal.dataobject.brokerage.BrokerageWithdrawDO; | 6 | import cn.iocoder.yudao.module.trade.dal.dataobject.brokerage.BrokerageWithdrawDO; |
| 7 | import cn.iocoder.yudao.module.trade.enums.brokerage.BrokerageWithdrawStatusEnum; | 7 | import cn.iocoder.yudao.module.trade.enums.brokerage.BrokerageWithdrawStatusEnum; |
| 8 | +import cn.iocoder.yudao.module.trade.service.brokerage.bo.UserWithdrawSummaryBO; | ||
| 8 | 9 | ||
| 9 | /** | 10 | /** |
| 10 | * 佣金提现 Service 接口 | 11 | * 佣金提现 Service 接口 |
| @@ -48,12 +49,12 @@ public interface BrokerageWithdrawService { | @@ -48,12 +49,12 @@ public interface BrokerageWithdrawService { | ||
| 48 | Long createBrokerageWithdraw(AppBrokerageWithdrawCreateReqVO createReqVO, Long userId); | 49 | Long createBrokerageWithdraw(AppBrokerageWithdrawCreateReqVO createReqVO, Long userId); |
| 49 | 50 | ||
| 50 | /** | 51 | /** |
| 51 | - * 获得用户已提现金额 | 52 | + * 汇总用户提现 |
| 52 | * | 53 | * |
| 53 | * @param userId 用户编号 | 54 | * @param userId 用户编号 |
| 54 | - * @param status 状态 | ||
| 55 | - * @return 用户已提现金额 | 55 | + * @param status 提现状态 |
| 56 | + * @return 用户提现汇总 | ||
| 56 | */ | 57 | */ |
| 57 | - Integer getSummaryPriceByUserIdAndStatus(Long userId, Integer status); | 58 | + UserWithdrawSummaryBO getWithdrawSummaryByUserId(Long userId, BrokerageWithdrawStatusEnum status); |
| 58 | 59 | ||
| 59 | } | 60 | } |
yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/service/brokerage/BrokerageWithdrawServiceImpl.java
| @@ -2,7 +2,6 @@ package cn.iocoder.yudao.module.trade.service.brokerage; | @@ -2,7 +2,6 @@ package cn.iocoder.yudao.module.trade.service.brokerage; | ||
| 2 | 2 | ||
| 3 | import cn.hutool.core.date.LocalDateTimeUtil; | 3 | import cn.hutool.core.date.LocalDateTimeUtil; |
| 4 | import cn.hutool.core.map.MapUtil; | 4 | import cn.hutool.core.map.MapUtil; |
| 5 | -import cn.hutool.core.math.Money; | ||
| 6 | import cn.hutool.core.util.ObjectUtil; | 5 | import cn.hutool.core.util.ObjectUtil; |
| 7 | import cn.iocoder.yudao.framework.common.pojo.PageResult; | 6 | import cn.iocoder.yudao.framework.common.pojo.PageResult; |
| 8 | import cn.iocoder.yudao.framework.common.util.number.MoneyUtils; | 7 | import cn.iocoder.yudao.framework.common.util.number.MoneyUtils; |
| @@ -18,6 +17,7 @@ import cn.iocoder.yudao.module.trade.enums.MessageTemplateConstants; | @@ -18,6 +17,7 @@ import cn.iocoder.yudao.module.trade.enums.MessageTemplateConstants; | ||
| 18 | import cn.iocoder.yudao.module.trade.enums.brokerage.BrokerageRecordBizTypeEnum; | 17 | import cn.iocoder.yudao.module.trade.enums.brokerage.BrokerageRecordBizTypeEnum; |
| 19 | import cn.iocoder.yudao.module.trade.enums.brokerage.BrokerageWithdrawStatusEnum; | 18 | import cn.iocoder.yudao.module.trade.enums.brokerage.BrokerageWithdrawStatusEnum; |
| 20 | import cn.iocoder.yudao.module.trade.enums.brokerage.BrokerageWithdrawTypeEnum; | 19 | import cn.iocoder.yudao.module.trade.enums.brokerage.BrokerageWithdrawTypeEnum; |
| 20 | +import cn.iocoder.yudao.module.trade.service.brokerage.bo.UserWithdrawSummaryBO; | ||
| 21 | import cn.iocoder.yudao.module.trade.service.config.TradeConfigService; | 21 | import cn.iocoder.yudao.module.trade.service.config.TradeConfigService; |
| 22 | import org.springframework.stereotype.Service; | 22 | import org.springframework.stereotype.Service; |
| 23 | import org.springframework.transaction.annotation.Transactional; | 23 | import org.springframework.transaction.annotation.Transactional; |
| @@ -142,8 +142,9 @@ public class BrokerageWithdrawServiceImpl implements BrokerageWithdrawService { | @@ -142,8 +142,9 @@ public class BrokerageWithdrawServiceImpl implements BrokerageWithdrawService { | ||
| 142 | } | 142 | } |
| 143 | 143 | ||
| 144 | @Override | 144 | @Override |
| 145 | - public Integer getSummaryPriceByUserIdAndStatus(Long userId, Integer status) { | ||
| 146 | - return brokerageWithdrawMapper.selectSummaryPriceByUserIdAndStatus(userId, status); | 145 | + public UserWithdrawSummaryBO getWithdrawSummaryByUserId(Long userId, BrokerageWithdrawStatusEnum status) { |
| 146 | + UserWithdrawSummaryBO summaryBO = brokerageWithdrawMapper.selectCountAndSumPriceByUserIdAndStatus(userId, status.getStatus()); | ||
| 147 | + return summaryBO != null ? summaryBO : new UserWithdrawSummaryBO(0, 0); | ||
| 147 | } | 148 | } |
| 148 | 149 | ||
| 149 | /** | 150 | /** |
yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/service/brokerage/bo/UserWithdrawSummaryBO.java
0 → 100644
| 1 | +package cn.iocoder.yudao.module.trade.service.brokerage.bo; | ||
| 2 | + | ||
| 3 | +import lombok.AllArgsConstructor; | ||
| 4 | +import lombok.Data; | ||
| 5 | +import lombok.NoArgsConstructor; | ||
| 6 | + | ||
| 7 | +/** | ||
| 8 | + * 用户佣金提现合计 BO | ||
| 9 | + * | ||
| 10 | + * @author owen | ||
| 11 | + */ | ||
| 12 | +@Data | ||
| 13 | +@NoArgsConstructor | ||
| 14 | +@AllArgsConstructor | ||
| 15 | +public class UserWithdrawSummaryBO { | ||
| 16 | + | ||
| 17 | + /** | ||
| 18 | + * 提现次数 | ||
| 19 | + */ | ||
| 20 | + private Integer count; | ||
| 21 | + /** | ||
| 22 | + * 提现金额 | ||
| 23 | + */ | ||
| 24 | + private Integer price; | ||
| 25 | + | ||
| 26 | +} |