diff --git a/rc-service/rc-service-other/other-adapter/src/main/java/com/red/circle/other/adapter/app/team/TeamRestController.java b/rc-service/rc-service-other/other-adapter/src/main/java/com/red/circle/other/adapter/app/team/TeamRestController.java index 8fa937a4..2aab2eba 100644 --- a/rc-service/rc-service-other/other-adapter/src/main/java/com/red/circle/other/adapter/app/team/TeamRestController.java +++ b/rc-service/rc-service-other/other-adapter/src/main/java/com/red/circle/other/adapter/app/team/TeamRestController.java @@ -418,6 +418,15 @@ public class TeamRestController extends BaseController { return teamService.listMemberWorkStatistics(cmd); } + /** + * 成员当天目标 + */ + @GetMapping("/member/work/statistics-now") + public AnchorWorkStatisticsCO nowMemberWorkStatistics( + @Validated DateTypeQryCmd cmd) { + return teamService.nowMemberWorkStatistics(cmd); + } + /** * 检查主播身份. * diff --git a/rc-service/rc-service-other/other-application/src/main/java/com/red/circle/other/app/command/team/query/TeamHistoryWorkCountQryExe.java b/rc-service/rc-service-other/other-application/src/main/java/com/red/circle/other/app/command/team/query/TeamHistoryWorkCountQryExe.java index 810d5520..24bf83ae 100644 --- a/rc-service/rc-service-other/other-application/src/main/java/com/red/circle/other/app/command/team/query/TeamHistoryWorkCountQryExe.java +++ b/rc-service/rc-service-other/other-application/src/main/java/com/red/circle/other/app/command/team/query/TeamHistoryWorkCountQryExe.java @@ -15,6 +15,8 @@ import java.util.List; import java.util.Map; import java.util.Objects; import java.util.stream.Collectors; + +import com.red.circle.tool.core.date.ZonedDateTimeAsiaRiyadhUtils; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Component; @@ -40,7 +42,7 @@ public class TeamHistoryWorkCountQryExe { } List teamMemberTargets = teamMemberTargetService.listMemberTarget( - teamMember.getTeamId(), teamMember.getMemberId()); + teamMember.getTeamId(), teamMember.getMemberId(), null); if (Objects.isNull(teamMemberTargets)) { return Lists.newArrayList(); @@ -53,6 +55,36 @@ public class TeamHistoryWorkCountQryExe { return toMonth(teamMemberTargets); } + public AnchorWorkStatisticsCO executeNow(DateTypeQryCmd cmd) { + + TeamMember teamMember = teamMemberService.getByMemberId(cmd.getMemberId()); + + if (Objects.isNull(teamMember)) { + return null; + } + + List teamMemberTargets = teamMemberTargetService.listMemberTarget( + teamMember.getTeamId(), teamMember.getMemberId(), ZonedDateTimeAsiaRiyadhUtils.nowYearMonthToInt()); + + if (CollectionUtils.isEmpty(teamMemberTargets)) { + return null; + } + + Integer i = ZonedDateTimeAsiaRiyadhUtils.nowDateToInt(); + return teamMemberTargets.get(0).getDailyTargets().stream() + .filter(Objects::nonNull) + .filter(e -> Objects.equals(e.getDateNumber(), ZonedDateTimeAsiaRiyadhUtils.nowDateToInt())) + .map(dailyTarget -> new AnchorWorkStatisticsCO() + .setId(teamMemberTargets.get(0).getTimeId()) + .setOwnTime(dailyTarget.getOwnOnlineTime()) + .setOtherTime(dailyTarget.getOtherOnlineTime()) + .setAcceptGiftValue(dailyTarget.getAcceptGiftValue()) + .setTitle(Objects.toString(dailyTarget.getDateNumber())) + .setCreateTime(dailyTarget.getCreateTime())) + .findFirst().orElse(null); + + } + private List toMonth(List teamMemberTargets) { Map teamBillCycleMap = teamBillCycleService.mapByBillIds( @@ -96,7 +128,7 @@ public class TeamHistoryWorkCountQryExe { return target.getDailyTargets().stream() .map(dailyTarget -> new AnchorWorkStatisticsCO() .setId(target.getTimeId()) - .setOtherTime(dailyTarget.getOwnOnlineTime()) + .setOwnTime(dailyTarget.getOwnOnlineTime()) .setOtherTime(dailyTarget.getOtherOnlineTime()) .setAcceptGiftValue(dailyTarget.getAcceptGiftValue()) .setTitle(Objects.toString(dailyTarget.getDateNumber())) diff --git a/rc-service/rc-service-other/other-application/src/main/java/com/red/circle/other/app/service/team/TeamServiceImpl.java b/rc-service/rc-service-other/other-application/src/main/java/com/red/circle/other/app/service/team/TeamServiceImpl.java index c1ba5cac..a1cfc28d 100644 --- a/rc-service/rc-service-other/other-application/src/main/java/com/red/circle/other/app/service/team/TeamServiceImpl.java +++ b/rc-service/rc-service-other/other-application/src/main/java/com/red/circle/other/app/service/team/TeamServiceImpl.java @@ -255,6 +255,11 @@ public class TeamServiceImpl implements TeamService { return teamAppMemberWorkCountQryExe.execute(cmd); } + @Override + public AnchorWorkStatisticsCO nowMemberWorkStatistics(DateTypeQryCmd cmd) { + return teamAppMemberWorkCountQryExe.executeNow(cmd); + } + @Override public boolean checkAnchor(AppExtCommand cmd) { return teamMemberExistsQryExe.execute(cmd); diff --git a/rc-service/rc-service-other/other-client/src/main/java/com/red/circle/other/app/service/team/TeamService.java b/rc-service/rc-service-other/other-client/src/main/java/com/red/circle/other/app/service/team/TeamService.java index aa2b761a..07ea1dcc 100644 --- a/rc-service/rc-service-other/other-client/src/main/java/com/red/circle/other/app/service/team/TeamService.java +++ b/rc-service/rc-service-other/other-client/src/main/java/com/red/circle/other/app/service/team/TeamService.java @@ -178,7 +178,13 @@ public interface TeamService { */ List listMemberWorkStatistics(DateTypeQryCmd cmd); - /** + /** + * 我的当天情况统计. + */ + AnchorWorkStatisticsCO nowMemberWorkStatistics(DateTypeQryCmd cmd); + + + /** * 是否是主播身份. * * @return true 是, false 不是 diff --git a/rc-service/rc-service-other/other-infrastructure/src/main/java/com/red/circle/other/infra/database/mongo/service/team/team/TeamMemberTargetService.java b/rc-service/rc-service-other/other-infrastructure/src/main/java/com/red/circle/other/infra/database/mongo/service/team/team/TeamMemberTargetService.java index ce44fc23..0621b04e 100644 --- a/rc-service/rc-service-other/other-infrastructure/src/main/java/com/red/circle/other/infra/database/mongo/service/team/team/TeamMemberTargetService.java +++ b/rc-service/rc-service-other/other-infrastructure/src/main/java/com/red/circle/other/infra/database/mongo/service/team/team/TeamMemberTargetService.java @@ -88,7 +88,7 @@ public interface TeamMemberTargetService { /** * 获取用户账单信息. */ - List listMemberTarget(Long teamId, Long memberId); + List listMemberTarget(Long teamId, Long memberId, Integer billBelong); /** * 获取工作情况. diff --git a/rc-service/rc-service-other/other-infrastructure/src/main/java/com/red/circle/other/infra/database/mongo/service/team/team/impl/TeamMemberTargetServiceImpl.java b/rc-service/rc-service-other/other-infrastructure/src/main/java/com/red/circle/other/infra/database/mongo/service/team/team/impl/TeamMemberTargetServiceImpl.java index 0c758628..b0001146 100644 --- a/rc-service/rc-service-other/other-infrastructure/src/main/java/com/red/circle/other/infra/database/mongo/service/team/team/impl/TeamMemberTargetServiceImpl.java +++ b/rc-service/rc-service-other/other-infrastructure/src/main/java/com/red/circle/other/infra/database/mongo/service/team/team/impl/TeamMemberTargetServiceImpl.java @@ -246,12 +246,17 @@ public class TeamMemberTargetServiceImpl implements TeamMemberTargetService { } @Override - public List listMemberTarget(Long teamId, Long memberId) { - return mongoTemplate.find(Query.query(Criteria.where("userId").is(memberId) - .and("history").is(Boolean.FALSE) - .and("teamId").is(teamId)) - .with(Sort.by(Order.desc("teamBillCycleId"))), - TeamMemberTarget.class); + public List listMemberTarget(Long teamId, Long memberId, Integer billBelong) { + Criteria criteria = Criteria.where("userId").is(memberId) + .and("history").is(Boolean.FALSE) + .and("teamId").is(teamId); + + if (billBelong != null) { + criteria.and("billBelong").is(billBelong); + } + + return mongoTemplate.find(Query.query(criteria) + .with(Sort.by(Order.desc("teamBillCycleId"))), TeamMemberTarget.class); } @Override