From bb40f347a3638e5b64be4b3f2237b1a77245840e Mon Sep 17 00:00:00 2001 From: Timi Date: Tue, 18 Aug 2026 16:46:30 +0800 Subject: [PATCH 1/7] support consume point --- .../api/modules/gao/entity/GaoPointLedger.java | 2 +- .../implement/GaoPointLedgerServiceImplement.java | 4 ++-- .../implement/GaoPointRuleServiceImplement.java | 9 +++++---- .../implement/GaoPointTriggerServiceImplement.java | 12 ++++++------ 4 files changed, 14 insertions(+), 13 deletions(-) diff --git a/src/main/java/com/imyeyu/api/modules/gao/entity/GaoPointLedger.java b/src/main/java/com/imyeyu/api/modules/gao/entity/GaoPointLedger.java index 1e63444..00ab9ab 100644 --- a/src/main/java/com/imyeyu/api/modules/gao/entity/GaoPointLedger.java +++ b/src/main/java/com/imyeyu/api/modules/gao/entity/GaoPointLedger.java @@ -17,7 +17,7 @@ public class GaoPointLedger extends UUIDEntity { /// 流水变化类型 public enum ChangeType { - /// 登记事件获得积分 + /// 登记事件积分变化 EARN, /// 删除登记记录撤销积分 diff --git a/src/main/java/com/imyeyu/api/modules/gao/service/implement/GaoPointLedgerServiceImplement.java b/src/main/java/com/imyeyu/api/modules/gao/service/implement/GaoPointLedgerServiceImplement.java index 0823059..e5f2098 100644 --- a/src/main/java/com/imyeyu/api/modules/gao/service/implement/GaoPointLedgerServiceImplement.java +++ b/src/main/java/com/imyeyu/api/modules/gao/service/implement/GaoPointLedgerServiceImplement.java @@ -74,7 +74,7 @@ public class GaoPointLedgerServiceImplement extends AbstractEntityService ruleList = ruleService.listActive(record.getStoreId(), record.getEventId(), Time.now()); Long count = null; - long earnedPointValue = 0L; + long pointDeltaTotal = 0L; for (GaoPointRule rule : ruleList) { RuleResolution resolution = resolveRule(record, rule, count); if (resolution == null) { @@ -72,16 +72,16 @@ public class GaoPointTriggerServiceImplement implements GaoPointTriggerService { count = count == null ? count(record) : count; } long pointDelta = resolution.pointDelta(); - if (0 < pointDelta) { + if (pointDelta != 0) { ledgerService.earn(record, rule, pointDelta, resolution.sourcePayload()); - earnedPointValue = Math.addExact(earnedPointValue, pointDelta); + pointDeltaTotal = Math.addExact(pointDeltaTotal, pointDelta); } if (Boolean.TRUE.equals(rule.getExclusive())) { break; } } - record.setEarnedPointValue(earnedPointValue); - eventRecordMapper.updateEarnedPointValue(record.getId(), earnedPointValue); + record.setEarnedPointValue(pointDeltaTotal); + eventRecordMapper.updateEarnedPointValue(record.getId(), pointDeltaTotal); } @Transactional(TimiServerDBConfig.ROLLBACKER) @@ -140,7 +140,7 @@ public class GaoPointTriggerServiceImplement implements GaoPointTriggerService { } permissionChecker.checkAny(ModuleCode.GAO, GaoPermissionCode.POINT_SOURCE_VALUE.getValue()); long pointValue = record.getPointValue(); - TimiException.requiredTrue(0 < pointValue, "pointValue invalid"); + TimiException.requiredTrue(pointValue != 0, "pointValue invalid"); JsonNode condition = rule.getConditionJson(); if (condition != null) { JsonNode min = condition.get("min"); From 17d88fc338275e3d7392757a4103d6e569e625ae Mon Sep 17 00:00:00 2001 From: Timi Date: Tue, 18 Aug 2026 17:26:56 +0800 Subject: [PATCH 2/7] add event value chart --- .../gao/controller/GaoStoreChartController.java | 10 ++++++++++ .../gao/mapper/GaoEventRecordMapper.java | 4 ++++ .../gao/service/GaoStoreChartService.java | 4 ++++ .../GaoStoreChartServiceImplement.java | 7 +++++++ .../GaoEventRecordNumberValueDailyStatView.java | 17 +++++++++++++++++ .../timi-server/gao/GaoEventRecordMapper.xml | 16 ++++++++++++++++ 6 files changed, 58 insertions(+) create mode 100644 src/main/java/com/imyeyu/api/modules/gao/vo/GaoEventRecordNumberValueDailyStatView.java diff --git a/src/main/java/com/imyeyu/api/modules/gao/controller/GaoStoreChartController.java b/src/main/java/com/imyeyu/api/modules/gao/controller/GaoStoreChartController.java index 88a004e..b68c4b0 100644 --- a/src/main/java/com/imyeyu/api/modules/gao/controller/GaoStoreChartController.java +++ b/src/main/java/com/imyeyu/api/modules/gao/controller/GaoStoreChartController.java @@ -7,6 +7,7 @@ import com.imyeyu.api.modules.gao.vo.GaoCustomerDailyStateView; import com.imyeyu.api.modules.gao.vo.GaoCustomerGenderStatView; import com.imyeyu.api.modules.gao.vo.GaoEventRecordCalendarView; import com.imyeyu.api.modules.gao.vo.GaoEventRecordDailyStatView; +import com.imyeyu.api.modules.gao.vo.GaoEventRecordNumberValueDailyStatView; import com.imyeyu.api.modules.gao.vo.GaoStoreChartReq; import com.imyeyu.spring.annotation.AOPLog; import com.imyeyu.spring.annotation.RequestRateLimit; @@ -57,6 +58,15 @@ public class GaoStoreChartController { return service.eventRecordDailyStat(req); } + /// 查询登记事件每日数值合计 + @AOPLog + @RequestRateLimit + @RequireGaoPermission(GaoPermissionCode.STAT_READ) + @PostMapping("/event/record/number-value/daily") + public List eventRecordNumberValueDaily(@RequestBody GaoStoreChartReq req) { + return service.eventRecordNumberValueDailyStat(req); + } + /// 查询登记事件日历记录 @AOPLog @RequestRateLimit diff --git a/src/main/java/com/imyeyu/api/modules/gao/mapper/GaoEventRecordMapper.java b/src/main/java/com/imyeyu/api/modules/gao/mapper/GaoEventRecordMapper.java index 07d79d4..5e7a644 100644 --- a/src/main/java/com/imyeyu/api/modules/gao/mapper/GaoEventRecordMapper.java +++ b/src/main/java/com/imyeyu/api/modules/gao/mapper/GaoEventRecordMapper.java @@ -5,6 +5,7 @@ import com.imyeyu.api.modules.gao.vo.GaoCustomerChartReq; import com.imyeyu.api.modules.gao.vo.GaoCustomerEventRankView; import com.imyeyu.api.modules.gao.vo.GaoEventRecordCalendarView; import com.imyeyu.api.modules.gao.vo.GaoEventRecordDailyStatView; +import com.imyeyu.api.modules.gao.vo.GaoEventRecordNumberValueDailyStatView; import com.imyeyu.api.modules.gao.vo.GaoEventRecordPage; import com.imyeyu.api.modules.gao.vo.GaoEventRecordRankPage; import com.imyeyu.api.modules.gao.vo.GaoStoreChartReq; @@ -88,6 +89,9 @@ public interface GaoEventRecordMapper extends BaseMapper /// @return 每日登记数 List stateDailyByRange(GaoStoreChartReq req); + /// 按时间范围和事件统计每日登记数值合计 + List stateNumberValueDailyByRange(GaoStoreChartReq req); + /// 按时间范围查询登记日历记录 /// /// @param req 门店报表查询请求 diff --git a/src/main/java/com/imyeyu/api/modules/gao/service/GaoStoreChartService.java b/src/main/java/com/imyeyu/api/modules/gao/service/GaoStoreChartService.java index da556d5..cc2e6e1 100644 --- a/src/main/java/com/imyeyu/api/modules/gao/service/GaoStoreChartService.java +++ b/src/main/java/com/imyeyu/api/modules/gao/service/GaoStoreChartService.java @@ -4,6 +4,7 @@ import com.imyeyu.api.modules.gao.vo.GaoCustomerDailyStateView; import com.imyeyu.api.modules.gao.vo.GaoCustomerGenderStatView; import com.imyeyu.api.modules.gao.vo.GaoEventRecordCalendarView; import com.imyeyu.api.modules.gao.vo.GaoEventRecordDailyStatView; +import com.imyeyu.api.modules.gao.vo.GaoEventRecordNumberValueDailyStatView; import com.imyeyu.api.modules.gao.vo.GaoStoreChartReq; import java.util.List; @@ -23,6 +24,9 @@ public interface GaoStoreChartService { /// 查询登记事件每日统计 List eventRecordDailyStat(GaoStoreChartReq req); + /// 查询登记事件每日数值合计 + List eventRecordNumberValueDailyStat(GaoStoreChartReq req); + /// 查询登记事件日历记录 List eventRecordCalendar(GaoStoreChartReq req); } diff --git a/src/main/java/com/imyeyu/api/modules/gao/service/implement/GaoStoreChartServiceImplement.java b/src/main/java/com/imyeyu/api/modules/gao/service/implement/GaoStoreChartServiceImplement.java index 00f02ff..f25e073 100644 --- a/src/main/java/com/imyeyu/api/modules/gao/service/implement/GaoStoreChartServiceImplement.java +++ b/src/main/java/com/imyeyu/api/modules/gao/service/implement/GaoStoreChartServiceImplement.java @@ -8,6 +8,7 @@ import com.imyeyu.api.modules.gao.vo.GaoCustomerGenderStatView; import com.imyeyu.api.modules.gao.vo.GaoCustomerTrendStateReq; import com.imyeyu.api.modules.gao.vo.GaoEventRecordCalendarView; import com.imyeyu.api.modules.gao.vo.GaoEventRecordDailyStatView; +import com.imyeyu.api.modules.gao.vo.GaoEventRecordNumberValueDailyStatView; import com.imyeyu.api.modules.gao.vo.GaoStoreChartReq; import com.imyeyu.java.bean.timi.TimiException; import lombok.RequiredArgsConstructor; @@ -48,6 +49,12 @@ public class GaoStoreChartServiceImplement implements GaoStoreChartService { return eventRecordMapper.stateDailyByRange(req); } + @Override + public List eventRecordNumberValueDailyStat(GaoStoreChartReq req) { + checkRangeReq(req); + return eventRecordMapper.stateNumberValueDailyByRange(req); + } + @Override public List eventRecordCalendar(GaoStoreChartReq req) { checkRangeReq(req); diff --git a/src/main/java/com/imyeyu/api/modules/gao/vo/GaoEventRecordNumberValueDailyStatView.java b/src/main/java/com/imyeyu/api/modules/gao/vo/GaoEventRecordNumberValueDailyStatView.java new file mode 100644 index 0000000..6912627 --- /dev/null +++ b/src/main/java/com/imyeyu/api/modules/gao/vo/GaoEventRecordNumberValueDailyStatView.java @@ -0,0 +1,17 @@ +package com.imyeyu.api.modules.gao.vo; + +import lombok.Data; + +/// 登记事件数值每日统计视图 +@Data +public class GaoEventRecordNumberValueDailyStatView { + + /// 登记事件 ID + private String eventId; + + /// 日期值,格式为 yyyyMMdd + private Integer dateValue; + + /// 当日登记数值合计 + private Long dailyNumberValue; +} diff --git a/src/main/resources/mapper/timi-server/gao/GaoEventRecordMapper.xml b/src/main/resources/mapper/timi-server/gao/GaoEventRecordMapper.xml index 2b9cbdc..c20aca6 100644 --- a/src/main/resources/mapper/timi-server/gao/GaoEventRecordMapper.xml +++ b/src/main/resources/mapper/timi-server/gao/GaoEventRecordMapper.xml @@ -350,6 +350,22 @@ r.`registered_date_value` ASC, r.`event_id` ASC + + SELECT * + FROM gao_point_rule + WHERE deleted_at IS NULL + AND id IN + + #{id} + + + +