zoukankan      html  css  js  c++  java
  • 微信登录

    #region (login.js)微信小程序注册登陆
    /// <summary>
    /// (login.js)微信小程序注册登陆
    /// </summary>
    /// <param name="wxUserInfo">微信用户加密后的资料</param>
    /// <returns></returns>
    [HttpPost]
    [Route("WxLogin")]
    public ApiResultModel WxLogin([FromBody]WxUserInfo wxUserInfo)
    {
    try
    {
    var api = new ApiResultModel { Success = 1 };
    string userInfo = WxAES.AES_decrypt(wxUserInfo.encryptedData, wxUserInfo.session_key, wxUserInfo.iv);
    WxGudgeLogin wxGudgeLogin = JsonConvert.DeserializeObject<WxGudgeLogin>(userInfo);

    //api.Data = userInfo;
    //return api;

    #region 判断openid是否存在
    var UserModel = db.User_Index.Where(m => m.IsDelete == 0 && m.WeChatOpenID == wxGudgeLogin.openId).FirstOrDefault();
    if (UserModel != null)
    {
    api.Success = 0;
    api.Message = "不能重复注册";
    return api;
    }
    #endregion

    long id = DataBaseHelper.CreateID();
    long uid = db.User_Index.Max(r => r.UID) + 1;
    #region 增加用户表
    User_Index user_Index = new User_Index()
    {
    ID = id,
    UID = uid,
    Status = 1,
    WeChatOpenID = wxGudgeLogin.openId,//微信唯一标识
    NickName = wxGudgeLogin.nickName,
    Gender = wxGudgeLogin.gender,
    City = wxGudgeLogin.city,
    Province = wxGudgeLogin.province,
    Country = wxGudgeLogin.country,
    Language = wxGudgeLogin.language,
    AvatarUrl = wxGudgeLogin.avatarUrl,
    UnionId = wxGudgeLogin.unionId,
    CreateBy = uid,//创建人
    CreateTime = DateTime.Now,//创建时间
    CityStates = 0,//城市信息填写状态
    DetailsStates = 0,//详细信息填写状态
    IsDelete = 0,//是否删除
    UserType = UserTypeDict.Client.Value,
    ClientUserType = 0//身份类型:1工人,2班组长,3分包,4总包 默认未选择身份
    ,
    FromUID = wxUserInfo.srcuid
    };
    db.User_Index.Add(user_Index);
    #endregion

    #region 增加用户积分表
    var UserScoreModel = new User_Score();
    UserScoreModel.ID = DataBaseHelper.CreateID();
    UserScoreModel.UID = uid;
    UserScoreModel.IntegralCount = UserScoreConfig.Register; //默认注册积分
    UserScoreModel.IsDelete = 0;
    UserScoreModel.CreateBy = uid;
    UserScoreModel.CreateTime = DateTime.Now;
    db.User_Score.Add(UserScoreModel);

    var IntegralModel = new User_IntegralManager();
    IntegralModel.Id = DataBaseHelper.CreateID();
    IntegralModel.CreateBy = uid;
    IntegralModel.CreateTime = DateTime.Now;
    IntegralModel.Uid = uid;
    IntegralModel.IsDelete = 0;
    IntegralModel.ApplyDate = DateTime.Now;
    IntegralModel.Explain = "注册增加" + UserScoreConfig.InvitationRegister + "积分";
    IntegralModel.IntegralType = UserIntegralTypeDict.InvitationRegister.Value;
    IntegralModel.IntegralState = IntergralDemoDict.demo2.Value;
    IntegralModel.IntegralCount = UserScoreConfig.InvitationRegister;
    IntegralModel.CommodityID = 0;
    db.User_IntegralManager.Add(IntegralModel);
    #endregion

    #region 增加空的实名信息表
    User_WorkerInfo user_WorkerInfo = new User_WorkerInfo()
    {
    ID = DataBaseHelper.CreateID(),
    UID = uid,//创建详细信息 , UID 和 用户表中的 UID 相关联。
    CreateBy = uid,
    CreateTime = DateTime.Now,
    IsDelete = 0
    };
    db.User_WorkerInfo.Add(user_WorkerInfo);
    #endregion

    int result = db.SaveChanges();
    if (result > 0)
    {
    //WxResponse<WxGudgeLogin> userMess = new WxResponse<WxGudgeLogin>() { uid = uid, datas = wxGudgeLogin };
    api.Success = 1;
    api.ErrorCode = 1;
    api.Message = "添加成功,请开始填写第一步信息:身份选择";
    api.Data = new
    {
    uid = uid.ToString(),
    datas = wxGudgeLogin
    };//本栈的用户唯一标识
    }
    else
    {
    api.Success = 0;
    api.Message = "添加失败";
    }
    return api;
    }
    catch (Exception ex)
    {

    throw new Exception(ex.Message);
    }

    }
    #endregion

  • 相关阅读:
    LeetCode重建二叉树系列问题总结
    LeetCode二叉树的前序、中序、后序遍历(递归实现)
    Redis持久化方式的选择
    Redis客户端——Jedis的使用
    Redis初识
    Java并发编程面试题 Top 50 整理版
    @GeneratedValue源码解析
    @Controller和@RestController源码解析
    Spring Boot整合Mybatis并完成CRUD操作
    Redis数据结构和常用API
  • 原文地址:https://www.cnblogs.com/lockzy/p/11758998.html
Copyright © 2011-2022 走看看