Browse Source

【修改】首页-解绑微信:增加短信验证后解绑;

西昌分支
dyy 4 months ago
parent
commit
01571c771f
5 changed files with 321 additions and 23 deletions
  1. +102
    -11
      Learun.Framework.Ultimate V7/Learun.Application.Web/Controllers/HomeController.cs
  2. +2
    -0
      Learun.Framework.Ultimate V7/Learun.Application.Web/Learun.Application.Web.csproj
  3. +102
    -0
      Learun.Framework.Ultimate V7/Learun.Application.Web/Views/Home/CancelWeiXinBindForm.cshtml
  4. +108
    -0
      Learun.Framework.Ultimate V7/Learun.Application.Web/Views/Home/CancelWeiXinBindForm.js
  5. +7
    -12
      Learun.Framework.Ultimate V7/Learun.Application.Web/Views/LR_Content/script/lr-admin.js

+ 102
- 11
Learun.Framework.Ultimate V7/Learun.Application.Web/Controllers/HomeController.cs View File

@@ -431,8 +431,8 @@ namespace Learun.Application.Web.Controllers
[HttpGet]
public ActionResult Index()
{
#if DEBUG
#else
#if DEBUG
#else
//判断当前ip是否是123服务器,如果是123服务器,跳过授权验证
if (Net.GetLanIp() != "172.17.3.181")
{
@@ -443,7 +443,7 @@ namespace Learun.Application.Web.Controllers
return Content("<script>alert('" + lc.Message + "');location.href='/ShowRegister/Index';</script>");
}
}
#endif
#endif

//return View("AdminTop");
string learn_UItheme = WebHelper.GetCookie("Learn_ADMS_V6.1_UItheme");
@@ -670,7 +670,7 @@ namespace Learun.Application.Web.Controllers
{
return View();
}
#endregion
#endregion

private ICache cache = CacheFactory.CaChe();

@@ -691,25 +691,116 @@ namespace Learun.Application.Web.Controllers
}
#endregion

#region 解绑微信
#region 解绑微信、短信发送、校验

public ActionResult CancelWeiXinBindForm()
{
return View();
}

/// <summary>
/// 解绑微信
/// </summary>
/// <returns></returns>
[HttpPost]
[AjaxOnly]
public ActionResult CancelWeiXinBind(string keyValue)
public ActionResult CancelWeiXinBind(string keyValue, string codeType, string verifycode)
{
//短信验证码校验
if (string.IsNullOrEmpty(codeType))
{
return Fail("未指定短信类型。");
}
var userId = LoginUserInfo.Get().userId;
if (!string.IsNullOrEmpty(keyValue))
var mobile = userIBLL.GetEntityByUserId(userId)?.F_Mobile;
if (string.IsNullOrEmpty(mobile))
{
userId = keyValue;
return Fail("手机号不能为空。");
}
//更新openid
userIBLL.UpdateWeixinOpenIdPC(userId, "");
var code = redisCache.Read<string>("sendcodeinpc_" + codeType + "_" + mobile, CacheId.sms);
if (!string.IsNullOrEmpty(code) && code == verifycode)
{
//return Success("验证成功。");

return Success("解绑成功");
if (!string.IsNullOrEmpty(keyValue))
{
userId = keyValue;
}
//更新openid
userIBLL.UpdateWeixinOpenIdPC(userId, "");

return Success("解绑成功");
}
else
{
return Fail("验证失败,验证码错误或已失效。");
}
}

