📄 bocbc4xml.java
字号:
return flag;
}
//约30分钟调用一次;(移植时须修改数据库连接方式)
public static boolean executeFTP(){
boolean flag=false;
Connection conn=null;
//批次中任意一条短信的内容或号码缺失将导致整个批次操作失败;
try{
conn=getConn(1);
String date=getDT().substring(0,8);
// System.out.println("date:"+date);
// CallableStatement proc =conn.prepareCall("{call EXECUTEMQ(?)}");
// proc.setString(1, date);
// proc.execute();
// ResultSet rs=proc.getResultSet();
//No message,return;
String sqlcount="select count(*) count from SEC_SHORT_MSG_T" +
" where SMSG_STS=1 and SMSG_SOURCE=4 and " +
" trunc(PLAN_SEND_TIME,'dd')=to_date(?,'yyyyMMdd')";
PreparedStatement s=conn.prepareStatement(sqlcount);
s.setString(1,date);
ResultSet r=s.executeQuery();
int count=0;
while(r.next()){
count=r.getInt("count");
}
System.out.println("count:"+count);
if(count<1){
logger.debug("无符合发送要求的短信..");
return flag;
}
//Have message,go ahead,key primary: SEQ_SHORTMSG;
String sqlstr="select SEQ_SHORTMSG,CELL,SMSG_CONTENT from SEC_SHORT_MSG_T" +
" where SMSG_STS=1 and SMSG_SOURCE=4 and " +
" trunc(PLAN_SEND_TIME,'dd')=to_date(?,'yyyyMMdd')";
PreparedStatement ps=conn.prepareStatement(sqlstr);
ps.setString(1, date);
ResultSet rs=ps.executeQuery();
List list=new ArrayList();
while(rs.next()){
ConfigBean CB=new ConfigBean();
CB.setMsgMSG_CONT(rs.getString("SMSG_CONTENT"));
CB.setMsgTAG_TEL(rs.getString("CELL"));
int key=rs.getInt("SEQ_SHORTMSG");
// System.out.println("in executeMQ()..");
// System.out.println("SND_COUNT:"+MB.getSND_COUNT());
// System.out.println("TAG_TEL:"+MB.getTAG_TEL());
// System.out.println("TXN_TIME:"+MB.getTXN_TIME());
// System.out.println("TXN_DATE:"+MB.getTXN_DATE());
list.add(CB);
}
flag=FTP(list);
}catch(Exception er){
logger.error("executeMQ() method Exception");
logger.error(er);
er.printStackTrace();
}finally{
if(conn!=null){
try{
conn.close();
}catch(Exception er){
logger.error("Close connection exception..");
logger.error(er);
}
}
}
return flag;
}
//暂定每周五晚20:00开始执行;(移植时须修改数据库连接方式)
public static boolean executeWL(){
boolean flag=false;
Connection conn=null;
try{
//1,查询库表将未提交状态的客户号码COUNT返回,判断如果<1则return false;
//2,将状态为未提交状态的客户号码查询出来,调用WhiteList(List numbers)函数,执行清洗,生成TXT文件和上传;
conn=getConn(1);
String sqlcount="select count(1) count from SMS_WL where STATE='A'";
PreparedStatement pscount=conn.prepareStatement(sqlcount);
ResultSet rscount=pscount.executeQuery();
int count=0;
while(rscount.next()){
count=rscount.getInt("count");
}
pscount.close();
System.out.println("WL count:"+count);
if(count<1){
logger.debug("没有需要提交的白名单数据..");
return flag;
}
String sqlstr="select CELLNUMBER from SMS_WL where STATE='A'";
PreparedStatement ps=conn.prepareStatement(sqlstr);
ResultSet rs=ps.executeQuery();
List list=new ArrayList();
String number=null;
while(rs.next()){
number=rs.getString("CELLNUMBER");
list.add(number);
}
ps.close();
if(list.size()<1){
logger.error("白名单号码集数量不正确..");
return flag;
}
flag=WhiteList(list);
if(flag){
//白名单申请号码操作完成,修改状态字段值;
StringBuffer num=new StringBuffer();
for(int i=0;i<list.size();i++){
if(i+1<list.size()){
num=num.append("'"+list.get(i)+"',");
}
if(i+1==list.size()){
num=num.append("'"+list.get(i)+"'");
}
}
// System.out.println(num.toString());
String s="update SMS_WL set STATE='B',EXPORTDATE=sysdate where CELLNUMBER in ( "+num+" )";
PreparedStatement p=conn.prepareStatement(s);
// p.setString(1,num.toString());
int i=p.executeUpdate();
p.close();
// System.out.println("修改记录数:"+i);
// System.out.println("提交记录数:"+list.size());
if(i==list.size()){
flag=flag && true;
logger.debug("修改记录条数与提交记录条数一致..");
}else{
flag=flag && false;
logger.error("修改记录条数与提交记录条数不一致,请核对..");
}
}
}catch(Exception er){
logger.error("executeWL() method Exception");
logger.error(er);
er.printStackTrace();
}finally{
if(conn!=null){
try{
conn.close();
}catch(Exception er){
logger.error("Close connection exception..");
logger.error(er);
}
}
}
return flag;
}
//暂定每天18:00开始执行一次,将短信表中的手机号码导入白名单申请表;(移植时须修改数据库连接方式)
public static boolean executeImportWL(){
boolean flag=false;
Connection conn=null;
try{
conn=getConn(1);
String str1="select count(distinct(CON_CONT)) count from CUS_BASDATA_CON_T " +
"where CON_TYP='1' and (WL_STATE='C' or WL_STATE='D')";
PreparedStatement ps1=conn.prepareStatement(str1);
ResultSet rs1=ps1.executeQuery();
int count=0;
while(rs1.next()){
count=rs1.getInt("count");
}
rs1.close();
ps1.close();
if(count<1){
logger.debug("无需要提交白名单申请的数据..");
return flag;
}
String str2="select distinct(CON_CONT) numbers from CUS_BASDATA_CON_T " +
"where CON_TYP='1' and ISSEND = '1' and (APPLY_STS='1' or APPLY_STS='2')";
PreparedStatement ps2=conn.prepareStatement(str2);
ResultSet rs2=ps2.executeQuery();
List list=new ArrayList();
while(rs2.next()){
list.add(rs2.getString("numbers"));
}
rs2.close();
ps2.close();
List startwith=new ArrayList();
ConfigBean bean=(ConfigBean)loadConfig("wl").get(0);
String n[]=bean.getWhitelistMobielNumberStartWith().split(",");
String length=bean.getWhitelistMobielNumberLength();
for(int j=0;j<n.length;j++){
startwith.add(n[j]);
}
List CMCC=new ArrayList();
for(int i=0;i<list.size();i++){
String num=list.get(i).toString();
for(int j=0;j<startwith.size();j++){
String regex=startwith.get(j).toString();
if(checkInput(num,regex,length)){
CMCC.add(num);
continue;
}
}
}
if(CMCC.size()<1){
logger.debug("本批次号码中不存在中国移动公司用户..");
return flag;
}
boolean b=false;
for(int i=0;i<CMCC.size();i++){
String s="select count(1) count from SMS_WL where CELLNUMBER=?";
PreparedStatement p=conn.prepareStatement(s);
p.setString(1,CMCC.get(i).toString());
ResultSet r=p.executeQuery();
int j=0;
while(r.next()){
j=r.getInt("count");
}
r.close();
p.close();
if(j>0){
logger.debug("号码["+CMCC.get(i).toString()+"]在移动白名单申请表中已经存在,取消插入本记录操作..");
continue;
}
String str3="insert into SMS_WL (CELLNUMBER,CREATEDATE,STATE) values (?,sysdate,'A')";
PreparedStatement ps3=conn.prepareStatement(str3);
ps3.setString(1,CMCC.get(i).toString());
int c=ps3.executeUpdate();
ps3.close();
if(c<1){
logger.error("号码["+CMCC.get(i).toString()+"]执行插入移动白名单申请表失败,请查实..");
continue;
}
String str4="update CUS_BASDATA_CON_T set APPLY_STS='3' where CON_CONT=? and ISSEND = '1' and CON_TYP='1'";
PreparedStatement ps4=conn.prepareStatement(str4);
ps4.setString(1,CMCC.get(i).toString());
int m=ps4.executeUpdate();
ps4.close();
if(m<1){
logger.error("号码["+CMCC.get(i).toString()+"]提交至移动白名单申请表后返回修改短信表状态操作失败,请查实..");
continue;
}
b=true;
flag=flag && b;
}
}catch(Exception er){
logger.error("executeImportWL() method Exception");
logger.error(er);
er.printStackTrace();
}finally{
if(conn!=null){
try{
conn.close();
}catch(Exception er){
logger.error("Close connection exception..");
logger.error(er);
}
}
}
return flag;
}
//**********************************************MAIN************************************************
public static void main(String[] args) {
//test MQ(ConfigBean bean);----------------------------successful
// ConfigBean bean=new ConfigBean();
// bean.setMsgMSG_CONT("msgMSG_CONT:中文还是西文??");
// bean.setMsgTAG_TEL("13501218514");
// bean.setMsgTXN_TIME(getDT().substring(8,14));
// bean.setMsgTXN_DATE(getDT().substring(0,8));
// System.out.println(MQ(bean));
//test FTP();------------------------------------------successful
// List list=new ArrayList();
// for(int i=0;i<10000;i++){
// ConfigBean bean=new ConfigBean();
// bean.setMsgMSG_CONT("msgMSG_CONT:中文还是西文??");
// bean.setMsgTAG_TEL("13501218514");
// list.add(bean);
// }
// System.out.println(FTP(list));
//test WhiteList();------------------------------------successful
// List list=new ArrayList();
// list.add("13abc45678910");
// list.add("1115525759");
// list.add("abcdefghijglmnopqrstuvwxyz");
// list.add("HelloWorld");
// list.add("13112345678");
// list.add("1501234567a");
// list.add("199callwho");
// list.add("2000000000000");
// list.add("13501218514");
// list.add("13901001000");
// list.add("15177889999");
// WhiteList(list);
//test executeMQ();------------------------------------successful
// executeMQ();
//test executeFTP();------------------------------------successful
// executeFTP();
//test executeWL();------------------------------------successful
// executeWL();
//test importWL------------------------------------successful
// executeImportWL();
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -