📄 servicemgr.java
字号:
//Source file: D:\\WORK\\1G项目实践\\WSMS\\CI\\CODE\\src\\com\\intacpurun\\wsms\\srvclogic\\ServiceMgr.java
package com.intacpurun.wsms.srvclogic;
import java.sql.*;
import java.util.*;
import com.intacpurun.wsms.comm.*;
import com.intacpurun.wsms.comm.db.*;
import com.intacpurun.wsms.comm.vo.*;
/**
* 短信业务管理
*/
public class ServiceMgr
{
/**
* @roseuid 44D017A400AB
*/
public ServiceMgr()
{
}
/**
* 获得短信业务信息
* @param serviceId
* @return com.intacpurun.wsms.comm.vo.ServiceVo
* @roseuid 44CEAF8703C8
*/
public static ServiceVo getServiceInfo(int serviceId)
{
String sql = "select serviceid,name,priceinfo,servicedesc,freqdesc,example " +
"from serviceinfo " +
"where serviceid = " + serviceId;
ServiceVo serviceVo = new ServiceVo();
DbUtil db = DbUtil.open();
ResultSet rs = db.executeQuery(sql);
try
{
if (rs.next())
{
serviceVo.setServiceId(rs.getInt("serviceid"));
serviceVo.setName(rs.getString("name"));
serviceVo.setPriceInfo(rs.getString("priceinfo"));
serviceVo.setDesc(rs.getString("servicedesc"));
serviceVo.setFreqDesc(rs.getString("freqdesc"));
serviceVo.setExample(rs.getString("example"));
}
} catch (Exception ex)
{
System.out.println(ex);
ex.printStackTrace();
} finally
{
db.close();
}
return serviceVo;
}
/**
* 获得定购确认码
* @return String
* @roseuid 44CEB78701B5
*/
public static String getConfirmCode()
{
Random rand = new Random();
int temp = rand.nextInt(100000);
return String.valueOf(temp);
}
/**
* 生成用户定购关系,判断定购业务是否为天气预报,对对象进行塑形
* @param addProvisionVo
* @return boolean
* @roseuid 44CEBCFB002E
*/
public static boolean provision(AddProvisionVo addProvisionVo)
{
boolean isSuccess = false;
/*** 天气预报业务判断处理开始 ***/
AddForecastProvisionVo addForecastProvisionVo;
int serviceId = addProvisionVo.getServiceId();
if (serviceId == Constants.SERVICE_WEATHER_FORECAST_ID)
{
//天气预报业务订购处理
addForecastProvisionVo = (AddForecastProvisionVo) addProvisionVo;
isSuccess = provisionForecast(addForecastProvisionVo);
} else
{
//普通业务订购处理
String sql =
"insert into provision(" +
"provisionid,serviceid,usermsisdn,provisiontime) " +
"values(s_provisionid.nextval," + addProvisionVo.getServiceId() +
",'" + addProvisionVo.getUserMsisdn() + "',sysdate)";
DbUtil db = DbUtil.open();
int insertRet = db.executeUpdate(sql);
if (insertRet >= 0)
isSuccess = true;
else
isSuccess = false;
db.close();
}
return isSuccess;
}
/**
* 生成天气预报业务订购关系
* @param addForecastProvisionVo AddForecastProvisionVo
* @return boolean
*/
private static boolean provisionForecast(AddForecastProvisionVo
addForecastProvisionVo)
{
boolean isSuccess = false;
//获得订购标识
int provisionId = getProvisionId();
if (provisionId <= 0)
{
System.out.println("error happend when getting provision ID from database!");
System.out.println("provision defeated!");
return false;
}
String provisionSql =
"insert into provision(" +
"provisionid,serviceid,usermsisdn,provisiontime) " +
"values(" + provisionId + "," + addForecastProvisionVo.getServiceId() +
",'" + addForecastProvisionVo.getUserMsisdn() + "',sysdate)";
String addCitySql =
"insert into forecastcity(provisionid,cityid) " +
"values(" + provisionId + ",'" +
addForecastProvisionVo.getCityId() + "')";
DbUtil db1 = DbUtil.open();
DbUtil db2 = DbUtil.open();
// db1.setAutoCommitFalse();
// db2.setAutoCommitFalse();
int ret1 = db1.executeUpdate(provisionSql);
int ret2 = db2.executeUpdate(addCitySql);
if ((ret1 != -1) && (ret2 != -1))
{
// db1.commit();
// db2.commit();
isSuccess = true;
} else
return false;
// } else
// {
// db1.rollBack();
// db2.rollBack();
// isSuccess = false;
// }
db1.close();
db2.close();
return isSuccess;
}
/**
* 判断用户手否已经订购该业务
* @param msisdn String 用户电话号码
* @param serviceId String 用户订购业务的编号
* @return boolean
*/
public static boolean isProvision(String msisdn,String serviceId)
{
boolean isProvision = false;
String sql =
"select count(1) " +
"from provision "+
"where serviceid =" + serviceId + " "+
"and usermsisdn ='"+ msisdn +"'";
DbUtil db = DbUtil.open();
ResultSet rs = db.executeQuery(sql);
try
{
if (rs.next())
{
int count = rs.getInt(1);
if (count > 0)
{
isProvision = true;
} else
{
isProvision = false;
}
}//end if rs.next
} catch (Exception ex)
{
System.out.println(ex);
ex.printStackTrace();
}finally
{
db.close();
}
return isProvision;
}
/**
* 获得订购编号,当取值出错时,返回-1
* @return int
*/
private static int getProvisionId()
{
int provisionId = 0;
String sql = "select s_provisionid.nextval from dual";
DbUtil db = DbUtil.open();
ResultSet rs = db.executeQuery(sql);
try
{
if (rs.next())
{
provisionId = rs.getInt(1);
}
} catch (Exception e)
{
System.out.println(e);
e.printStackTrace();
provisionId = -1;
} finally
{
db.close();
}
return provisionId;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -