using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Mvc; using New_College.AuthHelper.OverWrite; using New_College.IServices; using New_College.Model; using New_College.Model.Request; using New_College.Model.ViewModels; namespace New_College.Api.Controllers.Front { [Route("api/front/[controller]/[action]")] [ApiController] [Authorize(Roles = "users")] public class CustomerController : ControllerBase { private readonly IV_CustomerInfoServices _services; public CustomerController(IV_CustomerInfoServices IV_CustomerInfoServices) { _services = IV_CustomerInfoServices; } /// /// 获取微信openid /// /// /// [HttpPost] [AllowAnonymous] public MessageModel GetWeixinAuthinfo(WeixinLogin login) { var response = new CustomerInfoResult(); try { var result = _services.AuthCode2Session(login.code); if (result.openid != "" && result.openid != null) { var loginstatus = _services.Logined(new LoginQuery() { openId = result.openid }).Result; if (loginstatus.Item1) { response = loginstatus.Item2; } else { var save = _services.CustomerSave(new DecryptUserInfoRequest() { openid = result.openid }).Result; response.OpenId = result.openid; response.Id = save; } TokenModelJwt tokenModel = new TokenModelJwt { Uid = response.Id, Role = "users" }; response.Token = JwtHelper.IssueJwt(tokenModel); return new MessageModel() { success = true, msg = "success", response = response }; } else { return new MessageModel() { success = false, response = response }; } } catch (Exception ex) { return new MessageModel() { msg = ex.ToString(), success = false, response = response }; } } /// /// 解密手机号同时保存用户信息 /// /// /// [HttpPost] public async Task> WeixinDecryptUserInfo(DecryptUserInfoRequest request) { var phoneinfo = _services.GetWeixinPhone(new GetPhoneInfo() { encryptedData = request.encryptedData, iv = request.iv, openid = request.openid, session_key = request.session_key }); request.phone = phoneinfo; var customerinfo = (await _services.Query(e => e.OpenId == request.openid)).FirstOrDefault(); customerinfo.AvatarUrl = request.avatarUrl; customerinfo.NickName = request.nickName; customerinfo.Gender = request.gender; customerinfo.Phone = phoneinfo; var result = await _services.Update(customerinfo); return new MessageModel() { msg = result ? "修改成功" : "保存失败", response = result, success = result }; } /// ///用户获取用户信息有OpenId 调用此接口 /// /// /// [HttpGet] public async Task> GetUserInfo([FromQuery] LoginQuery query) { var result = await _services.GetUserInfo(query); return new MessageModel() { response = result.Item2, success = result.Item1, msg = result.Item1 ? "登陆成功" : "用户不存在" }; } /// /// 更改分数 /// /// /// [HttpPost] public async Task> UpdateScore(UpdateScoreQuery query) { var result = await _services.UpdateScore(query); if (result.Id > 0) { var token = JwtHelper.IssueJwt(new TokenModelJwt() { Uid = result.Id, Role = "学生" }); result.Token = token; } return new MessageModel() { success = result.Status == 1, msg = result.Status == 1 ? "修改成功" : "修改失败", response = result }; } /// /// 完善用户信息 /// /// /// [HttpPost] public async Task> UpdateCustomer(CustomerUpdateQuery query) { var result = await _services.UpdateCustomer(query); if (result.Id > 0) { var token = JwtHelper.IssueJwt(new TokenModelJwt() { Uid = result.Id, Role = "学生" }); result.Token = token; } return new MessageModel() { success = result.Status == 1, msg = result.Status == 1 ? "成功" : "失败", response = result }; } /// /// 根绝Id获取用户信息 /// /// /// [HttpGet] public async Task> GetCustomerInfoById([FromQuery] IdQuery query) { return await _services.GetCustomerInfoById(query); } } }