add totalNumberValue for rank

This commit is contained in:
Timi
2026-08-14 18:58:04 +08:00
parent ab4a164680
commit 457e716b38
4 changed files with 174 additions and 130 deletions
@@ -282,13 +282,29 @@ public class GaoEventRecordServiceImplement extends AbstractEntityService<GaoEve
@Override
public PageResult<GaoCustomerEventRankView> pageRankByRange(GaoEventRecordRankPage page) {
TimiException.required(page.getStoreId(), "not found page.storeId");
page.setTodayDateValue(dateValue(Time.now()));
validateRankPage(page);
if (page.getRankType() == GaoEventRecordRankPage.RankType.CONTINUOUS_DAYS) {
page.setTodayDateValue(dateValue(Time.now()));
}
PageResult<GaoCustomerEventRankView> result = new PageResult<>();
result.setTotal(mapper.countRankByRange(page));
result.setList(mapper.selectRankByRange(page));
return result;
}
/// 校验登记数值排行的事件范围
///
/// @param page 排行榜查询请求
private void validateRankPage(GaoEventRecordRankPage page) {
if (page.getRankType() != GaoEventRecordRankPage.RankType.TOTAL_NUMBER_VALUE) {
return;
}
List<String> eventIdList = page.getEventIdList();
TimiException.requiredTrue(eventIdList != null && eventIdList.size() == 1, "按登记数值排行必须选择单个事件");
GaoEvent event = eventService.mapByIdList(eventIdList).get(eventIdList.get(0));
TimiException.requiredTrue(event != null && event.getValueType() == GaoEvent.ValueType.NUMBER, "按登记数值排行只能选择 NUMBER 事件");
}
private void checkEventPermission(GaoEvent event) {
List<String> roleCodeList = eventService.listRoleCode(event.getId());
TimiException.requiredTrue(roleCodeList != null && !roleCodeList.isEmpty(), "登记事件未配置可登记角色");
@@ -29,6 +29,9 @@ public class GaoCustomerEventRankView {
/// 最近连续登记天数
private Long recentContinuousEventDays;
/// 登记数值合计
private Long totalNumberValue;
/// 最后登记时间
private Long latestRegisteredAt;
}
@@ -41,6 +41,8 @@ public class GaoEventRecordRankPage extends BasePage {
/// 按累计登记次数
TOTAL_COUNT,
/// 按最近连续登记天数
CONTINUOUS_DAYS
CONTINUOUS_DAYS,
/// 按登记数值合计
TOTAL_NUMBER_VALUE
}
}