Пример #1
0
        public string Execute(Hashtable params_ht)
        {
            Hashtable res = params_ht;

            if (res["Mobile"] == null || res["Mobile"].ToString().Length <= 0)
            {
                return(SiteHelper.GetJsonFromHashTable(null, "faild", "手机号码为空"));
            }
            else
            {
                string          mobie = res["Mobile"].ToString().Trim();
                SmsInfoManager  sim   = new SmsInfoManager();
                UserInfoManager uim   = new UserInfoManager();
                //判断用户是否禁用状态
                DataTable user = uim.GetUserInfoByBindPhone(mobie);
                if (user != null)
                {
                    if (user.Rows.Count > 0)
                    {
                        Hashtable hashuser = DataTableHelper.DataRowToHashTable(user.Rows[0]);
                        if (SiteHelper.GetHashTableValueByKey(hashuser, "UserState").Trim() == UserState.Disable.GetHashCode().ToString())
                        {
                            return(SiteHelper.GetJsonFromHashTable(null, "faild", "用户被禁用,无法收取验证码"));
                        }
                    }
                }

                ICache Cache          = CacheFactory.GetCache();
                string keyid          = "sms_send_times@" + mobie;
                int    sms_send_times = 0;
                if (string.IsNullOrEmpty(Cache.Get <string>(keyid)))
                {
                    DateTime dt = new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day, 23, 59, 59);
                    Cache.Set(keyid, sms_send_times, dt - DateTime.Now);
                }
                if (sms_send_times >= MaxSendTimes)
                {
                    Cache.Dispose();
                    return(SiteHelper.GetJsonFromHashTable(null, "faild", "短信发送失败,短信发送已超过当天最大次数"));
                }

                bool sendResult = sim.SendVerificationCode(mobie);
                if (sendResult)
                {
                    sms_send_times += 1;
                    DateTime dt = new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day, 23, 59, 59);
                    Cache.Set(keyid, sms_send_times, dt - DateTime.Now);
                    Cache.Dispose();
                    return(SiteHelper.GetJsonFromHashTable(null, "success", "短信发送成功"));
                }
                else
                {
                    Cache.Dispose();
                    return(SiteHelper.GetJsonFromHashTable(null, "faild", "短信发送失败"));
                }
            }
        }
Пример #2
0
        public void Execute(IJobExecutionContext context)
        {
            string type = "无单位移";

            try
            {
                SmsInfoManager sim   = new SmsInfoManager();
                VehicleManager vm    = new VehicleManager();
                OPUserManager  oum   = new OPUserManager();
                DataTable      dt    = vm.GetNoOrderVehicles();
                DataTable      users = oum.GetReceiveSMSUsers();
                foreach (DataRow row in dt.Rows)
                {
                    string    vid    = row["ID"].ToString();
                    string    name   = row["Name"].ToString();
                    string    gpsNum = row["VehicleGPSNum"].ToString();
                    DateTime  begin  = DateTime.Now.AddMinutes(-10);
                    DateTime  end    = DateTime.Now;
                    DataTable dtList = vm.GetSpeedVehicleTrace(vid, begin, end);
                    if (dtList != null && dtList.Rows.Count >= 10)
                    {
                        if (users != null && users.Rows.Count > 0)
                        {
                            foreach (DataRow user in users.Rows)
                            {
                                string mobile     = user[0].ToString();
                                bool   sendResult = sim.SendAlarm(mobile, gpsNum, name, type);
                                if (sendResult)
                                {
                                    Logger.Warn(string.Format("车辆{0},{1}发生{2}报警,发送给{3}成功。", name, gpsNum, type, mobile));
                                }
                                else
                                {
                                    Logger.Warn(string.Format("车辆{0},{1}发生{2}报警,发送给{3}失败。", name, gpsNum, type, mobile));
                                }
                            }
                        }
                    }
                }
            }
            catch (Exception e)
            {
                Logger.Error("无单位移报警发送短信失败," + e.Message);
            }
        }
Пример #3
0
        public string Execute(Hashtable params_ht)
        {
            Hashtable res = params_ht;

            if (res["Mobile"] == null || res["Mobile"].ToString().Length <= 0)
            {
                return(SiteHelper.GetJsonFromHashTable(null, "faild", "手机号码为空"));
            }
            else
            {
                string         mobile      = res["Mobile"].ToString().Trim();
                SmsInfoManager sim         = new SmsInfoManager();
                OPUserManager  userManager = new OPUserManager();
                DataTable      user        = userManager.GetUserInfoByMobile(mobile);
                //判断用户是否在系统中进行过注册
                if (user == null || user.Rows.Count == 0)
                {
                    return(SiteHelper.GetJsonFromHashTable(null, "faild", "用户未在系统注册,无法收取验证码"));
                }
                if (user != null)
                {
                    if (user.Rows.Count > 0)
                    {
                        Hashtable hashuser = DataTableHelper.DataRowToHashTable(user.Rows[0]);
                        //判断用户是否禁用状态
                        if (SiteHelper.GetHashTableValueByKey(hashuser, "UserState").Trim() == UserState.Disable.GetHashCode().ToString())
                        {
                            return(SiteHelper.GetJsonFromHashTable(null, "faild", "用户被禁用,无法收取验证码"));
                        }
                    }
                }

                bool sendResult = sim.SendVerificationCode(mobile);
                if (sendResult)
                {
                    return(SiteHelper.GetJsonFromHashTable(null, "success", "短信发送成功"));
                }
                else
                {
                    return(SiteHelper.GetJsonFromHashTable(null, "faild", "短信发送失败"));
                }
            }
        }
