Exemplo n.º 1
0
        public void SendMsg()
        {
            List <string> MY_DEVICE_TOKENS = new List <string>();

            using (OOContent db = new OOContent())
            {
                db.DBUserDevice.ToList().ForEach(delegate(EUserDevice item)
                {
                    MY_DEVICE_TOKENS.Add(item.DeviceToken);
                });
            }


            foreach (var deviceToken in MY_DEVICE_TOKENS)
            {
                // 队列发送一个通知
                apnsBroker.QueueNotification(new ApnsNotification
                {
                    DeviceToken = deviceToken,//这里的deviceToken是ios端获取后传递到数据库统一记录管理的,有效的Token才能保证推送成功
                    Payload     = JObject.Parse("{\"aps\":{\"sound\":\"default\",\"badge\":\"1\",\"alert\":\"这是一条群发广告消息推送的测试消息\"}}")
                });
            }
            Console.WriteLine("Sent");

            //停止代理
            apnsBroker.Stop();
            Console.Read();
        }
Exemplo n.º 2
0
        public NResult <EItemInfo> GetAvaliableItem(QItem qItem)
        {
            NResult <EItemInfo> result = new NResult <EItemInfo>();

            try
            {
                using (OOContent db = new OOContent())
                {
                    var list = db.DBItemInfo.Where(a => a.RecordStatus == RecordStatus.Normal).OrderByDescending(a => a.CreatedTime);

                    if (qItem.pageIndex == 0)
                    {
                        result.resultList = list.Take(qItem.pageSize).ToList();
                    }
                    else
                    {
                        result.resultList = list.Skip(qItem.pageIndex * qItem.pageSize).Take(qItem.pageSize).ToList();
                    }
                }
            }
            catch (Exception ex)
            {
                result.IsSuccess = false;
                result.ErrorMsg  = ex.Message;
            }
            return(result);
        }
Exemplo n.º 3
0
        public void SetUserDeviceToken(string DeviceToken, string IDFV, DeviceChannel DeviceChannel, string appName = "YJOO")
        {
            try
            {
                if (!string.IsNullOrEmpty(DeviceToken) && !string.IsNullOrEmpty(IDFV))
                {
                    using (OOContent db = new OOContent())
                    {
                        EUserDevice userDevice = db.DBUserDevice.Where(a => a.IDFV == IDFV).FirstOrDefault();
                        if (userDevice == null)
                        {
                            userDevice = new EUserDevice();
                            userDevice.CreateDateTime = DateTime.Now;
                            db.DBUserDevice.Add(userDevice);
                        }


                        userDevice.DeviceToken = DeviceToken;
                        userDevice.IDFV        = IDFV;

                        userDevice.DeviceChannel     = DeviceChannel;
                        userDevice.AppName           = appName;
                        userDevice.LastLoginDateTime = DateTime.Now;
                        userDevice.LoginCount++;

                        db.SaveChanges();
                    }
                }
            }
            catch (Exception ex)
            {
                NLogHelper.ErrorTxt("GetUserDeviceToken Error:" + ex.Message);
            }
        }
Exemplo n.º 4
0
 /// <summary>
 /// 已经存在的手机不要发送
 /// </summary>
 /// <param name="Phone"></param>
 /// <returns></returns>
 private bool IsVerifiedPhone(string Phone)
 {
     using (OOContent db = new OOContent())
     {
         EUserInfo user = db.DBUserInfo.Where(a => a.Phone == Phone).FirstOrDefault();
         return(user != null);
     }
 }
