예제 #1
0
 public Status InsertUser(UserExtend user)
 {
     DbParameter[] parameter =
     {
         DataParameter.GetSqlParam(dbUserEnity.Email.ToString(),      SqlDbType.VarChar,  30, user.Email,                 ParameterDirection.Input),
         DataParameter.GetSqlParam(dbUserEnity.UserName.ToString(),   SqlDbType.VarChar,  30, user.UserName,              ParameterDirection.Input),
         DataParameter.GetSqlParam(dbUserEnity.Password.ToString(),   SqlDbType.VarChar,  30, user.Password,              ParameterDirection.Input),
         DataParameter.GetSqlParam(dbUserEnity.FirstName.ToString(),  SqlDbType.VarChar,  30, user.FirstName,             ParameterDirection.Input),
         DataParameter.GetSqlParam(dbUserEnity.LastName.ToString(),   SqlDbType.VarChar,  30, user.LastName,              ParameterDirection.Input),
         DataParameter.GetSqlParam(dbUserEnity.Gender.ToString(),     SqlDbType.Int,      20, user.Gender,                ParameterDirection.Input),
         DataParameter.GetSqlParam(dbUserEnity.DOB.ToString(),        SqlDbType.DateTime, 30, user.DOB,                   ParameterDirection.Input),
         DataParameter.GetSqlParam(dbUserEnity.Status.ToString(),     SqlDbType.Int,      10, user.Status,                ParameterDirection.Input),
         DataParameter.GetSqlParam(dbUserEnity.SaltKey.ToString(),    SqlDbType.VarChar,   6, CommonFunctions.SaltKey(),  ParameterDirection.Input),
         DataParameter.GetSqlParam(dbUserEnity.ActiveGuid.ToString(), SqlDbType.VarChar,  50, Guid.NewGuid().ToString(),  ParameterDirection.Input),
         DataParameter.GetSqlParam("RETURN_VALUE",                    SqlDbType.Int,       0, ParameterDirection.Output),
     };
     try
     {
         return(new Status()
         {
             StatusId = CommonDBFunctions.ExecuteNonQuery(spUser.spUserInsert.ToString(), parameter), MsgDesc = AppConstant.SuccessMsg
         });
     }
     catch (SqlException ex)
     {
         throw ex;
     }
 }
예제 #2
0
        public Status InsertUser(Stream jsData)
        {
            UserExtend objUser    = new UserExtend();
            string     strGetData = CommonFunctions.ReadJSON(jsData);

            try
            {
                JavaScriptSerializer jss = new JavaScriptSerializer();
                objUser = jss.Deserialize <UserExtend>(strGetData);
            }
            catch (Exception e) {
                return(new Status()
                {
                    StatusId = AppConstant.HackeAccess, MsgDesc = AppConstant.ErrorHackerMsg
                });
            }

            try
            {
                return(new UserController().InsertUser(objUser));
            }
            catch (Exception ex)
            {
                LogManager.LogMessage(ex, new MessageStructure("Insert User", MessageSeverity.Exception));
                return(new Status()
                {
                    StatusId = AppConstant.Exception, MsgDesc = AppConstant.ExceptionMsg
                });
            }
        }
        private void AddFirstRechargeGift(string uid, float price)
        {
            var commonConfig = NHibernateHelper.commonConfigManager.GetByUid(uid);

            if (commonConfig == null)
            {
                commonConfig = ModelFactory.CreateConfig(uid);
            }
            if (commonConfig.first_recharge_gift == 0)
            {
                if (price >= 6)
                {
                    commonConfig.first_recharge_gift = 1;
                    NHibernateHelper.commonConfigManager.Update(commonConfig);
                    SendEmailUtil.SendEmail(uid, "首充礼包", "恭喜你获得首充礼包", "1:30000;107:30;101:6;106:3;110:2");

                    UserExtend userExtend = MySqlManager <UserExtend> .Instance.GetByUid(uid);

                    if (userExtend?.task2 == 1)
                    {
                        userExtend.task2 = 2;
                        MySqlManager <UserExtend> .Instance.Update(userExtend);
                    }
                }
            }
        }
