Compare commits

...

2 Commits

  1. 2
      bnyer-common/bnyer-common-core/src/main/java/com/bnyer/common/core/annotation/LimitRepeatRequest.java
  2. 6
      bnyer-common/bnyer-common-core/src/main/java/com/bnyer/common/core/domain/BaseMqMessage.java
  3. 3
      bnyer-common/bnyer-common-rocketmq/src/main/java/com/bnyer/common/rocketmq/template/RocketMQEnhanceTemplate.java
  4. 2
      bnyer-services/bnyer-img/src/main/resources/com/bnyer/img/mapper/ImgMqMessageRecordMapper.xml
  5. 4
      bnyer-services/bnyer-order/src/main/java/com/bnyer/order/aop/LimitRepeatRequestAspect.java
  6. 1
      bnyer-services/bnyer-order/src/main/java/com/bnyer/order/controller/VipOrderController.java
  7. 2
      bnyer-services/bnyer-order/src/main/resources/com/bnyer/order/mapper/OrderMqMessageRecordMapper.xml
  8. 63
      bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/annotation/LimitRepeatRequest.java
  9. 2
      bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/aop/LimitRepeatRequestAspect.java
  10. 2
      bnyer-services/bnyer-pay/src/main/resources/com/bnyer/pay/mapper/PayMqMessageRecordMapper.xml

2
bnyer-services/bnyer-order/src/main/java/com/bnyer/order/annotation/LimitRepeatRequest.java → bnyer-common/bnyer-common-core/src/main/java/com/bnyer/common/core/annotation/LimitRepeatRequest.java

@ -1,4 +1,4 @@
package com.bnyer.order.annotation;
package com.bnyer.common.core.annotation;
import java.lang.annotation.Documented;
import java.lang.annotation.Retention;

6
bnyer-common/bnyer-common-core/src/main/java/com/bnyer/common/core/domain/BaseMqMessage.java

