From 3b68e6dd85abe079ab78caf765afc75bf9f700b9 Mon Sep 17 00:00:00 2001 From: Timi Date: Mon, 31 Aug 2026 12:20:51 +0800 Subject: [PATCH] update event status --- .../gao/controller/GaoEventController.java | 20 +++++++++++- .../modules/gao/mapper/GaoEventMapper.java | 8 +++++ .../gao/mapper/GaoEventSQLProvider.java | 32 +++++++++++++++++++ .../modules/gao/service/GaoEventService.java | 8 +++++ .../implement/GaoEventServiceImplement.java | 12 +++++++ 5 files changed, 79 insertions(+), 1 deletion(-) create mode 100644 src/main/java/com/imyeyu/api/modules/gao/mapper/GaoEventSQLProvider.java diff --git a/src/main/java/com/imyeyu/api/modules/gao/controller/GaoEventController.java b/src/main/java/com/imyeyu/api/modules/gao/controller/GaoEventController.java index 0e86a79..8056038 100644 --- a/src/main/java/com/imyeyu/api/modules/gao/controller/GaoEventController.java +++ b/src/main/java/com/imyeyu/api/modules/gao/controller/GaoEventController.java @@ -40,12 +40,30 @@ public class GaoEventController { @PostMapping("/list") public PageResult list(@RequestBody Page page) { TimiException.required(page, "not found page"); + resolveStoreScope(page); + PageResult result = service.pageWithoutDeleted(page); + return attachEventRelations(result); + } + + @AOPLog + @RequestRateLimit + @RequireGaoPermission(GaoPermissionCode.EVENT_CREATE) + @PostMapping("/list/history") + public PageResult listHistory(@RequestBody Page page) { + TimiException.required(page, "not found page"); + resolveStoreScope(page); + return attachEventRelations(service.page(page)); + } + + private void resolveStoreScope(Page page) { if (!storeScopeService.hasGlobalScope()) { GaoEvent example = TimiJava.defaultIfNull(page.getEqualsExample(), new GaoEvent()); example.setStoreId(storeScopeService.resolveStoreId(example.getStoreId())); page.setEqualsExample(example); } - PageResult result = service.page(page); + } + + private PageResult attachEventRelations(PageResult result) { Map> roleMap = service.mapRoleCodeListByEventIdList(result.getList().stream().map(GaoEvent::getId).toList()); for (GaoEvent event : result.getList()) { event.setRoleCodeList(roleMap.get(event.getId())); diff --git a/src/main/java/com/imyeyu/api/modules/gao/mapper/GaoEventMapper.java b/src/main/java/com/imyeyu/api/modules/gao/mapper/GaoEventMapper.java index 259b345..62edb8b 100644 --- a/src/main/java/com/imyeyu/api/modules/gao/mapper/GaoEventMapper.java +++ b/src/main/java/com/imyeyu/api/modules/gao/mapper/GaoEventMapper.java @@ -1,8 +1,10 @@ package com.imyeyu.api.modules.gao.mapper; import com.imyeyu.api.modules.gao.entity.GaoEvent; +import com.imyeyu.spring.bean.Page; import com.imyeyu.spring.mapper.BaseMapper; import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.SelectProvider; import java.util.Collection; import java.util.List; @@ -14,6 +16,12 @@ import java.util.List; /// @since 2026-07-27 15:53 public interface GaoEventMapper extends BaseMapper { + @SelectProvider(type = GaoEventSQLProvider.class, method = "selectPageWithoutDeleted") + List selectPageWithoutDeleted(Page page); + + @SelectProvider(type = GaoEventSQLProvider.class, method = "countPageWithoutDeleted") + long countPageWithoutDeleted(Page page); + List selectByIdList(Collection idList); List selectValidList(@Param("storeId") String storeId, @Param("now") Long now); diff --git a/src/main/java/com/imyeyu/api/modules/gao/mapper/GaoEventSQLProvider.java b/src/main/java/com/imyeyu/api/modules/gao/mapper/GaoEventSQLProvider.java new file mode 100644 index 0000000..6777a3e --- /dev/null +++ b/src/main/java/com/imyeyu/api/modules/gao/mapper/GaoEventSQLProvider.java @@ -0,0 +1,32 @@ +package com.imyeyu.api.modules.gao.mapper; + +import com.imyeyu.api.modules.gao.entity.GaoEvent; +import com.imyeyu.spring.bean.Page; +import com.imyeyu.spring.util.SQLProvider; +import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.builder.annotation.ProviderContext; + +/// 登记事件分页查询 SQL 提供器 +/// +/// @author Codex +public class GaoEventSQLProvider extends SQLProvider { + + /// 分页查询未删除的登记事件 + public String selectPageWithoutDeleted(ProviderContext context, @Param("page") Page page) { + EntityMeta meta = getEntityMeta(context); + return appendWithoutDeleted(buildSelectByPageSQL(meta, meta.getTable(), page, "#{offset}", "#{limit}")); + } + + /// 统计未删除的登记事件 + public String countPageWithoutDeleted(ProviderContext context, @Param("page") Page page) { + EntityMeta meta = getEntityMeta(context); + return appendWithoutDeleted(buildCountByPageSQL(meta, meta.getTable(), page)); + } + + private String appendWithoutDeleted(String sql) { + return sql.replace( + "WHERE 1 = 1", + "WHERE 1 = 1 AND (`status` IS NULL OR `status` <> '%s')".formatted(GaoEvent.Status.DELETED.name()) + ); + } +} diff --git a/src/main/java/com/imyeyu/api/modules/gao/service/GaoEventService.java b/src/main/java/com/imyeyu/api/modules/gao/service/GaoEventService.java index 8e4feb2..cef97d2 100644 --- a/src/main/java/com/imyeyu/api/modules/gao/service/GaoEventService.java +++ b/src/main/java/com/imyeyu/api/modules/gao/service/GaoEventService.java @@ -2,6 +2,8 @@ package com.imyeyu.api.modules.gao.service; import com.imyeyu.api.modules.gao.entity.GaoEvent; import com.imyeyu.api.modules.gao.entity.GaoEventOptionGroup; +import com.imyeyu.spring.bean.Page; +import com.imyeyu.spring.bean.PageResult; import com.imyeyu.spring.service.BaseService; import java.util.Collection; @@ -15,6 +17,12 @@ import java.util.Map; /// @since 2026-07-27 public interface GaoEventService extends BaseService { + /// 分页查询未删除的登记事件 + /// + /// @param page 分页参数 + /// @return 登记事件分页结果 + PageResult pageWithoutDeleted(Page page); + Map mapByIdList(Collection idList); Map> mapRoleCodeListByEventIdList(Collection eventIdList); diff --git a/src/main/java/com/imyeyu/api/modules/gao/service/implement/GaoEventServiceImplement.java b/src/main/java/com/imyeyu/api/modules/gao/service/implement/GaoEventServiceImplement.java index 4bc546a..0e53166 100644 --- a/src/main/java/com/imyeyu/api/modules/gao/service/implement/GaoEventServiceImplement.java +++ b/src/main/java/com/imyeyu/api/modules/gao/service/implement/GaoEventServiceImplement.java @@ -17,6 +17,8 @@ import com.imyeyu.api.modules.system.service.LoggerService; import com.imyeyu.java.TimiJava; import com.imyeyu.java.bean.timi.TimiCode; import com.imyeyu.java.bean.timi.TimiException; +import com.imyeyu.spring.bean.Page; +import com.imyeyu.spring.bean.PageResult; import com.imyeyu.spring.mapper.BaseMapper; import com.imyeyu.spring.service.AbstractEntityService; import com.imyeyu.utils.Time; @@ -61,6 +63,14 @@ public class GaoEventServiceImplement extends AbstractEntityService pageWithoutDeleted(Page page) { + PageResult result = new PageResult<>(); + result.setTotal(mapper.countPageWithoutDeleted(page)); + result.setList(mapper.selectPageWithoutDeleted(page)); + return result; + } + @Transactional(TimiServerDBConfig.ROLLBACKER) @Override public void create(GaoEvent event) { @@ -109,6 +119,7 @@ public class GaoEventServiceImplement extends AbstractEntityService