예제 #4
0
        public int AddUserLetterByUser()
        {
            HttpContextBase context        = (HttpContextBase)Request.Properties["MS_HttpContext"];
            HttpRequestBase request        = context.Request;
            Authentication  authentication = new Authentication(request);

            if (!string.IsNullOrEmpty(authentication.state))
            {
                return(0);
            }
            using (Entity entity = new Entity())
            {
                UserExtend userExtend = entity.UserExtend.Find(authentication.userID);
                if (userExtend.Banned == 1 && userExtend.BannedEndTime > DateTime.Now)
                {
                    return(0);
                }
            }
            using (Entity entity = new Entity())
            {
                int ID    = Convert.ToInt32(request["ID"]);
                var black = entity.UserBlacklist.Where(userBlacklisto => userBlacklisto.InitiativeUserID == ID && userBlacklisto.PassivityUserID == authentication.userID).Count() > 0;
                if (black)
                {
                    return(0);
                }
                UserLetter o = UserLetterBLL.Create(authentication.userID, ID, request["Text"], 5);
                var        UserLetterList = new List <UserLetter>();
                o.User = entity.User.Find(authentication.userID);
                return(1);
            }
        }
예제 #5
0
        public List <UserLetter> AddUserLetter()
        {
            HttpContextBase context        = (HttpContextBase)Request.Properties["MS_HttpContext"];
            HttpRequestBase request        = context.Request;
            Authentication  authentication = new Authentication(request);

            if (!string.IsNullOrEmpty(authentication.state))
            {
                return(new List <UserLetter>());
            }
            using (Entity entity = new Entity())
            {
                UserExtend userExtend = entity.UserExtend.Find(authentication.userID);
                if (userExtend.Banned == 1 && userExtend.BannedEndTime > DateTime.Now)
                {
                    return(null);
                }
            }
            using (Entity entity = new Entity())
            {
                int ID = Convert.ToInt32(request["ID"]);

                int PassivityUserID = entity.UserLetter.Find(ID).InitiativeUserID;

                var black = entity.UserBlacklist.Where(userBlacklisto => userBlacklisto.InitiativeUserID == PassivityUserID && userBlacklisto.PassivityUserID == authentication.userID).Count() > 0;
                if (black)
                {
                    return(null);
                }

                UserLetter o = UserLetterBLL.Create(authentication.userID, PassivityUserID, request["Text"], 5);
                var        UserLetterList = new List <UserLetter>();
                o.User = entity.User.Find(authentication.userID);
                UserLetterList.Add(new UserLetter()
                {
                    InitiativeUserID = o.InitiativeUserID,
                    PassivityUserID  = o.PassivityUserID,
                    Text             = o.Text,
                    Type             = o.Type,
                    CreateTime       = o.CreateTime,
                    User             = new User()
                    {
                        HeadPortrait = ConfigurationManager.AppSettings["UploadUrl"] + o.User.HeadPortrait,
                        UserID       = o.User.UserID,
                        NickName     = o.User.NickName,
                        UserExtend   = new UserExtend()
                        {
                            ExperienceLevel = o.User.UserExtend.ExperienceLevel,
                            ExperienceName  = o.User.UserExtend.ExperienceName,
                        }
                    },
                    UserLetterID = o.UserLetterID
                });
                return(UserLetterList);
            }
        }
