当前位置: 首页 > news >正文

发放优惠券

文章目录

    • 概要
    • 整体架构流程
    • 技术细节
    • 小结

概要

发放优惠券

处于暂停状态,或者待发放状态的优惠券,在优惠券列表中才会出现发放按钮,可以被发放:

需求分析以及接口设计

需要我们选择发放方式使用期限

发放方式分为两种:立刻发放定时发放;使用期限也分两种:固定天数固定时间段。如图:

 

因此,在提交这个表单时,参数包括:

  • 发放(领用)开始时间:如果为空说明是立刻发放,开始时间就是当前时间

  • 发放(领用)结束时间

  • 有效期天数:如果为空说明是固定有效期

  • 使用期限开始时间:如果为空说明是固定天数有效期

  • 使用期限结束时间:如果为空说明是固定天数有效期

最后,肯定要带上优惠券id,我们才知道发放的是哪张券,当然这个可以通过路径占位符传参。

技术细节

1.Controller层

@ApiOperation("发放优惠券接口")
@PutMapping("/{id}/issue")
public void beginIssue(@RequestBody @Valid CouponIssueFormDTO dto) {couponService.beginIssue(dto);
}

2.Service层:


@Transactional
@Override
public void beginIssue(CouponIssueFormDTO dto) {// 1.查询优惠券Coupon coupon = getById(dto.getId());if (coupon == null) {throw new BadRequestException("优惠券不存在!");}// 2.判断优惠券状态,是否是暂停或待发放if(coupon.getStatus() != CouponStatus.DRAFT && coupon.getStatus() != PAUSE){throw new BizIllegalException("优惠券状态错误!");}// 3.判断是否是立刻发放LocalDateTime issueBeginTime = dto.getIssueBeginTime();LocalDateTime now = LocalDateTime.now();boolean isBegin = issueBeginTime == null || !issueBeginTime.isAfter(now);// 4.更新优惠券// 4.1.拷贝属性到POCoupon c = BeanUtils.copyBean(dto, Coupon.class);// 4.2.更新状态if (isBegin) {c.setStatus(ISSUING);c.setIssueBeginTime(now);}else{c.setStatus(UN_ISSUE);}// 4.3.写入数据库updateById(c);// TODO 兑换码生成
}

相关文章:

  • 初窥Java内存模型(JMM)
  • 精益数据分析(24/126):聚焦第一关键指标,驱动创业成功
  • 边界凸台建模与实例
  • PGSql查看表结构以及注释信息
  • NAT穿透
  • 通过API接口在自己的独立站系统上架商品信息。(实战案例)
  • 【Java学习笔记】冒泡排序
  • NEGATIVE LABEL GUIDED OOD DETECTION WITH PRETRAINED VISION-LANGUAGE MODELS
  • WHAT - 前端开发书单推荐
  • 【vue】【element-plus】 el-date-picker使用cell-class-name进行标记,type=year不生效解决方法
  • DeepSeek回答过于笼统,提示词如何优化
  • RK3562/3588 系列之0—NPU基础概念
  • 高防IP+CDN组合:电商大促的“双保险”防护方案
  • 常见网络安全攻击类型深度剖析(二):SQL注入攻击——原理、漏洞利用演示与代码加固方法
  • linux系统问题杂谈
  • 六个能够白嫖学习资料的网站
  • Spring MVC 数据绑定利器:深入理解 @InitBinder
  • 猿人学题库13题—动态css字体加密 记录
  • 深入理解指针 (1)
  • Unity 打包后 无阴影 阴影不显示
  • 广州多条BRT相关线路将停运,全市BRT客运量较高峰时大幅下降
  • 《哪吒之魔童降世》电影版权方诉《仙侠神域》游戏运营方侵权案开庭
  • A股三大股指涨跌互现,工农中三大行股价创新高
  • 百年前的亚裔艺术家与巴黎
  • 股市劝服马斯克
  • 医改经验如何因地制宜再创新?国家卫健委“以例说法”