目录

护卫盾_扣点


## 函数名称 hwd_deductPoint(); ## 易语言模块 护卫盾_扣点(); ## 函数说明 扣点,计点模式可用.只有相同的point和remarks才会过滤,例如:hwd_deductPoint(1,"日费用",86400)和hwd_deductPoint(30,"月费用",2592000);这两个并不冲突,因为扣点数量和扣点备注均不同. ## 参数列表 | 参数名称 | 参数类型 | 参数说明 | | ------------ | ------------ | ------------ | | point | int | 扣除点数,最小为1点 | | remarks | const char * | 扣点备注,管理可在后台查看,用户可在个人中心查看(请在"软件编辑"中开启"记录扣点日志") | | interval | int | 扣点间隔(单位:秒),0为不限,即每次都扣点.大于零代表指定间隔内不重复扣点,例如1天只扣一次点,那么间隔就是86400秒,需在软件后台开启:记录扣点日志(). | ## 函数原型 ``` /// /// 扣点,计点模式可用.只有相同的point和remarks才会过滤,例如:hwd_deductPoint(1,"日费用",86400)和hwd_deductPoint(30,"月费用",2592000);这两个并不冲突,因为扣点数量和扣点备注均不同. /// /// 扣除点数,最小为1点 /// 扣点备注,管理可在后台查看,用户可在个人中心查看(请在"软件编辑"中开启"记录扣点日志") /// 扣点间隔(单位:秒),0为不限,即每次都扣点.大于零代表指定间隔内不重复扣点,例如1天只扣一次点,那么间隔就是86400秒,需在软件后台开启:记录扣点日志(). /// HWD_LIBRARY_API hwd_deductPoint (int point, const char * remarks, int interval); ``` ## 状态码 | 状态码 | 状态提示内容 | | ------------ | ------------ | | 224 | 扣点账户不存在. | | 225 | 点数不足,扣点失败. | | 226 | 扣点失败,未知原因,请联系客服. | ## 附加说明 - 如果未开启`记录扣点日志`则remarks和interval参数无效。每次调用该函数,均扣点。 - 如果已开启`记录扣点日志`,则只有相同的数量和备注,才会校验interval。 - 扣点示例(已开启`记录扣点日志`)下方演示了多项目穿插扣点。 | 扣点时间 | 扣除点数 | 扣点备注 | 扣点间隔 | 实际是否扣点 | 原因说明 | | ---- | ---- | ---- | ---- | ---- | ---- | | 2020年9月25日12:00:00 | 5 | 日功能费用 | 86400 | 是 | 限制86400秒内不重复扣点,本次为首次扣点,所以会扣除 | | 2020年9月25日14:00:00 | 5 | 日功能费用 | 86400 | 否 | 相同的点数与备注,且扣点间隔未超过86400秒,所以不会扣除 | | 2020年9月25日16:00:00 | 5 | 日功能费用 | 86400 | 否 | 相同的点数与备注,且扣点间隔未超过86400秒,所以不会扣除 | | 2020年9月25日17:00:00 | 1 | 日功能附加费用 | 86400 | 是 | 拥有不同的点数与备注,是新功能扣点,所以会扣除 | | 2020年9月25日18:00:00 | 5 | 日功能费用 | 86400 | 否 | 相同的点数与备注,且扣点间隔未超过86400秒,所以不会扣除 | | 2020年9月25日19:00:00 | 1 | 日功能附加费用 | 86400 | 否 |相同的点数与备注,且扣点间隔未超过86400秒,所以不会扣除 | | 2020年9月26日12:00:01 | 5 | 日功能费用 | 86400 | 是 | 虽然拥有相同的点数与备注,但间隔已超过86400秒,所以会扣除 | | 2020年9月26日17:00:01 | 1 | 日功能附加费用 | 86400 | 是 | 虽然拥有相同的点数与备注,但间隔已超过86400秒,所以会扣除 | ## 应用场景 - 记录扣点日志 用户群体比较计较的情况下,每一笔扣点都要看明细,如果开启记录扣点日志,用户可以在`用户中心`查看历史扣点记录,消费更加清晰。 - 互斥体 扣点函数中的`扣除点数`与`扣点备注`为检测重复扣点的互斥体,如果两项均相同,则校验是否在扣点间隔内,在间隔内,说明没到扣点时间,`不扣点`,如已超过间隔,则`扣点`。常应用于不需要重复扣点的场景,例如24小时内使用某功能,不重复扣点,那么间隔就是86400秒。 ## 应用举例 例子前提:微博养号软件,三个功能,1.注册账号(扣5点),2.登录账号(每号24小时内扣2点),发文(扣2点)。 1. 每注册一个账号`hwd_deductPoint(5,"注册扣点",0);`这里无需校验扣点间隔,执行一次扣5点。 2. 每登录一个账号`hwd_deductPoint(2,"登录扣点[操作的账号]",86400);`首次执行扣2点,24小时内同账号重复登陆,不重复扣点。 3. 每发布一条博文`hwd_deductPoint(2,"发文扣点",0);`这里无需校验扣点间隔,执行一次扣2点。 4. ps.第2步使用的互斥体为`登录扣点[操作的账号]`这里有个可变因素`操作的账号`,使用此方法可以保证每个操作的账号为独立的互斥体。