zhangli 3 лет назад
Родитель
Сommit
4a612ba3c7
7 измененных файлов: 514 добавлений и 0 удалений
  1. +48
    -0
      Learun.Framework.Ultimate V7/Learun.Application.Organization/User/UserBLL.cs
  2. +5
    -0
      Learun.Framework.Ultimate V7/Learun.Application.Organization/User/UserIBLL.cs
  3. +39
    -0
      Learun.Framework.Ultimate V7/Learun.Application.Organization/User/UserService.cs
  4. +10
    -0
      Learun.Framework.Ultimate V7/Learun.Application.Web/Areas/LR_OrganizationModule/Controllers/UserController.cs
  5. +75
    -0
      Learun.Framework.Ultimate V7/Learun.Application.Web/Areas/LR_OrganizationModule/Views/User/FamilyIndex.cshtml
  6. +335
    -0
      Learun.Framework.Ultimate V7/Learun.Application.Web/Areas/LR_OrganizationModule/Views/User/FamilyIndex.js
  7. +2
    -0
      Learun.Framework.Ultimate V7/Learun.Application.Web/Learun.Application.Web.csproj

+ 48
- 0
Learun.Framework.Ultimate V7/Learun.Application.Organization/User/UserBLL.cs Просмотреть файл

@@ -382,6 +382,54 @@ namespace Learun.Application.Organization
}
}
}
/// <summary>
/// 用户列表(导出Excel)【家长】
/// </summary>
/// <returns></returns>
public void GetExportListOfFamily()
{
try
{
//取出数据源
DataTable exportTable = userService.GetExportListOfFamily();
//设置导出格式
ExcelConfig excelconfig = new ExcelConfig();
excelconfig.Title = "家长用户导出";
excelconfig.TitleFont = "微软雅黑";
excelconfig.TitlePoint = 25;
excelconfig.FileName = "家长用户导出.xls";
excelconfig.IsAllSizeColumn = true;
//每一列的设置,没有设置的列信息,系统将按datatable中的列名导出
excelconfig.ColumnEntity = new List<ColumnModel>();
excelconfig.ColumnEntity.Add(new ColumnModel() { Column = "f_account", ExcelColumn = "账户" });
excelconfig.ColumnEntity.Add(new ColumnModel() { Column = "f_realname", ExcelColumn = "姓名" });
excelconfig.ColumnEntity.Add(new ColumnModel() { Column = "f_gender", ExcelColumn = "性别" });
excelconfig.ColumnEntity.Add(new ColumnModel() { Column = "f_birthday", ExcelColumn = "生日" });
excelconfig.ColumnEntity.Add(new ColumnModel() { Column = "f_mobile", ExcelColumn = "手机" });
excelconfig.ColumnEntity.Add(new ColumnModel() { Column = "f_telephone", ExcelColumn = "电话" });
excelconfig.ColumnEntity.Add(new ColumnModel() { Column = "f_wechat", ExcelColumn = "微信" });
excelconfig.ColumnEntity.Add(new ColumnModel() { Column = "f_company", ExcelColumn = "学校" });
excelconfig.ColumnEntity.Add(new ColumnModel() { Column = "f_department", ExcelColumn = "系部" });
excelconfig.ColumnEntity.Add(new ColumnModel() { Column = "f_description", ExcelColumn = "说明" });
excelconfig.ColumnEntity.Add(new ColumnModel() { Column = "f_createdate", ExcelColumn = "创建日期" });
excelconfig.ColumnEntity.Add(new ColumnModel() { Column = "f_createusername", ExcelColumn = "创建人" });
//调用导出方法
ExcelHelper.ExcelDownload(exportTable, excelconfig);
}
catch (Exception ex)
{
if (ex is ExceptionEx)
{
throw;
}
else
{
throw ExceptionEx.ThrowBusinessException(ex);
}
}
}

/// <summary>
/// 获取实体,通过用户账号
/// </summary>


+ 5
- 0
Learun.Framework.Ultimate V7/Learun.Application.Organization/User/UserIBLL.cs Просмотреть файл

