private bool update(WxMember entity, WxMemberDto dto) { entity.NickName = dto.NickName; entity.Icon = dto.Icon; entity.Birthday = dto.Birthday; entity.LastLoginDate = DateTime.Now; entity.SubscribedDate = dto.SubscribedDate; entity.Language = dto.Language; entity.OpenId = dto.OpenId; entity.Province = dto.Province; entity.City = dto.City; entity.Sex = dto.Sex; entity.Country = dto.Country; return(_Repo.Update(entity, p => new object[] { entity.Id })); }
/// <summary> /// 会员卡激活 /// </summary> /// <param name="e"></param> /// <returns></returns> private async Task MemberActiveAsync(WxEvent e) { var card = await Context.WxCards.FirstOrDefaultAsync(a => a.CardId == e.CardId); var business = await GetAsync <Business>(card.BusinessId); var token = await GetTokenAsync(business.WeChatAppId, business.WeChatSecret); var res = await WxHelper.GetMemberInfoAsync(token, e.CardId, e.UserCardCode); var json = JObject.Parse(res); if (json["errcode"].ToString() != "0") { // 获取会员信息失败,重新设置一遍Token,再试一次 await SetTokenAsync(business.WeChatAppId, business.WeChatSecret); res = await WxHelper.GetMemberInfoAsync(token, e.CardId, e.UserCardCode); json = JObject.Parse(res); if (json["errcode"].ToString() != "0") { Log.Error($"获取会员[{e.UserCardCode}]信息失败:{json["errmsg"]}"); return; } } var entity = new WxMember { Code = e.UserCardCode, NickName = json["nickname"].ToString(), CardId = e.CardId, WxCardId = card.ID, OpenId = e.FromUserName, BusinessId = card.BusinessId }; if (json["user_info"]["common_field_list"] != null) { var arr = json["user_info"]["common_field_list"].ToArray(); entity.Name = arr.FirstOrDefault(a => a["name"].ToString() == "USER_FORM_INFO_FLAG_NAME")?["value"].ToString(); entity.Phone = arr.FirstOrDefault(a => a["name"].ToString() == "USER_FORM_INFO_FLAG_MOBILE")?["value"].ToString(); var gender = arr.FirstOrDefault(a => a["name"].ToString() == "USER_FORM_INFO_FLAG_SEX")?["value"].ToString(); if (gender == "MALE") { entity.Gender = UserGender.Male; } else if (gender == "FEMALE") { entity.Gender = UserGender.Female; } var birthday = arr.FirstOrDefault(a => a["name"].ToString() == "USER_FORM_INFO_FLAG_BIRTHDAY")?["value"].ToString(); if (birthday != null) { entity.Birthday = Convert.ToDateTime(birthday); } } var userStr = await WxHelper.GetUserInfoAsync(e.FromUserName, token); var user = JsonConvert.DeserializeObject <WxListenUser>(userStr); entity.Logo = user.headimgurl; await Context.AddAsync(entity); await Context.SaveChangesAsync(); }