邀请用户后台数据源修改
This commit is contained in:
parent
2f2e387c0d
commit
a59a4f9561
@ -1,9 +1,14 @@
|
|||||||
package com.red.circle.other.inner.endpoint.user.user.api;
|
package com.red.circle.other.inner.endpoint.user.user.api;
|
||||||
|
|
||||||
|
import com.red.circle.framework.dto.PageResult;
|
||||||
import com.red.circle.framework.dto.ResultResponse;
|
import com.red.circle.framework.dto.ResultResponse;
|
||||||
import com.red.circle.other.inner.model.cmd.user.InviteStatisticsQryCmd;
|
import com.red.circle.other.inner.model.cmd.user.InviteStatisticsQryCmd;
|
||||||
|
import com.red.circle.other.inner.model.cmd.user.InviteUserQryCmd;
|
||||||
|
import com.red.circle.other.inner.model.dto.user.PageInviteUserRegisterDTO;
|
||||||
import com.red.circle.other.inner.model.dto.user.UserInviteUserCountDTO;
|
import com.red.circle.other.inner.model.dto.user.UserInviteUserCountDTO;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
|
import org.springframework.web.bind.annotation.GetMapping;
|
||||||
import org.springframework.web.bind.annotation.PostMapping;
|
import org.springframework.web.bind.annotation.PostMapping;
|
||||||
import org.springframework.web.bind.annotation.RequestBody;
|
import org.springframework.web.bind.annotation.RequestBody;
|
||||||
|
|
||||||
@ -25,4 +30,7 @@ public interface UserInviteUserClientApi {
|
|||||||
@PostMapping("/mapInviteStatisticsByUserIds")
|
@PostMapping("/mapInviteStatisticsByUserIds")
|
||||||
ResultResponse<Map<Long, UserInviteUserCountDTO>> mapInviteStatisticsByUserIds(@RequestBody
|
ResultResponse<Map<Long, UserInviteUserCountDTO>> mapInviteStatisticsByUserIds(@RequestBody
|
||||||
InviteStatisticsQryCmd qryCmd);
|
InviteStatisticsQryCmd qryCmd);
|
||||||
|
|
||||||
|
@PostMapping("/page")
|
||||||
|
ResultResponse<PageResult<PageInviteUserRegisterDTO>> pageQuery(@RequestBody InviteUserQryCmd query);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -4,6 +4,7 @@ package com.red.circle.console.adapter.app.user;
|
|||||||
import com.red.circle.console.app.service.app.user.UserInviteUserRegisterService;
|
import com.red.circle.console.app.service.app.user.UserInviteUserRegisterService;
|
||||||
import com.red.circle.framework.dto.PageResult;
|
import com.red.circle.framework.dto.PageResult;
|
||||||
import com.red.circle.framework.web.controller.BaseController;
|
import com.red.circle.framework.web.controller.BaseController;
|
||||||
|
import com.red.circle.other.inner.endpoint.user.user.api.UserInviteUserClientApi;
|
||||||
import com.red.circle.other.inner.model.cmd.user.InviteUserQryCmd;
|
import com.red.circle.other.inner.model.cmd.user.InviteUserQryCmd;
|
||||||
import com.red.circle.other.inner.model.dto.user.PageInviteUserRegisterDTO;
|
import com.red.circle.other.inner.model.dto.user.PageInviteUserRegisterDTO;
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
@ -25,10 +26,19 @@ import org.springframework.web.bind.annotation.RestController;
|
|||||||
public class UserInviteUserRegisterRestController extends BaseController {
|
public class UserInviteUserRegisterRestController extends BaseController {
|
||||||
|
|
||||||
private final UserInviteUserRegisterService userInviteUserRegisterService;
|
private final UserInviteUserRegisterService userInviteUserRegisterService;
|
||||||
|
private final UserInviteUserClientApi userInviteUserClientApi;
|
||||||
|
|
||||||
@GetMapping("/page")
|
// @GetMapping("/page")
|
||||||
public PageResult<PageInviteUserRegisterDTO> getInviteUser(InviteUserQryCmd query) {
|
public PageResult<PageInviteUserRegisterDTO> getInviteUser(InviteUserQryCmd query) {
|
||||||
return userInviteUserRegisterService.pageQuery(query);
|
return userInviteUserRegisterService.pageQuery(query);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 分页查询用户邀请记录(新数据源)
|
||||||
|
*/
|
||||||
|
@GetMapping("/page")
|
||||||
|
public PageResult<PageInviteUserRegisterDTO> getInviteUserV2(InviteUserQryCmd query) {
|
||||||
|
return userInviteUserClientApi.pageQuery(query).getBody();
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,9 +1,12 @@
|
|||||||
package com.red.circle.other.app.inner.endpoint.user.user;
|
package com.red.circle.other.app.inner.endpoint.user.user;
|
||||||
|
|
||||||
|
import com.red.circle.framework.dto.PageResult;
|
||||||
import com.red.circle.framework.dto.ResultResponse;
|
import com.red.circle.framework.dto.ResultResponse;
|
||||||
import com.red.circle.other.app.inner.service.user.user.UserInviteUserClientService;
|
import com.red.circle.other.app.inner.service.user.user.UserInviteUserClientService;
|
||||||
import com.red.circle.other.inner.endpoint.user.user.api.UserInviteUserClientApi;
|
import com.red.circle.other.inner.endpoint.user.user.api.UserInviteUserClientApi;
|
||||||
import com.red.circle.other.inner.model.cmd.user.InviteStatisticsQryCmd;
|
import com.red.circle.other.inner.model.cmd.user.InviteStatisticsQryCmd;
|
||||||
|
import com.red.circle.other.inner.model.cmd.user.InviteUserQryCmd;
|
||||||
|
import com.red.circle.other.inner.model.dto.user.PageInviteUserRegisterDTO;
|
||||||
import com.red.circle.other.inner.model.dto.user.UserInviteUserCountDTO;
|
import com.red.circle.other.inner.model.dto.user.UserInviteUserCountDTO;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
@ -29,4 +32,9 @@ public class UserInviteUserClientEndpoint implements UserInviteUserClientApi {
|
|||||||
InviteStatisticsQryCmd qryCmd) {
|
InviteStatisticsQryCmd qryCmd) {
|
||||||
return ResultResponse.success(userInviteUserClientService.mapInviteStatisticsByUserIds(qryCmd));
|
return ResultResponse.success(userInviteUserClientService.mapInviteStatisticsByUserIds(qryCmd));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public ResultResponse<PageResult<PageInviteUserRegisterDTO>> pageQuery(InviteUserQryCmd query) {
|
||||||
|
return ResultResponse.success(userInviteUserClientService.pageQuery(query));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,6 +1,9 @@
|
|||||||
package com.red.circle.other.app.inner.service.user.user;
|
package com.red.circle.other.app.inner.service.user.user;
|
||||||
|
|
||||||
|
import com.red.circle.framework.dto.PageResult;
|
||||||
import com.red.circle.other.inner.model.cmd.user.InviteStatisticsQryCmd;
|
import com.red.circle.other.inner.model.cmd.user.InviteStatisticsQryCmd;
|
||||||
|
import com.red.circle.other.inner.model.cmd.user.InviteUserQryCmd;
|
||||||
|
import com.red.circle.other.inner.model.dto.user.PageInviteUserRegisterDTO;
|
||||||
import com.red.circle.other.inner.model.dto.user.UserInviteUserCountDTO;
|
import com.red.circle.other.inner.model.dto.user.UserInviteUserCountDTO;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
@ -10,4 +13,9 @@ import java.util.Map;
|
|||||||
public interface UserInviteUserClientService {
|
public interface UserInviteUserClientService {
|
||||||
|
|
||||||
Map<Long, UserInviteUserCountDTO> mapInviteStatisticsByUserIds(InviteStatisticsQryCmd qryCmd);
|
Map<Long, UserInviteUserCountDTO> mapInviteStatisticsByUserIds(InviteStatisticsQryCmd qryCmd);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 分页查询用户邀请记录
|
||||||
|
*/
|
||||||
|
PageResult<PageInviteUserRegisterDTO> pageQuery(InviteUserQryCmd query);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,15 +1,27 @@
|
|||||||
package com.red.circle.other.app.inner.service.user.user.impl;
|
package com.red.circle.other.app.inner.service.user.user.impl;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.core.toolkit.StringUtils;
|
||||||
import com.google.common.collect.Maps;
|
import com.google.common.collect.Maps;
|
||||||
|
import com.red.circle.framework.core.asserts.ResponseAssert;
|
||||||
|
import com.red.circle.framework.dto.PageResult;
|
||||||
import com.red.circle.other.app.inner.service.user.user.UserInviteUserClientService;
|
import com.red.circle.other.app.inner.service.user.user.UserInviteUserClientService;
|
||||||
|
import com.red.circle.other.infra.database.rds.entity.user.user.InviteUserRechargeCommission;
|
||||||
|
import com.red.circle.other.infra.database.rds.entity.user.user.UserInviteUser;
|
||||||
|
import com.red.circle.other.infra.database.rds.service.user.user.InviteUserRechargeCommissionService;
|
||||||
import com.red.circle.other.infra.database.rds.service.user.user.UserInviteUserService;
|
import com.red.circle.other.infra.database.rds.service.user.user.UserInviteUserService;
|
||||||
|
import com.red.circle.other.inner.endpoint.user.user.UserProfileClient;
|
||||||
import com.red.circle.other.inner.model.cmd.team.bd.BdTeamWorkStatisticsQryCmd;
|
import com.red.circle.other.inner.model.cmd.team.bd.BdTeamWorkStatisticsQryCmd;
|
||||||
import com.red.circle.other.inner.model.cmd.user.InviteStatisticsQryCmd;
|
import com.red.circle.other.inner.model.cmd.user.InviteStatisticsQryCmd;
|
||||||
|
import com.red.circle.other.inner.model.cmd.user.InviteUserQryCmd;
|
||||||
|
import com.red.circle.other.inner.model.dto.user.PageInviteUserRegisterDTO;
|
||||||
import com.red.circle.other.inner.model.dto.user.UserInviteUserCountDTO;
|
import com.red.circle.other.inner.model.dto.user.UserInviteUserCountDTO;
|
||||||
import java.util.List;
|
|
||||||
import java.util.Map;
|
import java.math.BigDecimal;
|
||||||
import java.util.Set;
|
import java.util.*;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
import java.util.stream.Stream;
|
||||||
|
|
||||||
|
import com.red.circle.other.inner.model.dto.user.UserProfileDTO;
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import org.springframework.util.CollectionUtils;
|
import org.springframework.util.CollectionUtils;
|
||||||
@ -24,6 +36,8 @@ import org.springframework.util.CollectionUtils;
|
|||||||
public class UserInviteUserClientServiceImpl implements UserInviteUserClientService {
|
public class UserInviteUserClientServiceImpl implements UserInviteUserClientService {
|
||||||
|
|
||||||
private final UserInviteUserService userInviteUserService;
|
private final UserInviteUserService userInviteUserService;
|
||||||
|
private final UserProfileClient userProfileClient;
|
||||||
|
private final InviteUserRechargeCommissionService inviteUserRechargeCommissionService;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Map<Long, UserInviteUserCountDTO> mapInviteStatisticsByUserIds(
|
public Map<Long, UserInviteUserCountDTO> mapInviteStatisticsByUserIds(
|
||||||
@ -40,4 +54,61 @@ public class UserInviteUserClientServiceImpl implements UserInviteUserClientServ
|
|||||||
return dbUserInviteList.stream()
|
return dbUserInviteList.stream()
|
||||||
.collect(Collectors.toMap(UserInviteUserCountDTO::getUserId, v -> v));
|
.collect(Collectors.toMap(UserInviteUserCountDTO::getUserId, v -> v));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public PageResult<PageInviteUserRegisterDTO> pageQuery(InviteUserQryCmd query) {
|
||||||
|
// 1. 分页查询 user_invite_user 表
|
||||||
|
PageResult<UserInviteUser> pageResult = userInviteUserService.query()
|
||||||
|
.eq(StringUtils.isNotBlank(query.getSysOrigin()),
|
||||||
|
UserInviteUser::getSysOrigin, query.getSysOrigin())
|
||||||
|
.eq(Objects.nonNull(query.getUserId()),
|
||||||
|
UserInviteUser::getUserId, query.getUserId())
|
||||||
|
.eq(Objects.nonNull(query.getInviteUserId()),
|
||||||
|
UserInviteUser::getInviteUserId, query.getInviteUserId())
|
||||||
|
.ge(Objects.nonNull(query.startTimeToLocalDateTime()),
|
||||||
|
UserInviteUser::getCreateTime, query.startTimeToLocalDateTime())
|
||||||
|
.le(Objects.nonNull(query.endTimeToLocalDateTime()),
|
||||||
|
UserInviteUser::getCreateTime, query.endTimeToLocalDateTime())
|
||||||
|
.orderByDesc(UserInviteUser::getCreateTime)
|
||||||
|
.page(query.getPageQuery());
|
||||||
|
|
||||||
|
// 2. 如果没有数据,直接返回
|
||||||
|
if (CollectionUtils.isEmpty(pageResult.getRecords())) {
|
||||||
|
return PageResult.newPageResult(0);
|
||||||
|
}
|
||||||
|
|
||||||
|
// 3. 收集所有用户ID
|
||||||
|
Set<Long> userIds = Stream.of(
|
||||||
|
pageResult.getRecords().stream()
|
||||||
|
.map(UserInviteUser::getUserId)
|
||||||
|
.filter(Objects::nonNull)
|
||||||
|
.collect(Collectors.toSet()),
|
||||||
|
pageResult.getRecords().stream()
|
||||||
|
.map(UserInviteUser::getInviteUserId)
|
||||||
|
.filter(Objects::nonNull)
|
||||||
|
.collect(Collectors.toSet()))
|
||||||
|
.flatMap(Collection::stream)
|
||||||
|
.collect(Collectors.toSet());
|
||||||
|
|
||||||
|
// 4. 批量查询用户信息
|
||||||
|
Map<Long, UserProfileDTO> userProfileMap = ResponseAssert.requiredSuccess(
|
||||||
|
userProfileClient.mapByUserIds(userIds));
|
||||||
|
|
||||||
|
Map<Long, BigDecimal> commissionMap = inviteUserRechargeCommissionService.query()
|
||||||
|
.in(InviteUserRechargeCommission::getUserId, userIds)
|
||||||
|
.list()
|
||||||
|
.stream().collect(Collectors.toMap(InviteUserRechargeCommission::getUserId, InviteUserRechargeCommission::getCommission, BigDecimal::add));
|
||||||
|
|
||||||
|
// 5. 转换为 DTO 并返回
|
||||||
|
return pageResult.convert(inviteUser -> new PageInviteUserRegisterDTO()
|
||||||
|
.setId(inviteUser.getId())
|
||||||
|
.setUserId(inviteUser.getUserId())
|
||||||
|
.setInviteUserId(inviteUser.getInviteUserId())
|
||||||
|
.setUserProfile(userProfileMap.get(inviteUser.getUserId()))
|
||||||
|
.setBeUserProfile(userProfileMap.get(inviteUser.getInviteUserId()))
|
||||||
|
.setCommission(commissionMap.get(inviteUser.getUserId()))
|
||||||
|
.setCreateTime(inviteUser.getCreateTime())
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user