-
同步仓库到本地
git clone https://github.com/caisl/activity-platform.git -
根据实际业务调整代码
-
DB设计 activity-platform对营销活动流程框架和规则引擎提供了详细的设计和分析,DB请根据实际的需求设计,这里就不提供详细的内容。
-
新活动接入
举例:接入新人有礼活动,实现FunctionCodeEnum.ACTIVITY_PARTICIPATE:- 创建请求响应对象NewCustomerPartRequest,NewCustomerPartResponse,定义属性
- 创建数据传输对象NewCustomerPartDTO,在实际实现过程中填充参数
- 创建业务处理类NewCustomerActivityParser,NewCustomerActivityHandler,填充路由注解,实现方法细节
-
新functionCode接入
举例:接入活动发布功能 1.FunctionCodeEnum定义新的CODE:FunctionCodeEnum.ACTIVITY_RELEASE 2.需求分析,功能抽象,由IActivityHandler派生新的子类,定义模板方法 3.具体活动接入同新活动接入流程,创建并且实现对应的子类
-
活动执行模型单测
@link com.caisl.ap.activity.ActivityDispatcherTest.dispatcherTest
控制栏输出如下
2019-04-28 10:29:15.917 INFO [main] business 执行com.caisl.ap.activity.request.NewCustomerPartRequest开始 context:{"activityType":1,"functionCode":"ACTIVITY_PARTICIPATE","request":{"channelId":"WECHAT","customerRegisterId":"caisl"}}
2019-04-28 10:29:15.918 INFO [main] business do queryDB
2019-04-28 10:29:15.921 INFO [main] business do assembleDTO
2019-04-28 10:29:15.921 INFO [main] business do buildRules
2019-04-28 10:29:15.957 INFO [main] business do doAction
2019-04-28 10:29:15.957 INFO [main] business do buildResponse
2019-04-28 10:29:15.972 INFO [main] business 执行com.caisl.ap.activity.request.NewCustomerPartRequest结束 time:208 context:{"activityDTO":{"rules":[{"code":"StartTimeRule","display":"活动开始时间","rule":1556332155921,"ruleDetail":"活动开始时间:StartTimeRule:1556332155921","sort":21,"startTime":1556332155921},{"code":"EndTimeRule","display":"活动结束时间","rule":1556504955921,"ruleDetail":"活动结束时间:EndTimeRule:1556504955921","sort":22},{"code":"ActivityStatusRule","display":"活动状态","rule":2,"ruleDetail":"活动状态:ActivityStatusRule:2","sort":23}]},"activityType":1,"functionCode":"ACTIVITY_PARTICIPATE","request":{"channelId":"WECHAT","customerRegisterId":"caisl"}}response:{} -
规则引擎单测
@link com.caisl.ap.rule.ActivityRuleEngineTest.singleRuleTest
控制栏输出如下
class com.caisl.ap.rule.checker.StartTimeRuleChecker do validate
还未到开始时间