|
|
|
@ -1,57 +1,57 @@
|
|
|
|
|
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 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 |
|
|
|
|
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> |
|
|
|
|
#if DEBUG |
|
|
|
|
/// <summary> |
|
|
|
|
/// 登录 |
|
|
|
|
/// </summary> |
|
|
|
|
#if DEBUG |
|
|
|
|
|
|
|
|
|
#else |
|
|
|
|
[HiddenApi] |
|
|
|
|
#endif |
|
|
|
|
[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; |
|
|
|
|
#else |
|
|
|
|
[HiddenApi] |
|
|
|
|
#endif |
|
|
|
|
[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")] |
|
|
|
|
[HttpPost] |
|
|
|
|
[Route("LoginDefault")] |
|
|
|
|
[CustomCorsActionFilterAttribute] |
|
|
|
|
public async Task<Result> LoginDefault() |
|
|
|
|
{ |
|
|
|
@ -77,10 +77,10 @@ namespace _24Hour.Controllers
|
|
|
|
|
date.departmentName = dept.departname; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
#region jwt生成token |
|
|
|
|
#region jwt生成token |
|
|
|
|
var tokenHandler = new JwtSecurityTokenHandler(); |
|
|
|
|
var claims = new Claim[] |
|
|
|
|
{ |
|
|
|
|
{ |
|
|
|
|
new Claim(ClaimTypes.UserData,JsonConvert.SerializeObject(date)), |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
@ -116,23 +116,23 @@ namespace _24Hour.Controllers
|
|
|
|
|
#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 |
|
|
|
|
{ |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/// <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(); |
|
|
|
|
var date = await _db.Queryable<App_Sys_UserModel>().Where(x => x.phone == login.phone && x.IsDeleted == 0).FirstAsync(); |
|
|
|
|
if (date == null) |
|
|
|
|
{ |
|
|
|
|
ret.IsSucceed = false; |
|
|
|
@ -154,10 +154,10 @@ namespace _24Hour.Controllers
|
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
#region jwt生成token |
|
|
|
|
#region jwt生成token |
|
|
|
|
var tokenHandler = new JwtSecurityTokenHandler(); |
|
|
|
|
var claims = new Claim[] |
|
|
|
|
{ |
|
|
|
|
{ |
|
|
|
|
new Claim(ClaimTypes.UserData,JsonConvert.SerializeObject(date)), |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
@ -184,7 +184,7 @@ namespace _24Hour.Controllers
|
|
|
|
|
phone = date.phone, |
|
|
|
|
photo = date.photo, |
|
|
|
|
duties = date.duties, |
|
|
|
|
identity = date.identity, |
|
|
|
|
identity = date.identity, |
|
|
|
|
openId = date.wechatId, |
|
|
|
|
unitCode = date.unitCode, |
|
|
|
|
unitname = Unitdate?.unitname, |
|
|
|
@ -192,31 +192,31 @@ namespace _24Hour.Controllers
|
|
|
|
|
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(); |
|
|
|
|
#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; |
|
|
|
@ -267,10 +267,10 @@ namespace _24Hour.Controllers
|
|
|
|
|
date.departmentName = dept.departname; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
#region jwt生成token |
|
|
|
|
#region jwt生成token |
|
|
|
|
var tokenHandler = new JwtSecurityTokenHandler(); |
|
|
|
|
var claims = new Claim[] |
|
|
|
|
{ |
|
|
|
|
{ |
|
|
|
|
new Claim(ClaimTypes.UserData,JsonConvert.SerializeObject(date)), |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
@ -295,7 +295,7 @@ namespace _24Hour.Controllers
|
|
|
|
|
phone = date.phone, |
|
|
|
|
photo = date.photo, |
|
|
|
|
duties = date.duties, |
|
|
|
|
identity = date.identity, |
|
|
|
|
identity = date.identity, |
|
|
|
|
openId = date.wechatId, |
|
|
|
|
usertype = date.usertype, |
|
|
|
|
unitCode = date.unitCode, |
|
|
|
@ -303,16 +303,16 @@ namespace _24Hour.Controllers
|
|
|
|
|
departmentName = date.departmentName, |
|
|
|
|
token = tokenString |
|
|
|
|
}; |
|
|
|
|
#endregion |
|
|
|
|
ret.IsSucceed = true; |
|
|
|
|
} |
|
|
|
|
catch (Exception ex) |
|
|
|
|
{ |
|
|
|
|
ret.IsSucceed = false; |
|
|
|
|
ret.Message = $"{ex.Message}"; |
|
|
|
|
LogService.WriteLog(ex, "登录"); |
|
|
|
|
} |
|
|
|
|
return ret; |
|
|
|
|
#endregion |
|
|
|
|
ret.IsSucceed = true; |
|
|
|
|
} |
|
|
|
|
catch (Exception ex) |
|
|
|
|
{ |
|
|
|
|
ret.IsSucceed = false; |
|
|
|
|
ret.Message = $"{ex.Message}"; |
|
|
|
|
LogService.WriteLog(ex, "登录"); |
|
|
|
|
} |
|
|
|
|
return ret; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/// <summary> |
|
|
|
@ -320,8 +320,8 @@ namespace _24Hour.Controllers
|
|
|
|
|
/// </summary> |
|
|
|
|
/// <param name="code"></param> |
|
|
|
|
/// <returns></returns> |
|
|
|
|
[HttpGet] |
|
|
|
|
[Route("WeChatLoginCode")] |
|
|
|
|
[HttpGet] |
|
|
|
|
[Route("WeChatLoginCode")] |
|
|
|
|
public async Task<Result> WeChatLoginByCode(string code) |
|
|
|
|
{ |
|
|
|
|
var opendata = await GetOpenId(code); |
|
|
|
@ -339,8 +339,8 @@ namespace _24Hour.Controllers
|
|
|
|
|
/// </summary> |
|
|
|
|
/// <param name="code"></param> |
|
|
|
|
/// <returns></returns> |
|
|
|
|
[HttpGet] |
|
|
|
|
[Route("WeChatLoginByGzhCode")] |
|
|
|
|
[HttpGet] |
|
|
|
|
[Route("WeChatLoginByGzhCode")] |
|
|
|
|
public async Task<Result> WeChatLoginByGzhCode(string code) |
|
|
|
|
{ |
|
|
|
|
var opendata = await GetGzhOpenId(code); |
|
|
|
@ -359,8 +359,8 @@ namespace _24Hour.Controllers
|
|
|
|
|
///// </summary> |
|
|
|
|
///// <param name="code"></param> |
|
|
|
|
///// <returns></returns> |
|
|
|
|
//[HttpGet] |
|
|
|
|
//[Route("GetCode")] |
|
|
|
|
//[HttpGet] |
|
|
|
|
//[Route("GetCode")] |
|
|
|
|
//public async Task<Result> GetCode(string code,string state) |
|
|
|
|
//{ |
|
|
|
|
// var opendata = await GetGzhOpenId(code); |
|
|
|
@ -372,128 +372,134 @@ namespace _24Hour.Controllers
|
|
|
|
|
// { |
|
|
|
|
// 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) |
|
|
|
|
//} |
|
|
|
|
|
|
|
|
|
/// <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},请重新注册!"; |
|
|
|
|
ret.result = "用户信息审核未通过"; |
|
|
|
|
return ret; |
|
|
|
|
} |
|
|
|
|
else if (date.identity == "律师" && date.audit == 2) |
|
|
|
|
{ |
|
|
|
|
ret.IsSucceed = false; |
|
|
|
|
ret.Message = "用户信息审核中!"; |
|
|
|
|
ret.result = "用户信息审核中"; |
|
|
|
|
return ret; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
if (date.isdeactivate == 1) |
|
|
|
|
{ |
|
|
|
|
ret.IsSucceed = false; |
|
|
|
|
ret.Message = "该账号已被禁用,请联系管理员!"; |
|
|
|
|
ret.result = "该账号已被禁用"; |
|
|
|
|
return ret; |
|
|
|
|
} |
|
|
|
|
if (date.usertype == 0 && date.becurrent == 1) |
|
|
|
|
{ |
|
|
|
|
ret.IsSucceed = false; |
|
|
|
|
ret.Message = $"账号未授权无法登录,请联系管理员!"; |
|
|
|
|
ret.result = "账号未授权无法登录"; |
|
|
|
|
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 |
|
|
|
|
} |
|
|
|
|
#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 = "微信未授权,请先注册账号!"; |
|
|
|
|
ret.result = "微信未授权"; |
|
|
|
|
} |
|
|
|
|
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()); |
|
|
|
|
_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 (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; |
|
|
|
@ -580,7 +586,7 @@ namespace _24Hour.Controllers
|
|
|
|
|
ret.IsSucceed = true; |
|
|
|
|
ret.result = "添加成功"; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
else |
|
|
|
|
{ |
|
|
|
@ -606,57 +612,57 @@ namespace _24Hour.Controllers
|
|
|
|
|
{ |
|
|
|
|
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) |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
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) |
|
|
|
|
// { |
|
|
|
@ -671,52 +677,52 @@ namespace _24Hour.Controllers
|
|
|
|
|
// 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 |
|
|
|
|
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(); |
|
|
|
|
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; |
|
|
|
@ -737,15 +743,15 @@ namespace _24Hour.Controllers
|
|
|
|
|
ret.IsSucceed = true; |
|
|
|
|
ret.result = "添加成功"; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
else |
|
|
|
|
{ |
|
|
|
|
ret.IsSucceed = false; |
|
|
|
|
ret.Message = $"用户未授权无法登录,请联系管理员!"; |
|
|
|
|
ret.IsSucceed = false; |
|
|
|
|
ret.Message = $"用户未授权无法登录,请联系管理员!"; |
|
|
|
|
return ret; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
return ret; |
|
|
|
|
} |
|
|
|
|
return ret; |
|
|
|
|
} |
|
|
|
|
/// <summary> |
|
|
|
|
/// 小程序AppID |
|
|
|
@ -769,17 +775,17 @@ namespace _24Hour.Controllers
|
|
|
|
|
/// <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; } |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public class UserLogin |
|
|
|
|
{ |
|
|
|
|
[DataMember] |
|
|
|
|
public string phone { get; set; } |
|
|
|
|
/// <summary> |
|
|
|
|
/// 登录密码 |
|
|
|
|
/// </summary> |
|
|
|
|
[DataMember] |
|
|
|
|
public string Password { get; set; } |
|
|
|
|
} |
|
|
|
|
} |