|
@@ -12,6 +12,10 @@ using Learun.Application.TwoDevelopment.LR_Desktop; |
|
|
using Learun.Cache.Base; |
|
|
using Learun.Cache.Base; |
|
|
using Learun.Cache.Factory; |
|
|
using Learun.Cache.Factory; |
|
|
using Quanjiang.DigitalScholl.SendSms; |
|
|
using Quanjiang.DigitalScholl.SendSms; |
|
|
|
|
|
using static Learun.Application.WebApi.UserApi; |
|
|
|
|
|
using static Learun.Util.QRCodeHelper; |
|
|
|
|
|
using System.Security.Principal; |
|
|
|
|
|
using static Learun.Application.WebApi.SunshineEducationApi; |
|
|
|
|
|
|
|
|
namespace Learun.Application.WebApi |
|
|
namespace Learun.Application.WebApi |
|
|
{ |
|
|
{ |
|
@@ -31,6 +35,8 @@ namespace Learun.Application.WebApi |
|
|
: base("/learun/adms/user") |
|
|
: base("/learun/adms/user") |
|
|
{ |
|
|
{ |
|
|
Post["/login"] = Login; |
|
|
Post["/login"] = Login; |
|
|
|
|
|
Post["/loginverify"] = LoginVerify; |
|
|
|
|
|
Post["/sendmsg"] = LoginSendMessage; |
|
|
Post["/logincodeverify"] = LoginCodeVerify; |
|
|
Post["/logincodeverify"] = LoginCodeVerify; |
|
|
Post["/modifypw"] = ModifyPassword; |
|
|
Post["/modifypw"] = ModifyPassword; |
|
|
Post["/modifypwiden"] = ModifyPasswordiden; |
|
|
Post["/modifypwiden"] = ModifyPasswordiden; |
|
@@ -56,9 +62,147 @@ namespace Learun.Application.WebApi |
|
|
private readonly ISms yixintongSms = new YixintongSms(); |
|
|
private readonly ISms yixintongSms = new YixintongSms(); |
|
|
private ICache redisCache = CacheFactory.CaChe(); |
|
|
private ICache redisCache = CacheFactory.CaChe(); |
|
|
private Sys_UpdateRecordIBLL sysUpdateRecordIbll = new Sys_UpdateRecordBLL(); |
|
|
private Sys_UpdateRecordIBLL sysUpdateRecordIbll = new Sys_UpdateRecordBLL(); |
|
|
AnnexesFileIBLL annexesFileIbll=new AnnexesFileBLL(); |
|
|
|
|
|
|
|
|
AnnexesFileIBLL annexesFileIbll = new AnnexesFileBLL(); |
|
|
|
|
|
/// <summary> |
|
|
|
|
|
/// 验证是否需要输入验证码 |
|
|
|
|
|
/// </summary> |
|
|
|
|
|
/// <returns></returns> |
|
|
|
|
|
private Response LoginVerify(dynamic _) |
|
|
|
|
|
{ |
|
|
|
|
|
var account = this.GetReqData<UserAccount>(); |
|
|
|
|
|
var isSend = GetAccountIsSendMsg(account.account); |
|
|
|
|
|
if (!isSend.HasValue) |
|
|
|
|
|
{ |
|
|
|
|
|
return Fail("请维护用户手机号信息"); |
|
|
|
|
|
} |
|
|
|
|
|
return Success(new { sendresult = isSend }); |
|
|
|
|
|
} |
|
|
|
|
|
/// <summary> |
|
|
|
|
|
/// 发送短信验证码 |
|
|
|
|
|
/// </summary> |
|
|
|
|
|
/// <returns></returns> |
|
|
|
|
|
private Response LoginSendMessage(dynamic _) |
|
|
|
|
|
{ |
|
|
|
|
|
var account = this.GetReqData<UserAccount>(); |
|
|
|
|
|
var isSend = GetAccountIsSendMsg(account.account); |
|
|
|
|
|
if (!isSend.HasValue) |
|
|
|
|
|
return Fail("请维护用户手机号信息"); |
|
|
|
|
|
|
|
|
|
|
|
if (!isSend.Value) |
|
|
|
|
|
return Fail("该用户不需要短信登录"); |
|
|
|
|
|
var userEntity = userIBLL.GetEntityByMobile(account.account); |
|
|
|
|
|
LogEntity logEntity; |
|
|
|
|
|
var redisKey = $"studentuserlogin_{userEntity.F_Mobile}"; |
|
|
|
|
|
var msg = redisCache.Read<string>(redisKey); |
|
|
|
|
|
if (!string.IsNullOrEmpty(msg)) return Fail("原验证码未过期请使用原验证码。"); |
|
|
|
|
|
try |
|
|
|
|
|
{ |
|
|
|
|
|
//短信发送验证 |
|
|
|
|
|
string raRndNum = CommonHelper.RndNum(6); |
|
|
|
|
|
var listStr = new List<string> { $"欢迎使用智慧校园,您本次登录的验证码是 {raRndNum}。" }; |
|
|
|
|
|
var result = yixintongSms.SendSmsToSingle(userEntity.F_Mobile, SmsType.LoginBind, listStr); |
|
|
|
|
|
if (result.Result.code == "0") |
|
|
|
|
|
{ |
|
|
|
|
|
redisCache.Write<string>(redisKey, raRndNum, new TimeSpan(0, 5, 0)); |
|
|
|
|
|
return Success(new { sendstate = true, msg = $"短信发送成功:{raRndNum}" }); |
|
|
|
|
|
} |
|
|
|
|
|
logEntity = new LogEntity |
|
|
|
|
|
{ |
|
|
|
|
|
F_CategoryId = 4, |
|
|
|
|
|
F_OperateTypeId = "sms", |
|
|
|
|
|
F_OperateType = "sms", |
|
|
|
|
|
F_OperateAccount = "system", |
|
|
|
|
|
F_ExecuteResult = 400, |
|
|
|
|
|
F_ExecuteResultJson = "短信发送失败:" + result.Result.message + result.Result.errorType, |
|
|
|
|
|
F_Description = "短信发送:" + userEntity.F_Mobile |
|
|
|
|
|
}; |
|
|
|
|
|
logEntity.WriteLog(); |
|
|
|
|
|
return Fail("短信发送失败" + result.Result.message); |
|
|
|
|
|
} |
|
|
|
|
|
catch (Exception e) |
|
|
|
|
|
{ |
|
|
|
|
|
logEntity = new LogEntity |
|
|
|
|
|
{ |
|
|
|
|
|
F_CategoryId = 4, |
|
|
|
|
|
F_OperateTypeId = "sms", |
|
|
|
|
|
F_OperateType = "sms", |
|
|
|
|
|
F_OperateAccount = "system", |
|
|
|
|
|
F_ExecuteResult = 400, |
|
|
|
|
|
F_ExecuteResultJson = "短信发送失败:" + e.Message, |
|
|
|
|
|
F_Description = "短信发送:" + userEntity.F_Mobile |
|
|
|
|
|
}; |
|
|
|
|
|
logEntity.WriteLog(); |
|
|
|
|
|
return Fail("短信发送失败" + e.Message); |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
/// <summary> |
|
|
|
|
|
/// 判断是否需要发送验证码 |
|
|
|
|
|
/// </summary> |
|
|
|
|
|
/// <param name="account"></param> |
|
|
|
|
|
/// <returns></returns> |
|
|
|
|
|
private bool? GetAccountIsSendMsg(string account) |
|
|
|
|
|
{ |
|
|
|
|
|
var userEntity = userIBLL.GetEntityByMobile(account); |
|
|
|
|
|
//是否强密码验证 |
|
|
|
|
|
bool pwd = !string.IsNullOrEmpty(ConfigurationManager.AppSettings["verifypwd"]) && ConfigurationManager.AppSettings["verifypwd"] == "true"; |
|
|
|
|
|
//是否发送短信 |
|
|
|
|
|
bool whethersendsms = false; |
|
|
|
|
|
if (!pwd) |
|
|
|
|
|
{ |
|
|
|
|
|
#region 学生 |
|
|
|
|
|
|
|
|
|
|
|
var studententity = stuInfoBasicIBLL.GetStuInfoBasicEntityByStuNo(userEntity.F_Account); |
|
|
|
|
|
if (studententity != null) |
|
|
|
|
|
{ |
|
|
|
|
|
string queryjson = "{\"keywords\":\"" + userEntity.F_Mobile + "\"}"; |
|
|
|
|
|
LogEntity lastsendlog = LogBLL.GetlikeList(queryjson); |
|
|
|
|
|
if (lastsendlog != null) |
|
|
|
|
|
{ |
|
|
|
|
|
var aa = ((DateTime)lastsendlog.F_OperateTime - DateTime.Now).TotalMinutes; |
|
|
|
|
|
//大于30天就要发短信了 |
|
|
|
|
|
if (Math.Abs(aa) > 30 * 24 * 60) |
|
|
|
|
|
{ |
|
|
|
|
|
whethersendsms = true; |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
else |
|
|
|
|
|
{ |
|
|
|
|
|
whethersendsms = true; |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
#endregion |
|
|
|
|
|
|
|
|
|
|
|
#region 老师 |
|
|
|
|
|
|
|
|
|
|
|
var teacherentity = empInfoIBLL.GetEmpInfoEntityByEmpNo(userEntity.F_Account); |
|
|
|
|
|
if (teacherentity != null) |
|
|
|
|
|
{ |
|
|
|
|
|
|
|
|
|
|
|
string queryjson = "{\"keywords\":\"" + userEntity.F_Mobile + "\"}"; |
|
|
|
|
|
LogEntity lastsendlog = LogBLL.GetlikeList(queryjson); |
|
|
|
|
|
if (lastsendlog != null) |
|
|
|
|
|
{ |
|
|
|
|
|
var aa = ((DateTime)lastsendlog.F_OperateTime - DateTime.Now).TotalMinutes; |
|
|
|
|
|
//大于7天就要发短信了 |
|
|
|
|
|
if (Math.Abs(aa) > 7 * 24 * 60) |
|
|
|
|
|
{ |
|
|
|
|
|
whethersendsms = true; |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
else |
|
|
|
|
|
{ |
|
|
|
|
|
whethersendsms = true; |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
#endregion |
|
|
|
|
|
if (studententity == null && teacherentity == null) |
|
|
|
|
|
{ |
|
|
|
|
|
return null; |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
return whethersendsms; |
|
|
|
|
|
} |
|
|
/// <summary> |
|
|
/// <summary> |
|
|
/// 检查更新 |
|
|
/// 检查更新 |
|
|
/// </summary> |
|
|
/// </summary> |
|
@@ -66,17 +210,17 @@ namespace Learun.Application.WebApi |
|
|
/// <returns></returns> |
|
|
/// <returns></returns> |
|
|
private Response CheckUpdate(dynamic _) |
|
|
private Response CheckUpdate(dynamic _) |
|
|
{ |
|
|
{ |
|
|
var update=sysUpdateRecordIbll.GetNewest(); |
|
|
|
|
|
if (update!=null&&!string.IsNullOrEmpty(update.AppUrl)) |
|
|
|
|
|
|
|
|
var update = sysUpdateRecordIbll.GetNewest(); |
|
|
|
|
|
if (update != null && !string.IsNullOrEmpty(update.AppUrl)) |
|
|
{ |
|
|
{ |
|
|
var downurl = annexesFileIbll.GetEntityByFolderId(update.AppUrl); |
|
|
var downurl = annexesFileIbll.GetEntityByFolderId(update.AppUrl); |
|
|
if (downurl.F_FilePath.Contains("Resource")) |
|
|
if (downurl.F_FilePath.Contains("Resource")) |
|
|
{ |
|
|
{ |
|
|
return Success(new { version = update.VersionNum, content = update.Content, url ="/"+ downurl.F_FilePath.Substring(downurl.F_FilePath.IndexOf("Resource")) }); |
|
|
|
|
|
|
|
|
return Success(new { version = update.VersionNum, content = update.Content, url = "/" + downurl.F_FilePath.Substring(downurl.F_FilePath.IndexOf("Resource")) }); |
|
|
} |
|
|
} |
|
|
return Success(new { version = update.VersionNum, content = update.Content, url = "" }); |
|
|
return Success(new { version = update.VersionNum, content = update.Content, url = "" }); |
|
|
} |
|
|
} |
|
|
return Success(new {version="1.0.0",content="",url=""}); |
|
|
|
|
|
|
|
|
return Success(new { version = "1.0.0", content = "", url = "" }); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
/// <summary> |
|
|
/// <summary> |
|
@@ -168,12 +312,6 @@ namespace Learun.Application.WebApi |
|
|
|
|
|
|
|
|
return Success("密码修改成功"); |
|
|
return Success("密码修改成功"); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary> |
|
|
/// <summary> |
|
|
/// 登录接口 |
|
|
/// 登录接口 |
|
|
/// </summary> |
|
|
/// </summary> |
|
@@ -182,10 +320,9 @@ namespace Learun.Application.WebApi |
|
|
private Response Login(dynamic _) |
|
|
private Response Login(dynamic _) |
|
|
{ |
|
|
{ |
|
|
LoginModel loginModel = this.GetReqData<LoginModel>(); |
|
|
LoginModel loginModel = this.GetReqData<LoginModel>(); |
|
|
|
|
|
|
|
|
#region 内部账户验证 |
|
|
|
|
|
|
|
|
var isSend = GetAccountIsSendMsg(loginModel.username); |
|
|
UserEntity userEntity = userIBLL.CheckLogin(loginModel.username, loginModel.password); |
|
|
UserEntity userEntity = userIBLL.CheckLogin(loginModel.username, loginModel.password); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#region 写入日志 |
|
|
#region 写入日志 |
|
|
LogEntity logEntity = new LogEntity(); |
|
|
LogEntity logEntity = new LogEntity(); |
|
|
logEntity.F_CategoryId = 1; |
|
|
logEntity.F_CategoryId = 1; |
|
@@ -205,203 +342,59 @@ namespace Learun.Application.WebApi |
|
|
logEntity.WriteLog(); |
|
|
logEntity.WriteLog(); |
|
|
return Fail(userEntity.LoginMsg); |
|
|
return Fail(userEntity.LoginMsg); |
|
|
} |
|
|
} |
|
|
else |
|
|
|
|
|
|
|
|
if (!isSend.HasValue) |
|
|
|
|
|
return Fail("请维护用户手机号信息"); |
|
|
|
|
|
if (isSend.Value) |
|
|
{ |
|
|
{ |
|
|
//记录ip |
|
|
|
|
|
userIBLL.UpdateIp(GetIP(), userEntity.F_UserId); |
|
|
|
|
|
string token = OperatorHelper.Instance.AddLoginUser(userEntity.F_Account, "Learun_ADMS_6.1_App", this.loginMark, false);//写入缓存信息 |
|
|
|
|
|
//写入日志 |
|
|
|
|
|
logEntity.F_ExecuteResult = 1; |
|
|
|
|
|
logEntity.F_ExecuteResultJson = "登录成功"; |
|
|
|
|
|
logEntity.WriteLog(); |
|
|
|
|
|
|
|
|
|
|
|
//保存用户设备号 |
|
|
|
|
|
userIBLL.UpdateDeviceId(userEntity.F_UserId, loginModel.deviceid); |
|
|
|
|
|
OperatorResult res = OperatorHelper.Instance.IsOnLine(token, this.loginMark); |
|
|
|
|
|
res.userInfo.password = null; |
|
|
|
|
|
res.userInfo.secretkey = null; |
|
|
|
|
|
string verifyonelogin = Util.Config.GetValue("verifyonelogin"); |
|
|
|
|
|
if (string.IsNullOrEmpty(verifyonelogin) || verifyonelogin != "true") |
|
|
|
|
|
{ |
|
|
|
|
|
res.userInfo.logTime = null; |
|
|
|
|
|
} |
|
|
|
|
|
//是否强密码验证 |
|
|
|
|
|
bool pwd = false; |
|
|
|
|
|
if (!string.IsNullOrEmpty(ConfigurationManager.AppSettings["verifypwd"]) && ConfigurationManager.AppSettings["verifypwd"] == "true" && loginModel.up == false) |
|
|
|
|
|
{ |
|
|
|
|
|
pwd = true; |
|
|
|
|
|
} |
|
|
|
|
|
//是否发送短信了 |
|
|
|
|
|
bool whethersendsms = false; |
|
|
|
|
|
if (!pwd) |
|
|
|
|
|
{ |
|
|
|
|
|
//增加短信发送验证 |
|
|
|
|
|
var studententity = stuInfoBasicIBLL.GetStuInfoBasicEntityByStuNo(userEntity.F_Account); |
|
|
|
|
|
if (studententity != null) |
|
|
|
|
|
{ |
|
|
|
|
|
res.userInfo.grade = studententity.Grade; |
|
|
|
|
|
var majorinfo = majorIbll.GetCdMajorEntityByMajorNo(studententity.MajorNo); |
|
|
|
|
|
if (majorinfo != null) |
|
|
|
|
|
{ |
|
|
|
|
|
res.userInfo.majorno = majorinfo.ID ?? ""; |
|
|
|
|
|
} |
|
|
|
|
|
#region 判断是否需要发短信 |
|
|
|
|
|
string queryjson = "{\"keywords\":\"" + userEntity.F_Mobile + "\"}"; |
|
|
|
|
|
LogEntity lastsendlog = LogBLL.GetlikeList(queryjson); |
|
|
|
|
|
if (lastsendlog != null) |
|
|
|
|
|
{ |
|
|
|
|
|
var aa = ((DateTime)lastsendlog.F_OperateTime - DateTime.Now).TotalMinutes; |
|
|
|
|
|
//大于30天就要发短信了 |
|
|
|
|
|
if (Math.Abs(aa) > 30 * 24 * 60 ) |
|
|
|
|
|
{ |
|
|
|
|
|
whethersendsms = true; |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
else |
|
|
|
|
|
{ |
|
|
|
|
|
whethersendsms = true; |
|
|
|
|
|
} |
|
|
|
|
|
#endregion |
|
|
|
|
|
try |
|
|
|
|
|
{ |
|
|
|
|
|
if (whethersendsms) |
|
|
|
|
|
{ |
|
|
|
|
|
//学生增加短信发送验证 |
|
|
|
|
|
string raRndNum = Learun.Util.CommonHelper.RndNum(6); |
|
|
|
|
|
var listStr = new List<string>(); |
|
|
|
|
|
var str1 = $"欢迎使用智慧校园,您本次登录的验证码是 " + raRndNum + "。"; |
|
|
|
|
|
listStr.Add(str1); |
|
|
|
|
|
var result = yixintongSms.SendSmsToSingle(userEntity.F_Mobile, SmsType.LoginBind, listStr); |
|
|
|
|
|
if (result.Result.code == "0") |
|
|
|
|
|
{ |
|
|
|
|
|
redisCache.Write<string>("studentuserlogin_" + userEntity.F_Mobile, raRndNum, new TimeSpan(0, 5, 0)); |
|
|
|
|
|
//日志 |
|
|
|
|
|
logEntity = new LogEntity(); |
|
|
|
|
|
logEntity.F_CategoryId = 3; |
|
|
|
|
|
logEntity.F_OperateTypeId = "sms"; |
|
|
|
|
|
logEntity.F_OperateType = "sms"; |
|
|
|
|
|
logEntity.F_OperateAccount = "system"; |
|
|
|
|
|
logEntity.F_ExecuteResult = 200; |
|
|
|
|
|
logEntity.F_ExecuteResultJson = "短信发送成功:" + result.Result.message; |
|
|
|
|
|
logEntity.F_Description = "短信发送:" + userEntity.F_Mobile; |
|
|
|
|
|
logEntity.WriteLog(); |
|
|
|
|
|
} |
|
|
|
|
|
else |
|
|
|
|
|
{ |
|
|
|
|
|
logEntity = new LogEntity(); |
|
|
|
|
|
logEntity.F_CategoryId = 4; |
|
|
|
|
|
logEntity.F_OperateTypeId = "sms"; |
|
|
|
|
|
logEntity.F_OperateType = "sms"; |
|
|
|
|
|
logEntity.F_OperateAccount = "system"; |
|
|
|
|
|
logEntity.F_ExecuteResult = 400; |
|
|
|
|
|
logEntity.F_ExecuteResultJson = "短信发送失败:" + result.Result.message + result.Result.errorType; |
|
|
|
|
|
logEntity.F_Description = "短信发送:" + userEntity.F_Mobile; |
|
|
|
|
|
logEntity.WriteLog(); |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
catch (Exception e) |
|
|
|
|
|
{ |
|
|
|
|
|
logEntity = new LogEntity(); |
|
|
|
|
|
logEntity.F_CategoryId = 4; |
|
|
|
|
|
logEntity.F_OperateTypeId = "sms"; |
|
|
|
|
|
logEntity.F_OperateType = "sms"; |
|
|
|
|
|
logEntity.F_OperateAccount = "system"; |
|
|
|
|
|
logEntity.F_ExecuteResult = 400; |
|
|
|
|
|
logEntity.F_ExecuteResultJson = "短信发送失败:" + e.Message; |
|
|
|
|
|
logEntity.F_Description = "短信发送:" + userEntity.F_Mobile; |
|
|
|
|
|
logEntity.WriteLog(); |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
var teacherentity = empInfoIBLL.GetEmpInfoEntityByEmpNo(userEntity.F_Account); |
|
|
|
|
|
if (teacherentity != null) |
|
|
|
|
|
{ |
|
|
|
|
|
|
|
|
|
|
|
#region 判断是否需要发短信 |
|
|
|
|
|
string queryjson = "{\"keywords\":\"" + userEntity.F_Mobile + "\"}"; |
|
|
|
|
|
LogEntity lastsendlog = LogBLL.GetlikeList(queryjson); |
|
|
|
|
|
if (lastsendlog != null) |
|
|
|
|
|
{ |
|
|
|
|
|
var aa = ((DateTime)lastsendlog.F_OperateTime - DateTime.Now).TotalMinutes; |
|
|
|
|
|
//大于30天就要发短信了 |
|
|
|
|
|
if (Math.Abs(aa) > 7 * 24 * 60 ) |
|
|
|
|
|
{ |
|
|
|
|
|
whethersendsms = true; |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
else |
|
|
|
|
|
{ |
|
|
|
|
|
whethersendsms = true; |
|
|
|
|
|
} |
|
|
|
|
|
#endregion |
|
|
|
|
|
try |
|
|
|
|
|
{ |
|
|
|
|
|
if (whethersendsms) |
|
|
|
|
|
{ |
|
|
|
|
|
//学生增加短信发送验证 |
|
|
|
|
|
string raRndNum = Learun.Util.CommonHelper.RndNum(6); |
|
|
|
|
|
var listStr = new List<string>(); |
|
|
|
|
|
var str1 = $"欢迎使用智慧校园,您本次登录的验证码是 " + raRndNum + "。"; |
|
|
|
|
|
listStr.Add(str1); |
|
|
|
|
|
var result = yixintongSms.SendSmsToSingle(userEntity.F_Mobile, SmsType.LoginBind, listStr); |
|
|
|
|
|
if (result.Result.code == "0") |
|
|
|
|
|
{ |
|
|
|
|
|
redisCache.Write<string>("studentuserlogin_" + userEntity.F_Mobile, raRndNum, new TimeSpan(0, 5, 0)); |
|
|
|
|
|
//日志 |
|
|
|
|
|
logEntity = new LogEntity(); |
|
|
|
|
|
logEntity.F_CategoryId = 3; |
|
|
|
|
|
logEntity.F_OperateTypeId = "sms"; |
|
|
|
|
|
logEntity.F_OperateType = "sms"; |
|
|
|
|
|
logEntity.F_OperateAccount = "system"; |
|
|
|
|
|
logEntity.F_ExecuteResult = 200; |
|
|
|
|
|
logEntity.F_ExecuteResultJson = "短信发送成功:" + result.Result.message; |
|
|
|
|
|
logEntity.F_Description = "短信发送:" + userEntity.F_Mobile; |
|
|
|
|
|
logEntity.WriteLog(); |
|
|
|
|
|
} |
|
|
|
|
|
else |
|
|
|
|
|
{ |
|
|
|
|
|
logEntity = new LogEntity(); |
|
|
|
|
|
logEntity.F_CategoryId = 4; |
|
|
|
|
|
logEntity.F_OperateTypeId = "sms"; |
|
|
|
|
|
logEntity.F_OperateType = "sms"; |
|
|
|
|
|
logEntity.F_OperateAccount = "system"; |
|
|
|
|
|
logEntity.F_ExecuteResult = 400; |
|
|
|
|
|
logEntity.F_ExecuteResultJson = "短信发送失败:" + result.Result.message + result.Result.errorType; |
|
|
|
|
|
logEntity.F_Description = "短信发送:" + userEntity.F_Mobile; |
|
|
|
|
|
logEntity.WriteLog(); |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
catch (Exception e) |
|
|
|
|
|
{ |
|
|
|
|
|
logEntity = new LogEntity(); |
|
|
|
|
|
logEntity.F_CategoryId = 4; |
|
|
|
|
|
logEntity.F_OperateTypeId = "sms"; |
|
|
|
|
|
logEntity.F_OperateType = "sms"; |
|
|
|
|
|
logEntity.F_OperateAccount = "system"; |
|
|
|
|
|
logEntity.F_ExecuteResult = 400; |
|
|
|
|
|
logEntity.F_ExecuteResultJson = "短信发送失败:" + e.Message; |
|
|
|
|
|
logEntity.F_Description = "短信发送:" + userEntity.F_Mobile; |
|
|
|
|
|
logEntity.WriteLog(); |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
if (studententity==null &&teacherentity==null) |
|
|
|
|
|
{ |
|
|
|
|
|
return Fail("请维护手机号信息"); |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
var jsonData = new |
|
|
|
|
|
|
|
|
if (string.IsNullOrEmpty(loginModel.verifycode)) |
|
|
|
|
|
return Success(new { sendresult = true, msg = "请输入验证码" }); |
|
|
|
|
|
var vers = redisCache.Read<string>($"studentuserlogin_{userEntity.F_Mobile}"); |
|
|
|
|
|
if (redisCache.Read<string>($"studentuserlogin_{userEntity.F_Mobile}") != loginModel.verifycode) |
|
|
|
|
|
return Fail("验证码错误或已失效。"); |
|
|
|
|
|
redisCache.Remove($"studentuserlogin_{userEntity.F_Mobile}"); |
|
|
|
|
|
} |
|
|
|
|
|
//记录ip |
|
|
|
|
|
userIBLL.UpdateIp(GetIP(), userEntity.F_UserId); |
|
|
|
|
|
string token = OperatorHelper.Instance.AddLoginUser(userEntity.F_Account, "Learun_ADMS_6.1_App", this.loginMark, false);//写入缓存信息 |
|
|
|
|
|
//写入日志 |
|
|
|
|
|
logEntity.F_ExecuteResult = 1; |
|
|
|
|
|
logEntity.F_ExecuteResultJson = "登录成功"; |
|
|
|
|
|
logEntity.WriteLog(); |
|
|
|
|
|
if (isSend.Value) |
|
|
|
|
|
{ |
|
|
|
|
|
logEntity = new LogEntity |
|
|
{ |
|
|
{ |
|
|
baseinfo = res.userInfo, |
|
|
|
|
|
post = postIBLL.GetListByPostIds(res.userInfo.postIds), |
|
|
|
|
|
role = roleIBLL.GetListByRoleIds(res.userInfo.roleIds), |
|
|
|
|
|
pwd = pwd, |
|
|
|
|
|
sendresult=whethersendsms |
|
|
|
|
|
|
|
|
F_CategoryId = 3, |
|
|
|
|
|
F_OperateTypeId = "sms", |
|
|
|
|
|
F_OperateType = "sms", |
|
|
|
|
|
F_OperateAccount = "system", |
|
|
|
|
|
F_ExecuteResult = 200, |
|
|
|
|
|
F_ExecuteResultJson = "短信发送成功:发送短信成功", |
|
|
|
|
|
F_Description = "短信发送:" + userEntity.F_Mobile |
|
|
}; |
|
|
}; |
|
|
return Success(jsonData); |
|
|
|
|
|
|
|
|
logEntity.WriteLog(); |
|
|
} |
|
|
} |
|
|
#endregion |
|
|
|
|
|
|
|
|
//配置短信发送日志,为登录时效验是否需要发送短信 |
|
|
|
|
|
|
|
|
|
|
|
//保存用户设备号 |
|
|
|
|
|
userIBLL.UpdateDeviceId(userEntity.F_UserId, loginModel.deviceid); |
|
|
|
|
|
OperatorResult res = OperatorHelper.Instance.IsOnLine(token, this.loginMark); |
|
|
|
|
|
res.userInfo.password = null; |
|
|
|
|
|
res.userInfo.secretkey = null; |
|
|
|
|
|
string verifyonelogin = Util.Config.GetValue("verifyonelogin"); |
|
|
|
|
|
if (string.IsNullOrEmpty(verifyonelogin) || verifyonelogin != "true") |
|
|
|
|
|
{ |
|
|
|
|
|
res.userInfo.logTime = null; |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
var jsonData = new |
|
|
|
|
|
{ |
|
|
|
|
|
baseinfo = res.userInfo, |
|
|
|
|
|
post = postIBLL.GetListByPostIds(res.userInfo.postIds), |
|
|
|
|
|
role = roleIBLL.GetListByRoleIds(res.userInfo.roleIds), |
|
|
|
|
|
pwd = false, |
|
|
|
|
|
}; |
|
|
|
|
|
return Success(jsonData); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
/// <summary> |
|
|
/// <summary> |
|
@@ -489,7 +482,8 @@ namespace Learun.Application.WebApi |
|
|
{ |
|
|
{ |
|
|
//多客户端登录判断 |
|
|
//多客户端登录判断 |
|
|
string logintime = redisCache.Read<string>("logintime" + userInfo.account, CacheId.loginInfo); |
|
|
string logintime = redisCache.Read<string>("logintime" + userInfo.account, CacheId.loginInfo); |
|
|
return Success(new { |
|
|
|
|
|
|
|
|
return Success(new |
|
|
|
|
|
{ |
|
|
logintime |
|
|
logintime |
|
|
}); |
|
|
}); |
|
|
} |
|
|
} |
|
@@ -775,6 +769,7 @@ namespace Learun.Application.WebApi |
|
|
/// </summary> |
|
|
/// </summary> |
|
|
public string deviceid { get; set; } |
|
|
public string deviceid { get; set; } |
|
|
public string openid { get; set; } |
|
|
public string openid { get; set; } |
|
|
|
|
|
public string verifycode { get; set; } |
|
|
} |
|
|
} |
|
|
/// <summary> |
|
|
/// <summary> |
|
|
/// 修改密码 |
|
|
/// 修改密码 |
|
@@ -806,5 +801,4 @@ namespace Learun.Application.WebApi |
|
|
{ |
|
|
{ |
|
|
public string account { get; set; } |
|
|
public string account { get; set; } |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
} |
|
|
} |