Exemplo n.º 5
0
        public NResult <ETaskInfo> CreateOrUpdate(ETaskInfo obj)
        {
            NResult <ETaskInfo> result = new NResult <ETaskInfo>();

            try
            {
                using (OOContent db = new OOContent())
                {
                    ETaskInfo updateObj = null;
                    if (obj.RefItemId > 0)
                    {
                        string sql       = string.Format("select count(1) from ItemInfo where Id={0}", obj.RefItemId);
                        int    ItemCount = db.Database.SqlQuery <int>(sql).FirstOrDefault();
                        if (ItemCount <= 0)
                        {
                            result.IsSuccess = false;
                            result.ErrorMsg  = "创建任务失败。没有找到对相应的对象!";
                            return(result);
                        }
                    }

                    if (obj.Id != 0)
                    {
                        updateObj = db.DBTaskInfo.Where(a => a.Id == obj.Id).FirstOrDefault();
                    }


                    //新增
                    if (updateObj == null)
                    {
                        db.DBTaskInfo.Add(obj);
                        db.SaveChanges();
                    }
                    //修改
                    else
                    {
                        updateObj.Title        = obj.Title;
                        updateObj.Description  = obj.Description;
                        updateObj.TaskType     = obj.TaskType;
                        updateObj.RecordStatus = obj.RecordStatus;
                        updateObj.RefItemId    = obj.RefItemId;
                        db.SaveChanges();
                    }
                    result.resultObj = obj;
                }
            }
            catch (Exception ex)
            {
                result.IsSuccess = false;
                result.ErrorMsg  = ex.Message;
                ErrorToDb(ex.Message);
            }
            return(result);
        }
Exemplo n.º 6
0
        public NResult <RUserTask> QueryUserTask(QTask qTask)
        {
            NResult <RUserTask> result = new NResult <RUserTask>();

            try
            {
                using (OOContent db = new OOContent())
                {
                    var sql = @"select t.Title,
                    t.Description as TaskDescription,
                    t.TaskType,
                    t.Id as TaskId,
                    item.Name as ItemName,
                    item.RealUrl,
                    item.Price,
                    ut.UserTaskStatus,
                    ut.UserId,
                    ut.Id  
                    from TaskInfo as t
                    join UserTask as ut on ut.TaskId = t.Id
                    join ItemInfo as item on item.Id = t.RefItemId
                    where ut.UserId = @UserId 
                    order by ut.CreatedTime";

                    //sql = string.Format(sql, qTask.AcceptUserId);
                    SqlParameter[] param = new SqlParameter[] {
                        new SqlParameter("@UserId", qTask.AcceptUserId)
                    };

                    var list = db.Database.SqlQuery <RUserTask>(sql, param);

                    if (qTask.pageIndex == 0)
                    {
                        result.resultList = list.Take(qTask.pageSize).ToList();
                    }
                    else
                    {
                        result.resultList = list.Skip(qTask.pageIndex * qTask.pageSize).Take(qTask.pageSize).ToList();
                    }
                }
            }
            catch (Exception ex)
            {
                result.IsSuccess = false;
                result.ErrorMsg  = ex.Message;
            }
            return(result);
        }
Exemplo n.º 7
0
        public NResult <EUserInfo> Login(string loginName,
                                         string pwd,
                                         string DeviceIdentify       = "",
                                         string DeviceToken          = "",
                                         DeviceChannel DeviceChannel = DeviceChannel.IOS)
        {
            NResult <EUserInfo> result = new NResult <EUserInfo>();

            try
            {
                NLogHelper.InfoTxt(string.Format("用户{0}登陆,密码:{1},DeviceIdentify:{2}", loginName, pwd, DeviceIdentify));
                using (OOContent db = new OOContent())
                {
                    EUserInfo ui = db.DBUserInfo.Where(a => a.LoginName == loginName && a.Pwd == pwd).FirstOrDefault();
                    //var sql = @"select ui.Id,ui.NickName,
                    //                   ui.Phone,ui.UserRole,
                    //                   ui.HeaderImgUrl,
                    //                   ui.RecordStatus
                    //            from UserInfo as ui
                    //            where ui.LoginName = @LoginName and ui.Pwd = @Pwd";
                    //sql = string.Format(sql, loginName, pwd);
                    //List<SqlParameter> pList = new List<SqlParameter>();
                    //pList.Add(new SqlParameter("@LoginName", loginName));
                    //pList.Add(new SqlParameter("@Pwd", pwd));

                    //RUserInfo ui = db.Database.SqlQuery<RUserInfo>(sql, pList.ToArray()).FirstOrDefault();
                    if (ui == null)
                    {
                        result.ErrorMsg = "用户名或密码错误";
                        return(result);
                    }
                    else
                    {
                        ui.LastLoginDateTime = DateTime.Now;
                        //更新设备对应的手机
                        UpdateDevice(DeviceIdentify, loginName, db);
                        db.SaveChanges();
                    }
                    result.resultObj = ui;
                }
            }
            catch (Exception ex)
            {
                result.ErrorMsg = ex.Message;
                ErrorToDb(ex.Message);
            }
            return(result);
        }
