nginx
Plain text
code posted
created at 08 Jan 06:10, updated at 08 Jan 06:15
Edit
|
Back
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66  | 
  For cur in cols
Begin
    Case cur.rstype
    When 0 then
      If (cduration%5=0)then
        Select * into nxt from pgm_chann_plasy where id=cur.nextid;
        Case nxt.rstype 
          When 0 then
 <见伪代码二>
          Else
            //开始时间加上1秒
startDate=startate+1/24/60/60
//减去秒长:
cdurtaion=cduration-1
//结束时间:
enddate=startdate+cduration
        End case;
      Else //非5的倍数
 //减去秒长:
 cdurtaion=cduration-1
 //结束时间减去1秒
  Enddate=enddate-1/24/60/60
      End if;
    Else—1,2,3,4,5,6
 //减去秒长:
 cdurtaion=cduration-1
 //结束时间减去1秒
  Enddate=enddate-1/24/60/60
    End case;
End.
伪代码二:
//1. 
If(nxt.cdurtion%5!=0)
//开始时间加上1秒
startDate=startate+1/24/60/60
//减去秒长:
cdurtaion=cduration-1
//结束时间:
enddate=startdate+cduration
return;
End if;
//查找前节目
 //a.查找广告口第一条广告
  Select * into frst from pgm_chann_play where rnum =(select min(rnum)from pgm_chann_play where code=cur.code);
If(frst.preid!=null)then
 //前节目时长减去1秒,结束日期减去1秒
 Update pgm_chann_play set cduration=cduration-1,enddate=endate-1/24/60/60
 where id=frst.preid;
 //当前广告口Rnum范围为(rp,rx]的广告开始时间和结束时间都减去1秒
 Update pgm_chann_play set startdate=startdate-1/24/60/60,enddate=enddate-1/24/60/60
 Where rnum>frst.rnum-1 and rnum<=cur.rnum;
Return ;
End if;
//查找后节目
//查找广告口最后一条广告
Select * into frst from pgm_chann_play where rnum =(select max(rnum)from pgm_chann_play where code=cur.code);
//后节目时长减去1秒
Update pgm_chann_play set cduration=cduration-1,startdate=startdate+1/24/60/60
 where id=frst.nxtid;
//当前串播单Rnum范围为(rx,rn)的开始时间和结束时间都加上1秒。
 Update pgm_chann_play set startdate=startdate+1/24/60/60,enddate=enddate+1/24/60/60
 Where rnum>cur.rnum and rnum<frst.rnum+1; | 
1.6 KB in 2 ms with coderay