@@ -70,6 +70,11 @@ namespace Learun.Application.Organization
/// <returns></returns>
void GetExportListOfStudent();
/// <summary>
/// 用户列表(导出Excel)【家长】
/// </summary>
/// <returns></returns>
void GetExportListOfFamily();
/// <summary>
/// 获取实体,通过用户账号
/// </summary>
/// <param name="account">用户账号</param>


+ 39
- 0
Learun.Framework.Ultimate V7/Learun.Application.Organization/User/UserService.cs Просмотреть файл

@@ -304,6 +304,45 @@ namespace Learun.Application.Organization
}
}
}
/// <summary>
/// 用户列表(导出Excel)【家长】
/// </summary>
/// <returns></returns>
public DataTable GetExportListOfFamily()
{
try
{
var strSql = new StringBuilder();
strSql.Append(@"SELECT u.F_Account
,u.F_RealName
,CASE WHEN u.F_Gender=1 THEN '男' ELSE '女' END AS F_Gender
,u.F_Birthday
,u.F_Mobile
,u.F_Telephone
,u.F_WeChat
,o.F_FullName AS F_Company
,u.F_DepartmentId AS F_Department
,u.F_Description
,u.F_CreateDate
,u.F_CreateUserName
FROM LR_Base_User u
INNER JOIN LR_Base_Company o ON u.F_CompanyId=o.F_CompanyId
WHERE u.F_DeleteMark = 0 and u.F_Description = '家长'");
return this.BaseRepository().FindTable(strSql.ToString());
}
catch (Exception ex)
{
if (ex is ExceptionEx)
{
throw;
}
else
{
throw ExceptionEx.ThrowServiceException(ex);
}
}
}
/// <summary>
/// 用户实体
/// </summary>


+ 10
- 0
Learun.Framework.Ultimate V7/Learun.Application.Web/Areas/LR_OrganizationModule/Controllers/UserController.cs Просмотреть файл

@@ -415,6 +415,16 @@ namespace Learun.Application.Web.Areas.LR_OrganizationModule.Controllers
userIBLL.GetExportListOfStudent();
return Success("导出成功。");
}
/// <summary>
/// 导出用户列表【家长】
/// </summary>
/// <returns></returns>
[HttpGet]
public ActionResult ExportUserListOfFamily()
{
userIBLL.GetExportListOfFamily();
return Success("导出成功。");
}
#endregion

#region 验证数据


+ 75
- 0
Learun.Framework.Ultimate V7/Learun.Application.Web/Areas/LR_OrganizationModule/Views/User/FamilyIndex.cshtml Просмотреть файл

@@ -0,0 +1,75 @@
@{
ViewBag.Title = "家长用户管理";
Layout = "~/Views/Shared/_Index.cshtml";
}
<div class="lr-layout lr-layout-left-center " id="lr_layout">
<div class="lr-layout-left">
<div class="lr-layout-wrap">
<div class="lr-layout-title lrlt ">校区信息</div>
<div id="companyTree" class="lr-layout-body"></div>
</div>
</div>
<div class="lr-layout-center">
<div class="lr-layout-wrap">
<div class="lr-layout-title">
<span id="titleinfo" class="lrlt">未选择校区</span> - <span class="lrlt">用户信息</span>
</div>