@ -45,6 +45,12 @@ public class BaseMqMessage {
@TableField(value = "consumer_group_name")
private String consumerGroupName;
/**
* 返回主题
*/
@TableField(value = "return_topic")
private String returnTopic;
/**
* 消息状态
*/

3
bnyer-common/bnyer-common-rocketmq/src/main/java/com/bnyer/common/rocketmq/template/RocketMQEnhanceTemplate.java

@ -163,6 +163,7 @@ public class RocketMQEnhanceTemplate {
* @param <T>
*/
public <T extends BaseMessage> boolean sendTransactionalMsg(String topic, String tag,String arg, T message) {
buildBaseMessage(topic,tag,message);
String destination = buildDestination(topic, tag);
TransactionSendResult sendResult = template.sendMessageInTransaction(destination, MessageBuilder.withPayload(message).build(), arg);
log.info("Send transaction msg result: " + sendResult);
@ -177,7 +178,7 @@ public class RocketMQEnhanceTemplate {
* @param message
* @param <T>
*/
private<T extends BaseMessage> void buildBaseMessage(String topic,String tag,T message){
private <T extends BaseMessage> void buildBaseMessage(String topic,String tag,T message){
String buildTopic = reBuildTopic(topic);
message.setSource(applicationName);
message.setMessageKey(applicationName + "-" + IdUtil.getSnowflakeNextIdStr());

2
bnyer-services/bnyer-img/src/main/resources/com/bnyer/img/mapper/ImgMqMessageRecordMapper.xml

@ -8,6 +8,7 @@
<result column="topic" jdbcType="VARCHAR" property="topic" />
<result column="tag" jdbcType="VARCHAR" property="tag" />
<result column="consumer_group_name" jdbcType="VARCHAR" property="consumerGroupName" />
<result column="return_topic" jdbcType="VARCHAR" property="returnTopic" />
<result column="status" jdbcType="VARCHAR" property="status" />
<result column="err_msg" jdbcType="VARCHAR" property="errMsg" />
<result column="content" jdbcType="VARCHAR" property="content" />
@ -20,6 +21,7 @@
t.topic,
t.tag,
t.consumer_group_name,
t.return_topic,
t.status,
t.err_msg,
t.content,

4
bnyer-services/bnyer-order/src/main/java/com/bnyer/order/aop/LimitRepeatRequestAspect.java

@ -1,4 +1,4 @@
package com.bnyer.pay.aop;
package com.bnyer.order.aop;
import cn.hutool.core.collection.CollUtil;
import com.alibaba.fastjson.JSON;
@ -11,7 +11,7 @@ import com.bnyer.common.core.utils.StringUtils;
import com.bnyer.common.core.vo.UserInfoVo;
import com.bnyer.common.redis.service.RedissonService;
import com.bnyer.common.security.utils.SecurityUtils;
import com.bnyer.order.annotation.LimitRepeatRequest;
import com.bnyer.common.core.annotation.LimitRepeatRequest;
import lombok.extern.slf4j.Slf4j;
import org.aspectj.lang.ProceedingJoinPoint;
import org.aspectj.lang.Signature;

1
bnyer-services/bnyer-order/src/main/java/com/bnyer/order/controller/VipOrderController.java

@ -2,7 +2,6 @@ package com.bnyer.order.controller;
import com.bnyer.common.core.domain.R;
import com.bnyer.common.core.web.controller.BaseController;
import com.bnyer.order.annotation.LimitRepeatRequest;
import com.bnyer.order.bean.dto.AddVipOrderDto;
import com.bnyer.order.bean.query.VipOrderExtQuery;
import com.bnyer.order.bean.query.VipOrderQuery;

2
bnyer-services/bnyer-order/src/main/resources/com/bnyer/order/mapper/OrderMqMessageRecordMapper.xml

@ -8,6 +8,7 @@
<result column="topic" jdbcType="VARCHAR" property="topic" />
<result column="tag" jdbcType="VARCHAR" property="tag" />
<result column="consumer_group_name" jdbcType="VARCHAR" property="consumerGroupName" />
<result column="return_topic" jdbcType="VARCHAR" property="returnTopic" />
<result column="status" jdbcType="VARCHAR" property="status" />
<result column="err_msg" jdbcType="VARCHAR" property="errMsg" />
<result column="content" jdbcType="VARCHAR" property="content" />
@ -20,6 +21,7 @@
t.topic,
t.tag,
t.consumer_group_name,
t.return_topic,
t.status,
t.err_msg,
t.content,

63
bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/annotation/LimitRepeatRequest.java

@ -1,63 +0,0 @@
package com.bnyer.pay.annotation;
import java.lang.annotation.Documented;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
import static java.lang.annotation.ElementType.METHOD;
/**
* @author :WXC
* @Date :2023/05/12
* @description : 防重复提交
*/
@Target({ METHOD})
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface LimitRepeatRequest {
/**
* 限制当前用户同一个api 不能重复提交
*/
String SELF="self";
/**
* 限制所有用户同一个参数不能重复提交如我新增了用户 张三 那么其他人不能再并发情况下重复添加张三
*/
String ALL_USER="all";
/**
* 当前时间内 api 只能请求一次单位秒
* @return
*/
long time() default 5;
/**
* 对部分参数做重复请求限制
* @return
*/
String[] bodyParam() default {};
/**
* 是否对全部参数做重复请求限制
* @return
*/
boolean bodyAllParam() default false;
/**
* 重复请求限制的用户范围
* LimitRepeatRequest.SELF针对当前登录用户
* LimitRepeatRequest.ALL_USER针对所有用户
*
* @return
*/
String userRange() default SELF;
/**
* 错误提示信息
* @return
*/
String message() default "";
}

2
bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/aop/LimitRepeatRequestAspect.java

@ -4,6 +4,7 @@ import cn.hutool.core.collection.CollUtil;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.bnyer.common.core.annotation.LimitRepeatRequest;
import com.bnyer.common.core.enums.ResponseEnum;
import com.bnyer.common.core.exception.ServiceException;
import com.bnyer.common.core.utils.MD5Util;
@ -11,7 +12,6 @@ import com.bnyer.common.core.utils.StringUtils;
import com.bnyer.common.core.vo.UserInfoVo;
import com.bnyer.common.redis.service.RedissonService;
import com.bnyer.common.security.utils.SecurityUtils;
import com.bnyer.pay.annotation.LimitRepeatRequest;
import lombok.extern.slf4j.Slf4j;
import org.aspectj.lang.ProceedingJoinPoint;
import org.aspectj.lang.Signature;

2
bnyer-services/bnyer-pay/src/main/resources/com/bnyer/pay/mapper/PayMqMessageRecordMapper.xml

@ -8,6 +8,7 @@
<result column="topic" jdbcType="VARCHAR" property="topic" />
<result column="tag" jdbcType="VARCHAR" property="tag" />
<result column="consumer_group_name" jdbcType="VARCHAR" property="consumerGroupName" />
<result column="return_topic" jdbcType="VARCHAR" property="returnTopic" />
<result column="status" jdbcType="VARCHAR" property="status" />
<result column="err_msg" jdbcType="VARCHAR" property="errMsg" />
<result column="content" jdbcType="VARCHAR" property="content" />
@ -20,6 +21,7 @@
t.topic,
t.tag,
t.consumer_group_name,
t.return_topic,
t.status,
t.err_msg,
t.content,

Loading…
Cancel
Save