Authored by maelk-liu

优惠码相关前台接口逻辑

  1 +#优惠码前台相关接口业务逻辑
  2 +
  3 +
  4 +###1.订单中查询
  5 + promotion.getPromotionCode :查询校验优惠码是否可用
  6 +#### 接口逻辑
  7 +```json
  8 + 入参:uid,promotionCode
  9 + 1)根据优惠码查询批次号,表:promotion_batchno_code;
  10 + 2)根据批次号获取该批次优惠码详情,表:promotion_code ;
  11 + 3)判断状态是否已审核,未审核直接抛出异常 ; 审核状态:1
  12 + 4)校验优惠码有效期
  13 + 5)查询优惠码用户已使用次数 单用户限制 ,判断是否超出使用限制,超出抛异常; 表:user_promotion_code_history
  14 + 6)查询优惠码用户已使用次数 优惠码总限制 ,判断是否超出总使用限制,超出抛异常; 表:user_promotion_code_history
  15 + 7)校验用户注册来源--优惠码限制用户注册渠道是ios和安卓
  16 + 8)用户类型校验--新客老客校验
  17 + 9)组装优惠码信息,返回
  18 +```
  19 +
  20 +###2.下单添加使用优惠码记录
  21 + promotion.addPromotionCodeHistory
  22 +#### 接口逻辑
  23 +```json
  24 + 入参:uid,promotionCode,orderCode
  25 + 1)根据优惠码查询批次号,表:promotion_batchno_code;
  26 + 2)根据批次号获取该批次优惠码详情,表:promotion_code ;
  27 + 3)判断状态是否已审核,未审核直接抛出异常 ; 审核状态:1
  28 + 4)校验优惠码有效期
  29 + 5)查询优惠码用户已使用次数 单用户限制 ,判断是否超出使用限制,超出抛异常; 表:user_promotion_code_history
  30 + 6)查询优惠码用户已使用次数 优惠码总限制 ,判断是否超出总使用限制,超出抛异常; 表:user_promotion_code_history
  31 + 7)校验用户注册来源--优惠码限制用户注册渠道是ios和安卓
  32 + 8)用户类型校验--新客老客校验
  33 + 9)组装优惠码信息
  34 + 10)redis原子+1,判断是否超过最大使用限制
  35 + 11)插入使用记录表user_promotion_code_history
  36 +```
  37 +
  38 +###3.取消订单清除优惠码使用记录(软删除)
  39 +#### 接口逻辑
  40 +```json
  41 + 入参:uid,orderCode
  42 + 1)根据uid和orderCode查user_promotion_code_history表
  43 + 2)上述记录不为空时,原子-1更新redis 个人记录,总记录
  44 + 3 更新user_promotion_code_history表
  45 +```
  46 +