Пример #4
0
        /// <summary>
        /// 绑定数据源
        /// </summary>
        private void DataBindGrid(bool isQuery = false)
        {
            SmsInfoManager   smsInfoManager = new SmsInfoManager();
            int              count          = 0;
            int              pageIndex      = isQuery ? 1 : PageControl1.PageIndex;
            StringBuilder    SqlWhere       = new StringBuilder();
            IList <SqlParam> IList_param    = new List <SqlParam>();

            if (!string.IsNullOrEmpty(txt_Search.Value))
            {
                SqlWhere.Append(" and Receiver like @obj ");
                IList_param.Add(new SqlParam("@obj", '%' + txt_Search.Value.Trim() + '%'));
            }

            DataTable dt = smsInfoManager.GetSmsInfoPage(SqlWhere, IList_param, pageIndex, PageControl1.PageSize, ref count);

            ControlBindHelper.BindRepeaterList(dt, rp_Item);
            this.PageControl1.PageIndex   = pageIndex;
            this.PageControl1.RecordCount = Convert.ToInt32(count);
            this.PageControl1.PageChecking();
        }
Пример #5
0
        public string Execute(Hashtable params_ht)
        {
            Hashtable res = params_ht;

            if (res["SetType"] == null || res["Content"] == null || res["UID"] == null || res["SetType"].ToString().Trim().Length <= 0 || res["Content"].ToString().Trim().Length <= 0 || res["UID"].ToString().Trim().Length <= 0)
            {
                return(SiteHelper.GetJsonFromHashTable(null, "faild", "参数不完整"));
            }
            else
            {
                UserInfoManager uim = new UserInfoManager();
                SmsInfoManager  sim = new SmsInfoManager();
                //头像:1   姓名:2   昵称:3
                uid     = res["UID"].ToString().Trim();
                setType = res["SetType"].ToString().Trim();
                content = res["Content"].ToString().Trim();
                Hashtable user = uim.GetUserInfoByUserID(uid);
                if (user == null || user.Keys.Count <= 0)
                {
                    return(SiteHelper.GetJsonFromHashTable(null, "faild", "用户不存在"));
                }
                else
                {
                    if (setType == "1")
                    {
                        //修改头像
                        try
                        {
                            string    imgPath    = BitmapHelper.toUpload(content);
                            Hashtable modifyUser = new Hashtable();
                            modifyUser["HeadPortrait"] = imgPath;
                            bool issuccess = uim.AddOrEditUserInfo(modifyUser, uid);
                            if (!issuccess)
                            {
                                return(SiteHelper.GetJsonFromHashTable(null, "faild", "用户头像保存失败"));
                            }
                            else
                            {
                                user["HeadPortrait"] = imgPath;
                            }
                        }
                        catch (Exception e1)
                        {
                            return(SiteHelper.GetJsonFromHashTable(null, "faild", "用户头像保存失败"));
                        }
                    }
                    else if (setType == "3")
                    {
                        //修改昵称
                        Hashtable modifyUser = new Hashtable();
                        modifyUser["NickName"] = content;
                        bool issuccess = uim.AddOrEditUserInfo(modifyUser, uid);
                        if (!issuccess)
                        {
                            return(SiteHelper.GetJsonFromHashTable(null, "faild", "昵称保存失败"));
                        }
                        else
                        {
                            user["NickName"] = content;
                        }
                    }
                    else
                    {
                        return(SiteHelper.GetJsonFromHashTable(null, "faild", "修改项不合法"));
                    }
                }
                DataTable dt = uim.GetUserInfoByBindPhone(SiteHelper.GetHashTableValueByKey(user, "BindPhone"));
                if (dt == null || dt.Rows.Count <= 0)
                {
                    return(SiteHelper.GetJsonFromHashTable(null, "faild", "网络异常"));
                }
                else
                {
                    decimal balance = 0.00m;
                    decimal.TryParse(dt.Rows[0]["Balance"].ToString(), out balance);
                    decimal balance2 = 0.00m;
                    decimal.TryParse(dt.Rows[0]["Balance2"].ToString(), out balance2);
                    dt.Rows[0]["Balance"] = balance + balance2;
                    Hashtable huser = DataTableHelper.DataRowToHashTable(dt.Rows[0]);
                    return(SiteHelper.GetJsonFromHashTable(huser, "success", "操作成功", "UserInfo"));
                }
            }
        }