/// <summary>
/// 发送短信验证码
/// </summary>
/// <param name="codeType">发送短信类型:忘记密码forgetpwd,首次登录firstlogin,绑定微信bindwx,解绑微信unbindwx,修改手机号modifymobile,;</param>
/// <param name="phone">手机号</param>
/// <returns></returns>
[HttpPost]
public ActionResult Sendcode(string codeType)
{
if (string.IsNullOrEmpty(codeType))
{
return Fail("未指定短信类型。");
}
UserEntity userEntity = null;
userEntity = userIBLL.GetEntityByUserId(LoginUserInfo.Get().userId);
if (userEntity == null)
{
return Fail("用户不存在!");
}
if (string.IsNullOrEmpty(userEntity.F_Mobile))
{
return Fail("用户手机号不存在!");
}
//todo:待取消注释
//string raRndNum = Learun.Util.CommonHelper.RndNum(6);
string raRndNum = "123456";
var listStr = new List<string>();
var str1 = $"欢迎使用智慧校园,您本次登录的验证码是 " + raRndNum + "。";
listStr.Add(str1);
//todo:待开发短信平台
//var result = aliyunSms.SendSmsToSingle(userEntity.F_Mobile, SmsType.LoginBind, listStr);
//if (result.Result.code == "0")
if (true)
{
redisCache.Write<string>("sendcodeinpc_" + codeType + "_" + userEntity.F_Mobile, raRndNum, new TimeSpan(0, 5, 0), CacheId.sms);
//日志
LogEntity logEntity = new LogEntity();
logEntity.F_CategoryId = 3;
logEntity.F_SourceObjectId = codeType;
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 + " 验证码:" + raRndNum;
logEntity.WriteLog();
return Success("短信发送成功:");// + result.Result.message);
}
else
{
LogEntity logEntity = new LogEntity();
logEntity.F_CategoryId = 4;
logEntity.F_SourceObjectId = codeType;
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();
//return Fail("短信发送失败:" + result.Result.message + result.Result.errorType);
}
}

#endregion

/// <summary>


+ 2
- 0
Learun.Framework.Ultimate V7/Learun.Application.Web/Learun.Application.Web.csproj View File

@@ -4233,6 +4233,7 @@
<Content Include="Views\Home\FirstChangePwd.js" />
<Content Include="Views\Home\DataBaseInit.js" />
<Content Include="Views\Home\ChangePwd.js" />
<Content Include="Views\Home\CancelWeiXinBindForm.js" />
<Content Include="Views\Home\NeedToDoForm.js" />
<Content Include="Views\Home\Guide\guide.css" />
<Content Include="Views\Home\Guide\index.css" />
@@ -8128,6 +8129,7 @@
<Content Include="Views\Login\FirstLoginForWeixin.cshtml" />
<Content Include="Views\Home\FirstChangePwd.cshtml" />
<Content Include="Views\Login\ForgotPassword.cshtml" />
<Content Include="Views\Home\CancelWeiXinBindForm.cshtml" />
</ItemGroup>
<ItemGroup>
<WCFMetadata Include="Connected Services\" />


+ 102
- 0
Learun.Framework.Ultimate V7/Learun.Application.Web/Views/Home/CancelWeiXinBindForm.cshtml View File

@@ -0,0 +1,102 @@
@{
ViewBag.Title = "解绑微信";
Layout = "~/Views/Shared/_Form.cshtml";
}
<style>
.lr-login-bypsw {
position: relative;
width: 100%;
height: 100%;
padding: 60px 0 52px 45px;
}

.error_info {
font-family: PingFangSC-Regular;
position: absolute;
font-size: 12px;
color: #ED3232;
right: 75px;
top: 32px;
display: none;
}

.lr-login-input {
position: relative;
width: 100%;
height: 48px;
margin-bottom: 25px
}

.lr-login-input input {
display: block;
width: 365px;
text-indent: 31px;
height: 48px;
line-height: 46px;
outline: 0;
font-family: PingFangSC-Regular;
font-size: 12px;
color: #666;
opacity: .99;
background: #FFF;
border: 1px solid #CCC;
border-radius: 2px
}

.lr-login-input > .inp_icon {
position: absolute;
left: 10px;
top: 18.5px;
z-index: 10
}

.lr-login-input input:focus {
opacity: .99;
background: #FFF;
border: 1px solid #3298DC;
border-radius: 2px
}

.codeBtn {
border: 1px solid #DCDFE6;
padding: 6px 10px;
color: #606266;
font-size: 12px;
cursor: pointer;
border-radius: 2px;
position: absolute;
left: 260px;
top: 10px;
}
.lr-login-btn {
display: inline-block;
text-align: center;
cursor: pointer;
background: #3298DC;
border: 1px solid #3298DC;
border-radius: 2px;
font-family: PingFangSC-Regular;
font-size: 16px;
color: #FFF;
height: 48px;
line-height: 48px;
width: 365px;
text-align: center;
margin-top: 5px;
}
</style>

<div class="lr-form-wrap" id="form">
<div class="lr-login-main lr-login-normal" id="updatepwBox">
<!--表单-->
<div class="lr-login-bypsw">
<div class="error_info">*&nbsp;<span></span></div>
<div class="lr-login-input">
<img class="inp_icon" src="~/Content/images/Login/default_psw0.png" alt=""><input id="verifycode" type="text" placeholder="请输入验证码">
<span id="sendCode" class="codeBtn">发送验证码</span>
</div>
<div class="lr-login-btn" id="confirmUpdate"><span>确认解绑</span></div>
</div>
</div>
</div>
@Html.AppendJsFile("/Views/Home/CancelWeiXinBindForm.js")

