?? userinfo.cpp
字號:
if (strAnswer == sDate)
{
bReal=true;
int iAnswercount=0,
iGrade=0;
strSQL="select answercount,grade,breal from table_log where handset='"+sim+"'";
if(!RunSQLNoOver(ADOQuery1,strSQL,true)) return;
iAnswercount=ADOQuery1->FieldByName("answercount")->AsInteger;
iGrade=ADOQuery1->FieldByName("grade")->AsInteger;
int iReal=ADOQuery1->FieldByName("breal")->AsInteger;
if (1 != iReal)//未回答
{
iAnswercount++;
iGrade++;
strSQL = "update table_log set answercount="+IntToStr(iAnswercount)+", \
grade="+IntToStr(iGrade)+",breal=1 where handset='"+sim+"'";
if(!RunSQLNoOver(ADOQuery1,strSQL,false))
return;
}
AnsiString strTmp = GetDmBySim(sim);
if (strTmp == "ERROR")
return;
//選出名次
strSQL = "select count(id) from table_log where grade>"+IntToStr(iGrade);
if(!RunSQLNoOver(ADOQuery1,strSQL,true))
return;
int iGradecount=ADOQuery1->Fields->Fields[0]->AsInteger+1;
if(iGradecount<1)
iGradecount=1;
if(1!=iReal)
SendDate(sim,"恭喜猜中:)積分["+IntToStr(iGrade)+"]名次["+IntToStr(iGradecount)+"]下條燈謎:"+strTmp);
else
SendDate(sim,"積分["+IntToStr(iGrade)+"]名次["+IntToStr(iGradecount)+"]"+strTmp);
if (iGrade == 1)
{
if (IfInNumber(sim))
SendDate(sim,"恭喜您首次在本系統積分,您已經獲得由移動公司提供的動感地帶套餐(50元)及一個月短信套餐(20元)一份,請到延安路移動營業廳辦理.咨詢電話1860 ");
else
SendDate(sim,"本活動在杭州地區金卡及全球通用戶范圍內開展,謝謝。");
}
break;
}
}
if(!bReal)
{
int iAnswercount=0;
strSQL="select answercount from table_log where handset='"+sim+"'";
if(!RunSQLNoOver(ADOQuery1,strSQL,true)) return;
iAnswercount=ADOQuery1->FieldByName("answercount")->AsInteger;
iAnswercount++;
strSQL="update table_log set answercount="+IntToStr(iAnswercount)+" where handset='"+sim+"'";
if(!RunSQLNoOver(ADOQuery1,strSQL,false)) return;
SendDate(sim,"您猜錯了,請再猜,發7查看積分,發8獲得謎底~o~");
}
}
}
//返回用戶謎底
void TUserInfo::AnswerToUser(AnsiString sim)
{
AnsiString strSQL="select dmid from table_log where handset='"+sim+"'";
if(!RunSQLNoOver(ADOQuery1,strSQL,true)) return;
if(ADOQuery1->FieldByName("dmid")->AsString=="")
{
AnsiString strTmp=GetDmBySim(sim);
if(strTmp=="ERROR") return;
SendDate(sim,strTmp);
}
else
{
strSQL="select a.answer from table_dm a,table_log b where a.id=b.dmid and b.handset='"+sim+"'";
AnsiString strMd;
if(!RunSQLNoOver(ADOQuery1,strSQL,true)) return;
strMd=ADOQuery1->FieldByName("answer")->AsString;
AnsiString strTmp=GetDmBySim(sim);
if(strTmp=="ERROR") return;
SendDate(sim,"謎底:"+strMd+".下一條燈謎:"+strTmp);
}
}
//分聯通或移動發消息
void TUserInfo::SendDate(AnsiString sim,AnsiString strDate)
{
if(StrToInt(sim.SubString(1,3))<134)
MainForm->dtpProtocol->SendOne(strDate,
sim,
MainForm->YClientSocket->struct_linksrvpra.s_ltscc,
true);
else MainForm->dtpProtocol->SendOne(strDate,
sim,
MainForm->YClientSocket->struct_linksrvpra.s_ydscc,
true);
}
//激活
void TUserInfo::SendAllDm(AnsiString sim)
{
AnsiString strTmp;
strTmp=GetDmBySim(sim);
if(strTmp=="ERROR") return;
SendDate(sim,strTmp);
}
//群發
void TUserInfo::SendAll(AnsiString sim)
{
SendDate(sim,n_ceshi->data->Text);
}
//查積分
void TUserInfo::QueryGrade(AnsiString sim)
{
AnsiString strSQL="select dmid from table_log where handset='"+sim+"'";
if(!RunSQLNoOver(ADOQuery1,strSQL,true)) return;
if(ADOQuery1->FieldByName("dmid")->AsString=="")
{
AnsiString strTmp=GetDmBySim(sim);
if(strTmp=="ERROR") return;
SendDate(sim,strTmp);
return;
}
int iGrade=0;
strSQL="select grade from table_log where handset='"+sim+"'";
if(!RunSQLNoOver(ADOQuery1,strSQL,true)) return;
iGrade=ADOQuery1->FieldByName("grade")->AsInteger;
//選出名次
strSQL="select count(id) from table_log where grade>"+IntToStr(iGrade);
if(!RunSQLNoOver(ADOQuery1,strSQL,true)) return;
int iGradecount=ADOQuery1->Fields->Fields[0]->AsInteger+1;
if(iGradecount<1) iGradecount=1;
SendDate(sim,"您的積分["+IntToStr(iGrade)+"]名次["+IntToStr(iGradecount)+"]");
}
//征謎面
void TUserInfo::AnswerMd(AnsiString sim,AnsiString sBody)
{
if(sBody.Trim()=="")
{
AnsiString strTmp=GetDmBySim(sim);
if(strTmp=="ERROR") return;
SendDate(sim,"格式:6+謎面,增燈謎:"+strTmp);
}
else
{
AnsiString strSQL="insert into table_mm(sdatetime,handset,content) values('"+DateToStr(Date())+"','"+sim+"','"+sBody+"')";
if(!RunSQLNoOver(ADOQuery1,strSQL,false)) return;
AnsiString strTmp=GetDmBySim(sim);
if(strTmp=="ERROR") return;
SendDate(sim,"謎面征集成功,增燈謎:"+strTmp);
}
}
//////////////////////////////////////////////////////////////////
//
//函數: IfInNumber
//
//功能: 判斷浙江號段,如果屬于浙江號段,返回TRUE
//
//作者: 袁連軍
//
//////////////////////////////////////////////////////////////////
bool TUserInfo::IfInNumber(AnsiString sim)
{
if (sim.SubString(1,2) == "86")
sim = sim.SubString(3,11);
int iTmp;
//1390H1H2H3,1380H1H2H3,1370H1H2H3,1360H1H2H3,1350H1H2H3
iTmp = StrToInt(sim.SubString(5,3));
if ((sim.SubString(1,4) == "1390") &&
(
( iTmp == 571) || (iTmp == 581) ||
( iTmp == 671) || (iTmp == 681) ||
((iTmp >= 650) && (iTmp <= 653))
))
return true;
else if ((sim.SubString(1,4) == "1380") &&
(
((iTmp >= 650) && (iTmp <= 652)) ||
((iTmp >= 570) && (iTmp <= 579))
))
return true;
else if ((sim.SubString(1,4) == "1370") &&
(
( iTmp == 571) || (iTmp == 581) ||
( iTmp == 650) || (iTmp == 651) ||
( iTmp == 671) || (iTmp == 681) ||
( iTmp == 757) || (iTmp == 754)
))
return true;
else if ((sim.SubString(1,4) == "1360") &&
(
( iTmp == 570) || (iTmp == 571) ||
( iTmp == 580) || (iTmp == 581) ||
( iTmp == 650) || (iTmp == 651) ||
( iTmp == 670) || (iTmp == 680) ||
( iTmp == 671) || (iTmp == 681) ||
((iTmp >= 660) && (iTmp <= 664)) ||
((iTmp >= 51 ) && (iTmp <= 54 ))
))
return true;
else if ((sim.SubString(1,4) == "1350") &&
(
( iTmp == 571) || (iTmp == 581) ||
( iTmp == 671) || (iTmp == 681)
))
return true;
//139H0H1H2H3,138H0H1H2H3
iTmp = StrToInt(sim.SubString(4,4));
if ((sim.SubString(1,3) == "139") &&
(
((iTmp >= 5710) && (iTmp <= 5719)) ||
((iTmp >= 5800) && (iTmp <= 5819)) ||
((iTmp >= 6710) && (iTmp <= 6719)) ||
((iTmp >= 6800) && (iTmp <= 6819))
))
return true;
else if ((sim.SubString(1,3) == "138") &&
(
((iTmp >= 5710) && (iTmp <= 5719)) ||
((iTmp >= 5800) && (iTmp <= 5819)) ||
((iTmp >= 6710) && (iTmp <= 6719)) ||
((iTmp >= 6800) && (iTmp <= 6819)) ||
((iTmp >= 6740) && (iTmp <= 6749)) ||
((iTmp >= 1910) && (iTmp <= 1919)) ||
((iTmp >= 1945) && (iTmp <= 1949))
))
return true;
//1351H1H2H3
iTmp = StrToInt(sim.SubString(5,3));
if ((sim.SubString(1,4) == "1351") &&
(
( iTmp == 571) || (iTmp == 581) ||
( iTmp == 677) || (iTmp == 685) ||
( iTmp == 687) ||
((iTmp >= 670) && (iTmp <= 672)) ||
((iTmp >= 680) && (iTmp <= 682))
))
return true;
//13800XYZ
iTmp = StrToInt(sim.SubString(6,3));
if ((sim.SubString(1,4) == "13800") &&
(
( iTmp == 571)
))
return true;
//40個原有號碼段-神州行號段
//1365H1H2H3
iTmp = StrToInt(sim.SubString(5,3));
if ((sim.SubString(1,4) == "1365") &&
(
((iTmp >= 666) && (iTmp <= 669))
))
return true;
//1366H1H2H3
iTmp = StrToInt(sim.SubString(5,3));
if ((sim.SubString(1,4) == "1366") &&
(
((iTmp >= 664) && (iTmp <= 669))
))
return true;
//13588H1H2
iTmp = StrToInt(sim.SubString(6,2));
if ((sim.SubString(1,5) == "13588") &&
(
((iTmp >= 0 ) && (iTmp <= 49)) ||
((iTmp >= 70) && (iTmp <= 89))
))
return true;
return false;
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -