using Newtonsoft.Json;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Web;
using System.Web.Mvc;
using YTSoft.BaseCallCenter.Model;
using YTSoft.BaseCallCenter.MVCWeb.Commons;
using YTSoft.BaseCallCenter.MVCWeb.Models;
namespace YTSoft.BaseCallCenter.MVCWeb.Controllers
{
public class WXInterFaceController : Controller
{
//工单信息
BLL.T_Wo_WorkOrderBase orderBLL = new BLL.T_Wo_WorkOrderBase();
//客户信息
BLL.T_Cus_CustomerBase cusBLL = new BLL.T_Cus_CustomerBase();
//部门表
BLL.T_Sys_Department deptBll = new BLL.T_Sys_Department();
//用户表
BLL.T_Sys_UserAccount userBll = new BLL.T_Sys_UserAccount();
//通话记录
BLL.T_Call_CallRecords recordBLL = new BLL.T_Call_CallRecords();
//
// GET: /WXInterFace/
///
/// 微信创建工单
///
/// 1、微信号/2、微博号
/// 微信号/微博号
/// 工单id
///
public ActionResult WXWorkFlow(int workOrderType, string userCode, string webChartNum, string recordId)
{
#region 创建工单
int workOrderNum = 0;
bool wobl = false;
wobl = CreateWXWorkOrder(workOrderType, userCode, webChartNum, recordId, out workOrderNum);
//实例化基础信息表
CallScreenModel callScreenModel = new CallScreenModel();
if (wobl && workOrderNum > 0)
{
callScreenModel.WorkOrderBaseModel = orderBLL.GetModel(workOrderNum);
if (!string.IsNullOrEmpty(webChartNum))
{
//如果电话号码不为空
if (callScreenModel.WorkOrderBaseModel != null)
{
T_Cus_CustomerBase baseCusModel = cusBLL.GetCusInfoModel(workOrderType, webChartNum);
//微信号或者微博号
callScreenModel.WorkOrderBaseModel.F_EMPCODE = webChartNum;
if (baseCusModel != null && baseCusModel.F_CustomerId > 0)
{
callScreenModel.WorkOrderBaseModel.CustomerBaseModel = baseCusModel;
}
else
{
callScreenModel.WorkOrderBaseModel.CustomerBaseModel = new T_Cus_CustomerBase();
}
}
else
{
callScreenModel.WorkOrderBaseModel.CustomerBaseModel = new T_Cus_CustomerBase();
}
}
else
{
callScreenModel.WorkOrderBaseModel.CustomerBaseModel = new T_Cus_CustomerBase();
}
callScreenModel.WorkOrderBaseModel.CustomerBaseModel.F_Kind = (workOrderType + 1).ToString();
if (workOrderType == 1)
{
callScreenModel.WorkOrderBaseModel.CustomerBaseModel.F_CustomerNature = "微信";
}
else
{
callScreenModel.WorkOrderBaseModel.CustomerBaseModel.F_CustomerNature = "微博";
}
//业务类型字典表
callScreenModel.WorkOrderTypeModelList = GetWorkTypeModelList();
//获取处理方式字典表
callScreenModel.GoTypeModelList = GetCodeType("CLFS");
//获取处理年龄段字典表
callScreenModel.AgeModelList = GetCodeType("NLD");
//获取部门列表
callScreenModel.DepartmentList = deptBll.GetModelList("F_ParentId=0");
return View(callScreenModel);
}
#endregion
return View();
}
#region
/////
///// 保存来电弹屏信息
/////
/////
/////
//[AcceptVerbs(HttpVerbs.Post)]
//public bool workOrderAddData(T_Wo_WorkOrderBase workOrderBaseModel)
//{
// //工单来源
// //workOrderBaseModel.F_REPAIRMANID = 1;
// //workOrderBaseModel.F_WORKORDERFROM = "语音";
// ////当前用户信息
// //workOrderBaseModel.F_USERID = F_UserID;//id
// //workOrderBaseModel.F_LINKMAN = F_UserCode;//工号
// //workOrderBaseModel.F_REPAIRMANNAME = "12";//姓名
// if (workOrderBaseModel.CustomerBaseModel != null)
// {
// //最近联络方式
// if (workOrderBaseModel.F_REPAIRMANID.ToString() == "4")
// { workOrderBaseModel.CustomerBaseModel.F_Kind = "3"; }
// else
// {
// workOrderBaseModel.CustomerBaseModel.F_Kind = workOrderBaseModel.F_REPAIRMANID.ToString();
// }
// workOrderBaseModel.CustomerBaseModel.F_CustomerNature = workOrderBaseModel.F_WORKORDERFROM;
// //业务类型
// workOrderBaseModel.CustomerBaseModel.F_IndustryId = workOrderBaseModel.F_REPAIRLEVEL;
// workOrderBaseModel.CustomerBaseModel.F_Url = workOrderBaseModel.F_ADSLACCOUNT;
// ////客户等级
// //workOrderBaseModel.CustomerBaseModel.F_ScaleResume = "1";
// //workOrderBaseModel.CustomerBaseModel.F_CustomerClass = "一般客户";
// //修改客户基础信息
// int cusid = cusBLL.EditCusInfoModel(workOrderBaseModel.CustomerBaseModel);
// if (cusid > 0)
// {
// workOrderBaseModel.F_CUSTOMERID = cusid;
// }
// }
// return orderBLL.UpdateWorkOrderInfoModel(workOrderBaseModel);
//}
#endregion
///
/// 获取业务术语模板信息
///
/// 业务类型
///
public string GetTypeContenet(int bussnessType, string creatDateTime)
{
try
{
//模板内容
string bussContent = "";
if (bussnessType > 0)
{
if (bussnessType > 0)
{
BLL.T_Wo_WorkOrderType bll = new BLL.T_Wo_WorkOrderType();
Model.T_Wo_WorkOrderType orderTypeModel = new T_Wo_WorkOrderType();
orderTypeModel = bll.GetModel(bussnessType);
if (orderTypeModel != null && !string.IsNullOrEmpty(orderTypeModel.F_Remark))
{
bussContent += string.Format(orderTypeModel.F_Remark, DateTime.Parse(creatDateTime).ToString("f") + "分");
}
}
}
return bussContent;
}
catch (Exception ex)
{
}
return null;
}
#region 创建微信/微博工单
public bool CreateWXWorkOrder(int workOrderType,string userCode ,string webChartNum, string recordId, out int workorderid)
{
bool bl = false;
workorderid = 0;
try
{
Model.T_Wo_WorkOrderBase model = new Model.T_Wo_WorkOrderBase();
BLL.T_Sys_UserAccount userBLL = new BLL.T_Sys_UserAccount();
Model.T_Sys_UserAccount userModel = userBLL.GetModelByUserCode(userCode);
#region 工单信息
model.F_EMPCODE = webChartNum;//微信微博号
model.F_SERVICEWAY = recordId;//微信微博聊天记录
//model.F_WORKORDERTYPEID = Convert.ToInt32(typeid);//类型ID
model.F_WORKORDERSTATEID = 0;//状态ID
model.F_REPAIRREQUEST = "未处理";
model.F_CODE = "";//工单编号
model.F_WORKORDERNAME = "";//工单名称
model.F_NUMBER = model.F_CODE;
//model.F_CUSTOMERNAME = txtCustomerName.Text.Trim();//客户姓名
// model.F_CUSTOMERTELEPHONE = phone.Trim();//客户电话
model.F_USERID = userModel.F_UserId;//坐席id
model.F_LINKMAN = userModel.F_UserCode;//坐席工号
model.F_REPAIRMANNAME = userModel.F_UserName;//坐席名称
// model.F_LINKMANTELEPHONE = phone.Trim();//联系人电话
//model.F_ADSLACCOUNT = hfCallId.Value.Trim();
model.F_BANDWIDTH = "";
//model.F_STANDARDADDRESS = locationaddress.Trim();
//model.F_INSTALLADDRESS = F_INSTALLADDRESS;
// model.F_KSHADDRESSCODE = callid;
// model.F_RANGEID = Convert.ToInt32(recordid);
model.F_PROVINCE = "";
model.F_CITY = "";
model.F_AREA = "";
model.F_ROAD = "";
model.F_HOUSING = "";
if (workOrderType == 1)
{
model.F_REPAIRMANID = 3;
model.F_WORKORDERFROM = "微信工单";
}
else
{
model.F_REPAIRMANID = 4;
model.F_WORKORDERFROM = "微博工单";
}
//model.F_WORKORDERLEVELID = F_WORKORDERLEVELID;
model.F_FILEFLAG = 0;
model.F_CREATEBY = userModel.F_UserId;
model.F_CREATEDATE = DateTime.Now;
model.F_RETURNVISITFLAG = 0;
model.F_RETURNVISITSTATE = 0;
model.F_RETURNVISITRESULT = 0;
model.F_RETURNVISITCONTENT = "";
model.F_DELETEFLAG = 0;
model.F_ALLUSETIMES = 0;
model.F_STARTTIME = DateTime.Now;
model.F_OVERTIMES = 0;
model.F_FORMID = 0;
model.F_HASTENCOUNTS = 0;
model.F_RANGEX = 0;
model.F_RANGEY = 0;
model.F_REPAIRCLOSEMANID = 0;
model.F_REPAIRCLOSEMANNAME = "";
model.F_REPAIRCLOSEREASONS = "";
model.F_REPAIRCLOSEREPTID = 0;
model.F_REPAIRCLOSEREPT = "";
#endregion
int resorderbase = new BLL.T_Wo_WorkOrderBase().Add(model);//添加基本信息
workorderid = resorderbase;
if (resorderbase > 0)
{
bl = true;
#region 调用接口回调
try
{
StringBuilder returnStr = new StringBuilder();
string wxAddUrl = string.Format("http://rexian.zzmetro.com/api/customer/close/{0}/{1}", recordId, resorderbase);
HttpHelper.HttpGet(wxAddUrl);
}
catch (Exception ex)
{
}
#endregion
}
else
{
bl = false;
}
}
catch (Exception ex)
{
}
return bl;
}
#endregion
//字典表
BLL.T_Sys_DictionaryValue dicValueBll = new BLL.T_Sys_DictionaryValue();
///
/// 获取员工信息
///
/// 部门id
///
public string GetDeptUsers(string deptId)
{
try
{
return JsonConvert.SerializeObject(userBll.GetModelList("F_DeptId=" + deptId));
}
catch (Exception ex)
{
}
return null;
}
#region 获取处理类型字典
///
/// 获取处理类型字典
///
///
public List GetCodeType(string dicCodeType)
{
return dicValueBll.GetModelList("F_DictionaryFlag='" + dicCodeType + "'");
}
#endregion
#region 获取业务类型
///
/// 获取业务类型
///
public List GetWorkTypeModelList()
{
//最终需要返回的菜单
List newModelList = new List();
Model.PageData pageModel = new Model.PageData();
BLL.T_Wo_WorkOrderType bll = new BLL.T_Wo_WorkOrderType();
//获取业务类型列表
List WorkTypeModelList = bll.GetModelList("");
if (WorkTypeModelList != null && WorkTypeModelList.Count > 0)
{
//获取默认根节点
Model.T_Wo_WorkOrderType rootNode = WorkTypeModelList.FirstOrDefault(m => m.F_ParentId == 0);
//获取一级节点
List rootModelList = WorkTypeModelList.Where(t => t.F_ParentId == rootNode.F_WorkOrderTypeId).ToList();
if (rootModelList != null && rootModelList.Count > 0)
{
foreach (T_Wo_WorkOrderType WorkOrderTypeModel in rootModelList)
{
List nullModelList = new List();
WorkOrderTypeModel.WorkTypeModelList = nullModelList;
newModelList.Add(GetWorkTypeModelChild(WorkOrderTypeModel, WorkOrderTypeModel, WorkTypeModelList));
}
}
}
return newModelList;
}
//获取所有子集
public Model.T_Wo_WorkOrderType GetWorkTypeModelChild(T_Wo_WorkOrderType rootNode, T_Wo_WorkOrderType WorkOrderTypeModel, List WorkTypeModelList)
{
//获取子集节点
List sonModelList = WorkTypeModelList.Where(t => t.F_ParentId == WorkOrderTypeModel.F_WorkOrderTypeId).ToList();
if (sonModelList != null && sonModelList.Count > 0)
{
foreach (T_Wo_WorkOrderType workOrderTypeModel in sonModelList)
{
//获取子子集
List childModelList = WorkTypeModelList.Where(t => t.F_ParentId == workOrderTypeModel.F_WorkOrderTypeId).ToList();
if (childModelList != null && childModelList.Count > 0)
{
GetWorkTypeModelChild(rootNode, workOrderTypeModel, WorkTypeModelList);
}
else
{
rootNode.WorkTypeModelList.Add(workOrderTypeModel);
}
}
}
return rootNode;
}
#endregion
///
/// 获取字典信息
///
///
public ActionResult GetDicSelect(string diccode, string code1, string name1, string code2, string name2, string code3, string name3)
{
SelectInfoTypeModel modelRes = new SelectInfoTypeModel();
modelRes.diccode = diccode;
modelRes.code1 = code1;
modelRes.name1 = string.IsNullOrEmpty(name1) ? "请选择" : name1;
modelRes.code2 = code2;
modelRes.name2 = string.IsNullOrEmpty(name2) ? "请选择" : name2;
modelRes.code3 = code3;
modelRes.name3 = string.IsNullOrEmpty(name3) ? "请选择" : name3;
List modelList = new List();
BLL.T_Sys_DictionaryValue dicValueBll = new BLL.T_Sys_DictionaryValue();
modelList = dicValueBll.GetModelList("F_DictionaryFlag='ZDXX'");
if (modelList != null && modelList.Count > 0)
{
foreach (T_Sys_DictionaryValue model in modelList)
{
model.DictionaryValueModelList = dicValueBll.GetModelList("F_DictionaryFlag='" + model.F_ValueCode + "'");
}
}
modelRes.modelList = modelList;
return View(modelRes);
}
public ActionResult GetDicSelect2(string diccode, string code1, string name1, string code2, string name2, string code3, string name3)
{
SelectInfoTypeModel modelRes = new SelectInfoTypeModel();
modelRes.diccode = diccode;
modelRes.code1 = code1;
modelRes.name1 = string.IsNullOrEmpty(name1) ? "请选择" : name1;
modelRes.code2 = code2;
modelRes.name2 = string.IsNullOrEmpty(name2) ? "请选择" : name2;
modelRes.code3 = code3;
modelRes.name3 = string.IsNullOrEmpty(name3) ? "请选择" : name3;
List modelList = new List();
BLL.T_Sys_DictionaryValue dicValueBll = new BLL.T_Sys_DictionaryValue();
modelList = dicValueBll.GetModelList("F_DictionaryFlag='ZDXX'");
if (modelList != null && modelList.Count > 0)
{
foreach (T_Sys_DictionaryValue model in modelList)
{
model.DictionaryValueModelList = dicValueBll.GetModelList("F_DictionaryFlag='" + model.F_ValueCode + "'");
}
}
modelRes.modelList = modelList;
return View(modelRes);
}
#region
/////
///// 编辑手工工单信息
/////
/////
/////
//[AcceptVerbs(HttpVerbs.Post)]
//public bool workOrderAddDatanew(T_Wo_WorkOrderBase workOrderBaseModel)
//{
// bool bl = false;
// try
// {
// //工单来源
// workOrderBaseModel.F_REPAIRMANID = 4;
// workOrderBaseModel.F_WORKORDERFROM = "微博工单";
// string wbh = workOrderBaseModel.CustomerBaseModel.F_CustomerEName.Trim();
// if (!string.IsNullOrEmpty(wbh))
// {
// workOrderBaseModel.F_EMPCODE = wbh;
// workOrderBaseModel.CustomerBaseModel.F_PostCode = wbh;
// }
// //当前用户信息
// //workOrderBaseModel.F_USERID = F_UserID;//id
// //workOrderBaseModel.F_LINKMAN = F_UserCode;//工号
// //workOrderBaseModel.F_REPAIRMANNAME = F_UserName;//姓名
// workOrderBaseModel.F_LINKMANTELEPHONE = workOrderBaseModel.CustomerBaseModel.F_Mobile;
// //if (F_UserID > 0)
// //{
// // T_Sys_UserAccount usermodel = new T_Sys_UserAccount();
// // usermodel = userBll.GetModel(F_UserID);
// // workOrderBaseModel.F_REPAIRMANNAME = usermodel.F_UserName;//姓名
// //}
// if (workOrderBaseModel.CustomerBaseModel != null)
// {
// //最近联络方式
// if (workOrderBaseModel.F_REPAIRMANID.ToString()=="4")
// { workOrderBaseModel.CustomerBaseModel.F_Kind = "3"; }
// else {
// workOrderBaseModel.CustomerBaseModel.F_Kind = workOrderBaseModel.F_REPAIRMANID.ToString();
// }
// workOrderBaseModel.CustomerBaseModel.F_CustomerNature = workOrderBaseModel.F_WORKORDERFROM;
// //业务类型
// workOrderBaseModel.CustomerBaseModel.F_IndustryId = workOrderBaseModel.F_REPAIRLEVEL;
// workOrderBaseModel.CustomerBaseModel.F_Url = workOrderBaseModel.F_ADSLACCOUNT;
// workOrderBaseModel.CustomerBaseModel.F_CustomerId = Convert.ToInt32(workOrderBaseModel.F_CUSTOMERID);
// ////客户等级
// workOrderBaseModel.CustomerBaseModel.F_ScaleResume = "1";
// workOrderBaseModel.CustomerBaseModel.F_CustomerClass = "一般客户";
// //保存工单基础信息
// //修改客户基础信息
// int cusid = cusBLL.EditCusInfoModel(workOrderBaseModel.CustomerBaseModel);
// if (cusid > 0)
// {
// workOrderBaseModel.F_CUSTOMERID = cusid;
// }
// }
// if (workOrderBaseModel.F_WORKORDERID == 0)
// {
// workOrderBaseModel.F_CREATEDATE = DateTime.Now;
// bl =orderBLL.AddWbgd(workOrderBaseModel)>0;
// }
// else
// {
// try
// {
// YTSoft.BaseCallCenter.Model.T_Wo_WorkOrderBase m = new YTSoft.BaseCallCenter.BLL.T_Wo_WorkOrderBase().GetModel(workOrderBaseModel.F_WORKORDERID);
// workOrderBaseModel.F_LINKMANTELEPHONE = m.F_LINKMANTELEPHONE;
// workOrderBaseModel.F_CUSTOMERTELEPHONE = m.F_CUSTOMERTELEPHONE;
// workOrderBaseModel.F_NUMBER = m.F_CODE;
// }
// catch
// { }
// if (workOrderBaseModel.F_SERVICETYPE == "待处理")
// {
// workOrderBaseModel.F_WORKORDERNAME = "手工工单";
// return orderBLL.UpdateWorkOrderInfoModel(workOrderBaseModel);
// }
// else
// {
// workOrderBaseModel.F_WORKORDERNAME = "手工工单";
// return orderBLL.UpdateWorkOrderInfoModel(workOrderBaseModel);
// }
// }
// }
// catch (Exception ex) { }
// return bl;
//}
#endregion
}
}