+ 108
- 0
Learun.Framework.Ultimate V7/Learun.Application.Web/Views/Home/CancelWeiXinBindForm.js View File

@@ -0,0 +1,108 @@
/*
* 版 本 Learun-ADMS-Ultimate V7.0.0 数字化智慧校园(http://www.learun.cn)
* Copyright (c) 2013-2018 北京泉江科技有限公司
* 创建人:陈彬彬
* 日 期:2024.07.12
* 描 述:解绑微信
*/

var bootstrap = function ($, learun) {
"use strict";
var codeType = 'unbindwx', hasSendCode = false, time = 0, timeT = '', isSending = false;
var lrPage = {
init: function () {
lrPage.bind();
},
bind: function () {
// 确认按钮
$("#confirmUpdate").on('click', function () {
lrPage.confirmUpdate();
});

// 发送验证码事件
$("#sendCode").on('click', function () {
lrPage.sendCode();
});
},
updating: function (isShow) {
if (isShow) {
$('#updatepwBox input').attr('disabled', 'disabled');
$("#confirmUpdate").addClass('active').attr('disabled', 'disabled').find('span').hide();
$("#confirmUpdate").css('background', '#eeecec url(/Content/images/Login/loading.gif) no-repeat center 10px');
}
else {
$('#updatepwBox input').removeAttr('disabled');
$("#confirmUpdate").removeClass('active').removeAttr('disabled').find('span').show();
$("#confirmUpdate").css('background', '#268fe2');
}
},
sendCode: function () {
if (isSending || hasSendCode) return;
$('#updatepwBox .error_info').hide()
isSending = true
$.ajax({
url: top.$.rootUrl + "/Home/Sendcode",
data: { codeType },
dataType: 'json',
type: "post",
success: (res) => {
isSending = false;
if (res.code == 200) {
$('#updatepwBox .error_info span').text('短信已发送')
$('#updatepwBox .error_info').show()

hasSendCode = true
time = 60
$('#sendCode').text(`重新发送(${time}s)`)
timeT = setInterval(() => {
time--
if (time == 0) {
hasSendCode = false
clearInterval(timeT)
timeT = ''
}
$('#sendCode').text(`重新发送${time ? '(' + time + 's' + ')' : ''}`)
}, 1000);
} else {
$('#updatepwBox .error_info span').text(res.info)
$('#updatepwBox .error_info').show()
}
}
});
},
confirmUpdate: async function () {
let verifycode = $('#verifycode').val()

if (!verifycode) {
$('#updatepwBox .error_info span').text('请输入验证码')
$('#updatepwBox .error_info').show()
return
}

$('#updatepwBox .error_info').hide()
lrPage.updating(true);
$.ajax({
url: top.$.rootUrl + '/Home/CancelWeiXinBind',
data: { verifycode, codeType },
dataType: 'json',
type: "post",
success: (res) => {
if (res.code == 200) {
$('#updatepwBox .error_info span').text('解绑成功')
$('#updatepwBox .error_info').show()
setTimeout(() => {
learun.layerClose('CancelWeiXinBindForm', '');
}, 1500)
} else {
lrPage.updating(false);
$('#updatepwBox .error_info span').text(res.info)
$('#updatepwBox .error_info').show()
}
}
});
}
};
$(function () {
lrPage.init();
});
}

+ 7
- 12
Learun.Framework.Ultimate V7/Learun.Application.Web/Views/LR_Content/script/lr-admin.js View File

@@ -122,18 +122,13 @@ var loaddfimg;
});
},
cancelWeiXinBind: function () {
learun.layerConfirm("注:您确定要解绑微信吗?", function (r) {
if (r) {
learun.loading(true, '解除绑定中...');
learun.httpAsyncPost($.rootUrl + '/Home/CancelWeiXinBind', {}, function (data) {
if (data.code == 200) {
learun.alert.success(data.info);
} else {
learun.alert.error("异常,请刷新!");
}
learun.loading(false);
});
}
learun.layerForm({
id: "CancelWeiXinBindForm",
title: '解绑微信',
url: top.$.rootUrl + '/Home/CancelWeiXinBindForm',
width: 500,
height: 400,
btn: null
});
},
openUserCenter: function () {


Loading…
Cancel
Save