using Aop.Api; using Aop.Api.Request; using Aop.Api.Response; //using CRM.Core.DTO; //using CRM.Core.DTO.Ord; //using CRM.Core.DTO.Res; using Newtonsoft.Json; using Ninject; using System; using System.Collections.Generic; using System.Data; using System.Data.SqlClient; using System.IO; using System.Linq; using System.Net; using System.Text; using System.Text.RegularExpressions; using System.Threading.Tasks; using System.Web; using System.Web.Mvc; using WX.CRM.BLL; using WX.CRM.BLL.Base; using WX.CRM.BLL.Soft; using WX.CRM.BLL.Util; using WX.CRM.BLL.Wx; using WX.CRM.Common; using WX.CRM.Common.BlowFish; using WX.CRM.Common.Layui; using WX.CRM.IBLL.Base; using WX.CRM.IBLL.Csvr; using WX.CRM.IBLL.Res; using WX.CRM.IBLL.Soft; using WX.CRM.IBLL.Util; using WX.CRM.IBLL.Ww; using WX.CRM.IBLL.Wx; using WX.CRM.Model.Entity; using WX.CRM.Model.Enum; using WX.CRM.Model.MAP; using WX.CRM.WebHelper; using WX.CRM.WebHelper.UserRight; namespace WX.CRM.WEB.Controllers.WeiXin { public class JZOrderController : BaseController { private IWX_SZZYORDER wx_SzzyOrder_BL; private IWX_SZZYPRODUCT wx_SzzyProduct_BL; private IWX_SZZYSUBPRODUCT wx_SzzySubProduct_BL; private IRES_CUSTOMERDETAIL res_CustomerDetail_BL; private IRES_CUSTOMER_Q res_Customer_Q_BL; private IRES_CUSTOMER res_Customer_BL; private ICACHE_Q _cacheQ; [Inject] private ISOFT_REGANDORDERLINK soft_RegAndOrderLink_BL { get; set; } [Inject] public CACHE_BL cache_BL { get; set; } [Inject] public IWX_COMMISSIONRULE wx_CommissionRule_BL { get; set; } [Inject] public IWX_TDORDER wx_TDorder_BL { get; set; } [Inject] public IWX_ORDEREXT wx_OrderExt_BL { get; set; } [Inject] public ISecurityHelper sHelper { get; set; } [Inject] public ISOFT_USER_Q soft_User_BL { get; set; } [Inject] public ISOFT_USER spftUser_BL { get; set; } [Inject] public IRES_CUSTOMERUSER_Q _customerUser_Q { get; set; } [Inject] public IRES_RESOURCEMOBILE_Q _res_resourcemobile_Q { get; set; } [Inject] public IWX_SZZYORDERREFUND _orderRefund { get; set; } [Inject] public IWX_SZZYORDERPAY _orderPay { get; set; } [Inject] public IWX_SZZYPRODUCTMODULE _module { get; set; } [Inject] public ICSVR_CALLRECORD CallRecord_BL { get; set; } [Inject] public ICSVR_HGRECORD_Q _Hgrecord_Q { get; set; } [Inject] public ICSVR_CALLRECORD_Q _CSVR_CALLRECORD_Q { get; set; } [Inject] public ICACHE_Q _CacheQ { get; set; } [Inject] public IBAS_PARAMETER_Q _BAS_PARAMETER_Q { get; set; } [Inject] public ICSVR_HGRECORD _Hgrecord { get; set; } [Inject] public ICSVR_CALLRECORD _CSVR_CALLRECORD_BL { get; set; } //[Inject] //public IWX_SZZYORDERDEPOSIT _orderDepoist { get; set; } [Inject] public IWX_SZZYSUBPRODUCT_GIFT _gift { get; set; } [Inject] public IWX_ORDERACTIVE _active { get; set; } [Inject] public ICSVR_BLACKNUMBER _blacknumeber { get; set; } [Inject] public ICSVR_BLACKNUMBER_Q _blacknumeberQ { get; set; } [Inject] public IWX_SZZYMIDPRODUCT _midProduct { get; set; } [Inject] public IBAS_MOBILEAREA_Q mobileareaQ { get; set; } [Inject] public IWX_FAST_USERNAME _wxfastusername { get; set; } //[Inject] //public IWX_SZZYORDER_HANDGIFT _wxszzyorderhandgift { get; set; } [Inject] public IWw_huser _wwhhuser { get; set; } [Inject] public IBAS_COMPANY_Q bas_company_bll { get; set; } [Inject] public IWX_BALANCE _balance { get; set; } public OperationLogHelper _operationHelper = new OperationLogHelper(); private ValidationErrors errors = new ValidationErrors(); public JZOrderController(ICACHE_Q cacheQ, IWw_huser wwhhuser, ISOFT_REGANDORDERLINK soft_RegAndOrderLink_BL, IWX_SZZYORDER wx_SzzyOrder_BL, IWX_SZZYPRODUCT wx_SzzyProduct_BL, IWX_SZZYSUBPRODUCT wx_SzzySubProduct_BL, IRES_CUSTOMERDETAIL res_CustomerDetail_BL, IRES_CUSTOMER_Q res_Customer_Q_BL, IRES_CUSTOMER res_Customer_BL) { this.soft_RegAndOrderLink_BL = soft_RegAndOrderLink_BL; this.wx_SzzyOrder_BL = wx_SzzyOrder_BL; this.wx_SzzyProduct_BL = wx_SzzyProduct_BL; this.wx_SzzySubProduct_BL = wx_SzzySubProduct_BL; this.res_CustomerDetail_BL = res_CustomerDetail_BL; this.res_Customer_Q_BL = res_Customer_Q_BL; this.res_Customer_BL = res_Customer_BL; this._wwhhuser = wwhhuser; this._cacheQ = cacheQ; } #region 我的订单 [AuthorizeRedirect(Roles = InitRights.CONST_我的订单)] public ActionResult Index() { //ToolBar ToolBar tool = new ToolBar(); string[] toolbtn = new ToolButtonView().ToolButtonRight(InitRights.我的订单, userRightId); tool.AllowButton(toolbtn); tool.AddOtherButton("Other1", "提交支付记录", "icon-add", "orderPay_Click", true); tool.AddOtherButton("Other2", "导出", "icon-export", "MyOrderExport_Click", true); tool.AddOtherButton("Other3", "设置工号", "icon-edit", "fp_Click", false); tool.AddOtherButton("Other4", "合同合并", "icon-edit", "HetongHebing_Click", true); ViewBag.ToolBar = tool; var isDZHF = _CacheQ.GetValue_Parameter("SYS_DZHF"); //table Pager pager = new Pager() { page = 1, rows = 20 }; string tableId = "tablist"; Table tab = new Table(tableId); tab.isCheckbox = true; tab.AddHiddenHeadCol("SZZYORDERID", "订单权限ID"); tab.AddHeadCol("RESID", "", "客户ID"); tab.AddHeadCol("DEPTCODE", "", "部门归属"); tab.AddHeadCol("CNAME", "", "客户"); tab.AddHeadCol("GNAME", "", "组别"); tab.AddHeadCol("INNERUSERID", "", "工号"); tab.AddHeadCol("SUBPRODUCTNAME", "", "产品"); tab.AddHeadCol("NEEDPAY", "", "下单金额"); //tab.AddHeadCol("FINALPAY", "", "实付金额"); tab.AddHeadCol("ARRIVALPAY", "", "到账金额"); tab.AddHeadCol("ARRIVALPAY", "", "到账时间"); tab.AddHeadCol("ORDERID", "", "订单ID"); tab.AddHeadCol("ORDERTYPE", "", "订单类型"); tab.AddHeadCol("CTIME", "", "下单时间"); tab.AddHeadCol("OTIME", "", "开通时间"); tab.AddHeadCol("OPENDAYS", "", "天数"); tab.AddHeadCol("GIFTDAYS", "", "赠送天数"); tab.AddHeadCol("FCTEXT", "", "订单分成"); tab.AddHeadCol("CUSTOMERUSERNAME", "", "微信/企微"); tab.AddHeadCol("CONTRACTCODE", "", "合同地址"); tab.AddHiddenHeadCol("ORDERSTATUS", "订单状态"); tab.AddHeadCol("ORDERSTATUSNAME", "", "订单状态"); tab.AddHeadCol("RISKCTRLSTATUS", "", "合同状态"); tab.AddHeadCol("PAYXX", "", "支付信息"); tab.AddTipHeadCol("RECORDTIME", "100px", "希望回访时间", "/image/icon/tip.png", "希望回访时间是客户希望接受回访的时间,AI外呼会 优先按照这个时间进行呼叫。当订单处于等待AI外呼 或者等待AI重拨的回访状态时,则可设置回访时间或 者重拨时间"); var statusTitle = "回访状态说明: "; statusTitle += " 1.AI外呼成功:订单已经AI外呼成功 "; statusTitle += " 2.人工回访成功:订单已经人工回访成功 "; statusTitle += " 3.电子回访成功:订单已经电子回访成功 "; tab.AddTipHeadCol("AiStatus", "100px", "回访状态", "/image/icon/tip.png", statusTitle); if (isDZHF == "1") tab.AddHeadCol("hflj", "", "回访链接"); tab.AddHeadRow(); ViewBag.gridTable = tab.GetHead() + Pagination.GetPage(pager, tableId, "5,10,15,20"); //ViewBag.productList = getProductList(); ViewBag.midproductList = GetMidProductList(); ViewBag.inneruserid = UserId; ViewBag.userGroupId = userGroupId; ViewBag.saleDeptId = saleDeptId; ViewBag.roleCodes = DataCacheHelper.GetCache().Get_RoleCodes(userRoleId); ViewBag.DeptCode = Utility.GetSettingOrNullByKey("DataClientCode"); var deptList = _CacheQ.GetList_SalesDepartMent().Where(p => p.CHANNELDEF != null); var selectList = new List(); foreach (var item in deptList) { selectList.Add(new SelectListItem() { Text = item.DEPTNAME, Value = item.SALEDEPTCODE }); } ViewBag.DeptList = selectList; return View(); } [HttpPost] [AuthorizeRedirect(Roles = InitRights.CONST_我的订单)] public JsonResult GetHtmlList(string columns, Pager pager, OrderQueryDto querydto, QueryUserComboDto usercomboDto) { var isDZHF = _CacheQ.GetValue_Parameter("SYS_DZHF"); //decimal saleDeptId = Request["saleDeptId"].GetDecimal(0); //var groupId = Request["groupId"]; //decimal userId = Request["userId"].GetDecimal(0); //if (string.IsNullOrEmpty(groupId) && userId <= 0) // userId = UserId; //List list = wx_TDorder_BL.GetList(ref pager, resId, contractCode, szzyOrderId, productId, subProductId, orderType, stime, etime, groupId, userId, orderStatus, ostime, oetime, null); string clientid = _CacheQ.GetValue_Parameter(WX.CRM.Model.Enum.Parameter.Sys_OrderClientIdKey); if (string.IsNullOrWhiteSpace(clientid)) { clientid = "UPWEBSITE"; } string url = _CacheQ.GetValue_Parameter(Parameter.UserCenter_RiaService_ContractSign);//合同地址 var deptList = _CacheQ.GetList_SalesDepartMent().Where(p => p.CHANNELDEF != null); List list = wx_SzzyOrder_BL.GetList(ref pager, querydto, usercomboDto); Table table = new Table(columns, true); table.isCheckbox = true; table.gridPager = pager; List aiOrderDtos = GetAIOrdderDto(list); foreach (var model in list) { var statusLink = ""; var aiDto = aiOrderDtos.FirstOrDefault(n => n.ORDERID == model.ORDERID); if (aiDto != null) { List showStatus = new List { (int)EnumAiCallState.AI外呼成功, (int)EnumAiCallState.人工回访成功, (int)EnumAiCallState.电子回访成功 }; if (showStatus.Contains(aiDto.ai_hgrecord_status.Value)) { statusLink = aiDto.ai_hgrecord_statusname; } if (querydto.aiCallType > 0 && aiDto.ai_hgrecord_status != querydto.aiCallType) { continue; } } table.AddHiddenCol(model.SZZYORDERID); var linkUrl = string.Format("{2}" , "客户详细" , "/Csvr/CustomerInfo/CustomerDetail?resid=" + model.RESID , model.RESID); table.AddCol(linkUrl); if (!string.IsNullOrEmpty(model.DEPTCODE)) { var dept = deptList.FirstOrDefault(p => p.SALEDEPTCODE == model.DEPTCODE); if (dept != null) { table.AddCol(dept.DEPTNAME); } else { table.AddCol("未知"); } } else { table.AddCol("未知"); } table.AddCol(model.CNAME); table.AddCol(InnerUserHelper.Instance.GetGroupName(InnerUserHelper.Instance.GetGroupId(model.INNERUSERID))); table.AddCol(InnerUserHelper.Instance.EidAndName(model.INNERUSERID)); table.AddCol(model.SUBPRODUCTNAME); table.AddCol(model.NEEDPAY); //table.AddCol(model.FINALPAY); table.AddCol(model.ARRIVALPAY); table.AddCol(model.ARRIVALTIME); table.AddCol(model.ORDERID); table.AddCol(getOrderTypeStr(model.ORDERTYPE.Value)); table.AddCol(model.CTIME); table.AddCol(model.OTIME); table.AddCol(model.OPENDAYS); table.AddCol(model.GIFTDAYS); table.AddCol(model.FCTEXT); if (!string.IsNullOrEmpty(model.CUSTOMERUSERNAME) || !string.IsNullOrEmpty(model.EXTERNAL_USERID)) { table.AddCol("已绑"); } else { table.AddCol("未绑"); } if (model.ISOPEN == 1) { table.AddCol(""); } else { var color = string.Empty; if (!string.IsNullOrEmpty(model.CONTRACTCODE)) { color = "color:green;"; if (model.RISKCTRLSTATUS == -1) { color = "color:orange"; } } if (model.RESID == "合计") { table.AddCol(""); } else { //=================== 合同Url测试 =============== //合同生成URL测试 WX_ORDEREXT extorder = wx_OrderExt_BL.GetModel(model.ORDERID); WX_SZZYSUBPRODUCT product = wx_SzzySubProduct_BL.GetModel(model.SUBPRODUCTID.Value); if (product != null) { var json2 = new { productName = model.SUBPRODUCTNAME, period = string.Format("{0}天", model.OPENDAYS), price = string.Format("{0}元", model.NEEDPAY.Value.ToString("#0.00")), userId = extorder.SOFTUSERNAME, productLevel = product.PRODUCTLEVEL, productInvestTime = product.PRODUCTINVESTTIME, productInvestType = product.PRODUCTINVESTTIME, issupplement = 1, orderId = model.SZZYORDERID.ToString(), htid = string.Format("DN{0}", model.SZZYORDERID.ToString()) }; string content = sHelper.encyptData(clientid, Utility.ConvertToJSON(json2)); string sign = sHelper.signData(clientid, content); var htUrl = url + string.Format("?content={0}&sign={1}&clientId={2}&protocolType=", HttpUtility.UrlEncode(content), HttpUtility.UrlEncode(sign), clientid); //============================================= table.AddCol(string.Format("获取地址", htUrl, "h" + model.ORDERID.ToString(), "h" + model.ORDERID.ToString())); } else { table.AddCol("未能找到产品信息!"); } } } //订单状态 table.AddHiddenCol(model.ORDERSTATUS); if (model.ORDERSTATUS == "190") { table.AddCol("color:blue", "", model.ORDERSTATUSNAME); } else if (model.ORDERSTATUS == "195") { table.AddCol("color:red", "", model.ORDERSTATUSNAME); } else if (model.ORDERSTATUS == "200") { table.AddCol("color:orange", "", model.ORDERSTATUSNAME); } else if (model.ORDERSTATUS == "220") { table.AddCol("color:green", "", model.ORDERSTATUSNAME); } else { table.AddCol(model.ORDERSTATUSNAME); } //合同状态 if (model.RISKCTRLSTATUS >= 1) { table.AddCol(string.Format("{1}", model.ORDERID, "已审核")); } else if (model.RISKCTRLSTATUS == -1) { table.AddCol(string.Format("{1}", model.ORDERID, "合规驳回")); } else if (model.RISKCTRLSTATUS == null) { table.AddCol("未签订"); } else { table.AddCol(string.Format("{1}", model.ORDERID, "未审核")); } if (model.RESID == "合计") { table.AddCol(""); table.AddCol(""); table.AddCol(""); } else { var link = string.Format("支付信息", model.ORDERID); table.AddCol(link); var setTimelink = ""; if (aiDto != null) { var aitime = (string.IsNullOrWhiteSpace(aiDto.ai_hgrecord_stime) && string.IsNullOrWhiteSpace(aiDto.ai_hgrecord_etime)) ? "不限制" : $"{aiDto.ai_hgrecord_stime}-{aiDto.ai_hgrecord_etime}"; setTimelink = string.Format("
{0}
", aitime); List recallStatus = new List { (int)EnumAiCallState.AI外呼失败未答完, (int)EnumAiCallState.AI外呼未接通, (int)EnumAiCallState.等待AI重拨, (int)EnumAiCallState.AI外呼失败挂断 }; if (aiDto.hasbtn == 1 && recallStatus.Contains(aiDto.ai_hgrecord_status.Value)) { setTimelink = string.Format("", aitime, model.ORDERID, aiDto.startTime, aiDto.endTime); } else if (aiDto.ai_hgrecord_status == (int)EnumAiCallState.尚未进行AI外呼 || aiDto.ai_hgrecord_status == (int)EnumAiCallState.等待AI外呼) { setTimelink = string.Format("", aitime, model.ORDERID, aiDto.startTime, aiDto.endTime); } } table.AddCol(setTimelink); table.AddCol(statusLink); } if (isDZHF == "1") { if (!string.IsNullOrEmpty(model.CONTRACTCODE)) { table.AddCol(string.Format(" 电子回访链接 ", model.ORDERID)); } else { table.AddCol(""); } } table.AddRow(); } var json = new { totalPages = pager.totalPages, totalRows = pager.totalRows, rowsList = table.GetRows() }; return Json(json, JsonRequestBehavior.AllowGet); } public JsonResult HebingHT(string orderIds) { try { string[] orderlist = orderIds.Split(','); string url = _CacheQ.GetValue_Parameter(Parameter.UserCenter_RiaService_ContractSignHB);//合同地址 string clientid = SecurityHelper.OrderClientIdKey; Dictionary dic = new Dictionary();//用来判断用户名是否相同 string szzyorderids = "";//订单集合 foreach (var item in orderlist) { if (string.IsNullOrEmpty(item)) continue; var orderid = Convert.ToDecimal(item); var model = wx_SzzyOrder_BL.Get(m => m.ORDERID == orderid);//获取订单信息 if (model == null) { errors.Add("找不到订单:【" + item + "】"); return JsonHandler.ManageMessageNoHead(errors, false); } if (model.OTIME.HasValue) { errors.Add("已开通的订单【" + item + "】,不能重新签合同!"); return JsonHandler.ManageMessageNoHead(errors, false); } if (model.RISKCTRLSTATUS >= 1) { errors.Add("合同已审核【" + item + "】,不能重新签合同!"); return JsonHandler.ManageMessageNoHead(errors, false); } WX_ORDEREXT extorder = wx_OrderExt_BL.GetModel(model.ORDERID); if (dic.Count() == 0) { dic.Add(extorder.SOFTUSERNAME, extorder.SOFTUSERNAME); } else if (!dic.ContainsKey(extorder.SOFTUSERNAME))//如果有不同的用户名,那需要提醒错误 { errors.Add("该合并客户不是同一个客户,请重新选择!"); return JsonHandler.ManageMessageNoHead(errors, false); } WX_SZZYSUBPRODUCT product = wx_SzzySubProduct_BL.GetModel(model.SUBPRODUCTID.Value); if (product != null) { szzyorderids += model.SZZYORDERID.ToString() + ","; } else { errors.Add("未能找到产品信息:【" + model.SUBPRODUCTID.Value + "】"); return JsonHandler.ManageMessageNoHead(errors, false); } } szzyorderids = szzyorderids.Substring(0, szzyorderids.Length - 1); string content = sHelper.encyptData(clientid, Utility.ConvertToJSON(new { sSzzyorderid = szzyorderids })); string sign = sHelper.signData(clientid, content); var htUrl = url + string.Format("?content={0}&sign={1}&clientId={2}&protocolType=", HttpUtility.UrlEncode(content), HttpUtility.UrlEncode(sign), clientid); var res = new JsonResult(); res.Data = new { type = 1, message = "合并成功", url = htUrl }; res.ContentType = "text/html"; res.JsonRequestBehavior = JsonRequestBehavior.AllowGet; return res; } catch (Exception e) { LogHelper.Error(e.ToString()); errors.Add("系统错误:" + e.ToString()); return JsonHandler.ManageMessage(errors, false); } } [AuthorizeToolBar(InitRights.CONST_我的订单, InitToolBar.CONST_Other2)] public FileResult MyOrderExport(string resId, string contractCode, string szzyOrderId, decimal productId, decimal subProductId, decimal orderType, string stime, string etime, string orderStatus, string ostime, string oetime) { var groupId = Request["groupId"]; decimal userId = Request["userId"].GetDecimal(0); if (string.IsNullOrEmpty(groupId) && userId <= 0) userId = UserId; string checkedFilds = PageRequest.GetQueryString("checkedFilds"); checkedFilds = checkedFilds.Replace("[]", ""); string checkedTitles = PageRequest.GetQueryString("checkedTitles"); Pager pager = new Pager() { page = 1, rows = int.MaxValue }; List list = wx_TDorder_BL.GetList(ref pager, resId, contractCode, szzyOrderId, productId, subProductId, orderType, stime, etime, groupId, userId, orderStatus, ostime, oetime, null); return File(ExcelHelper.ExportListModelToExcel(list, "我的订单", 10000, checkedFilds, checkedTitles, DataFormart), "application/ms-excel", PageRequest.GetDlownLoadName("我的订单.xls")); } public JsonResult GetResid(string resid) { try { //resid = resid.Trim();//去除空格 //if (string.IsNullOrEmpty(resid)) //{ // return Json(new { result = false, message = "客户ID不能为空!" }, JsonRequestBehavior.AllowGet); //} //var info = res_Customer_Q_BL.getResCustomerByResId(resid); //var lists = _customerUser_Q.GetListByCustomerId(info.CUSTOMERID); //string customername = ""; //var customerDetail = res_Customer_Q_BL.getResCustomerByResId(resid); ////List depoist = null; //decimal? lastPriceSum = 0; //if (customerDetail != null) //{ // //var xx = res_CustomerDetail_BL.Get(m => m.RESID == customerDetail.CUSTOMERID); // //if (xx != null) // // customername = xx.CNAME; // //string[] resids = res_Customer_Q_BL.GetAllResidByCustomerId(customerDetail.CUSTOMERID); // //depoist = _orderDepoist.GetList(p => resids.Contains(p.RESID) && p.AUDITSTATUS == 1 && p.ISUSE == 0).ToList();//获取此客户ID 的订金 // var ret = _orderDepoist.GetCoreDepositLastPay(new LastPriceReqDto() { resid = resid, channel = int.Parse(Utility.GetSettingOrNullByKey("Channel")) }); // //ViewBag.Ret = ret; // if (ret.result) // { // lastPriceSum = ret.retmsg.lastprice; // } //} //else //{ // return Json(new { result = false, message = "请输入正确的客户ID!" }, JsonRequestBehavior.AllowGet); //} ////Text = PhoneHelper.FormatPhoneUserName(item.USERNAME), Value = Utility.EncryptUrlEncode(item.USERNAME) //var usernames = lists.Select(m => new { Value = Utility.EncryptUrlEncode(m.USERNAME), Text = PhoneHelper.FormatPhoneUserName(m.USERNAME) }).ToArray(); ////没数据就注册 //if (!usernames.Any()) //{ // var roundUserNameStr = _BAS_PARAMETER_Q.GetModel_Patameter("ROUND_USERNAME_FIRST");//配置随机用户名前缀 // var userName = UserNameHelper.CreateRoundUserName(roundUserNameStr.PARAVALUE).ToLower();//随机用户名 // var ch = Utility.GetSettingByKey("Channel");//渠道 // var guid = Guid.NewGuid().ToString();//唯一Guid // var password = Path.GetRandomFileName();//随机密码 // var cNumber = _res_resourcemobile_Q.GetNumberByResId(resid);//用户电话 // var res = soft_RegAndOrderLink_BL.RegToUP(userName, cNumber, ch, "P", guid, password, 0); // if (res.ret == 0) // { // SOFT_USER user = new SOFT_USER(); // ValidationErrors error = new ValidationErrors(); // user.USERNAME = userName; // user.USERPASS = password; // user.REGCAMPAINID = Convert.ToDecimal(ch); // user.REGPLATFORM = "0";//待确认 // user.ISACTIVE = 1; // user.ACTIVETIME = DateTime.Now; // user.CTIME = DateTime.Now; // user.ACTIVERESID = resid; // user.COMPANYID = 0; // user.REGDATE = DateTime.Now; // user.RESID = resid; // spftUser_BL.Create(ref error, user); // var newArray = usernames.ToList(); // newArray.Add(new { Value = Utility.EncryptUrlEncode(userName), Text = PhoneHelper.FormatPhoneUserName(userName) }); // usernames = newArray.ToArray(); // } // else if (res.ret == -1212)//res.msg == "phone num is registered" // { //已经注册过 // var url = _cacheQ.GetValue_Parameter(Parameter.Core_ZxdService_GetOtherUser); // var theModel = new Soft_User_GetCheckDTO() { companyCode = companyCode, eid = Convert.ToInt32(Eid), resid = resid, softusername = "" }; // string json = Newtonsoft.Json.JsonConvert.SerializeObject(theModel); // json = sHelper.createSignEncodingStr(json, SecurityHelper.OrderClientIdKey);//数据参数加密 // string retmsg = Utility.PostData(url + "?" + json, Encoding.UTF8);//实现中心点先入库 // retmsg = sHelper.decyptData(SecurityHelper.OrderClientIdKey, retmsg); // retMsgNew> result = Newtonsoft.Json.JsonConvert.DeserializeObject>>(retmsg); // if (result.result) // { // foreach (var activeModel in result.data) // { // var _regUser = new GET_REGUSER(); // //bl.RegUser(item.mobile,); // _regUser.RegUser(activeModel.mobile, activeModel.regcampainid.ToString(), "", activeModel.username, activeModel.regdate, 0, activeModel.mobile, platform: activeModel.reglatform); // var newArray = usernames.ToList(); // newArray.Add(new { Value = Utility.EncryptUrlEncode(activeModel.username), Text = PhoneHelper.FormatPhoneUserName(activeModel.username) }); // usernames = newArray.ToArray(); // } // } // else // { // return Json(new { result = false, message = "注册失败:" + result.retmsg }, JsonRequestBehavior.AllowGet); // } // } // else // { // return Json(new { result = false, message = "注册失败:" + res.msg }, JsonRequestBehavior.AllowGet); // } //} //return Json(new { result = true, data = usernames, customername, lastPriceSum, message = "查找成功!" }, JsonRequestBehavior.AllowGet); return Json(new { result = false, message = string.Empty }, JsonRequestBehavior.AllowGet); } catch (Exception ex) { LogHelper.Error(ex.Message); return Json(new { result = false, message = ex.Message }, JsonRequestBehavior.AllowGet); } } /// /// 选择员工数据源 /// /// /// public JsonResult SelectHhuser(string inStr, int? len) { try { //获取 var allUserInfo = cache_BL.GetUserNameAndIdList(); //匹配 var data = allUserInfo.Where(m => m["eid"].ToString().Contains(inStr) || m["uname"].ToString().Contains(inStr) || (m["eid"].ToString() + "(" + m["uname"].ToString() + ")").Contains(inStr) ).OrderBy(m => m["eid"]); //截取 if (len == null || len <= 0) len = 5; else if (len > data.Count()) len = data.Count(); //返回 return Json(new { result = true, data = data.Take(len.Value) }, JsonRequestBehavior.AllowGet); } catch (Exception ex) { return Json(new { result = false, msg = ex.Message }, JsonRequestBehavior.AllowGet); } } #endregion 我的订单 [AuthorizeRedirect(Roles = InitRights.CONST_我的订单)] public ActionResult PayInfo(decimal? orderId) { if (!orderId.HasValue) { return View(new SzzyWXPayUrlResult()); } var orderModel = wx_SzzyOrder_BL.Get(m => m.ORDERID == orderId); if (orderModel == null) { return View(new SzzyWXPayUrlResult()); } var wxPayUrlResult = new SzzyWXPayUrlResult(); IAopClient client = new DefaultAopClient(AliPayConfig.gatewayUrl, AliPayConfig.app_id(), AliPayConfig.private_key(), "json", "1.0", AliPayConfig.sign_type); AlipayTradePrecreateRequest request = new AlipayTradePrecreateRequest(); request.SetNotifyUrl(AliPayConfig.notify_url); request.BizContent = "{" + "\"out_trade_no\":\"2010111222233\"," + "\"total_amount\":0.01," + "\"subject\":\"测试\"," + "\"enable_pay_channels\":\"balance,bankPay,debitCardExpress\"" + " }"; AlipayTradePrecreateResponse response = client.Execute(request); wxPayUrlResult.code = response.Code; wxPayUrlResult.msg = response.Msg; wxPayUrlResult.url = response.QrCode; return View(wxPayUrlResult); } #region 客户资源页面添加订单 [HttpGet] [AuthorizeToolBar(InitRights.CONST_我的订单, InitToolBar.CONST_Add)] public ActionResult AddByRes(string CustomerId) { bool isfujian = GetIsFuJina(); ViewBag.ShowFuJian = isfujian; var model = new WX_SZZYORDER_Extend(); List lists = new List(); try { if (!string.IsNullOrEmpty(CustomerId)) { lists = _customerUser_Q.GetListByCustomerId(CustomerId); } if (!string.IsNullOrWhiteSpace(CustomerId)) { var customerDetail = res_CustomerDetail_BL.Get(m => m.RESID == CustomerId); if (customerDetail != null) { model.Name = customerDetail.CNAME; } } } catch (Exception ex) { LogHelper.Error(ex.Message); } var UserNameItems = lists.Select(item => new SelectListItem() { Text = PhoneHelper.FormatPhoneUserName(item.USERNAME), Value = Utility.EncryptUrlEncode(item.USERNAME) }).ToList(); ViewBag.CustomerId = CustomerId; ViewBag.UserNameItems = UserNameItems; //ViewBag.productList = getProductList(); ViewBag.midproductList = GetMidProductList(); ViewBag.roleCodes = DataCacheHelper.GetCache().Get_RoleCodes(userRoleId); ViewBag.DeptCode = Utility.GetSettingOrNullByKey("DataClientCode"); ViewBag.WwMessage_Url = _CacheQ.GetValue_Parameter("WwMessage_Url"); ViewBag.companycode = companyCode; var deptList = _cacheQ.GetList_SalesDepartMent().Where(p => p.CHANNELDEF != null); var selectList = new List(); foreach (var item in deptList) { selectList.Add(new SelectListItem() { Text = item.DEPTNAME, Value = item.SALEDEPTCODE }); } ViewBag.DeptList = selectList; return View(model); } //[HttpPost] //[AuthorizeToolBar(InitRights.CONST_我的订单, InitToolBar.CONST_Add)] //public JsonResult AddByRes(WX_SZZYORDER_Extend model, decimal productId, decimal subProductId, string resid, decimal? needPay, string source, string CUSTOMERUSERNAME, decimal orderType, string UPGRADEORDERIDS, decimal? TOTALUPGRADEVALUE, int isTest, int? giftdays, int? giftdays2, string userid, string corpid, decimal? discount, decimal? customprisce) //{ // if (!ModelState.IsValid) // { // return JsonHandler.ValidateFailMessage(); // } // //首华补单订单类型 // if (orderType == 5) // { // orderType = 4; // } // if (subProductId <= 0) // { // errors.Add("请选择产品分类"); // return JsonHandler.UpdateMessage(errors, false); // } // if (!needPay.HasValue || needPay.Value < 0) // { // errors.Add("请填写应付金额"); // return JsonHandler.UpdateMessage(errors, false); // } // model.SoftUserName = Utility.DecryptUrlDecode(model.SoftUserName); // var softUser = soft_User_BL.GetUser_userName(model.SoftUserName); // if (softUser == null) // { // errors.Add("用户名不存在!"); // return JsonHandler.UpdateMessage(errors, false); // } // var startTime = model.ai_hgrecord_stime; // var endTime = model.ai_hgrecord_etime; // var checkMsg = CheckSetTime(startTime, endTime); // if (!string.IsNullOrWhiteSpace(checkMsg)) // { // errors.Add(checkMsg); // return JsonHandler.UpdateMessage(errors, false); // } // var deptCode = Utility.GetSettingOrNullByKey("DataClientCode"); // var subproduct = wx_SzzySubProduct_BL.Get(m => m.SUBPRODUCTID == subProductId); // productId = subproduct.PRODUCTID;//拿产品表里面的系列ID,不要根据页面传进来的 // if (orderType == 3) // { // //if (string.IsNullOrWhiteSpace(UPGRADEORDERIDS) || !TOTALUPGRADEVALUE.HasValue || TOTALUPGRADEVALUE <= 0) // //{ // // errors.Add("升级订单,请输入源订单号和源订单剩余金额!"); // // return JsonHandler.UpdateMessage(errors, false); // //} // if (!string.IsNullOrWhiteSpace(UPGRADEORDERIDS)) // { // ////只有设置的投顾产品才能进行补差价升级,其余的产品只能重新购买 // //if (subproduct.CANUPGRADE == 0) // //{ // // errors.Add("该产品不能补差价升级,请直接全款购买!"); // // return JsonHandler.UpdateMessage(errors, false); // //} // if (!ValidateHelper.IsNumber(UPGRADEORDERIDS.Replace(",", ""))) // { // errors.Add("输入源订单号格式有误,只能输入数字订单号!"); // return JsonHandler.UpdateMessage(errors, false); // } // var upgradeOrderList = UPGRADEORDERIDS.Split(',').Select(m => Convert.ToDecimal(m)).ToList(); // foreach (var orderid in upgradeOrderList) // { // var upgradeModel = wx_SzzyOrder_BL.Get(m => m.ORDERID == orderid); // if (upgradeModel == null) // { // errors.Add(string.Format("升级订单,原CRM订单:{0}不存在,请确认后再输入!", orderid.ToString())); // return JsonHandler.UpdateMessage(errors, false); // } // var upgradeSubProduct = wx_SzzySubProduct_BL.Get(m => m.SUBPRODUCTID == upgradeModel.SUBPRODUCTID); // //如果不是允许的升级产品,那么必须是同一类型的产品之间才能升级 // if (subproduct.CANUPGRADE == 0 && subproduct.CATEGORY < upgradeSubProduct.CATEGORY) // { // errors.Add(string.Format("只有同一类型的产品才能升级,该产品请直接全款购买!", orderid.ToString())); // return JsonHandler.UpdateMessage(errors, false); // } // //北一放开了,能够进行 擒龙版升级至至尊版的订单升级 // //if (deptCode == "QBJZ" && subproduct.MIDPRODUCTID == 100800201) // //{ // // if (upgradeSubProduct.MIDPRODUCTID != 100800201) // // { // // errors.Add(string.Format("订单{0}不是至尊版订单,无法升级!", orderid.ToString())); // // return JsonHandler.UpdateMessage(errors, false); // // } // //} // } // } // model.wx_SzzyOrder.UPGRADEORDERIDS = UPGRADEORDERIDS; // } // else if (orderType == 4) // { // //首华换课订单 // if (string.IsNullOrWhiteSpace(UPGRADEORDERIDS)) // { // errors.Add("源订单号不能为空!"); // return JsonHandler.UpdateMessage(errors, false); // } // if (!ValidateHelper.IsNumber(UPGRADEORDERIDS.Replace(",", ""))) // { // errors.Add("输入源订单号格式有误,只能输入数字订单号!"); // return JsonHandler.UpdateMessage(errors, false); // } // var upgradeOrderList = UPGRADEORDERIDS.Split(',').Select(m => Convert.ToDecimal(m)).ToList(); // foreach (var orderid in upgradeOrderList) // { // var upgradeModel = wx_SzzyOrder_BL.Get(m => m.ORDERID == orderid); // if (upgradeModel == null) // { // errors.Add(string.Format("升级订单,原CRM订单:{0}不存在,请确认后再输入!", orderid.ToString())); // return JsonHandler.UpdateMessage(errors, false); // } // //if (upgradeModel.ORDERTYPE == 4) // //{ // // errors.Add(string.Format("订单:{0}已经被换过了,不能再更换!", orderid.ToString())); // // return JsonHandler.UpdateMessage(errors, false); // //} // //if (upgradeModel.ORDERSTATUS == "205") // //{ // // errors.Add(string.Format("订单:{0}已经抵扣过了,不能再次抵扣!", orderid.ToString())); // // return JsonHandler.UpdateMessage(errors, false); // //} // var upgradeSubProduct = wx_SzzySubProduct_BL.Get(m => m.SUBPRODUCTID == upgradeModel.SUBPRODUCTID); // //如果不是允许的升级产品,那么必须是同一类型的产品之间才能升级 // if (subproduct.CANUPGRADE == 0 && subproduct.CATEGORY < upgradeSubProduct.CATEGORY) // { // errors.Add(string.Format("只有同一类型的产品才能升级,该产品请直接全款购买!", orderid.ToString())); // return JsonHandler.UpdateMessage(errors, false); // } // } // model.wx_SzzyOrder.UPGRADEORDERIDS = UPGRADEORDERIDS; // } // else // { // model.wx_SzzyOrder.UPGRADEORDERIDS = ""; // } // if (string.IsNullOrWhiteSpace(source)) // { // errors.Add("请选择客户来源"); // return JsonHandler.UpdateMessage(errors, false); // } // if (source == "1") // { // bool isfujian = GetIsFuJina(); // if (isfujian == false)//没有附件上传权限 // { // if (string.IsNullOrWhiteSpace(model.wx_SzzyOrder.CUSTOMERUSERNAME) && string.IsNullOrWhiteSpace(model.wx_SzzyOrder.WEWORK_REMOTEID) && string.IsNullOrWhiteSpace(model.wx_SzzyOrder.EXTERNAL_USERID)) // { // errors.Add("微信或者企业微信最少选择一个!"); // return JsonHandler.UpdateMessage(errors, false); // } // } // else//有附件上传权限 // { // HttpFileCollectionBase files = Request.Files; // HttpPostedFileBase file = files["FileMobile"]; // if (string.IsNullOrWhiteSpace(model.wx_SzzyOrder.CUSTOMERUSERNAME) && string.IsNullOrWhiteSpace(model.wx_SzzyOrder.WEWORK_REMOTEID) && string.IsNullOrWhiteSpace(model.wx_SzzyOrder.EXTERNAL_USERID) && (file == null || file.ContentLength == 0)) // { // errors.Add("微信、企业微信、附件最少选择一个!"); // return JsonHandler.UpdateMessage(errors, false); // } // } // } // if (!model.OpenDays.HasValue || model.OpenDays.Value < 1) // { // errors.Add("开通天数必须大于0"); // return JsonHandler.UpdateMessage(errors, false); // } // if (model.BookNum <= 0) // { // errors.Add("开通套数必须大于0"); // return JsonHandler.UpdateMessage(errors, false); // } // if (res_Customer_Q_BL.getResCustomerByResId(resid) == null) // { // errors.Add("客户ID不存在,请重新输入"); // return JsonHandler.UpdateMessage(errors, false); // } // //北一至尊版不需要升级单(已改,北京一部至尊版也是需要订单的) // //if (!(deptCode == "QBJZ" && subproduct.MIDPRODUCTID == 100800201)) // //{ // //if (orderType != 4 && deptCode != "SHZZ") // //{ // // var hasOldOrderModel = wx_SzzyOrder_BL.Get(m => m.RESID == resid && m.ORDERSTATUS == "220"); // // //当该资源名下有已经开通的订单,那么就把新订单设置为升级订单类型 // // if (hasOldOrderModel != null) // // { // // orderType = 3; // // } // //} // //} // model.wx_SzzyOrder.ORDERID = new SEQUENCES_BL().Seq_base_get(); // model.wx_SzzyOrder.FUJIAN = SaveFuJianFile(); // model.wx_SzzyOrder.OPERATETIME = DateTime.Now; // model.wx_SzzyOrder.INNERUSERID = UserId; // model.wx_SzzyOrder.EID = Eid; // model.wx_SzzyOrder.RESID = resid; // model.wx_SzzyOrder.ISFINANCEPAY = 0; // model.wx_SzzyOrder.OPENORDER = 0; // model.wx_SzzyOrder.ISOPEN = 0; // model.wx_SzzyOrder.ORDERTYPE = orderType; // model.wx_SzzyOrder.ORDERSTATUS = "180"; // model.wx_SzzyOrder.ORDERSTATUSNAME = "新订单"; // var product = wx_SzzyProduct_BL.Get(m => m.PRODUCTID == productId); // model.wx_SzzyOrder.PRODUCTNAME = product.PRODUCTNAME; // model.wx_SzzyOrder.NEEDPAY = needPay; // model.wx_SzzyOrder.RETURNNEEDPAY = subproduct.PRICE; // model.wx_SzzyOrder.SOURCE = source; // model.wx_SzzyOrder.PRODUCTID = productId; // model.wx_SzzyOrder.SUBPRODUCTID = subProductId; // model.wx_SzzyOrder.CTIME = DateTime.Now; // model.wx_SzzyOrder.RET = discount; // model.wx_SzzyOrder.RETP = customprisce; // model.wx_SzzyOrder.SUBPRODUCTNAME = subproduct.SUBPRODUCTNAME; // model.wx_SzzyOrder.OPENDAYS = model.OpenDays; // model.wx_SzzyOrder.CNAME = model.Name; // model.wx_SzzyOrder.ESTIMATEOTIME = model.ESTIMATEOTIME; // if (TOTALUPGRADEVALUE.HasValue) // { // model.wx_SzzyOrder.TOTALUPGRADEVALUE = TOTALUPGRADEVALUE; // } // model.wx_SzzyOrder.REQUESTSTATUS = 1; // model.wx_SzzyOrder.ISTEST = isTest; // if (subproduct.ISGIFT == 1 && giftdays.HasValue) // { // model.wx_SzzyOrder.GIFTDAYS = giftdays; // } // if (subproduct.ISGIFT == 1 && giftdays2.HasValue) // { // model.wx_SzzyOrder.GIFTDAYS2 = giftdays2; // } // //----先调用中心点接口,统一分配订单号 // string url = cache_BL.GetValue_Parameter(Parameter.Core_ZxdService_CreateOrder);//中心点创建订单 // var theModel = new ordermodel // { // cname = model.wx_SzzyOrder.CNAME, // mobile = _res_resourcemobile_Q.GetNumberByResId(resid),//获取手机号码 // needpay = needPay, // opendays = model.OpenDays, // ordertype = model.wx_SzzyOrder.ORDERTYPE, // productId = productId, // productname = model.wx_SzzyOrder.PRODUCTNAME, // remark = model.wx_SzzyOrder.REMARK, // saledeptid = model.wx_SzzyOrder.SALEDEPTID, // source = source, // softusername = model.SoftUserName, // bigproductcode = product.PRODUCTCODE,//大类代码 // productcode = subproduct.PRODUCTCODE,//小类代码 // subProductId = model.wx_SzzyOrder.SUBPRODUCTID.Value, // subproductname = model.wx_SzzyOrder.SUBPRODUCTNAME, // teamserve = model.wx_SzzyOrder.TEAMSERVE, // userid = model.wx_SzzyOrder.INNERUSERID.Value, // count = model.BookNum,//产品数 // productType = Convert.ToInt32(subproduct.PRODUCTTYPE),//产品分类 // companycode = deptCode, // upgradeorderids = model.wx_SzzyOrder.UPGRADEORDERIDS, // totalupgradevalue = model.wx_SzzyOrder.TOTALUPGRADEVALUE, // istest = isTest, // giftdays = model.wx_SzzyOrder.GIFTDAYS, // giftdays2 = model.wx_SzzyOrder.GIFTDAYS2, // external_userid = model.wx_SzzyOrder.EXTERNAL_USERID, // wework_remoteid = model.wx_SzzyOrder.WEWORK_REMOTEID, // customerusername = model.wx_SzzyOrder.CUSTOMERUSERNAME, // corpid = corpid, // jobuserid = userid, // fujian = model.wx_SzzyOrder.FUJIAN, // discount = model.wx_SzzyOrder.RET, // customprisce = model.wx_SzzyOrder.RETP, // estimateotime = model.ESTIMATEOTIME, // ai_hgrecord_etime = model.ai_hgrecord_etime, // ai_hgrecord_stime = model.ai_hgrecord_stime, // eid = model.wx_SzzyOrder.EID // }; // //var sysChannel = cache_BL.GetValue_Parameter("Sys_Channel"); // //if (!string.IsNullOrEmpty(sysChannel)) // //{ // // decimal curChannel = 0; // // var channelArr = sysChannel.Split('|'); // // foreach (var arr in channelArr) // // { // // var chs = arr.Split(','); // // var minChannel = int.Parse(chs[0]); // // var maxChannel = int.Parse(chs[1]); // // if (softUser.REGCAMPAINID.Value >= minChannel && softUser.REGCAMPAINID.Value <= maxChannel) // // { // // curChannel = softUser.REGCAMPAINID.Value; // // } // // } // // if (curChannel <= 0) // // { // // var ch = Utility.GetSettingOrNullByKey("Channel"); // // if (string.IsNullOrEmpty(ch)) // // { // // errors.Add("渠道错误!"); // // return JsonHandler.UpdateMessage(errors, false); // // } // // curChannel = decimal.Parse(ch); // // } // // theModel.channel = curChannel; // //} // //else // //{ // // theModel.channel = softUser.REGCAMPAINID; // //} // var groups = _CacheQ.GetGroupList(); // var ug = _CacheQ.GetList_InnerUserGroup(); // var depment = _CacheQ.GetList_SalesDepartMent(); // //if (int.TryParse(model.selectEId, out int eid)) // //{ // // //指定下单人 // // var userId = InnerUserHelper.Instance.GetUserIdByEid(eid); // // model.wx_SzzyOrder.INNERUSERID = Convert.ToInt32(userId); // // //根据工号从部门中读取渠道 // // //var uginfo = ug.Find(p => p.INNERUSERID == userId); // // //if (uginfo != null) // // //{ // // // var group = groups.Find(p => p.GID == uginfo.GID); // // // if (group != null) // // // { // // // var dep = depment.Find(p => p.SALEDEPTID == group.SALEDEPTID); // // // if (dep != null) // // // { // // // if (dep.CHANNELDEF.HasValue) // // // theModel.channel = dep.CHANNELDEF; // // // } // // // } // // //} // //} // if (!string.IsNullOrEmpty(model.deptCode)) // { // var dep = depment.Find(p => p.SALEDEPTCODE == model.deptCode); // if (dep != null) // { // if (dep.CHANNELDEF.HasValue) // theModel.channel = dep.CHANNELDEF; // } // model.wx_SzzyOrder.DEPTCODE = model.deptCode; // theModel.deptcode = model.deptCode; // } // else // { // var dep = depment.FirstOrDefault(); // if (dep != null) // { // model.wx_SzzyOrder.DEPTCODE = model.deptCode; // theModel.deptcode = model.deptCode; // } // } // if (!theModel.channel.HasValue) // { // //如果找不到值,从配置中读取 // theModel.channel = decimal.Parse(Utility.GetSettingOrNullByKey("Channel")); // } // LogHelper.Info("Model2:" + model.ToJson()); // string json = Utility.ConvertToJSON(theModel); // json = sHelper.createSignEncodingStr(json, SecurityHelper.OrderClientIdKey);//数据参数加密 // string retmsg = Utility.PostData(url + "?" + json, Encoding.UTF8);//实现中心点先入库 // retmsg = sHelper.decyptData(SecurityHelper.OrderClientIdKey, retmsg); // CreateOrderRsp retmessage = JsonHelper.JsonDivertToObj(retmsg);//返回信息 // if (retmessage.retCode == (int)NodeJsOrderEnum.调用成功)//成功 // { // model.wx_SzzyOrder.SZZYORDERID = Convert.ToDecimal(retmessage.orderId); // model.wx_SzzyOrder.ORDERID = Convert.ToDecimal(retmessage.selfOirderId); // var result = wx_SzzyOrder_BL.Add(model.wx_SzzyOrder) > 0; // //本地订单库写入成功,然后调用上证综研订单接口 // if (result) // { // if (!string.IsNullOrWhiteSpace(model.wx_SzzyOrder.CUSTOMERUSERNAME)) // { // wx_SzzyOrder_BL.UpdateResIdByWxUserName(resid, model.wx_SzzyOrder.CUSTOMERUSERNAME); // _wxfastusername.CreateFast_UserName(model.wx_SzzyOrder.ORDERID, model.wx_SzzyOrder.CUSTOMERUSERNAME);//设定指令,让手机端优先上传订单文件 // } // if (!string.IsNullOrEmpty(model.wx_SzzyOrder.WEWORK_REMOTEID)) // { // wx_SzzyOrder_BL.UpdateResIdByQwUserName(resid, model.wx_SzzyOrder.WEWORK_REMOTEID); // //wx_SzzyOrder_BL.Sys_UpdateOrderExtentid(model.wx_SzzyOrder.ORDERID);//修改外部联系人Id // } // if (!string.IsNullOrEmpty(model.wx_SzzyOrder.EXTERNAL_USERID)) // { // wx_SzzyOrder_BL.UpdateResIdByWwUserName(resid, model.wx_SzzyOrder.EXTERNAL_USERID); // wx_SzzyOrder_BL.UpdateOrInsertOrderExtuserId(new WW_SZZYORDER_EXTUSERID() { ORDERID = model.wx_SzzyOrder.ORDERID, CORPID = corpid, EXTUSERID = model.wx_SzzyOrder.EXTERNAL_USERID, USERID = userid }); // } // var orderExt = new WX_ORDEREXT // { // ORDERID = model.wx_SzzyOrder.ORDERID, // PAYNO = model.PayNo, // ISPAYED = 0, // OPENDAYS = model.OpenDays, // NAME = model.Name, // SOFTUSERNAME = model.SoftUserName, // PAYTYPE = model.PayType, // BOOKNUM = model.BookNum, // CHANNEL = softUser.REGCAMPAINID.ToString() // }; // wx_OrderExt_BL.Add(orderExt); // } // return JsonHandler.ManageMessage(errors.Error, result, model.wx_SzzyOrder.ORDERID.ToString()); // } // else // { // return JsonHandler.ManageMessage(string.IsNullOrEmpty(retmessage.retMsg) ? Utility.GetCheckEnumNameByValue(retmessage.retCode) : retmessage.retMsg, false); // } // //return JsonHandler.ManageMessage(errors.Error, true); //} #endregion 客户资源页面添加订单 #region 订单来源统计 [AuthorizeRedirect(Roles = InitRights.CONST_订单来源统计)] public ActionResult CountOrderBySource() { //ToolBar ToolBar tool = new ToolBar(); string[] toolbtn = new ToolButtonView().ToolButtonRight(InitRights.订单来源统计, userRightId); tool.AllowButton(toolbtn); ViewBag.ToolBar = tool; string tableId = "tablist"; Table tab = new Table(tableId); tab.AddHeadCol("SOURCE", "", "来源"); tab.AddHeadCol("COUNTNUM", "", "开通单数"); tab.AddHeadCol("COUNTNUM", "", "成交金额(元)"); tab.AddHeadRow(); ViewBag.gridTable = tab.GetHead(); return View(); } [AuthorizeRedirect(Roles = InitRights.CONST_订单来源统计)] public JsonResult GetCountOrderBySourceHtml(string stime, string etime, string columns) { DataSet ds = wx_SzzyOrder_BL.CountSzzyOrderBySource(stime, etime); DataTable dt = new DataTable(); if (ds != null && ds.Tables[0].Rows.Count > 0) { dt = ds.Tables[0]; } Table table = new Table(columns, true); for (int i = 0; i < dt.Rows.Count; i++) { var model = dt.Rows[i]; table.AddCol(Utility.getSourceText(model["source"].ToString())); table.AddCol(model["countnum"]); table.AddCol(model["countmoney"]); table.AddRow(); } var json = new { rowsList = table.GetRows() }; return Json(json, JsonRequestBehavior.AllowGet); } #endregion 订单来源统计 #region 编辑 private bool GetIsFuJina() { bool isfujian = false; if (userRoleCodes.IndexOf("[DDFJSC]") > -1) isfujian = true; return isfujian; } public string SaveFuJianFile() { string vPath = System.Configuration.ConfigurationManager.AppSettings["fujianfile"]; HttpFileCollectionBase files = Request.Files; HttpPostedFileBase file = files["FileMobile"]; if (file == null || file.ContentLength == 0) return null; var houzui = file.FileName.Substring(file.FileName.LastIndexOf(".")); string filename = DateTime.Now.ToString("yyyyMMddHHmmssffff") + houzui; if (!System.IO.Directory.Exists(vPath)) { System.IO.Directory.CreateDirectory(vPath); } string newpath = vPath + filename; file.SaveAs(newpath); return filename; } [HttpGet] public ActionResult ShowFuJian(string fujian) { string vPath = System.Configuration.ConfigurationManager.AppSettings["fujianfile"]; string newpath = vPath + fujian; return File(newpath, "application/octet-stream", fujian); } [HttpGet] [AuthorizeToolBar(InitRights.CONST_我的订单, InitToolBar.CONST_Edit)] public ActionResult Edit(string orderId) { bool isfujian = GetIsFuJina(); ViewBag.ShowFuJian = isfujian; var oId = Convert.ToDecimal(orderId); var model = wx_SzzyOrder_BL.Get(m => m.ORDERID == oId); ViewBag.productList = getProductList(); ViewBag.WwMessage_Url = _CacheQ.GetValue_Parameter("WwMessage_Url"); ViewBag.companycode = companyCode; WW_SZZYORDER_EXTUSERID extuserid = wx_SzzyOrder_BL.GetExtUserIdByOrderId(oId); if (extuserid == null) { ViewBag.userid = ""; ViewBag.corpid = ""; } else { ViewBag.userid = extuserid.USERID; ViewBag.corpid = extuserid.CORPID; } return View(model); } [HttpPost] [AuthorizeToolBar(InitRights.CONST_我的订单, InitToolBar.CONST_Edit)] public JsonResult Edit(WX_SZZYORDER model, decimal? productId, decimal? subProductId, string userid, string corpid) { //if (!ModelState.IsValid) //{ // return JsonHandler.ValidateFailMessage(); //} //var modifyModel = wx_SzzyOrder_BL.Get(m => m.ORDERID == model.ORDERID); //if (modifyModel == null) //{ // errors.Add("更新对象不能为空"); // return JsonHandler.UpdateMessage(errors, false); //} //string oldsource = modifyModel.SOURCE; ////string oldcustmeiusername = modifyModel.CUSTOMERUSERNAME; //var old_WeWork_RemoteId = modifyModel.WEWORK_REMOTEID; ////if (modifyModel.ORDERSTATUS != "180") ////{ //// errors.Add("只有未开通的订单才能修改"); //// return JsonHandler.UpdateMessage(errors, false); ////} ////if (subProductId <= 0 || productId <= 0) ////{ //// errors.Add("请选择产品分类"); //// return JsonHandler.UpdateMessage(errors, false); ////} ////if (!model.NEEDPAY.HasValue || model.NEEDPAY.Value < 0) ////{ //// errors.Add("请填写应付金额"); //// return JsonHandler.UpdateMessage(errors, false); ////} ////if (model.ORDERTYPE == 3) ////{ //// if (string.IsNullOrWhiteSpace(model.UPGRADEORDERIDS) || !model.TOTALUPGRADEVALUE.HasValue || model.TOTALUPGRADEVALUE <= 0) //// { //// errors.Add("升级订单,请输入源订单号和源订单剩余金额!"); //// return JsonHandler.UpdateMessage(errors, false); //// } //// if (!ValidateHelper.IsNumber(model.UPGRADEORDERIDS.Replace(",", ""))) //// { //// errors.Add("输入源订单号格式有误,只能输入数字订单号!"); //// return JsonHandler.UpdateMessage(errors, false); //// } //// var upgradeOrderList = model.UPGRADEORDERIDS.Split(',').Select(m => Convert.ToDecimal(m)).ToList(); //// foreach (var orderid in upgradeOrderList) //// { //// if (wx_SzzyOrder_BL.Get(m => m.ORDERID == orderid) == null) //// { //// errors.Add(string.Format("升级订单,原CRM订单:{0}不存在,请确认后再输入!", orderid.ToString())); //// return JsonHandler.UpdateMessage(errors, false); //// } //// } ////} //if (string.IsNullOrWhiteSpace(model.REMARK)) //{ // errors.Add("修改备注不能为空"); // return JsonHandler.UpdateMessage(errors, false); //} //if (string.IsNullOrWhiteSpace(model.SOURCE)) //{ // errors.Add("请选择客户来源"); // return JsonHandler.UpdateMessage(errors, false); //} //if (model.SOURCE == "1") //{ // bool isfujian = GetIsFuJina(); // if (isfujian == false) // { // if (string.IsNullOrEmpty(model.CUSTOMERUSERNAME) && string.IsNullOrEmpty(model.WEWORK_REMOTEID) && string.IsNullOrEmpty(model.EXTERNAL_USERID)) // { // errors.Add("微信或者企业微信最少选择一个!"); // return JsonHandler.UpdateMessage(errors, false); // } // else // { // HttpFileCollectionBase files = Request.Files; // HttpPostedFileBase file = files["FileMobile"]; // if (string.IsNullOrEmpty(model.EXTERNAL_USERID) && string.IsNullOrEmpty(model.CUSTOMERUSERNAME) && (string.IsNullOrEmpty(model.FUJIAN) && (file == null || file.ContentLength == 0))) // { // errors.Add("企业微信和微信至少选择一个!"); // return JsonHandler.UpdateMessage(errors, false); // } // } // } //} //string fujian = SaveFuJianFile();//如果有附件,就进行保存 //modifyModel.REMARK = model.REMARK; ////modifyModel.PRODUCTID = productId; ////modifyModel.SUBPRODUCTID = subProductId; ////modifyModel.PRODUCTNAME = wx_SzzyProduct_BL.Get(m => m.PRODUCTID == productId).PRODUCTNAME; ////modifyModel.SUBPRODUCTNAME = wx_SzzySubProduct_BL.Get(m => m.SUBPRODUCTID == subProductId).SUBPRODUCTNAME; //modifyModel.ORDERTYPE = model.ORDERTYPE; ////modifyModel.NEEDPAY = model.NEEDPAY; ////modifyModel.OPENDAYS = model.OPENDAYS; ////modifyModel.UPGRADEORDERIDS = model.UPGRADEORDERIDS; ////modifyModel.TOTALUPGRADEVALUE = model.TOTALUPGRADEVALUE.HasValue ? model.TOTALUPGRADEVALUE : 0; //modifyModel.CUSTOMERUSERNAME = model.CUSTOMERUSERNAME; //modifyModel.WEWORK_REMOTEID = model.WEWORK_REMOTEID; //modifyModel.EXTERNAL_USERID = model.EXTERNAL_USERID; //modifyModel.SOURCE = model.SOURCE; //modifyModel.FUJIAN = !string.IsNullOrEmpty(fujian) ? fujian : model.FUJIAN;//上次附件 ////modifyModel.ORDERSTATUS = model.ORDERSTATUS; //modifyModel.ESTIMATEOTIME = model.ESTIMATEOTIME; //var url = cache_BL.GetValue_Parameter(Parameter.Core_ZxdService_UpdateOrder); //var para = "orderId=" + modifyModel.ORDERID + "&source=" + modifyModel.SOURCE + "&customerusername=" + modifyModel.CUSTOMERUSERNAME + "&WEWORK_REMOTEID=" + modifyModel.WEWORK_REMOTEID + "&EXTERNAL_USERID=" + modifyModel.EXTERNAL_USERID + "&fujian=" + modifyModel.FUJIAN + "&remark=" + WebUtility.UrlEncode(modifyModel.REMARK) // + "&jobuserid=" + userid + "&corpid=" + corpid + "&ordertype=" + modifyModel.ORDERTYPE + "&estimateotime=" + modifyModel.ESTIMATEOTIME; //var res = Utility.GetData(url, para, Encoding.UTF8); //var ret = Utility.ToObject>(res); //if (ret.result) //{ // var result = wx_SzzyOrder_BL.Update(modifyModel); // if (!result) // { // errors.Add("更新订单错误"); // } // else // { // if (!string.IsNullOrWhiteSpace(modifyModel.CUSTOMERUSERNAME)) // { // wx_SzzyOrder_BL.UpdateResIdByWxUserName(modifyModel.RESID, modifyModel.CUSTOMERUSERNAME); // _wxfastusername.CreateFast_UserName(modifyModel.ORDERID, modifyModel.CUSTOMERUSERNAME);//设定指令,让手机端优先上传订单文件 // } // if (!string.IsNullOrEmpty(modifyModel.WEWORK_REMOTEID)) // { // wx_SzzyOrder_BL.UpdateResIdByQwUserName(modifyModel.RESID, modifyModel.WEWORK_REMOTEID); // } // //修改外部联系人Id // //if (modifyModel.SOURCE != "1" && oldsource == "1" && !string.IsNullOrEmpty(old_WeWork_RemoteId)) // //{ // // wx_SzzyOrder_BL.Sys_UpdateOrderExtentid(modifyModel.ORDERID); // //} // //else if (modifyModel.SOURCE == "1" && old_WeWork_RemoteId != modifyModel.WEWORK_REMOTEID) // //{ // // wx_SzzyOrder_BL.Sys_UpdateOrderExtentid(modifyModel.ORDERID); // //} // if (!string.IsNullOrEmpty(modifyModel.EXTERNAL_USERID)) // { // wx_SzzyOrder_BL.UpdateResIdByWwUserName(modifyModel.RESID, modifyModel.EXTERNAL_USERID); // wx_SzzyOrder_BL.UpdateOrInsertOrderExtuserId(new WW_SZZYORDER_EXTUSERID() { ORDERID = model.ORDERID, CORPID = corpid, EXTUSERID = model.EXTERNAL_USERID, USERID = userid }); // } // } // return JsonHandler.ManageMessage(errors.Error, result, model.ORDERID.ToString()); //} return JsonHandler.ManageMessage("更新失败,请重试!", false); } [HttpGet] [AuthorizeToolBarMore(new string[] { InitRights.CONST_订单列表, InitRights.CONST_我的订单 }, new int[] { InitToolBar.CONST_Other9, InitToolBar.CONST_Other3 })] public ActionResult Fp(int orderId) { var order = wx_SzzyOrder_BL.Get(p => p.ORDERID == orderId); var deptList = _CacheQ.GetList_SalesDepartMent().Where(p => p.CHANNELDEF != null); var selectList = new List(); foreach (var item in deptList) { if (order != null && order.DEPTCODE == item.SALEDEPTCODE) { selectList.Add(new SelectListItem() { Text = item.DEPTNAME, Value = item.SALEDEPTCODE, Selected = true }); } else { selectList.Add(new SelectListItem() { Text = item.DEPTNAME, Value = item.SALEDEPTCODE }); } } ViewBag.DeptList = selectList; var users = _CacheQ.GetUserList(); var user = users.Find(p => p.PKID == order.INNERUSERID); var eid = string.Empty; if (user != null) eid = user.EID.ToString(); ViewBag.Eid = eid; var isbalance = false; //如果订单已经开通 if (order.OTIME.HasValue) { var lastBalance = _balance.GetList(p => p.FLAG == 1).OrderByDescending(p => p.MONTH).FirstOrDefault(); if (lastBalance != null) { var otime = int.Parse(order.OTIME.Value.ToString("yyyyMM")); var month = int.Parse(lastBalance.MONTH.ToString("yyyyMM")); if (otime <= month) { //前端控制不给修改 isbalance = true; } } } ViewBag.IsBalance = isbalance; return View(); } //[HttpPost] //[AuthorizeToolBarMore(new string[] { InitRights.CONST_订单列表, InitRights.CONST_我的订单 }, new int[] { InitToolBar.CONST_Other9, InitToolBar.CONST_Other3 })] //public JsonResult Fp(int orderId, int eid, string deptcode) //{ // BLL.Base.BAS_INNERUSER_BL bll = new BAS_INNERUSER_BL(); // var user = bll.getInnerUserByEid(eid); // if (user == null || user.ISDISMISS == 1 || user.ISHIDE == 1) // { // return JsonHandler.ManageMessage("工号不存在!", false); // } // var order = wx_SzzyOrder_BL.Get(p => p.ORDERID == orderId); // if (order == null) // { // return JsonHandler.ManageMessage("参数错误!", false); // } // //如果订单已经开通 // if (order.OTIME.HasValue) // { // var lastBalance = _balance.GetList(p => p.FLAG == 1).OrderByDescending(p => p.MONTH).FirstOrDefault(); // if (lastBalance != null) // { // var otime = int.Parse(order.OTIME.Value.ToString("yyyyMM")); // var month = int.Parse(lastBalance.MONTH.ToString("yyyyMM")); // if (otime <= month) // { // //结算月份跟开通时间月份一致,说明已经结算过了,订单不能修改信息 // return JsonHandler.ManageMessage("订单已经结算过了,不能修改信息!", false); // } // } // } // var remark = string.Empty; // if(order.INNERUSERID.HasValue) // { // var oldeid = string.Empty; // if(order.EID.HasValue) // { // oldeid = order.EID.ToString(); // } // else // { // oldeid = InnerUserHelper.Instance.GetEid(order.INNERUSERID); // } // remark += "原工号:" + oldeid + ",更改为:" + user.EID; // } // order.INNERUSERID = Convert.ToInt32(user.PKID); // order.EID = user.EID; // //var groups = _CacheQ.GetGroupList(); // //var ug = _CacheQ.GetList_InnerUserGroup(); // var depment = _CacheQ.GetList_SalesDepartMent(); // if (!string.IsNullOrEmpty(deptcode)) // { // order.DEPTCODE = deptcode; // var dep = depment.Find(p => p.SALEDEPTCODE == deptcode); // if (dep != null) // { // if (dep.CHANNELDEF.HasValue) // { // var url = cache_BL.GetValue_Parameter("Core_ZxdService_SetEid"); // var para = "orderid=" + order.ORDERID.ToString() + "&channel=" + dep.CHANNELDEF.ToString() + "&deptcode=" + deptcode; // var rsp = Utility.PostData(url + "?" + para, Encoding.UTF8); // var retmsg = JsonConvert.DeserializeObject(rsp); // if (retmsg.result) // { // var ret = wx_SzzyOrder_BL.Update(order); // var orderext = wx_OrderExt_BL.Get(p => p.ORDERID == orderId); // remark += ",原渠道:" + orderext.CHANNEL + ",更新为:" + dep.CHANNELDEF.ToString(); // orderext.CHANNEL = dep.CHANNELDEF.ToString(); // wx_OrderExt_BL.Update(orderext); // var payList = _orderPay.GetList(p => p.ORDERID == orderId); // foreach (var pay in payList) // { // pay.DEPTCODE = deptcode; // _orderPay.Update(pay); // if (pay.DEPOSITID.HasValue) // { // var deps = _orderDepoist.GetList(p => p.ID == pay.DEPOSITID.Value); // foreach (var dept in deps) // { // dept.DEPTCODE = deptcode; // _orderDepoist.Update(dept); // } // } // } // var refundList = _orderRefund.GetList(p => p.ORDERID == orderId); // foreach (var refund in refundList) // { // refund.DEPTCODE = deptcode; // _orderRefund.Update(refund); // } // var deptList = _orderDepoist.GetList(p => p.ORDERID == orderId); // foreach (var dept in deptList) // { // dept.DEPTCODE = deptcode; // _orderDepoist.Update(dept); // } // var operaUserId = UserId; // var operaEid = Eid; // Task.Run(() => _operationHelper.AddOperationLog(operaUserId, operaEid, remark)); // return JsonHandler.ManageMessage("操作成功!", ret); // } // else // { // return JsonHandler.ManageMessage("操作失败,请稍后重试!", false); // } // } // } // } // else // { // var ret2 = wx_SzzyOrder_BL.Update(order); // Task.Run(() => _operationHelper.AddOperationLog(UserId, Eid, remark)); // return JsonHandler.ManageMessage("操作成功!", ret2); // } // return JsonHandler.ManageMessage("操作失败,请稍后重试!", false); // //var uginfo = ug.Find(p => p.INNERUSERID == order.INNERUSERID); // //if (uginfo != null) // //{ // // var group = groups.Find(p => p.GID == uginfo.GID); // // if (group != null) // // { // // var dep = depment.Find(p => p.SALEDEPTID == group.SALEDEPTID); // // if (dep != null) // // { // // if (dep.CHANNELDEF.HasValue) // // { // // var url = cache_BL.GetValue_Parameter("Core_ZxdService_SetEid"); // // var para = "orderid=" + order.ORDERID.ToString() + "&channel=" + dep.CHANNELDEF.ToString(); // // var rsp = Utility.PostData(url + "?" + para, Encoding.UTF8); // // var retmsg = JsonConvert.DeserializeObject(rsp); // // if (retmsg.result) // // { // // var ret = wx_SzzyOrder_BL.Update(order); // // return JsonHandler.ManageMessage("操作成功!", ret); // // } // // else // // { // // return JsonHandler.ManageMessage("操作失败,请稍后重试!", false); // // } // // } // // else // // { // // //如果事业部没有配置渠道,只更新本地数据 // // var ret = wx_SzzyOrder_BL.Update(order); // // return JsonHandler.ManageMessage("操作成功!", ret); // // } // // } // // } // //} // //return JsonHandler.ManageMessage("操作失败,请稍后重试!", false); //} [HttpGet] [AuthorizeToolBar(InitRights.CONST_订单列表, InitToolBar.CONST_Other4)] public ActionResult SetFinacePayDate() { return View(); } [HttpPost] [AuthorizeToolBar(InitRights.CONST_订单列表, InitToolBar.CONST_Other4)] public JsonResult SetFinacePayDate(int orderId, DateTime ftime) { var order = wx_SzzyOrder_BL.Get(p => p.ORDERID == orderId); if (order == null) { return JsonHandler.ManageMessage("参数错误!", false); } order.FINACEPAYDATE = ftime; var ret = wx_SzzyOrder_BL.Update(order); return JsonHandler.ManageMessage("操作成功!", ret); } [HttpGet] [AuthorizeToolBar(InitRights.CONST_我的订单, InitToolBar.CONST_Details)] public ActionResult Detail(string orderId) { var oId = Convert.ToDecimal(orderId); var model = wx_TDorder_BL.GetTDOrderDetail(oId); var username = model.SoftUserName; model.AuditUserName = InnerUserHelper.Instance.GetEidAndTrueName(model.AuditUser); model.SoftUserName = PhoneHelper.FormatPhoneUserName(model.SoftUserName); var ruleList = wx_CommissionRule_BL.GetList(m => m.ORDERID == oId); List list = new List(); foreach (var item in ruleList) { list.Add(new WX_COMMISSIONRULE_ITEM() { EID = InnerUserHelper.Instance.GetEidByUserId(item.SALEUSERID), COMMISSIONRATIO = item.COMMISSIONRATIO }); } ViewBag.commissionRules = list; var module = new List(); try { var url = cache_BL.GetValue_Parameter(Parameter.UserCenter_RiaService_OrderModule) + "?userName=" + username; //LogHelper.Info("url:" + url); var ret = Utility.PostData(url, Encoding.UTF8); var obj = Utility.JSONToObject(ret); if (obj.ret == 0) { var modules = _module.GetList(); foreach (var item in modules) { foreach (var subItem in obj.data) { if (item.MID == subItem.mid) { module.Add(new OrderModelView(item.MODULENAME, Utility.JavaLongToDateTime(subItem.endtime))); } } } //var mids = obj.data.Select(p => p.mid).ToList(); //var szzysubproduct = wx_SzzySubProduct_BL.GetList(); //var data = szzysubproduct.Where(p => mids.Contains(p.MID)); //foreach (var item in data) //{ // foreach (var subItem in obj.data) // { // if (item.MID == subItem.mid) // { // module.Add(new OrderModelView(item.SUBPRODUCTNAME, Utility.JavaLongToDateTime(subItem.endtime))); // } // } //} } } catch (Exception ex) { LogHelper.Error("订单权限获取错误:" + ex.ToString()); } ViewBag.Module = module; return View(model); } #endregion 编辑 #region 订单列表 [AuthorizeRedirect(Roles = InitRights.CONST_订单列表)] public ActionResult OrderList() { //ToolBar ToolBar tool = new ToolBar(); string[] toolbtn = new ToolButtonView().ToolButtonRight(InitRights.订单列表, userRightId); tool.AllowButton(toolbtn); tool.AddOtherButton("Other1", "银行转账下单并开通", "icon-add", "SupplementOrder_Click", true); tool.AddOtherButton("Other2", "修改订单分成", "icon-edit", "UpdateCommission_Click", true); tool.AddOtherButton("Other3", "导出", "icon-export", "export_Click", true); tool.AddOtherButton("Other4", "调整结算时间", "icon-export", "upload_Click", true); tool.AddOtherButton("Other5", "订单合规回访", "icon-export", "hg_Click", true); tool.AddOtherButton("Other6", "定金支付", "icon-add", "", true); tool.AddOtherButton("Other7", "提交支付记录", "icon-add", "orderPay_Click", true); tool.AddOtherButton("Other8", "退款申请", "icon-add", "orderRefund_Click", true); tool.AddOtherButton("Other9", "设置工号", "icon-edit", "fp_Click", false); ViewBag.ToolBar = tool; //table Pager pager = new Pager() { page = 1, rows = 20 }; string tableId = "tablist"; Table tab = new Table(tableId); tab.isCheckbox = true; tab.AddHiddenHeadCol("SZZYORDERID", "订单权限ID"); tab.AddHeadCol("RESID", "", "客户ID"); tab.AddHeadCol("DEPTCODE", "", "部门归属"); tab.AddHeadCol("CNAME", "", "客户"); tab.AddHeadCol("GNAME", "", "组别"); tab.AddHeadCol("INNERUSERID", "", "工号"); tab.AddHeadCol("SUBPRODUCTNAME", "", "产品"); tab.AddHeadCol("NEEDPAY", "", "下单金额"); //tab.AddHeadCol("FINALPAY", "", "实付金额"); tab.AddHeadCol("ARRIVALPAY", "", "到账金额"); tab.AddHeadCol("ARRIVALTIME", "", "到账时间"); tab.AddHeadCol("ORDERID", "", "订单ID"); tab.AddHeadCol("ORDERTYPE", "", "订单类型"); tab.AddHeadCol("CTIME", "", "下单时间"); tab.AddHeadCol("OTIME", "", "开通时间"); tab.AddHeadCol("FINACEPAYDATE", "", "结算时间"); //tab.AddHeadCol("RECORDTIME", "100px", "希望回访时间"); tab.AddHeadCol("OPENDAYS", "", "天数"); tab.AddHeadCol("GIFTDAYS", "", "赠送天数"); tab.AddHeadCol("FCTEXT", "", "订单分成"); //tab.AddHeadCol("SOURCE", "", "客户来源"); tab.AddHeadCol("CUSTOMERUSERNAME", "", "微信/企微"); tab.AddHeadCol("ISOPEN", "", "参与分成"); tab.AddHeadCol("RISKCTRLSTATUS", "", "合同状态");//合同编号 tab.AddHiddenHeadCol("ORDERSTATUS", "订单状态"); tab.AddHeadCol("ORDERSTATUSNAME", "", "订单状态"); var statusTitle = "回访状态说明: "; statusTitle += " 1.AI外呼成功:订单已经AI外呼成功 "; statusTitle += " 2.人工回访成功:订单已经人工回访成功 "; statusTitle += " 3.电子回访成功:订单已经电子回访成功 "; tab.AddTipHeadCol("AiStatus", "100px", "回访状态", "/image/icon/tip.png", statusTitle); tab.AddHeadCol("HASHGRECORD", "", "合规"); tab.AddHeadRow(); ViewBag.gridTable = tab.GetHead() + Pagination.GetPage(pager, tableId, "5,10,15,20"); //ViewBag.productList = getAllProductList(); ViewBag.midproductList = GetMidProductList(); ViewBag.inneruserid = UserId; ViewBag.userGroupId = userGroupId; ViewBag.saleDeptId = saleDeptId; var roles = DataCacheHelper.GetCache().Get_RoleCodes(userRoleId); ViewBag.roleCodes = roles; ViewBag.DeptCode = Utility.GetSettingOrNullByKey("DataClientCode"); //if (roles.Contains("[ddlb]")) //{ // ViewBag.roleCodes = "[GLY]"; //} //else //{ // ViewBag.roleCodes = roles; //} var deptList = _CacheQ.GetList_SalesDepartMent().Where(p => p.CHANNELDEF != null); var selectList = new List(); foreach (var item in deptList) { selectList.Add(new SelectListItem() { Text = item.DEPTNAME, Value = item.SALEDEPTCODE }); } ViewBag.DeptList = selectList; ViewBag.currentRight = InitRights.CONST_订单列表;//当前页面权限 return View(); } #region 寻找中心战点的 ai状态和时间 private List GetAIOrdderDto(List list) { List aiOrderDtos = new List(); //try //{ // string aiurl = _CacheQ.GetValue_Parameter(Parameter.Core_ZxdService_GetAiTime);//获取ai状态地址 // var para = "orderIdList=" + string.Join(",", list.Select(n => n.ORDERID)); // var retmsg = Utility.PostData(aiurl + "?" + para, Encoding.UTF8); // var retmessage = WebHelper.JsonHelper.JsonDivertToObj(retmsg); // aiOrderDtos = retmessage.retmsg; //} //catch (Exception ex) //{ // LogHelper.Error($"获取订单ai呼叫状态异常{ex.Message}"); //} return aiOrderDtos; } #endregion 寻找中心战点的 ai状态和时间 [HttpPost] [AuthorizeRedirect(Roles = InitRights.CONST_订单列表)] public JsonResult GetOrderList(string columns, Pager pager, OrderQueryDto querydto, QueryUserComboDto usercomboDto) { //decimal saleDeptId = Request["saleDeptId"].GetDecimal(0); //var groupId = Request["groupId"]; //decimal innerUserId = Request["userId"].GetDecimal(0); List list = wx_SzzyOrder_BL.GetList(ref pager, querydto, usercomboDto); Table table = new Table(columns, true); table.isCheckbox = true; table.gridPager = pager; var foot = list.Where(p => p.RESID == "合计").FirstOrDefault(); if (foot != null) { list.Remove(foot); table.AddHiddenCol(""); table.AddCol("合计"); table.AddCol(""); table.AddCol(""); table.AddCol(""); table.AddCol(""); table.AddCol(""); table.AddCol(foot.ARRIVALPAY); table.AddCol(""); table.AddCol(""); table.AddCol(""); table.AddCol(""); table.AddCol(""); table.AddCol(""); table.AddCol(""); table.AddCol(""); table.AddCol(""); table.AddCol(""); table.AddCol(""); table.AddCol(""); table.AddCol(""); table.AddCol(""); table.AddCol(""); table.AddFootRow(); } var deptList = _CacheQ.GetList_SalesDepartMent().Where(p => p.CHANNELDEF != null); List aiOrderDtos = GetAIOrdderDto(list); foreach (var model in list) { var statusLink = ""; var aiDto = aiOrderDtos.FirstOrDefault(n => n.ORDERID == model.ORDERID); if (aiDto != null) { List showStatus = new List { (int)EnumAiCallState.AI外呼成功, (int)EnumAiCallState.人工回访成功, (int)EnumAiCallState.电子回访成功 }; if (showStatus.Contains(aiDto.ai_hgrecord_status.Value)) { statusLink = aiDto.ai_hgrecord_statusname; } if (querydto.aiCallType > 0 && aiDto.ai_hgrecord_status != querydto.aiCallType) { continue; } } table.AddHiddenCol(model.SZZYORDERID); var linkUrl = string.Format("{2}" , "客户详细" , "/Csvr/CustomerInfo/CustomerDetail?resid=" + model.RESID , model.RESID); table.AddCol(linkUrl); if (!string.IsNullOrEmpty(model.DEPTCODE)) { var dept = deptList.FirstOrDefault(p => p.SALEDEPTCODE == model.DEPTCODE); if (dept != null) { table.AddCol(dept.DEPTNAME); } else { table.AddCol("未知"); } } else { table.AddCol("未知"); } table.AddCol(model.CNAME); table.AddCol(InnerUserHelper.Instance.GetGroupName(InnerUserHelper.Instance.GetGroupId(model.INNERUSERID))); table.AddCol(InnerUserHelper.Instance.EidAndName(model.INNERUSERID)); table.AddCol(model.SUBPRODUCTNAME); table.AddCol(model.NEEDPAY); //table.AddCol(model.FINALPAY); table.AddCol(model.ARRIVALPAY); table.AddCol(model.ARRIVALTIME); //table.AddCol(model.ORDERID); table.AddCol(string.Format("{2}", "支付记录申请列表", "/weixin/orderpay?orderid=" + model.ORDERID.ToString(), model.ORDERID)); table.AddCol(getOrderTypeStr(model.ORDERTYPE.Value)); table.AddCol(model.CTIME); table.AddCol(model.OTIME); table.AddCol(model.FINACEPAYDATE); table.AddCol(model.OPENDAYS); table.AddCol(model.GIFTDAYS); table.AddCol(model.FCTEXT); //table.AddCol(Utility.getSourceText(model.SOURCE)); if (!string.IsNullOrEmpty(model.CUSTOMERUSERNAME) || !string.IsNullOrEmpty(model.EXTERNAL_USERID)) { table.AddCol("已绑"); } else { table.AddCol("未绑"); } table.AddCol(model.ISOPEN == 1 ? "是" : ""); //合同状态 if (model.RISKCTRLSTATUS >= 1) { table.AddCol(string.Format("{1}", model.ORDERID, "已审核")); } else if (model.RISKCTRLSTATUS == -1) { table.AddCol(string.Format("{1}", model.ORDERID, "合规驳回")); } else if (model.RISKCTRLSTATUS == null) { table.AddCol("未签订"); } else { table.AddCol(string.Format("{1}", model.ORDERID, "未审核")); } //订单状态 table.AddHiddenCol(model.ORDERSTATUS); if (model.ORDERSTATUS == "190") { table.AddCol("color:blue", "", model.ORDERSTATUSNAME); } else if (model.ORDERSTATUS == "195") { table.AddCol("", "", string.Format("{2}", "支付记录申请列表", "/weixin/orderpay?orderid=" + model.ORDERID.ToString(), model.ORDERSTATUSNAME)); } else if (model.ORDERSTATUS == "200") { table.AddCol("color:orange", "", model.ORDERSTATUSNAME); } else if (model.ORDERSTATUS == "220") { table.AddCol("color:green", "", model.ORDERSTATUSNAME); } else { table.AddCol(model.ORDERSTATUSNAME); } table.AddCol(statusLink); table.AddCol(model.HASHGRECORD == 1 ? "是" : ""); table.AddRow(); } var json = new { totalPages = pager.totalPages, totalRows = pager.totalRows, rowsList = table.GetRows(), foot = table.GetFoot(), }; return Json(json, JsonRequestBehavior.AllowGet); } [HttpGet] //[AuthorizeToolBar(InitRights.CONST_订单列表, InitToolBar.CONST_Add)] [AuthorizeToolBarMore(new string[] { InitRights.CONST_订单列表, InitRights.CONST_我的订单 }, new int[] { InitToolBar.CONST_Add, InitToolBar.CONST_Add })] public ActionResult AddInList() { bool isfujian = GetIsFuJina(); ViewBag.ShowFuJian = isfujian; var model = new WX_SZZYORDER_Extend(); ViewBag.midproductList = GetMidProductList(); ViewBag.roleCodes = DataCacheHelper.GetCache().Get_RoleCodes(userRoleId); ViewBag.DeptCode = Utility.GetSettingOrNullByKey("DataClientCode"); ViewBag.WwMessage_Url = _CacheQ.GetValue_Parameter("WwMessage_Url"); ViewBag.companycode = companyCode; var deptList = _cacheQ.GetList_SalesDepartMent().Where(p => p.CHANNELDEF != null); var selectList = new List(); foreach (var item in deptList) { selectList.Add(new SelectListItem() { Text = item.DEPTNAME, Value = item.SALEDEPTCODE }); } ViewBag.DeptList = selectList; return View(model); } [HttpGet] [AuthorizeToolBarMore(new string[] { InitRights.CONST_订单列表, InitRights.CONST_我的订单 }, new int[] { InitToolBar.CONST_Add, InitToolBar.CONST_Add })] public ActionResult SetTime(string orderId, string stime, string etime) { var oId = Convert.ToDecimal(orderId); var model = new AISETTIMEMODEL { ORDERID = oId }; if (!string.IsNullOrWhiteSpace(stime) && Convert.ToInt32(stime) > 0) { model.AI_HGRECORD_STIME = $"{(Convert.ToInt32(stime) / 60).ToString().PadLeft(2, '0')}:{(Convert.ToInt32(stime) % 60).ToString().PadLeft(2, '0')}"; } if (!string.IsNullOrWhiteSpace(etime) && Convert.ToInt32(etime) > 0) { model.AI_HGRECORD_ETIME = $"{(Convert.ToInt32(etime) / 60).ToString().PadLeft(2, '0')}:{(Convert.ToInt32(etime) % 60).ToString().PadLeft(2, '0')}"; } return View(model); } private string CheckSetTime(string startTime, string endTime) { if (!string.IsNullOrWhiteSpace(startTime) && !string.IsNullOrWhiteSpace(endTime)) { var stime = Convert.ToInt32(startTime.Replace(":", "")); var etime = Convert.ToInt32(endTime.Replace(":", "")); if (stime > etime) { return "开始时间不能大于结束时间"; } var sSpan = Convert.ToInt32(startTime.Split(':')[0]) * 60 + Convert.ToInt32(startTime.Split(':')[1]); var eSpan = Convert.ToInt32(endTime.Split(':')[0]) * 60 + Convert.ToInt32(endTime.Split(':')[1]); if (eSpan - sSpan < 30) { return "结束时间必须大于开始时间30分钟"; } } return ""; } //[HttpPost] //[AuthorizeToolBarMore(new string[] { InitRights.CONST_订单列表, InitRights.CONST_我的订单 }, new int[] { InitToolBar.CONST_Add, InitToolBar.CONST_Add })] //public JsonResult SetTime(decimal orderid, string startTime, string endTime) //{ // if (!ModelState.IsValid) // { // return JsonHandler.ValidateFailMessage(); // } // var checkMsg = CheckSetTime(startTime, endTime); // if (!string.IsNullOrWhiteSpace(checkMsg)) // { // return JsonHandler.ManageMessage(checkMsg, false); // } // var url = cache_BL.GetValue_Parameter(Parameter.Core_ZxdService_UpdateAiTime); // var para = "orderId=" + orderid + "&startTime=" + startTime + "&endTime=" + endTime; // var res = Utility.GetData(url, para, Encoding.UTF8); // var ret = Utility.ToObject>(res); // if (ret.result) // { // return JsonHandler.ManageMessage(errors.Error, true, orderid.ToString()); // } // return JsonHandler.ManageMessage("更新失败,请检查是否存在订单!", false); //} //[HttpPost] ////[AuthorizeToolBar(InitRights.CONST_订单列表, InitToolBar.CONST_Add)] //[AuthorizeToolBarMore(new string[] { InitRights.CONST_订单列表, InitRights.CONST_我的订单 }, new int[] { InitToolBar.CONST_Add, InitToolBar.CONST_Add })] //public JsonResult AddAndPayInList(WX_SZZYORDER_Extend model, OrderPayDtoMore dto, decimal? depprice, decimal productId, decimal subProductId, string resid, decimal? needPay, string source, string CUSTOMERUSERNAME, decimal orderType, string UPGRADEORDERIDS, decimal? TOTALUPGRADEVALUE, int isTest, int? giftdays, int? giftdays2, string userid, string corpid, decimal? discount, decimal? customprisce) //{ // if (!ModelState.IsValid) // { // return JsonHandler.ValidateFailMessage(); // } // var checkMsg = CheckSetTime(model.ai_hgrecord_stime, model.ai_hgrecord_etime); // if (!string.IsNullOrWhiteSpace(checkMsg)) // { // errors.Add(checkMsg); // return JsonHandler.UpdateMessage(errors, false); // } // resid = resid.Trim(); // //首华补单订单类型 // if (orderType == 5) // { // orderType = 4; // } // if (subProductId <= 0) // { // errors.Add("请选择产品分类"); // return JsonHandler.UpdateMessage(errors, false); // } // if (!needPay.HasValue || needPay.Value < 0) // { // errors.Add("请填写应付金额"); // return JsonHandler.UpdateMessage(errors, false); // } // model.SoftUserName = Utility.DecryptUrlDecode(model.SoftUserName); // //var softUser = soft_User_BL.GetUser_userName(model.SoftUserName); // //if (softUser == null) // //{ // // errors.Add("用户名不存在!"); // // return JsonHandler.UpdateMessage(errors, false); // //} // var deptCode = Utility.GetSettingOrNullByKey("DataClientCode"); // var subproduct = wx_SzzySubProduct_BL.Get(m => m.SUBPRODUCTID == subProductId); // productId = subproduct.PRODUCTID;//拿产品表里面的系列ID,不要根据页面传进来的 // if (orderType == 3) // { // //if (string.IsNullOrWhiteSpace(UPGRADEORDERIDS) || !TOTALUPGRADEVALUE.HasValue || TOTALUPGRADEVALUE <= 0) // //{ // // errors.Add("升级订单,请输入源订单号和源订单剩余金额!"); // // return JsonHandler.UpdateMessage(errors, false); // //} // if (!string.IsNullOrWhiteSpace(UPGRADEORDERIDS)) // { // ////只有设置的投顾产品才能进行补差价升级,其余的产品只能重新购买 // //if (subproduct.CANUPGRADE == 0) // //{ // // errors.Add("该产品不能补差价升级,请直接全款购买!"); // // return JsonHandler.UpdateMessage(errors, false); // //} // if (!ValidateHelper.IsNumber(UPGRADEORDERIDS.Replace(",", ""))) // { // errors.Add("输入源订单号格式有误,只能输入数字订单号!"); // return JsonHandler.UpdateMessage(errors, false); // } // var upgradeOrderList = UPGRADEORDERIDS.Split(',').Select(m => Convert.ToDecimal(m)).ToList(); // foreach (var orderid in upgradeOrderList) // { // var upgradeModel = wx_SzzyOrder_BL.Get(m => m.ORDERID == orderid); // if (upgradeModel == null) // { // errors.Add(string.Format("升级订单,原CRM订单:{0}不存在,请确认后再输入!", orderid.ToString())); // return JsonHandler.UpdateMessage(errors, false); // } // var upgradeSubProduct = wx_SzzySubProduct_BL.Get(m => m.SUBPRODUCTID == upgradeModel.SUBPRODUCTID); // //如果不是允许的升级产品,那么必须是同一类型的产品之间才能升级 // if (subproduct.CANUPGRADE == 0 && subproduct.CATEGORY < upgradeSubProduct.CATEGORY) // { // errors.Add(string.Format("只有同一类型的产品才能升级,该产品请直接全款购买!", orderid.ToString())); // return JsonHandler.UpdateMessage(errors, false); // } // //北一放开了,能够进行 擒龙版升级至至尊版的订单升级 // //if (deptCode == "QBJZ" && subproduct.MIDPRODUCTID == 100800201) // //{ // // if (upgradeSubProduct.MIDPRODUCTID != 100800201) // // { // // errors.Add(string.Format("订单{0}不是至尊版订单,无法升级!", orderid.ToString())); // // return JsonHandler.UpdateMessage(errors, false); // // } // //} // } // } // model.wx_SzzyOrder.UPGRADEORDERIDS = UPGRADEORDERIDS; // } // else if (orderType == 4) // { // //首华换课订单 // if (string.IsNullOrWhiteSpace(UPGRADEORDERIDS)) // { // errors.Add("源订单号不能为空!"); // return JsonHandler.UpdateMessage(errors, false); // } // if (!ValidateHelper.IsNumber(UPGRADEORDERIDS.Replace(",", ""))) // { // errors.Add("输入源订单号格式有误,只能输入数字订单号!"); // return JsonHandler.UpdateMessage(errors, false); // } // var upgradeOrderList = UPGRADEORDERIDS.Split(',').Select(m => Convert.ToDecimal(m)).ToList(); // foreach (var orderid in upgradeOrderList) // { // var upgradeModel = wx_SzzyOrder_BL.Get(m => m.ORDERID == orderid); // if (upgradeModel == null) // { // errors.Add(string.Format("升级订单,原CRM订单:{0}不存在,请确认后再输入!", orderid.ToString())); // return JsonHandler.UpdateMessage(errors, false); // } // //if (upgradeModel.ORDERTYPE == 4) // //{ // // errors.Add(string.Format("订单:{0}已经被换过了,不能再更换!", orderid.ToString())); // // return JsonHandler.UpdateMessage(errors, false); // //} // //if (upgradeModel.ORDERSTATUS == "205") // //{ // // errors.Add(string.Format("订单:{0}已经抵扣过了,不能再次抵扣!", orderid.ToString())); // // return JsonHandler.UpdateMessage(errors, false); // //} // var upgradeSubProduct = wx_SzzySubProduct_BL.Get(m => m.SUBPRODUCTID == upgradeModel.SUBPRODUCTID); // //如果不是允许的升级产品,那么必须是同一类型的产品之间才能升级 // if (subproduct.CANUPGRADE == 0 && subproduct.CATEGORY < upgradeSubProduct.CATEGORY) // { // errors.Add(string.Format("只有同一类型的产品才能升级,该产品请直接全款购买!", orderid.ToString())); // return JsonHandler.UpdateMessage(errors, false); // } // } // model.wx_SzzyOrder.UPGRADEORDERIDS = UPGRADEORDERIDS; // } // else // { // model.wx_SzzyOrder.UPGRADEORDERIDS = ""; // } // if (string.IsNullOrWhiteSpace(source)) // { // errors.Add("请选择留痕"); // return JsonHandler.UpdateMessage(errors, false); // } // if (source == "1") // { // bool isfujian = GetIsFuJina(); // if (isfujian == false)//没有附件上传权限 // { // if (string.IsNullOrWhiteSpace(model.wx_SzzyOrder.CUSTOMERUSERNAME) && string.IsNullOrWhiteSpace(model.wx_SzzyOrder.WEWORK_REMOTEID) && string.IsNullOrWhiteSpace(model.wx_SzzyOrder.EXTERNAL_USERID)) // { // errors.Add("微信或者企业微信最少选择一个!"); // return JsonHandler.UpdateMessage(errors, false); // } // } // else//有附件上传权限 // { // HttpFileCollectionBase files = Request.Files; // HttpPostedFileBase file = files["FileMobile"]; // if (string.IsNullOrWhiteSpace(model.wx_SzzyOrder.CUSTOMERUSERNAME) && string.IsNullOrWhiteSpace(model.wx_SzzyOrder.WEWORK_REMOTEID) && string.IsNullOrWhiteSpace(model.wx_SzzyOrder.EXTERNAL_USERID) && (file == null || file.ContentLength == 0)) // { // errors.Add("微信、企业微信、附件最少选择一个!"); // return JsonHandler.UpdateMessage(errors, false); // } // } // } // if (!model.OpenDays.HasValue || model.OpenDays.Value < 1) // { // errors.Add("开通天数必须大于0"); // return JsonHandler.UpdateMessage(errors, false); // } // if (model.BookNum <= 0) // { // errors.Add("开通套数必须大于0"); // return JsonHandler.UpdateMessage(errors, false); // } // if (res_Customer_Q_BL.getResCustomerByResId(resid) == null) // { // errors.Add("客户ID不存在,请重新输入"); // return JsonHandler.UpdateMessage(errors, false); // } // #region 支付记录验证 // if (dto != null && dto.paytype != null && dto.paytype.Count() > 0) // { // foreach (var item in dto.payno) // { // if (string.IsNullOrWhiteSpace(item)) // { // errors.Add("流水不能为空!"); // return JsonHandler.UpdateMessage(errors, false); // } // } // foreach (var item in dto.payprice) // { // if (item <= 0) // { // errors.Add("支付金额必须大于0"); // return JsonHandler.UpdateMessage(errors, false); // } // } // foreach (var item in dto.payname) // { // if (string.IsNullOrWhiteSpace(item)) // { // errors.Add("支付姓名不能为空!"); // return JsonHandler.UpdateMessage(errors, false); // } // } // } // #endregion 支付记录验证 // //北一至尊版不需要升级单(已改,北京一部至尊版也是需要订单的) // //if (!(deptCode == "QBJZ" && subproduct.MIDPRODUCTID == 100800201)) // //{ // //if (orderType != 4 && deptCode != "SHZZ") // //{ // // var hasOldOrderModel = wx_SzzyOrder_BL.Get(m => m.RESID == resid && m.ORDERSTATUS == "220"); // // //当该资源名下有已经开通的订单,那么就把新订单设置为升级订单类型 // // if (hasOldOrderModel != null) // // { // // orderType = 3; // // } // //} // //} // model.wx_SzzyOrder.ORDERID = new SEQUENCES_BL().Seq_base_get(); // model.wx_SzzyOrder.FUJIAN = SaveFuJianFile(); // model.wx_SzzyOrder.OPERATETIME = DateTime.Now; // model.wx_SzzyOrder.INNERUSERID = UserId; // model.wx_SzzyOrder.RESID = resid; // model.wx_SzzyOrder.ISFINANCEPAY = 0; // model.wx_SzzyOrder.OPENORDER = 0; // model.wx_SzzyOrder.ISOPEN = 0; // model.wx_SzzyOrder.ORDERTYPE = orderType; // model.wx_SzzyOrder.ORDERSTATUS = "180"; // model.wx_SzzyOrder.ORDERSTATUSNAME = "新订单"; // var product = wx_SzzyProduct_BL.Get(m => m.PRODUCTID == productId); // model.wx_SzzyOrder.PRODUCTNAME = product.PRODUCTNAME; // model.wx_SzzyOrder.NEEDPAY = needPay; // model.wx_SzzyOrder.RETURNNEEDPAY = subproduct.PRICE; // model.wx_SzzyOrder.SOURCE = source; // model.wx_SzzyOrder.PRODUCTID = productId; // model.wx_SzzyOrder.SUBPRODUCTID = subProductId; // model.wx_SzzyOrder.CTIME = DateTime.Now; // model.wx_SzzyOrder.RET = discount; // model.wx_SzzyOrder.RETP = customprisce; // model.wx_SzzyOrder.SUBPRODUCTNAME = subproduct.SUBPRODUCTNAME; // model.wx_SzzyOrder.OPENDAYS = model.OpenDays; // model.wx_SzzyOrder.CNAME = model.Name; // model.wx_SzzyOrder.ESTIMATEOTIME = model.ESTIMATEOTIME;//预计开通时间 // if (TOTALUPGRADEVALUE.HasValue) // { // model.wx_SzzyOrder.TOTALUPGRADEVALUE = TOTALUPGRADEVALUE; // } // model.wx_SzzyOrder.REQUESTSTATUS = 1; // model.wx_SzzyOrder.ISTEST = isTest; // if (subproduct.ISGIFT == 1 && giftdays.HasValue) // { // model.wx_SzzyOrder.GIFTDAYS = giftdays; // } // if (subproduct.ISGIFT == 1 && giftdays2.HasValue) // { // model.wx_SzzyOrder.GIFTDAYS2 = giftdays2; // } // //----先调用中心点接口,统一分配订单号 // string url = cache_BL.GetValue_Parameter(Parameter.Core_ZxdService_CreateOrder);//中心点创建订单 // var theModel = new ordermodel // { // cname = model.wx_SzzyOrder.CNAME, // mobile = _res_resourcemobile_Q.GetNumberByResId(resid),//获取手机号码 // needpay = needPay, // opendays = model.OpenDays, // ordertype = model.wx_SzzyOrder.ORDERTYPE, // productId = productId, // productname = model.wx_SzzyOrder.PRODUCTNAME, // remark = model.wx_SzzyOrder.REMARK, // saledeptid = model.wx_SzzyOrder.SALEDEPTID, // source = source, // softusername = model.SoftUserName, // bigproductcode = product.PRODUCTCODE,//大类代码 // productcode = subproduct.PRODUCTCODE,//小类代码 // subProductId = model.wx_SzzyOrder.SUBPRODUCTID.Value, // subproductname = model.wx_SzzyOrder.SUBPRODUCTNAME, // teamserve = model.wx_SzzyOrder.TEAMSERVE, // userid = model.wx_SzzyOrder.INNERUSERID.Value, // count = model.BookNum,//产品数 // productType = Convert.ToInt32(subproduct.PRODUCTTYPE),//产品分类 // companycode = deptCode, // upgradeorderids = model.wx_SzzyOrder.UPGRADEORDERIDS, // totalupgradevalue = model.wx_SzzyOrder.TOTALUPGRADEVALUE, // istest = isTest, // giftdays = model.wx_SzzyOrder.GIFTDAYS, // giftdays2 = model.wx_SzzyOrder.GIFTDAYS2, // external_userid = model.wx_SzzyOrder.EXTERNAL_USERID, // wework_remoteid = model.wx_SzzyOrder.WEWORK_REMOTEID, // customerusername = model.wx_SzzyOrder.CUSTOMERUSERNAME, // corpid = corpid, // jobuserid = userid, // fujian = model.wx_SzzyOrder.FUJIAN, // discount = model.wx_SzzyOrder.RET, // customprisce = model.wx_SzzyOrder.RETP, // estimateotime = model.ESTIMATEOTIME, // ai_hgrecord_stime = model.ai_hgrecord_stime, // ai_hgrecord_etime = model.ai_hgrecord_etime, // eid = model.wx_SzzyOrder.EID // }; // //theModel.channel = decimal.Parse(Utility.GetSettingOrNullByKey("Channel")); // var groups = _CacheQ.GetGroupList(); // var ug = _CacheQ.GetList_InnerUserGroup(); // var depment = _CacheQ.GetList_SalesDepartMent(); // if (int.TryParse(model.selectEId, out int eid)) // { // //指定下单人 // var userId = InnerUserHelper.Instance.GetUserIdByEid(eid); // model.wx_SzzyOrder.INNERUSERID = Convert.ToInt32(userId); // model.wx_SzzyOrder.EID = eid; // theModel.eid = eid; // //根据工号从部门中读取渠道 // //var uginfo = ug.Find(p => p.INNERUSERID == userId); // //if (uginfo != null) // //{ // // var group = groups.Find(p => p.GID == uginfo.GID); // // if (group != null) // // { // // var dep = depment.Find(p => p.SALEDEPTID == group.SALEDEPTID); // // if (dep != null) // // { // // if (dep.CHANNELDEF.HasValue) // // theModel.channel = dep.CHANNELDEF; // // } // // } // //} // } // if (!string.IsNullOrEmpty(model.deptCode)) // { // var dep = depment.Find(p => p.SALEDEPTCODE == model.deptCode); // if (dep != null) // { // if (dep.CHANNELDEF.HasValue) // theModel.channel = dep.CHANNELDEF; // } // model.wx_SzzyOrder.DEPTCODE = model.deptCode; // theModel.deptcode = model.deptCode; // } // else // { // var dep = depment.FirstOrDefault(); // if (dep != null) // { // model.wx_SzzyOrder.DEPTCODE = model.deptCode; // theModel.deptcode = model.deptCode; // } // } // if (!theModel.channel.HasValue) // { // //如果找不到值,从配置中读取 // theModel.channel = decimal.Parse(Utility.GetSettingOrNullByKey("Channel")); // } // LogHelper.Info("Model2:" + model.ToJson()); // string json = Utility.ConvertToJSON(theModel); // json = sHelper.createSignEncodingStr(json, SecurityHelper.OrderClientIdKey);//数据参数加密 // string retmsg = Utility.PostData(url + "?" + json, Encoding.UTF8);//实现中心点先入库 // retmsg = sHelper.decyptData(SecurityHelper.OrderClientIdKey, retmsg); // CreateOrderRsp retmessage = JsonHelper.JsonDivertToObj(retmsg);//返回信息 // if (retmessage.retCode == (int)NodeJsOrderEnum.调用成功)//成功 // { // model.wx_SzzyOrder.SZZYORDERID = Convert.ToDecimal(retmessage.orderId); // model.wx_SzzyOrder.ORDERID = Convert.ToDecimal(retmessage.selfOirderId); // //绑定客户关系 // //INNERUSERID = Convert.ToInt32(userId), // //if (int.TryParse(model.selectEId, out int eid)) // //{ // // var userId = InnerUserHelper.Instance.GetUserIdByEid(eid); // // model.wx_SzzyOrder.INNERUSERID = Convert.ToInt32(userId); // //} // var result = wx_SzzyOrder_BL.Add(model.wx_SzzyOrder) > 0; // //本地订单库写入成功,然后调用上证综研订单接口 // if (result) // { // if (!string.IsNullOrWhiteSpace(model.wx_SzzyOrder.CUSTOMERUSERNAME)) // { // wx_SzzyOrder_BL.UpdateResIdByWxUserName(resid, model.wx_SzzyOrder.CUSTOMERUSERNAME); // _wxfastusername.CreateFast_UserName(model.wx_SzzyOrder.ORDERID, model.wx_SzzyOrder.CUSTOMERUSERNAME);//设定指令,让手机端优先上传订单文件 // } // if (!string.IsNullOrEmpty(model.wx_SzzyOrder.WEWORK_REMOTEID)) // { // wx_SzzyOrder_BL.UpdateResIdByQwUserName(resid, model.wx_SzzyOrder.WEWORK_REMOTEID); // //wx_SzzyOrder_BL.Sys_UpdateOrderExtentid(model.wx_SzzyOrder.ORDERID);//修改外部联系人Id // } // if (!string.IsNullOrEmpty(model.wx_SzzyOrder.EXTERNAL_USERID)) // { // wx_SzzyOrder_BL.UpdateResIdByWwUserName(resid, model.wx_SzzyOrder.EXTERNAL_USERID); // wx_SzzyOrder_BL.UpdateOrInsertOrderExtuserId(new WW_SZZYORDER_EXTUSERID() { ORDERID = model.wx_SzzyOrder.ORDERID, CORPID = corpid, EXTUSERID = model.wx_SzzyOrder.EXTERNAL_USERID, USERID = userid }); // } // var orderExt = new WX_ORDEREXT // { // ORDERID = model.wx_SzzyOrder.ORDERID, // PAYNO = model.PayNo, // ISPAYED = 0, // OPENDAYS = model.OpenDays, // NAME = model.Name, // SOFTUSERNAME = model.SoftUserName, // PAYTYPE = model.PayType, // BOOKNUM = model.BookNum, // //CHANNEL = softUser.REGCAMPAINID.ToString() // CHANNEL = theModel.channel.ToString() // }; // wx_OrderExt_BL.Add(orderExt); // #region 订金使用 // //if (ckDeposit != null && ckDeposit.Count() > 0)//调用订金使用接口 // //{ // // UseOrderDepositDto dtoDe = new UseOrderDepositDto() // // { // // orderid = Convert.ToInt32(model.wx_SzzyOrder.ORDERID), // // deposit = string.Join(",", ckDeposit) // // }; // // var urlDe = cache_BL.GetValue_Parameter(Parameter.Core_ZxdService_OrderDeposit_Use); // // var jsonDe = sHelper.createSignEncodingStr(dtoDe.ToJson(), SecurityHelper.OrderClientIdKey); // // retmsg = Utility.PostData(urlDe + "?" + jsonDe, Encoding.UTF8); // // //retmsg = sHelper.decyptData(SecurityHelper.OrderClientIdKey, retmsg); // // var retmessageDe = WebHelper.JsonHelper.JsonDivertToObj(retmsg); // // if (retmessageDe.result) // // { // // decimal allDeSum = 0; // // foreach (var item in ckDeposit) // // { // // var id = item; // // var info = _orderDepoist.Get(p => p.ID == id); // // if (info != null) // // { // // info.ISUSE = 1; // // info.ORDERID = dtoDe.orderid; // // _orderDepoist.Update(info); // // allDeSum += info.PAYPRICE; // // } // // var orderPay2 = _orderPay.Get(p => p.ORDERID == id); // // if (orderPay2 != null) // // { // // orderPay2.ORDERID = dtoDe.orderid; // // _orderPay.Update(orderPay2); // // } // // var order = wx_SzzyOrder_BL.Get(p => p.ORDERID == dtoDe.orderid); // // if (order != null) // // { // // var arrivalPayList = _orderPay.GetList(p => p.ORDERID == dtoDe.orderid && p.AUDITSTATUS == 1); // // var payDate = arrivalPayList.OrderByDescending(p => p.PAYDATE).First().PAYDATE; // // //order.ORDERSTATUS = "200"; // // //order.ORDERSTATUSNAME = "已支付"; // // if (order.NEEDPAY <= allDeSum)//使用的订金超出了支付金额的话,那么就是已支付 // // { // // order.ORDERSTATUS = "200"; // // order.ORDERSTATUSNAME = "已支付"; // // } // // else // // { // // order.ORDERSTATUS = "190";//已提交支付 // // order.ORDERSTATUSNAME = "已提交支付"; // // } // // //if (order.ARRIVALPAY.HasValue) // // // order.ARRIVALPAY += info.PAYPRICE; // // //else // // // order.ARRIVALPAY = info.PAYPRICE; // // order.ARRIVALPAY = arrivalPayList.Sum(p => p.PAYPRICE); // // order.ARRIVALTIME = payDate; // // order.FINALPAY = order.ARRIVALPAY; // // wx_SzzyOrder_BL.Update(order); // // } // // } // // //return Json(new { result = true }, JsonRequestBehavior.AllowGet); // // //return JsonHandler.ManageMessage(errors.Error, result, model.wx_SzzyOrder.ORDERID.ToString()); // // } // // else // // { // // errors.Add("订金错误"); // // } // //} // #endregion 订金使用 // #region 支付记录提交 // //if (dto != null && dto.paytype != null && dto.paytype.Count() > 0)//有支付记录,进行支付提交 // //{ // // var Payurl = cache_BL.GetValue_Parameter(Parameter.Core_ZxdService_OrderPay); // // for (int i = 0; i < dto.paytype.Count(); i++) // // { // // OrderPayDto payDto = new OrderPayDto() // // { // // needpay = theModel.needpay.Value, // // orderid = Convert.ToInt32(model.wx_SzzyOrder.ORDERID), // // paydate = dto.paydate[i], // // payname = dto.payname[i], // // payno = dto.payno[i], // // payprice = dto.payprice[i], // // paytype = dto.paytype[i], // // remark = dto.remark[i], // // companycode = Utility.GetSettingOrNullByKey("DataClientCode"), // // creatorname = UserName, // // creator = Convert.ToInt32(Eid) // // }; // // var jsonPay = sHelper.createSignEncodingStr(payDto.ToJson(), SecurityHelper.OrderClientIdKey); // // retmsg = Utility.PostData(Payurl + "?" + jsonPay, Encoding.UTF8); // // retmsg = sHelper.decyptData(SecurityHelper.OrderClientIdKey, retmsg); // // var retmessagePay = WebHelper.JsonHelper.JsonDivertToObj(retmsg); // // if (retmessagePay.result) // // { // // try // // { // // decimal fianlPay = 0; // // var orderPay = new WX_SZZYORDERPAY() // // { // // ID = new SEQUENCES_BL().Seq_base_get(), // // ORDERID = payDto.orderid, // // NEEDPAY = payDto.needpay, // // PAYTYPE = payDto.paytype, // // PAYTYPENAME = GetPayTypeName(payDto.paytype), // // PAYDATE = payDto.paydate, // // PAYPRICE = payDto.payprice, // // PAYNAME = payDto.payname, // // REMARK = payDto.remark, // // CTIME = DateTime.Now, // // PAYNO = payDto.payno.Trim(), // // SID = decimal.Parse(retmessagePay.retmsg), // // CREATOR = Eid, // // CREATORNAME = UserName // // }; // // fianlPay = orderPay.PAYPRICE; // // _orderPay.Add(orderPay); // // var order = wx_SzzyOrder_BL.Get(p => p.ORDERID == payDto.orderid); // // if (order != null) // // { // // if (order.ARRIVALPAY.HasValue) // // order.ARRIVALPAY += fianlPay; // // else // // order.ARRIVALPAY = fianlPay; // // order.ORDERSTATUS = "190";//已提交支付 // // order.ORDERSTATUSNAME = "已提交支付"; // // wx_SzzyOrder_BL.Update(order); // // } // // } // // catch (Exception xx) // // { // // LogHelper.Error("支付记录添加到本地库异常:" + xx.ToString()); // // errors.Add("支付记录添加到本地库异常!"); // // } // // //return JsonHandler.ManageMessage("提交成功", true); // // } // // else // // { // // result = false; // // errors.Add("订单创建成功,支付提交失败,请联系管理员!"); // // //return JsonHandler.ManageMessage("订单创建成功,支付提交失败,请联系管理员!", false); // // } // // } // //} // #endregion 支付记录提交 // #region 支付记录提交2 // var orderuselist = new List() { // new OrderuseDto() { orderid = Convert.ToInt32(model.wx_SzzyOrder.ORDERID), needpay = model.wx_SzzyOrder.NEEDPAY.Value, arrivalpay = 0 } // }; // if (depprice.HasValue && depprice.Value > 0) // { // var dto1 = new PayUseDto // { // resid = resid, // depprice = depprice, // orderuselist = orderuselist, // channel = Convert.ToInt32(theModel.channel) // }; // var ret1 = _orderDepoist.Use(dto1); // if (!ret1.result) // { // errors.Add("余额使用失败,请重试!"); // result = false; // } // } // if (dto != null && dto.paytype != null && dto.paytype.Count() > 0)//有支付记录,进行支付提交 // { // var paylist = new List(); // for (int i = 0; i < dto.paytype.Count(); i++) // { // var paytypename = GetPayTypeName(dto.paytype[i]); // paylist.Add(new PayInfoDto() // { // resid = model.wx_SzzyOrder.RESID, // paytype = dto.paytype[i], // paytypename = paytypename, // paydate = dto.paydate[i], // payprice = dto.payprice[i], // payname = dto.payname[i], // remark = dto.remark[i], // payno = dto.payno[i], // isuse = 0, // companycode = Utility.GetSettingOrNullByKey("DataClientCode"), // tradeno = null, // creator = Convert.ToInt32(Eid), // creatorname = UserName // }); // } // var dto2 = new PayDto2 // { // orderuselist = orderuselist, // resid = resid, // //depprice = depprice, // deptcode = model.deptCode, // paylist = paylist // }; // var ret2 = _orderDepoist.Pay2(dto2); // if (!ret2.result) // { // errors.Add("支付记录提交失败,请重试!"); // result = false; // } // } // #endregion 支付记录提交2 // } // return JsonHandler.ManageMessage(errors.Error, result, model.wx_SzzyOrder.ORDERID.ToString()); // } // else // { // return JsonHandler.ManageMessage(string.IsNullOrEmpty(retmessage.retMsg) ? Utility.GetCheckEnumNameByValue(retmessage.retCode) : retmessage.retMsg, false); // } // //return JsonHandler.ManageMessage(errors.Error, true); //} [AuthorizeRedirect(Roles = InitRights.CONST_订单列表三方)] public ActionResult OrderListThird() { //ToolBar ToolBar tool = new ToolBar(); string[] toolbtn = new ToolButtonView().ToolButtonRight(InitRights.订单列表三方, userRightId); tool.AllowButton(toolbtn); ViewBag.ToolBar = tool; //table Pager pager = new Pager() { page = 1, rows = 20 }; string tableId = "tablist"; Table tab = new Table(tableId); tab.AddHiddenHeadCol("SZZYORDERID", "订单权限ID"); tab.AddHeadCol("RESID", "", "客户ID"); tab.AddHeadCol("CNAME", "", "客户"); tab.AddHeadCol("GNAME", "", "组别"); tab.AddHeadCol("INNERUSERID", "", "工号"); tab.AddHeadCol("SUBPRODUCTNAME", "", "产品"); tab.AddHeadCol("NEEDPAY", "", "应付金额"); //tab.AddHeadCol("FINALPAY", "", "实付金额"); tab.AddHeadCol("ARRIVALPAY", "", "到账金额"); tab.AddHeadCol("ARRIVALTIME", "", "到账时间"); tab.AddHeadCol("ORDERID", "", "订单ID"); tab.AddHeadCol("ORDERTYPE", "", "订单类型"); tab.AddHeadCol("ORDERSTATUSNAME", "", "订单状态"); tab.AddHeadCol("CTIME", "", "下单时间"); tab.AddHeadCol("OTIME", "", "开通时间"); tab.AddHeadCol("OPENDAYS", "", "天数"); tab.AddHeadCol("GIFTDAYS", "", "赠送天数"); tab.AddHeadCol("FCTEXT", "", "订单分成"); tab.AddHeadCol("SOURCE", "", "客户来源"); tab.AddHeadCol("CUSTOMERUSERNAME", "", "客户微信用户名"); tab.AddHeadCol("ISOPEN", "", "参与分成"); tab.AddHeadCol("CONTRACTCODE", "", "合同编号"); tab.AddHeadCol("HASHGRECORD", "", "合规"); tab.AddHeadRow(); ViewBag.gridTable = tab.GetHead() + Pagination.GetPage(pager, tableId, "5,10,15,20"); ViewBag.productList = getAllProductList(); ViewBag.inneruserid = UserId; ViewBag.userGroupId = userGroupId; ViewBag.saleDeptId = saleDeptId; var roles = DataCacheHelper.GetCache().Get_RoleCodes(userRoleId); ViewBag.roleCodes = roles; //if (roles.Contains("[ddlb]")) //{ // ViewBag.roleCodes = "[GLY]"; //} //else //{ // ViewBag.roleCodes = roles; //} return View(); } [HttpPost] [AuthorizeRedirect(Roles = InitRights.CONST_订单列表三方)] public JsonResult GetOrderListByChannel(Pager pager, string resId, string contractCode, string szzyOrderId, decimal productId, decimal subProductId, decimal orderType, string stime, string etime, string orderStatus, string ostime, string oetime, string fcText, string columns) { var ch = getEidCh(); List list = wx_SzzyOrder_BL.GetListByChannel(ref pager, resId, contractCode, szzyOrderId, productId, subProductId, orderType, stime, etime, 0, "", 0, orderStatus, ostime, oetime, fcText, null, ch); Table table = new Table(columns, true); table.gridPager = pager; foreach (var model in list) { table.AddHiddenCol(model.SZZYORDERID); var linkUrl = string.Format("{2}" , "客户详细" , "/Csvr/CustomerInfo/CustomerDetail?resid=" + model.RESID , model.RESID); table.AddCol(model.RESID); table.AddCol(model.CNAME); table.AddCol(InnerUserHelper.Instance.GetGroupName(InnerUserHelper.Instance.GetGroupId(model.INNERUSERID))); table.AddCol(InnerUserHelper.Instance.EidAndName(model.INNERUSERID)); table.AddCol(model.SUBPRODUCTNAME); table.AddCol(model.NEEDPAY); //table.AddCol(model.FINALPAY); table.AddCol(model.ARRIVALPAY); table.AddCol(model.ARRIVALTIME); table.AddCol(model.ORDERID); table.AddCol(getOrderTypeStr(model.ORDERTYPE.Value)); table.AddCol(model.ORDERSTATUSNAME); table.AddCol(model.CTIME); table.AddCol(model.OTIME); table.AddCol(model.OPENDAYS); table.AddCol(model.GIFTDAYS); table.AddCol(model.FCTEXT); table.AddCol(Utility.getSourceText(model.SOURCE)); table.AddCol(model.CUSTOMERUSERNAME); table.AddCol(model.ISOPEN == 1 ? "是" : ""); //if (model.RISKCTRLSTATUS >= 1) //{ // table.AddCol(string.Format("{1}", model.ORDERID, model.CONTRACTCODE)); //} //else if (model.RISKCTRLSTATUS == -1) //{ // table.AddCol(string.Format("{1}", model.ORDERID, model.CONTRACTCODE)); //} //else //{ // table.AddCol(string.Format("{1}", model.ORDERID, model.CONTRACTCODE)); //} table.AddCol(model.CONTRACTCODE); table.AddCol(model.HASHGRECORD == 1 ? "是" : ""); table.AddRow(); } var json = new { totalPages = pager.totalPages, totalRows = pager.totalRows, rowsList = table.GetRows() }; return Json(json, JsonRequestBehavior.AllowGet); } #endregion 订单列表 #region 导出 public FileResult Export(OrderQueryDto querydto, QueryUserComboDto usercomboDto) { var deptList = _CacheQ.GetList_SalesDepartMent().Where(p => p.CHANNELDEF != null); //decimal saleDeptId = Request["saleDeptId"].GetDecimal(0); //var groupId = Request["groupId"]; //decimal innerUserId = Request["userId"].GetDecimal(0); string checkedFilds = PageRequest.GetQueryString("checkedFilds"); checkedFilds = checkedFilds.Replace("[]", ""); checkedFilds += "[FCEID][FCBL][FCJE][AREA]"; string checkedTitles = PageRequest.GetQueryString("checkedTitles"); checkedTitles += ",分成工号,分成比例,分成金额,地区"; //LogHelper.Info(checkedFilds); //LogHelper.Info(checkedTitles); Pager pager = new Pager() { page = 1, rows = int.MaxValue }; List list = wx_SzzyOrder_BL.GetList(ref pager, querydto, usercomboDto); var data = new List(); foreach (var item in list) { var area = mobileareaQ.GetMobileArea(item.RESID); string htzhuangtai = string.Empty; //合同状态 if (item.RISKCTRLSTATUS >= 1) { htzhuangtai = "已审核"; } else if (item.RISKCTRLSTATUS == -1) { htzhuangtai = "合规驳回"; } else if (item.RISKCTRLSTATUS == null) { htzhuangtai = "未签订"; } else { htzhuangtai = "未审核"; } var deptName = "未知"; if (!string.IsNullOrEmpty(item.DEPTCODE)) { var dept = deptList.FirstOrDefault(p => p.SALEDEPTCODE == item.DEPTCODE); if (dept != null) { deptName = dept.DEPTNAME; } } if (string.IsNullOrEmpty(item.FCTEXT)) { data.Add(new WX_SZZYORDER_EXPORT() { RESID = item.RESID, DEPTCODE = deptName, CNAME = item.CNAME, GNAME = InnerUserHelper.Instance.GetGroupName(InnerUserHelper.Instance.GetGroupId(item.INNERUSERID)), INNERUSERID = item.INNERUSERID, SUBPRODUCTNAME = item.SUBPRODUCTNAME, NEEDPAY = item.NEEDPAY, FINALPAY = item.FINALPAY, ARRIVALPAY = item.ARRIVALPAY, ARRIVALTIME = item.ARRIVALTIME, ORDERID = item.ORDERID, ORDERTYPE = item.ORDERTYPE, ORDERSTATUSNAME = item.ORDERSTATUSNAME, CTIME = item.CTIME, OTIME = item.OTIME, FINACEPAYDATE = item.FINACEPAYDATE, OPENDAYS = item.OPENDAYS, GIFTDAYS = item.GIFTDAYS, FCTEXT = InnerUserHelper.Instance.GetEid(item.INNERUSERID) + ":100%", FCEID = InnerUserHelper.Instance.GetEidAndTrueName(item.INNERUSERID), FCBL = "100%", FCJE = item.ARRIVALPAY, SOURCE = item.SOURCE, CUSTOMERUSERNAME = item.CUSTOMERUSERNAME, ISOPEN = item.ISOPEN, CONTRACTCODE = item.CONTRACTCODE, HASHGRECORD = item.HASHGRECORD, RISKCTRLSTATUS = htzhuangtai, AREA = area }); } else { int index = item.FCTEXT.IndexOf(" "); if (index > -1) { //找到多人分成 var fcs = Regex.Split(item.FCTEXT, @"\s{2,}"); foreach (var fcItem in fcs) { var subItem = fcItem.Split(':'); var fceid = subItem[0]; var fcje = item.ARRIVALPAY.HasValue ? (item.ARRIVALPAY.Value * (Decimal.Parse(subItem[1].Replace("%", "")) / 100)) : (decimal?)null; var fceidname = InnerUserHelper.Instance.GetEidAndTrueName(InnerUserHelper.Instance.GetUserIdByEidOrName(fceid)); data.Add(new WX_SZZYORDER_EXPORT() { RESID = item.RESID, DEPTCODE = deptName, CNAME = item.CNAME, GNAME = InnerUserHelper.Instance.GetGroupName(InnerUserHelper.Instance.GetGroupId(item.INNERUSERID)), INNERUSERID = item.INNERUSERID, SUBPRODUCTNAME = item.SUBPRODUCTNAME, NEEDPAY = item.NEEDPAY, FINALPAY = item.FINALPAY, ARRIVALPAY = item.ARRIVALPAY, ARRIVALTIME = item.ARRIVALTIME, ORDERID = item.ORDERID, ORDERTYPE = item.ORDERTYPE, ORDERSTATUSNAME = item.ORDERSTATUSNAME, CTIME = item.CTIME, OTIME = item.OTIME, FINACEPAYDATE = item.FINACEPAYDATE, OPENDAYS = item.OPENDAYS, GIFTDAYS = item.GIFTDAYS, FCTEXT = item.FCTEXT, FCEID = fceidname, FCBL = subItem[1], FCJE = fcje, SOURCE = item.SOURCE, CUSTOMERUSERNAME = item.CUSTOMERUSERNAME, ISOPEN = item.ISOPEN, CONTRACTCODE = item.CONTRACTCODE, HASHGRECORD = item.HASHGRECORD, RISKCTRLSTATUS = htzhuangtai, AREA = area }); } } else { var subItem = item.FCTEXT.Split(':'); var fceid = subItem[0]; var fcje = item.ARRIVALPAY.HasValue ? (item.ARRIVALPAY.Value * (Decimal.Parse(subItem[1].Replace("%", "")) / 100)) : (decimal?)null; var fceidname = InnerUserHelper.Instance.GetEidAndTrueName(InnerUserHelper.Instance.GetUserIdByEidOrName(fceid)); //只有一个人分成 data.Add(new WX_SZZYORDER_EXPORT() { RESID = item.RESID, DEPTCODE = deptName, CNAME = item.CNAME, GNAME = InnerUserHelper.Instance.GetGroupName(InnerUserHelper.Instance.GetGroupId(item.INNERUSERID)), INNERUSERID = item.INNERUSERID, SUBPRODUCTNAME = item.SUBPRODUCTNAME, NEEDPAY = item.NEEDPAY, FINALPAY = item.FINALPAY, ARRIVALPAY = item.ARRIVALPAY, ARRIVALTIME = item.ARRIVALTIME, ORDERID = item.ORDERID, ORDERTYPE = item.ORDERTYPE, ORDERSTATUSNAME = item.ORDERSTATUSNAME, CTIME = item.CTIME, OTIME = item.OTIME, FINACEPAYDATE = item.FINACEPAYDATE, OPENDAYS = item.OPENDAYS, GIFTDAYS = item.GIFTDAYS, FCTEXT = item.FCTEXT, FCEID = fceidname, FCBL = subItem[1], FCJE = fcje, SOURCE = item.SOURCE, CUSTOMERUSERNAME = item.CUSTOMERUSERNAME, ISOPEN = item.ISOPEN, CONTRACTCODE = item.CONTRACTCODE, HASHGRECORD = item.HASHGRECORD, RISKCTRLSTATUS = htzhuangtai, AREA = area }); } } } return File(ExcelHelper.ExportListModelToExcel(data, "订单列表", 50000, checkedFilds, checkedTitles, DataFormart), "application/ms-excel", PageRequest.GetDlownLoadName("订单列表.xls")); } //用作委托传递 public string DataFormart(string key, object value) { string formartValue = string.Empty; switch (key) { case "SOURCE": formartValue = value != null ? Utility.getSourceText(value.ToString()) : ""; break; case "INNERUSERID": formartValue = InnerUserHelper.Instance.EidAndName(Convert.ToDecimal(value)).ToString(); break; case "ORDERTYPE": formartValue = getOrderTypeStr(Convert.ToDecimal((value ?? "0").ToString())); break; default: formartValue = string.Format("{0}", value); break; } return formartValue; } #endregion 导出 #region 订单合规回访 [HttpGet] [AuthorizeRedirect(Roles = InitRights.CONST_订单合规回访)] public ActionResult HgList() { var isDZHF = _CacheQ.GetValue_Parameter("SYS_DZHF"); ToolBar tool = new ToolBar(); string[] toolbtn = new ToolButtonView().ToolButtonRight(InitRights.订单合规回访, userRightId); tool.AllowButton(toolbtn); tool.AddOtherButton("Other1", "订单合规回访", "icon-export", "hg_Click", true); ViewBag.ToolBar = tool; //table Pager pager = new Pager() { page = 1, rows = 20 }; string tableId = "tablist"; Table tab = new Table(tableId); tab.AddHiddenHeadCol("SZZYORDERID", "订单权限ID"); tab.AddHeadCol("ORDERID", "", "订单号"); tab.AddHeadCol("RESID", "", "客户ID"); tab.AddHeadCol("cname", "", "客户姓名"); tab.AddHeadCol("username", "", "客户姓名"); tab.AddHeadCol("INNERUSERID", "", "客服"); tab.AddHeadCol("INNERUSERID", "", "事业部"); tab.AddHeadCol("INNERUSERID", "", "组别"); tab.AddHeadCol("INNERUSERID", "", "产品"); tab.AddHeadCol("ORDERSTATUSNAME", "", "订单状态"); tab.AddHeadCol("INNERUSERID", "", "合规审核状态"); tab.AddTipHeadCol("RECORDTIME", "100px", "希望回访时间", "/image/icon/tip.png", "希望回访时间是客户希望接受回访的时间, AI外呼会优先按照这个时间进行呼叫"); var statusTitle = "回访状态说明: "; statusTitle += " 1.忽略不做AI外呼:订单不在AI外呼范围内,不进行AI外呼 "; statusTitle += " 2.尚未进行AI外呼:订单尚未完全满足AI外呼要求,因此暂不进行AI外呼 "; statusTitle += " 3.等待AI外呼:订单正在等待AI外呼 "; statusTitle += " 4.AI外呼需人工介入:订单AI外呼需要人工介入处理 "; statusTitle += " 5.AI外呼成功:订单已经AI外呼成功 "; statusTitle += " 6.人工回访成功:订单已经人工回访成功 "; statusTitle += " 7.电子回访成功:订单已经电子回访成功 "; tab.AddTipHeadCol("AISTATUS", "100px", "回访状态", "/image/icon/tip.png", statusTitle); if (isDZHF == "1") { tab.AddHeadCol("DZHF", "", "电子回访"); } tab.AddHeadCol("INNERUSERID", "", "AI外呼时间"); tab.AddHeadCol("INNERUSERID", "", "录音"); tab.AddHeadCol("INNERUSERID", "", "聊天记录"); tab.AddHeadCol("NEEDPAY", "", "订单原价"); tab.AddHeadCol("FINALPAY", "", "下单金额"); tab.AddHeadCol("ARRIVALPAY", "", "到账金额"); tab.AddHeadCol("ORDERTYPE", "", "订单类型"); tab.AddHeadCol("OPENDAYS", "", "开通天数"); tab.AddHeadCol("GIFTDAYS", "", "赠送天数"); tab.AddHeadCol("CTIME", "", "下单时间"); tab.AddHeadCol("ARRIVALTIME", "", "到账时间"); tab.AddHeadCol("CONTRACTCODE", "", "合同编号"); tab.AddHeadCol("INNERUSERID", "", "订单合规审核人"); tab.AddHeadCol("PRODUCTINVESTTIME", "", "合规审核时间"); //tab.AddHeadCol("COMPANYCODE", "", "分公司"); //tab.AddHeadCol("INNERUSERID", "", "工号"); //tab.AddHeadCol("SUBPRODUCTNAME", "", "产品"); //tab.AddHeadCol("NEEDPAY", "", "应付金额"); //tab.AddHeadCol("FINALPAY", "", "实付金额"); //tab.AddHeadCol("ARRIVALPAY", "", "到账金额"); //tab.AddHeadCol("ARRIVALTIME", "", "到账时间"); //tab.AddHeadCol("ORDERTYPE", "", "订单类型"); //tab.AddHeadCol("ORDERSTATUSNAME", "", "订单状态"); //tab.AddHeadCol("CTIME", "", "下单时间"); //tab.AddHeadCol("OPENDAYS", "", "开通天数"); //tab.AddHeadCol("GIFTDAYS", "", "赠送天数"); //tab.AddHeadCol("OTIME", "", "开通时间"); //tab.AddHeadCol("SOURCE", "", "客户来源"); //tab.AddHeadCol("CONTRACTCODE", "", "合同编号"); //tab.AddHeadCol("HASHGRECORD", "", "合规"); //tab.AddHiddenHeadCol("PRICE", "金额"); //tab.AddHiddenHeadCol("PRODUCTLEVEL", "等级"); //tab.AddHiddenHeadCol("PRODUCTINVESTTIME", "风险时间"); //tab.AddHiddenHeadCol("PRODUCTINVESTTYPE", "风险类型"); tab.AddHeadRow(); ViewBag.gridTable = tab.GetHead() + Pagination.GetPage(pager, tableId, "10,20,50"); ViewBag.productList = getAllProductList(); //ViewBag.inneruserid = UserId; //ViewBag.userGroupId = userGroupId; //ViewBag.saleDeptId = saleDeptId; ViewBag.roleCodes = DataCacheHelper.GetCache().Get_RoleCodes(userRoleId); ViewBag.isDZHF = isDZHF; var audioUrl = cache_BL.GetValue_Parameter(Parameter.Core_ZxdService_HgListAudioList); ViewBag.audioUrl = audioUrl; var aiCallTypeDic = cache_BL.GetAiHgrecordStatusnameKV(); List aiCallType = new List(); foreach (var item in aiCallTypeDic) { aiCallType.Add(new SelectListItem { Text = item.Value, Value = item.Key.ToString() }); } ViewBag.aiCallType = aiCallType; return View(); } [HttpGet] public ActionResult HgRecordList() { ViewBag.url = ""; return View(); } //[HttpPost] //[AuthorizeRedirect(Roles = InitRights.CONST_订单合规回访)] //public JsonResult HgList(Pager pager, string resId, string contractCode, string szzyOrderId, decimal productId, decimal subProductId, decimal orderType, string stime, string etime, string aistime, string aietime, string orderStatus, string ostime, string oetime, string code, string channel, string columns, string mobile, int? aiCallType) //{ // WX_SZZYORDER_BL wxbll = new WX_SZZYORDER_BL(); // var isDZHF = _CacheQ.GetValue_Parameter("SYS_DZHF"); // var url = cache_BL.GetValue_Parameter(Parameter.Core_ZxdService_HgList); // //"Order/Get?page={page}&limit={limit}&orderId={orderId}&orderType={orderType}&stime={stime}&etime={etime}&orderStatus={orderStatus}&resId={resId}&companyCode={companyCode}&szzyOrderId={szzyOrderId}&productId={productId}&subProductId={subProductId}" // //var json = sHelper.createSignEncodingStr(new ContractAuditDto() { OrderId = Convert.ToInt32(orderId) }.ToJson(), SecurityHelper.OrderClientIdKey); // if (string.IsNullOrEmpty(mobile) && string.IsNullOrEmpty(resId) && string.IsNullOrEmpty(channel)) // { // return Json(new { }, JsonRequestBehavior.AllowGet); // } // if (!string.IsNullOrWhiteSpace(mobile)) // { // resId = ResUtil.CreateResId(mobile.Trim()); // } // var para = "page=" + pager.page + "&limit=" + pager.rows; // if (orderType > 0) // { // para += "&orderType=" + orderType; // } // if (!string.IsNullOrEmpty(szzyOrderId)) // { // para += "&orderId=" + szzyOrderId; // } // if (!string.IsNullOrEmpty(stime)) // { // para += "&stime=" + stime; // } // if (!string.IsNullOrEmpty(etime)) // { // para += "&etime=" + etime; // } // if (!string.IsNullOrEmpty(orderStatus)) // { // para += "&orderStatus=" + orderStatus; // } // if (!string.IsNullOrEmpty(resId)) // { // para += "&resId=" + resId; // } // if (!string.IsNullOrEmpty(code)) // { // para += "&companyCode=" + code; // } // if (productId > 0) // { // para += "&productId=" + productId; // } // if (subProductId > 0) // { // para += "&subProductId=" + subProductId; // } // if (!string.IsNullOrEmpty(channel)) // { // para += "&channel=" + channel; // } // if (aiCallType >= -3) // { // para += "&aiCallType=" + aiCallType; // } // if (!string.IsNullOrWhiteSpace(aistime)) // { // para += "&aistime=" + aistime; // } // if (!string.IsNullOrWhiteSpace(aietime)) // { // para += "&aietime=" + aietime; // } // var retmsg = Utility.PostData(url + "?" + para, Encoding.UTF8); // var retmessage = WebHelper.JsonHelper.JsonDivertToObj(retmsg); // //LogHelper.Info("retmessage:" + retmessage.ToJson()); // if (!retmessage.result) // { // LogHelper.Error("更新中心点订单合规错误"); // } // Table table = new Table(columns, true); // pager.totalRows = retmessage.retcode; // //pager.totalPages = retmessage.retcode/pager.rows // table.gridPager = pager; // var orders = retmessage.retmsg; // var resids = orders.Select(p => p.resid).ToArray(); // var blackNumberList = _blacknumeberQ.GetByResIds(resids, "H"); // var clientCode = Utility.GetSettingOrNullByKey("DataClientCode"); // //var handerBlackNumeber = true; // //if (orders.Any(p => p.companycode == clientCode)) // //{ // // handerBlackNumeber = false; // //} // foreach (var model in orders) // { // #region 注册 // if (model.companycode != clientCode) // { // res_Customer_BL.ResgisterCustomer(model.mobile, model.resid, "hgorder"); // //if (handerBlackNumeber) // //if (model.companycode == "QBJZ" || model.companycode == "QBJX" || model.companycode == "QBJY" || model.companycode == "YSGP" || model.companycode == "DNZZ" || model.channel == 1100) // //{ // // res_Customer_BL.ResgisterCustomer(model.mobile, model.resid, "hgorder"); // // //if (!blackNumberList.Any(p => p.RESID == model.resid)) // // //{ // // // var number = new CSVR_BLACKNUMBER() { RESID = model.resid, BLACKTYPE = "H", REASON = "其它部门客户,合规才能拨打", CREATEUSRE = UserId }; // // // _blacknumeber.Create(ref errors, number); // // //} // //} // } // #endregion 注册 // table.AddHiddenCol(string.Empty); // var linkUrl = string.Format("{2}" // , "客户详细" // , "/Csvr/CustomerInfo/CustomerDetail?isFromHg=1&resid=" + model.resid // , model.resid); // table.AddCol(linkUrl); // table.AddCol(model.companyName); // table.AddCol(model.cname); // table.AddCol(InnerUserHelper.Instance.EidAndName(model.inneruserid)); // table.AddCol(model.subproductname); // table.AddCol(model.needpay); // table.AddCol(model.finalpay); // table.AddCol(model.arrivalpay); // table.AddCol(model.arrivaltime); // table.AddCol(model.orderid); // table.AddCol(getOrderTypeStr(model.ordertype.Value)); // table.AddCol(model.orderstatusname); // table.AddCol(model.ctime); // //增加开通和赠送天数 // table.AddCol(model.opendays); // table.AddCol(model.giftdays); // table.AddCol(model.otime); // table.AddCol(Utility.getSourceText(model.source)); // if (model.riskctrlstatus >= 1) // { // table.AddCol(string.Format("{1}", model.orderid, model.contractcode, model.szzyorderid, model.subproductid, model.subproductname, model.opendays, model.softusername, model.contractcode, model.riskctrlstatus, model.rejectremark, model.price, model.productLevel, model.productInvestTime, model.productInvestType)); // } // else if (model.riskctrlstatus == -1) // { // table.AddCol(string.Format("{1}", model.orderid, model.contractcode, model.szzyorderid, model.subproductid, model.subproductname, model.opendays, model.softusername, model.contractcode, model.riskctrlstatus, model.rejectremark, model.price, model.productLevel, model.productInvestTime, model.productInvestType)); // } // else // { // table.AddCol(string.Format("{1}", model.orderid, model.contractcode, model.szzyorderid, model.subproductid, model.subproductname, model.opendays, model.softusername, model.contractcode, model.riskctrlstatus, model.rejectremark, model.price, model.productLevel, model.productInvestTime, model.productInvestType)); // } // var recordTime = model.ai_hgrecord_time; // var setTimelink = ""; // var startTime = -1; // var endTime = -1; // if (model.ai_hgrecord_time == "-") // { // model.ai_hgrecord_time = "不限制"; // } // setTimelink = string.Format("
{0}
", model.ai_hgrecord_time); // if (recordTime != null && recordTime.Split('-').Length > 1) // { // var str1 = recordTime.Split('-').ToList(); // var time1 = str1[0].Split(':'); // if (time1.Length > 1) // { // startTime = Convert.ToInt32(time1[0]) * 60 + Convert.ToInt32(time1[1]); // } // var time2 = str1[1].Split(':'); // if (time2.Length > 1) // { // endTime = Convert.ToInt32(time2[0]) * 60 + Convert.ToInt32(time2[1]); // } // } // List recallStatus = new List // { // (int)EnumAiCallState.AI外呼失败未答完, // (int)EnumAiCallState.AI外呼未接通, // (int)EnumAiCallState.等待AI重拨, // (int)EnumAiCallState.AI外呼失败挂断 // }; // if (model.hasbtn == 1 && recallStatus.Contains(model.ai_hgrecord_status.Value)) // { // setTimelink = string.Format("", model.ai_hgrecord_time, model.orderid, startTime, endTime); // } // else if (model.ai_hgrecord_status == (int)EnumAiCallState.尚未进行AI外呼 // || model.ai_hgrecord_status == (int)EnumAiCallState.等待AI外呼) // { // setTimelink = string.Format("", model.ai_hgrecord_time, model.orderid, startTime, endTime); // } // table.AddCol(setTimelink); // var statuName = model.ai_hgrecord_statusname; // if (model.ai_hgrecord_status == (int)EnumAiCallState.尚未进行AI外呼) // { // statuName = EnumAiCallState.尚未进行AI外呼.ToString(); // } // var audioLink = statuName; // if (model.hasaiaudio == 1 || (model.hashgrecord != null && model.hashgrecord.Value == 1)) // { // audioLink = string.Format("", statuName, model.orderid, '"' + model.companycode + '"'); // } // else if ((model.hashgrecord != null && model.hashgrecord.Value == 2)) // { // audioLink = string.Format("", statuName, model.orderid); // } // table.AddCol(audioLink); // table.AddCol(model.hashgrecord == 1 ? "是" : ""); // table.AddHiddenCol(model.price); // table.AddHiddenCol(model.productLevel); // table.AddHiddenCol(model.productInvestTime); // table.AddHiddenCol(model.productInvestType); // if (isDZHF == "1") // { // if (model.CpConfirmOrderId.HasValue) // table.AddCol(string.Format("电子回访", model.orderid, Utility.UserMd5(model.CpConfirmOrderId.Value.ToString()))); // else // table.AddCol(""); // } // table.AddRow(); // } // var json = new // { // totalPages = pager.totalPages, // totalRows = pager.totalRows, // rowsList = table.GetRows() // }; // return Json(json, JsonRequestBehavior.AllowGet); //} /// /// 检查客户是够ai外呼状态 /// /// /// public JsonResult CheckDailPhone(string resId) { string aiurl = _CacheQ.GetValue_Parameter(Parameter.Core_ZxdService_GetAiTime);//获取ai状态地址 var para = "resId=" + resId; var retmsg = Utility.PostData(aiurl + "?" + para, Encoding.UTF8); var retmessage = WebHelper.JsonHelper.JsonDivertToObj(retmsg); var aiOrderDtos = retmessage.retmsg; var reg = ""; var type = "0"; var aiconfig = _CacheQ.GetAiConfig(); if (aiconfig.Count == 0) { string configUrl = _CacheQ.GetValue_Parameter(Parameter.Core_ZxdService_GetAiConfig); var configretmsg = Utility.PostData(configUrl, Encoding.UTF8); var configmessage = WebHelper.JsonHelper.JsonDivertToObj(configretmsg); var configList = configmessage.retmsg; aiconfig.AddRange(configList); var cacheKey = "AiCallConfig"; CacheHelper.Set(cacheKey, configList); } var config = aiconfig.FirstOrDefault(); var recall = config.ReCallMins.Count() > 0 ? true : false; List cancelStatus = new List { (int)EnumAiCallState.等待AI外呼, (int)EnumAiCallState.等待AI重拨, (int)EnumAiCallState.尚未进行AI外呼 }; //如果有设置重拨 则 归类到 待ai外呼 否则归类到 需人工介入 if (recall && config.ReCallStatus.Count > 0) { cancelStatus.AddRange(config.ReCallStatus); } List exceptStatus = new List { (int)EnumAiCallState.忽略不做AI外呼, (int)EnumAiCallState.人工回访成功, }; if (aiOrderDtos.Where(n => cancelStatus.Contains(n.ai_hgrecord_status.Value)).Count() > 0) { reg = "是否取消该客户的AI外呼,直接拨打"; type = "2"; } else if (aiOrderDtos.Exists(n => n.ai_hgrecord_status == (int)EnumAiCallState.已提交AI外呼)) { reg = "该客户已提交AI外呼,无法取消AI外呼,是否继续拨打"; type = "1"; } else if (aiOrderDtos.Where(n => n.ai_hgrecord_status == (int)EnumAiCallState.AI外呼成功).Count() == aiOrderDtos.Where(n => n.ai_hgrecord_status != null && !exceptStatus.Contains(n.ai_hgrecord_status.Value)).Count()) { reg = "该客户今天的订单已都被成功外呼,是否继续拨打?"; type = "3"; } var json = new { reg = reg, type = type }; return Json(json, JsonRequestBehavior.AllowGet); } public JsonResult UpdateAiStatus(string resId) { var ret = UpdateOrderAiStatus(resId, (int)EnumAiCallState.AI外呼取消, 1); var json = new { reg = ret.result }; return Json(json, JsonRequestBehavior.AllowGet); } //[AuthorizeRedirect(Roles = InitRights.CONST_订单列表)] public ActionResult HgRecord(string resid, decimal orderid) { ViewBag.resid = resid; ViewBag.orderid = orderid; Table tab = new WebHelper.Table("tablist"); tab.AddHeadCol("RECORDID", "", "编号"); tab.AddHeadCol("RESID", "", "客户ID"); tab.AddHeadCol("CALLTYPE", "", "呼叫类型"); tab.AddHeadCol("SERVICENUMBER", "", "主叫号码"); tab.AddHeadCol("TELNUMBERLAST4", "", "被叫号码"); tab.AddHeadCol("TIMELENGTH", "", "时长(秒)"); tab.AddHeadCol("TIMESTART", "", "开始时间"); tab.AddHeadCol("SALESEID", "", "受理人"); tab.AddHeadCol("", "", "操作"); tab.AddHeadRow(); ViewBag.gridTable = tab.GetHead(); return View(); } public JsonResult GetCsvrRecordList(string resid, string columns) { var resids = new List(); var reslist = res_Customer_Q_BL.GetListByResId(resid); if (reslist != null) { resids = reslist.Select(m => m.RESID).ToList(); } var list = CallRecord_BL.GetListByResIds(resids); Table table = new WebHelper.Table(columns, true); if (list != null) { foreach (var item in list) { table.AddCol(item.RECORDID); table.AddCol(item.RESID); var strIsTran = ""; if (item.ISTRAN.ToString() == "1") { strIsTran = "(转接)"; } if (item.CALLTYPE == 1)//呼出 { table.AddCol("呼出" + strIsTran); table.AddCol(item.SERVICENUMBER);//主叫 table.AddCol(item.TELNUMBERLAST4);//被叫 } else { table.AddCol("呼入" + strIsTran); table.AddCol(item.TELNUMBERLAST4);//被叫 table.AddCol(item.SERVICENUMBER);//主叫 } table.AddCol(item.TIMELENGTH); table.AddCol(item.TIMESTART); table.AddCol(InnerUserHelper.Instance.GetEidAndTrueName(InnerUserHelper.Instance.GetUserIdByEid(item.SALESEID))); var selectUrl = string.Format("选择", item.RECORDID); table.AddCol(selectUrl); table.AddRow(); } } var json = new { rowsList = table.GetRows() }; return Json(json, JsonRequestBehavior.AllowGet); } /// /// /// /// /// /// 1 默认resid /// private retMsg UpdateOrderAiStatus(string filterId, int status, int type = 1) { try { var url = cache_BL.GetValue_Parameter(Parameter.Core_ZxdService_UpdateAiStatus); var para = "filterId=" + filterId + "&status=" + status + "&type=" + type; var res = Utility.GetData(url, para, Encoding.UTF8); var ret = Utility.ToObject>(res); return ret; } catch (Exception ex) { LogHelper.Error("修改订单状态失败"); return new retMsg { result = false, retmsg = ex.Message }; } } [HttpPost] //[AuthorizeToolBar(InitRights.CONST_订单列表, InitToolBar.CONST_Other5)] public JsonResult HgRecordSave(decimal orderId, string resid, decimal recordId, string content) { //LogHelper.Info("resid:" + resid + "--orderid:" + orderId.ToString() + "--recordId:" + recordId.ToString()); //return JsonHandler.ManageMessage("添加成功", true); CSVR_HGRECORD hgModel = _Hgrecord_Q.GetHgrecord(recordId, 1, resid, orderId); if (null == hgModel) { CSVR_CALLRECORD entity = _CSVR_CALLRECORD_Q.GetModel_CallRecord(recordId); if (entity != null) { hgModel = new CSVR_HGRECORD(); hgModel.PKID = new SEQUENCES_BL().Seq_base_get();//先赋值PKID hgModel.RECORDID = entity.RECORDID; hgModel.CTIME = DateTime.Now; hgModel.SERVERID = entity.SERVERID; hgModel.FILENAME = entity.FILENAME; hgModel.INNERUSERID = UserId; hgModel.RESID = entity.RESID; hgModel.SALESEID = entity.SALESEID; hgModel.SERVICENUMBER = entity.SERVICENUMBER; hgModel.TELNUMBERLAST4 = entity.TELNUMBERLAST4; hgModel.TIMEEND = entity.TIMEEND; hgModel.TIMELENGTH = entity.TIMELENGTH; hgModel.TIMESTART = entity.TIMESTART; hgModel.RECORDTYPE = 1; hgModel.ORDERID = orderId; hgModel.CONTENT = content; //bool isDown = this.download(entity.FILENAME, entity.SERVERID); //if (isDown) //{ // hgModel.ISDOWN = 1; // msg = "录音下载成功"; //} //else { hgModel.ISDOWN = 0; //msg = "录音下载失败"; } //调用接口更新中心点的合规风控状态 var url = cache_BL.GetValue_Parameter(Parameter.Core_ZxdService_HgRecord); var json = sHelper.createSignEncodingStr( new HgRecordDto() { PKID = hgModel.PKID, COMPANYCODE = Utility.GetSettingOrNullByKey("DataClientCode"), CONTENT = hgModel.CONTENT, CTIME = hgModel.CTIME, FILENAME = hgModel.FILENAME, INNERUSERID = hgModel.INNERUSERID, ISDOWN = hgModel.ISDOWN, MEMOID = hgModel.MEMOID, OrderId = Convert.ToInt32(hgModel.ORDERID), RECORDID = hgModel.RECORDID, RECORDTYPE = hgModel.RECORDTYPE, RESID = hgModel.RESID, SALESEID = hgModel.SALESEID, SERVERID = hgModel.SERVERID, SERVICENUMBER = hgModel.SERVICENUMBER, TELNUMBERLAST4 = hgModel.TELNUMBERLAST4, TIMEEND = hgModel.TIMEEND, TIMELENGTH = hgModel.TIMELENGTH, TIMESTART = hgModel.TIMESTART }.ToJson(), SecurityHelper.OrderClientIdKey); string retmsg = Utility.PostData(url + "?" + json, Encoding.UTF8); retmsg = sHelper.decyptData(SecurityHelper.OrderClientIdKey, retmsg); var retmessage = WebHelper.JsonHelper.JsonDivertToObj(retmsg); if (!retmessage.result) { LogHelper.Error("更新中心点订单合规错误,订单号:" + orderId.ToString()); } else//中心点入库成功,方能入库并修改状态 { //更新人工回访状态 var ret = UpdateOrderAiStatus(orderId.ToString(), (int)EnumAiCallState.人工回访成功, 2); _Hgrecord.Create(hgModel); //标记原录音检查过 entity.ISCHECKED = 1; _CSVR_CALLRECORD_BL.Update(entity); //更新订单的合规风控状态 var order = wx_SzzyOrder_BL.Get(m => m.ORDERID == orderId); if (order != null) { order.HASHGRECORD = 1; wx_SzzyOrder_BL.Update(order); } } return JsonHandler.ManageMessage("记录添加成功", true); } else { return JsonHandler.ManageMessage("录音记录错误,请联系管理员", false); } } //else if (hgModel.ISDOWN == 0) //{ // bool isDown = this.download(hgModel.FILENAME, hgModel.SERVERID); // if (isDown) // { // hgModel.ISDOWN = 1; // _Hgrecord.Update(hgModel); // return JsonHandler.ManageMessage("添加成功", true); // } // return JsonHandler.ManageMessage("录音下载失败", false); //} else { return JsonHandler.ManageMessage("记录已添加,无需重复操作", false); } } private bool download(string file, string serverID) { string server = string.Empty; string _localurl = "\\HQRecordFile\\"; string _IAD_localhostCallRecord = _CacheQ.GetValue_Parameter("ICSR_IAD_localhostCallRecord"); try { string cti = _CSVR_CALLRECORD_Q.Sys_Environment_CTI_VER(); if (cti == ((int)WX.CRM.Model.Enum.CTI_VER.深海捷固定坐席).ToString() || cti == ((int)WX.CRM.Model.Enum.CTI_VER.深海捷移动坐席).ToString()) { server = Utility.PostData(_IAD_localhostCallRecord + "?file=" + file, Encoding.UTF8); } else if (cti == ((int)WX.CRM.Model.Enum.CTI_VER.和声).ToString()) { string _file = file.Replace("\\", "/"); server = Utility.PostData(_IAD_localhostCallRecord + "?file=" + _file, Encoding.UTF8); } else if (cti == ((int)WX.CRM.Model.Enum.CTI_VER.艾讯new).ToString()) { string _cti; server = _getCallRecordUrl(serverID, file, out _cti); } else { string _file = file.Replace("\\", "/"); server = Utility.PostData(_IAD_localhostCallRecord + "?serverID=" + serverID + "&file=" + _file, Encoding.UTF8); } string setpath = _CacheQ.GetValue_Parameter("hgDownPath"); setpath = string.IsNullOrEmpty(setpath) ? null : setpath; string dirBasepath = FileUnit.GetBaseDirectory(); dirBasepath = dirBasepath.Substring(0, dirBasepath.IndexOf("\\", System.StringComparison.Ordinal)); string localurl = (setpath ?? dirBasepath) + _localurl + file; string d = localurl.Substring(0, localurl.LastIndexOf("\\", System.StringComparison.Ordinal)); if (cti == ((int)WX.CRM.Model.Enum.CTI_VER.艾讯new).ToString() && localurl.LastIndexOf("/", System.StringComparison.Ordinal) > 0) { d = localurl.Substring(0, localurl.LastIndexOf("/", System.StringComparison.Ordinal)); } if (!Directory.Exists(d)) { Directory.CreateDirectory(d); } var isOLD = file.StartsWith("UP"); server = server.Replace("\\", "").Replace("\"", ""); string remoteUri = server; if (isOLD) { remoteUri = server + "/home/" + file; } Uri downUri = new Uri(remoteUri); HttpWebRequest hwr = (HttpWebRequest)WebRequest.Create(downUri); using (Stream inputStream = hwr.GetResponse().GetResponseStream()) { using (FileStream flieStream = new FileStream(localurl, FileMode.Create)) { inputStream.CopyTo(flieStream); } } return true; } catch (Exception ex) { LogHelper.Error(ex); return false; } } private string _getCallRecordUrl(string _ServerID, string _FileName, out string cti) { var playurl = ""; cti = ""; var _IAD_localhostCallRecord = _BAS_PARAMETER_Q.GetModel_Patameter("ICSR_IAD_localhostCallRecord"); if (null != _IAD_localhostCallRecord) { var FuturesRecordServerUrl = _IAD_localhostCallRecord.PARAVALUE; playurl = FuturesRecordServerUrl + "?serverID=" + _ServerID + "&file=" + _FileName.Replace("\\", "/"); cti = _CSVR_CALLRECORD_Q.Sys_Environment_CTI_VER(); if (cti != null && cti == ((int)WX.CRM.Model.Enum.CTI_VER.深海捷移动坐席).ToString()) { playurl = FuturesRecordServerUrl + "?file=" + _FileName.Replace("\\", "/"); } if (cti != null && cti == ((int)WX.CRM.Model.Enum.CTI_VER.深海捷固定坐席).ToString()) { var shjctiinterface = Utility.GetSettingByKey("shj"); playurl = shjctiinterface + "?action=record_download&filename=/var/spool/asterisk/monitor/" + _FileName.Replace("\\", "/"); } if (cti != null && cti == ((int)WX.CRM.Model.Enum.CTI_VER.和声).ToString()) { playurl = FuturesRecordServerUrl + "?file=" + _FileName; } if (cti != null && cti == ((int)WX.CRM.Model.Enum.CTI_VER.艾讯).ToString()) { playurl = FuturesRecordServerUrl + _FileName; } if (cti != null && cti == ((int)WX.CRM.Model.Enum.CTI_VER.艾讯new).ToString()) { _IAD_localhostCallRecord = _BAS_PARAMETER_Q.GetModel_Patameter("ICSR_IAD_localhostCallRecord_AX"); var filename = _FileName; if (null != _IAD_localhostCallRecord) { playurl = _IAD_localhostCallRecord.PARAVALUE + (filename.StartsWith("UP") ? "/home/" + filename : filename); playurl = playurl.Replace("\\", "/"); } } } return playurl; } #endregion 订单合规回访 #region 添加支付记录 //[HttpGet] //[AuthorizeToolBar(InitRights.CONST_订单列表, InitToolBar.CONST_Other7)] //public ActionResult AddOrderPay(int orderId) //{ // var order = wx_SzzyOrder_BL.Get(p => p.ORDERID == orderId); // var model = new OrderPayDto // { // orderid = Convert.ToInt32(order.ORDERID), // needpay = order.NEEDPAY.GetValueOrDefault() // }; // var customerId = res_Customer_Q_BL.getResCustomerByResId(order.RESID).CUSTOMERID; // string[] resids = res_Customer_Q_BL.GetAllResidByCustomerId(customerId); // var orderDepositList = _orderDepoist.GetList(p => resids.Contains(p.RESID) && p.AUDITSTATUS == 1 && p.ISUSE == 0); // ViewBag.OrderDepositList = orderDepositList; // return View(model); //} //[HttpPost] //[AuthorizeToolBar(InitRights.CONST_订单列表, InitToolBar.CONST_Other7)] //public JsonResult AddOrderPay(OrderPayDto dto) //{ // try // { // //LogHelper.Info(dto.ToJson()); // if (!ModelState.IsValid) // { // return JsonHandler.ManageMessage("参数有误,请确认!", false); // } // if (!string.IsNullOrEmpty(dto.payno)) // { // dto.payno = dto.payno.Trim(); // } // //dto.companycode = companyCode; // var order = wx_SzzyOrder_BL.Get(p => p.ORDERID == dto.orderid); // if (order != null) // { // if (!(order.ORDERSTATUS == "180" || order.ORDERSTATUS == "190" || order.ORDERSTATUS == "195")) // { // return JsonHandler.ManageMessage("支付金额已经够了,不需要再支付了!", false); // } // } // else // { // return JsonHandler.ManageMessage("找不到订单" + order.ORDERID + ",请确认!", false); // } // dto.companycode = Utility.GetSettingOrNullByKey("DataClientCode"); // dto.creator = Convert.ToInt32(Eid); // dto.creatorname = UserName; // dto.deptcode = order.DEPTCODE; // var url = cache_BL.GetValue_Parameter(Parameter.Core_ZxdService_OrderPay); // var json = sHelper.createSignEncodingStr(dto.ToJson(), SecurityHelper.OrderClientIdKey); // string retmsg = Utility.PostData(url + "?" + json, Encoding.UTF8); // retmsg = sHelper.decyptData(SecurityHelper.OrderClientIdKey, retmsg); // var retmessage = WebHelper.JsonHelper.JsonDivertToObj(retmsg); // if (retmessage.result) // { // try // { // decimal fianlPay = 0; // var orderPay = new WX_SZZYORDERPAY() // { // ID = new SEQUENCES_BL().Seq_base_get(), // ORDERID = dto.orderid, // NEEDPAY = dto.needpay, // PAYTYPE = dto.paytype, // PAYTYPENAME = GetPayTypeName(dto.paytype), // PAYDATE = dto.paydate, // PAYPRICE = dto.payprice, // PAYNAME = dto.payname, // REMARK = dto.remark, // CTIME = DateTime.Now, // PAYNO = dto.payno.Trim(), // SID = decimal.Parse(retmessage.retmsg), // CREATOR = Eid, // CREATORNAME = UserName, // DEPTCODE = order.DEPTCODE // }; // fianlPay = orderPay.PAYPRICE; // _orderPay.Add(orderPay); // if (!string.IsNullOrWhiteSpace(dto.deposit)) // { // var arr = dto.deposit.Split(','); // foreach (var item in arr) // { // var id = decimal.Parse(item); // var info = _orderDepoist.Get(p => p.ID == id); // if (info != null) // { // info.ISUSE = 1; // info.ORDERID = dto.orderid; // _orderDepoist.Update(info); // fianlPay += info.PAYPRICE; // } // var orderPay2 = _orderPay.Get(p => p.ORDERID == id); // if (orderPay2 != null) // { // orderPay2.ORDERID = dto.orderid; // _orderPay.Update(orderPay2); // } // } // } // //var order = wx_SzzyOrder_BL.Get(p => p.ORDERID == dto.orderid); // if (order != null) // { // if (order.ARRIVALPAY.HasValue) // order.ARRIVALPAY += fianlPay; // else // order.ARRIVALPAY = fianlPay; // order.ORDERSTATUS = "190"; // order.ORDERSTATUSNAME = "已提交支付"; // wx_SzzyOrder_BL.Update(order); // } // } // catch (Exception xx) // { // LogHelper.Error("支付记录添加到本地库异常:" + xx.ToString()); // } // return JsonHandler.ManageMessage("提交成功", true); // } // else // return JsonHandler.ManageMessage("提交失败,请稍后重试或者联系管理员!", false); // //return JsonHandler.ManageMessage("提交成功", true); // } // catch (Exception ex) // { // LogHelper.Error(ex.ToString()); // return JsonHandler.ManageMessage("提交失败,请稍后重试或者联系管理员!", false); // } //} [HttpGet] public JsonResult CheckOrderPay(int orderId) { var order = wx_SzzyOrder_BL.Get(p => p.ORDERID == orderId); if (order.ORDERSTATUS == "220") { return JsonHandler.ManageMessage("220", false); } else if (order.ORDERSTATUS == "70") { return JsonHandler.ManageMessage("70", false); } else if (order.ORDERSTATUS == "60") { return JsonHandler.ManageMessage("60", false); } else { var orderPay = _orderPay.Get(p => p.ORDERID == orderId); if (orderPay != null) { return JsonHandler.ManageMessage("exists", false); } } return JsonHandler.ManageMessage("ok", true); } //[HttpGet] //[AuthorizeToolBar(InitRights.CONST_我的订单, InitToolBar.CONST_Other1)] //public ActionResult AddOrderPay2(int orderId) //{ // var order = wx_SzzyOrder_BL.Get(p => p.ORDERID == orderId); // var model = new OrderPayDto // { // orderid = Convert.ToInt32(order.ORDERID), // needpay = order.NEEDPAY.GetValueOrDefault() // }; // var customerId = res_Customer_Q_BL.getResCustomerByResId(order.RESID).CUSTOMERID; // string[] resids = res_Customer_Q_BL.GetAllResidByCustomerId(customerId); // var orderDepositList = _orderDepoist.GetList(p => resids.Contains(p.RESID) && p.AUDITSTATUS == 1 && p.ISUSE == 0); // ViewBag.OrderDepositList = orderDepositList; // return View(model); //} //[HttpPost] //[AuthorizeToolBar(InitRights.CONST_我的订单, InitToolBar.CONST_Other1)] //public JsonResult AddOrderPay2(OrderPayDto dto) //{ // try // { // //LogHelper.Info(dto.ToJson()); // if (!ModelState.IsValid) // { // return JsonHandler.ManageMessage("参数有误,请确认!", false); // } // if (!string.IsNullOrEmpty(dto.payno)) // { // dto.payno = dto.payno.Trim(); // } // var order = wx_SzzyOrder_BL.Get(p => p.ORDERID == dto.orderid); // if (order != null) // { // if (!(order.ORDERSTATUS == "180" || order.ORDERSTATUS == "190" || order.ORDERSTATUS == "195")) // { // return JsonHandler.ManageMessage("支付金额已经够了,不需要再支付了!", false); // } // } // else // { // return JsonHandler.ManageMessage("找不到订单" + order.ORDERID + ",请确认!", false); // } // dto.companycode = Utility.GetSettingOrNullByKey("DataClientCode"); // dto.creator = Convert.ToInt32(Eid); // dto.creatorname = UserName; // dto.deptcode = order.DEPTCODE; // var url = cache_BL.GetValue_Parameter(Parameter.Core_ZxdService_OrderPay); // var json = sHelper.createSignEncodingStr(dto.ToJson(), SecurityHelper.OrderClientIdKey); // string retmsg = Utility.PostData(url + "?" + json, Encoding.UTF8); // retmsg = sHelper.decyptData(SecurityHelper.OrderClientIdKey, retmsg); // var retmessage = WebHelper.JsonHelper.JsonDivertToObj(retmsg); // if (retmessage.result) // { // try // { // decimal fianlPay = 0; // var orderPay = new WX_SZZYORDERPAY() // { // ID = new SEQUENCES_BL().Seq_base_get(), // ORDERID = dto.orderid, // NEEDPAY = dto.needpay, // PAYTYPE = dto.paytype, // PAYTYPENAME = GetPayTypeName(dto.paytype), // PAYDATE = dto.paydate, // PAYPRICE = dto.payprice, // PAYNAME = dto.payname, // REMARK = dto.remark, // CTIME = DateTime.Now, // PAYNO = dto.payno.Trim(), // SID = decimal.Parse(retmessage.retmsg), // CREATOR = Eid, // CREATORNAME = UserName, // DEPTCODE = order.DEPTCODE // }; // fianlPay = orderPay.PAYPRICE; // _orderPay.Add(orderPay); // if (!string.IsNullOrWhiteSpace(dto.deposit)) // { // var arr = dto.deposit.Split(','); // foreach (var item in arr) // { // var id = decimal.Parse(item); // var info = _orderDepoist.Get(p => p.ID == id); // if (info != null) // { // info.ISUSE = 1; // info.ORDERID = dto.orderid; // _orderDepoist.Update(info); // fianlPay += info.PAYPRICE; // } // var orderPay2 = _orderPay.Get(p => p.ORDERID == id); // if (orderPay2 != null) // { // orderPay2.ORDERID = dto.orderid; // _orderPay.Update(orderPay2); // } // } // } // //var order = wx_SzzyOrder_BL.Get(p => p.ORDERID == dto.orderid); // if (order != null) // { // if (order.ARRIVALPAY.HasValue) // order.ARRIVALPAY += fianlPay; // else // order.ARRIVALPAY = fianlPay; // order.ORDERSTATUS = "190"; // order.ORDERSTATUSNAME = "已提交支付"; // wx_SzzyOrder_BL.Update(order); // } // } // catch (Exception xx) // { // LogHelper.Error("支付记录添加到本地库异常:" + xx.ToString()); // } // return JsonHandler.ManageMessage("提交成功", true); // } // else // return JsonHandler.ManageMessage("提交失败,请稍后重试或者联系管理员!", false); // //return JsonHandler.ManageMessage("提交成功", true); // } // catch (Exception ex) // { // LogHelper.Error(ex.ToString()); // return JsonHandler.ManageMessage("提交失败,请稍后重试或者联系管理员!", false); // } //} #endregion 添加支付记录 #region 添加退款申请 //[HttpGet] //[AuthorizeToolBar(InitRights.CONST_订单列表, InitToolBar.CONST_Other8)] //public ActionResult ApplyOrderRefund(int orderId) //{ // var order = wx_SzzyOrder_BL.Get(p => p.ORDERID == orderId); // var model = new OrderRefundDto // { // orderid = Convert.ToInt32(order.ORDERID), // refundprice = GetOrderRefundPrice(order) // }; // model.refundprice = decimal.Parse(model.refundprice.ToString("0.##")); // ViewBag.OrderArryPay = order.ARRIVALPAY ?? 0;//订单到账金额 // return View(model); //} //[HttpPost] //[AuthorizeToolBar(InitRights.CONST_订单列表, InitToolBar.CONST_Other8)] //public JsonResult ApplyOrderRefund(OrderRefundDto dto) //{ // try // { // if (!ModelState.IsValid) // { // return JsonHandler.ManageMessage("参数有误,请确认!", false); // } // if (dto.refundprice <= 0) // { // return JsonHandler.ManageMessage("退款金额必须大于零!", false); // } // var url = cache_BL.GetValue_Parameter(Parameter.Core_ZxdService_OrderRefund); // HttpWebRequest request = WebRequest.Create(url) as HttpWebRequest; // request.Method = "POST"; // //request.ContentType = "application/x-www-form-urlencoded"; // // request.ContentType = "application/json"; // if (Request.Files.Count > 0) // { // var file = Request.Files[0]; // var fileExt = Path.GetExtension(file.FileName); // var fileName = Path.Combine("att", Guid.NewGuid().ToString() + Path.GetExtension(file.FileName)); // dto.att = Path.Combine("UploadFile", fileName); // } // //dto.companycode = companyCode; // dto.companycode = Utility.GetSettingOrNullByKey("DataClientCode"); // dto.creator = Convert.ToInt32(Eid); // dto.creatorname = UserName; // var jiami = sHelper.encyptData("UPWEBSITE", dto.ToJson()); // var content = HttpUtility.UrlEncode(jiami); // var sing = HttpUtility.UrlEncode(sHelper.signData("UPWEBSITE", jiami)); // request.Headers.Add("content", content); // request.Headers.Add("clientid", "UPWEBSITE"); // request.Headers.Add("sign", sing); // //如果需要POST数据 // if (Request.Files.Count > 0) // { // var fileStream = Request.Files[0].InputStream; // byte[] data = null; // byte[] buffer = new byte[16 * 1024]; // using (MemoryStream ms = new MemoryStream()) // { // int read; // while ((read = fileStream.Read(buffer, 0, buffer.Length)) > 0) // { // ms.Write(buffer, 0, read); // } // data = ms.ToArray(); // } // using (Stream stream = request.GetRequestStream()) // { // stream.Write(data, 0, data.Length); // } // } // else // { // //没有参数的时候必须加上这句,这个是HTTP POST要求必须带参数,不然就需要说明长度是0 // request.ContentLength = 0; // } // using (HttpWebResponse response = (HttpWebResponse)request.GetResponse()) // { // StreamReader reader = new StreamReader(response.GetResponseStream(), Encoding.UTF8); // string result = reader.ReadToEnd(); // LogHelper.Info(result); // var retmsg = sHelper.decyptData(SecurityHelper.OrderClientIdKey, result); // var retmessage = WebHelper.JsonHelper.JsonDivertToObj(retmsg); // if (retmessage.result) // { // try // { // var deptcode = string.Empty; // var order = wx_SzzyOrder_BL.Get(p => p.ORDERID == dto.orderid); // if (order != null) // { // deptcode = order.DEPTCODE; // } // else // { // var depo = _orderDepoist.Get(p => p.ID == dto.orderid); // if (depo != null) // { // deptcode = depo.DEPTCODE; // } // } // var orderRefund = new WX_SZZYORDERREFUND() // { // ID = new SEQUENCES_BL().Seq_base_get(), // SID = decimal.Parse(retmessage.retmsg), // ORDERID = dto.orderid, // REFUNDPRICE = dto.refundprice, // ACCOUNT = dto.account, // USERNAME = dto.username, // REFUNDTYPE = dto.refundtype, // REFUNDTYPENAME = string.Empty, // REFUNDDATE = dto.refunddate, // REMARK = dto.remark, // ATT = dto.att, // CTIME = DateTime.Now, // ISDELETE = 0, // CREATOR = Eid, // CREATORNAME = UserName, // ISACTURALREFUND = dto.isacturalrefund, // DEPTCODE = deptcode // }; // _orderRefund.Add(orderRefund); // } // catch (Exception xx) // { // LogHelper.Error("提交总部成功,但本地提交异常,请重新提交:" + xx.ToString()); // return JsonHandler.ManageMessage("提交总部成功,但本地提交异常,请重新提交", false); // } // return JsonHandler.ManageMessage("提交成功", true); // } // else // { // if (retmessage.retcode == (int)EnumInterfaceErrcode.调用成功但有错误) // { // return JsonHandler.ManageMessage(retmessage.retmsg, false); // } // else // { // return JsonHandler.ManageMessage("提交失败,请稍后重试或者联系管理员!", false); // } // } // } // } // catch (Exception ex) // { // LogHelper.Error(ex.ToString()); // return JsonHandler.ManageMessage("提交失败,请稍后重试或者联系管理员!", false); // } //} [HttpGet] public JsonResult CheckOrderRefund(int orderId) { var order = wx_SzzyOrder_BL.Get(p => p.ORDERID == orderId); if (order.ORDERSTATUS == "70") { return JsonHandler.ManageMessage("70", false); } else { var orderRefund = _orderRefund.Get(p => p.ORDERID == orderId); if (orderRefund != null) { return JsonHandler.ManageMessage("exists", false); } } return JsonHandler.ManageMessage("ok", true); } #endregion 添加退款申请 #region 计算升级单价格 public JsonResult GetOrderLeftValue(string oldOrderIds, decimal subProductId, int? isOriginalPrice = null) { if (string.IsNullOrWhiteSpace(oldOrderIds)) { return JsonHandler.ManageMessage("0", true); } decimal leftValues = 0; //var qlList = new List(); var oldProductPriceList = new List(); var oldOrderIdList = oldOrderIds.Split(',').Select(m => Convert.ToDecimal(m)).ToList(); var allOrderList = wx_SzzyOrder_BL.GetList(p => oldOrderIdList.Contains(p.ORDERID)); var subProduct = wx_SzzySubProduct_BL.Get(m => m.SUBPRODUCTID == subProductId); if (subProduct == null) { errors.Add("请选择购买产品分类"); return JsonHandler.UpdateMessage(errors, false); } var upgradeList = new List(); foreach (var item in oldOrderIdList) { var checkOrder = allOrderList.FirstOrDefault(p => p.ORDERID == item); if (checkOrder == null) { errors.Add(string.Format("升级订单,原CRM订单:{0}不存在,请确认后再输入!", item.ToString())); return JsonHandler.UpdateMessage(errors, false); } if (checkOrder.ORDERSTATUS == "60") { errors.Add(string.Format("订单:{0}已经关闭了,不能升级!", checkOrder.ORDERID.ToString())); return JsonHandler.UpdateMessage(errors, false); } if (checkOrder.ORDERSTATUS == "90") { errors.Add(string.Format("订单:{0}已经退款了,不能升级!", checkOrder.ORDERID.ToString())); return JsonHandler.UpdateMessage(errors, false); } //if(checkOrder.ORDERSTATUS == "80") //{ // errors.Add(string.Format("订单:{0}已经到期了,不能升级!", checkOrder.ORDERID.ToString())); // return JsonHandler.UpdateMessage(errors, false); //} //if (checkOrder.ORDERTYPE == 4) //{ // errors.Add(string.Format("订单:{0}已经被换过了,不能再更换!", checkOrder.ORDERID.ToString())); // return JsonHandler.UpdateMessage(errors, false); //} //if (checkOrder.ORDERSTATUS == "205") //{ // errors.Add(string.Format("订单:{0}已经抵扣过了,不能再次抵扣!", checkOrder.ORDERID.ToString())); // return JsonHandler.UpdateMessage(errors, false); //} var upgradeSubProduct = wx_SzzySubProduct_BL.Get(m => m.SUBPRODUCTID == checkOrder.SUBPRODUCTID); //upgradeList.Add(new UpgradeOrder { Order = checkOrder, IsSameCategory = subProduct.CATEGORY == upgradeSubProduct.CATEGORY }); upgradeList.Add(new UpgradeOrder { Order = checkOrder, IsSameCategory = false });//全额抵扣,只认这个产品是否全额抵扣,不管类型 //qlList.Add(upgradeSubProduct.SUBPRODUCTID); oldProductPriceList.Add(upgradeSubProduct.PRICE.Value.ToString()); //如果不是允许的升级产品,那么必须补差额升级 if (subProduct.CANUPGRADE == 0 && isOriginalPrice == 1) { errors.Add("该产品不能选择原价购买,请去掉升级原价购买选择!"); return JsonHandler.UpdateMessage(errors, false); } if (subProduct.CANUPGRADE == 0 && subProduct.CATEGORY < upgradeSubProduct.CATEGORY) { errors.Add("低阶产品不能从高阶产品升级!"); return JsonHandler.UpdateMessage(errors, false); } } ////100800101:擒龙版 ////100800401,100800402,100800403:至尊VIP //if (qlList.Any(p => p == 100800101) && (subProduct.MIDPRODUCTID == 100800401 || subProduct.MIDPRODUCTID == 100800402 || subProduct.MIDPRODUCTID == 100800403) && isOpen) //{ // leftValues = 9800; //} //else //{ foreach (var upgradeOrder in upgradeList) { var refundPrice = GetOrderUpgradeRefundPrice(upgradeOrder.Order, upgradeOrder.IsSameCategory, isOriginalPrice); if (upgradeOrder.Order.ORDERSTATUS == "180") { //如果是未支付的新订单,剩余价格就是0; refundPrice = 0; } if (refundPrice < 0) { refundPrice = 0; } leftValues += Math.Floor(refundPrice); } //} return Json(new { result = true, data = new { oldProductPriceList = string.Join(",", oldProductPriceList.ToArray()), leftValues } }, JsonRequestBehavior.AllowGet); } #endregion 计算升级单价格 #region 查看审核合同,清除未风控合同 [HttpGet] public ActionResult ViewContract(int orderId) { var roleCodes = DataCacheHelper.GetCache().Get_RoleCodes(userRoleId); if (!roleCodes.Contains("[CKHT]")) { ViewBag.ViewMsg = "您无权查看,请联系管理员!"; return View(); } var order = wx_SzzyOrder_BL.Get(p => p.ORDERID == orderId); var orderExt = wx_OrderExt_BL.Get(p => p.ORDERID == orderId); //==================风控加密测试================ //string url = paramter_bl.GetValue_Parameter(Parameter.UserCenter_RiaService_Riske);//风险控制 //long longtime = DateTimeTool.ConvertDateTimeLong(DateTime.Now); //Random rd = new Random(); //int rx = rd.Next(1000, 9999); //var json = new //{ // uid = "qbj105", // cid = "", // t = longtime, // hqrtime = longtime, // rd = rx, // u = "0", // r = "[]" //}; //string varx = HttpUtility.UrlEncode(BlowFish.decode(Utility.ConvertToJSON(json))); //string fkUrl = url + varx;//风控地址 //============================================== //===================合同Url测试=============== //合同生成URL测试 var szzysubproduct = wx_SzzySubProduct_BL.GetModel(order.SUBPRODUCTID.Value); var url = cache_BL.GetValue_Parameter(Parameter.UserCenter_RiaService_ContractSign);//合同地址 //获取当前用户 所在公司 var company = bas_company_bll.GetModelByCode(companyCode); var viewSource = companyCode; if (company == null) { company = bas_company_bll.GetList().FirstOrDefault(); } if (company != null) viewSource = company.COMPANYNAME; var pageSource = "ViewContract:订单列表"; var json2 = new { productName = order.SUBPRODUCTNAME, //period = string.Format("{0}天", order.OPENDAYS), period = string.Format("{0}", GetQiXian(order.OPENDAYS.Value)), //price = string.Format("{0}元", order.NEEDPAY.Value.ToString("#0.00")), price = string.Format("{0}元", szzysubproduct.PRICE.Value.ToString("#0.00")), userId = orderExt.SOFTUSERNAME, productLevel = szzysubproduct.PRODUCTLEVEL, productInvestTime = szzysubproduct.PRODUCTINVESTTIME, productInvestType = szzysubproduct.PRODUCTINVESTTYPE, issupplement = 1, orderId = order.SZZYORDERID.ToString(), htid = string.Format("DN{0}", order.SZZYORDERID.ToString()) }; string clientid = SecurityHelper.OrderClientIdKey; string content = sHelper.encyptData(clientid, Utility.ConvertToJSON(json2)); string sign = sHelper.signData(clientid, content); var htUrl = url + string.Format("?content={0}&sign={1}&clientId={2}&protocolType=", HttpUtility.UrlEncode(content), HttpUtility.UrlEncode(sign), clientid); //============================================= //===================合同Url测试=============== //合同生成URL测试 url = cache_BL.GetValue_Parameter(Parameter.UserCenter_RiaService_SignPdf); //风险揭示书 content = sHelper.encyptData(clientid, "R_DN" + order.SZZYORDERID.ToString()); sign = sHelper.signData(clientid, content); string fxjssUrl = string.Format("{0}/{4}-风险揭示书.pdf?content={1}&sign={2}&clientId={3}&employeeId={5}&employeeName={6}&viewSource={7}&pageSource={8}" , url, HttpUtility.UrlEncode(content), HttpUtility.UrlEncode(sign), clientid, order.SUBPRODUCTNAME, Eid, UserName, viewSource, pageSource); ViewBag.fxjssUrl = fxjssUrl; //投顾服务协议 content = sHelper.encyptData(clientid, "A_DN" + order.SZZYORDERID.ToString()); sign = sHelper.signData(clientid, content); string tgfwxyUrl = string.Format("{0}/{4}-投顾服务协议.pdf?content={1}&sign={2}&clientId={3}&employeeId={5}&employeeName={6}&viewSource={7}&pageSource={8}", url, HttpUtility.UrlEncode(content), HttpUtility.UrlEncode(sign), clientid, order.SUBPRODUCTNAME, Eid, UserName, viewSource, pageSource); ViewBag.tgfwxyUrl = tgfwxyUrl; if (!string.IsNullOrEmpty(order.CONTRACTCODE)) { var riskinfoUrl = cache_BL.GetValue_Parameter("riskinfo"); if (string.IsNullOrEmpty(riskinfoUrl)) { riskinfoUrl = "https://r2.soft.dn8188.com/contract_sign_crm/get_riskinfo"; } var bf = "{\"uid\": \"" + orderExt.SOFTUSERNAME + "\",\"htid\":\"DN" + order.SZZYORDERID.Value.ToString() + "\"}"; var hqr = BlowFish.encode(bf); var para = new { hqr }; var res = Utility.PostAjaxData(riskinfoUrl, para.ToJson(), Encoding.UTF8); var ret1 = JsonHelper.JsonDivertToObj(res); //LogHelper.Info(ret1.ToJson()); if (ret1.ret == 0) { ViewBag.businesstype = ret1.businesstype; if (ret1.businesstype != "smallAmount") { var ret = Utility.GetData("https://r2.soft.dn8188.com/contract_sign_crm/get_htflag", "htid=" + order.CONTRACTCODE, Encoding.UTF8); var retObj = JsonConvert.DeserializeAnonymousType(ret, new { ret = -1, msg = string.Empty }); if (retObj.ret != -1) { if (retObj.ret == 0) { //产品或服务不适当警示确认书 content = sHelper.encyptData(clientid, "I_DN" + order.SZZYORDERID.ToString()); sign = sHelper.signData(clientid, content); string cphfwUrl = string.Format("{0}/{4}-产品或服务不适当警示及投资者确认书.pdf ?content={1}&sign={2}&clientId={3}&employeeId={5}&employeeName={6}&viewSource={7}&pageSource={8}", url, HttpUtility.UrlEncode(content), HttpUtility.UrlEncode(sign), clientid, order.SUBPRODUCTNAME, Eid, UserName, viewSource, pageSource); ViewBag.cphfwUrl = cphfwUrl; } else if (retObj.ret == 1) { //适当性评估结果确认书 content = sHelper.encyptData(clientid, "S_DN" + order.SZZYORDERID.ToString()); sign = sHelper.signData(clientid, content); string sdxpgUrl = string.Format("{0}/{4}-适当性评估结果确认书.pdf ?content={1}&sign={2}&clientId={3}&employeeId={5}&employeeName={6}&viewSource={7}&pageSource={8}", url, HttpUtility.UrlEncode(content), HttpUtility.UrlEncode(sign), clientid, order.SUBPRODUCTNAME, Eid, UserName, viewSource, pageSource); ViewBag.sdxpgUrl = sdxpgUrl; } } } } ////适当性评估结果确认书 //content = sHelper.encyptData(clientid, "S_DN" + order.SZZYORDERID.ToString()); //sign = sHelper.signData(clientid, content); //string sdxpgUrl = string.Format("{0}/{4}-适当性评估结果确认书.pdf ?content={1}&sign={2}&clientId={3}&employeeId={5}&employeeName={6}&viewSource={7}&pageSource={8}", // url, HttpUtility.UrlEncode(content), HttpUtility.UrlEncode(sign), clientid, order.SUBPRODUCTNAME, // Eid, // UserName, // viewSource, // pageSource); //ViewBag.sdxpgUrl = sdxpgUrl; ////检查系统的话这两个协议用本地文件 //var isCheckSystem = cache_BL.GetValue_Parameter(Parameter.Sys_IsCheckSystem); //if (order.OTIME < new DateTime(2019, 9, 17) && isCheckSystem == "1") //{ // //投顾服务协议 // ViewBag.tgfwxyUrl = string.Format("/crm_contracts/A_DN{0}.pdf", order.SZZYORDERID.ToString()); // //适当性评估结果确认书 // ViewBag.sdxpgUrl = string.Format("/crm_contracts/S_DN{0}.pdf", order.SZZYORDERID.ToString()); //} ////产品或服务不适当警示确认书 //content = sHelper.encyptData(clientid, "I_DN" + order.SZZYORDERID.ToString()); //sign = sHelper.signData(clientid, content); //string cphfwUrl = string.Format("{0}/{4}-产品或服务不适当警示及投资者确认书.pdf ?content={1}&sign={2}&clientId={3}&employeeId={5}&employeeName={6}&viewSource={7}&pageSource={8}", // url, HttpUtility.UrlEncode(content), HttpUtility.UrlEncode(sign), clientid, order.SUBPRODUCTNAME, // Eid, // UserName, // viewSource, // pageSource); //ViewBag.cphfwUrl = cphfwUrl; } //============================================= ViewBag.OrderId = orderId; ViewBag.CONTRACTCODE = order.CONTRACTCODE; ViewBag.ViewMsg = string.Empty; //ViewBag.fkUrl = fkUrl;//风控Url ViewBag.htUrl = htUrl;//合同Url ViewBag.RiskCtrlStatus = order.RISKCTRLSTATUS; ViewBag.RejectRemark = order.REJECTREMARK; return View(); } [HttpGet] public ActionResult ViewContract2(int orderId, string SZZYORDERID, decimal SUBPRODUCTID, string SUBPRODUCTNAME, decimal OPENDAYS, string SOFTUSERNAME, string CONTRACTCODE, int RISKCTRLSTATUS, string REJECTREMARK, decimal price, decimal productLevel, decimal productInvestTime, decimal productInvestType, decimal? ret) { var roleCodes = DataCacheHelper.GetCache().Get_RoleCodes(userRoleId); if (!(roleCodes.Contains("[CKHT]") || roleCodes.Contains("[TNBHG]"))) { ViewBag.ViewMsg = "您无权查看,请联系管理员!"; return View(); } //LogHelper.Info("ok"); //===================合同Url测试=============== //合同生成URL测试 //var szzysubproduct = wx_SzzySubProduct_BL.GetModel(SUBPRODUCTID); var url = cache_BL.GetValue_Parameter(Parameter.UserCenter_RiaService_ContractSign);//合同地址 //获取当前用户 所在公司 var company = bas_company_bll.GetModelByCode(companyCode); var viewSource = companyCode; if (company == null) { company = bas_company_bll.GetList().FirstOrDefault(); } if (company != null) viewSource = company.COMPANYNAME; var pageSource = "ViewContract2:订单列表"; var json2 = new { productName = SUBPRODUCTNAME, period = string.Format("{0}", GetQiXian(OPENDAYS)), //price = string.Format("{0}元", szzysubproduct.PRICE.Value.ToString("#0.00")), price = price, userId = SOFTUSERNAME, //productLevel = szzysubproduct.PRODUCTLEVEL, //productInvestTime = szzysubproduct.PRODUCTINVESTTIME, //productInvestType = szzysubproduct.PRODUCTINVESTTYPE, productLevel = productLevel, productInvestTime = productInvestTime, productInvestType = productInvestType, issupplement = 1, orderId = SZZYORDERID.ToString(), htid = string.Format("DN{0}", SZZYORDERID.ToString()) }; string clientid = SecurityHelper.OrderClientIdKey; string content = sHelper.encyptData(clientid, Utility.ConvertToJSON(json2)); string sign = sHelper.signData(clientid, content); var htUrl = url + string.Format("?content={0}&sign={1}&clientId={2}&protocolType=", HttpUtility.UrlEncode(content), HttpUtility.UrlEncode(sign), clientid); //============================================= //===================合同Url测试=============== //合同生成URL测试 url = cache_BL.GetValue_Parameter(Parameter.UserCenter_RiaService_SignPdf); //风险揭示书 content = sHelper.encyptData(clientid, "R_DN" + SZZYORDERID.ToString()); sign = sHelper.signData(clientid, content); string fxjssUrl = string.Format("{0}/{4}-风险揭示书.pdf?content={1}&sign={2}&clientId={3}&employeeId={5}&employeeName={6}&viewSource={7}&pageSource={8}", url, HttpUtility.UrlEncode(content), HttpUtility.UrlEncode(sign), clientid, SUBPRODUCTNAME, Eid, UserName, viewSource, pageSource); ViewBag.fxjssUrl = fxjssUrl; //投顾服务协议 content = sHelper.encyptData(clientid, "A_DN" + SZZYORDERID.ToString()); sign = sHelper.signData(clientid, content); string tgfwxyUrl = string.Format("{0}/{4}-投顾服务协议.pdf?content={1}&sign={2}&clientId={3}&employeeId={5}&employeeName={6}&viewSource={7}&pageSource={8}", url, HttpUtility.UrlEncode(content), HttpUtility.UrlEncode(sign), clientid, SUBPRODUCTNAME, Eid, UserName, viewSource, pageSource); ViewBag.tgfwxyUrl = tgfwxyUrl; //产品或服务不适当警示确认书 content = sHelper.encyptData(clientid, "I_DN" + SZZYORDERID.ToString()); sign = sHelper.signData(clientid, content); string cphfwUrl = string.Format("{0}/{4}-产品或服务不适当警示及投资者确认书.pdf ?content={1}&sign={2}&clientId={3}&employeeId={5}&employeeName={6}&viewSource={7}&pageSource={8}", url, HttpUtility.UrlEncode(content), HttpUtility.UrlEncode(sign), clientid, SUBPRODUCTNAME, Eid, UserName, viewSource, pageSource); ViewBag.cphfwUrl = cphfwUrl; //适当性评估结果确认书 content = sHelper.encyptData(clientid, "S_DN" + SZZYORDERID.ToString()); sign = sHelper.signData(clientid, content); string sdxpgUrl = string.Format("{0}/{4}-适当性评估结果确认书.pdf ?content={1}&sign={2}&clientId={3}&employeeId={5}&employeeName={6}&viewSource={7}&pageSource={8}", url, HttpUtility.UrlEncode(content), HttpUtility.UrlEncode(sign), clientid, SUBPRODUCTNAME, Eid, UserName, viewSource, pageSource); ViewBag.sdxpgUrl = sdxpgUrl; //============================================= ViewBag.OrderId = orderId; ViewBag.CONTRACTCODE = CONTRACTCODE; ViewBag.ViewMsg = string.Empty; //ViewBag.fkUrl = fkUrl;//风控Url ViewBag.htUrl = htUrl;//合同Url ViewBag.RiskCtrlStatus = RISKCTRLSTATUS; ViewBag.RejectRemark = REJECTREMARK; return View(); } [HttpPost] public JsonResult AuditContract(int orderId) { try { if (orderId <= 0) { return JsonHandler.ManageMessage("参数有误,请确认!", false); } var order = wx_SzzyOrder_BL.Get(p => p.ORDERID == orderId); if (order.RISKCTRLSTATUS.HasValue) { if (order.RISKCTRLSTATUS.Value >= 1) { return JsonHandler.ManageMessage("风控已经通过,不需要再操作了!", true); } } var url = cache_BL.GetValue_Parameter(Parameter.Core_ZxdService_AuditContract); var json = sHelper.createSignEncodingStr(new ContractAuditDto() { OrderId = orderId }.ToJson(), SecurityHelper.OrderClientIdKey); string retmsg = Utility.PostData(url + "?" + json, Encoding.UTF8); retmsg = sHelper.decyptData(SecurityHelper.OrderClientIdKey, retmsg); var retmessage = WebHelper.JsonHelper.JsonDivertToObj(retmsg); if (retmessage.result) { order.RISKCTRLSTATUS = 1; var ret = wx_SzzyOrder_BL.Update(order); if (ret) return JsonHandler.ManageMessage("提交成功", true); else return JsonHandler.ManageMessage("远程操作成功,本地操作失败,请重试!", false); } else return JsonHandler.ManageMessage("提交失败,请稍后重试或者联系管理员!", false); //return JsonHandler.ManageMessage("提交成功", true); } catch (Exception ex) { LogHelper.Error(ex.ToString()); return JsonHandler.ManageMessage("提交失败,请稍后重试或者联系管理员!", false); } } [HttpGet] public ActionResult DeleteContract() { var roleCodes = DataCacheHelper.GetCache().Get_RoleCodes(userRoleId); if (!roleCodes.Contains("[SCHT]")) { ViewBag.ViewMsg = "您无权查看,请联系管理员!"; } return View(); } [HttpPost] public JsonResult DeleteContract(string userName) { try { if (string.IsNullOrWhiteSpace(userName)) { return JsonHandler.ManageMessage("参数有误,请确认!", false); } var orderExts = wx_OrderExt_BL.GetList(p => p.SOFTUSERNAME == userName).Select(p => p.ORDERID); if (!orderExts.Any()) { return JsonHandler.ManageMessage("该用户名还未下过订单,请确认是否用户名有误!", false); } var minOrderPricePara = _CacheQ.GetValue_Parameter("minOrderPrice"); var minOrderPrice = 200; if (!string.IsNullOrEmpty(minOrderPricePara)) { minOrderPrice = int.Parse(minOrderPricePara); } var orders = wx_SzzyOrder_BL.GetList(p => orderExts.Contains(p.ORDERID) && p.RISKCTRLSTATUS >= 1 && p.ARRIVALPAY >= minOrderPrice); if (orders.Any()) { return JsonHandler.ManageMessage("该客户已经通过风控,请确认!", false); } else { var dto = new { uid = userName }; var url = "https://r2.soft.dn8188.com/riskevaluate/pc/newcenter/del_risk"; var json = Utility.ObjectToJson(dto); var para = new SecurityHelper().createSignEncodingStr(json); var retmsg = Utility.PostData(url, para, Encoding.UTF8); var retmessage = WebHelper.JsonHelper.JsonDivertToObj(retmsg); if (retmessage.ret == 0) { return JsonHandler.ManageMessage("操作成功!", true); } else { return JsonHandler.ManageMessage("操作失败,请稍后再试!", false); } } } catch (Exception ex) { LogHelper.Error(ex.ToString()); return JsonHandler.ManageMessage("提交失败,请稍后重试或者联系管理员!", false); } } #endregion 查看审核合同,清除未风控合同 #region 手工赠送订单 //[AuthorizeRedirect(Roles = InitRights.CONST_赠送订单列表)] //public ActionResult HandleGif() //{ // ToolBar tool = new ToolBar(); // string[] toolbtn = new ToolButtonView().ToolButtonRight(InitRights.赠送订单列表, userRightId); // tool.AllowButton(toolbtn); // ViewBag.ToolBar = tool; // return View(); //} //[HttpPost] //[AuthorizeRedirect(Roles = InitRights.CONST_赠送订单列表)] //public JsonResult HandleGifList(Laypage pager, string columns, Wx_SzzyOrder_HandGift_Query param) //{ // var layUidata = new LayuiData(); // try // { // List list = _wxszzyorderhandgift.GetHandGifList(ref pager, param); // layUidata.msg = "数据加载成功"; // layUidata.code = 0; // layUidata.data = list; // layUidata.count = pager.count; // } // catch (Exception ex) // { // LogHelper.Error(ex.ToString()); // layUidata.SetFail(1, "出现错误!" + ex.Message); // } // return Json(layUidata); //} //[AuthorizeToolBar(InitRights.CONST_赠送订单列表, InitToolBar.CONST_Add)] //public ViewResult HandleGifAdd() //{ // return View(); //} //[AuthorizeToolBar(InitRights.CONST_赠送订单列表, InitToolBar.CONST_Add)] //public JsonResult HandleGifSave(WX_SZZYORDER_HANDGIFT model) //{ // retMsg ret = new retMsg(); // ValidationErrors errors = new ValidationErrors(); // model.CREATEUSER = string.Format("{0}-{1}", Eid, UserName); // #region 指定渠道 // var sysChannel = cache_BL.GetValue_Parameter("Sys_Channel"); // //model.CHANNEL = sysChannel; // //var softUser = soft_User_BL.GetUser_userName(model.SOFTUSERNAME); // //if (!string.IsNullOrEmpty(sysChannel)) // //{ // // decimal curChannel = 0; // // var channelArr = sysChannel.Split('|'); // // foreach (var arr in channelArr) // // { // // var chs = arr.Split(','); // // var minChannel = int.Parse(chs[0]); // // var maxChannel = int.Parse(chs[1]); // // if (softUser.REGCAMPAINID.Value >= minChannel && softUser.REGCAMPAINID.Value <= maxChannel) // // { // // curChannel = softUser.REGCAMPAINID.Value; // // } // // } // // if (curChannel <= 0) // // { // // var ch = Utility.GetSettingOrNullByKey("Channel"); // // if (string.IsNullOrEmpty(ch)) // // { // // errors.Add("渠道错误!"); // // return JsonHandler.UpdateMessage(errors, false); // // } // // curChannel = decimal.Parse(ch); // // } // // model.CHANNEL = curChannel; // //} // //else // //{ // // model.CHANNEL = softUser.REGCAMPAINID.Value; // //} // var channelArr = sysChannel.Split('|'); // decimal curChannel = 0; // foreach (var arr in channelArr) // { // var chs = arr.Split(','); // var minChannel = int.Parse(chs[0]); // var maxChannel = int.Parse(chs[1]); // curChannel = minChannel; // } // model.CHANNEL = curChannel; // #endregion 指定渠道 // if (_wxszzyorderhandgift.Save(model, ref errors)) // { // ret = new retMsg() { result = true, retcode = 200, retmsg = "保存成功!" }; // } // else // { // ret = new retMsg() { result = false, retcode = 200, retmsg = errors.Error }; // } // return Json(ret); //} //[HttpPost] //[AuthorizeToolBar(InitRights.CONST_赠送订单列表, InitToolBar.CONST_Add)] //public JsonResult SerchManOrder(string orderid) //{ // retMsg ret = new retMsg(); // decimal id = 0; // if (!decimal.TryParse(orderid, out id)) // { // ret = new retMsg() { result = false, retcode = 200, retmsg = "请输入正确的有价订单ID!" }; // return Json(ret); // } // ValidationErrors errors = new ValidationErrors(); // var model = _wxszzyorderhandgift.GetSuProductIdByOrderId(long.Parse(id.ToString()), ref errors); // if (errors != null && errors.Any()) // { // ret = new retMsg() { result = false, retcode = 200, retmsg = errors.Error }; // return Json(ret); // } // if (model == null || model.subproductid == 0) // { // ret = new retMsg() { result = false, retcode = 200, retmsg = "订单ID有误!" }; // } // if (model == null || model.subproductid == 0) // { // ret = new retMsg() { result = false, retcode = 200, retmsg = "订单ID有误!" }; // } // else // { // ret = new retMsg() // { // result = true, // retcode = 200, // retmsg = new // { // MESSAGE = "", // SOFTUSERNAME = model?.softusername, // SUBPRODUCTNAME = model?.subproductname, // ActiveList = model?.ActiveList // } // }; // } // return Json(ret); //} #endregion 手工赠送订单 private bool updateOrderExt(WX_SZZYORDER_Extend model) { WX_ORDEREXT orderExt = new WX_ORDEREXT(); orderExt.ORDERID = model.wx_SzzyOrder.ORDERID; orderExt.NAME = model.Name; orderExt.SOFTUSERNAME = model.SoftUserName; orderExt.ISPAYED = model.IsPayed; orderExt.PAYTYPE = model.PayType; orderExt.PAYNO = model.PayNo; orderExt.OPENDAYS = model.OpenDays; orderExt.AUDITUSER = UserId; orderExt.AUDITTIME = DateTime.Now; return wx_OrderExt_BL.Update(orderExt); } private List getProductList() { List selectList = new List(); var where = PredicateExtensionses.True(); where = where.And(m => m.ISVALID == 1); Pager pager = new Pager() { page = 1, rows = int.MaxValue }; var list = wx_SzzyProduct_BL.GetList(where, m => m.PRODUCTID, pager, SortOrder.Ascending); foreach (var szzyProduct in list) { selectList.Add(new SelectListItem() { Text = szzyProduct.PRODUCTNAME, Value = szzyProduct.PRODUCTID.ToString() }); } return selectList; } private List GetMidProductList() { var data = new List(); var list = _midProduct.GetList(); foreach (var item in list) { data.Add(new SelectListItem() { Text = item.MIDPRODUCTNAME, Value = item.MIDPRODUCTID.ToString() }); } return data; } private List getAllProductList() { List selectList = new List(); var where = PredicateExtensionses.True(); Pager pager = new Pager() { page = 1, rows = int.MaxValue }; var list = wx_SzzyProduct_BL.GetList(where, m => m.PRODUCTID, pager, SortOrder.Ascending); foreach (var szzyProduct in list) { selectList.Add(new SelectListItem() { Text = szzyProduct.PRODUCTNAME, Value = szzyProduct.PRODUCTID.ToString() }); } return selectList; } private List getSubProductListByProductId(int productId, int isValid, int? midProductId) { List selectList = new List(); var where = PredicateExtensionses.True(); if (productId > 0) { where = where.And(m => m.PRODUCTID == productId); } if (isValid == 1) { where = where.And(m => m.ISVALID == 1 && m.ISSHOW == 1);//要上线产品,同时需要是 显示的产品 } if (midProductId.HasValue) { where = where.And(m => m.MIDPRODUCTID == midProductId.Value); } Pager pager = new Pager() { page = 1, rows = int.MaxValue }; var list = wx_SzzySubProduct_BL.GetList(where, m => m.SUBPRODUCTID, pager, SortOrder.Ascending); foreach (var szzySubProduct in list) { selectList.Add(new SelectListItem() { Text = szzySubProduct.SUBPRODUCTNAME + "(" + szzySubProduct.RIGHTPERIOD + ")", Value = szzySubProduct.SUBPRODUCTID.ToString() }); } return selectList; } private string getOrderTypeStr(decimal orderType) { if (orderType == 1) { return "普通订单"; } else if (orderType == 2) { return "续费订单"; } else if (orderType == 3) { return "升级订单"; } else if (orderType == 4) { return "换课订单"; } else { return ""; } } private string getOrderStatusStr(string orderStatus) { if (orderStatus == "0") { return string.Format("下单失败"); } else if (orderStatus == "1") { return "未开通"; } else if (orderStatus == "2") { return "部分支付"; } else if (orderStatus == "3") { return "已支付"; } else if (orderStatus == "4") { return "已开通"; } else if (orderStatus == "5") { return "已到期"; } else if (orderStatus == "6") { return "已升级"; } else if (orderStatus == "7") { return "已退款"; } else if (orderStatus == "8") { return "已取消"; } else if (orderStatus == "9") { return "已关闭"; } else if (orderStatus == "10") { return "隐藏"; } else { return ""; } } public JsonResult GetSubProductList(int productId, int? midProductId = null) { return Json(this.getSubProductListByProductId(productId, 1, midProductId), JsonRequestBehavior.AllowGet); } public JsonResult GetAllSubProductList(int productId, int? midproductId) { return Json(this.getSubProductListByProductId(productId, 0, midproductId), JsonRequestBehavior.AllowGet); } [Inject] public IWX_ORDERACTIVE wx_orderactive { get; set; } public JsonResult GetSubProductPriceById(int subProductId) { //[{"isValid":"1","channel":"1000","subproductname":"","isgift":"0","discount":"90,80"}] var subProduct = wx_SzzySubProduct_BL.Get(m => m.SUBPRODUCTID == subProductId); if (subProduct != null) { var discount = string.Empty; if (!string.IsNullOrEmpty(subProduct.DISCOUNT)) { discount = subProduct.DISCOUNT; } else { if (!string.IsNullOrEmpty(subProduct.PRODUCTEXT)) { var channel = Utility.GetSettingOrNullByKey("Channel"); if (!string.IsNullOrEmpty(channel)) { var ch = int.Parse(channel); var extObj = JsonConvert.DeserializeObject>(subProduct.PRODUCTEXT); var curExt = extObj.Find(p => p.channel == ch); if (curExt != null) { discount = curExt.discount; } } } } if (!string.IsNullOrEmpty(discount) && !string.IsNullOrEmpty(subProduct.HID_DISCOUNT)) { string[] needhid = subProduct.HID_DISCOUNT.Split(','); string[] old = discount.Split(','); string[] newll = old.Where(m => !needhid.Contains(m)).ToArray(); discount = string.Join(",", newll); } //折后价格 var customprisce = subProduct.CUSTOMPRICE; if (!string.IsNullOrEmpty(customprisce) && !string.IsNullOrEmpty(subProduct.HID_CUSTOMPRICE)) { var oldList = customprisce.Split(','); var hideList = subProduct.HID_CUSTOMPRICE.Split(','); customprisce = string.Join(",", oldList.Where(m => !hideList.Contains(m))); } var gifts = _gift.GetList(p => p.SUBPRODUCTID == subProductId); if (subProduct.ISGIFT == 1 && gifts.Any()) { decimal[] mma = { 1, 2 }; var orderactiveList = wx_orderactive.GetList(M => M.PRODUCTCODE == subProduct.PRODUCTCODE && M.GIFTYPE.Contains("[Order]") && mma.Contains(M.ISFOLLOWORDER));//订单的赠送配置 var entr = orderactiveList.FirstOrDefault(m => m.ISFOLLOWORDER == 1); var giftData = new object { }; if (entr != null) { giftData = gifts.Where(p => p.TYPE == 1 && p.ISSHOW == 1).OrderBy(p => p.SORT).Select(p => new { p.GIFTDAYS, p.GIFTDAYSNAME, p.GIFTNAME }); } var entr2 = orderactiveList.FirstOrDefault(m => m.ISFOLLOWORDER == 2); var giftData2 = new object { }; if (entr2 != null) { giftData2 = gifts.Where(p => p.TYPE == 2 && p.ISSHOW == 1).OrderBy(p => p.SORT).Select(p => new { p.GIFTDAYS, p.GIFTDAYSNAME, p.GIFTNAME }); } return Json(new { result = true, price = subProduct.PRICE, days = subProduct.RIGHTPERIOD, discount, gifts = giftData, gifts2 = giftData2, customprisce }, JsonRequestBehavior.AllowGet); } else { return Json(new { result = true, price = subProduct.PRICE, days = subProduct.RIGHTPERIOD, discount, gifts = new { }, gifts2 = new { }, customprisce }, JsonRequestBehavior.AllowGet); } } else { return Json(new { result = false, price = 0, days = 0 }, JsonRequestBehavior.AllowGet); } } private string getProductCode(decimal? subProductId) { var model = wx_SzzySubProduct_BL.Get(m => m.SUBPRODUCTID == subProductId); if (model != null && !string.IsNullOrWhiteSpace(model.PRODUCTCODE)) { return model.PRODUCTCODE; } else { return ""; } } /// /// 退款剩余价值计算 /// /// /// /// private decimal GetOrderRefundPrice(WX_SZZYORDER order, int? isOriginalPrice = null) { if (order.ISOPEN == 0) return 0; var refundDay = cache_BL.GetValue_Parameter("orderrefundday"); if (string.IsNullOrEmpty(refundDay)) { refundDay = "7"; } if (isOriginalPrice.HasValue) { if (isOriginalPrice.Value == 1) { return order.ARRIVALPAY.Value > order.NEEDPAY.Value ? order.ARRIVALPAY.Value : order.NEEDPAY.Value; } } if (order.ORDERSTATUS == "180") { //新订单,全退 return order.NEEDPAY.Value; } else if (order.ORDERSTATUS == "200") { //已经确认支付过的订单,还未开通的订单 return order.ARRIVALPAY.Value; } else if (order.ORDERSTATUS == "220" || order.ORDERSTATUS == "205") { //已经开通的订单 if (order.OTIME.Value.AddDays(int.Parse(refundDay)) >= DateTime.Now) { //LogHelper.Info("7天全退:" + order.ARRIVALPAY.Value.ToString()); //7天内,全退 return order.ARRIVALPAY.Value; } else { //如果结束时间小于当前时间,说明已经过期,直接返回0 if (order.ENDTIME.Value < DateTime.Now) return 0; //7天之后,按使用月份返回 //var allMonth = order.ENDTIME.Value.Year * 12 + order.ENDTIME.Value.Month - order.OTIME.Value.Year * 12 - order.OTIME.Value.Month; //var useMonth = DateTime.Now.Year * 12 + DateTime.Now.Month - order.OTIME.Value.Year * 12 - order.OTIME.Value.Month; //var avgPrice = order.ARRIVALPAY.Value / allMonth; var allDay = (order.ENDTIME.Value - order.OTIME.Value).Days; var useDay = (DateTime.Now - order.OTIME.Value).Days; var avgPrice = order.ARRIVALPAY.Value / allDay; return avgPrice * (allDay - useDay - 1); } } return 0; } /// /// 升级原订单剩余价值 /// /// /// /// private decimal GetOrderUpgradeRefundPrice(WX_SZZYORDER order, bool isSameCategory, int? isOriginalPrice = null) { if (order.ISOPEN == 0) return 0; decimal refundPrice = 0; var refund = _orderRefund.Get(p => p.ORDERID == order.ORDERID && p.AUDITSTATUS == 1); if (refund != null) { refundPrice = refund.REFUNDPRICE; } var refundDay = cache_BL.GetValue_Parameter("orderupgraderefundday"); if (string.IsNullOrEmpty(refundDay)) { refundDay = "31"; } //表示是同阶产品升级,这时候只能按折扣升级,并且还是有30天免天数使用 if (isSameCategory) { isOriginalPrice = 0; } if (isOriginalPrice.HasValue) { if (isOriginalPrice.Value == 1) { return (order.ARRIVALPAY.Value > order.NEEDPAY.Value ? order.ARRIVALPAY.Value : order.NEEDPAY.Value) - refundPrice; } } if (order.ORDERSTATUS == "180") { //新订单,全退 return 0; } else if (order.ORDERSTATUS == "200") { //已经确认支付过的订单,还未开通的订单 return order.ARRIVALPAY.Value - refundPrice; } else if (order.ORDERSTATUS == "220" || order.ORDERSTATUS == "205") { //已经开通的订单 if (order.OTIME.Value.AddDays(int.Parse(refundDay)) >= DateTime.Now) { //LogHelper.Info("7天全退:" + order.ARRIVALPAY.Value.ToString()); //7天内,全退 return order.ARRIVALPAY.Value - refundPrice; } else { //如果结束时间小于当前时间,说明已经过期,直接返回0 if (order.ENDTIME.Value < DateTime.Now) return 0; //7天之后,按使用月份返回 //var allMonth = order.ENDTIME.Value.Year * 12 + order.ENDTIME.Value.Month - order.OTIME.Value.Year * 12 - order.OTIME.Value.Month; //var useMonth = DateTime.Now.Year * 12 + DateTime.Now.Month - order.OTIME.Value.Year * 12 - order.OTIME.Value.Month; //var avgPrice = order.ARRIVALPAY.Value / allMonth; var allDay = (order.ENDTIME.Value - order.OTIME.Value).Days; var useDay = (DateTime.Now - order.OTIME.Value).Days; var avgPrice = order.ARRIVALPAY.Value / allDay; return (avgPrice * (allDay - useDay - 1)) - refundPrice; } } return 0; } public ActionResult GetQRCode(string url) { QRCodeHelper.qrCodeScale = 8; QRCodeHelper.encode = System.Text.Encoding.UTF8; byte[] bytes = QRCodeHelper.Create(url); return File(bytes, @"image/jpeg"); } private string getEidCh() { var chConfig = cache_BL.GetValue_Parameter(Model.Enum.Parameter.Soft_RegChannel); var ch = ""; if (string.IsNullOrEmpty(chConfig)) { ch = "1088"; } else { var chArrs = chConfig.Split('|'); foreach (var arr in chArrs) { var arrs = arr.Split(':'); if (arrs[0] == Eid.ToString()) { ch = arrs[1]; break; } } } if (string.IsNullOrEmpty(ch)) { ch = "1088"; } return ch; } private string GetQiXian(decimal day) { //var cc = Math.Round((day / 373), MidpointRounding.AwayFromZero); //if (cc >= 1) //{ // if (cc >= 50) // return "永久"; // else // return cc.ToString() + "年"; //} //cc = Math.Round((day / 187), MidpointRounding.AwayFromZero); //if (cc >= 1) // return "半年"; //cc = Math.Round((day / 31), MidpointRounding.AwayFromZero); //if (cc >= 1) // return cc.ToString() + "个月"; return day.ToString() + "天"; } public class RiskInfoDto { public int ret { get; set; } public string answer { get; set; } public Int64 createTime { get; set; } public string idCard { get; set; } public string name { get; set; } public string key { get; set; } public string style { get; set; } public int index { get; set; } public string businesstype { get; set; } } public class WX_SZZYORDER_EXPORT { public string RESID { get; set; } public string DEPTCODE { get; set; } public string CNAME { get; set; } public string GNAME { get; set; } public decimal ORDERID { get; set; } public decimal? INNERUSERID { get; set; } public string SUBPRODUCTNAME { get; set; } public decimal? NEEDPAY { get; set; } public decimal? FINALPAY { get; set; } public decimal? ARRIVALPAY { get; set; } public DateTime? ARRIVALTIME { get; set; } public decimal? ORDERTYPE { get; set; } public string ORDERSTATUSNAME { get; set; } public decimal? SZZYORDERID { get; set; } public DateTime? CTIME { get; set; } public DateTime? OTIME { get; set; } public DateTime? FINACEPAYDATE { get; set; } public decimal? OPENDAYS { get; set; } public decimal? GIFTDAYS { get; set; } public string FCTEXT { get; set; } public string FCEID { get; set; } public string FCBL { get; set; } public decimal? FCJE { get; set; } public string SOURCE { get; set; } public string CUSTOMERUSERNAME { get; set; } public decimal? ISOPEN { get; set; } public string CONTRACTCODE { get; set; } public decimal? HASHGRECORD { get; set; } public string AREA { get; set; } public string RISKCTRLSTATUS { get; set; } } public class OrderModuleRes { public int ret { get; set; } public string msg { get; set; } public List data { get; set; } } public class OrderModuleList { public decimal mid { get; set; } public Int64 starttime { get; set; } public Int64 endtime { get; set; } } public class OrderModelView { public OrderModelView() { } public OrderModelView(string productName, DateTime endTime) { ProductName = productName; EndTime = endTime; } public string ProductName { get; set; } public DateTime EndTime { get; set; } } public class DeleteContractRes { public int ret { get; set; } } public class UpgradeOrder { public WX_SZZYORDER Order { get; set; } public bool IsSameCategory { get; set; } } public class ProductExt { public int isValid { get; set; } public int channel { get; set; } public string subproductname { get; set; } public int isgift { get; set; } public string discount { get; set; } } private string GetPayTypeName(decimal typeId) { var name = "未知"; switch (int.Parse(typeId.ToString())) { case 1: name = "支付宝"; break; case 3: name = "银行转账"; break; case 5: name = "微信支付"; break; } return name; } public class retMsg { public bool result { get; set; } public int retcode { get; set; } public string retmsg { get; set; } } public class retMsg { public bool result { get; set; } public int retcode { get; set; } public T retmsg { get; set; } } public class AiMsgOrderDto { public bool result { get; set; } public int retcode { get; set; } public List retmsg { get; set; } } public class AiConfigrDto { public bool result { get; set; } public int retcode { get; set; } public List retmsg { get; set; } } public class AiOrderDto { public decimal ORDERID { get; set; } public string ai_hgrecord_stime { get; set; } public int startTime { get; set; } = -1; public int endTime { get; set; } = -1; public string ai_hgrecord_etime { get; set; } public int? ai_hgrecord_status { get; set; } = -1; /// /// 外呼状态 /// public string ai_hgrecord_statusname { get; set; } public int hasbtn { get; set; } } public class ContractAuditDto { public int OrderId { get; set; } } public class HgRecordDto { public decimal PKID { get; set; } public string COMPANYCODE { get; set; } public decimal? RECORDID { get; set; } public string FILENAME { get; set; } public string RESID { get; set; } public string SERVICENUMBER { get; set; } public string TELNUMBERLAST4 { get; set; } public decimal? TIMELENGTH { get; set; } public decimal? SALESEID { get; set; } public DateTime? TIMESTART { get; set; } public DateTime? TIMEEND { get; set; } public DateTime? CTIME { get; set; } public decimal? INNERUSERID { get; set; } public decimal? MEMOID { get; set; } public short? ISDOWN { get; set; } public string SERVERID { get; set; } public decimal? RECORDTYPE { get; set; } public int OrderId { get; set; } public string CONTENT { get; set; } } } }