<div class="lr-layout-tool">
<div class="lr-layout-tool-left">
<div class="lr-layout-tool-item" style="width: 160px;">
<div id="department_select" style="border-radius: 4px;"></div>
</div>
<div class="lr-layout-tool-item">
<input id="txt_Keyword" type="text" class="form-control" placeholder="请输入要查询关键字" />
</div>
<div class="lr-layout-tool-item">
<a id="btn_Search" class="btn btn-primary btn-sm"><i class="fa fa-search"></i>&nbsp;<span class="lrlt">查询</span></a>
</div>
</div>
<div class="lr-layout-tool-right">
<div class=" btn-group btn-group-sm">
<a id="lr_refresh" class="btn btn-default"><i class="fa fa-refresh"></i></a>
</div>
<div class=" btn-group btn-group-sm" learun-authorize="yes">
@*<a id="lr_add" class="btn btn-default"><i class="fa fa-plus"></i>&nbsp;<span class="lrlt">录入</span></a>
<a id="lr_edit" class="btn btn-default"><i class="fa fa-pencil-square-o"></i>&nbsp;<span class="lrlt">修改</span></a>*@
<a id="lr_delete" class="btn btn-default"><i class="fa fa-trash-o"></i>&nbsp;<span class="lrlt">删除</span></a>
<a id="lr_more" class="btn btn-default dropdown-toggle" data-toggle="dropdown" aria-expanded="false">
<i class="fa fa-reorder"></i>&nbsp;<span class="lrlt">更多</span><span class="caret"></span>
</a>
<ul class="dropdown-menu pull-right">
<li id="lr_export"><a><i></i>&nbsp;<span class="lrlt">导出Excel</span></a></li>
<li id="lr_disabled"><a><i></i>&nbsp;<span class="lrlt">禁用账户</span></a></li>
<li id="lr_enabled"><a><i></i>&nbsp;<span class="lrlt">启用账户</span></a></li>
<li id="lr_resetpassword"><a><i></i>&nbsp;<span class="lrlt">重置密码</span></a></li>
<li id="lr_resetpasswordeight"><a><i></i>&nbsp;<span class="lrlt">重置密码(八位)</span></a></li>
<li id="lr_authorize"><a><i></i>&nbsp;<span class="lrlt">功能授权</span></a></li>
<li id="lr_dataauthorize"><a><i></i>&nbsp;<span class="lrlt">数据授权</span></a></li>
<li id="lr_appauthorize"><a><i></i>&nbsp;<span class="lrlt">移动功能授权</span></a></li>
@*<li id="lr_addRelation"><a><i></i>&nbsp;<span class="lrlt">学生角色批量添加</span></a></li>*@
<li id="lr_cancelweixinbind"><a><i></i>&nbsp;<span class="lrlt">解绑微信</span></a></li>
<li id="lr_closeuser1"><a><i></i>&nbsp;<span class="lrlt">一键禁用从未登录用户</span></a></li>
<li id="lr_closeuser2"><a><i></i>&nbsp;<span class="lrlt">一键禁用未修改过密码用户</span></a></li>
<li id="lr_closeuser3"><a><i></i>&nbsp;<span class="lrlt">一键禁用半年内未登录用户</span></a></li>
</ul>
</div>
<div class="btn-group btn-group-sm" learun-authorize="yes">
<a id="lr_appfilter" class="btn btn-default dropdown-toggle" data-toggle="dropdown" aria-expanded="false">
<i class="fa fa-filter"></i>&nbsp;<span class="lrlt">访问过滤</span><span class="caret"></span>
</a>
<ul class="dropdown-menu pull-right">
<li id="lr_ipfilter"><a><i></i>&nbsp;<span class="lrlt">IP过滤</span></a></li>
<li id="lr_timefilter"><a><i></i>&nbsp;<span class="lrlt">时段过滤</span></a></li>
</ul>
</div>

</div>
</div>

<div class="lr-layout-body" id="gridtable">
</div>
</div>
</div>
</div>
@Html.AppendJsFile("/Areas/LR_OrganizationModule/Views/User/FamilyIndex.js")

+ 335
- 0
Learun.Framework.Ultimate V7/Learun.Application.Web/Areas/LR_OrganizationModule/Views/User/FamilyIndex.js Просмотреть файл

