UserController.cs 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Threading.Tasks;
  5. using Microsoft.AspNetCore.Http;
  6. using Microsoft.AspNetCore.Mvc;
  7. using Winsoft.GOV.XF.WebApi.WXCore.Models;
  8. using Senparc.Weixin.MP.CoreMvcExtension;
  9. using Winsoft.GOV.XF.WebApi.WXCore.Filters;
  10. using Microsoft.Extensions.Options;
  11. using Senparc.Weixin.Entities;
  12. using Winsoft.GOV.XF.WebApi.WXCore.Data;
  13. using Microsoft.EntityFrameworkCore;
  14. using Microsoft.Extensions.Logging;
  15. using Winsoft.GOV.XF.WebApi.WXCore.Services;
  16. namespace Winsoft.GOV.XF.WebApi.WXCore.Controllers
  17. {
  18. [Produces("application/json")]
  19. [Route("api/[controller]")]
  20. public class UserController : BaseController
  21. {
  22. UsersService _usersService;
  23. public UserController(IOptions<SenparcWeixinSetting> senparcWeixinSetting, ILoggerFactory loggerFactory, UsersService usersService) : base(senparcWeixinSetting, loggerFactory)
  24. {
  25. _usersService = usersService;
  26. }
  27. [HttpGet]
  28. [WeixinInternalRequest("访问被拒绝,请通过微信客户端访问!", "nofilter")]
  29. [Produces(typeof(WXUser))]
  30. [WXOAuthCheck(appId: null, oauthCallbackUrl: "api/Auth")]
  31. public async Task<IActionResult> Get()
  32. {
  33. WXUser u = await _usersService.GetUser(HttpContext.Session.GetString("OpenId"));
  34. if (u != null)
  35. return Ok(u);
  36. else
  37. return NotFound();
  38. }
  39. [HttpPost]
  40. [WeixinInternalRequest("访问被拒绝,请通过微信客户端访问!", "nofilter")]
  41. [WXOAuthCheck(appId: null, oauthCallbackUrl: "api/Auth")]
  42. public async Task<IActionResult> Post([FromBody]WXUser value)
  43. {
  44. value.OpenId = HttpContext.Session.GetString("OpenId");
  45. await _usersService.AddOrUpdate(value);
  46. return Ok();
  47. }
  48. }
  49. }