|
|
#优惠码前台相关接口业务逻辑
|
|
|
|
|
|
|
|
|
###1.订单中查询
|
|
|
promotion.getPromotionCode :查询校验优惠码是否可用
|
|
|
#### 接口逻辑
|
|
|
```json
|
|
|
入参:uid,promotionCode
|
|
|
(1)根据优惠码查询批次号,表:promotion_batchno_code;
|
|
|
(2)根据批次号获取该批次优惠码详情,表:promotion_code ;
|
|
|
(3)判断状态是否已审核,未审核直接抛出异常 ; 审核状态:1
|
|
|
(4)校验优惠码有效期
|
|
|
(5)查询优惠码用户已使用次数 单用户限制 ,判断是否超出使用限制,超出抛异常; 表:user_promotion_code_history
|
|
|
(6)查询优惠码用户已使用次数 优惠码总限制 ,判断是否超出总使用限制,超出抛异常; 表:user_promotion_code_history
|
|
|
(7)校验用户注册来源--优惠码限制用户注册渠道是ios和安卓
|
|
|
(8)用户类型校验--新客老客校验
|
|
|
(9)组装优惠码信息,返回
|
|
|
```
|
|
|
|
|
|
###2.下单添加使用优惠码记录
|
|
|
promotion.addPromotionCodeHistory
|
|
|
#### 接口逻辑
|
|
|
```json
|
|
|
入参:uid,promotionCode,orderCode
|
|
|
(1)根据优惠码查询批次号,表:promotion_batchno_code;
|
|
|
(2)根据批次号获取该批次优惠码详情,表:promotion_code ;
|
|
|
(3)判断状态是否已审核,未审核直接抛出异常 ; 审核状态:1
|
|
|
(4)校验优惠码有效期
|
|
|
(5)查询优惠码用户已使用次数 单用户限制 ,判断是否超出使用限制,超出抛异常; 表:user_promotion_code_history
|
|
|
(6)查询优惠码用户已使用次数 优惠码总限制 ,判断是否超出总使用限制,超出抛异常; 表:user_promotion_code_history
|
|
|
(7)校验用户注册来源--优惠码限制用户注册渠道是ios和安卓
|
|
|
(8)用户类型校验--新客老客校验
|
|
|
(9)组装优惠码信息
|
|
|
(10)redis原子+1,判断是否超过最大使用限制
|
|
|
(11)插入使用记录表user_promotion_code_history
|
|
|
```
|
|
|
|
|
|
###3.取消订单清除优惠码使用记录(软删除)
|
|
|
#### 接口逻辑
|
|
|
```json
|
|
|
入参:uid,orderCode
|
|
|
(1)根据uid和orderCode查user_promotion_code_history表
|
|
|
(2)上述记录不为空时,原子-1更新redis 个人记录,总记录
|
|
|
(3) 更新user_promotion_code_history表
|
|
|
```
|
|
|
|
...
|
...
|
|