You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
781 lines
32 KiB
781 lines
32 KiB
using _24Hour.Model; |
|
using com.sun.org.apache.bcel.@internal.generic; |
|
using com.sun.xml.@internal.ws.api.model; |
|
using Elight.Entity; |
|
using Elight.Logic; |
|
using Elight.Logic.SystemModel; |
|
using Elight.Utility; |
|
using Elight.Utility.Code; |
|
using Elight.Utility.Encrypt; |
|
using Elight.Utility.Extensions; |
|
using Elight.Utility.logs; |
|
using java.security; |
|
using Microsoft.AspNetCore.Authorization; |
|
using Microsoft.AspNetCore.Mvc; |
|
using Microsoft.Extensions.Configuration; |
|
using Microsoft.Extensions.Logging; |
|
using Microsoft.IdentityModel.Tokens; |
|
using Newtonsoft.Json; |
|
using SqlSugar; |
|
using System.IdentityModel.Tokens.Jwt; |
|
using System.Runtime.Serialization; |
|
using System.Security.Claims; |
|
using System.Text; |
|
|
|
namespace _24Hour.Controllers |
|
{ |
|
/// <summary> |
|
/// 登录 |
|
/// </summary> |
|
// [HiddenApi] |
|
[ApiController] |
|
[Route("api/APP")] |
|
public class LoginController : ControllerBase |
|
{ |
|
private readonly IConfiguration _configuration; |
|
private readonly SqlSugarClient _db;//数据库 |
|
private readonly WriteSysLog _logs;//操作日志 |
|
private readonly ILogger<LoginController> _logger;//日志 |
|
private readonly WechatMessagerClient wechatMessagerClient; |
|
Result ret = new Result(); |
|
public LoginController(ILogger<LoginController> logger, SqlSugarClient db, IConfiguration configuration, WechatMessagerClient _wechatMessagerClient) |
|
{ |
|
_logger = logger; |
|
_db = db; |
|
_configuration = configuration; |
|
this.wechatMessagerClient = _wechatMessagerClient; |
|
} |
|
|
|
[HttpPost] |
|
[Route("LoginDefault")] |
|
[CustomCorsActionFilterAttribute] |
|
public async Task<Result> LoginDefault() |
|
{ |
|
var Passmd5 = Md5.Encrypt32("jcy@123456").ToLower(); |
|
var date = await _db.Queryable<App_Sys_UserModel>().Where(x => x.phone == "admin" && x.IsDeleted == 0).FirstAsync(); |
|
if (date == null) |
|
{ |
|
ret.IsSucceed = false; |
|
ret.Message = "账号不存在,请先注册!"; |
|
return ret; |
|
} |
|
if (Passmd5 != date.Password) |
|
{ |
|
ret.IsSucceed = false; |
|
ret.Message = "账号或者密码错误!"; |
|
return ret; |
|
} |
|
if (!string.IsNullOrEmpty(date.department)) |
|
{ |
|
var dept = await _db.Queryable<App_Sys_DepartModel>().Where(x => x.Id == date.department && x.IsDelete == 0).FirstAsync(); |
|
if (dept != null) |
|
{ |
|
date.departmentName = dept.departname; |
|
} |
|
} |
|
#region jwt生成token |
|
var tokenHandler = new JwtSecurityTokenHandler(); |
|
var claims = new Claim[] |
|
{ |
|
new Claim(ClaimTypes.UserData,JsonConvert.SerializeObject(date)), |
|
}; |
|
|
|
var key = new SymmetricSecurityKey(Encoding.ASCII.GetBytes(_configuration.GetSection("JwtConfiguration:Jwtkey").Value)); |
|
var signingCredentials = new SigningCredentials(key, SecurityAlgorithms.HmacSha256); |
|
//Token |
|
var jwttoken = new JwtSecurityToken( |
|
issuer: _configuration.GetSection("JwtConfiguration:Issuer").Value, |
|
audience: _configuration.GetSection("JwtConfiguration:Audience").Value, |
|
claims: claims, |
|
notBefore: DateTime.Now, |
|
expires: DateTime.Now.AddDays(1), |
|
signingCredentials: signingCredentials |
|
); |
|
//var token = new JwtSecurityTokenHandler().CreateToken(jwttoken); |
|
var tokenString = new JwtSecurityTokenHandler().WriteToken(jwttoken); |
|
ret.IsSucceed = true; |
|
ret.result = new |
|
{ |
|
Id = date.Id, |
|
name = date.name, |
|
sex = date.sex, |
|
phone = date.phone, |
|
photo = date.photo, |
|
duties = date.duties, |
|
identity = date.identity, |
|
openId = date.wechatId, |
|
unitCode = date.unitCode, |
|
department = date.department, |
|
departmentName = date.departmentName, |
|
token = tokenString |
|
}; |
|
#endregion |
|
ret.IsSucceed = true; |
|
return ret; |
|
} |
|
|
|
|
|
/// <summary> |
|
/// 系统登录 |
|
/// </summary> |
|
/// <param name="login"></param> |
|
/// <returns></returns> |
|
[HttpPost] |
|
[Route("SystemLogin")] |
|
[CustomCorsActionFilterAttribute] |
|
public async Task<Result> SystemLogin(UserLogin login) |
|
{ |
|
try |
|
{ |
|
var Passmd5 = Md5.Encrypt32(login.Password).ToLower(); |
|
var date = await _db.Queryable<App_Sys_UserModel>().Where(x => x.phone == login.phone && x.IsDeleted == 0).FirstAsync(); |
|
if (date == null) |
|
{ |
|
ret.IsSucceed = false; |
|
ret.Message = "账号不存在,请先注册!"; |
|
return ret; |
|
} |
|
if (Passmd5 != date.Password) |
|
{ |
|
ret.IsSucceed = false; |
|
ret.Message = "账号或者密码错误!"; |
|
return ret; |
|
} |
|
if (!string.IsNullOrEmpty(date.department)) |
|
{ |
|
var dept = await _db.Queryable<App_Sys_DepartModel>().Where(x => x.Id == date.department && x.IsDelete == 0).FirstAsync(); |
|
if (dept != null) |
|
{ |
|
date.departmentName = dept.departname; |
|
} |
|
} |
|
|
|
#region jwt生成token |
|
var tokenHandler = new JwtSecurityTokenHandler(); |
|
var claims = new Claim[] |
|
{ |
|
new Claim(ClaimTypes.UserData,JsonConvert.SerializeObject(date)), |
|
}; |
|
|
|
var key = new SymmetricSecurityKey(Encoding.ASCII.GetBytes(_configuration.GetSection("JwtConfiguration:Jwtkey").Value)); |
|
var signingCredentials = new SigningCredentials(key, SecurityAlgorithms.HmacSha256); |
|
//Token |
|
var jwttoken = new JwtSecurityToken( |
|
issuer: _configuration.GetSection("JwtConfiguration:Issuer").Value, |
|
audience: _configuration.GetSection("JwtConfiguration:Audience").Value, |
|
claims: claims, |
|
notBefore: DateTime.Now, |
|
expires: DateTime.Now.AddDays(1), |
|
signingCredentials: signingCredentials |
|
); |
|
//var token = new JwtSecurityTokenHandler().CreateToken(jwttoken); |
|
var tokenString = new JwtSecurityTokenHandler().WriteToken(jwttoken); |
|
var Unitdate = await _db.Queryable<App_Sys_UnitModel>().FirstAsync(x => x.unitCode == date.unitCode); |
|
ret.IsSucceed = true; |
|
ret.result = new |
|
{ |
|
Id = date.Id, |
|
name = date.name, |
|
sex = date.sex, |
|
phone = date.phone, |
|
photo = date.photo, |
|
duties = date.duties, |
|
identity = date.identity, |
|
openId = date.wechatId, |
|
unitCode = date.unitCode, |
|
unitname = Unitdate?.unitname, |
|
department = date.department, |
|
departmentName = date.departmentName, |
|
token = tokenString |
|
}; |
|
#endregion |
|
} |
|
catch (Exception ex) |
|
{ |
|
ret.IsSucceed = false; |
|
ret.Message = $"{ex.Message}"; |
|
LogService.WriteLog(ex, "登录"); |
|
} |
|
return ret; |
|
} |
|
|
|
/// <summary> |
|
/// app--登录 |
|
/// </summary> |
|
/// <param name="login"></param> |
|
/// <returns></returns> |
|
[HttpPost] |
|
[Route("Login")] |
|
[CustomCorsActionFilterAttribute] |
|
public async Task<Result> Login(UserLogin login) |
|
{ |
|
try |
|
{ |
|
var Passmd5 = Md5.Encrypt32(login.Password).ToLower(); |
|
var date = await _db.Queryable<App_Sys_UserModel>().Where(x => x.phone == login.phone && x.IsDeleted == 0).FirstAsync(); |
|
if (date == null) |
|
{ |
|
ret.IsSucceed = false; |
|
ret.Message = "账号不存在,请先注册!"; |
|
return ret; |
|
} |
|
if (date.identity == "律师" && date.audit == 1) |
|
{ |
|
ret.IsSucceed = false; |
|
ret.Message = $"用户信息审核未通过,原因:{date.describe},请重新注册!"; |
|
return ret; |
|
} |
|
else if (date.identity == "律师" && date.audit == 2) |
|
{ |
|
ret.IsSucceed = false; |
|
ret.Message = "用户信息审核中!"; |
|
return ret; |
|
} |
|
if (Passmd5 != date.Password) |
|
{ |
|
ret.IsSucceed = false; |
|
ret.Message = "账号或密码错误!"; |
|
return ret; |
|
} |
|
//else if (date.usertype == 1 && date.audit == null) |
|
//{ |
|
// ret.IsSucceed = false; |
|
// ret.Message = "账号审核中!"; |
|
// return ret; |
|
//} |
|
//else if (date.usertype == 1 && date.audit == 1) |
|
//{ |
|
// ret.IsSucceed = false; |
|
// ret.Message = $"账号审核未通过,原因:{date.describe}!"; |
|
// return ret; |
|
//} |
|
else if (date.usertype == 0 && date.becurrent == 1) |
|
{ |
|
ret.IsSucceed = false; |
|
ret.Message = $"账号未授权无法登录,请联系管理员!"; |
|
return ret; |
|
} |
|
if (!string.IsNullOrEmpty(date.department)) |
|
{ |
|
var dept = await _db.Queryable<App_Sys_DepartModel>().Where(x => x.Id == date.department && x.IsDelete == 0).FirstAsync(); |
|
if (dept != null) |
|
{ |
|
date.departmentName = dept.departname; |
|
} |
|
} |
|
#region jwt生成token |
|
var tokenHandler = new JwtSecurityTokenHandler(); |
|
var claims = new Claim[] |
|
{ |
|
new Claim(ClaimTypes.UserData,JsonConvert.SerializeObject(date)), |
|
}; |
|
|
|
var key = new SymmetricSecurityKey(Encoding.ASCII.GetBytes(_configuration.GetSection("JwtConfiguration:Jwtkey").Value)); |
|
var signingCredentials = new SigningCredentials(key, SecurityAlgorithms.HmacSha256); |
|
//Token |
|
var jwttoken = new JwtSecurityToken( |
|
issuer: _configuration.GetSection("JwtConfiguration:Issuer").Value, |
|
audience: _configuration.GetSection("JwtConfiguration:Audience").Value, |
|
claims: claims, |
|
notBefore: DateTime.Now, |
|
expires: DateTime.Now.AddDays(1), |
|
signingCredentials: signingCredentials |
|
); |
|
//var token = new JwtSecurityTokenHandler().CreateToken(jwttoken); |
|
var tokenString = new JwtSecurityTokenHandler().WriteToken(jwttoken); |
|
ret.result = new |
|
{ |
|
Id = date.Id, |
|
name = date.name, |
|
sex = date.sex, |
|
phone = date.phone, |
|
photo = date.photo, |
|
duties = date.duties, |
|
identity = date.identity, |
|
openId = date.wechatId, |
|
usertype = date.usertype, |
|
unitCode = date.unitCode, |
|
department = date.department, |
|
departmentName = date.departmentName, |
|
token = tokenString |
|
}; |
|
#endregion |
|
ret.IsSucceed = true; |
|
} |
|
catch (Exception ex) |
|
{ |
|
ret.IsSucceed = false; |
|
ret.Message = $"{ex.Message}"; |
|
LogService.WriteLog(ex, "登录"); |
|
} |
|
return ret; |
|
} |
|
|
|
/// <summary> |
|
/// 微信小程序Code 登陆 |
|
/// </summary> |
|
/// <param name="code"></param> |
|
/// <returns></returns> |
|
[HttpGet] |
|
[Route("WeChatLoginCode")] |
|
public async Task<Result> WeChatLoginByCode(string code) |
|
{ |
|
var opendata = await GetOpenId(code); |
|
if (opendata.IsSucceed == true) |
|
{ |
|
return await WeChatLogin(opendata.result); |
|
} |
|
else |
|
{ |
|
return opendata; |
|
} |
|
} |
|
/// <summary> |
|
/// 微信公众号Code 登陆 |
|
/// </summary> |
|
/// <param name="code"></param> |
|
/// <returns></returns> |
|
[HttpGet] |
|
[Route("WeChatLoginByGzhCode")] |
|
public async Task<Result> WeChatLoginByGzhCode(string code) |
|
{ |
|
var opendata = await GetGzhOpenId(code); |
|
if (opendata.IsSucceed == true) |
|
{ |
|
return await WeChatLogin(opendata.result); |
|
} |
|
else |
|
{ |
|
return opendata; |
|
} |
|
} |
|
|
|
///// <summary> |
|
///// 获取微信公众号Code |
|
///// </summary> |
|
///// <param name="code"></param> |
|
///// <returns></returns> |
|
//[HttpGet] |
|
//[Route("GetCode")] |
|
//public async Task<Result> GetCode(string code,string state) |
|
//{ |
|
// var opendata = await GetGzhOpenId(code); |
|
// if (opendata.IsSucceed == true) |
|
// { |
|
// return await WeChatLogin(opendata.result); |
|
// } |
|
// else |
|
// { |
|
// return opendata; |
|
// } |
|
//} |
|
|
|
/// <summary> |
|
/// 微信授权登录 |
|
/// </summary> |
|
/// <param name="openId"></param> |
|
/// <returns></returns> |
|
[HttpGet] |
|
[Route("WeChatLogin")] |
|
public async Task<Result> WeChatLogin(string openId) |
|
{ |
|
var date = await _db.Queryable<App_Sys_UserModel>() |
|
.Where(q => q.IsDeleted == 0 && q.wechatId == openId) |
|
.OrderByDescending(x => x.createtime) |
|
.FirstAsync(); |
|
if (date != null) |
|
{ |
|
if (date.identity == "律师" && date.audit == 1) |
|
{ |
|
ret.IsSucceed = false; |
|
ret.Message = $"用户信息审核未通过,原因:{date.describe},请重新注册!"; |
|
return ret; |
|
} |
|
else if (date.identity == "律师" && date.audit == 2) |
|
{ |
|
ret.IsSucceed = false; |
|
ret.Message = "用户信息审核中!"; |
|
return ret; |
|
} |
|
if (date.isdeactivate == 1) |
|
{ |
|
ret.IsSucceed = false; |
|
ret.Message = "该账号已被禁用,请联系管理员!"; |
|
return ret; |
|
} |
|
if (date.usertype == 0 && date.becurrent == 1) |
|
{ |
|
ret.IsSucceed = false; |
|
ret.Message = $"账号未授权无法登录,请联系管理员!"; |
|
return ret; |
|
} |
|
#region jwt生成token |
|
var tokenHandler = new JwtSecurityTokenHandler(); |
|
var claims = new Claim[] |
|
{ |
|
new Claim(ClaimTypes.UserData,JsonConvert.SerializeObject(date)), |
|
}; |
|
|
|
var key = new SymmetricSecurityKey(Encoding.ASCII.GetBytes(_configuration.GetSection("JwtConfiguration:Jwtkey").Value)); |
|
var signingCredentials = new SigningCredentials(key, SecurityAlgorithms.HmacSha256); |
|
//Token |
|
var jwttoken = new JwtSecurityToken( |
|
issuer: _configuration.GetSection("JwtConfiguration:Issuer").Value, |
|
audience: _configuration.GetSection("JwtConfiguration:Audience").Value, |
|
claims: claims, |
|
notBefore: DateTime.Now, |
|
expires: DateTime.Now.AddDays(1), |
|
signingCredentials: signingCredentials |
|
); |
|
//var token = new JwtSecurityTokenHandler().CreateToken(jwttoken); |
|
var tokenString = new JwtSecurityTokenHandler().WriteToken(jwttoken); |
|
ret.result = new |
|
{ |
|
Id = date.Id, |
|
name = date.name, |
|
sex = date.sex, |
|
phone = date.phone, |
|
photo = date.photo, |
|
duties = date.duties, |
|
identity = date.identity, |
|
usertype = date.usertype, |
|
unitCode = date.unitCode, |
|
token = tokenString, |
|
openId = date.wechatId, |
|
departmentPhoto = date.departmentPhoto, |
|
identityphoto = date.identityphoto, |
|
cardIdphoto = date.cardIdphoto, |
|
departmentName = date.departmentName, |
|
identitycardId = date.identitycardId, |
|
departmentSCC= date.departmentUnifiedSocialCreditCode |
|
}; |
|
#endregion |
|
ret.IsSucceed = true; |
|
} |
|
else |
|
{ |
|
ret.IsSucceed = false; |
|
ret.Message = "微信未授权,请先注册账号!"; |
|
} |
|
return ret; |
|
} |
|
|
|
/// <summary> |
|
/// APP添加用户 |
|
/// </summary> |
|
/// <param name="info"></param> |
|
/// <returns></returns> |
|
[HttpPost] |
|
[Route("AddUser1")] |
|
public async Task<Result> AddUser1(App_Sys_UserModel UserModel) |
|
{ |
|
try |
|
{ |
|
_logger.LogInformation(UserModel.ConvertToJsonStr()); |
|
//if (string.IsNullOrEmpty(UserModel.wechatId) && await _db.Queryable<App_Sys_UserModel>().AnyAsync(x => x.wechatId == UserModel.wechatId && x.IsDeleted == 0)) |
|
//{ |
|
// ret.IsSucceed = false; |
|
// ret.Message = "当前微信已与其他账号绑定"; |
|
// return ret; |
|
//} |
|
if (string.IsNullOrEmpty(UserModel.wechatId) == false) |
|
{ |
|
if (await _db.Queryable<App_Sys_UserModel>().AnyAsync(x => x.wechatId == UserModel.wechatId && x.IsDeleted == 0 && x.audit != 1 && x.isdeactivate == 0)) |
|
{ |
|
ret.IsSucceed = false; |
|
ret.Message = "当前微信已与其他账号绑定"; |
|
return ret; |
|
} |
|
} |
|
var data = await _db.Queryable<App_Sys_UserModel>().Where(q => q.phone == UserModel.phone && q.IsDeleted == 0).FirstAsync(); |
|
if (UserModel.identity == "律师") |
|
{ |
|
if (data != null && (data.identity != "律师" || data.audit == 0)) |
|
{ |
|
ret.IsSucceed = false; |
|
ret.Message = "电话号码已存在!"; |
|
return ret; |
|
} |
|
else if (data != null && data.audit == 2) |
|
{ |
|
ret.IsSucceed = false; |
|
ret.Message = "账号审核中!"; |
|
return ret; |
|
} |
|
|
|
if (data != null && data.audit == 1) |
|
{ |
|
_db.BeginTran(); |
|
data.audit = 2; |
|
data.describe = ""; |
|
data.photo = "/CaseFile/resource/headicon.png"; |
|
data.name = UserModel.name; |
|
data.sex = UserModel.sex; |
|
data.phone = UserModel.phone; |
|
data.cardId = UserModel.cardId; |
|
data.identitycardId = UserModel.identitycardId; |
|
data.departmentName = UserModel.departmentName; |
|
data.Password = Elight.Utility.Encrypt.Md5.Encrypt32($"{UserModel.Password}").ToLower(); |
|
data.cardIdphoto = UserModel.cardIdphoto; |
|
data.identityphoto = UserModel.identityphoto; |
|
data.departmentPhoto = UserModel.departmentPhoto; |
|
var num = await _db.Updateable(data).IgnoreColumns(true).ExecuteCommandAsync(); |
|
_db.CommitTran(); |
|
if (num > 0) |
|
{ |
|
#region 注册申请审核通知 |
|
var jcguserdata = await _db.Queryable<App_Sys_UserModel>() |
|
.Where(q => q.usertype == 0 && q.messages == true).ToListAsync(); |
|
if (jcguserdata.Count > 0) |
|
{ |
|
foreach (var item in jcguserdata) |
|
{ |
|
if (!string.IsNullOrEmpty(item.wechatId)) |
|
{ |
|
//律师注册审核通知 |
|
await wechatMessagerClient.gzhwxtsshtx(item.wechatId, UserModel.name, UserModel.phone, UserModel.departmentName, DateTime.Now); |
|
} |
|
} |
|
} |
|
#endregion |
|
ret.IsSucceed = true; |
|
ret.result = "添加成功,审核中!"; |
|
} |
|
} |
|
else |
|
{ |
|
_db.BeginTran(); |
|
UserModel.Id = Guid.NewGuid().ToString(); |
|
UserModel.usertype = 1; |
|
UserModel.audit = 2; |
|
if (string.IsNullOrEmpty(UserModel.photo)) |
|
{ |
|
UserModel.photo = "/CaseFile/resource/headicon.png"; |
|
} |
|
//默认密码 |
|
UserModel.Password = Elight.Utility.Encrypt.Md5.Encrypt32($"{UserModel.Password}").ToLower(); |
|
var num = await _db.Insertable(UserModel).ExecuteCommandAsync(); |
|
_db.CommitTran(); |
|
if (num > 0) |
|
{ |
|
#region 注册申请审核通知 |
|
var jcguserdata = await _db.Queryable<App_Sys_UserModel>() |
|
.Where(q => q.usertype == 0 && q.messages == true).ToListAsync(); |
|
if (jcguserdata.Count > 0) |
|
{ |
|
foreach (var item in jcguserdata) |
|
{ |
|
if (!string.IsNullOrEmpty(item.wechatId)) |
|
{ |
|
//律师注册审核通知 |
|
await wechatMessagerClient.gzhwxtsshtx(item.wechatId, UserModel.name, UserModel.phone, UserModel.departmentName, DateTime.Now); |
|
} |
|
} |
|
} |
|
#endregion |
|
ret.IsSucceed = true; |
|
ret.result = "添加成功"; |
|
} |
|
} |
|
} |
|
else |
|
{ |
|
if (data != null) |
|
{ |
|
ret.IsSucceed = false; |
|
ret.Message = "电话号码已存在!"; |
|
return ret; |
|
} |
|
_db.BeginTran(); |
|
UserModel.Id = Guid.NewGuid().ToString(); |
|
UserModel.usertype = 1; |
|
//默认密码 |
|
UserModel.Password = Elight.Utility.Encrypt.Md5.Encrypt32($"{UserModel.Password}").ToLower(); |
|
|
|
if (string.IsNullOrEmpty(UserModel.photo)) |
|
{ |
|
UserModel.photo = "/CaseFile/resource/headicon.png"; |
|
} |
|
var num = await _db.Insertable(UserModel).ExecuteCommandAsync(); |
|
_db.CommitTran(); |
|
if (num > 0) |
|
{ |
|
ret.IsSucceed = true; |
|
ret.result = "添加成功"; |
|
} |
|
} |
|
} |
|
catch (System.Exception ex) |
|
{ |
|
_db.RollbackTran(); |
|
ret.IsSucceed = false; |
|
ret.Message = ex.Message; |
|
} |
|
return ret; |
|
} |
|
|
|
/// <summary> |
|
/// 单位list集合 |
|
/// </summary> |
|
/// <param name="info"></param> |
|
/// <returns></returns> |
|
[HttpPost] |
|
[Route("QueryUnitlist")] |
|
public async Task<Result> QueryUnitlist(App_Sys_UnitInput Unitdata) |
|
{ |
|
var list = await _db.Queryable<App_Sys_UnitModel>() |
|
.WhereIF(!Unitdata.unitCode.IsNull(), q => q.unitCode.Contains(Unitdata.unitCode)) |
|
.WhereIF(!Unitdata.unitname.IsNull(), q => q.unitname.Contains(Unitdata.unitname)) |
|
.WhereIF(!Unitdata.unitjc.IsNull(), q => q.unitjc.Contains(Unitdata.unitjc)) |
|
.Where(q => q.IsDelete == 0).ToListAsync(); |
|
ret.IsSucceed = true; |
|
ret.result = list; |
|
return ret; |
|
} |
|
|
|
/// <summary> |
|
/// 获取设备视频流地址 |
|
/// </summary> |
|
/// <param name="Sendingdata"></param> |
|
/// <returns></returns> |
|
[HttpGet] |
|
[Route("getrtsp")] |
|
public async Task<Result> getrtsp(string str) |
|
{ |
|
ret.IsSucceed = true; |
|
ret.result = $"{_configuration.GetSection($"Videoaddress:{str}").Value}"; |
|
return ret; |
|
} |
|
|
|
[HttpGet] |
|
[Route("cardIdLogin")] |
|
public async Task<Result> cardIdLogin(string cardId, string name) |
|
{ |
|
var date = await _db.Queryable<App_Sys_UserModel>().Where(q => q.IsDeleted == 0 && q.cardId == cardId && q.name == name).FirstAsync(); |
|
if (date != null) |
|
{ |
|
//if (date.usertype == 1 && date.audit == null) |
|
// { |
|
// ret.IsSucceed = false; |
|
// ret.Message = "用户审核中!"; |
|
// return ret; |
|
// } |
|
// else if (date.usertype == 1 && date.audit == 1) |
|
// { |
|
// ret.IsSucceed = false; |
|
// ret.Message = $"用户审核未通过,原因:{date.describe}!"; |
|
// return ret; |
|
// } |
|
// else |
|
if (date.usertype == 0 && date.becurrent == 1 && date.isdeactivate == 1) |
|
{ |
|
ret.IsSucceed = false; |
|
ret.Message = $"用户未授权无法登录,请联系管理员!"; |
|
return ret; |
|
} |
|
#region jwt生成token |
|
var tokenHandler = new JwtSecurityTokenHandler(); |
|
var claims = new Claim[] |
|
{ |
|
new Claim(ClaimTypes.UserData,JsonConvert.SerializeObject(date)), |
|
}; |
|
|
|
var key = new SymmetricSecurityKey(Encoding.ASCII.GetBytes(_configuration.GetSection("JwtConfiguration:Jwtkey").Value)); |
|
var signingCredentials = new SigningCredentials(key, SecurityAlgorithms.HmacSha256); |
|
//Token |
|
var jwttoken = new JwtSecurityToken( |
|
issuer: _configuration.GetSection("JwtConfiguration:Issuer").Value, |
|
audience: _configuration.GetSection("JwtConfiguration:Audience").Value, |
|
claims: claims, |
|
notBefore: DateTime.Now, |
|
expires: DateTime.Now.AddDays(1), |
|
signingCredentials: signingCredentials |
|
); |
|
//var token = new JwtSecurityTokenHandler().CreateToken(jwttoken); |
|
var tokenString = new JwtSecurityTokenHandler().WriteToken(jwttoken); |
|
ret.result = new |
|
{ |
|
Id = date.Id, |
|
name = date.name, |
|
sex = date.sex, |
|
phone = date.phone, |
|
photo = date.photo, |
|
duties = date.duties, |
|
identity = date.identity, |
|
openId = date.wechatId, |
|
usertype = date.usertype, |
|
unitCode = date.unitCode, |
|
token = tokenString |
|
}; |
|
#endregion |
|
ret.IsSucceed = true; |
|
} |
|
else |
|
{ |
|
var datea = await _db.Queryable<App_Sys_UserModel>().Where(q => q.IsDeleted == 0 && q.cardId == cardId).FirstAsync(); |
|
if (datea == null) |
|
{ |
|
var unitcode = _configuration.GetSection("CaseTwenty:UnitCode").Value; |
|
var UserModel = new App_Sys_UserModel(); |
|
_db.BeginTran(); |
|
UserModel.Id = Guid.NewGuid().ToString(); |
|
UserModel.cardId = cardId; |
|
UserModel.name = name; |
|
UserModel.usertype = 1; |
|
UserModel.unitCode = unitcode; |
|
string cardIdpwa = UserModel.cardId.Substring(UserModel.cardId.Length - 6); |
|
//默认密码身份证后六位 |
|
UserModel.Password = Elight.Utility.Encrypt.Md5.Encrypt32($"{cardIdpwa}").ToLower(); |
|
var num = await _db.Insertable(UserModel).ExecuteCommandAsync(); |
|
_db.CommitTran(); |
|
if (num > 0) |
|
{ |
|
ret.IsSucceed = true; |
|
ret.result = "添加成功"; |
|
} |
|
} |
|
else |
|
{ |
|
ret.IsSucceed = false; |
|
ret.Message = $"用户未授权无法登录,请联系管理员!"; |
|
return ret; |
|
} |
|
} |
|
return ret; |
|
} |
|
/// <summary> |
|
/// 小程序AppID |
|
/// </summary> |
|
private const string appid = "wx48108a0c98a3dab0"; |
|
/// <summary> |
|
/// 小程序secretID |
|
/// </summary> |
|
private const string secid = "e752e4fba67526eca21313a18c96a58f"; |
|
/// <summary> |
|
/// 获取微信小程序openid |
|
/// </summary> |
|
/// <param name="code"></param> |
|
/// <returns></returns> |
|
[HttpGet("getOpenid")] |
|
public Task<Result> GetOpenId(string code) => wechatMessagerClient.GetOpenId(code); |
|
/// <summary> |
|
/// 获取微信公众号openid |
|
/// </summary> |
|
/// <param name="code"></param> |
|
/// <returns></returns> |
|
[HttpGet("GetGzhOpenId")] |
|
public Task<Result> GetGzhOpenId(string code) => wechatMessagerClient.GetGzhOpenId(code); |
|
} |
|
|
|
|
|
public class UserLogin |
|
{ |
|
[DataMember] |
|
public string phone { get; set; } |
|
/// <summary> |
|
/// 登录密码 |
|
/// </summary> |
|
[DataMember] |
|
public string Password { get; set; } |
|
} |
|
} |