diff --git a/inside-notices/src/main/java/cn/axzo/msg/center/message/controller/PendingMessageNewController.java b/inside-notices/src/main/java/cn/axzo/msg/center/message/controller/PendingMessageNewController.java index 5745c0d3..6637670c 100644 --- a/inside-notices/src/main/java/cn/axzo/msg/center/message/controller/PendingMessageNewController.java +++ b/inside-notices/src/main/java/cn/axzo/msg/center/message/controller/PendingMessageNewController.java @@ -122,7 +122,7 @@ public class PendingMessageNewController implements PendingMessageClient { } @Override - public CommonResponse getLatestByBizCode(String bizCode) { + public CommonResponse> getLatestByBizCode(PendingMessageByBizCodeRequest bizCode) { return CommonResponse.success(pendingMessageNewService.getLatestByBizCode(bizCode)); } } diff --git a/inside-notices/src/main/java/cn/axzo/msg/center/message/service/PendingMessageNewService.java b/inside-notices/src/main/java/cn/axzo/msg/center/message/service/PendingMessageNewService.java index 7bb75d3e..da878010 100644 --- a/inside-notices/src/main/java/cn/axzo/msg/center/message/service/PendingMessageNewService.java +++ b/inside-notices/src/main/java/cn/axzo/msg/center/message/service/PendingMessageNewService.java @@ -160,5 +160,5 @@ public interface PendingMessageNewService { * @param bizCode * @return */ - PendingMessageSimpleDTO getLatestByBizCode(String bizCode); + List getLatestByBizCode(PendingMessageByBizCodeRequest bizCode); } diff --git a/inside-notices/src/main/java/cn/axzo/msg/center/message/service/impl/PendingMessageNewServiceImpl.java b/inside-notices/src/main/java/cn/axzo/msg/center/message/service/impl/PendingMessageNewServiceImpl.java index 7a03d5c6..3565db71 100644 --- a/inside-notices/src/main/java/cn/axzo/msg/center/message/service/impl/PendingMessageNewServiceImpl.java +++ b/inside-notices/src/main/java/cn/axzo/msg/center/message/service/impl/PendingMessageNewServiceImpl.java @@ -35,6 +35,7 @@ import cn.axzo.msg.center.service.pending.response.PendingMessageSimpleDTO; import cn.axzo.msg.center.service.pending.response.PushPendingMessageDTO; import cn.axzo.msg.center.utils.*; import cn.azxo.framework.common.model.Page; +import cn.hutool.core.bean.BeanUtil; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.metadata.IPage; @@ -45,7 +46,6 @@ import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.apache.commons.collections.CollectionUtils; import org.apache.commons.lang3.StringUtils; -import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Service; import java.time.LocalDate; @@ -426,17 +426,16 @@ public class PendingMessageNewServiceImpl implements PendingMessageNewService { } @Override - public PendingMessageSimpleDTO getLatestByBizCode(String bizCode) { - log.info("getLatestByBizCode param->{}", bizCode); - PendingMessageRecord pendingMessageRecord = pendingMessageRecordDao.lambdaQuery() - .eq(PendingMessageRecord::getBizCode, bizCode) + public List getLatestByBizCode(PendingMessageByBizCodeRequest param) { + log.info("getLatestByBizCode param->{}", JSON.toJSONString(param)); + List pendingMessageRecords = pendingMessageRecordDao.lambdaQuery() + .in(PendingMessageRecord::getBizCode, param.getBizCodes()) .eq(PendingMessageRecord::getIsDelete, TableIsDeleteEnum.NORMAL.value) - .orderByDesc(PendingMessageRecord::getBizCode) - .last("limit 1") - .one(); - PendingMessageSimpleDTO result = new PendingMessageSimpleDTO(); - BeanUtils.copyProperties(pendingMessageRecord, result); - return result; + .orderByDesc(PendingMessageRecord::getId) + .groupBy(PendingMessageRecord::getBizCode) + .list(); + List pendingMessageSimpleDTOS = BeanUtil.copyToList(pendingMessageRecords, PendingMessageSimpleDTO.class); + return pendingMessageSimpleDTOS; } private PendingMessageDTO convert(PendingMessageRecord pendingMessageRecord, List messageTemplates) { diff --git a/msg-center-api/src/main/java/cn/axzo/msg/center/service/pending/client/PendingMessageClient.java b/msg-center-api/src/main/java/cn/axzo/msg/center/service/pending/client/PendingMessageClient.java index 3b0320df..bdf2face 100644 --- a/msg-center-api/src/main/java/cn/axzo/msg/center/service/pending/client/PendingMessageClient.java +++ b/msg-center-api/src/main/java/cn/axzo/msg/center/service/pending/client/PendingMessageClient.java @@ -13,9 +13,7 @@ import cn.azxo.framework.common.model.Page; import org.springframework.cloud.openfeign.FeignClient; import org.springframework.http.MediaType; import org.springframework.stereotype.Component; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.*; import javax.validation.Valid; import java.util.List; @@ -175,9 +173,9 @@ public interface PendingMessageClient { /** * 通过BizCode获取最新代办 * - * @param bizCode + * @param pendingMessageByBizCodeRequest * @return 成功返回 {@code true} 失败返回 {@code false} */ @PostMapping(value = "/pending-message/latest/biz-code", produces = {MediaType.APPLICATION_JSON_VALUE}) - CommonResponse getLatestByBizCode(String bizCode); + CommonResponse> getLatestByBizCode(@RequestBody @Valid PendingMessageByBizCodeRequest pendingMessageByBizCodeRequest); } \ No newline at end of file diff --git a/msg-center-api/src/main/java/cn/axzo/msg/center/service/pending/client/fallback/PendingMessageClientFallback.java b/msg-center-api/src/main/java/cn/axzo/msg/center/service/pending/client/fallback/PendingMessageClientFallback.java index eeccd017..ed1b9ec8 100644 --- a/msg-center-api/src/main/java/cn/axzo/msg/center/service/pending/client/fallback/PendingMessageClientFallback.java +++ b/msg-center-api/src/main/java/cn/axzo/msg/center/service/pending/client/fallback/PendingMessageClientFallback.java @@ -118,7 +118,7 @@ public class PendingMessageClientFallback implements PendingMessageClient { } @Override - public CommonResponse getLatestByBizCode(String param) { + public CommonResponse> getLatestByBizCode(PendingMessageByBizCodeRequest param) { log.error("fall back while getLatestByBizCode pending message update by ID. param:[{}]", param); return CommonResponse.error("fall back while revoking pending message update by ID"); } diff --git a/msg-center-api/src/main/java/cn/axzo/msg/center/service/pending/request/PendingMessageByBizCodeRequest.java b/msg-center-api/src/main/java/cn/axzo/msg/center/service/pending/request/PendingMessageByBizCodeRequest.java new file mode 100644 index 00000000..f6a6c973 --- /dev/null +++ b/msg-center-api/src/main/java/cn/axzo/msg/center/service/pending/request/PendingMessageByBizCodeRequest.java @@ -0,0 +1,26 @@ +package cn.axzo.msg.center.service.pending.request; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import javax.validation.constraints.NotNull; +import java.util.List; + +/** + * @author haiyangjin + * @date 2023/11/16 + */ +@Data +@Builder +@AllArgsConstructor +@NoArgsConstructor +public class PendingMessageByBizCodeRequest { + /** + * bizCodes + */ + @NotNull(message = "bizParam不能为空") + private List bizCodes; + +}