Exemplo n.º 8
0
        /// <summary>
        /// 获取用户邀请信息
        /// </summary>
        /// <returns></returns>
        public OutAPIResult InviteInfo()
        {
            OutAPIResult result = new OutAPIResult();

            try
            {
                using (OOContent db = new OOContent())
                {
                }
            }
            catch (Exception ex)
            {
                ErrorToDb(ex.Message);
            }
            return(result);
        }
Exemplo n.º 9
0
        public OutAPIResult ModifyPwd()
        {
            string       phone  = HttpContext.Current.Request["Phone"];
            string       newPwd = HttpContext.Current.Request["newPwd"];
            string       oldPwd = HttpContext.Current.Request["oldPwd"];
            OutAPIResult result = new OutAPIResult();

            try
            {
                if (string.IsNullOrEmpty(phone))
                {
                    result.ErrorMsg = "手机号不能为空!";
                    return(result);
                }
                if (string.IsNullOrEmpty(newPwd))
                {
                    result.ErrorMsg = "新密码不能为空!";
                    return(result);
                }
                using (OOContent db = new OOContent())
                {
                    EUserInfo ui = db.DBUserInfo.Where(a => a.Phone == phone).FirstOrDefault();
                    if (ui == null)
                    {
                        result.ErrorMsg = "手机对应的用户没有找到";
                        return(result);
                    }
                    if (ui.Pwd != oldPwd)
                    {
                        result.ErrorMsg = "旧密码不匹配";
                        return(result);
                    }
                    else
                    {
                        ui.Pwd = newPwd;
                        db.SaveChanges();
                    }
                }
            }
            catch (Exception ex)
            {
                result.ErrorMsg = ex.Message;
            }

            return(result);
        }
Exemplo n.º 10
0
        public NResult <EItemInfo> CreateOrUpdate(EItemInfo obj)
        {
            NResult <EItemInfo> result = new NResult <EItemInfo>();

            try
            {
                using (OOContent db = new OOContent())
                {
                    EItemInfo updateObj = null;
                    if (obj.Id != 0)
                    {
                        updateObj = db.DBItemInfo.Where(a => a.Id == obj.Id).FirstOrDefault();
                    }

                    //新增
                    if (updateObj == null)
                    {
                        db.DBItemInfo.Add(obj);
                        db.SaveChanges();
                    }
                    //修改
                    else
                    {
                        updateObj.Channel = obj.Channel;
                        updateObj.Name    = obj.Name;
                        updateObj.Price   = obj.Price;
                        updateObj.RealUrl = obj.RealUrl;
                        updateObj.StoreId = obj.StoreId;

                        updateObj.RecordStatus = obj.RecordStatus;

                        db.SaveChanges();
                    }
                    result.resultObj = obj;
                }
            }
            catch (Exception ex)
            {
                result.IsSuccess = false;
                result.ErrorMsg  = ex.Message;
                ErrorToDb(ex.Message);
            }
            return(result);
        }
Exemplo n.º 11
0
 /// <summary>
 /// 没有DeviceIdentity 暂时就算了
 /// </summary>
 /// <param name="DeviceIdentity"></param>
 /// <param name="Phone"></param>
 /// <param name="db"></param>
 private void UpdateDevice(string DeviceIdentity,
                           string Phone,
                           OOContent db)
 {
     try
     {
         if (!string.IsNullOrEmpty(DeviceIdentity))
         {
             var UserDevice = db.DBUserDevice.Where(a => a.IDFV == DeviceIdentity).FirstOrDefault();
             if (UserDevice != null)
             {
                 UserDevice.UserPhone = Phone;
             }
         }
     }
     catch (Exception ex)
     {
         NLogHelper.ErrorTxt("Update Device Error:" + ex.Message);
     }
 }
