1数据存储设计1.1数据库表结构设计1.1.1基础数据表基础数据表在AMS,LMS,和广告引擎间共享数据,建议采用共享数据库的方式。广告引擎对基础数据只读,没有写操作。开发者现金账户表表名Developer_cash_account序号字段名类型是否非空备注1Developer_idBIGINT是开发者ID,主键2BalanceDECIMAL(10,2)是余额开发者充值记录表表名Developer_deposit_record序号字段名类型是否非空备注1recordidBIGINT是充值记录ID,主键2Developer_idBIGINT是开发者ID3Deposit_serial_numberVARCHAR(50)是充值流水号4Deposit_accountDECIMAL(10,2)是充值金额5Deposit_company_nameVARCHAR(100)否打款公司全称6Deposit_stateINT是充值状态(1未充值,2已充值)7Receipt_stateINT否发票状态(1未申请,2已申请,3已寄出,4已过期)8Censor_stateINT是审核状态(1待审核,2已审核)Censor_userVARCHAR(50)否审核人9create_dateDATETIME是创建时间10Censor_dateDATETIME否审核时间广告位信息表表名advert_place序号字段名类型是否非空备注1place_idBIGINT是广告位ID;主键2advert_place_typeINT是广告类型(1分类,2榜单、3关键词);3advert_place_codeVARCHAR(20)是广告资源ID;4advert_place_nameVARCHAR(50)是广告位名称5stateINT是是否启用(0启用,-1停用)6default_priceFLOAT否初始价格7create_dateDATETIME否创建时间1.1.2广告投放业务表广告投放业务表LMS,和广告引擎间共享数据,建议采用共享数据库的方式。广告引擎对基础数据只读,没有写操作。设计如下两个表:广告计划表表名advert_plan序号字段名类型是否非空备注1plan_idBIGINT是广告计划ID;主键2plan_nameVARCHAR(20)是广告计划名称3developer_idBIGINT是开发者ID4day_budgetDECIMAL(10,2)是日预算5total_budgetDECIMAL(10,2)否总预算6packagenameVARCHAR(100)是应用的包名7lcaidBIGINT是应用的LCAID8stateINT是计划状态(1创建,2待审核,3不通过,4启用,5暂停)9start_dateDATETIME否开始时间10finish_dateDATETIME否结束时间11create_dateDATETIME否创建时间12modified_dateDATETIME否修改时间广告表表名advert_plan_item序号字段名类型是否非空备注1idBIGINT是主键2plan_idBIGINT是广告计划ID3place_idBIGINT是广告位ID4current_priceFLOAT是当前出价5stateINT是上线状态(2待审,3审核不通过,4启用,5暂停,6不可用)6create_dateDATETIME否创建时间7modified_dateDATETIME否修改时间1.1.3广告引擎/计费业务表广告引擎和计费业务表为广告系统内部使用的数据表,支撑广告系统运行,涉及到大数据量的存储和运算,因此将这部分数据与AMS、LMS隔离,部署在单独的数据库服务器。设计如下几个表:广告统计表表名advert_statistics序号字段名类型是否非空备注1advert_idBIGINT是广告ID:对应一个广告计划和一个广告位;主键2plan_idBIGINT是广告计划ID3place_idBIGINT是广告位ID4advert_place_typeINT是广告类型(1分类,2榜单、3关键词)5advert_place_codeVARCHAR(20)是广告资源ID6advert_place_nameVARCHAR(50)是广告位名称7packagenameVARCHAR(100)是应用的包名8lcaidBIGINT是应用的LCAID9developer_idBIGINT是开发者ID10show_timesINT否展现次数11download_timesINT否下载次数12costDECIMAL(10,2)否花费13current_priceFloat否当前单价14price_modified_dateDATETIME否价格修改时间广告价格明细表表名advert_price序号字段名类型是否非空备注1price_idBIGINT是价格id;主键2advert_idBIGINT是广告ID3developer_idBIGINT是开发者id4packagenameVARCHAR(100)是应用的包名5lcaidBIGINT是应用的LCAID6plan_idBIGINT是计划id7place_idBIGINT是广告位ID8priceFLOAT是单价9create_dateDATETIME否创建时间广告排名表表名advert_rank_list序号名称类型是否非空备注1rank_idBIGINT是主键2place_idBIGINT是广告位ID3First_advert_idBIGINT否排名第一名应用的广告ID3Rank_resultTEXT否应用排序结果{“advertId”:””,”lcaid”:123,”planid”:23}广告应用展现日志表表名advert_show_record序号名称类型是否非空备注1show_idBIGINT是主键2price_idBIGINT是计费id3advert_idBIGINT是广告ID4place_idBIGINT是广告位ID5show_positionINT否在榜单/搜索结果中的位置6report_dateDATETIME是上报时间7developer_idBIGINT否开发者id8packagenameVARCHAR(100)否应用packagename9device_idVARCHAR(30)否设备id10user_idBIGINT否用户id11show_dateDATETIME否下载时间12statistics_taskVARCHAR(50)否统计任务13statistics_dateDATETIME否统计时间14statistics_timesINT是统计失败次数,默认:015statistics_stateINT是统计状态0:未统计,1:已统计,2:不统计3:统计失败默认0广告应用下载日志表表名Advert_download_record序号名称类型是否非空备注1download_idBIGINT是主键2price_idBIGINT是计费id3advert_idBIGINT否广告ID4plan_idBIGINT是计划ID4place_idBIGINT是广告位ID5show_positionINT否在榜单/搜索结果中的位置6report_dateDATETIME是上报时间7charge_stateINT是计费状态0:未计费1:已计费2:不计费,3:计费失败,需要重新计费,默认:04:8developer_idBIGINT否开发者id9packagenameVARCHAR(100)否应用packagename10device_idVARCHAR(30)否设备id11user_idBIGINT否用户id12download_dateDATETIME否下载时间13charge_taskVARCHAR(50)否计费任务14charge_dateDATETIME否计费时间15charge_timesINT是计费失败次数,默认:0广告日计费统计表表名advert_charge_info_day序号名称类型是否非空备注1idBIGINT是主键2developer_idBIGINT是开发者id3advert_idBIGINT是广告ID4plan_idBIGINT是广告计划ID5place_idBIGINT是广告位ID6packagenameVARCHAR(100)是应用包名7total_costDecimal(10,2)否花费8charge_dayDATETIME是计费时间9show_timesINT是展示次数10download_timesBIGINT否下载次数应用下载率信息表表名Advert_app_download_rate序号名称类型是否非空备注1idBIGINT是主键2packagenameVARCHAR(100)否应用packagename3place_idBIGINT是广告位ID4download_rateFLOAT否下载率5operate_ratioFLOAT否运营调节系数6Operate_modify_personBIGINT否运营系数最后修改人7Operate_modify_dateDATETIME否运营系数最后修改时间1.1.4系统表存在系统需要的配置项,分为全局配置和指定服务器配置,全局配置是server字段为空字符串,指定服务器配置是server字段为相应服务器名称系统配置表表名Advert_system_config序号名称类型是否非空备注1Keyvarchar(50)是配置项名称2ValueVARCHAR(500)是配置项值3ServerVarchar(100)是服务器,为空字符串是为全局配置4Modified_timeTimestamp是修改时间注意:主键为:key+serverKey以:“task-“开始时表示为定时任务配置,value格式为json字符串,如:{taskClass:com.lenovo.lestore.advert.engine.task.GeneratePriceTask,trigger:0/40*****}广告位置定时任务信息表表名Advert_place_task_info序号名称类型是否非空备注1task_info_idbigint(20)是主键2place_idBIGINT是广告位ID3advert_place_typeINT是广告类型(1分类,2榜单、3关键词);4advert_place_codeVARCHAR(20)是广告资源ID;5advert_place_nameVARCHAR(50)是广告位名称6default_priceFLOAT否初始价格7server_nameVARCHAR(50)否服务器名称8task_nameVARCHAR(70)否任务名称9task_stateINT是任务状态,0:未执行,1:执行中,2:执行失败,3:执行成功,默认:010task_start_timetimestamp否任务开始时间11task_finish_timetimestamp否任务结束时间12task_typeVARCHAR(50)是任务类型1.2业务数据管理待补充2接口设计2.1查询广告应用的建议出价新建推广计划,选择推广位(榜单)位置时,投放系统调用广告引擎接口,查询对应推广位的建议出价。广告投放广告引擎查询建议出价计算应用在每个榜单的建议出价返回榜单建议出价HTTP请求方式GETGETURL:/advert/app/queryPlacePrice.action返回格式JSON请求参数参数类型必须描述packagenameString是应用包名注意事项无返回结果{result:0,body:[{advertPlaceCode:1,advertPlaceType:1,advicePrice:0.8},{advertPlaceCode:1,advertPlaceType:1,advicePrice:0.8}]}2.2修改应用下载转化率系数接口运