using DataService.Model;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using NPOI.OpenXmlFormats.Wordprocessing;
using NPOI.SS.Formula.Functions;
using System;
using System.Collections;
using System.Collections.Generic;
using System.Diagnostics;
using System.IO;
using System.Linq;
using System.Reflection;
using System.Text.RegularExpressions;
using System.Web;
using System.Web.Caching;
using VRS.Util;
using static Org.BouncyCastle.Math.EC.ECCurve;
namespace VRS.Handler
{
///
/// Config 的摘要说明
///
public class Config : BaseHandler, IHttpHandler
{
DataService.BLL.admin_user bll = new DataService.BLL.admin_user();
DataService.BLL.admin_user bll_user = new DataService.BLL.admin_user();
DataService.BLL.pro_subject bll_subject = new DataService.BLL.pro_subject();
DataService.BLL.pro_result bll_pro_result = new DataService.BLL.pro_result();
DataService.BLL.pro_result_detail bll_pro_result_detail = new DataService.BLL.pro_result_detail();
DataService.BLL.exam_result bll_exam_result = new DataService.BLL.exam_result();
DataService.BLL.exam_result_detail bll_exam_result_detail = new DataService.BLL.exam_result_detail();
DataService.BLL.exam_result_detail_shixun bll_exam_result_detail_shixun = new DataService.BLL.exam_result_detail_shixun();
DataService.BLL.exam_result_match bll_exam_result_match = new DataService.BLL.exam_result_match();
DataService.BLL.exam_config_answer bll_config_answer = new DataService.BLL.exam_config_answer();
DataService.BLL.exam_config_cache bll_config_cache = new DataService.BLL.exam_config_cache();
DataService.BLL.set_data_acquisition bll_data_acquisition = new DataService.BLL.set_data_acquisition();
DataService.BLL.exam_result_detail_config bll_exam_result_detail_config = new DataService.BLL.exam_result_detail_config();
DataService.BLL.admin_log log = new DataService.BLL.admin_log();
DataService.BLL.exam_result_match_record bll_exam_result_match_record = new DataService.BLL.exam_result_match_record();
DataService.BLL.breakpoint_continuation bll_breakpoint_continuation = new DataService.BLL.breakpoint_continuation();
DataService.BLL.admin_log bll_admin_log = new DataService.BLL.admin_log();
public void ProcessRequest(HttpContext context)
{
baseContext = context;
context.Response.ContentType = "application/json";
CrossDomain();
//context.Response.ContentType = "text/plain";
if (null == context.Request["action"])
{
var result = GetResult(false, "缺少参数:action");
context.Response.Write(result);
context.Response.End();
}
string action = context.Request["action"].ToLower();
//log.write_log("登录接口:" + action);
switch (action)
{
//保存竞赛考试
case "savemathch":
saveMatch(context);
break;
//保存实训考试
case "saveresult":
SaveExam(context);
break;
//保存用户缓存答案
case "updatecache":
UpdateCache(context);
break;
//查询用户缓存答案
case "querycache":
QueryCache(context);
break;
//查询全部答案
case "queryallanswer":
QueryAllAnswer(context);
break;
//查询正确答案
case "queryanswer":
QueryAnswer(context);
break;
//查询默认值
case "querydefault":
QueryDefault(context);
break;
//查询正确答案
case "queryanswerth":
QueryAnswerTH(context);
break;
//查询树形结构
case "queryacquisition":
QueryAcquisition(context);
break;
//查询树形结构
case "updateacquisition":
UpdateAcquisition(context);
break;
//显示图表
case "displaychart":
displaychart(context);
break;
//登录时间
case "matchrecord":
MatchRecord(context);
break;
//保存断点
case "savebreakpoint":
SaveBreakPoint(context);
break;
default:
var result = GetResult(false, "方法名不存在:" + action);
context.Response.Write(result);
break;
}
}
private void SaveBreakPoint(HttpContext context)
{
var ret = string.Empty;
var user_id = context.Request.Params["user_id"];
if (string.IsNullOrEmpty(user_id))
{
ret = GetResult(false, "user_id参数不能为空");
context.Response.Write(ret);
context.Response.End();
}
var type = context.Request.Params["type"];
if (string.IsNullOrEmpty(type))
{
ret = GetResult(false, "type参数不能为空");
context.Response.Write(ret);
context.Response.End();
}
var step = context.Request.Params["step"];
if (string.IsNullOrEmpty(step))
{
ret = GetResult(false, "step参数不能为空");
context.Response.Write(ret);
context.Response.End();
}
var data = context.Request.Params["data"];
var device_id = context.Request.Params["device_id"];
var score = context.Request.Params["score"];
DateTime dt = DateTime.Now;
//var config = bll_exam_result_match_record.GetModelList(string.Format(" user_id = '{0}' and start_time<'{1}' and expire_time>'{1}' ", user_id, dt)).FirstOrDefault();
var config = bll_exam_result_match_record.GetModelList(string.Format(" user_id = '{0}' ", user_id)).FirstOrDefault();
var obj = new DataService.Model.breakpoint_continuation();
obj.id = BasePage.GetId();
obj.user_id = user_id;
obj.step = step;
obj.type = type;
obj.record_time = DateTime.Now;
obj.data = data;
obj.device_id = device_id;
if (config != null)
{
obj.record_id = config.id;
}
bool add_flag = bll_breakpoint_continuation.Add(obj);
if (add_flag)
{
var result = GetResult(true, obj, "添加断点成功");
context.Response.Write(result);
context.Response.End();
}
else
{
var result = GetResult(false, null, "添加树形失败");
context.Response.Write(result);
context.Response.End();
}
}
///
/// 比赛是否失效 init 初始
///
///
private void MatchRecord_old(HttpContext context)
{
var ret = string.Empty;
DateTime dt = DateTime.Now;
string sql = string.Format(" 1=1 and start_time<'{0}' and expire_time>'{0}' ", dt);
string sql2 = " 1=1 ";
var user_id = context.Request.Params["user_id"];
if (string.IsNullOrEmpty(user_id))
{
ret = GetResult(false, "user_id参数不能为空");
context.Response.Write(ret);
context.Response.End();
}
else
{
sql += string.Format(" and user_id='{0}' ", user_id);
}
var type = context.Request.Params["type"];
if (string.IsNullOrEmpty(type))
{
//ret = GetResult(false, "type参数不能为空");
//context.Response.Write(ret);
//context.Response.End();
}
else
{
sql2 += string.Format(" and type='{0}' ", type);
}
var step = context.Request.Params["step"];
if (string.IsNullOrEmpty(step))
{
//ret = GetResult(false, "step参数不能为空");
//context.Response.Write(ret);
//context.Response.End();
}
else
{
sql2 += string.Format(" and step='{0}' ", step);
}
var device_id = context.Request.Params["device_id"];
if (!string.IsNullOrEmpty(device_id))
{
sql2 += string.Format(" and device_id='{0}' ", device_id);
}
var config = bll_exam_result_match_record.GetModelList(sql).FirstOrDefault();
if (null != config)
{
sql2 += string.Format(" and user_id = '{0}' and record_id='{1}' order by record_time desc ", user_id, config.id);
List break_list = new List();
break_list = bll_breakpoint_continuation.GetModelList(sql2);
if (break_list.Count > 0)
{
var result = GetResult(true, break_list.Select(x => x.data).FirstOrDefault(), "true");
context.Response.Write(result);
context.Response.End();
}
else
{
var result = GetResult(true, "", "false");
context.Response.Write(result);
context.Response.End();
}
}
else
{
var datetime = DateTime.Now;
var obj = new DataService.Model.exam_result_match_record();
obj.id = BasePage.GetId();
obj.user_id = user_id;
obj.start_time = datetime;
obj.expire_time = datetime.AddDays(1);
bool add_flag = bll_exam_result_match_record.Add(obj);
var result = GetResult(true, "", "false");
context.Response.Write(result);
context.Response.End();
}
}
///
/// 比赛是否失效 微调版
///
///
private void MatchRecord(HttpContext context)
{
var ret = string.Empty;
DateTime dt = DateTime.Now;
//string sql = string.Format(" 1=1 and start_time<'{0}' and expire_time>'{0}' ", dt);
//string sql = string.Format(" 1=1 and start_time<'{0}' ", dt);
string sql = string.Format(" 1=1 ");
string sql2 = " 1=1 ";
var user_id = context.Request.Params["user_id"];
if (string.IsNullOrEmpty(user_id))
{
ret = GetResult(false, "user_id参数不能为空");
context.Response.Write(ret);
context.Response.End();
}
else
{
sql += string.Format(" and user_id='{0}' ", user_id);
}
var type = context.Request.Params["type"];
if (string.IsNullOrEmpty(type))
{
//ret = GetResult(false, "type参数不能为空");
//context.Response.Write(ret);
//context.Response.End();
}
else
{
sql2 += string.Format(" and type='{0}' ", type);
}
var step = context.Request.Params["step"];
if (string.IsNullOrEmpty(step))
{
//ret = GetResult(false, "step参数不能为空");
//context.Response.Write(ret);
//context.Response.End();
}
else
{
sql2 += string.Format(" and step='{0}' ", step);
}
var device_id = context.Request.Params["device_id"];
if (!string.IsNullOrEmpty(device_id))
{
sql2 += string.Format(" and device_id='{0}' ", device_id);
}
var config = bll_exam_result_match_record.GetModelList(sql).FirstOrDefault();
if (null != config)
{
sql2 += string.Format(" and user_id = '{0}' and record_id='{1}' order by record_time desc ", user_id, config.id);
List break_list = new List();
break_list = bll_breakpoint_continuation.GetModelList(sql2);
if (break_list.Count > 0)
{
var result = GetResult(true, break_list.Select(x => x.data).FirstOrDefault(), "true");
context.Response.Write(result);
context.Response.End();
}
else
{
var result = GetResult(true, "", "false");
context.Response.Write(result);
context.Response.End();
}
}
else
{
var datetime = DateTime.Now;
var obj = new DataService.Model.exam_result_match_record();
obj.id = BasePage.GetId();
obj.user_id = user_id;
obj.start_time = datetime;
//obj.expire_time = datetime.AddDays(1);
obj.expire_time = DateTime.MaxValue;
bool add_flag = bll_exam_result_match_record.Add(obj);
var result = GetResult(true, "", "false");
context.Response.Write(result);
context.Response.End();
}
}
///
/// 比赛是否失效
///
///
private void MatchRecord_1(HttpContext context)
{
var ret = string.Empty;
DateTime dt = DateTime.Now;
string sql = string.Format(" 1=1 ");
string sql2 = " 1=1 ";
var user_id = context.Request.Params["user_id"];
if (string.IsNullOrEmpty(user_id))
{
ret = GetResult(false, "user_id参数不能为空");
context.Response.Write(ret);
context.Response.End();
}
else
{
sql += string.Format(" and user_id='{0}' ", user_id);
}
var type = context.Request.Params["type"];
if (string.IsNullOrEmpty(type))
{
//ret = GetResult(false, "type参数不能为空");
//context.Response.Write(ret);
//context.Response.End();
}
else
{
sql2 += string.Format(" and type='{0}' ", type);
}
var step = context.Request.Params["step"];
if (string.IsNullOrEmpty(step))
{
//ret = GetResult(false, "step参数不能为空");
//context.Response.Write(ret);
//context.Response.End();
}
else
{
sql2 += string.Format(" and step='{0}' ", step);
}
var device_id = context.Request.Params["device_id"];
if (!string.IsNullOrEmpty(device_id))
{
sql2 += string.Format(" and device_id='{0}' ", device_id);
}
//var config = bll_exam_result_match_record.GetModelList(sql).FirstOrDefault();
if (true)
{
//sql2 += string.Format(" and user_id = '{0}' and record_id='{1}' order by record_time desc ", user_id, config.id);
sql2 += string.Format(" and user_id = '{0}' order by record_time desc ", user_id);
List break_list = new List();
break_list = bll_breakpoint_continuation.GetModelList(sql2);
if (break_list.Count > 0)
{
var result = GetResult(true, break_list.Select(x => x.data).FirstOrDefault(), "true");
//var temp = break_list.FirstOrDefault();
//var result = GetResult(true, temp.data, "true");
context.Response.Write(result);
context.Response.End();
}
else
{
var result = GetResult(true, "", "false");
context.Response.Write(result);
context.Response.End();
}
}
else
{
var datetime = DateTime.Now;
var obj = new DataService.Model.exam_result_match_record();
obj.id = BasePage.GetId();
obj.user_id = user_id;
obj.start_time = datetime;
obj.expire_time = datetime.AddDays(1);
bool add_flag = bll_exam_result_match_record.Add(obj);
var result = GetResult(true, "", "false");
context.Response.Write(result);
context.Response.End();
}
}
///
/// 断点查询
///
public class QueryBreakPoint
{
public string score { get; set; }
public string data { get; set; }
}
///
/// 显示图表
///
///
private void displaychart(HttpContext context)
{
var ret = string.Empty;
var user_id = context.Request.Params["user_id"];
if (string.IsNullOrEmpty(user_id))
{
ret = GetResult(false, "user_id参数不能为空");
context.Response.Write(ret);
context.Response.End();
}
DisplaychartClass dpClass = new DisplaychartClass();
var config_yx = bll_exam_result_detail_config.GetModelConfigList(string.Format(" mark = '{0}' and user_id='{1}' ", "CKFWQ_yx", user_id)).FirstOrDefault();
if (null != config_yx)
{
if (config_yx.score > 0)
{
dpClass.ck_yx = true;
}
}
var config_wx = bll_exam_result_detail_config.GetModelConfigList(string.Format(" mark = '{0}' and user_id='{1}' ", "CKFWQ_wx", user_id)).FirstOrDefault();
if (null != config_wx)
{
if (config_wx.score > 0)
{
dpClass.ck_wx = true;
}
}
#region old methods for lan_box1 ,wlan_box1 show
/*
var answer_wp = bll_config_answer.GetModelList(string.Format(" mark = '{0}' ", "YDPZYM_wgpz")).FirstOrDefault();
var config_wp = bll_config_cache.GetModelList(string.Format(" mark = '{0}' and user_id='{1}' ", "YDPZYM_wgpz", user_id)).FirstOrDefault();
Dictionary dic_wgid = new Dictionary();
if (answer_wp != null && config_wp != null)
{
if (answer_wp.answer != null && config_wp.mark_value != null)
{
Dictionary> dic_list = new Dictionary>();
Dictionary> dic_or_list = new Dictionary>();
List og = JsonConvert.DeserializeObject>(answer_wp.answer);
List nw = JsonConvert.DeserializeObject>(config_wp.mark_value);
foreach (YDPZYMWgpz t in og)
{
System.Reflection.FieldInfo[] fields = t.GetType().GetFields(BindingFlags.NonPublic | BindingFlags.Public | BindingFlags.Instance);
string field_name = "";
Dictionary dic = new Dictionary();
foreach (System.Reflection.FieldInfo of in fields)
{
var reflected_name = of.Name.Replace("<", "").Replace(">", "").Replace("k__BackingField", "");
if (reflected_name == "wgid")
{
field_name = of.GetValue(t).ToString();
}
object value_oj = of.GetValue(t);
if (value_oj != null)
{
dic.Add(reflected_name, value_oj.ToString());
}
else
{
dic.Add(reflected_name, "");
}
}
dic_or_list.Add(field_name, dic);
}
foreach (YDPZYMWgpz t in nw)
{
System.Reflection.FieldInfo[] fields = t.GetType().GetFields(BindingFlags.NonPublic | BindingFlags.Public | BindingFlags.Instance);
string field_name = "";
Dictionary dic = new Dictionary();
foreach (System.Reflection.FieldInfo of in fields)
{
var reflected_name = of.Name.Replace("<", "").Replace(">", "").Replace("k__BackingField", "");
if (reflected_name == "wgid")
{
field_name = of.GetValue(t).ToString();
}
object value_oj = of.GetValue(t);
if (value_oj != null)
{
dic.Add(reflected_name, value_oj.ToString());
}
else
{
dic.Add(reflected_name, "");
}
}
dic_list.Add(field_name, dic);
}
foreach (var dic in dic_or_list)
{
if (dic_list.Where(x => x.Key == dic.Key).Count() > 0)
{
var dc = dic_list.Where(x => x.Key == dic.Key).FirstOrDefault();
Dictionary dic_or = dic.Value;
var isright = true;
foreach (var or in dic_or)
{
var m = dc.Value.Where(x => x.Key == or.Key).FirstOrDefault();
if (!Equals(or.Value, m.Value))
{
isright = false;
break;
}
}
dic_wgid.Add(dic.Key, isright);
}
else
{
dic_wgid.Add(dic.Key, false);
}
}
}
}
Dictionary dic_wgid_ww = new Dictionary();
var answer_ww = bll_config_answer.GetModelList(string.Format(" mark = '{0}' ", "YDPZYM_wgwh")).FirstOrDefault();
var config_ww = bll_config_cache.GetModelList(string.Format(" mark = '{0}' and user_id='{1}' ", "YDPZYM_wgwh", user_id)).FirstOrDefault();
if (answer_ww != null && config_ww != null)
{
if (answer_ww.answer != null && config_ww.mark_value != null)
{
Dictionary> dic_list1 = new Dictionary>();
Dictionary> dic_or_list1 = new Dictionary>();
List og = JsonConvert.DeserializeObject>(answer_ww.answer);
List nw = JsonConvert.DeserializeObject>(config_ww.mark_value);
foreach (YDPZYMWgwh t in og)
{
System.Reflection.FieldInfo[] fields = t.GetType().GetFields(BindingFlags.NonPublic | BindingFlags.Public | BindingFlags.Instance);
string field_name = "";
Dictionary dic = new Dictionary();
foreach (System.Reflection.FieldInfo of in fields)
{
var reflected_name = of.Name.Replace("<", "").Replace(">", "").Replace("k__BackingField", "");
if (reflected_name == "sswg")
{
field_name = of.GetValue(t).ToString();
}
object value_oj = of.GetValue(t);
if (value_oj != null)
{
dic.Add(reflected_name, value_oj.ToString());
}
else
{
dic.Add(reflected_name, "");
}
}
dic_or_list1.Add(field_name, dic);
}
foreach (YDPZYMWgwh t in nw)
{
System.Reflection.FieldInfo[] fields = t.GetType().GetFields(BindingFlags.NonPublic | BindingFlags.Public | BindingFlags.Instance);
string field_name = "";
Dictionary dic = new Dictionary();
foreach (System.Reflection.FieldInfo of in fields)
{
var reflected_name = of.Name.Replace("<", "").Replace(">", "").Replace("k__BackingField", "");
if (reflected_name == "sswg")
{
field_name = of.GetValue(t).ToString();
}
object value_oj = of.GetValue(t);
if (value_oj != null)
{
dic.Add(reflected_name, value_oj.ToString());
}
else
{
dic.Add(reflected_name, "");
}
}
dic_list1.Add(field_name, dic);
}
foreach (var dic in dic_or_list1)
{
if (dic_list1.Where(x => x.Key == dic.Key).Count() > 0)
{
var dc = dic_list1.Where(x => x.Key == dic.Key).FirstOrDefault();
Dictionary dic_or = dic.Value;
var isright = true;
foreach (var or in dic_or)
{
var m = dc.Value.Where(x => x.Key == or.Key).FirstOrDefault();
if (!Equals(or.Value, m.Value))
{
isright = false;
break;
}
}
dic_wgid_ww.Add(dic.Key, isright);
}
else
{
dic_wgid_ww.Add(dic.Key, false);
}
}
}
}
if (dic_wgid != null && dic_wgid_ww != null && dic_wgid.Count() > 0 && dic_wgid_ww.Count() > 0)
{
foreach (var d in dic_wgid)
{
if (dic_wgid_ww.Where(x => x.Key == d.Key).Count() > 0)
{
var mod = dic_wgid_ww.Where(x => x.Key == d.Key).FirstOrDefault();
if (d.Value && mod.Value)
{
if (d.Key == "lan-box1")
{
dpClass.lan_box1 = true;
}
if (d.Key == "lan-box2")
{
dpClass.lan_box2 = true;
}
if (d.Key == "wlan-box1")
{
dpClass.wlan_box1 = true;
}
if (d.Key == "wlan-box2")
{
dpClass.wlan_box2 = true;
}
}
}
}
}
*/
#endregion
var msg = "";
var if_wgpz = false;
var if_wgwh = false;
var if_line = false;
var if_db_yx = false;
var if_db_wx = false;
var if_ch_wx = false;
var if_ch_yx = false;
var matchid = "";
//网关配置
var config_YDPZYM_wgpz = bll_exam_result_detail_config.GetModelConfigList(string.Format(" mark = '{0}' and user_id='{1}' ", "YDPZYM_wgpz", user_id)).FirstOrDefault();
if (null != config_YDPZYM_wgpz)
{
matchid = config_YDPZYM_wgpz.result_id;
if (config_YDPZYM_wgpz.score > 0)
{
if_wgpz = true;
}
else
{
msg = "网关配置得分为0!";
}
}
else
{
msg = "网关配置答案不存在!";
}
//网关维护
var config_YDPZYM_wgwh = bll_exam_result_detail_config.GetModelConfigList(string.Format(" mark = '{0}' and user_id='{1}' ", "YDPZYM_wgwh", user_id)).FirstOrDefault();
if (null != config_YDPZYM_wgwh)
{
matchid = config_YDPZYM_wgwh.result_id;
if (config_YDPZYM_wgwh.score > 0)
{
if_wgwh = true;
}
else
{
msg += " 网关维护得分为0!";
}
}
else
{
msg += " 网关维护答案不存在!";
}
//产量数据监控 DB-IotLite_yx DB-IotLite网关有线
var config_DB_yx = bll_exam_result_detail_config.GetModelConfigList(string.Format(" mark = '{0}' and user_id='{1}' ", "DB-IotLite_yx", user_id)).FirstOrDefault();
if (null != config_DB_yx)
{
matchid = config_DB_yx.result_id;
if (config_DB_yx.score > 0)
{
if_db_yx = true;
}
else
{
msg += " DB-IotLite网关有线得分为0!";
}
}
else
{
msg += " DB-IotLite网关有线答案不存在!";
}
//急停状态 DB-IotLite_wx DB-IotLite网关无线
var config_DB_wx = bll_exam_result_detail_config.GetModelConfigList(string.Format(" mark = '{0}' and user_id='{1}' ", "DB-IotLite_wx", user_id)).FirstOrDefault();
if (null != config_DB_wx)
{
matchid = config_DB_wx.result_id;
if (config_DB_wx.score > 0)
{
if_db_wx = true;
}
else
{
msg += " DB-IotLite网关无线线得分为0!";
}
}
else
{
msg += " DB-IotLite网关无线答案不存在!";
}
//主轴转速
var config_CHGYWG_yx = bll_exam_result_detail_config.GetModelConfigList(string.Format(" mark = '{0}' and user_id='{1}' ", "CHGYWG_yx", user_id)).FirstOrDefault();
if (null != config_CHGYWG_yx)
{
matchid = config_CHGYWG_yx.result_id;
if (config_CHGYWG_yx.score > 0)
{
if_ch_yx = true;
}
else
{
msg += " 斥候工业网关有线 得分为0!";
}
}
else
{
msg += " 斥候工业网关有线答案不存在!";
}
//切削速度 CHGYWG_wx 斥候工业网关无线
var config_CHGYWG_wx = bll_exam_result_detail_config.GetModelConfigList(string.Format(" mark = '{0}' and user_id='{1}' ", "CHGYWG_wx", user_id)).FirstOrDefault();
if (null != config_CHGYWG_wx)
{
matchid = config_CHGYWG_wx.result_id;
if (config_CHGYWG_wx.score > 0)
{
if_ch_wx = true;
}
else
{
msg += " 斥候工业网关无线 得分为0!";
}
}
else
{
msg += " 斥候工业网关无线答案不存在!";
}
//设备连线
if (!string.IsNullOrEmpty(matchid))
{
var model = bll_exam_result_match.GetModel(matchid);
if (null != model)
{
if (model.score > 0)
{
if_line = true;
}
else
{
msg += " 设备连线得分为0!";
}
}
else
{
msg += " 设备连线成绩不存在!";
}
}
dpClass.lan_box1 = false;
dpClass.lan_box2 = false;
dpClass.wlan_box1 = false;
dpClass.wlan_box2 = false;
if (if_wgpz && if_wgwh && if_line)
{
if (if_db_yx)
{
dpClass.lan_box1 = true;//产量
}
if (if_ch_yx)
{
dpClass.lan_box2 = true; //主轴转速
}
if (if_db_wx)
{
dpClass.wlan_box1 = true; //急停
}
if (if_ch_wx)
{
dpClass.wlan_box2 = true; //切削速度
}
}
var result = GetResult(true, dpClass, msg);
context.Response.Write(result);
context.Response.End();
}
public class DisplaychartClass
{
public bool ck_yx { get; set; } = false;
public bool ck_wx { get; set; } = false;
public bool lan_box1 { get; set; } = false;
public bool lan_box2 { get; set; } = false;
public bool wlan_box1 { get; set; } = false;
public bool wlan_box2 { get; set; } = false;
}
///
/// 获取树形结构
///
///
private void QueryAcquisition(HttpContext context)
{
set_data_acquisition config = new set_data_acquisition();
var ret = string.Empty;
var user_id = context.Request.Params["user_id"];
string wh = " 1=1";
var type = context.Request.Params["type"];
if (!string.IsNullOrEmpty(user_id) && user_id != "undefined")
{
wh += string.Format(" and ( user_id='{0}' or user_id IS nuLL or user_id ='') and type='{1}' ", user_id, type);
}
else
{
wh += string.Format(" and (user_id IS nuLL or user_id ='' ) and type='{0}'", type);
}
List config_list = bll_data_acquisition.GetModelList(wh);
if (config_list != null && config_list.Count() > 0)
{
if (config_list.Count() > 1)
{
config = config_list.Where(x => x.user_id == user_id)?.FirstOrDefault();
}
else
{
config = config_list.FirstOrDefault();
}
}
else
{
config = null;
}
var result = GetResult(true, config);
context.Response.Write(result);
context.Response.End();
}
///
/// 查询用户缓存答案
///
///
public void QueryCache(HttpContext context)
{
var ret = string.Empty;
var user_id = context.Request.Params["user_id"];
if (string.IsNullOrEmpty(user_id))
{
ret = GetResult(false, "user_id参数不能为空");
context.Response.Write(ret);
context.Response.End();
}
var mark = context.Request.Params["mark"];
if (string.IsNullOrEmpty(mark))
{
ret = GetResult(false, "mark参数不能为空");
context.Response.Write(ret);
context.Response.End();
}
DateTime datetime = DateTime.Now;
var cache = bll_config_cache.GetModelList(string.Format(" mark = '{0}' and user_id='{1}' or ( start_time<'{2}' and expire_time='{2}') ", mark, user_id, datetime)).FirstOrDefault();
if (null != cache)
{
var result = GetResult(true, cache);
context.Response.Write(result);
context.Response.End();
}
else
{
var result = GetResult(false, "参数mark:" + mark + ",user_id:" + user_id + ",用户缓存答案不存在!");
context.Response.Write(result);
context.Response.End();
}
}
///
/// 更新树形
///
///
public void UpdateAcquisition(HttpContext context)
{
var ret = string.Empty;
var user_id = context.Request.Params["user_id"];
/*
if (string.IsNullOrEmpty(user_id) || user_id == "undefined")
{
ret = GetResult(false, "user_id参数不能为空");
context.Response.Write(ret);
context.Response.End();
}
if (user_id.Contains("="))
{
ret = GetResult(false, "user_id参数不能包含等号!");
context.Response.Write(ret);
context.Response.End();
}
*/
var type = context.Request.Params["type"];
if (string.IsNullOrEmpty(type))
{
ret = GetResult(false, "type参数不能为空");
context.Response.Write(ret);
context.Response.End();
}
var data = context.Request.Params["data"];
if (string.IsNullOrEmpty(data))
{
ret = GetResult(false, "data参数不能为空");
context.Response.Write(ret);
context.Response.End();
}
var lang = context.Request.Params["lang"];
/*
if (string.IsNullOrEmpty(lang))
{
ret = GetResult(false, "lang参数不能为空");
context.Response.Write(ret);
context.Response.End();
}
*/
var acquisition = bll_data_acquisition.GetModelList(string.Format(" user_id='{0}' and type='{1}' ", user_id, type)).FirstOrDefault();
if (null != acquisition) //修改缓存
{
//exam_result_match_record bll_exam_result_match_record=
// acquisition.data = data; //$$$$
if (lang == "1") //英文
{
acquisition.r2 = data;
}
else
{
acquisition.data = data;
}
acquisition.type = type;
acquisition.r3 = "lang:" + lang;
bool update_flag = bll_data_acquisition.Update(acquisition);
if (update_flag)
{
var result = GetResult(true, acquisition, "修改树形成功");
context.Response.Write(result);
context.Response.End();
}
else
{
var result = GetResult(false, null, "修改树形失败");
context.Response.Write(result);
context.Response.End();
}
}
else //添加缓存
{
var obj = new DataService.Model.set_data_acquisition();
obj.id = BasePage.GetId();
obj.user_id = user_id;
//obj.data = data; //$$$$ old
if (lang == "1") //英文
{
obj.r2 = data;
}
else
{
obj.data = data;
}
obj.type = type;
obj.update_time = DateTime.Now;
obj.r3 = "lang:" + lang;
bool add_flag = bll_data_acquisition.Add(obj);
if (add_flag)
{
var result = GetResult(true, obj, "添加树形成功");
context.Response.Write(result);
context.Response.End();
}
else
{
var result = GetResult(false, null, "添加树形失败");
context.Response.Write(result);
context.Response.End();
}
}
}
///
/// 更新用户缓存答案
///
///
public void UpdateCache(HttpContext context)
{
var ret = string.Empty;
var user_id = context.Request.Params["user_id"];
/*
if (string.IsNullOrEmpty(user_id) || user_id== "undefined")
{
ret = GetResult(false, "user_id参数不能为空");
context.Response.Write(ret);
context.Response.End();
}
if (user_id.Contains("="))
{
ret = GetResult(false, "user_id参数不能包含等号!");
context.Response.Write(ret);
context.Response.End();
}
*/
var mark = context.Request.Params["mark"];
if (string.IsNullOrEmpty(mark))
{
ret = GetResult(false, "mark参数不能为空");
context.Response.Write(ret);
context.Response.End();
}
var mark_value = context.Request.Params["mark_value"];
if (string.IsNullOrEmpty(mark_value))
{
ret = GetResult(false, "mark_value参数不能为空");
context.Response.Write(ret);
context.Response.End();
}
var step = context.Request.Params["step"];
//bll_admin_log.write_log("日志 UpdateCache:mark" + mark_value);
var cache = bll_config_cache.GetModelList(string.Format(" mark = '{0}' and user_id='{1}' ", mark, user_id)).FirstOrDefault();
if (null != cache) //修改缓存
{
DateTime dt = new DateTime();
var record = bll_exam_result_match_record.GetModelList(string.Format(" start_time < '{0}' and expire_time>'{0}' and user_id='{1}' ", dt, user_id)).FirstOrDefault();
cache.step = step;
cache.mark_value = mark_value;
cache.step = step;
cache.update_time = DateTime.Now;
if (record != null)
{
cache.start_time = record.start_time;
cache.expire_time = record.expire_time;
}
bool update_flag = bll_config_cache.Update(cache);
if (update_flag)
{
var result = GetResult(true, cache, "修改缓存成功");
context.Response.Write(result);
context.Response.End();
}
else
{
var result = GetResult(false, null, "修改缓存失败");
context.Response.Write(result);
context.Response.End();
}
}
else //添加缓存
{
DateTime dt = DateTime.Now;
var config = bll_exam_result_match_record.GetModelList(string.Format(" user_id = '{0}' and start_time<'{1}' and expire_time>'{1}' ", user_id, dt)).FirstOrDefault();
var obj = new DataService.Model.exam_config_cache();
obj.id = BasePage.GetId();
obj.user_id = user_id;
obj.mark = mark;
obj.mark_value = mark_value;
obj.step = step;
obj.update_time = DateTime.Now;
if (config != null)
{
obj.start_time = obj.start_time;
obj.expire_time = obj.expire_time;
}
bool add_flag = bll_config_cache.Add(obj);
if (add_flag)
{
var result = GetResult(true, null, "添加缓存成功");
context.Response.Write(result);
context.Response.End();
}
else
{
var result = GetResult(false, null, "添加缓存失败");
context.Response.Write(result);
context.Response.End();
}
}
}
///
/// 查询正确答案
///
///
public void QueryAnswer(HttpContext context)
{
var ret = string.Empty;
var mark = context.Request.Params["mark"];
if (string.IsNullOrEmpty(mark))
{
ret = GetResult(false, "mark参数不能为空");
context.Response.Write(ret);
context.Response.End();
}
var config = bll_config_answer.GetModelList(string.Format(" mark = '{0}' ", mark)).FirstOrDefault();
if (null != config)
{
#region excel替换固定答案
/*
if (config.id != "10011" && config.id != "10012")
{
config.old_answer = config.answer;
config.answer = config.r2;
config.default_answer = config.r3;
}
d1.r2 = db_yx;
d1.r3 = db_yx_default;
d1.r2_en_answer = db_yx_en;
d1.r3_en_default = db_yx_default_en;
*/
if (config.id != "10011" && config.id != "10012")
{
var is_test = System.Configuration.ConfigurationManager.AppSettings["is_test"];
config.desc = "answer:过去版本答案、r2:excel答案配置-中文、r3:excel默认配置-中文、r3_en_default:excel默认配置(英文)" + ",test=" + is_test;
if (is_test == "1")
{
//测试中文默认值用的 $$$$
config.r3 = config.r2;
//测试英文默认值用的 $$$$
config.r3_en_default = config.r2_en_answer;
}
}
#endregion
var result = GetResult(true, config);
context.Response.Write(result);
context.Response.End();
}
else
{
var result = GetResult(false, "参数mark:" + mark + ",答案不存在!");
context.Response.Write(result);
context.Response.End();
}
}
///
/// 查询中英文默认值
///
///
public void QueryDefault(HttpContext context)
{
var ret = string.Empty;
var mark = context.Request.Params["mark"];
if (string.IsNullOrEmpty(mark))
{
ret = GetResult(false, "mark参数不能为空");
context.Response.Write(ret);
context.Response.End();
}
var lang = context.Request.Params["lang"];
if (string.IsNullOrEmpty(lang))
{
ret = GetResult(false, "lang参数不能为空");
context.Response.Write(ret);
context.Response.End();
}
if (lang != "1" && lang != "0")
{
ret = GetResult(false, "lang取值范围 0:中文、1:英文");
context.Response.Write(ret);
context.Response.End();
}
var config = bll_config_answer.GetModelList(string.Format(" mark = '{0}' ", mark)).FirstOrDefault();
if (null != config)
{
#region excel替换固定答案
var is_test = System.Configuration.ConfigurationManager.AppSettings["is_test"];
#endregion
var back = string.Empty;
if (lang == "1") //英文
{
back = config.r3_en_default; //excel默认-英文
if (is_test == "1")
{
back = config.r2_en_answer; //excel答案-英文
}
}
else if (lang == "0") //中文
{
back = config.r3; //excel默认-中文
if (is_test == "1")
{
back = config.r2; //excel答案-中文
}
}
var result = GetResult(true, back, "");
context.Response.Write(result);
context.Response.End();
}
else
{
var result = GetResult(false, "参数mark:" + mark + ",答案默认值不存在!");
context.Response.Write(result);
context.Response.End();
}
}
///
/// 查询正确答案--炭黑生产制造
///
///
public void QueryAnswerTH(HttpContext context)
{
var ret = string.Empty;
var id = context.Request.Params["id"];
if (string.IsNullOrEmpty(id))
{
ret = GetResult(false, "id参数不能为空");
context.Response.Write(ret);
context.Response.End();
}
var config = bll_config_answer.GetModelList(string.Format(" id = '{0}' ", id)).FirstOrDefault();
if (null != config)
{
#region excel替换固定答案
/*
if (config.id != "10011" && config.id != "10012")
{
config.old_answer = config.answer;
config.answer = config.r2;
config.default_answer = config.r3;
}
d1.r2 = db_yx;
d1.r3 = db_yx_default;
d1.r2_en_answer = db_yx_en;
d1.r3_en_default = db_yx_default_en;
*/
/*
if (config.id != "10011" && config.id != "10012")
{
var is_test = System.Configuration.ConfigurationManager.AppSettings["is_test"];
config.desc = "answer:过去版本答案、r2:excel答案配置-中文、r3:excel默认配置-中文、r3_en_default:excel默认配置(英文)" + ",test=" + is_test;
if (is_test == "1")
{
//测试中文默认值用的 $$$$
config.r3 = config.r2;
//测试英文默认值用的 $$$$
config.r3_en_default = config.r2_en_answer;
}
}
*/
#endregion
var result = GetResult(true, config);
context.Response.Write(result);
context.Response.End();
}
else
{
var result = GetResult(false, "参数id:" + id + ",答案不存在!");
context.Response.Write(result);
context.Response.End();
}
}
///
/// 查询全部答案
///
///
public void QueryAllAnswer(HttpContext context)
{
var config_list = bll_config_answer.GetModelList("");
#region excel替换固定答案
foreach (var config in config_list)
{
if (config.id != "10011" && config.id != "10012")
{
//config.old_answer = config.answer;
//config.answer = config.r2;
//config.default_answer = config.r3;
//config.desc = "answer:过去版本答案、r2:excel答案配置、r3:excel默认配置、r3_en_default:excel默认配置(英文)";
//测试用的 $$$$
//config.r3 = config.r2;
var is_test = System.Configuration.ConfigurationManager.AppSettings["is_test"];
config.desc = "answer:过去版本答案、r2:excel答案配置-中文、r3:excel默认配置-中文、r3_en_default:excel默认配置(英文)" + ",test=" + is_test;
if (is_test == "1")
{
//测试中文默认值用的 $$$$
config.r3 = config.r2;
//测试英文默认值用的 $$$$
config.r3_en_default = config.r2_en_answer;
}
}
}
#endregion
var result = GetResult(true, config_list);
context.Response.Write(result);
context.Response.End();
}
//保存竞赛考试
public void saveMatch(HttpContext context)
{
var data = context.Request.Params["data"];
var ret = string.Empty;
if (string.IsNullOrEmpty(data))
{
ret = GetResult(false, "data参数不能为空");
context.Response.Write(ret);
context.Response.End();
}
DataService.Model.exam_result_match result_item = null;
try
{
result_item = JsonConvert.DeserializeObject(data);
}
catch (Exception ex)
{
ret = GetResult(false, "考试科目:data 异常:" + ex.Message);
context.Response.Write(ret);
context.Response.End();
}
if (context.Request.Files.Count <= 0)
{
ret = GetResult(false, "文件不能为空");
context.Response.Write(ret);
context.Response.End();
}
var file = context.Request.Files[0];
var extension = file.FileName.Substring(file.FileName.LastIndexOf("."));
var file_name = file.FileName;
string uploadPath = "Upload/";
var newid = BasePage.GetLongId();
var prefix = file.FileName.Substring(0, file.FileName.LastIndexOf("."));
string NewfileName = prefix + "_" + newid + extension;
var directory = context.Server.MapPath("~/" + uploadPath);
if (!Directory.Exists(directory))
Directory.CreateDirectory(directory);
string serverPath = directory + NewfileName;
file.SaveAs(serverPath);
var now = DateTime.Now;
var result_id = BasePage.GetNewId();
result_item.id = result_id;
result_item.create_time = now;
result_item.pic_url = "~/" + uploadPath + NewfileName; //文件路径-相对路径
if (bll_exam_result_match.Add(result_item))
{
ret = GetResult(true, result_item);
context.Response.Write(ret);
context.Response.End();
}
}
//保存考试
public void SaveExam(HttpContext context)
{
var exam_result = context.Request.Params["exam_result"];
var ret = string.Empty;
if (string.IsNullOrEmpty(exam_result))
{
ret = GetResult(false, "exam_result参数不能为空");
context.Response.Write(ret);
context.Response.End();
}
DataService.Model.exam_result result_item = null;
try
{
result_item = JsonConvert.DeserializeObject(exam_result);
}
catch (Exception ex)
{
ret = GetResult(false, "考试科目:exam_result 异常:" + ex.Message);
context.Response.Write(ret);
context.Response.End();
}
//实训考核模式
if (result_item.sjms == "1")
{
var exam_result_detail = context.Request.Params["exam_result_detail"];
if (string.IsNullOrEmpty(exam_result_detail))
{
ret = GetResult(false, "exam_result_detail参数不能为空");
context.Response.Write(ret);
context.Response.End();
}
List result_detail_list_shixun = null;
try
{
result_detail_list_shixun = JsonConvert.DeserializeObject>(exam_result_detail);
}
catch (Exception ex)
{
ret = GetResult(false, "考试详情异常:" + ex.Message);
context.Response.Write(ret);
context.Response.End();
}
var now = DateTime.Now;
var result_id = Guid.NewGuid().ToString("N");
result_item.id = result_id;
//result_item.sjms = "1"; 实训模式
result_item.create_time = now;
if (bll_exam_result.Add(result_item))
{
foreach (var item in result_detail_list_shixun)
{
item.id = Guid.NewGuid().ToString("N");
item.result_id = result_id;
item.create_time = now;
bll_exam_result_detail_shixun.Add(item);
}
ret = GetResult(true, result_item);
context.Response.Write(ret);
context.Response.End();
}
}
else //考试考核模式
{
var exam_result_detail = context.Request.Params["exam_result_detail"];
if (string.IsNullOrEmpty(exam_result_detail))
{
ret = GetResult(false, "exam_result_detail参数不能为空");
context.Response.Write(ret);
context.Response.End();
}
List result_detail_list = null;
try
{
result_detail_list = JsonConvert.DeserializeObject>(exam_result_detail);
}
catch (Exception ex)
{
ret = GetResult(false, "考试详情异常:" + ex.Message);
context.Response.Write(ret);
context.Response.End();
}
var now = DateTime.Now;
var result_id = Guid.NewGuid().ToString("N");
result_item.id = result_id;
result_item.sjms = "0";
result_item.create_time = now;
if (bll_exam_result.Add(result_item))
{
foreach (var item in result_detail_list)
{
item.id = Guid.NewGuid().ToString("N");
item.result_id = result_id;
item.create_time = now;
bll_exam_result_detail.Add(item);
}
ret = GetResult(true, result_item);
context.Response.Write(ret);
context.Response.End();
}
}
}
public void SaveResult(HttpContext context)
{
//?subjectid = 10002 & loginname = xy1001 & totalresult = 27 & content = 备注 & mode = 0 & time = 2020 - 1 - 1
//参数 subject_id 科目id
//参数 user_id (id_card)
//参数 totalresult 总分值
//参数 sjms 模式:训练、考核
//参数 sign_boat 船型
//参数 examine_type 考核类型: 0 测验 ,1 考试
//参数 sjms 实践模式 训练、考核
/*
b1 sign_boat 内河1000吨以上油船
b2 sign_boat 内河1000吨以下油船
b3 sign_boat 内河1000吨以上危化品船
b4 sign_boat 内河1000吨以下危化品船
*/
var ret = string.Empty;
var sign_boat = context.Request.Params["sign_boat"];
if (string.IsNullOrEmpty(sign_boat))
{
ret = GetResult(false, "sign_boat参数不能为空");
context.Response.Write(ret);
context.Response.End();
}
var boat = BasePage.list_sign_boat.FirstOrDefault(s => s.type_id == sign_boat);
if (null == boat)
{
ret = GetResult(false, "船型不能为空,参数sign_boat:" + sign_boat);
context.Response.Write(ret);
context.Response.End();
}
var subject_id = context.Request.Params["subject_id"];
if (string.IsNullOrEmpty(subject_id))
{
ret = GetResult(false, "subject_id参数不能为空");
context.Response.Write(ret);
context.Response.End();
}
var subject = bll_subject.GetModel(subject_id);
if (null == subject)
{
ret = GetResult(false, "科目不能为空,参数 subject_id:" + subject_id);
context.Response.Write(ret);
context.Response.End();
}
var user_id = context.Request.Params["user_id"];
if (string.IsNullOrEmpty(user_id))
{
ret = GetResult(false, "user_id参数不能为空");
context.Response.Write(ret);
context.Response.End();
}
var user = bll_user.GetModel(user_id);
if (null == user)
{
ret = GetResult(false, "学员不能为空,参数 user_id:" + user_id);
context.Response.Write(ret);
context.Response.End();
}
var totalresult = context.Request.Params["totalresult"];
if (string.IsNullOrEmpty(totalresult))
{
ret = GetResult(false, "totalresult参数不能为空");
context.Response.Write(ret);
context.Response.End();
}
Decimal d_total_result = 0;
if (!Decimal.TryParse(totalresult, out d_total_result))
{
ret = GetResult(false, "总分值不合法,参数totalresult:" + totalresult);
context.Response.Write(ret);
context.Response.End();
}
var sjms = context.Request.Params["sjms"];
var data = context.Request.Params["data"];
if (string.IsNullOrEmpty(data))
{
ret = GetResult(false, "data参数不能为空");
context.Response.Write(ret);
context.Response.End();
}
List detail_list = null;
try
{
detail_list = JsonConvert.DeserializeObject>(data);
}
catch (Exception ex)
{
ret = GetResult(false, "考核步骤列表转换错误:" + ex.Message);
context.Response.Write(ret);
context.Response.End();
}
var examine_time = DateTime.Now;
DataService.Model.pro_result resultModel = new DataService.Model.pro_result();
var result_id = BasePage.GetLongId();
resultModel.result_id = result_id;
resultModel.subject_id = subject_id;
resultModel.subject_name = subject.subject_name;
resultModel.user_id = user_id;
resultModel.real_name = user.real_name;
resultModel.major = user.sex; //性别
resultModel.examine_term = user.id_card; //考试身份证号
resultModel.sjms = sjms;
resultModel.examine_time = DateTime.Now;
resultModel.total_result = d_total_result;
resultModel.examine_kind = boat.type_id; //考试船型
resultModel.exam_year = DateTime.Today.Year;
resultModel.exam_month = DateTime.Today.Month;
resultModel.batch_id = "";
resultModel.batch_name = "";
resultModel.fault_code = "";
resultModel.fault_name = "";
resultModel.practice_content = "";
/*
resultModel.province_id = user.province_id;
resultModel.city_id = user.city_id;
resultModel.unit_id = user.unit_id;
*/
//resultModel.examine_type = 1; //考核类型: 0 测验 ,1 考试
/*
`batch_id` varchar(255) COLLATE gbk_bin DEFAULT NULL COMMENT '批次id',
`batch_name` varchar(255) COLLATE gbk_bin DEFAULT NULL COMMENT '批次名称',
`fault_code` varchar(255) COLLATE gbk_bin DEFAULT NULL COMMENT '故障点编码',
`fault_name` varchar(255) COLLATE gbk_bin DEFAULT NULL COMMENT '故障点名称',
`practice_content` text COLLATE gbk_bin COMMENT '实习内容',
*/
if (bll_pro_result.Add(resultModel))
{
var insert_count = 0;
for (int i = 0; i < detail_list.Count; i++)
{
var info = detail_list[i];
var item = new DataService.Model.pro_result_detail();
item.detail_id = BasePage.GetLongId();
item.result_id = result_id;
item.tip = info.tip;
item.name = info.name;
item.step = info.step;
item.score = info.score;
item.r1 = info.r1; //步骤备注
item.subject_id = subject.subject_id;
item.subject_name = subject.subject_name;
item.user_id = user.user_id;
item.real_name = user.real_name;
item.major = user.sex;
item.sjms = sjms; //实践模式 训练、考核
item.examine_kind = boat.type_id; //考试船型
item.examine_term = user.id_card; //考试身份证号
item.examine_time = examine_time; //考试时间
if (bll_pro_result_detail.Add(item))
{
insert_count++;
}
}
ret = GetResult(true, resultModel);
context.Response.Write(ret);
context.Response.End();
}
else
{
ret = GetResult(false, null, "添加考试内容失败!");
context.Response.Write(ret);
context.Response.End();
}
/*
var data = context.Request.Params["data"];
if (string.IsNullOrEmpty(data))
{
ret = GetResult(false, "data参数不能为空");
context.Response.Write(ret);
context.Response.End();
}
var model = JsonConvert.DeserializeObject(data);
*/
}
///
/// 步骤详情信息
///
private class ResultDetailInfo
{
///
/// 提示
///
public string tip { get; set; }
///
/// 顺序号
///
public int step { get; set; }
///
/// 设备名称、流程名称
///
public string name { get; set; }
///
/// 得分
///
public decimal score { get; set; }
///
/// 备注
///
public string r1 { get; set; }
}
public bool IsReusable
{
get
{
return false;
}
}
}
}