1#include "/ty_code/common/libyfun/libyfun.h"
  2//#include "libyfun.h"
  3#include "tjpro.h"
  4#include <time.h>
  5#include <stdio.h>
  6#include <memory.h>
  7#include <pthread.h>
  8
  9GBLPARAM gb;//公有变量
 10
 11void Init()
 12{
 13    //得到调试信息
 14 
 15 gb.is_debug = 1;
 16 gb.debug_level = 3;
 17 strcpy (gb.log_file, "/ty/log/tjpro.log");
 18 
 19}

 20
 21int gethour()
 22{
 23    time_t timep;
 24    struct tm *p;
 25    time(&timep);
 26    p= localtime(&timep);
 27    return  p->tm_hour;
 28
 29}

 30
 31int datapro()
 32{
 33  yCMysql da;
 34  if(0 == da.Login("127.0.0.1","","",""))  //连接数据库
 35  {
 36  DEBUG(gb.is_debug,gb.debug_level,gb.log_file,"tjpro login db fail!!\n");
 37  return 0;
 38
 39  }

 40  char sql[500];
 41  memset(sql,0,500);
 42
 43
 44  time_t m_ltime;
 45  time(&m_ltime); 
 46  time_t m_btime;
 47  time_t m_mtime;
 48  m_btime = m_ltime - 86400;
 49  m_mtime=m_ltime-300;  //显示0点前一天的日期
 50  time_t m_tmtime;
 51  m_tmtime = m_ltime - 5184000//60天以前
 52
 53  //删除60天以前的记录
 54  sprintf(sql,"delete from tab_sxxrz where sjsj < %ld",m_tmtime);  
 55  if(da.QueryWrite(sql) == 0)
 56  {
 57 da.Logout();
 58 DEBUG(gb.is_debug,gb.debug_level,gb.log_file,"tab_sxxrz QueryWrite %s fail!!\n",sql);
 59 return 0;
 60  }

 61
 62  memset(sql,0,500);
 63  sprintf(sql,"delete from tab_dxbj where dxsj < %ld",m_tmtime);  
 64  if(da.QueryWrite(sql) == 0)
 65  {
 66 da.Logout();
 67 DEBUG(gb.is_debug,gb.debug_level,gb.log_file,"tab_dxbj QueryWrite %s fail!!\n",sql);
 68 return 0;
 69  }

 70
 71
 72  memset(sql,0,500);
 73  sprintf(sql,"delete from tab_gkrz where tjsj < %ld",m_tmtime);  
 74  if(da.QueryWrite(sql) == 0)
 75  {
 76 da.Logout();
 77 DEBUG(gb.is_debug,gb.debug_level,gb.log_file,"tab_gkrz QueryWrite %s fail!!\n",sql);
 78 return 0;
 79  }

 80
 81  memset(sql,0,500);
 82  sprintf(sql,"delete from tab_kkbj where tjsj < %ld",m_tmtime);  
 83  if(da.QueryWrite(sql) == 0)
 84  {
 85 da.Logout();
 86 DEBUG(gb.is_debug,gb.debug_level,gb.log_file,"tab_kkbj QueryWrite %s fail!!\n",sql);
 87 return 0;
 88  }

 89
 90
 91   ////统计开卡
 92  memset(sql,0,500);
 93  sprintf(sql,"select dwbh,count(dwbh) as kks from tab_kk where sfyx = 1 and kksj>=%ld and kksj<%ld group by dwbh",m_btime,m_ltime);  //统计0点以前24小时
 94  if(da.QueryRead(sql) == 0)
 95 {
 96  da.Logout();    //关闭连接
 97        DEBUG(gb.is_debug,gb.debug_level,gb.log_file,"tjpro QueryRead1 %s fail!!\n",sql);
 98  return 0;
 99 }

100   int k = da.GetRowNum();
101   if(k > 0)
102 {  
103    char temp[1000][30];    //最高1000家网吧开卡
104    memset(temp,0,1000*30*sizeof(char));
105    for(int i=0;i<k;i++)
106    {
107   da.GetRow();
108   sprintf(temp[i],"%s,%s",da.row[0],da.row[1]);
109    }

110    da.FreeResult();
111  for (int j=0;j<k;j++)
112  {
113   // da.GetRow();
114   char m_dwbh[15={0};
115   char m_kks[15={0};
116   char *= temp[j];
117   char *pt = temp[j];
118      while(1)
119   {
120     if(*==',')
121     {
122       *= '\0';
123       sprintf(m_dwbh,"%s",pt);
124       p++;
125       pt = p;
126     }

127     else if(*== '\0')
128     {
129       sprintf(m_kks,"%s",pt);
130       break;
131     }

132     else
133      p++;
134    
135             }

136
137    
138    if(atoi(m_kks) > 5)   //网吧开卡数大于5张不进行统计,并删除原来当天的报警项
139    {
140                   memset(sql,0,500);
141       sprintf(sql,"delete from tab_kkbj where tjsj >= %ld and dwbh = %s",m_btime,m_dwbh);  
142       if(da.QueryWrite(sql) == 0)
143       {
144         da.Logout();    //关闭连接
145         DEBUG(gb.is_debug,gb.debug_level,gb.log_file,"tjpro QueryWrite %s fail!!\n",sql);
146         return 0;
147       }

148          continue;
149    }

150
151    memset(sql,0,500); 
152    sprintf(sql,"select dwbh from tab_kkbj where tjsj >= %ld and dwbh = %s",m_btime,m_dwbh);  //查询开卡报警表中是否有今天网吧记录
153    if(da.QueryRead(sql) == 0)
154    {
155     da.Logout();    //关闭连接
156     DEBUG(gb.is_debug,gb.debug_level,gb.log_file,"tjpro QueryRead2 %s fail!!\n",sql);
157     return 0;
158    }

159    if(da.GetRowNum() >0)
160    {     
161       memset(sql,0,500);
162       sprintf(sql,"update tab_kkbj set kks = %s,tjsj = %ld where tjsj >= %ld and dwbh = %s",m_kks,m_mtime,m_btime,m_dwbh);
163       if(da.QueryWrite(sql) == 0)
164       {
165     da.Logout();
166     DEBUG(gb.is_debug,gb.debug_level,gb.log_file,"tjpro QueryWrite1 %s fail!!\n",sql);
167     return 0;
168       }

169    }

170    else
171    {
172       memset(sql,0,500);
173       sprintf(sql,"insert into tab_kkbj(dwbh,kks,tjsj) values(%s,%s,%ld)",m_dwbh,m_kks,m_mtime);
174       if(da.QueryWrite(sql) == 0)
175       {
176        da.Logout();
177        DEBUG(gb.is_debug,gb.debug_level,gb.log_file,"tjpro QueryWrite2 %s fail!!\n",sql);
178        return 0;
179       }

180    }

181    da.FreeResult();
182  }

183 }

184
185
186 /*
187  sprintf(sql,"select dwbh from tab_kk where kksj>%ld",m_btime);
188  if(da.QueryRead(sql) == 0)
189 {
190  da.Logout();    //关闭连接
191        DEBUG(gb.is_debug,gb.debug_level,gb.log_file,"tjpro QueryRead %s fail!!\n",sql);
192  return 0;
193 }
194
195  if(da.GetRowNum() > 0)
196 {  
197    da.FreeResult();
198       memset(sql,0,500); 
199    sprintf(sql,"insert into tab_kkbj(dwbh,kks,tjsj) select dwbh,count(dwbh) as kks,%ld as tjsj from tab_kk where kksj>%ld group by dwbh",m_ltime,m_btime);
200       if(da.QueryWrite(sql) == 0)
201    {
202      da.Logout();
203   DEBUG(gb.is_debug,gb.debug_level,gb.log_file,"tjpro QueryWrite %s fail!!\n",sql);
204   return 0;
205    }
206 }
207*/

208
209
210//   统计公卡日志
211     memset(sql,0,500);
212  sprintf(sql,"select sl from tab_tjpz where mc='gkcs'");
213     if(da.QueryRead(sql) == 0)
214  {
215  da.Logout();    //关闭连接
216        DEBUG(gb.is_debug,gb.debug_level,gb.log_file,"tjpro QueryRead %s fail!!\n",sql);
217  return 0;
218  }

219     char gkcs[4= {0};
220  da.GetRow();
221  sprintf(gkcs,"%s",da.row[0]);
222  da.FreeResult();
223
224
225
226 memset(sql,0,500);
227    sprintf(sql,"select kh,dwbh,count(kh) as sjcs from tab_sxxrz where sjsj>=%ld group by kh,dwbh",m_btime);
228    if(da.QueryRead(sql) == 0)
229 {
230  da.Logout();    //关闭连接
231        DEBUG(gb.is_debug,gb.debug_level,gb.log_file,"tjpro QueryRead %s fail!!\n",sql);
232  return 0;
233 }

234   int gk = da.GetRowNum();
235   if(gk > 0)
236 {  
237    char tempgk[200000][35];    //最高20万人次
238    memset(tempgk,0,200000*35*sizeof(char));
239    for(int i=0;i<gk;i++)
240    {
241   da.GetRow();
242   sprintf(tempgk[i],"%s,%s:%s",da.row[0],da.row[1],da.row[2]);
243    }

244    da.FreeResult();
245  for (int j=0;j<gk;j++)
246  {
247   // da.GetRow();
248   char m_kh[15={0};
249   char m_dwbh[15={0};
250   char m_sjcs[15={0};
251   char *= tempgk[j];
252   char *pt = tempgk[j];
253      while(1)
254    {
255     if(*==',')
256     {
257       *= '\0';
258       sprintf(m_kh,"%s",pt);
259       p++;
260       pt = p;
261     }

262     else if(*== ':')
263     {
264       *= '\0';
265       sprintf(m_dwbh,"%s",pt);
266       p++;
267       pt = p;
268     
269     }

270     else