public void ExecuteCommand(GameSession session, ProtobufRequestInfo requestInfo) { log4net.ILog log = log4net.LogManager.GetLogger("ColoredConsoleAppender"); var info = RequestUserInfo.ParseFrom(requestInfo.Body); DAL.DAL.Business business = new DAL.DAL.Business(); //获取用户积分消费卷信息 IntegralInfo integralInfo = business.GetIntegralInfo(info.UserID); byte[] data = null; if (integralInfo == null) { log.Error("用户不存在"); business.InsertIntegralInfo(info.UserID); data = ResponseUserInfo.CreateBuilder().SetUserID(info.UserID).SetRoomCard(0).SetIntegral(0).SetCoupons(0).Build().ToByteArray(); session.Send(new ArraySegment <byte>(CreateHead.CreateMessage(10041, data.Length, requestInfo.MessageNum, data))); session.Close(); return; } data = ResponseUserInfo.CreateBuilder().SetUserID(integralInfo.userID).SetRoomCard((int)integralInfo.roomCard).SetIntegral((double)integralInfo.integral).SetCoupons((double)integralInfo.coupons).Build().ToByteArray(); session.Send(new ArraySegment <byte>(CreateHead.CreateMessage(10041, data.Length, requestInfo.MessageNum, data))); session.Close(); return; }
/// <summary> /// 更新用户信息,不存在则创建 /// </summary> /// <param name="userInfo"></param> /// <returns></returns> private async Task <IUser> UpdateUserAsync(ResponseUserInfo userInfo) { var user = await _userService.FindByNameAsync(userInfo.Name); var names = new[] { nameof(IUser.Name), nameof(IUser.DisplayName), nameof(IUser.Avatar), nameof(IUser.Sex), }; var values = new object[] { userInfo.Name, userInfo.DisplayName, userInfo.Avatar, userInfo.Sex }; if (user == null) { // 创建用户没有密码会报错 var nList = new List <string>(names); nList.Add(nameof(IUser.Password)); var vList = new List <object>(values); vList.Add("123456"); await _userService.CreateAsync(names, values); } else { await _userService.UpdateAsync(names, values); } user = await _userService.FindByNameAsync(userInfo.Name); return(user); }
public async Task <IActionResult> Login([FromBody] LoginViewModel model) { if (ModelState.IsValid) { var user = await _userManager.FindByNameAsync(model.Login); if (user != null) { if (!await _userManager.IsEmailConfirmedAsync(user)) { ModelState.AddModelError(string.Empty, "You did not verify your email address"); return(View(model)); } } var result = await _signInManager.PasswordSignInAsync(model.Login, model.Password, false, false); if (!result.Succeeded) { ModelState.AddModelError("", "Incorrect login and(or) password"); } else { DateTime thisDay = DateTime.Now; UserProfile userProfile = _db.UserProfile.FirstOrDefault(p => p.User.UserName == model.Login); userProfile.LastLogInDate = thisDay.ToString(); ResponseUserInfo responseUserInfo = new ResponseUserInfo { Id = userProfile.Id, Login = userProfile.User.UserName, Color = userProfile.Color, Language = userProfile.Language, Role = userProfile.Role, Token = userProfile.User.SecurityStamp }; _db.SaveChanges(); return(Ok(responseUserInfo)); } } return(BadRequest(ModelState)); }
/// <summary> /// 数据转换组装 输出数据 /// </summary> /// <returns></returns> private ResponseUserInfo UserDataChange(UsersModel user) { ResponseUserInfo resu = new ResponseUserInfo() { mobilephone = user.mobilephone, nickname = user.nickname, city = user.city, province = user.province, country = user.country, gender = user.sex.ToString() }; return(resu); }
public ApiResult <ResponseUserInfo> GetUserInfo() { //var principal = User; var identity = User.Identity as IUser; if (identity == null) { throw ApiException.Common(RequestLocalizer["User type error"], 500); } var data = new ResponseUserInfo(); data.Copy(identity, false, "Roles"); data.SetRoles(identity.Roles); return(ApiResult.Ok(data)); }
/// <summary> /// 根据用户信息 /// </summary> /// <param name="openid"></param> /// <param name="access_token"></param> /// <returns></returns> public ResponseUserInfo GetOAUserInfo(string openid, string access_token) { string param = string.Format("?access_token={0}&openid={1}&lang=zh_CN", access_token, openid); string res = HttpHelper.HttpGet(WechatRequestUrlUtil.UserInfoUrl + param);//get请求token if (!string.IsNullOrEmpty(res)) { ResponseUserInfo u = JsonConvert.DeserializeObject <ResponseUserInfo>(res); if (u.errcode != 0) { LogHelper.WarnLog("警告:根据用户基本信息异常,异常代码" + u.errcode + ",异常描述" + u.errmsg); } return(u); } else { return(null); } }
/// <summary> /// 创建登录记录 /// </summary> /// <param name="userInfo"></param> /// <param name="token"></param> /// <returns></returns> private async Task <AuthenticateResult> LocalSignIn(ResponseUserInfo userInfo, string token) { var u = await UpdateUserAsync(userInfo); var uc = UserConnect.FindByProviderAndOpenID(Idp, userInfo.Name) ?? new UserConnect { Provider = Idp, UserID = u.ID, OpenID = userInfo.Name, LinkID = userInfo.ID.ToInt(), Enable = true }; uc.AccessToken = token; uc.Avatar = userInfo.Avatar; uc.NickName = userInfo.DisplayName; uc.Expire = GetExpire(token); uc.Save(); return(GetAuthenticateResult(uc)); }
/// <summary> /// 获取房卡 /// </summary> /// <param name="userID"></param> /// <returns></returns> public static long GetRoomCard(long userID) { var data = RequestUserInfo.CreateBuilder().SetUserID(userID.ToString()).Build().ToByteArray(); try { var resData = new MySocket(host, port).SendReceive(CreateHead.CreateMessage(10040, data.Length, 0, data)); if (resData.FirstOrDefault() != null) { var roomcard = ResponseUserInfo.ParseFrom(resData.FirstOrDefault().Data).RoomCard; // MyLogger.Logger.Info("请求房卡:" + roomcard); return(roomcard); } } catch (Exception ex) { MyLogger.Logger.Error("请求扣除房卡异常:" + ex); } return(0); //测试 // return 5000; }
public void ExecuteCommand(GameSession session, ProtobufRequestInfo requestInfo) { log4net.ILog log = log4net.LogManager.GetLogger("ColoredConsoleAppender"); // ILog log = log4net.LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); var info = RoomCardBusiness.ParseFrom(requestInfo.Body); DAL.DAL.Business business = new DAL.DAL.Business(); //获取用户积分消费卷信息 IntegralInfo integralInfo = business.GetIntegralInfo(info.UserID); if (integralInfo == null) { log.Error("用户不存在"); business.InsertIntegralInfo(info.UserID); var data = ResponseUserInfo.CreateBuilder().SetUserID(info.UserID).SetRoomCard(0).SetIntegral(0).SetCoupons(0).Build().ToByteArray(); session.Send(new ArraySegment <byte>(CreateHead.CreateMessage(10041, data.Length, requestInfo.MessageNum, data))); session.Close(); return; } #region 以前代码 可能有用 ////获取业务信息 //BusinessModel businessInfo = business.SelectBusiness(info.BusinessID); //if (businessInfo == null) //{ // log.Error("该业务不存在"); // var data = Result.CreateBuilder().SetStatus(0).SetMessage("该业务不存在").Build().ToByteArray(); // session.Send(new ArraySegment<byte>(CreateHead.CreateMessage(10001, data.Length, requestInfo.MessageNum, data))); // session.Close(); // return; //} ////获取操作方式 //ActionModel actionInfo = business.SelectAction(businessInfo.action_id); ////判断余额是否充足 //if (actionInfo.action=="-") //{ // if (business.GetIntegralInfo(info.UserID, businessInfo.type) - info.Counts < 0) // { // var data = Result.CreateBuilder().SetStatus(0).SetMessage("当前余量不足").Build().ToByteArray(); // session.Send(new ArraySegment<byte>(CreateHead.CreateMessage(10001, data.Length, requestInfo.MessageNum, data))); // session.Close(); // return; // } //} //integralInfo = business.UpdateIntegralInfo(info.UserID, businessInfo.type, actionInfo, info.Counts); #endregion // 处理业务 更新积分信息并返回 decimal newRoomCard = integralInfo.roomCard - info.Counts; if (newRoomCard < 0) { var data = Result.CreateBuilder().SetStatus(0).SetMessage("当前余量不足").Build().ToByteArray(); session.Send(new ArraySegment <byte>(CreateHead.CreateMessage(10001, data.Length, requestInfo.MessageNum, data))); session.Close(); return; } bool reslut = business.UpdataRoomCard(info.UserID, newRoomCard); if (!reslut) { var dataResult1 = Result.CreateBuilder().SetStatus(0).SetMessage("更新失败").Build().ToByteArray(); session.Send(new ArraySegment <byte>(CreateHead.CreateMessage(10001, dataResult1.Length, requestInfo.MessageNum, dataResult1))); session.Close(); return; } log.Info("更新成功"); var dataResult = Result.CreateBuilder().SetStatus(1).SetMessage("更新成功").Build().ToByteArray(); session.Send(new ArraySegment <byte>(CreateHead.CreateMessage(10001, dataResult.Length, requestInfo.MessageNum, dataResult))); //session.Send("更新成功"); //写入日志 //var logModel = new LogModel //{ // userID = info.UserID, // action = info.BusinessID, // business = info.BusinessID, // type = info.BusinessID, // count = info.Counts, // dateTime = DateTime.Now, //}; //business.WriteLog(logModel); }
/// <summary> /// 小程序用户信息 /// </summary> /// <returns></returns> public string GetAppletUserInfo(string reqdata) { ResponseUserInfo res = new ResponseUserInfo(); try { //RequestUserInfo reqstr = new RequestUserInfo(); RequestUserInfo reqstr = JsonConvert.DeserializeObject <RequestUserInfo>(reqdata); //请求参数反序列化 LogHelper.InfoLog("GetAppletUserInfo请求参数:" + reqdata); string userdata = AES_decrypt(reqstr.userEncryptedData, reqstr.session_key, reqstr.userIv); //微信用户信息解密 WeChatUserData user = JsonConvert.DeserializeObject <WeChatUserData>(userdata); string phonedata = AES_decrypt(reqstr.phoneEncryptedData, reqstr.session_key, reqstr.phoneIv); //联系方式数据解密 WeChatPhoneData phone = JsonConvert.DeserializeObject <WeChatPhoneData>(phonedata); LogHelper.InfoLog("用户信息解密:" + userdata + ",联系方式数据解密:" + phonedata); UsersModel userinfo = new UsersModel(); List <UsersModel> users = userdal.GetUserInfo(new UsersModel() { unionid = reqstr.unionid }); if (users.Count > 0) { if (string.IsNullOrEmpty(users[0].mobilephone) || string.IsNullOrEmpty(users[0].appletopenid))//手机号或者小程序openid为空则需要修改数据库的用户信息 { userdal.UpdateUserInfo(userinfo); } userinfo = UserDataChange(user, phone, reqstr.session_key); //入库数据转换组装 res = UserDataChange(userinfo); //输出数据转换组装 res.code = 0; res.msg = "查询成功"; res.mobilephone = users[0].mobilephone; res.companyname = users[0].companyname; res.emcompany = users[0].emcompany; res.stockcompany = users[0].stockcompany; res.empowerStatus = (string.IsNullOrEmpty(users[0].emcompany) && string.IsNullOrEmpty(users[0].emcompany) ? 0 : 1); res.oastatus = users[0].status; } else//数据库没有当前用户去入库 { userinfo = UserDataChange(user, phone, reqstr.session_key);//入库数据转换组装 if (userdal.AddUser(userinfo)) { res.code = 0; res.msg = "操作成功"; } else { res.code = 10002; res.msg = "开小差了..."; } res = UserDataChange(userinfo);//输出数据转换组装 res.mobilephone = ""; res.companyname = ""; res.emcompany = ""; res.stockcompany = ""; res.empowerStatus = 0; res.oastatus = 0; } } catch (Exception ex) { res.code = 10003; res.msg = "开小差了..."; LogHelper.ErrorLog("错误信息:" + ex.StackTrace + "\r\n" + ex.Message + "\r\n请求参数:" + reqdata); } return(JsonConvert.SerializeObject(res)); }