新增优惠券

020优惠券数据工程--简单特征提取--新增用户领券数量特征 这段代码使用 pandas 库的 pivot_table() 函数,将数据集 cff 按照指定的键(keys)进行分组,并计算每组中 Coupon_id 列的长度(即该组中 Coupon_id 列的非缺失值数量)。’ 也可以实现添加前缀的效果。不过,使用 join(keys) 的方式可以更加灵活,可以在需要使用多个键进行聚合的情况下快速修改代码,而不需要手动更改前缀字符串。可以看到,使用 join(keys) 的方式可以快速修改代码,实现对多个键进行聚合,并添加指定前缀的功能。 阅读详情

文章目录

概要

接口分析

一个基本的新增接口,按照Restful风格设计即可,关键是请求参数。之前表分析时已经详细介绍过这个页面及其中的字段,这里不再赘述。

需要特别注意的是,如果优惠券限定了使用范围,则需要保存限定的课程分类。而这些信息不再coupon表,而是一张中间关系表:coupon_scope

需求分析以及接口设计

技术细节

1.Controller层

package com.tianji.promotion.controller;

import com.tianji.promotion.domain.dto.CouponFormDTO;
import com.tianji.promotion.service.ICouponService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import lombok.RequiredArgsConstructor;
import org.springframework.web.bind.annotation.*;

import javax.validation.Valid;
import java.util.List;

@RestController
@RequiredArgsConstructor
@RequestMapping("/coupons")
@Api(tags = "优惠券相关接口")
public class CouponController {

    private final ICouponService couponService;

    @ApiOperation("新增优惠券接口")
    @PostMapping
    public void saveCoupon(@RequestBody @Valid CouponFormDTO dto){
        couponService.saveCoupon(dto);
    }
}

2.Service层:

package com.tianji.promotion.service.impl;

import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.tianji.promotion.mapper.CouponMapper;
import com.tianji.promotion.service.ICouponScopeService;
import com.tianji.promotion.service.ICouponService;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import java.util.*;
import java.util.stream.Collectors;

@Service
@RequiredArgsConstructor
public class CouponServiceImpl extends ServiceImpl<CouponMapper, Coupon> implements ICouponService {

    private final ICouponScopeService scopeService;

    @Override
    @Transactional
    public void saveCoupon(CouponFormDTO dto) {
        // 1.保存优惠券
        // 1.1.转PO
        Coupon coupon = BeanUtils.copyBean(dto, Coupon.class);
        // 1.2.保存
        save(coupon);

        if (!dto.getSpecific()) {
            // 没有范围限定
            return;
        }
        Long couponId = coupon.getId();
        // 2.保存限定范围
        List<Long> scopes = dto.getScopes();
        if (CollUtils.isEmpty(scopes)) {
            throw new BadRequestException("限定范围不能为空");
        }
        // 2.1.转换PO
        List<CouponScope> list = scopes.stream()
                .map(bizId -> new CouponScope().setBizId(bizId).setCouponId(couponId))
                .collect(Collectors.toList());
        // 2.2.保存
        scopeService.saveBatch(list);
    }
}

3.Mapper层

效果展示

优惠券系统:优惠券分发微服务功能编码实现 保存无效的优惠券数据到缓存中: package com.zcw.coupon.service.impl; import com.alibaba.fastjson.JSON; import com.zcw.coupon.constant.Constant; import com.zcw.coupon.constant.CouponStatus; import com.zcw.coupon.enti... 阅读详情

相关推荐

现场总线课程设计-基于modbus协议使用QT实现主从站控制通信