Пример #6
0
        /// <summary>
        /// 越界报警短信通知
        /// </summary>
        /// <param name="context"></param>
        public void Execute(IJobExecutionContext context)
        {
            ICache cache = null;
            string type  = "越界";

            try
            {
                foreach (string saas in ConfigHelper.GetSaasList())
                {
                    try
                    {
                        MyWorkerRequest.CreateHttpContext(saas, "", "");

                        SmsInfoManager      sim       = new SmsInfoManager();
                        OPUserManager       oum       = new OPUserManager();
                        DataTable           users     = oum.GetReceiveSMSUsers();
                        VehicleAlarmManager vam       = new VehicleAlarmManager();
                        VehicleManager      vm        = new VehicleManager();
                        DataTable           dataTable = vam.GetOutAreaList();
                        if (dataTable != null && dataTable.Rows.Count > 0)
                        {
                            cache = CacheFactory.GetCache();
                            foreach (DataRow row in dataTable.Rows)
                            {
                                string    vehicleID  = row[0].ToString();
                                Hashtable vehicle    = vm.GetVehicleInfoByID(vehicleID);
                                string    gpsNum     = SiteHelper.GetHashTableValueByKey(vehicle, "VehicleGPSNum").ToUpper();
                                string    name       = SiteHelper.GetHashTableValueByKey(vehicle, "Name").ToUpper();
                                string    alarmCount = row[1].ToString();
                                if (!string.IsNullOrEmpty(alarmCount))
                                {
                                    int count = 0;
                                    int.TryParse(alarmCount, out count);
                                    if (count >= 4)
                                    {
                                        if (users != null && users.Rows.Count > 0)
                                        {
                                            foreach (DataRow user in users.Rows)
                                            {
                                                string mobile     = user[0].ToString();
                                                string key        = "out_area_alarm_" + mobile + "_" + vehicleID;
                                                string code_value = cache.Get <string>(key);
                                                if (string.IsNullOrEmpty(code_value))
                                                {
                                                    bool sendResult = sim.SendAlarm(mobile, gpsNum, name, type);
                                                    if (sendResult)
                                                    {
                                                        Logger.Warn(string.Format("车辆{0},{1}发生{2}报警,发送给{3}成功。", name, gpsNum, type, mobile));
                                                        DateTime dt = DateTime.Now.AddMinutes(20);
                                                        cache.Set(key, 1, dt - DateTime.Now);
                                                    }
                                                    else
                                                    {
                                                        Logger.Warn(string.Format("车辆{0},{1}发生{2}报警,发送给{3}失败。", name, gpsNum, type, mobile));
                                                    }
                                                }
                                                else
                                                {
                                                    Logger.Warn(string.Format("车辆{0},{1}发生{2}报警,发送给{3}未超过1小时。", name, gpsNum, type, mobile));
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                            if (cache != null)
                            {
                                cache.Dispose();
                            }
                        }
                    }
                    catch
                    {
                        if (cache != null)
                        {
                            cache.Dispose();
                        }
                        Logger.Info("车辆越界报警发送短信失败");
                    }
                }
            }
            catch
            {
                if (cache != null)
                {
                    cache.Dispose();
                }
                Logger.Info("车辆越界报警发送短信失败");
            }
        }
Пример #7
0
        public void ProcessRequest(HttpContext context)
        {
            context.Response.CacheControl = "no-cache";
            context.Response.AddHeader("Pragma", "no-cache");
            context.Response.ContentType = "text/plain";
            string Action = context.Request["action"];

            switch (Action)
            {
            case "GetDistrict":
                ServiceAreaManager areaManager = new ServiceAreaManager();
                DataTable          dtArea      = areaManager.GetAreaList(int.Parse(context.Request["levelType"]), int.Parse(context.Request["parentId"]));
                context.Response.Write(JsonHelper.DataTableToJson("success", "获取数据成功", dtArea, "ServiceArea"));
                context.Response.End();
                break;

            case "GetServiceAreaByID":
                ServiceAreaManager manager = new ServiceAreaManager();
                DataTable          dt      = manager.GetServiceAreaByID(context.Request["key"]);
                context.Response.Write(JsonHelper.DataTableToJson("success", "获取数据成功", dt, "ServiceArea"));
                context.Response.End();
                break;

            case "UpdateServiceAreaCoordinates":
                ServiceAreaManager sam = new ServiceAreaManager();
                string             key = context.Request["key"];
                Hashtable          ht  = sam.GetInfoByID(key);
                ht["COORDINATES"] = context.Request["Coordinates"];
                ht["LONGITUDE"]   = context.Request["Longitude"];
                ht["LATITUDE"]    = context.Request["Latitude"];
                string areaType   = ht["AREATYPE"].ToString();
                string status     = ht["STATUS"].ToString();
                string deleteMark = ht["DELETEMARK"].ToString();
                //AreaType 区域类型 1服务范围 2停车网点
                //Status 启动状态:0禁用,1启用
                //DeleteMark 0
                if ("1".Equals(areaType) && "1".Equals(status) && "True".Equals(deleteMark))
                {
                    ICache cache = null;
                    try
                    {
                        cache = CacheFactory.GetCache();
                        string   cacheKey = "Service_Area_" + ht["CITYID"].ToString();
                        DateTime timeSpan = DateTime.Now.AddDays(10);
                        cache.Set(cacheKey, context.Request["Coordinates"], timeSpan - DateTime.Now);
                        cache.Dispose();

                        /*List<LatLng> area_pts = new List<LatLng>();
                         * string coordinates = cache.Get<string>(cacheKey);
                         * if(coordinates!=null&& coordinates.Length>0)
                         * foreach (string str in coordinates.Split(new string[] { ";" }, StringSplitOptions.RemoveEmptyEntries))
                         * {
                         *  string[] pt_arr = str.Split(new string[] { "," }, StringSplitOptions.RemoveEmptyEntries);
                         *  LatLng pt = new LatLng(double.Parse(pt_arr[1]), double.Parse(pt_arr[0]));
                         *  area_pts.Add(pt);
                         * }*/
                    }
                    catch (Exception e)
                    {
                        if (cache != null)
                        {
                            cache.Dispose();
                        }
                        Logger.Error("更新区域:" + ht["THISNAME"].ToString() + ",报错:" + e);
                    }
                    if (cache != null)
                    {
                        cache.Dispose();
                    }
                }
                if (sam.AddOrEditInfo(ht, key))
                {
                    context.Response.Write(JsonHelper.DataTableToJson("success", "更新成功", null, "UpdateServiceAreaCoordinates"));
                }
                else
                {
                    context.Response.Write(JsonHelper.DataTableToJson("faild", "更新失败", null, "UpdateServiceAreaCoordinates"));
                }
                context.Response.End();
                break;

            case "GetInviteCouponInfo":
                SysSettingManager settingManager = new SysSettingManager();
                int couponNum = 0;
                int.TryParse(settingManager.GetValueByKey("InviteCouponNum"), out couponNum);
                decimal couponMoney = 0.00m;
                decimal.TryParse(settingManager.GetValueByKey("InviteCouponMoney"), out couponMoney);
                double CouponPeriod = 0;
                double.TryParse(settingManager.GetValueByKey("CouponPeriod"), out CouponPeriod);
                Hashtable result_ht = new Hashtable();
                result_ht["CouponNum"]    = couponNum;
                result_ht["CouponMoney"]  = couponMoney;
                result_ht["CouponPeriod"] = DateTime.Now.Date.AddDays(CouponPeriod).ToString("yyyy-MM-dd");
                //响应数据到客户端
                context.Response.Write(SiteHelper.GetJsonFromHashTable2(result_ht, "success", "获取数据成功", "GetInviteCouponInfo"));
                break;

            case "SendVerificationCode":
                string mobie = context.Request["Mobile"].ToString().Trim();
                string code  = "";
                if (context.Request["Code"] != null)
                {
                    code = context.Request["Code"].ToString().Trim();
                }
                else
                {
                    context.Response.Write(SiteHelper.GetJsonFromHashTable2(null, "faild", "参数错误", "SendVerificationCode"));
                    context.Response.End();
                    break;
                }
                string session_code = context.Session["dt_session_code"].ToString();
                if (code.ToLower() != session_code.ToLower())
                {
                    context.Response.Write(SiteHelper.GetJsonFromHashTable2(null, "faild", "图形验证码错误", "SendVerificationCode"));
                    context.Response.End();
                    break;
                }
                SmsInfoManager  sim  = new SmsInfoManager();
                UserInfoManager uim  = new UserInfoManager();
                DataTable       user = uim.GetUserInfoByBindPhone(mobie);
                if (user != null && user.Rows.Count > 0)
                {
                    context.Response.Write(SiteHelper.GetJsonFromHashTable2(null, "faild", "手机号已注册", "SendVerificationCode"));
                    context.Response.End();
                    break;
                }
                bool sendResult = sim.SendVerificationCode(mobie);
                if (sendResult)
                {
                    context.Response.Write(SiteHelper.GetJsonFromHashTable2(null, "success", "发送验证码成功", "SendVerificationCode"));
                    context.Response.End();
                    break;
                }
                else
                {
                    context.Response.Write(SiteHelper.GetJsonFromHashTable2(null, "faild", "发送验证码失败", "SendVerificationCode"));
                    context.Response.End();
                    break;
                }

            case "NewUserRegister":
                sim = new SmsInfoManager();
                UserLoginLogManager ullm = new UserLoginLogManager();
                uim            = new UserInfoManager();
                settingManager = new SysSettingManager();
                string mobile           = context.Request["Mobile"].ToString().Trim();
                string verificationCode = context.Request["VerificationCode"].ToString().Trim();
                string invite_userid    = context.Request["InviteUserID"].ToString().Trim();

                string vcode = sim.GetVerCodeByMobile(mobile);
                if (verificationCode != vcode)
                {
                    context.Response.Write(SiteHelper.GetJsonFromHashTable2(null, "faild", "手机验证码错误", "NewUserRegister"));
                    context.Response.End();
                    return;
                }

                user = uim.GetUserInfoByBindPhone(mobile);
                if (user != null && user.Rows.Count > 0)
                {
                    context.Response.Write(SiteHelper.GetJsonFromHashTable2(null, "faild", "用户已注册", "NewUserRegister"));
                    context.Response.End();
                    return;
                }
                else
                {
                    Hashtable newuser = new Hashtable();
                    newuser["BindPhone"]             = mobile;
                    newuser["RealNameCertification"] = (int)UserRealNameCertification.Unauthorized;
                    newuser["UserState"]             = (int)UserState.Enable;
                    newuser["Balance"]      = 0;
                    newuser["RaiseBalance"] = 0;
                    newuser["IsRaiseUser"]  = (int)UserIsRaise.NO;
                    newuser["InviteCode"]   = mobile;
                    newuser["InviteUserID"] = invite_userid;
                    int num = uim.AddUserInfo(newuser);
                    if (num > -1)
                    {
                        user = uim.GetUserInfoByBindPhone(mobile);

                        //新注册用户赠送优惠券
                        couponNum = 0;
                        int.TryParse(settingManager.GetValueByKey("RegCouponNum"), out couponNum);
                        couponMoney = 0.00m;
                        decimal.TryParse(settingManager.GetValueByKey("RegCouponMoney"), out couponMoney);
                        UserCouponManager couponManager = new UserCouponManager();
                        if (couponNum > 0 && couponMoney > 0)
                        {
                            couponManager.NewUserGiveCoupons(user.Rows[0]["ID"].ToString());
                        }

                        context.Response.Write(SiteHelper.GetJsonFromHashTable2(null, "success", "新用户注册成功", "NewUserRegister"));
                        context.Response.End();
                        return;
                    }
                    else
                    {
                        context.Response.Write(SiteHelper.GetJsonFromHashTable2(null, "faild", "手机号错误", "NewUserRegister"));
                        context.Response.End();
                        return;
                    }
                }
                break;

            default:
                break;
            }
        }
Пример #8
0
        public string Execute(Hashtable params_ht)
        {
            Hashtable res = params_ht;

            if (res["Mobile"] == null ||
                res["VerificationCode"] == null ||
                res["Client"] == null ||
                res["Mobile"].ToString().Trim().Length <= 0 ||
                res["VerificationCode"].ToString().Trim().Length <= 0 || res["Client"].ToString().Trim().Length <= 0)
            {
                return(SiteHelper.GetJsonFromHashTable(null, "faild", "登录数据不完整"));
            }
            else
            {
                OPUserManager  userManager  = new OPUserManager();
                SmsInfoManager sim          = new SmsInfoManager();
                bool           isAllowLogin = false;
                //获取参数
                mobile           = res["Mobile"].ToString().Trim();
                verificationCode = res["VerificationCode"].ToString().Trim();
                client           = res["Client"].ToString().Trim();
                DataTable user = userManager.GetUserInfoByMobile(mobile);
                //判断用户是否在系统中进行过注册
                if (user == null || user.Rows.Count == 0)
                {
                    return(SiteHelper.GetJsonFromHashTable(null, "faild", "用户未在系统注册,登录失败"));
                }
                if (user != null && user.Rows.Count > 0)
                {
                    string vcode = sim.GetVerCodeByMobile(mobile);
                    if (vcode != null && verificationCode.Trim() == vcode.Trim())
                    {
                        isAllowLogin = true;
                    }
                    else
                    {
                        return(SiteHelper.GetJsonFromHashTable(null, "faild", "验证码不正确"));
                    }
                }
                if (isAllowLogin)
                {
                    //更新最后登录时间
                    Hashtable userh = new Hashtable();
                    userh["LastloginTime"] = SiteHelper.GetWebServerCurrentTime();
                    userManager.AddOrEditUserInfo(userh, user.Rows[0]["UserID"].ToString());

                    //响应数据到客户端
                    Hashtable huser      = DataTableHelper.DataTableToHashtable(user);
                    DataTable dt_parking = userManager.GetUserParkingList(huser["USERID"].ToString());
                    DataRow   dr         = dt_parking.NewRow();
                    dr["ID"]       = System.Guid.Empty.ToString();
                    dr["ThisName"] = "停车点外";
                    dt_parking.Rows.InsertAt(dr, 0);
                    huser["PARKLIST"] = dt_parking;
                    //huser["PARKLIST"] = userManager.GetUserParkingList(huser["USERID"].ToString());
                    return(SiteHelper.GetJsonFromHashTable2(huser, "success", "登录成功", "UserInfo"));
                }
                else
                {
                    return(SiteHelper.GetJsonFromHashTable(null, "faild", "登录失败,请稍后重试"));
                }
            }
        }
Пример #9
0
        public string Execute(Hashtable params_ht)
        {
            Hashtable res = params_ht;

            if (res["Mobile"] == null ||
                res["VerificationCode"] == null ||
                res["Client"] == null ||
                res["Longitude"] == null ||
                res["Latitude"] == null ||
                res["EquipmentID"] == null ||
                res["Mobile"].ToString().Trim().Length <= 0 ||
                res["VerificationCode"].ToString().Trim().Length <= 0 ||
                res["Client"].ToString().Trim().Length <= 0 ||
                res["Longitude"].ToString().Trim().Length <= 0 ||
                res["Latitude"].ToString().Trim().Length <= 0 ||
                res["EquipmentID"].ToString().Trim().Length <= 0)
            {
                return(SiteHelper.GetJsonFromHashTable(null, "faild", "登录数据不完整"));
            }
            else
            {
                UserInfoManager     uim            = new UserInfoManager();
                SmsInfoManager      sim            = new SmsInfoManager();
                UserLoginLogManager ullm           = new UserLoginLogManager();
                SysSettingManager   settingManager = new SysSettingManager();
                bool isAllowLogin = false;
                //获取参数
                mobile           = res["Mobile"].ToString().Trim();
                verificationCode = res["VerificationCode"].ToString().Trim();
                client           = res["Client"].ToString().Trim();
                longitude        = res["Longitude"].ToString().Trim();
                latitude         = res["Latitude"].ToString().Trim();
                drviceid         = res["EquipmentID"].ToString().Trim();
                DataTable user = uim.GetUserInfoByBindPhone(mobile);
                if (user != null && user.Rows.Count > 0)
                {
                    string vcode = sim.GetVerCodeByMobile(mobile);
                    if (vcode != null && verificationCode.Trim() == vcode.Trim())
                    {
                        isAllowLogin = true;
                    }
                    else
                    {
                        return(SiteHelper.GetJsonFromHashTable(null, "faild", "验证码不正确"));
                    }
                }
                else
                {
                    Hashtable newuser = new Hashtable();
                    newuser["BindPhone"]             = mobile;
                    newuser["RealNameCertification"] = (int)UserRealNameCertification.Unauthorized;
                    newuser["UserState"]             = (int)UserState.Enable;
                    newuser["Balance"]      = 0;
                    newuser["RaiseBalance"] = 0;
                    newuser["IsRaiseUser"]  = (int)UserIsRaise.NO;
                    newuser["InviteCode"]   = mobile;
                    int num = uim.AddUserInfo(newuser);
                    if (num > -1)
                    {
                        user = uim.GetUserInfoByBindPhone(mobile);
                        string vcode = sim.GetVerCodeByMobile(mobile);
                        if (vcode != null && verificationCode.Trim() == vcode.Trim())
                        {
                            isAllowLogin = true;
                        }
                        else
                        {
                            return(SiteHelper.GetJsonFromHashTable(null, "faild", "验证码不正确"));
                        }
                    }
                    else
                    {
                        return(SiteHelper.GetJsonFromHashTable(null, "faild", "手机号错误"));
                    }

                    //新注册用户赠送优惠券
                    int couponNum = 0;
                    int.TryParse(settingManager.GetValueByKey("RegCouponNum"), out couponNum);
                    decimal couponMoney = 0.00m;
                    decimal.TryParse(settingManager.GetValueByKey("RegCouponMoney"), out couponMoney);
                    UserCouponManager couponManager = new UserCouponManager();
                    if (couponNum > 0 && couponMoney > 0)
                    {
                        couponManager.NewUserGiveCoupons(user.Rows[0]["ID"].ToString());
                    }
                }
                if (isAllowLogin)
                {
                    //记录登录日志
                    Hashtable loginlog = new Hashtable();
                    loginlog["UserID"]    = user.Rows[0]["ID"].ToString();
                    loginlog["Latitude"]  = latitude;
                    loginlog["Longitude"] = longitude;
                    loginlog["Client"]    = client;
                    ullm.AddUserLoginLog(loginlog);
                    //更新最后登录时间
                    Hashtable userh = new Hashtable();
                    userh["LastloginTime"] = SiteHelper.GetWebServerCurrentTime();
                    userh["DeviceID"]      = drviceid;
                    uim.AddOrEditUserInfo(userh, loginlog["UserID"].ToString());

                    decimal balance = 0.00m;
                    decimal.TryParse(user.Rows[0]["Balance"].ToString(), out balance);
                    decimal balance2 = 0.00m;
                    decimal.TryParse(user.Rows[0]["Balance2"].ToString(), out balance2);
                    user.Rows[0]["Balance"] = balance + balance2;
                    if (user.Rows[0]["UserType"].ToString() == UserType.OffDepositUser.GetHashCode().ToString())//免押金用户
                    {
                        string depositMoney = settingManager.GetValueByKey("GoldDepositAmount");
                        user.Rows[0]["Deposit"] = depositMoney;
                    }

                    //响应数据到客户端
                    return(SiteHelper.GetJsonFromHashTable(DataTableHelper.DataRowToHashTable(user.Rows[0]), "success", "登录成功", "UserInfo"));
                }
                else
                {
                    return(SiteHelper.GetJsonFromHashTable(null, "faild", "登录操作失败"));
                }
            }
        }
Пример #10
0
        public string Execute(Hashtable params_ht)
        {
            Hashtable res = params_ht;

            if (res["Mobile"] == null || res["Mobile"].ToString().Length <= 0)
            {
                return(SiteHelper.GetJsonFromHashTable(null, "faild", "手机号码为空"));
            }
            if (res["LoginCode"] == null || res["LoginCode"].ToString().Length <= 0)
            {
                return(SiteHelper.GetJsonFromHashTable(null, "faild", "图形码为空"));
            }
            string          mobile      = res["Mobile"].ToString().Trim();
            UserInfoManager uim         = new UserInfoManager();
            DataTable       blackMobile = uim.GetBlackMobileByMobile(mobile);

            if (blackMobile != null && blackMobile.Rows.Count > 0)
            {
                return(SiteHelper.GetJsonFromHashTable(null, "faild", "手机号被禁用,请联系客服"));
            }
            string code = res["LoginCode"].ToString().Trim();

            code = code.ToLower();
            ICache cache        = CacheFactory.GetCache();
            string loginCodeKey = "login_code_" + mobile;
            string code_value   = cache.Get <string>(loginCodeKey);

            Logger.Debug("mobile:" + mobile + ",code:" + code + ",redis_code_value:" + code_value);

            /*if(string.IsNullOrEmpty(code_value))
             * {
             *  return SiteHelper.GetJsonFromHashTable(null, "faild", "图形码超时");
             * }
             * if (!code_value.Equals(code))
             * {
             *  return SiteHelper.GetJsonFromHashTable(null, "faild", "图形码错误");
             * }*/

            if (!ValidateUtil.IsMobilePhone(mobile))
            {
                if (cache != null)
                {
                    cache.Dispose();
                }
                return(SiteHelper.GetJsonFromHashTable(null, "faild", "手机格式不正确"));
            }

            SmsInfoManager sim = new SmsInfoManager();
            //判断用户是否禁用状态
            DataTable user = uim.GetUserInfoByBindPhone(mobile);

            if (user != null)
            {
                if (user.Rows.Count > 0)
                {
                    Hashtable hashuser = DataTableHelper.DataRowToHashTable(user.Rows[0]);
                    if (SiteHelper.GetHashTableValueByKey(hashuser, "UserState").Trim() == UserState.Disable.GetHashCode().ToString())
                    {
                        if (cache != null)
                        {
                            cache.Dispose();
                        }
                        return(SiteHelper.GetJsonFromHashTable(null, "faild", "用户被禁用,无法收取验证码"));
                    }
                }
            }

            /*string span_key_id = "sms_send_time_span@" + mobile;
             * if (string.IsNullOrEmpty(Cache.Get<string>(span_key_id)))
             * {
             *  DateTime dt = DateTime.Now.AddSeconds(60);
             *  Cache.Set(span_key_id, mobile, dt - DateTime.Now);
             * }
             * else
             * {
             *  Cache.Dispose();
             *  Logger.Error("发送短信,Mobile:" + mobile + "60秒内");
             *  return SiteHelper.GetJsonFromHashTable(null, "faild", "短信发送失败,请稍后再试");
             * }*/

            string keyid          = "sms_send_times@" + mobile;
            int    sms_send_times = 0;

            if (string.IsNullOrEmpty(cache.Get <string>(keyid)))
            {
                DateTime dt = new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day, 23, 59, 59);
                cache.Set(keyid, sms_send_times, dt - DateTime.Now);
            }
            else
            {
                string tims = cache.Get <string>(keyid);
                int.TryParse(tims, out sms_send_times);
            }
            if (sms_send_times >= MaxSendTimes)
            {
                if (cache != null)
                {
                    cache.Dispose();
                }
                return(SiteHelper.GetJsonFromHashTable(null, "faild", "短信发送失败,短信发送已超过当天最大次数"));
            }

            bool sendResult = sim.SendVerificationCode(mobile);

            if (sendResult)
            {
                sms_send_times += 1;
                DateTime dt = new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day, 23, 59, 59);
                cache.Set(keyid, sms_send_times, dt - DateTime.Now);
                cache.Dispose();
                return(SiteHelper.GetJsonFromHashTable(null, "success", "短信发送成功"));
            }
            else
            {
                if (cache != null)
                {
                    cache.Dispose();
                }
                return(SiteHelper.GetJsonFromHashTable(null, "faild", "短信发送失败"));
            }
        }
Пример #11
0
 /// <summary>
 /// 占用车辆超时还车通知
 /// </summary>
 /// <param name="context"></param>
 public void Execute(IJobExecutionContext context)
 {
     try
     {
         int           minutes_timeout = 60;
         List <string> saasList        = ConfigHelper.GetSaasList();
         int           i = 0;
         foreach (string saas in saasList)
         {
             if (i == 0)
             {
                 ICache cache = null;
                 try
                 {
                     MyWorkerRequest.CreateHttpContext(saas, "", "");
                     OrdersManager  om = new OrdersManager();
                     VehicleManager vm = new VehicleManager();
                     //DataTable dt = om.GetVehicleReturnOrderList(minutes_timeout);
                     DataTable dt = vm.GetInUseVehicles();
                     Logger.Debug(string.Format("开始车辆还车通知任务,车辆数:{0},saas:{1}", dt.Rows.Count, saas));
                     UserInfoManager um  = new UserInfoManager();
                     SmsInfoManager  sim = new SmsInfoManager();
                     cache = CacheFactory.GetCache();
                     foreach (DataRow dr in dt.Rows)
                     {
                         string vehicleID   = dr["ID"].ToString();
                         string lockState   = dr["LockState"].ToString();
                         string vehicleName = dr["VehicleName"].ToString();
                         //string userID = dr["UserID"].ToString();
                         //string orderNum = dr["OrderNum"].ToString();
                         if (!string.IsNullOrEmpty(vehicleID))
                         {
                             //Hashtable htVehicle = vm.GetVehicleInfoByID(vehicleID);
                             Hashtable htOrder = om.GetInUseOrder(vehicleID);
                             if (htOrder != null)
                             {
                                 string userID = SiteHelper.GetHashTableValueByKey(htOrder, "UserID");
                                 //string lockState = SiteHelper.GetHashTableValueByKey(htVehicle, "LockState");
                                 //string vehicleName = SiteHelper.GetHashTableValueByKey(htVehicle, "VehicleName");
                                 string   orderNum      = SiteHelper.GetHashTableValueByKey(htOrder, "OrderNum");
                                 string   createTimeStr = SiteHelper.GetHashTableValueByKey(htOrder, "CreateTime");
                                 DateTime createTime    = DateTime.Parse(createTimeStr);
                                 TimeSpan span          = DateTime.Now - createTime;
                                 if ("lock".Equals(lockState) && span.TotalMinutes > minutes_timeout)
                                 {
                                     Hashtable htUser = um.GetUserInfoByUserID(userID);
                                     if (htUser != null)
                                     {
                                         string mobile     = SiteHelper.GetHashTableValueByKey(htUser, "BindPhone");
                                         string key        = "Return_Vehicle_Message_" + mobile + "_" + vehicleID;
                                         string code_value = cache.Get <string>(key);
                                         if (string.IsNullOrEmpty(code_value))
                                         {
                                             bool sendResult = sim.SendReturn(mobile);
                                             if (sendResult)
                                             {
                                                 Logger.Warn(string.Format("订单号{0},车辆{1}还车提醒,发送给{2}成功。", orderNum, vehicleName, mobile));
                                                 DateTime dtDay = new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day, 23, 59, 59);
                                                 cache.Set(key, 1, dtDay - DateTime.Now);
                                             }
                                             else
                                             {
                                                 Logger.Error(string.Format("订单号{0},车辆{1}还车提醒,发送给{2}失败。", orderNum, vehicleName, mobile));
                                             }
                                         }
                                     }
                                 }
                             }
                         }
                     }
                     if (cache != null)
                     {
                         cache.Dispose();
                     }
                 }
                 catch (Exception e)
                 {
                     if (cache != null)
                     {
                         cache.Dispose();
                     }
                     Logger.Error(string.Format("车辆还车通知任务(ReturnVehicleSendMessage:{0})失败,{1},{2}", saas, e.Message, e.StackTrace));
                 }
                 i++;
             }
         }
     }
     catch
     {
         Logger.Info("车辆还车通知任务(ReturnVehicleNotify)失败");
     }
 }