Exemplo n.º 12
0
        public OutAPIResult SetNickName()
        {
            OutAPIResult result   = new OutAPIResult();
            string       NickName = HttpContext.Current.Request["NickName"];
            string       phone    = HttpContext.Current.Request["Phone"];

            NLogHelper.InfoTxt(string.Format("Set Nick Name:{0}.Phone:{1}", NickName, phone));
            try
            {
                if (string.IsNullOrEmpty(phone))
                {
                    result.ErrorMsg = "【B】手机号没有获取";
                    return(result);
                }
                if (string.IsNullOrEmpty(NickName))
                {
                    result.ErrorMsg = "【B】昵称没有获取";
                    return(result);
                }
                using (OOContent db = new OOContent())
                {
                    var pList = new List <SqlParameter>();
                    pList.Add(new SqlParameter("@NickName", NickName));
                    pList.Add(new SqlParameter("@Phone", phone));
                    var sql = @"update UserInfo
                                    set NickName = @NickName
                                    where Phone = @Phone
                                    ";
                    result.IntMsg = db.Database.ExecuteSqlCommand(sql, pList.ToArray());
                    if (result.IntMsg <= 0)
                    {
                        result.ErrorMsg = "没有找到对应的用户更新";
                    }
                }
            }
            catch (Exception ex)
            {
                result.ErrorMsg = ex.Message;
            }
            return(result);
        }
Exemplo n.º 13
0
        public OutAPIResult InsertBanner()
        {
            OutAPIResult result = new OutAPIResult();

            try
            {
                using (OOContent db = new OOContent())
                {
                    EBanner obj = new EBanner();
                    obj.BannerImg   = "/Content/Images/AppBanner/Banner1.png";
                    obj.Title       = "最新公告";
                    obj.CreatedTime = DateTime.Now;
                    obj.Position    = 1;
                    db.DBBanner.Add(obj);
                    db.SaveChanges();
                }
            }
            catch (Exception ex)
            {
                result.IsSuccess = false;
                result.ErrorMsg  = ex.Message;
            }
            return(result);
        }
Exemplo n.º 14
0
        public NResult <ETaskInfo> QueryTask(QTask qTask)
        {
            NResult <ETaskInfo> result = new NResult <ETaskInfo>();

            try
            {
                using (OOContent db = new OOContent())
                {
                    var list = db.DBTaskInfo.Where(a => a.TaskType != TaskType.ALL);

                    if (qTask.RecordStatus != RecordStatus.ALL)
                    {
                        list = list.Where(a => a.RecordStatus == RecordStatus.Normal);
                    }

                    list = list.OrderByDescending(a => a.CreatedTime);

                    if (qTask.pageIndex == 0)
                    {
                        result.resultList = list.Take(qTask.pageSize).ToList();
                    }
                    else
                    {
                        result.resultList = list.Skip(qTask.pageIndex * qTask.pageSize).Take(qTask.pageSize).ToList();
                    }
                }
            }
            catch (Exception ex)
            {
                result.IsSuccess = false;
                result.ErrorMsg  = ex.Message;

                ErrorToDb(ex.Message);
            }
            return(result);
        }