【平台:QT】 【协议:modbus(注:由于要求,需要自己来实现modbus库,而非直接调用已有的库)】 【由于复制粘贴,时间原因可能格式有误,如需要具体工程文件以及报告文件请私信博主】 1、 大作业任务: (1)使用附件中工具软件体验MODBUS主从站数据传输过程(可在主从站模拟工具里面观察各功能码对应数据帧内容并对其进行分析) (2)使用串口调试助手,手工发出MODBUS主、从站该发出的数据,并观察对方发出的数据 (3)实现MODBUS主、从站功能,描述实现过程(语言不限于使用VC

weixin_44469597的博客 4065

ecstore 后台挂件新增优惠券选择列表

优惠券:\custom\b2c\controller\admin\sales\coupon.php 新增starbuy_weight_radio方法 function starbuy_weight_radio() { $_POST['filter'] = json_decode($_POST['filter'],true); ...

daybab8105的博客 205

深入解析BLheli电调固件与Dshot通讯协议:从原理到实践

本文深入解析了无人机动力系统的核心——BLheli电调固件与Dshot通讯协议。详细阐述了BLheli固件从经典版到BLheli_32的演进及其功能特性,并重点剖析了Dshot数字协议如何通过数据包和校验码实现更快、更准、更可靠的电机控制。文章还涵盖了双向Dshot遥测、实战配置与调参指南,帮助玩家充分释放无人机性能。

weixin_28273593的博客 433

Unifi Voucher Site项目API新增优惠券创建与邮件发送功能

Unifi Voucher Site项目API新增优惠券创建与邮件发送功能 Unifi Voucher Site项目近期发布的v5版本中,新增了一个重要的API功能:通过接口直接创建优惠券并通过邮件发送。这一功能极大地简化了优惠券管理流程,为开发者提供了更灵活的集成方式。 功能概述 该API允许开发者通过编程方式完成以下操作: 动态创建优惠券 自动将优惠券通过电子邮件发送给指定用户 完全集成到现...

gitblog_07981的博客 526

成分数据的闭合效应对地球化学数据的影响及其解决方案

封闭效应 (Closure Effect),也称为常数和效应 (Constant Sum Effect),是地球化学数据分析中一个需要特别注意的统计现象。它的产生是由于我们通常使用成分数据 (Compositional Data)百分比 (%)百万分率 (ppm)由于这些数据表示的是各组分占总体的比例,它们的总和必然是一个常数 (例如 100% 或 1,000,000 ppm)。这意味着每个元素的含量不是独立的,而是与其他元素的含量相互制约。改变其中一个元素的含量必然会影响其他元素的相对比例。

qq_59349063的博客 1533

ROS教程(四):RVIZ使用教程(详细图文)

前言 根据前面的教程已经学会了创建功能包,那么本篇文章主要内容则是通过节点来发布数据至RVIZ

Leslie的博客 17万+

ICEPOS 开源收银系统新增优惠券核销功能

ICEPOS 开源收银系统深受各位码农和用户喜爱,你们的支持是我不断努力和更新软件的动力!Github 上面同样也是有开源代码,包括前后端源码都和 Gitee 是一样的!* 请支持正版软件,不要从第三方软件下载平台下载本开源软件,注意保护数据和代码安全。POS 前端源码(C#)+Thinkphp 后端源码 (PHP) 都是向大家免费和免授权开放下载!

xmosnew的博客 1001

基于深度学习的茶叶等级检测识别系统:YOLOv8 + UI界面 + 数据集完整实现

随着深度学习技术的不断进步,基于计算机视觉的茶叶等级检测系统可以大大提高检测效率,提供客观一致的评估标准。本系统将利用YOLOv8进行茶叶等级的检测与识别,通过图形用户界面(UI)实现与用户的交互,提供茶叶等级分类的实时反馈。本文将详细介绍如何使用YOLOv8结合UI界面,建立一个完整的茶叶等级检测与识别系统,包括数据集的准备、模型的训练、UI的设计及完整的代码实现。本系统的目标是通过深度学习技术,结合YOLOv8模型和图形用户界面(UI),实现对茶叶等级的自动化检测与识别。

YOLO 972

新增地址,优惠券,订单板块并收尾

地址板块:包括地址展示,新增地址,编辑地址 优惠券板块:兑换码兑换优惠券,选择商品支付的时候可以选择优惠券 订单板块:

worthyyyou的博客 223

【即插即用模块】注意力篇 | TGRS 2025 | CDFIM:通道+空间多尺度注意力,双模态特征融合增强,性能翻倍!

C2DFF-Net提出了一种轻量级跨模态特征融合模块CDFIM,通过模态差异感知和多尺度深度滤波增强双模态互补信息。该模块采用通道-空间注意力协同机制,以极低计算成本(仅增加0.26M参数)提升多模态目标检测性能,在三个遥感数据集上平均提升mAP约1.7%。适用于无人机等边缘设备的实时检测任务,为跨模态融合提供高效解决方案。

主要更新底层视觉(去噪、超分等)相关的科研内容,形式为【论文精读】+【论文复现】 623

【用unity实现100个游戏之7】实现一个类《杀戮尖塔》的卡牌回合制游戏(附项目源码)

【用unity实现100个游戏之7】实现一个类《杀戮尖塔》的卡牌回合制游戏(附项目源码)

向宇的博客,专注php/web全栈 unity游戏开发,欢迎大家评论纠错 1万+

【优快云开发云】v1.25 版本,云容器支持外网访问,Kafka新增监控功能,TiDB支持使用优惠券

Kafka新增监控功能,TiDB支持使用优惠券,新增数据库、中间件等操作日志。

csdn_dev_cloud的博客 751

【毕设全程指导】基于YOLOv8的包装商品检测与可视化系统(SKU110K实战)

本文介绍了一个基于YOLOv8的包装商品检测与可视化系统毕业设计方案。项目采用SKU110K数据集,通过CSV转TXT格式转换适配YOLO模型训练,包含详细的环境搭建、模型配置和训练流程。系统实现了包装商品的自动化检测,并开发了Tkinter可视化界面进行交互式检测展示。该方案结合产业应用需求与技术深度,既具备实用价值,又能充分展示学生的技术能力,适合作为计算机视觉相关专业的毕业设计选题。整个项目从数据准备到界面开发完整覆盖,帮助学生系统掌握目标检测项目的完整实现流程。

LXY_LOVE36的博客 145

三勾点餐|新增赠送优惠券功能

优惠券作为一种常见的引流拓客手段,被越来越多的企业用于拓展客户群体和增加销售额。赠送优惠券,不仅可以吸引新客户,还能够促进老客户的回头率,是一种非常有效的营销手段。1.在优惠券管理中需要增加一条优惠券,并特别注意设置领取中心优惠券不显示,其它正常设置普通优惠券即可。通过赠送优惠券进行引流,可以有效地提高客户黏性,并吸引更多的潜在客户,从而促进销售额的增长。2.通过后台发放优惠券或者与其他活动(例如生日有礼、新客有礼、邀请有礼等相关联)演示地址及操作手册查看:gitee搜索三勾软件。

Javashop_jjj的博客 444

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

优惠券新增编辑代码优化之策略模式应用

文章目录概要技术名词解释原来代码片小结 概要 优化一次屎山代码 技术名词解释 策略模式 原来代码片 /** * 添加 可添加多条 * 根据当前登录用户和店铺id,判断该用户是否用新增该店铺优惠券的权限 * 根据不同的优惠方式,进行不同的必填校验 * * @param couponInfoEntity */ @ApiOperation(value = "优惠券-添加", notes = "优惠券-添加") @PostMapping(v

qq_35091185的博客 592

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

微信小程序商城优惠券功能设置指南

小程序的优惠券咋做?在乔拓云网的商城后台管理页面,点左侧的【营销】选项,就能看到好多营销功能呢,像定金预售、组合套餐、限时促销、多人拼团、秒杀、直播啥的。找到优惠券功能,就能设置小程序商城的优惠券啦。接着呢,在后台管理页面,点击【小程序商城】模块里的【去装修】,就进入小程序商城的设计制作页面啦,在这儿选个自己心仪的小程序商城模板,就能搭建自己的小程序商城了。乔拓云网可厉害啦,不但能轻松搞定微信小程序商城的搭建,还能添加优惠券、直播、砍价活动、秒杀等营销功能,让微信小程序商城更完善,更能吸引顾客,刺激消费。

2501_91382924的博客 523

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

【ecshop】前台优惠券独立页面会员可领,新增红包线上 发放类型

线上发放类型,后台效果    (csdn新版本,传了几个图竟然 不知道怎么插入文字,只能在图片标题中插入了,所以发布的都是实现了效果的图片,详情只能看上传的文件了)新增红包分类  前台效果线上红包发放前台效果2 【ecshop】前台优惠券独立页面会员可领,优惠券功能 https://download.youkuaiyun.com/download/u014538997/10795653  ...

u014538997的博客 1656

EasyBoss ERP功能更新:Shopee新增优惠券功能、TikTo新增产品模板功能、Lazada支持手动创建产品等

以上便是EasyBoss ERP本期的功能更新,大家如有功能疑问或其他功能优化建议,可直接在后台留言沟通~产品 - Shopee - 营销管理 - 优惠券。- 定价模板新增抛货计算与智能计算运费计算方式。1、可在优惠券页面点击【创建优惠券】进行创建。2、支持创建【店铺优惠券】与【产品优惠券】- 支持打印拣货明细单、拣货汇总单、配货单。- 支持Shopee 3PF类型店铺授权。- 数据统计新增利润相关指标计算。- 新增利润概况、利润明细模块。- 新增定价模板功能。- 新增产品模板功能。- 支持手动创建产品。

EasyBossERP的博客 208

SpringBoot整合Redis实现优惠券秒杀服务

Springboot整合Redis实现优惠券秒杀服务

qq_45949914的博客 1865

领取优惠券

领券的本质就是新增一条记录到user_coupon表,去记录用户和领券的优惠券之间的关系,使用状态等信息。不过,用户id我们可以自己获取,因此前端只要传递优惠券id即可。只传一个参数,我们可以直接用路径占位符传参。更新发行数量(已领取数量),不仅仅起到统计作用,同时也可以帮助我们判断库存是否充足。更新coupon表中已经领取的数量,别忘了在coupon表中是有一些统计字段的。校验优惠券的发放时间,是不是正在发放中。校验优惠券是否存在,不存在无法领取。1.Controller层。校验优惠券的每人限领数量。

Very_a的博客 695

小熊家政帮day21 优惠券活动管理

举例:一个优惠券活动发放100张优惠券最多有100个用户去领取,每人领取一张,每个用户领取的一张优惠券会记录在优惠券表中,即该优惠券活动对应优惠券表最多100条记录。如果用户取消订单,则会退回优惠券,具体操作是向优惠券退回表添加一条记录(记录用户退回优惠券的信息),并向优惠券核销表删除一条对应的记录,表示取消优惠券的核销。优惠券核销是指:顾客在购买商品使用优惠券,当此次消费符合优惠券的条件时提交订单后将优惠券的折扣应用到顾客的订单中,最后将优惠券标记为已使用或作废。

lihao1875699404的博客 1317

平台优惠券预警通知

数据模型改动 ActivityRelation表新增leastNum字段,用于存放触发预警消息的最低剩余优惠券数量(默认5个): alter table ActivityRelation add column leastNum bigint(20) not null default '5' comment '触发预警最少优惠券数量'; ActivityRelation表新增workIds字...

LeoMes的博客 572

优惠券活动(如何设计表结构、优惠券相关接口开发、定时任务切换优惠券状态)

本文介绍了优惠券营销系统的设计与实现,主要包括数据库设计、接口开发和定时任务三个部分。系统采用三范式原则设计数据库表结构,包含优惠券活动表、优惠券表、核销表和退回表。接口开发实现了优惠券活动的新增、查询、撤销等功能,采用MyBatis-Plus进行数据操作,通过批量查询优化性能。定时任务模块实现了活动状态自动变更和优惠券过期处理。系统采用前后端分离架构,后端提供RESTful API接口,前端通过小程序展示优惠券活动并支持用户领取和使用。

Le1Yu的博客 752

基于ecshop商城开发优惠券(红包)叠加使用功能

一般商城的优惠券(红包)都是只能使用一张的,但想要叠加使用的话,首先要新增字段来区别设置可不可叠加类型input type=”hidden” name=”bonus” id=”bonus_id_{$k}” value=”0”设置input隐藏域,id跟数组键值关联,选中的话value为红包的id,默认为0。 再把选中的红包ID都以字符串形式存到name为bonus1的input隐藏域value中,如

cq_Hsiao的博客 5645

Redis-黑马点评项目-05-postman测试-新增优惠券报错以及前端展示优惠劵报错NaN问题

在使用Postman向数据库添加优惠券信息时,遇到了JSON解析错误。错误信息显示,beginTime字段的当前令牌(VALUE_STRING)不是数字,无法使用数字值访问器。原因是JacksonConfig.java中配置了从JSON中读取时间戳(毫秒值),而原始请求体中传递的是日期字符串"2022-01-26T10:09:17"。

csdn_l_z的博客 1001

《天机学堂》day09.优惠券管理相关接口_完整代码【简单易懂注释版】

本文介绍了优惠券管理系统的设计与实现,包括优惠券的增删改查、发放、兑换等功能模块。系统采用分层架构,包含Controller、Service、Mapper层,实现优惠券的新增、分页查询、编辑、删除等基础操作。在发放功能中,通过异步生成兑换码提高性能,并设计兑换码加密算法确保安全性。针对并发问题,采用乐观锁解决超卖、悲观锁防止重复领取、AOP代理处理事务失效。系统还实现了定时任务自动开始/结束发放,支持分片处理提升效率。兑换功能结合Redis位图校验兑换状态,MySQL存储兑换记录,确保数据一致性。

2402_84971234的博客 2322
上一篇: 榜单持久化
下一篇: 分页查询优惠券
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值