215 lines
6.9 KiB
C#
215 lines
6.9 KiB
C#
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;
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
/// 获取微信openid
|
|
/// </summary>
|
|
/// <param name="login"></param>
|
|
/// <returns></returns>
|
|
[HttpPost]
|
|
[AllowAnonymous]
|
|
public MessageModel<CustomerInfoResult> 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);
|
|
response.session_key = result.session_key;
|
|
return new MessageModel<CustomerInfoResult>()
|
|
{
|
|
success = true,
|
|
msg = "success",
|
|
response = response
|
|
};
|
|
}
|
|
else
|
|
{
|
|
return new MessageModel<CustomerInfoResult>()
|
|
{
|
|
success = false,
|
|
response = response
|
|
};
|
|
}
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
return new MessageModel<CustomerInfoResult>()
|
|
{
|
|
msg = ex.ToString(),
|
|
success = false,
|
|
response = response
|
|
};
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
/// 解密手机号同时保存用户信息
|
|
/// </summary>
|
|
/// <param name="request"></param>
|
|
/// <returns></returns>
|
|
[HttpPost]
|
|
[AllowAnonymous]
|
|
public async Task<MessageModel<string>> 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);
|
|
if (result)
|
|
{
|
|
return new MessageModel<string>()
|
|
{
|
|
msg = result ? "修改成功" : "保存失败",
|
|
response = phoneinfo,
|
|
success = result
|
|
};
|
|
}
|
|
else
|
|
{
|
|
return new MessageModel<string>()
|
|
{
|
|
msg = result ? "修改成功" : "保存失败",
|
|
response = "0",
|
|
success = result
|
|
};
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
///用户获取用户信息有OpenId 调用此接口
|
|
/// </summary>
|
|
/// <param name="query"></param>
|
|
/// <returns></returns>
|
|
[HttpGet]
|
|
public async Task<MessageModel<CustomerInfoResult>> GetUserInfo([FromQuery] LoginQuery query)
|
|
{
|
|
var result = await _services.GetUserInfo(query);
|
|
return new MessageModel<CustomerInfoResult>()
|
|
{
|
|
response = result.Item2,
|
|
success = result.Item1,
|
|
msg = result.Item1 ? "登陆成功" : "用户不存在"
|
|
};
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
/// 更改分数
|
|
/// </summary>
|
|
/// <param name="query"></param>
|
|
/// <returns></returns>
|
|
[HttpPost]
|
|
public async Task<MessageModel<CustomerInfoResult>> 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<CustomerInfoResult>()
|
|
{
|
|
success = result.Status == 1,
|
|
msg = result.Status == 1 ? "修改成功" : "修改失败",
|
|
response = result
|
|
};
|
|
}
|
|
|
|
/// <summary>
|
|
/// 完善用户信息
|
|
/// </summary>
|
|
/// <param name="query"></param>
|
|
/// <returns></returns>
|
|
[HttpPost]
|
|
public async Task<MessageModel<CustomerInfoResult>> 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<CustomerInfoResult>()
|
|
{
|
|
success = result.Status == 1,
|
|
msg = result.Status == 1 ? "成功" : "失败",
|
|
response = result
|
|
};
|
|
}
|
|
|
|
/// <summary>
|
|
/// 根绝Id获取用户信息
|
|
/// </summary>
|
|
/// <param name="query"></param>
|
|
/// <returns></returns>
|
|
[HttpGet]
|
|
public async Task<MessageModel<CustomerInfoResult>> GetCustomerInfoById([FromQuery] IdQuery query)
|
|
{
|
|
return await _services.GetCustomerInfoById(query);
|
|
}
|
|
}
|
|
}
|