@@ -0,0 +1,335 @@
var selectedRow;
var refreshGirdData;
var bootstrap = function ($, learun) {
"use strict";
var companyId = '';
var departmentId = '';

var page = {
init: function () {
page.inittree();
page.initGrid();
page.bind();
},
bind: function () {
// 查询
$('#btn_Search').on('click', function () {
var keyword = $('#txt_Keyword').val();
page.search({ keyword: keyword });
});
// 系选择
$('#department_select').lrselect({
value: "deptno",
text: "deptname",
url: top.$.rootUrl + '/LR_SystemModule/DataSource/GetDataTable?code=CdDeptInfo',
placeholder: '请选择系',
// 是否允许搜索
allowSearch: true,
select: function (item) {
if (!item || item.value == '-1') {
departmentId = '';
}
else {
departmentId = item.deptno;
}
page.search();
}
});

// 刷新
$('#lr_refresh').on('click', function () {
location.reload();
});
//// 新增
//$('#lr_add').on('click', function () {
// if (!companyId) {
// learun.alert.warning('请选择公司!');
// return false;
// }
// selectedRow = null;
// learun.layerForm({
// id: 'form',
// title: '添加账号',
// url: top.$.rootUrl + '/LR_OrganizationModule/User/Form?companyId=' + companyId,
// width: 750,
// height: 450,
// callBack: function (id) {
// return top[id].acceptClick(refreshGirdData);
// }
// });
//});
//// 编辑
//$('#lr_edit').on('click', function () {
// var keyValue = $('#gridtable').jfGridValue('F_UserId');
// selectedRow = $('#gridtable').jfGridGet('rowdata')[0];
// if (learun.checkrow(keyValue)) {
// if (keyValue.indexOf(',') != -1) {
// learun.alert.warning('只能选择一条数据!');
// return;
// }
// learun.layerForm({
// id: 'form',
// title: '编辑账号',
// url: top.$.rootUrl + '/LR_OrganizationModule/User/Form?companyId=' + companyId,
// width: 750,
// height: 450,
// callBack: function (id) {
// return top[id].acceptClick(refreshGirdData);
// }
// });
// }
//});
// 删除
$('#lr_delete').on('click', function () {
var keyValue = $('#gridtable').jfGridValue('F_UserId');
if (learun.checkrow(keyValue)) {
learun.layerConfirm('是否确认删除该项!', function (res) {
if (res) {
learun.deleteForm(top.$.rootUrl + '/LR_OrganizationModule/User/DeleteForm', { keyValue: keyValue }, function () {
refreshGirdData();
});
}
});
}
});
// 用户数据导出
$('#lr_export').on('click', function () {
location.href = top.$.rootUrl + "/LR_OrganizationModule/User/ExportUserListOfFamily";
});
// 启用
$('#lr_enabled').on('click', function () {
var keyValue = $('#gridtable').jfGridValue('F_UserId');
if (learun.checkrow(keyValue)) {
if (keyValue.indexOf(',') != -1) {
learun.alert.warning('只能选择一条数据!');
return;
}
learun.layerConfirm('是否确认要【启用】账号!', function (res) {
if (res) {
learun.postForm(top.$.rootUrl + '/LR_OrganizationModule/User/UpdateState', { keyValue: keyValue, state: 1 }, function () {
refreshGirdData();
});
}
});
}
});
// 禁用
$('#lr_disabled').on('click', function () {
var keyValue = $('#gridtable').jfGridValue('F_UserId');
if (learun.checkrow(keyValue)) {
if (keyValue.indexOf(',') != -1) {
learun.alert.warning('只能选择一条数据!');
return;
}
learun.layerConfirm('是否确认要【禁用】账号!', function (res) {
if (res) {
learun.postForm(top.$.rootUrl + '/LR_OrganizationModule/User/UpdateState', { keyValue: keyValue, state: 0 }, function () {
refreshGirdData();
});
}
});
}
});
// 重置账号
$('#lr_resetpassword').on('click', function () {
var keyValue = $('#gridtable').jfGridValue('F_UserId');
if (learun.checkrow(keyValue)) {
learun.layerConfirm('是否确认要【重置密码】!', function (res) {
if (res) {
learun.postForm(top.$.rootUrl + '/LR_OrganizationModule/User/ResetPassword', { keyValue: keyValue }, function () {
refreshGirdData();
});
}
});
}
});
// 重置密码(八位)
$('#lr_resetpasswordeight').on('click', function () {
var keyValue = $('#gridtable').jfGridValue('F_UserId');
if (learun.checkrow(keyValue)) {
learun.layerConfirm('是否确认要【重置密码(八位)】!', function (res) {
if (res) {
learun.postForm(top.$.rootUrl + '/LR_OrganizationModule/User/ResetPasswordEight', { keyValue: keyValue }, function () {
refreshGirdData();
});
}
});
}
});
// 功能授权
$('#lr_authorize').on('click', function () {
var keyValue = $('#gridtable').jfGridValue('F_UserId');
selectedRow = $('#gridtable').jfGridGet('rowdata')[0];
if (learun.checkrow(keyValue)) {
if (keyValue.indexOf(',') != -1) {
learun.alert.warning('只能选择一条数据!');
return;
}
learun.layerForm({
id: 'authorizeForm',
title: '功能授权 - ' + selectedRow.F_RealName,
url: top.$.rootUrl + '/LR_AuthorizeModule/Authorize/Form?objectId=' + keyValue + '&objectType=2',
width: 550,
height: 690,
btn: null
});
}
});
// 移动功能授权
$('#lr_appauthorize').on('click', function () {
var keyValue = $('#gridtable').jfGridValue('F_UserId');
selectedRow = $('#gridtable').jfGridGet('rowdata')[0];
if (learun.checkrow(keyValue)) {
if (keyValue.indexOf(',') != -1) {
learun.alert.warning('只能选择一条数据!');
return;
}
learun.layerForm({
id: 'appAuthorizeForm',
title: '移动功能授权 - ' + selectedRow.F_RealName,
url: top.$.rootUrl + '/LR_AuthorizeModule/Authorize/AppForm?objectId=' + keyValue + '&objectType=2',
width: 550,
height: 690,
callBack: function (id) {
return top[id].acceptClick();
}
});
}
});
// 数据授权
$('#lr_dataauthorize').on('click', function () {
var keyValue = $('#gridtable').jfGridValue('F_UserId');
selectedRow = $('#gridtable').jfGridGet('rowdata')[0];
if (learun.checkrow(keyValue)) {
if (keyValue.indexOf(',') != -1) {
learun.alert.warning('只能选择一条数据!');
return;
}
learun.layerForm({
id: 'dataAuthorizeForm',
title: '数据授权 - ' + selectedRow.F_RealName,
url: top.$.rootUrl + '/LR_AuthorizeModule/DataAuthorize/Index?objectId=' + keyValue + '&objectType=2',
width: 1100,
height: 700,
maxmin: true,
btn: null
});
}
});
//学生角色批量添加
//$("#lr_addRelation").on('click', function () {
// learun.getForm(top.$.rootUrl + '/LR_OrganizationModule/User/ResetStudentRelation', function () {
// refreshGirdData();
// });

//});

// 解绑微信
$('#lr_cancelweixinbind').on('click', function () {
var keyValue = $('#gridtable').jfGridValue('F_UserId');
if (learun.checkrow(keyValue)) {
learun.layerConfirm('是否确认要【解绑微信】!', function (res) {
if (res) {
learun.postForm(top.$.rootUrl + '/Home/CancelWeiXinBind', { keyValue: keyValue }, function (data) {
refreshGirdData();
});
}
});
}
});

$("#lr_closeuser1").on('click', function () {
learun.alert.success('禁用成功');
})
$("#lr_closeuser2").on('click', function () {
learun.alert.success('禁用成功');
})
$("#lr_closeuser3").on('click', function () {
learun.alert.success('禁用成功');
})
},
inittree: function () {
$('#companyTree').lrtree({
url: top.$.rootUrl + '/LR_OrganizationModule/Company/GetTree',
param: { parentId: '0' },
nodeClick: page.treeNodeClick
});
$('#companyTree').lrtreeSet('setValue', '53298b7a-404c-4337-aa7f-80b2a4ca6681');
},
treeNodeClick: function (item) {
companyId = item.id;
$('#titleinfo').text(item.text);

$('#department_select').lrselectRefresh({
// 访问数据接口地址
url: top.$.rootUrl + '/LR_SystemModule/DataSource/GetDataTable?code=CdDeptInfo'
});
departmentId = '';
page.search();
},
initGrid: function () {
$('#gridtable').lrAuthorizeJfGrid({
url: top.$.rootUrl + '/LR_OrganizationModule/User/GetPageList',
headData: [
{ label: '账户', name: 'F_Account', width: 100, align: 'left' },
{ label: '姓名', name: 'F_RealName', width: 160, align: 'left' },
{ label: '手机', name: 'F_Mobile', width: 100, align: 'center' },
{
label: '系部', name: 'F_DepartmentId', width: 100, align: 'left',
formatterAsync: function (callback, value, row, op, $cell) {
learun.clientdata.getAsync('custmerData', {
url: '/LR_SystemModule/DataSource/GetDataTable?code=' + 'CdDeptInfo',
key: value,
keyId: 'deptno',
callback: function (_data) {
callback(_data['deptname']);
}
});
}
},
{
label: "状态", name: "F_EnabledMark", index: "F_EnabledMark", width: 50, align: "center",
formatter: function (cellvalue) {
if (cellvalue == 1) {
return '<span class=\"label label-success\" style=\"cursor: pointer;\">正常</span>';
} else if (cellvalue == 0) {
return '<span class=\"label label-default\" style=\"cursor: pointer;\">禁用</span>';
}
}
},
{
label: "最后登录时间", name: "F_UserId_Log", width: 200, align: "left", formatterAsync: function (callback, value, row) {
learun.httpAsyncGet(top.$.rootUrl + '/LR_OrganizationModule/User/GetLastLoginTime?userId=' + value, function (res) {
if (res.code == learun.httpCode.success) {
callback(res.data);
}
});
}
},
{ label: "备注", name: "F_Description", index: "F_Description", width: 200, align: "left" }

],
isPage: true,
reloadSelected: true,
mainId: 'F_UserId',
isMultiselect: true
});
},
search: function (param) {
param = param || {};
param.companyId = companyId;
param.departmentId = departmentId;
param.tp = "1";
$('#gridtable').jfGridSet('reload', param);
}
};

refreshGirdData = function () {
var keyword = $('#txt_Keyword').val();
page.search({ keyword: keyword });
};

page.init();
}



