[关闭]
@tianqing123 2017-07-05T18:22:02.000000Z 字数 830 阅读 632

广告

离线大屏


  1. 获取广告数据

    • 获取所有广告资源 allAdv = getAdvResources()
    1. 调用 handleFS
    2. 传入{
    3. type:'list',
    4. path:'res/adv',
    5. suffix:'json'
    6. }
    • 获取所有广告分发资源 AdvDispatch = getAdvDispatch(allAdv)
    1. 调用 handleFS
    2. 传入{
    3. type:'list',
    4. path:'res/ad_dispatch_item',
    5. suffix:'json'
    6. }
    • 过滤过期广告 根据beginTime 和 endTime
    • 过滤过期分发 根据beginTime 和 endTime
    • 根据cronList过滤广告 advData = getAdvDataByCorn(AdvDispatch)
      1. 调用 inTimeRange
      2. 传入 {
      3. cronList:cronList
      4. }
      5. 根据返回结果判断广告是否显示
  2. 广告排序

    • 按照时间从过去到现在排序
    • 按照advData的index改变位置 advSort(advData)
  1. function advSort(advData){
  2. var data = _.sortBy(advData, function (adv) {
  3. return new Date(adv.createTime);
  4. });
  5. var _sort = function (data, result) {
  6. if (_.isEmpty(data)) { // 已经排序到最后一位
  7. return result;
  8. }
  9. var firstItem = data[0];
  10. if (_.isEmpty(result)) {
  11. result.push(firstItem);
  12. } else {
  13. if (firstItem.index > result.length) {
  14. result.push(firstItem)
  15. } else {
  16. result.splice(firstItem.index - 1, 0, firstItem);
  17. }
  18. }
  19. return _sort(data.slice(1), result);
  20. };
  21. return _sort(data, []).slice(0);
  22. }
添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注