public async Task <IHttpActionResult> SendSmSCode([FromBody] SendSMSCodeViewModel sendSmsCode)
        {
            JsonResult <string> result = new JsonResult <string>();

            result.code = 1;
            result.msg  = "OK";
            if (sendSmsCode == null)
            {
                result.code = 0;
                result.msg  = "参数错误";
                return(Ok(result));
            }
            string requestTimeskey = "AccountController.SendSmSCode";
            double times           = RedisBase.SortedSet_ZSCORE <string>(requestTimeskey, sendSmsCode.token);

            //if (times > 0)
            //{
            //    result.code = 0;
            //    result.msg = "验证码已失效";
            //    return Ok(result);
            //}

            if (string.IsNullOrEmpty(sendSmsCode.token) || !RedisBase.ContainsKey(sendSmsCode.token))
            {
                result.code = 0;
                result.msg  = "验证码已过期";
                return(Ok(result));
            }
            if (sendSmsCode.type == 0 && !sendSmsCode.tel.IsMobile())
            {
                result.code = 0;
                result.msg  = "invalid tel";
                return(Ok(result));
            }
            await Task.Run(() => {
                RedisBase.SortedSet_Zincrby <string>(requestTimeskey, sendSmsCode.token, 1);
                RedisBase.SortedSet_SetExpire(requestTimeskey, DateTime.Now.AddMinutes(10));

                VerCodePic codepic = RedisBase.Item_Get <VerCodePic>(sendSmsCode.token);
                if (Math.Abs(codepic.Font1.X - sendSmsCode.x1) > 0.5 || Math.Abs(codepic.Font1.Y - sendSmsCode.y1) > 0.5 ||
                    Math.Abs(codepic.Font2.X - sendSmsCode.x2) > 0.5 || Math.Abs(codepic.Font2.Y - sendSmsCode.y2) > 0.5 ||
                    Math.Abs(codepic.Font3.X - sendSmsCode.x3) > 0.5 || Math.Abs(codepic.Font3.Y - sendSmsCode.y3) > 0.5 ||
                    Math.Abs(codepic.Font4.X - sendSmsCode.x4) > 0.5 || Math.Abs(codepic.Font4.Y - sendSmsCode.y4) > 0.5)
                {
                    result.code = 0;
                    result.msg  = "验证码错误";
                }
                else
                {
                    //产生短信验证码
                    int code   = Utils.GetRandom(100000, 999999);
                    string key = cookieKey();
                    RedisBase.Item_Set(key, code.TryToString());
                    RedisBase.ExpireEntryAt(key, DateTime.Now.AddMinutes(10));
                    string tel = sendSmsCode.tel;
                    if (sendSmsCode.type == 1)
                    {
                        tel = RedisBase.Item_Get <string>(sendSmsCode.tel);
                    }
                    bool isSend = Utils.SendSMSVCode(code.TryToString(), tel);
                    if (isSend)
                    {
                        result.Result = key;
                    }
                    else
                    {
                        result.code = 0;
                        result.msg  = "发送失败";
                    }
                }
            });

            return(Ok(result));
        }