+ 2
- 0
Learun.Framework.Ultimate V7/Learun.Application.Web/Learun.Application.Web.csproj Просмотреть файл

@@ -1174,6 +1174,7 @@
<Content Include="Areas\LR_OAModule\Views\Notice\IndexFlow.js" />
<Content Include="Areas\LR_OAModule\Views\ResourceFile\BcIndex.js" />
<Content Include="Areas\LR_OAModule\Views\Signet\Index.js" />
<Content Include="Areas\LR_OrganizationModule\Views\User\FamilyIndex.js" />
<Content Include="Areas\LR_PortalSite\Views\Article\Form.css" />
<Content Include="Areas\LR_PortalSite\Views\Article\Form.js" />
<Content Include="Areas\LR_PortalSite\Views\Article\Index.js" />
@@ -6994,6 +6995,7 @@
<Content Include="Areas\LR_Desktop\Views\MessageRind\Form.cshtml" />
<Content Include="Areas\LR_Desktop\Views\MessageRind\Index.cshtml" />
<Content Include="Areas\LR_Desktop\Views\MessageRind\UnreadIndex.cshtml" />
<Content Include="Areas\LR_OrganizationModule\Views\User\FamilyIndex.cshtml" />
<None Include="Properties\PublishProfiles\FolderProfile.pubxml" />
<Content Include="Views\Login\Default-beifen.cshtml" />
<None Include="Properties\PublishProfiles\FolderProfile1.pubxml" />


Загрузка…
Отмена
Сохранить