这篇文章我们来聊聊一个在运营系统中经常会用到的实用脚本场景——如何通过数据库实现用户手机号绑定流程,并配合奖励机制做行为引导。
本篇整理的是一个 sql 存储过程脚本,用于验证绑定关系、进行绑定状态判断、更新账户信息并插入赠送记录,结构清晰,逻辑完整,适合用于游戏类、工具类、用户体系中有“绑定手机号送奖励”机制的平台。脚本基于 SQL Server 编写,适用于多库多表的数据结构。
一、脚本基本结构简介
本脚本核心为一个名为 GSP_MB_EfficacyBindAccount
的存储过程,挂载在 WHJHAccountsDB
数据库中。功能流程主要包括:
-
检查当前用户是否已绑定手机
-
校验验证码或密码正确性
-
判断目标手机号是否已被其他账号占用
-
奖励金币逻辑判断与更新
-
写入赠送记录表
这是一个综合了绑定验证+账号唯一性校验+奖励触发+状态回写的脚本操作模型。
二、参数说明与执行入口
该过程接受以下三个输入参数:
-
@dwUserID
:用户唯一标识(整型) -
@strAccounts
:用户填写的手机号(即绑定的目标账户名) -
@strPassword
:用户输入的验证码(或加密密码) -
@strErrorDescribe
:输出参数,用于返回执行结果提示
三、执行逻辑细节拆解
1. 判断用户是否已经绑定过手机
若已绑定,则直接返回提示信息“您已绑定过手机”,过程终止,避免重复绑定。
2. 验证码或密钥校验
脚本读取用户表中的 checkCode
字段,并与用户输入的 @strPassword
进行比对,如果不匹配,则返回“验证码错误”。
这一步核心是确保发起绑定请求的用户为本账号持有者,属于基本校验机制。
3. 判断手机号是否已被其他账号占用
这一步执行的是手机号唯一性校验:
如果目标账号尚未被绑定,说明手机号是“空号”,则继续往下进行绑定操作及奖励发放。
4. 赠送奖励逻辑(条件发放金币)
如果通过以上判断,且为首次绑定,系统将执行以下逻辑奖励操作:
表示向用户账号追加300金币,作为手机绑定奖励。这个数值可按实际业务需求调整为积分、经验或其他代币。
5. 更新账户信息并记录赠送明细
绑定逻辑的核心步骤为:
之后,在 ScorePresentInfo
中插入一条绑定奖励记录:
可以看到,该脚本不仅完成了账号信息的同步更新,同时保留了奖励发放的日志,便于后续的审计或补发处理。
四、错误处理与输出说明
如果过程中出现数据库操作错误或参数异常,返回的 @strErrorDescribe
会提示具体信息,例如:
-
“验证码错误!”
-
“您已绑定过手机!”
-
“绑定成功!”
脚本的结尾使用 RETURN
返回状态码(例如 0、1、999 等),用于前端判断是否需要弹窗提醒或阻止继续操作。