예제 #6
0
        public JsonResult CheckLogin(sys_user model)
        {
            bool Result   = false;
            var  UserInfo = userbll.GetUserInfo(model.Account, MD5Provider.getStringMd5Hash(model.PassWord));

            if (UserInfo != null)
            {
                Result = true;
                #region 保存登陆信息
                var    filePath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "appsettings.json");
                string result   = string.Empty;
                using (var streamReader = System.IO.File.OpenText(filePath))
                {
                    result = streamReader.ReadToEnd();
                }
                JObject jobject = (JObject)JsonConvert.DeserializeObject(result.Replace("\r\n", ""));
                appsettings = JsonConvert.DeserializeObject <AppSettings>(jobject["AppSettings"].ToString());

                if (Convert.ToBoolean(appsettings.Redis.IsEnable))
                {
                    //redis方式
                    RedisHelper rh = new RedisHelper(appsettings);
                    UserExtend  ue = new UserExtend
                    {
                        KeyId       = UserInfo.KeyId,
                        Account     = UserInfo.Account,
                        FullName    = UserInfo.FullName,
                        HeadImg     = UserInfo.HeadImg,
                        WebLastTime = DateTime.Now
                    };
                    rh.Set(UserInfo.KeyId, JsonConvert.SerializeObject(ue));
                }
                else
                {
                    //session方式
                    HttpContext.Session.SetString(ConstConfig.AdminSession, JsonConvert.SerializeObject(UserInfo));
                }

                /****用cookie保存登录id,即使session丢失也不必重新登录****/
                HttpContext.Response.Cookies.Append(ConstConfig.AdminCookie, UserInfo.KeyId, new CookieOptions
                {
                    Expires = DateTime.Now.AddHours(5)
                });
                //全局配置的静态类成员再赋值,保证配置文件被更改后立即登陆就不用重启才生效(折中办法)
                WebJsonConfig.JsonInfo = JsonConvert.SerializeObject(appsettings);
                #endregion
            }
            return(Json(new { Result = Result }));
        }
예제 #7
0
 // Handles a viewers attempt to extend the currently hosted streamer
 public bool handleExtend(string username)
 {
     //Check to see if viewer has already used an extend
     if (currentHost != null)
     {
         foreach (UserExtend extend in extends)
         {
             if (extend.Username.ToLower() == username.ToLower())
             {
                 if (extend.RemainingExtends > 0)
                 {
                     curMinute -= extend.ExtendBy;
                     int extendsRemaining = extend.useExtend();
                     if (extendsRemaining > 0)
                     {
                         Common.ChatClient.SendMessage(string.Format("{0} has extended {1}'s host by {2} minutes! They have {3} remaining host extension(s).",
                                                                     extend.Username, currentHost.Streamer, extendDuration, extend.RemainingExtends), Common.DryRun);
                     }
                     else
                     {
                         Common.ChatClient.SendMessage(string.Format("{0} has extended {1}'s host by {2} minutes! They have no remaining host extensions.",
                                                                     extend.Username, currentHost.Streamer, extend.ExtendBy), Common.DryRun);
                     }
                     return(true);
                 }
                 else
                 {
                     Common.ChatClient.SendMessage(string.Format("You have used all of your allotted extends for this host, {0}.", extend.Username), Common.DryRun);
                     return(false);
                 }
             }
         }
         //Viewer has not used extend, create new listing for them
         curMinute -= extendDuration;
         UserExtend newExtend = new UserExtend(username, extendsAllowed, extendDuration);
         extends.Add(newExtend);
         Common.ChatClient.SendMessage(string.Format("{0} has extended {1}'s host by {2} minutes! They have {3} remaining host extension(s).",
                                                     newExtend.Username, currentHost.Streamer, extendDuration, newExtend.RemainingExtends), Common.DryRun);
         return(true);
     }
     else
     {
         Common.ChatClient.SendMessage("The currently hosted streamer cannot be extended.", Common.DryRun);
         return(false);
     }
 }