Exemplo n.º 15
0
        public OutAPIResult UpdateHeaderImage()
        {
            OutAPIResult result = new OutAPIResult();
            Stream       stream;
            int          maxSize = 10;
            string       phone   = HttpContext.Current.Request["UserPhone"];

            try
            {
                if (string.IsNullOrEmpty(phone))
                {
                    result.ErrorMsg = "【B】手机号没有获取";
                    return(result);
                }

                HttpPostedFile file0 = HttpContext.Current.Request.Files[0];

                int size = file0.ContentLength / 1024; //文件大小KB
                if (size > maxSize * 1024)
                {
                    result.ErrorMsg = string.Format("文件过大,不能超过{0}M", maxSize);
                    return(result);
                }
                byte[] fileByte = new byte[2]; //contentLength,这里我们只读取文件长度的前两位用于判断就好了,这样速度比较快,剩下的也用不到。
                stream = file0.InputStream;
                stream.Read(fileByte, 0, 2);   //contentLength,还是取前两位

                string fileFlag = "";
                if (fileByte != null || fileByte.Length <= 0)//图片数据是否为空
                {
                    fileFlag = fileByte[0].ToString() + fileByte[1].ToString();
                }
                //extDir.Add("255216", "jpg");
                if (fileFlag != "255216")
                {
                    result.ErrorMsg = "图片格式不正确";
                    return(result);
                }

                string fileName     = "user_" + phone + ".jpg";
                string saveFullPath = SysConfig.ImageSaveDir + "\\" + fileName;
                NLogHelper.InfoTxt("Save Paht:" + saveFullPath);

                OutAPIResult updateResult = ImgHelper.UploadImg(saveFullPath);
                if (updateResult.IsSuccess)
                {
                    using (OOContent db = new OOContent())
                    {
                        var dbImgUrl = SysConfig.ImageSaveDBRoot + fileName;
                        var pList    = new List <SqlParameter>();
                        pList.Add(new SqlParameter("@imgUrl", dbImgUrl));
                        pList.Add(new SqlParameter("@Phone", phone));
                        var sql = @"update UserInfo
                                    set HeaderImgUrl = @imgUrl
                                    where Phone = @Phone
                                    ";
                        db.Database.ExecuteSqlCommand(sql, pList.ToArray());
                    }
                }
                else
                {
                    result.ErrorMsg = result.ErrorMsg;
                }
            }
            catch (Exception ex)
            {
                result.ErrorMsg = ex.Message;
            }
            return(result);
        }
Exemplo n.º 16
0
        public NResult <EUserInfo> Register(InUserReg userReg)
        {
            NResult <EUserInfo> result        = new NResult <EUserInfo>();
            EUserInfo           ui            = null;
            EUserQRInvite       pQR           = null;
            SMSController       smsController = new SMSController();

            try
            {
                if (string.IsNullOrEmpty(userReg.Phone))
                {
                    result.ErrorMsg = "手机号不能未空";
                    return(result);
                }
                if (string.IsNullOrEmpty(userReg.Pwd))
                {
                    result.ErrorMsg = "密码不能为空";
                    return(result);
                }
                if (string.IsNullOrEmpty(userReg.VerifyCode))
                {
                    result.ErrorMsg = "验证码不能为空";
                    return(result);
                }
                OutAPIResult smsResult = smsController.ConfirmVerification(userReg.Phone, userReg.VerifyCode);

                if (!smsResult.IsSuccess)
                {
                    result.ErrorMsg = smsResult.ErrorMsg;
                    return(result);
                }
                using (OOContent db = new OOContent())
                {
                    using (TransactionScope ts = new TransactionScope())
                    {
                        //创建用户基本信息
                        ui = db.DBUserInfo.Where(a => a.Phone == userReg.Phone).FirstOrDefault();
                        if (ui != null)
                        {
                            result.ErrorMsg = "手机号已存在";
                            return(result);
                        }

                        ui = new EUserInfo();
                        //如果昵称或登陆名为空,则用手机号补充
                        if (string.IsNullOrEmpty(userReg.LoginName))
                        {
                            ui.LoginName = userReg.Phone;
                        }
                        if (string.IsNullOrEmpty(userReg.NickName))
                        {
                            ui.NickName = userReg.Phone;
                        }

                        ui.Phone            = userReg.Phone;
                        ui.Pwd              = userReg.Pwd;
                        ui.UserRole         = IQBCore.OO.BaseEnum.UserRole.User;
                        ui.RecordStatus     = IQBCore.OO.BaseEnum.RecordStatus.Normal;
                        ui.RegisterDateTime = DateTime.Now;
                        ui.RegisterChannel  = RegisterChannel.OOAPP;
                        db.DBUserInfo.Add(ui);

                        //检查邀请码
                        if (!string.IsNullOrEmpty(userReg.InviteCode))
                        {
                            pQR = db.DBUserQRInvite.Where(a => a.InviteCode == userReg.InviteCode).FirstOrDefault();
                            if (pQR == null)
                            {
                                result.ErrorMsg = "邀请码没有找到对应的用户";
                                return(result);
                            }
                        }
                        db.SaveChanges();

                        //创建用户邀请码
                        EUserQRInvite qr = new EUserQRInvite
                        {
                            InviteCode = StringHelper.GenerateUserInviteCode(ui.Phone),
                            QRPath     = "",
                            QRUrl      = "",
                            UserId     = ui.Id
                        };
                        db.DBUserQRInvite.Add(qr);

                        //用户关系
                        EUserRelation ur = new EUserRelation();
                        ur.UserId   = ui.Id;
                        ur.UserName = ui.NickName;

                        if (pQR != null)
                        {
                            ur.PId = pQR.UserId;
                        }
                        db.DBUserRelation.Add(ur);

                        //用户账户
                        EUserBalance ub = new EUserBalance();
                        ub.UserId       = ui.Id;
                        ub.Balance      = 0;
                        ub.CurrencyCode = CoreStatic.Instance.Sys.CurCurrencyCode;
                        db.DBUserBalance.Add(ub);

                        //用户回报
                        EUserReward reward = new EUserReward();
                        reward.UserId          = ui.Id;
                        reward.ADRewardRate    = CoreStatic.Instance.Sys.ADRewardRate;
                        reward.OrderRewardRate = CoreStatic.Instance.Sys.L1RewardRate;
                        reward.IntroRate       = CoreStatic.Instance.Sys.IntroRate;
                        db.DBUserReward.Add(reward);

                        //绑定用户设备和用户手机号
                        UpdateDevice(userReg.DeviceIdentify, userReg.Phone, db);

                        db.SaveChanges();

                        ts.Complete();
                    }

                    result.resultObj = ui;
                }
            }
            catch (Exception ex)
            {
                result.ErrorMsg = ex.Message;
                ErrorToDb(ex.Message);
            }
            return(result);
        }
