会员成长体系
2019-08-22 19:37:46   0  举报             
     
         
 会员成长体系
    作者其他创作
 大纲/内容
 ActionBusinessImpl#triggerSyncCheck
  TOPIC:ORDERTPOC:SHOPTOPIC:.......
  数据看板
  根据前置条件过滤任务,匹配计划
  奖励服务
  基础支撑
  AkcGrowActionService#getAction
  triggerParam.getActTaskType()根据TaskType获取action-一条,代表Type和Action1:1
  成长体系管理系统
  ActionBusinessImpl#matchTaskActions
  其他服务
  根据action_releation的taskType的value动态获取triggerCheck
  过滤没有exeTag或已被执行的计划
  复用变量清洗逻辑
  奖励
  核验
  执行任务
  Exector定时执行
  triggerUserTypeEnum根据任务用户类型创建策略动态获取beanriggerUserTypeEnum.beanName
    执行奖励ACTION
  用户画像
  用户端-其他服务
  奖励钱/劵/积分..
  ActionBusinessImpl#getAkcGrowTaskActions
  BaseTriggerMQHandler#doHandler
  根据行为动作(数据源)采用策略模式驱动状态机
  根据triggerParam.getActTaskType(act_task_type)查询akc_grow_action
  人(会员/店主/代理/C)
  动作管理
  行为Action
  MQ
  Exector定时执行,未结束的任务Action进行check
  IProgressBusiness#isCompleteGroupTask
  ProgressBusinessImpl#executeProgress
  BaseTriggerMQHandler#execute
  BaseTriggerMQHandler#cleanTreatment
  重要方法 ,再次分解
  根据panl.id+user_id查询akc_grow_task_plan_member_progress此用户是否执行过此计划
  反射出不同的实现类,清洗入参构建统一的入参TriggerParam
  Data is List
  规则/策略
  BuildActionFactory#createBuildAction
  用户操作
  com.akucun.member.task.business.api.action.check.
  循环执行匹配到的计划
  任务集管理
  Watcher观察者MQ状态机
  actTaskType根据行为创建任务体系行为构建动态获取beane.g.BUILD_XD_COMPLETE_ORDER--》BuildXDComplete
  根据task_id匹配akc_grow_task_action_relation的actions,如果有被过滤掉的则不添加则返回的tasklist。过滤被前置条件过滤的任务,并打印日志,返回符合条件的任务
  入参变量 规则判断
  N循环调用
  管理系统
  发送奖励
  根据前置条件(.CheckTypeEnum#TRIGGER)过滤命中的Task返回未过滤的
  具体的任务驱动执行器
  创建任务快照akc_grow_task_plan_member_progress.progress通过task_id拿到task_action的List并记录执行的次数
  TriggerParamBusiness#serialParam
  取数
  是否满足
  记录行为入参akc_grow_task_plan_member_progress.params通过task_id拿到task_action的List并记录执行的次数
  会员体系
  Container
  TriggerMQHandler#doHandler
  1.根据task_id匹配akc_grow_task_plan2.根据akc_grow_task_group.user_type与TriggerParam.getUserType比对一致才会加入plan列表,返回plan。
  任务执行器
  更新用户任务状态
  驱动数据源
  添加任务执行快照记录akc_grow_task_plan_member_progress_record
  IPlanBusiness#matchPlan
  活动秒杀/抽奖...
  任务引擎(策略+反射+Action)驱动任务
  根据akc_grow_action的id与parentId关联akc_grow_task_action_relation的action_idaction_relation会记录任务和动作的关系,以及校验的逻辑。TAKS-ACTION:N-M
  按照taskId进行分,返回符合条件的任务集组
  配置任务
  构建行为参数
  过滤不符合条件的trigger,根据trigger过滤不同的值。决定是否继续
  RulEengine规则引擎Drools
  N
  开始
  progress==null
  任务体系执行器
  Action
  AkcGrowTaskPlanMemberProgressRecordService#addRecord
  奖励管理
  PlanBusinessImpl#checkTriggerRepeat
  清洗数据源,根据策略模式清洗出任务所需的入参
  用户任务
  营销平台
  Sidecar近端JAR低侵入回执
  1.根据前置条件(.CheckTypeEnum#TRIGGER)过滤命中的Task返回未过滤的task2.根据task_id匹配akc_grow_task_plan3.根据akc_grow_task_plan.group_id匹配akc_grow_task_group,与入参的用户类型一致才会继续执行plan执行将过滤好的plans
  PlanBusinessImpl#executePlans
  Exector策略模式动态编译反射机制
  @MQConsumer(consumerGroup = \"OpenShopFirstOrderCShopMQ\
  规则引擎
  是否检查已执行过重复触发请求 (只有带着请求执行链execTag的请求才能处理)如果匹配到该行为任务集已完成则不再执行任务加锁后不会再执行
  1.数据流通过统一的ActionName驱动2.如一对多关系则将ActionName关联至GROUP
  是
  List<TriggerParam>
  行为数据
  UserTypeStrategyFactory#create
  Y
  积分
  任务管理
  奖励金
  1.校验任务是否已完成(redis存在GROUP_COMPLETE_SIGN_KEY_userId_groupId)2.根据plan_id与user_id查询akc_grow_task_plan_member_progress为空则继续(代表目前正在执行的任务,不是当前任务)3.如果状态TaskPlanProgressStatusEnum待领奖或已完成则不继续执行(任务已结束)
  IBuildAction#buildTriggerParam
  AkcGrowGroupMemberService#receiveGroup
  ProgressBusinessImpl#getTaskProgress
  成长计划管理
  执行动态创建的triggerParams
  变量引擎
  根据plan_id与user_id排他锁,保障每个用户在同一一时刻只有一个任务执行
  任务状态流转
  统一的用户体系,人需要唯一标识
  数据中台
  TriggerAction#trigger
  任务循环/父子/进阶
  同步任务
  清洗好的变量
  根据动态参数匹配任务动作
  BI
  优惠卷
  AkcGrowTaskPlanMemberProgressService#selectOne
  已完成的用户任务
  根据ActTaskType匹配动作ackTaskType就是ActTaskTypeEnum根据act_task_type读取akc_grow_action,拿到action。action会记录beanname以及实现类,入参等等。
  1.task_id关联task_action_releation2.如果有action_type有TaskActionAtTypeEnum.UNIQUE的则先检测一次约束。如果有则不再继续执行
  TriggerCheckFactory#createCheck 根据value获取 triggerCheck = (TriggerCheck) SpringBeanFactoryUtils.getBean(taskActionAtTypeEnum.triggerCheckBeanName);
  边缘服务
  取数服务
  未完成的任务才会继续执行
  通过triggerUserTypeEnum构建,根据不同的业务获取不同的user_id
   
 
 
 
 
  0 条评论
 下一页
  
   
   
   
  
  
  
  
  
  
  
  
 