|
|
@ -5,17 +5,14 @@ import com.alibaba.fastjson.JSONObject; |
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
|
|
import com.bnyer.common.core.domain.VipOrder; |
|
|
import com.bnyer.common.core.domain.VipOrder; |
|
|
import com.bnyer.common.core.enums.EnumPayStatus; |
|
|
import com.bnyer.common.core.enums.EnumPayStatus; |
|
|
import com.bnyer.common.core.enums.ResponseEnum; |
|
|
import com.bnyer.common.core.utils.SpringUtils; |
|
|
import com.bnyer.common.core.exception.ServiceException; |
|
|
|
|
|
import com.bnyer.common.rocketmq.config.RocketMqConstant; |
|
|
import com.bnyer.common.rocketmq.config.RocketMqConstant; |
|
|
import com.bnyer.order.enums.EnumVipOrderStatus; |
|
|
import com.bnyer.order.enums.EnumVipOrderStatus; |
|
|
import com.bnyer.order.mapper.VipOrderMapper; |
|
|
import com.bnyer.order.mapper.VipOrderMapper; |
|
|
|
|
|
import com.bnyer.order.service.VipOrderService; |
|
|
import lombok.extern.slf4j.Slf4j; |
|
|
import lombok.extern.slf4j.Slf4j; |
|
|
import org.apache.rocketmq.client.producer.SendStatus; |
|
|
|
|
|
import org.apache.rocketmq.spring.annotation.RocketMQMessageListener; |
|
|
import org.apache.rocketmq.spring.annotation.RocketMQMessageListener; |
|
|
import org.apache.rocketmq.spring.core.RocketMQListener; |
|
|
import org.apache.rocketmq.spring.core.RocketMQListener; |
|
|
import org.apache.rocketmq.spring.core.RocketMQTemplate; |
|
|
|
|
|
import org.springframework.messaging.support.GenericMessage; |
|
|
|
|
|
import org.springframework.stereotype.Component; |
|
|
import org.springframework.stereotype.Component; |
|
|
|
|
|
|
|
|
import javax.annotation.Resource; |
|
|
import javax.annotation.Resource; |
|
|
@ -35,9 +32,6 @@ public class VipOrderPayNotifyConsumer implements RocketMQListener<String> { |
|
|
@Resource |
|
|
@Resource |
|
|
private VipOrderMapper vipOrderMapper; |
|
|
private VipOrderMapper vipOrderMapper; |
|
|
|
|
|
|
|
|
@Resource |
|
|
|
|
|
private RocketMQTemplate vipRecordMqTemplate; |
|
|
|
|
|
|
|
|
|
|
|
@Override |
|
|
@Override |
|
|
public void onMessage(String message) { |
|
|
public void onMessage(String message) { |
|
|
log.info("收到消息:{}", message); |
|
|
log.info("收到消息:{}", message); |
|
|
@ -49,35 +43,13 @@ public class VipOrderPayNotifyConsumer implements RocketMQListener<String> { |
|
|
log.error("订单不存在,订单id:{}",orderId); |
|
|
log.error("订单不存在,订单id:{}",orderId); |
|
|
return; |
|
|
return; |
|
|
} |
|
|
} |
|
|
|
|
|
//修改订单并添加会员记录
|
|
|
|
|
|
VipOrderService vipOrderService = SpringUtils.getBean(VipOrderService.class); |
|
|
vipOrder.setPayStatus(EnumPayStatus.SUCCESS.getCode()); |
|
|
vipOrder.setPayStatus(EnumPayStatus.SUCCESS.getCode()); |
|
|
vipOrder.setOrderStatus(EnumVipOrderStatus.SUCCESS.getStatus()); |
|
|
vipOrder.setOrderStatus(EnumVipOrderStatus.SUCCESS.getStatus()); |
|
|
vipOrder.setUpdateTime(new Date()); |
|
|
vipOrder.setUpdateTime(new Date()); |
|
|
vipOrder.setPayTime(new Date()); |
|
|
vipOrder.setPayTime(new Date()); |
|
|
vipOrderMapper.updateById(vipOrder); |
|
|
vipOrderService.updateOrderAndAddVipRecord(vipOrder); |
|
|
// TODO: 2023/04/13 发消息到img服务创建vip记录开通会员
|
|
|
|
|
|
String msg = buildVipRecordMsg(vipOrder); |
|
|
|
|
|
SendStatus sendStatus = vipRecordMqTemplate.syncSend(RocketMqConstant.VIP_RECORD_CREATE_TOPIC, new GenericMessage<>(msg)).getSendStatus(); |
|
|
|
|
|
if (!Objects.equals(sendStatus, SendStatus.SEND_OK)) { |
|
|
|
|
|
// 消息发不出去就抛异常
|
|
|
|
|
|
throw new ServiceException(ResponseEnum.SERVER_ERROR); |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
/** |
|
|
|
|
|
* 构建vip记录消息体 |
|
|
|
|
|
* @param vipOrder |
|
|
|
|
|
* @return |
|
|
|
|
|
*/ |
|
|
|
|
|
private String buildVipRecordMsg(VipOrder vipOrder) { |
|
|
|
|
|
JSONObject jsonObject = new JSONObject(); |
|
|
|
|
|
jsonObject.put("orderId",vipOrder.getOrderId()); |
|
|
|
|
|
jsonObject.put("startTime",vipOrder.getStartTime()); |
|
|
|
|
|
jsonObject.put("endTime",vipOrder.getEndTime()); |
|
|
|
|
|
jsonObject.put("vipId",vipOrder.getVipId()); |
|
|
|
|
|
jsonObject.put("vipName",vipOrder.getVipName()); |
|
|
|
|
|
jsonObject.put("vipTypeName",vipOrder.getVipTypeName()); |
|
|
|
|
|
jsonObject.put("phone",vipOrder.getPhone()); |
|
|
|
|
|
jsonObject.put("userId",vipOrder.getUserId()); |
|
|
|
|
|
return JSON.toJSONString(jsonObject); |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
} |
|
|
|