Exemplo n.º 17
0
        public NResult <EUserTask> CreateUserTask(long UserId, long TaskId)
        {
            NResult <EUserTask> result = new NResult <EUserTask>();

            try
            {
                using (OOContent db = new OOContent())
                {
                    ETaskInfo task = db.DBTaskInfo.Where(a => a.Id == TaskId).FirstOrDefault();
                    if (task == null || task.RecordStatus == RecordStatus.Blocked)
                    {
                        result.IsSuccess = false;
                        result.ErrorMsg  = "任务已无效,请刷新界面再接受任务";
                        return(result);
                    }
                    //查找状态为【处理中】的订单,如果有则此任务不能接受
                    EUserTask userTask = db.DBUserTask.Where(a => a.TaskId == TaskId &&
                                                             a.UserId == UserId &&
                                                             a.UserTaskStatus == UserTaskStatus.Process).FirstOrDefault();

                    if (userTask != null)
                    {
                        result.IsSuccess = false;
                        result.ErrorMsg  = "已经有相同的任务在执行";
                        result.IntMsg    = -10;
                        result.resultObj = userTask;
                        return(result);
                    }
                    using (TransactionScope ts = new TransactionScope())
                    {
                        //用户接受任务
                        userTask                = new EUserTask();
                        userTask.UserId         = UserId;
                        userTask.TaskId         = TaskId;
                        userTask.UserTaskStatus = UserTaskStatus.Process;
                        userTask.CreatedTime    = DateTime.Now;
                        db.DBUserTask.Add(userTask);
                        db.SaveChanges();

                        //如果是订单任务,创建任务对应的订单
                        if (task.TaskType == TaskType.Order)
                        {
                            EUserTaskOrder userTaskOrder = new EUserTaskOrder()
                            {
                                OrderId    = StringHelper.GenerateOONo(),
                                Qty        = 1,
                                UserTaskId = userTask.Id
                            };
                            db.DBUserTaskOrder.Add(userTaskOrder);
                        }

                        db.SaveChanges();
                        ts.Complete();
                    }



                    result.resultObj = userTask;
                }
            }
            catch (Exception ex)
            {
                result.IsSuccess = false;
                result.ErrorMsg  = ex.Message;
                ErrorToDb(ex.Message);
            }
            return(result);
        }