예제 #8
0
        private void BindCode(string uid, string code, JObject responseData)
        {
            UserInfo userInfo = MySqlManager <UserInfo> .Instance.GetUserInfoByCode(code);

            if (userInfo == null)
            {
                OperatorFail(responseData, "该推广码不存在");
            }
            else
            {
                UserExtend userExtend = MySqlManager <UserExtend> .Instance.GetByUid(uid);

                if (userExtend != null)
                {
                    OperatorFail(responseData, "您已绑定推广码");
                }
                else
                {
                    if (userInfo.Uid == uid)
                    {
                        OperatorFail(responseData, "不能绑定自己的推广码");
                        return;
                    }

                    userExtend = new UserExtend()
                    {
                        Uid        = uid,
                        extend_uid = userInfo.Uid,
                        task1      = 1,
                        task2      = 1
                    };

                    if (MySqlManager <UserExtend> .Instance.Add(userExtend))
                    {
                        responseData.Add("reward", "121:1");
                        MySqlUtil.AddProp(uid, "121:1", "绑定推广码奖励");
                        OperatorSuccess(responseData, "绑定成功");
                    }
                    else
                    {
                        OperatorFail(responseData, "添加数据失败");
                    }
                }
            }
        }
예제 #9
0
 // Handles a viewers attempt to extend the currently hosted streamer
 public bool handleExtend(string username)
 {
     //Check to see if viewer has already used an extend
     if (currentHost != null)
     {
         foreach (UserExtend extend in extends)
         {
             if (extend.Username.ToLower() == username.ToLower())
             {
                 if (extend.RemainingExtends > 0)
                 {
                     curMinute -= extend.ExtendBy;
                     int extendsRemaining = extend.useExtend();
                     if (extendsRemaining > 0)
                         Common.ChatClient.SendMessage(string.Format("{0} has extended {1}'s host by {2} minutes! They have {3} remaining host extension(s).",
                             extend.Username, currentHost.Streamer, extendDuration, extend.RemainingExtends), Common.DryRun);
                     else
                         Common.ChatClient.SendMessage(string.Format("{0} has extended {1}'s host by {2} minutes! They have no remaining host extensions.",
                             extend.Username, currentHost.Streamer, extend.ExtendBy), Common.DryRun);
                     return true;
                 } else
                 {
                     Common.ChatClient.SendMessage(string.Format("You have used all of your allotted extends for this host, {0}.", extend.Username), Common.DryRun);
                     return false;
                 }
             }
         }
         //Viewer has not used extend, create new listing for them
         curMinute -= extendDuration;
         UserExtend newExtend = new UserExtend(username, extendsAllowed, extendDuration);
         extends.Add(newExtend);
         Common.ChatClient.SendMessage(string.Format("{0} has extended {1}'s host by {2} minutes! They have {3} remaining host extension(s).",
                             newExtend.Username, currentHost.Streamer, extendDuration, newExtend.RemainingExtends), Common.DryRun);
         return true;
     } else
     {
         Common.ChatClient.SendMessage("The currently hosted streamer cannot be extended.", Common.DryRun);
         return false;
     }
 }
        public void OnActionExecuting(ActionExecutingContext filterContext)
        {
            //权限拦截是否忽略
            if (EnumModel == PermissionEnum.Ignore)
            {
                return;
            }

            //登陆者Cookie主键ID
            string      KeyId    = filterContext.HttpContext.Request.Cookies[ConstConfig.AdminCookie];
            var         userJson = string.Empty;
            RedisHelper rh       = null;

            if (appsetting != null && Convert.ToBoolean(appsetting.Redis.IsEnable))
            {
                //登陆者Redis信息
                rh       = new RedisHelper(appsetting);
                userJson = rh.Get(KeyId);
            }
            else
            {
                //登陆者Session信息
                userJson = filterContext.HttpContext.Session.GetString(ConstConfig.AdminSession);
            }

            UserExtend user = null;

            if (!string.IsNullOrEmpty(userJson))
            {
                user = JsonConvert.DeserializeObject <UserExtend>(userJson);
            }

            if (user == null)
            {
                #region 验证cookie数据是否能登录
                var entity = bll.GetUserInfo(KeyId);
                if (entity != null)
                {
                    filterContext.HttpContext.Session.SetString(ConstConfig.AdminSession, JsonConvert.SerializeObject(entity));
                }
                else
                {
                    //跳转到登录页面
                    filterContext.Result = new RedirectToRouteResult(new RouteValueDictionary(new { area = "Admin", controller = "Login", action = "Index" }));
                }
                #endregion
            }
            else
            {
                // 权限拦截与验证
                var area       = filterContext.RouteData.Values["area"].ToString().ToLower();
                var controller = filterContext.RouteData.Values["controller"].ToString().ToLower();
                var action     = filterContext.RouteData.Values["action"].ToString().ToLower();
                action = TempAction == null ? action : TempAction.ToLower();//取方法对应的权限
                var isAllowed = this.IsAllowed(user.KeyId, area, controller, action);
                //权限不允许,也不是超级管理员
                if (!isAllowed)
                {
                    if (appsetting != null && Convert.ToBoolean(appsetting.Redis.IsEnable))
                    {
                        user.WebLastTime = DateTime.Now;
                        rh.Set(user.KeyId, JsonConvert.SerializeObject(user));
                    }
                    //跳转到登录页面
                    filterContext.Result = new RedirectToRouteResult(new RouteValueDictionary(new { area = "Admin", controller = "Login", action = "Index" }));
                }
            }
        }
        private void RecordUserGameDataSql(string uid, string room_type, int actionType)
        {
            UserGame userGame = NHibernateHelper.userGameManager.GetByUid(uid);

            if (userGame == null)
            {
                MySqlService.log.Warn("userGame表内没有改uid:" + uid);
            }
            else
            {
                switch (actionType)
                {
                case (int)Consts.GameAction.GameAction_StartGame:
                    userGame.AllGameCount++;
                    userGame.DailyGameCount++;
                    //当天每玩一局,转盘次数加1;
                    if (userGame.DailyGameCount <= 3)
                    {
                        UserInfo userInfo = NHibernateHelper.userInfoManager.GetByUid(uid);
                        userInfo.freeCount++;
                        NHibernateHelper.userInfoManager.Update(userInfo);
                        MySqlService.log.Info($"{uid}-{userInfo.NickName}的转盘次数加1,当前为{userInfo.freeCount}");
                    }


                    if (room_type.Equals(Consts.GameRoomType_XiuXian_JingDian_ChuJi))
                    {
                        userGame.XianxianJDPrimary++;
                    }
                    else if (room_type.Equals(Consts.GameRoomType_XiuXian_ChaoDi_ZhongJi))
                    {
                        userGame.XianxianJDMiddle++;
                    }
                    else if (room_type.Equals(Consts.GameRoomType_XiuXian_JingDian_GaoJi))
                    {
                        userGame.XianxianCDHigh++;
                    }
                    else if (room_type.Equals(Consts.GameRoomType_XiuXian_ChaoDi_ChuJi))
                    {
                        userGame.XianxianCDPrimary++;
                    }
                    else if (room_type.Equals(Consts.GameRoomType_XiuXian_ChaoDi_ZhongJi))
                    {
                        userGame.XianxianCDMiddle++;
                    }
                    else if (room_type.Equals(Consts.GameRoomType_XiuXian_ChaoDi_GaoJi))
                    {
                        userGame.XianxianCDHigh++;
                    }

                    break;

                case (int)Consts.GameAction.GameAction_Win:
                    userGame.WinCount++;
                    UserExtend userExtend = MySqlManager <UserExtend> .Instance.GetByUid(uid);

                    if (userExtend?.task1 == 1)
                    {
                        userExtend.task1 = 2;
                        MySqlManager <UserExtend> .Instance.Update(userExtend);
                    }

                    break;

                case (int)Consts.GameAction.GameAction_Run:
                    userGame.RunCount++;
                    break;

                default:
                    MySqlService.log.Warn("没有该actionType:" + actionType);
                    break;
                }

                MySqlService.log.Info("RecordUserGameDataHandler-actionType:" + actionType + "room_type:" + room_type);
                if (NHibernateHelper.userGameManager.Update(userGame))
                {
                }
                else
                {
                    MySqlService.log.Warn("userGame表更新失败+" + actionType);
                }
            }
        }
        public string CreatePost()
        {
            HttpContextBase context        = (HttpContextBase)Request.Properties["MS_HttpContext"];
            HttpRequestBase request        = context.Request;
            Authentication  authentication = new Authentication(request);

            if (!string.IsNullOrEmpty(authentication.state))
            {
                return(null);
            }
            using (Entity entity = new Entity())
            {
                UserExtend userExtend = entity.UserExtend.Find(authentication.userID);
                if (userExtend.Banned == 1 && userExtend.BannedEndTime > DateTime.Now)
                {
                    throw new Exception("禁言中...");
                }
            }
            string circleTypeIDTemp = request["id"];

            if (circleTypeIDTemp == null)
            {
                return(null);
            }
            int circleTypeID;

            if (!int.TryParse(circleTypeIDTemp, out circleTypeID))
            {
                return(null);
            }
            CirclePost circlePost = new CirclePost();

            circlePost.Title   = request["Title"];
            circlePost.Detail  = request["Detail"];
            circlePost.ImgList = request["ImgList"];
            string DetailDigest = request["DetailDigest"] ?? "";

            if (DetailDigest.Length > 50)
            {
                DetailDigest = DetailDigest.Substring(0, 50);
            }
            circlePost.DetailDigest = DetailDigest;
            circlePost.UserID       = authentication.userID;
            circlePost.CircleTypeID = circleTypeID;
            circlePost.CreateTime   = DateTime.Now;
            circlePost.UpdateTime   = DateTime.Now;
            circlePost.State        = 1;
            if (request["didian"] == "1")
            {
                circlePost.State |= 128;
            }
            float x;

            float.TryParse(request["longitude"], out x);
            circlePost.CoordX = x;
            float y;

            float.TryParse(request["latitude"], out y);
            circlePost.CoordY   = y;
            circlePost.Province = request["adre"];
            circlePost.City     = request["city"];

            using (Entity entity = new Entity())
            {
                entity.CirclePost.Add(circlePost);
                entity.SaveChanges();
            }
            return("{message:'" + circlePost.CirclePostID.ToString() + "'}");
        }
        public CirclePostReplyChild CreateReplyChild()
        {
            HttpContextBase context        = (HttpContextBase)Request.Properties["MS_HttpContext"];
            HttpRequestBase request        = context.Request;
            Authentication  authentication = new Authentication(request);

            if (!string.IsNullOrEmpty(authentication.state))
            {
                return(null);
            }
            using (Entity entity = new Entity())
            {
                UserExtend userExtend = entity.UserExtend.Find(authentication.userID);
                if (userExtend.Banned == 1 && userExtend.BannedEndTime > DateTime.Now)
                {
                    throw new Exception("禁言中...");
                }
            }
            string circlePostIDTemp = request["circlePostID"];

            if (circlePostIDTemp == null)
            {
                return(null);
            }
            if (request["text"] == null)
            {
                return(null);
            }
            int circlePostID;

            if (!int.TryParse(circlePostIDTemp, out circlePostID))
            {
                return(null);
            }
            int CirclePostReplyID = Convert.ToInt32(request["circlePostReplyID"]);

            using (Entity entity = new Entity())
            {
                CirclePost circlePost = entity.CirclePost.Find(circlePostID);
                circlePost.ReplyNum++;
                circlePost.UpdateTime = DateTime.Now;
                CirclePostReplyChild circlePostReplyChild = new CirclePostReplyChild()
                {
                    InitiativeUserID  = authentication.userID,
                    PassivityUserID   = circlePost.UserID,
                    CirclePostID      = circlePostID,
                    CirclePostReplyID = CirclePostReplyID,
                    Detail            = request["text"],
                    ImgList           = request["imglist"],
                    State             = 0,
                    CreateTime        = DateTime.Now,
                };
                circlePost.CirclePostReplyChild.Add(circlePostReplyChild);
                new ExperienceLevelBLL().CirclePostReply(authentication.userID);
                entity.SaveChanges();
                if (authentication.userID != circlePost.UserID)
                {
                    var    user = entity.User.Find(authentication.userID);
                    string text = string.Format(" {0} 回复了您的帖子 {1}", user.NickName, circlePost.Title);
                    UserLetterBLL.Create(1, circlePost.UserID, text, 1 | 16, circlePost.CirclePostID);
                }

                return(entity.CirclePostReplyChild.Include("User").Where(o => o.CirclePostReplyChildID == circlePostReplyChild.CirclePostReplyChildID).ToList().Select(o =>
                                                                                                                                                                       new CirclePostReplyChild()
                {
                    InitiativeUserID = o.InitiativeUserID,
                    Detail = o.Detail,
                    ImgList = XFXExt.imgList(o.ImgList, ConfigurationManager.AppSettings["UploadUrl"], false),
                    User = new User()
                    {
                        NickName = o.User.NickName,
                        UserID = o.User.UserID
                    }
                }
                                                                                                                                                                       ).First());
            }
        }
        public IEnumerable <CirclePostReply> CreateReply()
        {
            HttpContextBase context        = (HttpContextBase)Request.Properties["MS_HttpContext"];
            HttpRequestBase request        = context.Request;
            Authentication  authentication = new Authentication(request);

            if (!string.IsNullOrEmpty(authentication.state))
            {
                return(null);
            }
            using (Entity entity = new Entity())
            {
                UserExtend userExtend = entity.UserExtend.Find(authentication.userID);
                if (userExtend.Banned == 1 && userExtend.BannedEndTime > DateTime.Now)
                {
                    throw new Exception("禁言中...");
                }
            }
            string circlePostIDTemp = request["id"];

            if (circlePostIDTemp == null)
            {
                return(null);
            }
            if (request["text"] == null)
            {
                return(null);
            }
            int circlePostID;

            if (!int.TryParse(circlePostIDTemp, out circlePostID))
            {
                return(null);
            }
            using (Entity entity = new Entity())
            {
                CirclePost circlePost = entity.CirclePost.Find(circlePostID);
                circlePost.ReplyNum++;
                circlePost.UpdateTime = DateTime.Now;
                CirclePostReply circlePostReply = new CirclePostReply()
                {
                    UserID       = authentication.userID,
                    CirclePostID = circlePostID,
                    Detail       = request["text"],
                    ImgList      = request["imglist"],
                    State        = 0,
                    CreateTime   = DateTime.Now,
                    Floor        = circlePost.ReplyNum
                };
                circlePost.CirclePostReply.Add(circlePostReply);
                new ExperienceLevelBLL().CirclePostReply(authentication.userID);
                entity.SaveChanges();
                if (authentication.userID != circlePost.UserID)
                {
                    var    user = entity.User.Find(authentication.userID);
                    string text = string.Format(" {0} 回复了您的帖子 {1}", user.NickName, circlePost.Title);
                    UserLetterBLL.Create(1, circlePost.UserID, text, 1 | 16, circlePost.CirclePostID);
                }


                return(entity.CirclePostReply.Include("User").Include("User.UserExtend").Where(o => o.CirclePostReplyID == circlePostReply.CirclePostReplyID).ToList()
                       .Select(o => new CirclePostReply()
                {
                    CirclePostReplyID = o.CirclePostReplyID,
                    CirclePostID = o.CirclePostID,
                    Detail = o.Detail,
                    ImgList = XFXExt.imgList(o.ImgList, ConfigurationManager.AppSettings["UploadUrl"], false),
                    User = new User()
                    {
                        NickName = o.User.NickName,
                        UserExtend = new UserExtend()
                        {
                            ExperienceLevel = o.User.UserExtend.ExperienceLevel,
                            ExperienceName = o.User.UserExtend.ExperienceName
                        },
                        UserID = o.UserID,
                        Gender = o.User.Gender,
                        Location = o.User.Location,
                        HeadPortrait = ConfigurationManager.AppSettings["UploadUrl"] + o.User.HeadPortrait,
                        Type = o.User.Type.getUserType()
                    },
                    UserID = o.UserID,
                    Floor = o.Floor,
                    State = o.State,
                    CreateTime = o.CreateTime,
                }));
            }
        }
