活动创建逻辑
2017-01-09 10:02:05 0 举报
活动创建逻辑主要包括以下几个步骤:首先,确定活动的目标和主题,这是活动创建的基础。其次,进行活动的策划,包括活动的时间、地点、参与人员、活动流程等。然后,根据策划的内容,制定详细的活动方案,包括活动的具体内容、活动的形式、活动的预算等。接着,进行活动的实施,包括活动的组织、活动的宣传、活动的执行等。最后,对活动的效果进行评估,包括活动的参与度、活动的满意度、活动的影响力等。在整个活动创建过程中,需要不断地进行调整和优化,以确保活动的成功。
作者其他创作
大纲/内容
查询是否有别的活动中含有这个商品
插入活动商品缓存
key:discount:run:sellerIdfield:discountIdvalue:对应discountId的活动的Json串
快速失败
判断重叠的活动是不是全专场活动
锁定赠品商品
不发送消息(提供接口给无线端轮询查询商品)
加入活动商品缓存
赠品状态校验(可配置)
未通过
否
失败
加入活动赠品缓存
商品状态为下架状态
如果没有全店活动则说明为部分商品的活动。活动包括:店铺限商品活动,全专场活动,部分专场活动。
DB(tb_discount)
创建成功
判断专场类型,根据专场类型判断从哪个专场中删除
通过专场Id查询出来了专场优惠券活动,并且活动为非全专场活动
判断每个活动是否为部分专场的活动类型
开始结束队列按照score重新加入,更新赠品缓存,
根据当前时间毫秒值从开始队列中获取score小于毫秒值的活动Id
end
按照开始时间结束时间找出重叠的活动。
专场活动
跨店专场
活动商品缓存
key:discount:run:gift:discountIdfield:rulevalue:List
查询交叉活动中的商品
在开始队列中删除活动Id
Discount服务删除商品
更新专场流程
创建店铺活动流程
开始队列
调用activity服务添加商品
数据库中是否含有此商品
资源操作逻辑(DB)
例如赠品规则200-10,200-10,300-20同一个规则出现了两次
查询更新后是否有交叉的活动
没有对应的Id的活动
加入开始结束队列
当前活动中是否有此活动Id的活动
key:discount:run:pros:discountIdfield:productIdvalue:productId
发送店铺活动信息(trade_discountInfo_push)
1是平台专场
专场活动创建流程
结束队列
0是店铺专场
遍历每个活动下的商品查看是否有与创建活动相重叠的商品
加入部分商品活动的缓存
判断赠品的规则是否在已经有的规则中
通过卖家Id查询卖家是否有全店活动
删除商品缓存
DB
赠品信息插入数据库
同一个事务中一个失败,快速失败后回滚操作
结束
无重叠
活动级别的校验
判断专场活动类型
校验赠品
是否有全店活动
是
创建专场活动流程
查询商品状态不为下架状态
DB(tb_discount_product)
店铺专场
推送Kafka消息
是否为全店优惠
如果专场活动已经开始,只更新结束时间
规则条件校验
更新缓存信息
更新对应专场活动时间
无全店活动
校验基本参数
正常结束
start
删除指定活动中的这个商品
如果是满减规则,按照-进行分割只针对店铺活动进行判断,满减比例上限为便宜70%(可配置)如果减价的价格大于总金额的70%则不让其创建活动。返回优惠金额应该小于xxxx
商品删除流程
创建全店铺优惠校验专场平台活动
判断专场类型,根据专场类型判断加入哪个活动中
查询商品Id商品不存在
这个地方拦住了很多加入跨店专场活动的
如果专场活动已经开始
有对应的活动
开始队列(Redis)
商品到排期开始的时候调用加入活动商品接口,加入到对应的活动中
活动开始结束流程
活动数量大于0
以上内容主要校验:1、专场正在运行活动的商品校验2、部分店铺活动的全部商品校验3、店铺活动的校验
判断规则是否已经存在
开始
Discount服务增加商品
赠品是否存在
判断某一规则下是否有重复的商品Id
error日志,锁定商品失败
使用前埔活动的信息查询是否有交叉的专场优惠券活动,使用的开始时间结束时间进行查询重叠
key:discount:tostartscore:活动开始时间毫秒值value:店铺活动的主键Idkey:discount:toendscore:活动开始时间毫秒值value:店铺活动的主键Id
校验活动重叠
开始创建店铺活动
根据专场Id查询此专场下的活动的商品
活动商品信息插入数据库
有重叠
生成唯一MD5值插入唯一操作记录过滤统一时刻请求
是否有重叠的商品
活动信息插入数据库
添加商品到数据库
是否有重叠全店活动
部分店铺活动商品
发送Kafka消息
1、卖家Id不为空2、活动名称不为空3、开始时间不为空4、结束时间不为空5、类型不为空6、规则不为空7、如果创建的活动为专场活动的时候专场Id不能为空或'00000000'8、开始时间必须大于当前时间9、开始时间必须小于结束时间
在别的活动中已经含有这个商品
通过
调用activity服务删除商品
唯一索引重叠
有全店活动
参加了专场平台活动
店铺活动创建流程
商品加入流程
在别的活动中没有含有这个商品
定时任务30s一次
在结束队列中删除活动Id
资源操作逻辑(Redis)
店铺活动
创建活动校验优惠券相关
unique_key:的生成规则sb.append(\"na:\").append(disCountInfo.getName());sb.append(\"sid:\").append(disCountInfo.getSellerId());sb.append(\"st:\").append(disCountInfo.getStartTime());sb.append(\"et:\").append(disCountInfo.getEndTime());sb.append(\"r:\").append(disCountInfo.range.getValue());sb.append(\"t:\").append(disCountInfo.type.getValue());sb.append(\"ru:\").append(disCountInfo.getRule());sb.append(\"ssid:\").append(disCountInfo.getSessionId());sb.append(\"hg:\").append(disCountInfo.getHaveGifts());sb.append(\"gl:\
key:discount:sellerIdfield:活动对应的字段名称value:活动对应的字段的值
根据专场Id查询此专场下的活动
0 条评论
下一页