有这样一项需求:自助建站产品到期之后,通过程序自己把它关闭了,然后待客户续费之后再重新开通,如果三个月客户一直不续费,则通过程序把当前自助建站产品删除了。要求是每三分钟执行一次。以下是实现过程。
一。首先写了一个LoopVZZJZ.java的类,里面包含两个方法:
a.loopServiceExpired()说明:检查服务是否进入续费期,就是说是否要调用关闭接口。
String sql = "select id, service_code,domain_name,website_id from SERVICE_VIRTUALHOST where ";
sql += " service_state='" + AgentConstants.SERVICE_STATE_OPENED + "'";
sql += " and taste_type='" + AgentConstants.TASTE_TYPE_NOT + "'";
sql += " and to_char(service_end_date,'yyyy-MM-dd')<= '" + DateUtil.getCurrentDate() + "'";
说明:这个sql语句就是说要查询是否有自助建站商品到期时间小于当前时间并且服务状态还处在服务期的,查出来之后调用调子商务部的接口将其关闭,然后将其状态置为续费期。
b.loopDeleteService()说明:是否有三个月还没有续费的自助建站产品
String sql = "select service_code from SERVICE_VIRTUALHOST where ";
sql += " service_state='" + AgentConstants.SERVICE_STATE_RENEWING + "'";
sql += " and taste_type='" + AgentConstants.TASTE_TYPE_NOT + "'";
sql += " and service_end_date+90 <= to_date('"+DateUtil.getCurrentDate()+" 23:59:59','yyyy-mm-dd hh24:mi:ss')";
二。配置loopVZZJZ.xml文件
loopServiceExpired
class="org.springframework.scheduling.quartz.CronTriggerBean">
0 0,3,6,9,12,15,18,21,24,27,30,33,36,39,42,45,48,51,54,57 * * * ?
loopDeleteService
class="org.springframework.scheduling.quartz.CronTriggerBean">
0 0,3,6,9,12,15,18,21,24,27,30,33,36,39,42,45,48,51,54,57 * * * ?
class="org.springframework.scheduling.quartz.SchedulerFactoryBean">