更新优惠卷|学习笔记

简介: 快速学习更新优惠卷

开发者学堂课程【RocketMQ 知识精讲与项目实战(第二阶段)更新优惠卷】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址https://developer.aliyun.com/learning/course/703/detail/12419


更新优惠卷

内容介绍:

一、方法介绍

二、接口实现


一、方法介绍

确认订单的第四步:扣减优惠券。

扣减优惠券,就是当用户的订单使用了优惠券的话,将这个优惠券查询出来,并把它的状态设置为使用,然后将时间以及当前的订单id进行添加,所以扣减优惠卷本质上是一个保存操作。

下面是扣减优惠卷的一个方法:

输入:

updateCouponStatus(order),其中 order 是订单对象

下面封装使用优惠券的方法:

TradeCouponcoupon=

couponService.findOne(order.getCoupon在这里,若用户没有优惠卷,那该用户就无法使用,所以要事先判断用户是否有优惠卷,

输入代码:

if(order.getCouponId ( ) !=null);//判断{

TradeCoupon coupon =

couponService.findOne(order.getCouponId());   //对象查询

coupon.setOrderId( order.getOrderId());  //设置当前订单 id

coupon.setIsUsed(Shopcode.SHOP_COUPON_ISUSED.getCode()); //设置优惠卷使用状态

coupon.setUsedTime(new Date());  //设置使用时间

}

image.png

只有 coupounId 不等于空,才有必要继续下面的操作。封装优惠券的对象,并将信息设置好,然后提交到 coupoun-service 这个微服务当中去做更新操作。

首先将 coupon 对象查询出来,查询出来之后,设置当前的订单的 ID,然后设置我们的优惠券的一个使用状态,然后设置当前的使用时间。

这些信息设置完成后,就可以调用 coupon-service 的微服务去更新优惠卷状态。

在这个地方我们去添加一个更新优惠券状态的注释。

然后,输入代码:

Resultresult=

couponService.updateCouponstatus(coupon);//传递对象if(result.getSuccess().equals(ShopCode.SHOP_FAIL.getSuccess()))//  判断状态    {

castException.cast(shopcode.SHoP_COUPON_USE_FAIL );    //抛出异常

}

log.info("订单: "+order.getorderId()+",使用优惠券");   //输出信息

用代码:

couponService.updateCouponstatus(coupon)把 coupon 的对象传递过去。

然后在前面添加 Result result =  来接收返回值。然后判断,如果优惠卷状态等于异常或者错误了。就抛出一个异常,代表当前更新状态失败。如果没有问题,输出一个信息,就是使用优惠券。


二、接口实现

下面创建接口方法,

image.png

点击 Create method’updateCouponstatus 后显示以下页面

image.png

上图就是我们的方法, changeCouponstatus 这个方法是没有用的,需要删除。

updateCouponstatus 就是更新优惠券状态的方法。

TradeCoupon findOne 是根据Id查询优惠券对象的方法。

下面我们来实现接口,根据下图操作:

image.png

点击  Java Class,把这个类放在  impl.CouponServicelmpl 中,然后会显示:

image.png

点击确认,显示以下页面:

image.png

在这里去实现 ICouponService 的接口,先写上注解啊,在注解里接口的 class 也就是我们的服务的名字。

输入代码:

package com. itheima. shop.service.impl;

Import com.alibaba.dubbo.config.annotation.Service;

import com. itheima. api.ICouponService;

import org.springframework.stereotype.Component;

@component

@service(interfaceclass = Icouponservice.class)//注解

publis.siass.op9nsecviseImpl..implements. .Icouponsecvice{}

完整代码如下:

image.png

然后点击 Implement methods:

image.png

然后会显示:

image.png

所以实现了这个接口之后,它让我们把这两个方法进行一个重写。

查询优惠卷 id 方法重写:

输入代码:

@Autowired

private TradecouponMapper couponMapper;

@override

public Tradecoupon findone(Long coupouId) i

if(coupouId==null)   //判断ID是否为空{

castException.cast(Shopcode.SHOP_REQUEST_PARAMETER_VALID); //抛出异常

}

return couponMapper.selectByPrimaryKey(coupourd);

}

首先要做一个判断,如果当前优惠卷的 couponId 为空。那么当前参数非法,如果没有问题,我们在这里注入的 couponMapper。注入进来之后,将这个逐件传递回去。查询出来当前优惠券的对象。

更新优惠券状态重写:

依然要做判断,首先对象跟 ID 不能为空,如果都为空,就告诉他当前参数非法,如果没有问题,要去通过 updateByPrimarykey 的方法去做一个更新。然后返回result。

代码如下:

public Result updateCouponStatus(TradeCoupon coupon) {

if(coupon==null||coupon.getCouponId()==null)//判断

{

castException.cast(Shopcode.SHOP_REQUEST_PARAMETER_VALID);//通知参数非法

couponMapper.updateByPrimaryKey(coupon);//更新

return new Result(ShopCode.SHOP__uccEss.getSuccess(),

shopCode .SHOP_SUCCESS.getMessage());//返回

这是更新优惠卷的服务端,服务端写完之后返回到订单。

相关文章
|
1月前
|
弹性计算 开发者
阿里云服务器优惠政策解读:个人开发者、学生及初创企业最新租赁解读
阿里云2025年最新优惠:新用户38元/年享2核2G轻量服务器;老用户99元/年用ECS;学生领300元代金券免费获取;企业199元/年购2核4G云服务器。配置灵活,续费同价,助力个人开发者、学生及初创企业低成本上云。
406 8
IntelliJ IDEA 自定义控制台输出多颜色格式功能 --- 安装Grep Console插件
IntelliJ IDEA 自定义控制台输出多颜色格式功能 --- 安装Grep Console插件
3184 0
|
8月前
|
数据库 对象存储
2025年 | 4月云大使推广奖励规则
【近期云大使规则升级】①上线老用户返佣规则。②企业云大使提现功能上线。③优化推广奖励限制。④调整用户关联周期。⑤新增沉睡用户返利 。⑥推荐企业认证新用户首购最高奖励45%。
2025年 | 4月云大使推广奖励规则
云大使推广奖励—云气值提现规则和步骤(包含企业/个人)
云大使推广奖励计—云气值是阿里云大使计划中的积分单位,可用于兑换现金和其他权益,100云气等值于1元人民币。个人与企业用户均可参与云大使推广,但提现流程有所不同。个人用户需绑定支付宝并扣税,而企业用户需完善账户信息并绑定对公账户,上传符合要求的发票后方可提现且抵税。更多详情及规则,请访问云大使官网及管理平台获取。
|
Oracle NoSQL 关系型数据库
主流数据库对比:MySQL、PostgreSQL、Oracle和Redis的优缺点分析
主流数据库对比:MySQL、PostgreSQL、Oracle和Redis的优缺点分析
2615 3
|
对象存储 数据库
2025年 | 12月云大使推广奖励规则
云大使推广返利活动,企业新用户下单返佣加码5%,推广最高返佣45%,新老用户都可参与返利活动。
101986 52
|
安全 双11
最新阿里云国际版支付方式以及注册教程和方法
最新阿里云国际版支付方式以及注册教程和方法
|
弹性计算 容灾 定位技术
阿里云服务器地域和可用区关系与选择参考
阿里云服务器的地域既有国内地域,也有国外地域,同一地域往往还有多个可用区可选,那么阿里云服务器的地域和可用区有什么关系,我们应该如何选择呢?本文介绍阿里云地域和可用区的概念、选择指导、两者的关系以及阿里云支持的地域和可用区列表。
1535 1
阿里云服务器地域和可用区关系与选择参考
|
索引 Python
python类型错误(TypeError)
【5月更文挑战第1天】
1433 2