bug修改,测试类编写

This commit is contained in:
jieyuu 2024-08-29 13:31:15 +08:00
parent 2859213283
commit 4339d4de03
7 changed files with 18 additions and 11 deletions

View File

@ -30,7 +30,7 @@ public interface CouponRecordMapper extends BaseMapper<CouponRecordDO> {
* 更新优惠券使用记录
*
* @param couponRecordId
* @param state
* @param useState
*/
void updateState(@Param("couponRecordId") Long couponRecordId,@Param("state") String state);
void updateState(@Param("couponRecordId") Long couponRecordId, @Param("useState") String useState);
}

View File

@ -152,9 +152,7 @@ public class CouponRecordServiceImpl extends ServiceImpl<CouponRecordMapper, Cou
@Transactional(rollbackFor = Exception.class, propagation = Propagation.REQUIRED)
public boolean releaseCouponRecord(CouponRecordMessage recordMessage) {
CouponTaskDO taskDO = couponTaskMapper.selectOne(
new QueryWrapper<CouponTaskDO>().eq("id", recordMessage.getTaskId())
);
CouponTaskDO taskDO = couponTaskMapper.selectOne(new QueryWrapper<CouponTaskDO>().eq("id", recordMessage.getTaskId()));
if (taskDO == null) {
log.warn("工作单不存在,消息:{}", recordMessage);
// 不需入队
@ -178,7 +176,7 @@ public class CouponRecordServiceImpl extends ServiceImpl<CouponRecordMapper, Cou
if (ProductOrderStateEnum.PAY.name().equalsIgnoreCase(state)) {
// 已经支付修改task状态为finish
taskDO.setLockState(StockTaskStateEnum.FINISH.name());
couponTaskMapper.update(taskDO, new QueryWrapper<CouponTaskDO>().eq("id", taskDO.getId()));
couponTaskMapper.update(taskDO, new QueryWrapper<CouponTaskDO>().eq("id", recordMessage.getTaskId()));
log.info("订单已经支付,修改库存锁定工单为FINISH状态:{}", recordMessage);
return true;
}
@ -188,7 +186,7 @@ public class CouponRecordServiceImpl extends ServiceImpl<CouponRecordMapper, Cou
taskDO.setLockState(StockTaskStateEnum.CANCEL.name());
// 修改task状态为CANCEL
couponTaskMapper.update(taskDO, new QueryWrapper<CouponTaskDO>().eq("id", taskDO.getId()));
couponTaskMapper.update(taskDO, new QueryWrapper<CouponTaskDO>().eq("id", recordMessage.getTaskId()));
// 恢复优惠券使用记录为NEW
couponRecordMapper.updateState(taskDO.getCouponRecordId(), CouponStateEnum.NEW.name());
return true;

View File

@ -37,7 +37,7 @@
<!-- 更新优惠券状态 -->
<update id="updateState">
update coupon_record
set use_state=#{state}
set use_state=#{useState}
where id = #{couponRecordId}
</update>

View File

@ -2,6 +2,7 @@ package net.jieyuu.biz;
import lombok.extern.slf4j.Slf4j;
import net.jieyuu.CouponApplication;
import net.jieyuu.model.CouponRecordMessage;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.amqp.rabbit.core.RabbitTemplate;
@ -23,4 +24,12 @@ public class DemoApplicationTests {
}
@Test
public void testCouponRecordRelease() {
CouponRecordMessage message = new CouponRecordMessage();
message.setOutTradeNo("123456abc");
message.setTaskId(1l);
rabbitTemplate.convertAndSend("coupon.event.exchange", "coupon.release.delay.routing.key", message);
}
}

View File

@ -18,7 +18,7 @@ public class InterceptorConfig implements WebMvcConfigurer {
//拦截的路径
.addPathPatterns("/api/order/*/**")
//放行的路径
.excludePathPatterns("api/callback/*/**","api/v1/order/*/query_state");
.excludePathPatterns("api/callback/*/**", "/api/order/*/query_state");
WebMvcConfigurer.super.addInterceptors(registry);
}

View File

@ -85,7 +85,7 @@ public class ProductOrderController {
@GetMapping("/query_state")
JsonData queryProductOrderState(@ApiParam("订单号") @RequestParam("out_trade_no") String outTradeNo) {
String state = orderService.queryProductOrderState(outTradeNo);
return StringUtils.isBlank(state) ? JsonData.buildResult(BizCodeEnum.ORDER_CONFIRM_NOT_EXIST) : JsonData.buildSuccess();
return StringUtils.isBlank(state) ? JsonData.buildResult(BizCodeEnum.ORDER_CONFIRM_NOT_EXIST) : JsonData.buildSuccess(state);
}
}

View File

@ -56,7 +56,7 @@ public class ProductOrderServiceImpl extends ServiceImpl<ProductOrderMapper, Pro
@Override
public String queryProductOrderState(String outTradeNo) {
ProductOrderDO productOrderDO = productOrderMapper.selectOne(new QueryWrapper<ProductOrderDO>().eq("out-trade_no", outTradeNo));
ProductOrderDO productOrderDO = productOrderMapper.selectOne(new QueryWrapper<ProductOrderDO>().eq("out_trade_no", outTradeNo));
if (productOrderDO == null) {
return "";
} else {