예제 #15
0
파일: UserService.cs 프로젝트: radtek/XuHos
        /// <summary>
        /// 用户注册(新)
        /// </summary>
        /// <param name="model"></param>
        public bool RegisterUser(XuHos.Entity.User model, out string Reason,
                                 string openid = null, string appid = null)
        {
            Reason = "注册失败";
            var password = model.Password;
            var result   = true;

            try
            {
                #region 检查是否支持此类型的用户注册
                if (model.UserType != EnumUserType.Doctor && model.UserType != EnumUserType.User &&
                    model.UserType != EnumUserType.SysAdmin)
                {
                    Reason = "不支持的用户类型";
                    return(false);
                }
                #endregion


                using (DBEntities db = new DBEntities())
                {
                    #region 用户信息
                    if (string.IsNullOrEmpty(model.UserID))
                    {
                        model.UserID = Guid.NewGuid().ToString("N");
                    }

                    //密码
                    model.Password = StringEncrypt.EncryptWithMD5(model.Password);
                    //用户状态
                    model.UserState = EnumUserState.Disabled;

                    db.Users.Add(model);

                    UserExtend userExtend = new UserExtend();
                    userExtend.UserID   = model.UserID;
                    userExtend.LastTime = DateTime.Now;

                    db.UserExtends.Add(userExtend);

                    if (!string.IsNullOrEmpty(openid))
                    {
                        UserWechatMap userWechatMap = new UserWechatMap();
                        userWechatMap.UserID = model.UserID;
                        userWechatMap.OpenID = openid;
                        userWechatMap.AppID  = appid;
                        db.UserWechatMaps.Add(userWechatMap);
                    }

                    #endregion

                    #region 家庭成员
                    UserMember userMember = null;
                    if (model.UserType == EnumUserType.User)
                    {
                        userMember          = new UserMember();
                        userMember.MemberID = Guid.NewGuid().ToString("N");

                        if (!string.IsNullOrEmpty(model.Mobile))
                        {
                            userMember.Mobile = model.Mobile;
                        }
                        else
                        {
                            userMember.Mobile = "";
                        }

                        userMember.UserID     = model.UserID;
                        userMember.IDType     = EnumUserCardType.IDCard;
                        userMember.Address    = "";
                        userMember.Birthday   = "";
                        userMember.Email      = "";
                        userMember.Gender     = EnumUserGender.Other;
                        userMember.IsDefault  = true;
                        userMember.Marriage   = EnumUserMaritalStatus.Other;
                        userMember.MemberName = model.UserCNName;
                        userMember.PostCode   = "";
                        userMember.Relation   = EnumUserRelation.MySelf;
                        db.UserMembers.Add(userMember);
                    }
                    #endregion

                    #region 用户标识
                    db.ConversationIMUids.Add(new ConversationIMUid()
                    {
                        Identifier = Convert.ToInt32(WaterNoService.GetWaterNo(EnumWaterNoType.Identify)),
                        Enable     = false,
                        IsDeleted  = false,
                        CreateTime = DateTime.Now,
                        UserID     = model.UserID
                    });
                    #endregion

                    if (db.SaveChanges() >= 0)
                    {
                        #region 将注册消息写入队列,队列中发送短信和注册云通信
                        using (XuHos.EventBus.MQChannel mqChannel = new EventBus.MQChannel())
                        {
                            mqChannel.Publish <EventBus.Events.UserRegisteredEvent>(new EventBus.Events.UserRegisteredEvent()
                            {
                                UserAccount  = model.UserAccount,
                                UserID       = model.UserID,
                                UserPassword = password,
                                UserType     = model.UserType,
                                OrgCode      = model.OrgCode,
                                Mobile       = model.Mobile,
                            });
                        }
                        #endregion

                        result = true;
                        Reason = "注册成功";
                    }
                    else
                    {
                        Reason = "注册失败";
                    }
                }
            }
            catch (Exception ex)
            {
                Reason = "系统错误";
                result = false;
                throw ex;
            }
            return(result);
        }