Skip to content

Commit 3e5fb66

Browse files
committed
feat: 添加 mq 消息查询更新接口
1 parent 675d157 commit 3e5fb66

4 files changed

Lines changed: 162 additions & 0 deletions

File tree

framework/framework_base/src/main/java/com/github/cadecode/uniboot/framework/base/plugin/bean/po/PlgMqMsg.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,10 @@
33
import com.baomidou.mybatisplus.annotation.*;
44
import com.github.cadecode.uniboot.framework.base.plugin.enums.ConsumeStateEnum;
55
import com.github.cadecode.uniboot.framework.base.plugin.enums.SendStateEnum;
6+
import lombok.AllArgsConstructor;
7+
import lombok.Builder;
68
import lombok.Data;
9+
import lombok.NoArgsConstructor;
710

811
import java.util.Date;
912

@@ -14,6 +17,9 @@
1417
* @since 2023/8/19
1518
*/
1619
@Data
20+
@AllArgsConstructor
21+
@NoArgsConstructor
22+
@Builder
1723
@TableName(autoResultMap = true)
1824
public class PlgMqMsg {
1925

Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
package com.github.cadecode.uniboot.framework.base.plugin.bean.vo;
2+
3+
import com.github.cadecode.uniboot.common.core.web.response.PageParams;
4+
import com.github.cadecode.uniboot.framework.base.plugin.enums.ConsumeStateEnum;
5+
import com.github.cadecode.uniboot.framework.base.plugin.enums.SendStateEnum;
6+
import lombok.Data;
7+
import lombok.EqualsAndHashCode;
8+
9+
import javax.validation.constraints.NotNull;
10+
import java.util.Date;
11+
import java.util.List;
12+
13+
/**
14+
* MQ 消息实体 VO
15+
*
16+
* @author Cade Li
17+
* @since 2023/8/19
18+
*/
19+
public class PlgMqMsgVo {
20+
21+
@EqualsAndHashCode(callSuper = true)
22+
@Data
23+
public static class PlgMqMsgPageReqVo extends PageParams {
24+
private Date startCreateTime;
25+
private Date endCreateTime;
26+
private String bizType;
27+
private List<SendStateEnum> sendStateList;
28+
}
29+
30+
@Data
31+
public static class PlgMqMsgPageResVo {
32+
private String id;
33+
private String bizType;
34+
private String bizKey;
35+
private String exchange;
36+
private String routingKey;
37+
private String message;
38+
private SendStateEnum sendState;
39+
private ConsumeStateEnum consumeState;
40+
private Date nextRetryTime;
41+
private String cause;
42+
private Integer leftRetryTimes;
43+
private Integer maxRetryTimes;
44+
private Long backoffInitInterval;
45+
private Double backoffMultiplier;
46+
private Long backoffMaxInterval;
47+
private Date createTime;
48+
private Date updateTime;
49+
private String updateUser;
50+
}
51+
52+
@Data
53+
public static class PlgMqMsgUpdateReqVo {
54+
@NotNull
55+
private String id;
56+
private SendStateEnum sendState;
57+
private Integer leftRetryTimes;
58+
}
59+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,73 @@
1+
package com.github.cadecode.uniboot.framework.base.plugin.controller;
2+
3+
import cn.hutool.core.util.ObjUtil;
4+
import com.github.cadecode.uniboot.common.core.web.response.PageResult;
5+
import com.github.cadecode.uniboot.framework.base.annotation.ApiFormat;
6+
import com.github.cadecode.uniboot.framework.base.plugin.bean.po.PlgMqMsg;
7+
import com.github.cadecode.uniboot.framework.base.plugin.bean.vo.PlgMqMsgVo.PlgMqMsgPageReqVo;
8+
import com.github.cadecode.uniboot.framework.base.plugin.bean.vo.PlgMqMsgVo.PlgMqMsgPageResVo;
9+
import com.github.cadecode.uniboot.framework.base.plugin.bean.vo.PlgMqMsgVo.PlgMqMsgUpdateReqVo;
10+
import com.github.cadecode.uniboot.framework.base.plugin.convert.PlgMqMsgConvert;
11+
import com.github.cadecode.uniboot.framework.base.plugin.service.PlgMqMsgService;
12+
import com.github.pagehelper.PageHelper;
13+
import com.github.pagehelper.PageInfo;
14+
import io.swagger.annotations.Api;
15+
import io.swagger.annotations.ApiOperation;
16+
import lombok.RequiredArgsConstructor;
17+
import lombok.extern.slf4j.Slf4j;
18+
import org.springframework.validation.annotation.Validated;
19+
import org.springframework.web.bind.annotation.PostMapping;
20+
import org.springframework.web.bind.annotation.RequestBody;
21+
import org.springframework.web.bind.annotation.RequestMapping;
22+
import org.springframework.web.bind.annotation.RestController;
23+
24+
import javax.validation.Valid;
25+
import javax.validation.constraints.NotEmpty;
26+
import java.util.List;
27+
28+
/**
29+
* MQ 消息管理
30+
*
31+
* @author Cade Li
32+
* @since 2023/8/19
33+
*/
34+
@ApiFormat
35+
@Slf4j
36+
@RequiredArgsConstructor
37+
@Api(tags = "MQ 管理")
38+
@RequestMapping("plugin/mq_msg")
39+
@RestController
40+
@Validated
41+
public class PlgMqMsgController {
42+
43+
private final PlgMqMsgService mqMsgService;
44+
45+
@ApiOperation("查询列表")
46+
@PostMapping("page")
47+
public PageResult<PlgMqMsgPageResVo> page(@RequestBody @Valid PlgMqMsgPageReqVo reqVo) {
48+
PageInfo<PlgMqMsg> pageInfo = PageHelper.startPage(reqVo.getPageNumber(), reqVo.getPageSize())
49+
.doSelectPageInfo(() -> mqMsgService.lambdaQuery()
50+
.ge(ObjUtil.isNotEmpty(reqVo.getStartCreateTime()), PlgMqMsg::getCreateTime, reqVo.getStartCreateTime())
51+
.le(ObjUtil.isNotEmpty(reqVo.getEndCreateTime()), PlgMqMsg::getCreateTime, reqVo.getEndCreateTime())
52+
.eq(ObjUtil.isNotEmpty(reqVo.getBizType()), PlgMqMsg::getBizType, reqVo.getBizType())
53+
.in(ObjUtil.isNotEmpty(reqVo.getSendStateList()), PlgMqMsg::getSendState, reqVo.getSendStateList())
54+
.orderByDesc(PlgMqMsg::getCreateTime)
55+
.list());
56+
List<PlgMqMsgPageResVo> voList = PlgMqMsgConvert.INSTANCE.poToPageResVo(pageInfo.getList());
57+
return new PageResult<>((int) pageInfo.getTotal(), voList);
58+
}
59+
60+
@ApiOperation("更新")
61+
@PostMapping("update")
62+
public boolean update(@RequestBody @Valid PlgMqMsgUpdateReqVo reqVo) {
63+
PlgMqMsg po = PlgMqMsgConvert.INSTANCE.voToPo(reqVo);
64+
return mqMsgService.updateById(po);
65+
}
66+
67+
@ApiOperation("查询-byIdList")
68+
@PostMapping("list_by_id_list")
69+
public List<PlgMqMsgPageResVo> listByIdList(@RequestBody @NotEmpty List<String> idList) {
70+
List<PlgMqMsg> poList = mqMsgService.listByIds(idList);
71+
return PlgMqMsgConvert.INSTANCE.poToPageResVo(poList);
72+
}
73+
}

framework/framework_base/src/main/java/com/github/cadecode/uniboot/framework/base/plugin/convert/PlgMqMsgConvert.java

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,14 @@
44
import com.github.cadecode.uniboot.common.plugin.mq.model.BaseTxMsg;
55
import com.github.cadecode.uniboot.common.plugin.mq.model.TxMsg;
66
import com.github.cadecode.uniboot.framework.base.plugin.bean.po.PlgMqMsg;
7+
import com.github.cadecode.uniboot.framework.base.plugin.bean.vo.PlgMqMsgVo.PlgMqMsgPageResVo;
8+
import com.github.cadecode.uniboot.framework.base.plugin.bean.vo.PlgMqMsgVo.PlgMqMsgUpdateReqVo;
79
import org.mapstruct.Mapper;
810
import org.mapstruct.Mapping;
911
import org.mapstruct.factory.Mappers;
1012

13+
import java.util.List;
14+
1115
/**
1216
* PlgMqMsg Bean Convert
1317
*
@@ -33,4 +37,24 @@ public interface PlgMqMsgConvert {
3337

3438
MsgOption poToMsgOption(PlgMqMsg po);
3539

40+
PlgMqMsgPageResVo poToPageResVo(PlgMqMsg po);
41+
42+
List<PlgMqMsgPageResVo> poToPageResVo(List<PlgMqMsg> poList);
43+
44+
@Mapping(target = "updateUser", ignore = true)
45+
@Mapping(target = "updateTime", ignore = true)
46+
@Mapping(target = "routingKey", ignore = true)
47+
@Mapping(target = "nextRetryTime", ignore = true)
48+
@Mapping(target = "message", ignore = true)
49+
@Mapping(target = "maxRetryTimes", ignore = true)
50+
@Mapping(target = "exchange", ignore = true)
51+
@Mapping(target = "createTime", ignore = true)
52+
@Mapping(target = "consumeState", ignore = true)
53+
@Mapping(target = "cause", ignore = true)
54+
@Mapping(target = "bizType", ignore = true)
55+
@Mapping(target = "bizKey", ignore = true)
56+
@Mapping(target = "backoffMultiplier", ignore = true)
57+
@Mapping(target = "backoffMaxInterval", ignore = true)
58+
@Mapping(target = "backoffInitInterval", ignore = true)
59+
PlgMqMsg voToPo(PlgMqMsgUpdateReqVo reqVo);
3660
}

0 commit comments

Comments
 (0)