1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465 |
- using Microsoft.EntityFrameworkCore;
- using Microsoft.Extensions.Configuration;
- using Microsoft.Extensions.Logging;
- using Microsoft.Extensions.Options;
- using Senparc.Weixin.Entities;
- using Senparc.Weixin.MP.AdvancedAPIs.OAuth;
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Threading.Tasks;
- using Winsoft.GOV.XF.WebApi.WXCore.Data;
- using Winsoft.GOV.XF.WebApi.WXCore.Helpers;
- using Winsoft.GOV.XF.WebApi.WXCore.Models;
- namespace Winsoft.GOV.XF.WebApi.WXCore.Services
- {
- public class UsersService: BaseService
- {
- public UsersService(XFDbContext context, ILoggerFactory loggerFactory, IConfigurationRoot config) :base(context, loggerFactory, config)
- {
- }
- public async Task<WXUser> GetUser(string openId)
- {
- if (!String.IsNullOrWhiteSpace(openId))
- return await _context.WXUsers.AsNoTracking().SingleOrDefaultAsync<WXUser>(m => m.OpenId == openId);
- return null;
- }
- public async Task AddUser(WXUser u)
- {
- _context.WXUsers.Add(u);
- await _context.SaveChangesAsync();
- }
- public async Task<WXUser> AddOrUpdate(OAuthUserInfo userInfo)
- {
- WXUser t = _context.WXUsers.FirstOrDefault(e => e.OpenId == userInfo.openid);
- if (t == null)
- await _context.WXUsers.AddAsync(new WXUser().CopyFromOAuthUserInfo(userInfo));
- else
- {
- t.CopyFromOAuthUserInfo(userInfo);
- _context.WXUsers.Update(t);
- }
-
- await _context.SaveChangesAsync();
- return t;
- }
- public async Task AddOrUpdate(WXUser u)
- {
- WXUser t = _context.WXUsers.FirstOrDefault(e => e.OpenId == u.OpenId);
- if (t == null)
- await _context.WXUsers.AddAsync(u);
- else
- {
- t.Mobile = u.Mobile;
- _context.WXUsers.Update(t);
- }
- await _context.SaveChangesAsync();
- }
- }
- }
|