1.服务定义

config/service.php中定义了所有服务的列表,每个返回必须在该文件重定义,并在相应的代码中检测服务状态才可以正常使用。

2.服务状态检测

models/service.php

检测一个用户是否有权使用某项服务

int checkUser(int userid,int schoolid,int service_id)

返回值>0则用户有权使用

检测一个学校是否开通某项服务

int checkSchool(int schoolid,int serviceid)

返回值>0则学校开通了该服务

3.测试:计算一个服务包的订购周期

php index.php script testerservicecycle <month|study-period|year> 2017-09-30

例如在2017-09-30 09:00:00订购一个包月的业务:

$ php index.php script testerservicecycle month '2017-09-30 09:00:00'

2017-09-30 09:00:00 month 2017-09-30 09:00:00 2017-10-31 23:59:59

经计算该包月业务的有效期是2017-09-30 09:00:00至2017-10-31 23:59:59

也可以不加任何参数运行脚本,导出2016-2017年所有日期订购时对应的服务包有效期,注意2016年是闰年。

php index.php script testerservicecycle

4.测试:检测一个用户是否可以访问某个服务

$ php index.php script tester_service 0 80001 1001031 104048817

serviceid=80001 schoolid=1001031 user_id=104048817 nocache=0 value=2 v=1970-01-01 08:00:02

$ php index.php script tester_service 0 80011 1001031 104048817

serviceid=80011 schoolid=1001031 user_id=104048817 nocache=0 value=1509465599 v=2017-10-31 23:59:59

其中80001、80011分别是服务的ID,1001031是学校ID,104048817是学生的ID

value=2 免费服务,学校已开通

value=1509465599 收费服务,学校已开通,v是用户订单的截止日期

vaule<0 时用户未订购该服务或者学校关闭了该服务

5.测试:检测一个学校是否开通了某个服务

$ php index.php script tester_service 0 80002 1001031

serviceid=80002 schoolid=1001031 user_id=0 nocache=0 value=-1 v=-

同检测一个用户是否可以访问某个服务,只是参数少了最后的学生ID,返回值含义也相同