437 lines
15 KiB
C#
437 lines
15 KiB
C#
using System;
|
||
using System.Collections.Generic;
|
||
using System.Configuration;
|
||
using System.IO;
|
||
using System.Linq;
|
||
using System.Text;
|
||
using System.Web;
|
||
using System.Web.UI;
|
||
using System.Web.UI.WebControls;
|
||
using Telerik.Web.UI;
|
||
|
||
namespace VRS.Management.Exam
|
||
{
|
||
public partial class LianXiBatch : BaseListPage
|
||
{
|
||
DataService.BLL.pro_exam_batch bll = new DataService.BLL.pro_exam_batch();
|
||
|
||
DataService.BLL.pro_result bll_result = new DataService.BLL.pro_result();
|
||
DataService.BLL.admin_log log = new DataService.BLL.admin_log();
|
||
DataService.BLL.pro_subject_batch_user bll_subject_batch_user = new DataService.BLL.pro_subject_batch_user();
|
||
DataService.BLL.admin_user bll_user = new DataService.BLL.admin_user();
|
||
|
||
DataService.BLL.pro_exam_batch_result bll_batch_result = new DataService.BLL.pro_exam_batch_result();
|
||
DataService.BLL.pro_lianxi_batch bll_lianxi_batch = new DataService.BLL.pro_lianxi_batch();
|
||
|
||
protected override void Page_Load(object sender, EventArgs e)
|
||
{
|
||
if (!IsPostBack)
|
||
{
|
||
#region 加载学校
|
||
/*
|
||
var user = DataService.BLL.admin_user.load_login();
|
||
var user_login = bll_user.GetModel(user.user_id);
|
||
|
||
if (bll_user.IsAdministrator(user_login))
|
||
{
|
||
tr_school.Visible = true;
|
||
BindSchool(dp_school, "");
|
||
}
|
||
else//老师或学校管理员
|
||
{
|
||
tr_school.Visible = false;
|
||
BindSchoolGrade(user_login.school_id, dp_schoolgrade, "");
|
||
}
|
||
*/
|
||
#endregion
|
||
tr_school.Visible = false; //隐藏学校$$$
|
||
|
||
//start.SelectedDate = DateTime.Today;
|
||
//end.SelectedDate = DateTime.Today.AddMonths(12);
|
||
BindSubjectType(dp_type_name, "");
|
||
DataLoad();
|
||
}
|
||
}
|
||
|
||
protected override void DataLoad()
|
||
{
|
||
StringBuilder query = new StringBuilder(" 1 = 1 ");
|
||
#region 查询学校
|
||
/*
|
||
var userlogin = DataService.BLL.admin_user.load_login();
|
||
var user_login = bll_user.GetModel(userlogin.user_id);
|
||
if (bll_user.IsAdministrator(user_login))
|
||
{
|
||
if (!string.IsNullOrEmpty(dp_school.SelectedValue))
|
||
{
|
||
query.AppendFormat(" AND school_id = '{0}' ", dp_school.SelectedValue);
|
||
}
|
||
}
|
||
else //老师或学校管理员
|
||
{
|
||
query.AppendFormat(" AND school_id = '{0}' ", user_login.school_id);
|
||
}
|
||
*/
|
||
#endregion
|
||
|
||
if (!string.IsNullOrWhiteSpace(txt_subject_name.Text.Trim()))
|
||
{
|
||
query.AppendFormat(" AND subject LIKE '%{0}%' ", txt_subject_name.Text.Trim());
|
||
}
|
||
|
||
if (!string.IsNullOrEmpty(dp_type_name.SelectedValue))
|
||
{
|
||
query.AppendFormat(" AND subject_type = '{0}' ", dp_type_name.SelectedValue);
|
||
}
|
||
|
||
if (!string.IsNullOrEmpty(ddp_state.SelectedValue))
|
||
{
|
||
query.AppendFormat(" AND state ={0} ", ddp_state.SelectedValue);
|
||
}
|
||
|
||
/*
|
||
var start_date = start.SelectedDate.HasValue ? start.SelectedDate.Value.ToString("yyyy-MM-dd") : "";
|
||
var end_date = end.SelectedDate.HasValue ? end.SelectedDate.Value.ToString("yyyy-MM-dd") : "";
|
||
if (!string.IsNullOrEmpty(end_date))
|
||
{
|
||
end_date = DateTime.Parse(end_date).AddDays(1).ToString("yyyy-MM-dd");
|
||
}
|
||
//开始时间、结束时间
|
||
if (!string.IsNullOrWhiteSpace(start_date))
|
||
{
|
||
query.AppendFormat(" AND T1.start_time >= '{0}' ", start_date);
|
||
}
|
||
if (!string.IsNullOrWhiteSpace(end_date))
|
||
{
|
||
query.AppendFormat(" AND T1.end_time < '{0}' ", end_date);
|
||
}
|
||
*/
|
||
|
||
string orderby = " order by T1.batch_id desc ";
|
||
var data = bll_lianxi_batch.QueryResult(query.ToString(), orderby);
|
||
dataList.DataSource = data;
|
||
dataList.Rebind();
|
||
//var qry = query.ToString();
|
||
//var data = bll_lianxi_batch.GetModelList(qry).OrderByDescending(s => s.batch_id).ToList();
|
||
//dataList.DataSource = data;
|
||
//dataList.Rebind();
|
||
}
|
||
|
||
protected void dp_school_SelectedIndexChanged(object sender, Telerik.Web.UI.DropDownListEventArgs e)
|
||
{
|
||
var value = dp_school.SelectedValue;
|
||
BindSchoolGrade(value, dp_schoolgrade, "");
|
||
DataLoad();
|
||
}
|
||
|
||
protected void cbx_schoolgrade_SelectedIndexChanged(object sender, RadComboBoxSelectedIndexChangedEventArgs e)
|
||
{
|
||
DataLoad();
|
||
}
|
||
|
||
protected void ddp_role_SelectedIndexChanged(object sender, DropDownListEventArgs e)
|
||
{
|
||
DataLoad();
|
||
}
|
||
|
||
protected override void GridList_PageIndexChanged(object sender, GridPageChangedEventArgs e)
|
||
{
|
||
DataLoad();
|
||
}
|
||
|
||
protected override void GridList_PageSizeChanged(object sender, GridPageSizeChangedEventArgs e)
|
||
{
|
||
DataLoad();
|
||
}
|
||
|
||
protected override void GridList_SortCommand(object sender, GridSortCommandEventArgs e)
|
||
{
|
||
DataLoad();
|
||
}
|
||
|
||
protected override void GrdList_DeleteCommand(object sender, GridCommandEventArgs e)
|
||
{
|
||
|
||
}
|
||
|
||
protected override void AjaxManager_AjaxRequest(object sender, AjaxRequestEventArgs e)
|
||
{
|
||
|
||
}
|
||
|
||
protected void btnSelect_Click(object sender, EventArgs e)
|
||
{
|
||
DataLoad();
|
||
}
|
||
|
||
protected void btnDelete_Click(object sender, EventArgs e)
|
||
{
|
||
var model = bll.GetModel(IdInput.Value);
|
||
|
||
var now = DateTime.Now;
|
||
|
||
if (bll_lianxi_batch.Delete(IdInput.Value))
|
||
{
|
||
DataLoad();
|
||
}
|
||
|
||
/*
|
||
if (now >= model.start_time && now < model.end_time)
|
||
{
|
||
RadAjaxManager1.ResponseScripts.Add("alert('该考试批次正在进行中,禁止删除!') ");
|
||
return;
|
||
}
|
||
*/
|
||
/*
|
||
var list = bll_batch_result.GetModelList(" batch_id='" + model.batch_id + "'");
|
||
if (list.Count > 0)
|
||
{
|
||
RadAjaxManager1.ResponseScripts.Add("if (confirm('该考试批次已经有学员参加科目考试,确定要删除吗?')) { $('#btnDelete_Confirm').click(); } ");
|
||
return;
|
||
}
|
||
*/
|
||
//DeleteBatch();
|
||
}
|
||
|
||
protected void btnDelete_Confirm_Click(object sender, EventArgs e)
|
||
{
|
||
DeleteBatch();
|
||
}
|
||
|
||
public void DeleteBatch()
|
||
{
|
||
var model = bll.GetModel(IdInput.Value);
|
||
/*
|
||
if (bll.Delete(IdInput.Value))
|
||
{
|
||
|
||
var pro_subject_batch_user_list = bll_subject_batch_user.GetModelList(string.Format("batch_id='{0}' ", IdInput.Value));
|
||
foreach (var item in pro_subject_batch_user_list)
|
||
{
|
||
bll_subject_batch_user.Delete(item.id);
|
||
}
|
||
log.write_log("删除考试批次成功。" + "批次名称:" + model.batch_name + ",id:" + IdInput.Value);
|
||
}
|
||
*/
|
||
var count = bll.DeleteBatchAndUser(IdInput.Value);
|
||
if (count > 0)
|
||
{
|
||
log.write_log("删除考试批次成功。" + "批次名称:" + model.batch_name + ",id:" + IdInput.Value);
|
||
DataLoad();
|
||
}
|
||
}
|
||
|
||
protected void btn_Off_Click(object sender, EventArgs e)
|
||
{
|
||
|
||
}
|
||
|
||
protected void btn_On_Click(object sender, EventArgs e)
|
||
{
|
||
|
||
}
|
||
|
||
protected void dataList_ItemCommand(object sender, GridCommandEventArgs e)
|
||
{
|
||
if (e.CommandName == "start")
|
||
{
|
||
|
||
var batch_id = (e.Item as GridDataItem).GetDataKeyValue("batch_id").ToString();
|
||
var model = bll_lianxi_batch.GetModel(batch_id);
|
||
model.state = 1;
|
||
if (bll_lianxi_batch.Update(model))
|
||
{
|
||
/*
|
||
if (model.state == 1)
|
||
{
|
||
bll.UpdateState(model.batch_id);
|
||
}
|
||
*/
|
||
|
||
log.write_log("启用考试批次成功。" + "批次名称:" + model.batch_name + ",批次id:" + model.batch_id);
|
||
//RadAjaxManager1.ResponseScripts.Add("alert('启用考试批次成功!');");
|
||
DataLoad();
|
||
}
|
||
else
|
||
RadAjaxManager1.Alert("启用考试批次失败!");
|
||
|
||
|
||
}
|
||
else if (e.CommandName == "stop")
|
||
{
|
||
var batch_id = (e.Item as GridDataItem).GetDataKeyValue("batch_id").ToString();
|
||
var model = bll_lianxi_batch.GetModel(batch_id);
|
||
|
||
/*
|
||
var now = DateTime.Now;
|
||
if (now >= model.start_time && now < model.end_time)
|
||
{
|
||
RadAjaxManager1.ResponseScripts.Add("alert('该考试批次正在进行中,禁止停用!') ");
|
||
return;
|
||
}
|
||
*/
|
||
|
||
model.state = 0; //停用
|
||
if (bll_lianxi_batch.Update(model))
|
||
{
|
||
log.write_log("停用练习批次成功。" + "批次名称:" + model.batch_name + ",批次id:" + model.batch_id);
|
||
//RadAjaxManager1.ResponseScripts.Add("alert('停用考试批次成功!');");
|
||
hd_mainId.Value = "";
|
||
DataLoad();
|
||
}
|
||
else
|
||
RadAjaxManager1.Alert("停用练习批次失败!");
|
||
|
||
}
|
||
}
|
||
|
||
protected void dataList_ItemDataBound(object sender, GridItemEventArgs e)
|
||
{
|
||
|
||
if (e.Item is GridDataItem)
|
||
{
|
||
GridDataItem item = e.Item as GridDataItem;
|
||
Button btn_start = e.Item.FindControl("btn_start") as Button;
|
||
Button btn_stop = e.Item.FindControl("btn_stop") as Button;
|
||
int state = int.Parse(item.GetDataKeyValue("state").ToString());
|
||
if (state == 0) //禁用
|
||
{
|
||
btn_start.Visible = true;
|
||
btn_stop.Visible = false;
|
||
}
|
||
else if (state == 1) //启用
|
||
{
|
||
btn_start.Visible = false;
|
||
btn_stop.Visible = true;
|
||
|
||
//e.Item.CssClass = "row_highlight";
|
||
}
|
||
}
|
||
|
||
}
|
||
|
||
|
||
#region 关联列表方法
|
||
|
||
/// <summary>
|
||
/// 绑定列表
|
||
/// </summary>
|
||
public void DataLoad_Sub()
|
||
{
|
||
|
||
var main_id = hd_mainId.Value;
|
||
var query = new StringBuilder(" 1=1");
|
||
|
||
// old methods
|
||
//query.AppendFormat(" and(user_id in (select user_id from pro_fault_exam_paper where batch_id = '{0}') ", main_id);
|
||
//query.AppendFormat(" or user_id in (select user_id from pro_subject_batch_user where batch_id = '{0}') ", main_id);
|
||
//query.AppendFormat(" or user_id in (select user_id from pro_fault_batch_user where batch_id = '{0}')) ", main_id);
|
||
|
||
query.AppendFormat(" and(user_id in (select user_id from pro_fault_exam_paper where batch_id = '{0}') ", main_id);
|
||
query.AppendFormat(" or user_id in (select user_id from pro_subject_batch_user where batch_id = '{0}')) ", main_id);
|
||
|
||
|
||
|
||
var list = bll_user.GetModelList(query.ToString()).ToList();
|
||
//dataList_Sub.DataSource = list;
|
||
//dataList_Sub.Rebind();
|
||
|
||
}
|
||
|
||
protected void btnSelectSub_Click(object sender, EventArgs e)
|
||
{
|
||
DataLoad_Sub();
|
||
}
|
||
|
||
protected void dataList_Sub_PageIndexChanged(object sender, GridPageChangedEventArgs e)
|
||
{
|
||
DataLoad_Sub();
|
||
}
|
||
|
||
protected void dataList_Sub_PageSizeChanged(object sender, GridPageSizeChangedEventArgs e)
|
||
{
|
||
DataLoad_Sub();
|
||
}
|
||
|
||
protected void dataList_Sub_SortCommand(object sender, GridSortCommandEventArgs e)
|
||
{
|
||
DataLoad_Sub();
|
||
}
|
||
|
||
//删除记录并绑定
|
||
protected void btnDelete_Sub_Click(object sender, EventArgs e)
|
||
{
|
||
var mainId = hd_mainId.Value;
|
||
var sub_id = hd_subId.Value;
|
||
|
||
/*
|
||
var model = bll_task_proc_material.GetModel(sub_id);
|
||
if (bll_task_proc_material.Delete(sub_id))
|
||
{
|
||
RadAjaxManager1.Alert("删除素材成功!");
|
||
log.write_log("删除素材成功。" + "名称:" + model.name + ",ID:" + sub_id + ",任务id:" + model.taskId + ",步骤id:" + model.proc_id);
|
||
}
|
||
*/
|
||
|
||
List<DataService.Model.admin_user> list_admin_user = new List<DataService.Model.admin_user>();
|
||
var user_model = bll_user.GetModel(sub_id);
|
||
list_admin_user.Add(user_model);
|
||
var batch_id = mainId;
|
||
var batch = bll.GetModel(batch_id);
|
||
if (null == batch)
|
||
{
|
||
return;
|
||
}
|
||
var now = DateTime.Now;
|
||
|
||
delete_subject(list_admin_user, batch, now);
|
||
|
||
RadAjaxManager1.ResponseScripts.Add("alert('删除成功!');");
|
||
DataLoad_Sub();
|
||
}
|
||
#endregion
|
||
|
||
|
||
|
||
//删除普通科目
|
||
private void delete_subject(List<DataService.Model.admin_user> list_user, DataService.Model.pro_exam_batch batch, DateTime now)
|
||
{
|
||
|
||
|
||
var batch_id = batch.batch_id;
|
||
var user_id = list_user[0].user_id;
|
||
|
||
//已经考试科目 1、禁止删除、2、禁止添加
|
||
var exist_sql = " user_id ='" + user_id + "' and batch_id='" + batch.batch_id + "' and subject_id!='10003' and subject_id!='00003' ";
|
||
var kh_list = bll_result.GetModelList(exist_sql); //1条记录
|
||
List<string> ks_subject_exists = new List<string>();
|
||
if (kh_list.Count > 0)
|
||
{
|
||
ks_subject_exists.AddRange(kh_list.Select(s => s.subject_id).ToArray());
|
||
}
|
||
|
||
var subject_list_exists = bll_subject_batch_user.GetModelList(string.Format(" batch_id='{0}' and user_id='{1}' ", batch_id, user_id));
|
||
List<string> list = new List<string>();
|
||
foreach (var item in subject_list_exists)
|
||
{
|
||
if (!ks_subject_exists.Contains(item.subject_id)) //禁止删除
|
||
{
|
||
list.Add("'" + item.id + "'");
|
||
}
|
||
}
|
||
if (list.Count > 0)
|
||
{
|
||
var id_list = string.Join(",", list.ToArray());
|
||
bll_subject_batch_user.DeleteList(id_list);
|
||
}
|
||
|
||
}
|
||
|
||
|
||
|
||
protected void dataList_SelectedIndexChanged(object sender, EventArgs e)
|
||
{
|
||
var value = dataList.SelectedValue;
|
||
}
|
||
}
|
||
} |