示例#1
0
        public static VMUserInfo UserInfo(SystemDM UserInfos, int No)
        {
            VMUserInfo item1 = new VMUserInfo();

            item1.NO        = No;
            item1.UserID    = UserInfos.UserID;
            item1.UserName  = UserInfos.UserName;
            item1.UserLevel = UserInfos.UserLevel;
            switch (UserInfos.UserCategory)
            {
            case UserRole.Admin:
                item1.UserCategory = "系统管理员";
                break;

            case UserRole.InstallAdmin:
                item1.UserCategory = "安装需求管理员";
                break;
            }
            switch (UserInfos.UserState)
            {
            case UserState.Able:
                item1.UserState = "启用";
                break;

            case UserState.DisAble:
                item1.UserState = "未启用";
                break;
            }
            return(item1);
        }
        public IHttpActionResult Prepay(string token)
        {
            UserInfo user = dbContext.UserInfos.FirstOrDefault(t => t.Token == token);

            user.Balance += 300m;
            dbContext.SaveChanges();
            return(Json(VMUserInfo.GetVMUserInfo(user)));
        }
        public IHttpActionResult BuyBook(string token, int bookId)
        {
            UserInfo user = dbContext.UserInfos.FirstOrDefault(t => t.Token == token);
            Book     book = dbContext.Books.FirstOrDefault(t => t.Id == bookId);

            Order order = new Order();

            order.UserId    = user.Id;
            order.BookId    = book.Id;
            order.Price     = book.Price;
            order.OrderTime = DateTime.Now;
            dbContext.Orders.Add(order);

            user.Balance -= order.Price;
            dbContext.SaveChanges();

            return(Json(VMUserInfo.GetVMUserInfo(user)));
        }
        public ActionResult UserInfoManage(int pageIndex = 1)
        {
            MPagerInParam param = new MPagerInParam()
            {
                DataBaseName = "AmyDBRead",
                FieldNames = "KeyID,LoginName,Password,UserName,Telephone,Email,ModifyTime,AddTime",
                PageIndex = pageIndex,
                Parameters = this.GetConditon(),
                PageSize = 20,
                TableName = "userinfo",
                Sort = "ModifyTime DESC"
            };

            string json = JsonConvert.SerializeObject(param);
            MPagerReturn result = ServiceFactory.GetPagerContractDAO().PagerQuery(param);

            List<VMUserInfo> list = new List<VMUserInfo>();
            if (result != null && result.PageData != null && result.PageData.Rows.Count > 0)
            {
                foreach (DataRow row in result.PageData.Rows)
                {
                    VMUserInfo model = new VMUserInfo();
                    model.KeyID = row["KeyID"].ToString();
                    model.LoginName = row["LoginName"].ToString();
                    model.UserName = row["UserName"].ToString();
                    model.Password = row["Password"].ToString();
                    model.Telephone = row["Telephone"].ToString();
                    model.Email = row["Email"].ToString();
                    model.ModifyTime = Convert.ToDateTime(row["ModifyTime"].ToString());
                    model.AddTime = Convert.ToDateTime(row["AddTime"].ToString());

                    list.Add(model);
                }
            }

            PagedList<VMUserInfo> pagelist = new PagedList<VMUserInfo>(list, result.PageIndex, param.PageSize, (int)result.RowCount);

            return this.View(pagelist);
        }
        public IHttpActionResult Login(string code, string rawData, string signature, string encryptedData, string iv)
        {
            VMUserInfo vmUserInfo = new VMUserInfo();
            WXOpenId   wxOpenId   = JsonConvert.DeserializeObject <WXOpenId>(HttpHelper.HttpGet("https://api.weixin.qq.com/sns/jscode2session?appid=" + HttpHelper.AppId + "&secret=" + HttpHelper.AppSecret + "&js_code=" + code + "&grant_type=authorization_code"));

            //通过签名验证数据是否有效
            SHA1 sha1 = new SHA1CryptoServiceProvider();

            byte[] source = Encoding.UTF8.GetBytes(rawData + wxOpenId.session_key);
            byte[] target = sha1.ComputeHash(source);
            if (BitConverter.ToString(target).Replace("-", "").ToLower() == signature)
            {
                //解密数据
                AesCryptoServiceProvider aes = new AesCryptoServiceProvider();
                aes.Mode      = CipherMode.CBC;
                aes.BlockSize = 128;
                aes.Padding   = PaddingMode.PKCS7;

                byte[] byte_encryptedData = Convert.FromBase64String(encryptedData);
                byte[] byte_iv            = Convert.FromBase64String(iv);
                byte[] byte_sessionKey    = Convert.FromBase64String(wxOpenId.session_key);

                aes.IV  = byte_iv;
                aes.Key = byte_sessionKey;
                ICryptoTransform transform = aes.CreateDecryptor();

                byte[]     final      = transform.TransformFinalBlock(byte_encryptedData, 0, byte_encryptedData.Length);
                WXUserInfo wxUserInfo = JsonConvert.DeserializeObject <WXUserInfo>(Encoding.UTF8.GetString(final));

                UserInfo userInfo = dbContext.UserInfos.FirstOrDefault(t => t.OpenId == wxOpenId.openid);
                if (userInfo == null)
                {
                    userInfo            = new UserInfo();
                    userInfo.Token      = Convert.ToBase64String(Guid.NewGuid().ToByteArray());
                    userInfo.OpenId     = wxOpenId.openid;
                    userInfo.SessionKey = wxOpenId.session_key;
                    userInfo.Unionid    = wxOpenId.unionid;
                    userInfo.NickName   = wxUserInfo.nickName;
                    userInfo.Gender     = (gender)wxUserInfo.gender;
                    userInfo.City       = wxUserInfo.city;
                    userInfo.Province   = wxUserInfo.province;
                    userInfo.Country    = wxUserInfo.country;
                    userInfo.AvatarUrl  = wxUserInfo.avatarUrl;
                    userInfo.AppId      = wxUserInfo.watermark.appid;
                    userInfo.TimeStamp  = wxUserInfo.watermark.timestamp;
                    userInfo.Balance    = 299m;
                    dbContext.UserInfos.Add(userInfo);
                }
                else
                {
                    userInfo.SessionKey = wxOpenId.session_key;
                    userInfo.Unionid    = wxOpenId.unionid;
                    userInfo.NickName   = wxUserInfo.nickName;
                    userInfo.Gender     = (gender)wxUserInfo.gender;
                    userInfo.City       = wxUserInfo.city;
                    userInfo.Province   = wxUserInfo.province;
                    userInfo.Country    = wxUserInfo.country;
                    userInfo.AvatarUrl  = wxUserInfo.avatarUrl;
                    userInfo.AppId      = wxUserInfo.watermark.appid;
                    userInfo.TimeStamp  = wxUserInfo.watermark.timestamp;
                }

                dbContext.SaveChanges();
                vmUserInfo = VMUserInfo.GetVMUserInfo(userInfo);
            }

            return(Json(vmUserInfo));
        }