TG.WXCRM.V4/WEB/Controllers/Level2/Leve2OrderController.cs

2391 lines
104 KiB
C#
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

using CRM.Core.DTO.Ord;
using Newtonsoft.Json;
using Ninject;
using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Text;
using System.Web.Mvc;
using WX.CRM.BLL.Res;
using WX.CRM.BLL.Util;
using WX.CRM.Common;
using WX.CRM.IBLL.Base;
using WX.CRM.IBLL.Level2;
using WX.CRM.IBLL.Res;
using WX.CRM.IBLL.Soft;
using WX.CRM.IBLL.Util;
using WX.CRM.IBLL.Wx;
using WX.CRM.Model.Entity;
using WX.CRM.Model.Enum;
using WX.CRM.Model.MAP;
using WX.CRM.Model.QueryMap;
using WX.CRM.WEB.ViewModel.Level2;
using WX.CRM.WebHelper;
namespace WX.CRM.WEB.Controllers.Level2
{
public class Leve2OrderController : BaseController
{
private ValidationErrors errors = new ValidationErrors();
[Inject]
public ISecurityHelper sHelper { get; set; }
private List<Soft_OrderDetail> orderDetail;
private List<L2_SOFT_PRODUCT> softProducts;//产品大类List
private List<L2_SOFT_BIGPRODUCT> softBigProducts;//产品小类List
//private readonly IGjs_RptMon_Q Rpt;
//private readonly IRES_CUSTOMERUSER_Q _customerUser_Q;
private IL2_SOFT_MODULE_Q Isoft_module_q;
private IL2_SOFT_PRODUCTMODULE_Q Isoft_productmodule_q;
private ISOFT_MODULE_Q InstanceModelBLL;
[Inject]
public IBAS_PARAMETER_Q _parameter_Q { get; set; }
[Inject]
public ISOFT_USER_Q _softuser_q { get; set; }
[Inject]
public IL2_SOFT_PRODUCT_Q _l2_soft_product_Q { get; set; }
[Inject]
public ICACHE_Q cache { get; set; }
[Inject]
public IBAS_PARAMETER_Q _BAS_PARAMETER_Q { get; set; }
[Inject]
public IRES_CUSTOMER_Q _IRES_CUSTOMER_Q { get; set; }
[Inject]
public IRES_RESOURCEMOBILE_Q _RES_RESOURCEMOBILE_Q { get; set; }
[Inject]
public IL2_SOFT_ORDER_Q _order { get; set; }
[Inject]
public IRES_CUSTOMERUSER_Q _customerUser_Q { get; set; }
[Inject]
public IWX_TDORDER wx_TDorder_BL { get; set; }
public Leve2OrderController(
// IGjs_RptMon_Q Rpt,
ISOFT_MODULE_Q InstanceModelBLL,
IL2_SOFT_MODULE_Q Isoft_module_q,
IL2_SOFT_PRODUCTMODULE_Q Isoft_productmodule_q)
{
// this.Rpt = Rpt;
this.InstanceModelBLL = InstanceModelBLL;
this.Isoft_module_q = Isoft_module_q;
this.Isoft_productmodule_q = Isoft_productmodule_q;
}
// GET: /Leve2Order/
#region
[AuthorizeRedirect(Roles = InitRights.CONST_L2订单查询)]
public ActionResult Index(int? protype)
{
#region toolbar工具栏
ToolBar tool = new ToolBar();
string[] toolbtn = new ToolButtonView().ToolButtonRight(InitRights.L2订单查询, userRightId);
tool.AllowButton(toolbtn);
tool.AddOtherButton("Other1", "创建订单", "icon-add", "btnAdd_Click", true);
tool.AddOtherButton("Other2", "开通订单", "icon-lookup", "btnopen_Click", true);
tool.AddOtherButton("Other3", "取消订单", "icon-remove", "btncancel_Click", true);
tool.AddOtherButton("Other4", "导出", "icon-export", "btnexport_Click", true);
tool.AddOtherButton("Other5", "银行转账下单并开通", "icon-add", "btnPayCreate_Click", true);
tool.AddOtherButton("Other6", "查看用户名", "icon-lookup", "btnSUsername_Click", true);
ViewBag.ToolBar = tool;
#endregion toolbar工具栏
#region gridtable
var pager = new Pager() { page = 1, rows = 20 };
var tableId = "tablist";
var tab = new Table(tableId);
tab.AddHeadCol("orderid", "8%", "订单号 ", true);
tab.AddHeadCol("pcusername", "9%", "PC用户名 ");
tab.AddHeadCol("username", "9%", "手机APP用户名 ", true);
tab.AddHeadCol("L2RESID", "10%", "客户ID");
tab.AddHeadCol("bigproductcode", "10%", "产品大类");
//tab.AddHeadCol("productcode", "10%", "产品小类");
//tab.AddHeadCol("CHANNEL", "5%", "用户渠道 ");
tab.AddHeadCol("booknum", "3%", "套数", true);
tab.AddHeadCol("totaldays", "4%", "天数", true);
tab.AddHeadCol("totalprice", "4%", "总金额");
tab.AddHeadCol("orderstatus", "5%", "订单状态");
tab.AddHeadCol("isopen", "5%", "开通状态", true);
tab.AddHeadCol("ispayed", "5%", "是否支付");
tab.AddHeadCol("otime", "", "开通时间", true);
tab.AddHeadRow();
ViewBag.gridTable = tab.GetTable() + Pagination.GetPage(pager, tableId, "20,30,40,55");
#endregion gridtable
#region ViewBag页面传值
#region
string BigProductcode = "";
string SProductcode = "";
BAS_PARAMETER model = new BAS_PARAMETER();
if (!protype.HasValue || protype == 0)
{
protype = 1;
}
if (protype == 1)
{
model = _parameter_Q.GetModel_Patameter("Level2ProductSelect");
}
if (protype == 2)
{
model = _parameter_Q.GetModel_Patameter("ZXProductSelect");
}
if (model != null)
{
BigProductcode = model.map_PARAVALUE.Split('#')[0];
SProductcode = model.map_PARAVALUE.Split('#')[1];
}
List<SelectListItem> bplist = new List<SelectListItem>();
bplist = plistToListItem(BigProductcode, protype.Value);
List<SelectListItem> splist = new List<SelectListItem>();
splist = splistToListItem(bplist, SProductcode);
ViewBag.bplist = bplist;
ViewBag.splist = splist;
ViewBag.protype = protype;
#endregion
#endregion ViewBag页面传值
return View();
}
#region listitem
//获取大类listitem
public List<SelectListItem> plistToListItem(string BigProductcode, int type)
{
softBigProducts = cache.GetBigProductList();
softBigProducts = softBigProducts.Where(p => p.GROUPID == type).ToList();
List<SelectListItem> bplist = new List<SelectListItem>();
for (int i = 0; i < softBigProducts.Count(); i++)
{
SelectListItem item = new SelectListItem();
item.Text = softBigProducts[i].PRODUCTNAME;
item.Value = softBigProducts[i].PRODUCTCODE.ToString();
bplist.Add(item);
}
if (bplist.Count > 0)
{
if (BigProductcode != "")
{
for (int i = 0; i < bplist.Count(); i++)
{
if (bplist[i].Value == BigProductcode)
{
bplist[i].Selected = true;
}
}
}
else
{
bplist[0].Selected = true;
}
}
bplist.Add(new SelectListItem() { Text = "所有", Value = "-1" });
return bplist;
}
//获取小类listitem
public List<SelectListItem> splistToListItem(List<SelectListItem> bplist, string SProductcode)
{
string bpcode = "";
for (int i = 0; i < bplist.Count; i++)
{
if (bplist[i].Selected)
{
bpcode = bplist[i].Value;
}
}
softBigProducts = cache.GetBigProductList();
softProducts = cache.GetSProductList();
L2_SOFT_BIGPRODUCT bmodel = softBigProducts.Where(p => p.PRODUCTCODE == bpcode).FirstOrDefault();
softProducts = softProducts.Where(p => p.BIGPRODUCTID == bmodel.PRODUCTID).ToList();
List<SelectListItem> splist = new List<SelectListItem>();
for (int i = 0; i < softProducts.Count(); i++)
{
SelectListItem item = new SelectListItem();
item.Text = softProducts[i].PRODUCTNAME;
item.Value = softProducts[i].PRODUCTCODE.ToString();
splist.Add(item);
}
if (splist.Count > 0)
{
if (SProductcode != "")
{
for (int i = 0; i < splist.Count(); i++)
{
if (splist[i].Value == SProductcode)
{
splist[i].Selected = true;
}
}
}
else
{
splist[0].Selected = true;
}
}
return splist;
}
#endregion listitem
#endregion
#region
[AuthorizeToolBar(InitRights.CONST_L2订单查询, InitToolBar.CONST_Other3)]
public JsonResult CancelOrde(string id)
{
CancelModel model = new CancelModel();
model.ApplyOrderId = id.ToString();
model.CancelUser = UserId.ToString();
string msg = "";
Soft_CRMOperationordermodel soft_OOM = new Soft_CRMOperationordermodel();
bool result = soft_OOM.CancelOrdermodel(model);
if (result)
{
msg = "取消订单成功!";
return JsonHandler.ManageMessage(msg, true);
}
else
{
msg = "取消订单失败!";
return JsonHandler.ManageMessage(msg, false);
}
}
#endregion
#region
[AuthorizeToolBar(InitRights.CONST_L2订单查询, InitToolBar.CONST_Other4)]
public FileResult ListExport()
{
int total = 0;
string msg = "";
string checkedFilds = PageRequest.GetQueryString("checkedFilds");
string checkedTitles = PageRequest.GetQueryString("checkedTitles");
string ctime = Request.QueryString["ctime"];
string etime = Request.QueryString["etime"];
string openstime = Request.QueryString["openctime"];
string openetime = Request.QueryString["openetime"];
string _productbigtype = Request.QueryString["productbigtype"];
string _productsmalltype = Request.QueryString["productsmalltype"];
string _openStatu = Request.QueryString["openStatu"];
string _userName = Request.QueryString["userName"];
string _OrderId = Request.QueryString["OrderId"];
string _resId = Request.Form["ResId"];
if (_productbigtype == "-1")
{
_productbigtype = "";
}
if (_productsmalltype == "-1" || _productsmalltype == "null")
{
_productsmalltype = "";
}
Soft_CRMOrderModel crmmodel = new Soft_CRMOrderModel("", _productbigtype, _productsmalltype, _userName, _OrderId, _openStatu, ctime, etime, openstime, openetime, _resId, 1, int.MaxValue);
//获取订单列表
List<Soft_OrderDetail> list = crmmodel.GetOderDetail(out msg, out total);
List<string> ResIds = new List<string>();
foreach (var item in list)
{
item.USERNAME = PhoneHelper.FormatPhoneUserName(item.USERNAME);
item.PcUserName = PhoneHelper.FormatPhoneUserName(item.USERNAME);
var orderext = item.orderExt.FirstOrDefault();
if (null != orderext)
{
item.CHANNEL = orderext.USERCAMPAINID;
item.L2RESID = orderext.MOBILE;
try
{
ResIds.Add(orderext.MOBILE);
RegisterResId regist = new RegisterResId(orderext.MOBILE);
regist.RegisterPhone();
}
catch (Exception ex)
{
LogHelper.Error("level2导出的手机注册" + orderext.MOBILE + ex.ToString());
}
}
}
try
{
RegisterListResId regist = new RegisterListResId(ResIds);
regist.RegisterPhone();
}
catch (Exception ex)
{
LogHelper.Error("level2导出的手机注册" + ex.ToString());
}
return File(ExcelHelper.ExportListModelToExcel<Soft_OrderDetail>(list, "订单查询", 10000, checkedFilds, checkedTitles, DataFormart), "application/ms-excel", PageRequest.GetDlownLoadName("订单查询.xls"));
}
#endregion
#region
[HttpPost]
[AuthorizeRedirect(Roles = InitRights.CONST_L2订单查询)]
public JsonResult GetHtmlList(Pager pager, string columns)
{
int total = 0;
string msg = "";
string ctime = Request.Form["ctime"];
string etime = Request.Form["etime"];
string openstime = Request.Form["openctime"];
string openetime = Request.Form["openetime"];
string _productbigtype = Request.Form["productbigtype"];
string _productsmalltype = Request.Form["productsmalltype"];
string _openStatu = Request.Form["openStatu"];
string _userName = Request.Form["userName"];
string _OrderId = Request.Form["OrderId"];
string _resId = Request.Form["ResId"];
string _protype = Request.Form["protype"];
if (_productbigtype == "-1")
{
if (_protype != null)
{
softBigProducts = cache.GetBigProductList();
softBigProducts = softBigProducts.Where(p => p.GROUPID == Convert.ToDecimal(_protype)).ToList();
_productbigtype = "";
foreach (L2_SOFT_BIGPRODUCT item in softBigProducts)
{
_productbigtype += item.PRODUCTCODE + ",";
}
_productbigtype = _productbigtype.Substring(0, _productbigtype.Length - 1);
}
}
if (_productsmalltype == "-1" || _productsmalltype == "null")
{
_productsmalltype = "";
}
Soft_CRMOrderModel crmmodel = new Soft_CRMOrderModel("", _productbigtype, _productsmalltype, _userName, _OrderId, _openStatu, ctime, etime, openstime, openetime, _resId, pager.page, pager.rows);
//获取订单列表
orderDetail = crmmodel.GetOderDetail(out msg, out total);
var list = orderDetail.AsQueryable();
pager.totalRows = total;
var table = new Table(columns, true);
table.gridPager = pager;
foreach (var model in list)
{
var resid = model.orderExt.FirstOrDefault();
var linkTradeCode = string.Format("<a href=\"javascript:parent.ChildAddTab('{0}', '{1}', '')\">{2}</a>"
, "客户详细"
, "/Level2/Leve2Order/L2CustomerDetail?resid=" + resid.MOBILE//&Ieguid=6a5d80c3edef-7a55
, resid.MOBILE);
table.AddCol(model.ORDERID);//订单号
table.AddCol(PhoneHelper.FormatPhoneUserName(model.PcUserName));//PC用户名
table.AddCol(PhoneHelper.FormatPhoneUserName(model.USERNAME));//APP用户名
table.AddCol(resid == null ? "" : linkTradeCode);//ResId
table.AddCol(GetBigProductName(model.BIGPRODUCTCODE));//大类代码
// table.AddCol(GetProductName(model.PRODUCTCODE));//子类代码
// table.AddCol(GetChannel(orderDetail.FirstOrDefault(p => p.ORDERID == model.ORDERID).orderExt.FirstOrDefault().USERCAMPAINID));//渠道
table.AddCol(model.BOOKNUM);//套数
table.AddCol(model.TOTALDAYS);//开通天数
table.AddCol(model.TOTALPRICE);//总金额
table.AddCol(GetOrderStatus(model.ORDERSTATUS.ToString()));//订单状态
table.AddCol(model.ISOPEN == 0 ? "未开通" : "已开通");//开通状态
table.AddCol(model.ISPAYED == 0 ? "未支付" : "已支付");//是否支付
table.AddCol(model.OTIME.ToUnityString(3));//开通时间
table.AddRow();
}
var json = new
{
totalPages = pager.totalPages,
totalRows = pager.totalRows,
rowsList = table.GetRows()
};
return Json(json, JsonRequestBehavior.AllowGet);
}
#endregion
#region resid详情
public ActionResult L2CustomerDetail(string resid)
{
string msg = "";
try
{
RegisterResId regist = new RegisterResId(resid);
regist.RegisterPhone();
}
catch (Exception ex)
{
msg = ex.Message;
LogHelper.Error("退款申请手机注册" + ex.ToString());
}
Response.Redirect(Url.Action("CustomerDetail", "CustomerInfo", new { resid = resid }));
ViewBag.Msg = msg;
return View();
}
#endregion resid详情
#region
/// <summary>
/// 查看用户名页
/// </summary>
/// <param name="id"></param>
/// <returns></returns>
[HttpGet]
[AuthorizeRedirect(Roles = InitRights.CONST_L2订单查询)]
public ActionResult UserNameDetails(string id)
{
Soft_OrderDetail model = new Soft_OrderDetail();
if (id != null)
{
Soft_CRMOrderModel crmmodel = new Soft_CRMOrderModel(id);
int total = 0;
string msg = "";
//获取订单列表
orderDetail = crmmodel.GetOderDetail(out msg, out total);
//获取订单
model = crmmodel.GetOderDetail(out msg, out total, "GetApplyOrderDetial").FirstOrDefault();
}
return View(model);
}
#region
/// <summary>
/// 订单详情页
/// </summary>
/// <param name="id"></param>
/// <returns></returns>
[HttpGet]
[AuthorizeRedirect(Roles = InitRights.CONST_L2订单查询)]
public ActionResult Details(string id)
{
Soft_OrderDetail model = new Soft_OrderDetail();
if (id != null)
{
Soft_CRMOrderModel crmmodel = new Soft_CRMOrderModel(id);
int total = 0;
string msg = "";
//获取订单列表
orderDetail = crmmodel.GetOderDetail(out msg, out total);
//获取订单
model = crmmodel.GetOderDetail(out msg, out total, "GetApplyOrderDetial").FirstOrDefault();
var resid = model.orderExt.FirstOrDefault();
ViewBag.Orderid = model.ORDERID;
ViewBag.resid = resid.MOBILE;
ViewBag.AppUserName = model.USERNAME;
ViewBag.PCUserName = model.PcUserName;
ViewBag.USERNAME = PhoneHelper.FormatPhoneUserName(model.USERNAME);
ViewBag.OrderStatu = GetOrderStatus(model.ORDERSTATUS.ToString());
ViewBag.isopen = model.ISOPEN == 0 ? "未开通" : "已开通";
ViewBag.productname = GetProductName(model.PRODUCTCODE);
ViewBag.ispayed = model.ISPAYED == 0 ? "未支付" : "已支付";
ViewBag.Channel = GetChannel(orderDetail.FirstOrDefault(p => p.ORDERID == model.ORDERID).orderExt.FirstOrDefault().USERCAMPAINID);
model.USERNAME = PhoneHelper.FormatPhoneUserName(model.USERNAME);
if (model.orderModule != null)
{
var tableId = "tablist";
var tab = new Table(tableId);
tab.AddHeadCol("MODULEID", "50%", "模块Id ", true);
tab.AddHeadCol("MODULEname", "50%", "模块名称 ", true);
tab.AddHeadRow();
foreach (var item in model.orderModule)
{
tab.AddCol(item.MODULEID);
tab.AddCol(GetModelName(item.MODULEID.ToString()));
tab.AddRow();
}
ViewBag.orderModuleTable = tab.GetTable();
}
if (model.orderWebPay != null)
{
var tableId1 = "tablist1";
var tab1 = new Table(tableId1);
tab1.AddHeadCol("WEBPAYID", "50%", "流水号 ", true);
tab1.AddHeadCol("PAYTYPE", "50%", "支付方式 ", true);
tab1.AddHeadRow();
foreach (var item in model.orderWebPay)
{
tab1.AddCol(item.WEBPAYID);
tab1.AddCol(GetPayType(item.PAYTYPE.ToString()));
tab1.AddRow();
ViewBag.orderWebPayTable = tab1.GetTable();
}
}
}
return View(model);
}
/// <summary>
///发送用户名短信
/// </summary>
/// <param name="uname"></param>
/// <returns></returns>
[AuthorizeRedirect(Roles = InitRights.CONST_L2订单查询)]
public JsonResult SendUsernameSms(string AppUserName, string PCUserName, string resid, string orderid, string randnum)
{
try
{
#region
ExtParam exp = new ExtParam();
exp.app_username = AppUserName;
exp.pc_username = PCUserName;
exp.orderid = orderid;
string Strexp = Utility.ObjectToJson(exp);
//短信model
SmsServiceModel smsmodel = new SmsServiceModel();
smsmodel.SubTypeCode = "SMS_L2_SendMsg";
smsmodel.typeCode = "ISVRSMS0001";
// smsmodel.resid = "382749469785534809";
smsmodel.resid = resid;
smsmodel.ExtParam = Strexp;
smsmodel.username = PCUserName;
//将短信model转成json
string key = Utility.ObjectToJson(smsmodel);
key = sHelper.createSignEncodingStr(key, SecurityHelper.OrderClientIdKey);
//获取url
string url = Utility.GetSettingByKey("L2SendUsernameSms");
string retmsg = Utility.PostData(url + "?" + key, Encoding.UTF8);
//retmsg = JsonHelper.JsonDivertToObj<string>(retmsg);
retmsg = sHelper.decyptData(SecurityHelper.OrderClientIdKey, retmsg);
SmsSendMsgModel retmessage = JsonHelper.JsonDivertToObj<SmsSendMsgModel>(retmsg);
if (retmessage.result)
{
return JsonHandler.ManageMessage("短信发送成功!", true);
}
else
{
return JsonHandler.ManageMessage("短信发送失败!" + retmsg, false);
}
#endregion
}
catch (Exception e)
{
Common.LogHelper.Error(string.Concat("短信发送错误", e.Message, e.StackTrace));
return JsonHandler.ManageMessage("短信发送失败!", false);
}
}
#endregion
#region
/// <summary>
/// 开通订单页
/// </summary>
/// <param name="id"></param>
/// <returns></returns>
[HttpGet]
[AuthorizeRedirect(Roles = InitRights.CONST_L2订单查询)]
public ActionResult OpenOrderDetails(string id)
{
Soft_OrderDetail model = new Soft_OrderDetail();
if (id != null)
{
Soft_CRMOrderModel crmmodel = new Soft_CRMOrderModel(id);
int total = 0;
string msg = "";
//获取订单
model = crmmodel.GetOderDetail(out msg, out total, "GetApplyOrderDetial").FirstOrDefault();
ViewBag.OrderStatu = GetOrderStatus(model.ORDERSTATUS.ToString());
ViewBag.isopen = model.ISOPEN == 0 ? "未开通" : "已开通";
ViewBag.productname = GetProductName(model.PRODUCTCODE);
ViewBag.ispayed = model.ISPAYED == 0 ? "未支付" : "已支付";
model.USERNAME = Utility.EncryptUrlEncode(model.USERNAME);
if (model.orderModule != null)
{
var tableId = "tablist";
var tab = new Table(tableId);
tab.AddHeadCol("MODULEID", "50%", "模块Id ", true);
tab.AddHeadCol("MODULEname", "50%", "模块名称 ", true);
tab.AddHeadRow();
foreach (var item in model.orderModule)
{
tab.AddCol(item.MODULEID);
tab.AddCol(GetModelName(item.MODULEID.ToString()));
tab.AddRow();
}
ViewBag.orderModuleTable = tab.GetTable();
}
if (model.orderWebPay != null)
{
var tableId1 = "tablist1";
var tab1 = new Table(tableId1);
tab1.AddHeadCol("WEBPAYID", "50%", "流水号 ", true);
tab1.AddHeadCol("PAYTYPE", "50%", "支付方式 ", true);
tab1.AddHeadRow();
foreach (var item in model.orderWebPay)
{
tab1.AddCol(item.WEBPAYID);
tab1.AddCol(GetPayType(item.PAYTYPE.ToString()));
tab1.AddRow();
ViewBag.orderWebPayTable = tab1.GetTable();
}
}
}
return View(model);
}
/// <summary>
/// 开通订单事件
/// </summary>
/// <param name="model"></param>
/// <returns></returns>
[HttpPost]
[AuthorizeRedirect(Roles = InitRights.CONST_L2订单查询)]
public JsonResult OpenOrderDetails(Soft_OrderDetail model)
{
string id = model.ORDERID.ToString();
string username = Utility.DecryptUrlDecode(model.USERNAME);
string msg = "";
if (model.ISOPEN == 0)
{
OpenOrderModel opmodel = new OpenOrderModel();
opmodel.UserName = username;
opmodel.ApplyOrderId = id;
Soft_CRMOperationordermodel soft_OOM = new Soft_CRMOperationordermodel();
bool result = soft_OOM.OpenOrdermodel(opmodel);
if (result)
{
msg = "开通订单成功!";
return JsonHandler.ManageMessage(msg, true);
}
else
{
msg = "开通订单失败!";
return JsonHandler.ManageMessage(msg, false);
}
}
else
{
msg = "订单已是开通状态!";
return JsonHandler.ManageMessage(msg, false);
}
}
#endregion
#endregion
#region
[AuthorizeRedirect(Roles = InitRights.CONST_L2订单查询)]
public ActionResult L2CreateActiveOrder(string id)
{
return View();
}
/// <summary>
/// 下单
/// </summary>
/// <param name="model"></param>
/// <returns></returns>
[HttpPost]
[AuthorizeToolBar(InitRights.CONST_L2订单查询, InitToolBar.CONST_Other1)]
public JsonResult L2CreateActiveOrder(AddOrderModel model)
{
string code = Request.Form["ProductCode"];
model.productCode = code;
Soft_CRMOperationordermodel soft_OOM = new Soft_CRMOperationordermodel();
model.CreateUser = UserId.ToString();
model.orderNum = 1;
if (string.IsNullOrEmpty(model.IP))
{
model.IP = "0.0.0.0";
}
else
{
model.IP = model.IP;
}
returnResult result = soft_OOM.AddOrdermodel(model);
string msg = "";
if (result.result)
{
msg = "下单成功!";
return JsonHandler.ManageMessage(msg, true);
}
else
{
msg = "下单失败,错误代码" + result.retcode.ToString();
return JsonHandler.ManageMessage(msg, false);
}
}
[HttpGet]
public JsonResult GetIP(string userName)
{
string msg = "";
string SSOurl = Utility.GetSettingByKey("getSSO");
SSOurl += userName;
string respone = Utility.PostData(SSOurl, Encoding.UTF8);
if (!string.IsNullOrEmpty(respone))
{
int index = respone.IndexOf("hqrights");
if (index < 1)
{
msg = "";
return JsonHandler.ManageMessage(msg, true);
}
else
{
string rights = respone.Substring(index);
rights = rights.Substring(rights.IndexOf("ip"));
rights = rights.Substring(0, rights.Length - 5);
string[] arr = rights.Split(':');
msg = arr[1].Replace("\\\"", "");
return JsonHandler.ManageMessage(msg, true);
}
}
else
{
msg = "";
return JsonHandler.ManageMessage(msg, true);
}
}
#endregion
#region
/// <summary>
/// 当大类改变时
/// </summary>
/// <param name="id"></param>
/// <returns></returns>
public JsonResult JsonProType(string code)
{
if (code == "-1")
{
List<SelectListItem> list = new List<SelectListItem>();
list.Add(new SelectListItem() { Text = "所有", Selected = true, Value = "-1" });
return Json(list, JsonRequestBehavior.AllowGet);
}
else
{
L2_SOFT_BIGPRODUCT softbigpro = cache.GetBigProductList().Where(p => p.PRODUCTCODE == code).FirstOrDefault();
softProducts = cache.GetSProductList();
var list = softProducts.Where(m => m.BIGPRODUCTID == softbigpro.PRODUCTID).Select(item => new SelectListItem() { Text = item.PRODUCTNAME, Value = item.PRODUCTCODE.ToString(), Selected = true }).ToList();
return Json(list, JsonRequestBehavior.AllowGet);
}
}
public string DataFormart(string key, object value)
{
string formartValue = string.Empty;
switch (key)
{
case "ISOPEN":
switch (Convert.ToString(value))
{
case "0": formartValue = "未开通"; break;
case "1": formartValue = "已开通"; break;
default: formartValue = ""; break;
}; break;
case "ISPAYED":
switch (Convert.ToString(value))
{
case "0": formartValue = "未支付"; break;
case "1": formartValue = "已支付"; break;
default: formartValue = ""; break;
}; break;
case "ORDERSTATUS"://订单状态
formartValue = GetOrderStatus(Convert.ToString(value));
break;
case "BIGPRODUCTCODE": formartValue = GetBigProductName(Convert.ToString(value)); break;
case "PRODUCTCODE": formartValue = GetProductName(Convert.ToString(value)); break;
default: formartValue = string.Format("{0}", value); break;
}
return formartValue;
}
/// <summary>
/// 订单状态
/// </summary>
/// <param name="status"></param>
/// <returns></returns>
protected string GetOrderStatus(string status)
{
string getstatus = "";
switch (status)
{
case "180":
getstatus = "新订单";
break;
case "200":
getstatus = "已支付";
break;
case "210":
getstatus = "暂缓开通";
break;
case "220":
getstatus = "已开通";
break;
case "90":
getstatus = "已停用";
break;
case "80":
getstatus = "已过期";
break;
case "70":
getstatus = "已取消";
break;
}
return getstatus;
}
/// <summary>
/// 产品大类名
/// </summary>
/// <param name="productCode">产品大类代码</param>
/// <returns></returns>
protected string GetBigProductName(string productCode)
{
if (!string.IsNullOrEmpty(productCode))
{
var model = cache.GetBigProductList().Where(p => p.PRODUCTCODE.Trim() == productCode.Trim()).FirstOrDefault();
return model == null ? productCode : model.PRODUCTNAME;
}
return productCode;
}
/// <summary>
/// 产品子类名
/// </summary>
/// <param name="productCode">产品子类代码</param>
/// <returns></returns>
protected string GetProductName(string productCode)
{
if (!string.IsNullOrEmpty(productCode))
{
var model = cache.GetSProductList().Where(p => p.PRODUCTCODE == productCode).FirstOrDefault();
return model == null ? productCode : model.PRODUCTNAME;
}
return productCode;
}
/// <summary>
/// 模块名
/// </summary>
/// <param name="modelid"></param>
/// <returns></returns>
protected string GetModelName(string modelid)
{
if (!string.IsNullOrEmpty(modelid))
{
int id = 0;
int.TryParse(modelid, out id);
var model = cache.GetAllModule().Where(p => p.MODULEID == id).FirstOrDefault();
return model == null ? modelid : model.MODULENAME;
}
return modelid;
}
/// <summary>
/// 支付方式
/// </summary>
/// <param name="paytype"></param>
/// <returns></returns>
protected string GetPayType(string paytype)
{
string typeStr = string.Empty;
switch (paytype)
{
case "1": typeStr = "支付宝 "; break;
case "2": typeStr = "财富通 "; break;
case "3": typeStr = "银行转账"; break;
case "4": typeStr = "网银支付"; break;
case "5": typeStr = "微信支付"; break;
case "6": typeStr = "支付宝银联"; break;
default: typeStr = "无法识别"; break;
}
return typeStr;
}
/// <summary>
/// 获取对应渠道
/// </summary>
/// <param name="id"></param>
/// <returns></returns>
public string GetChannel(string id)
{
if (!string.IsNullOrWhiteSpace(id))
{
int channelid = Convert.ToInt32(id);
if (channelid >= 9501 & channelid <= 9600)
{
return "Android手机";
}
else if (channelid >= 9001 & channelid <= 9100)
{
return "IOS手机";
}
else
{
return id;
}
}
return id;
}
#endregion
#region
[AuthorizeToolBar(InitRights.CONST_L2订单查询, InitToolBar.CONST_Other5)]
public ActionResult L2CreatePayOrder(int? protype)
{
if (!protype.HasValue || protype == 0)
{
protype = 1;
}
ViewBag.protype = protype;
return View();
}
[HttpPost]
[AuthorizeToolBar(InitRights.CONST_L2订单查询, InitToolBar.CONST_Other5)]
public JsonResult L2PayOrderOpen(PayOpenOrder model)
{
var userCenterRiaServiceAddPayOrder = _BAS_PARAMETER_Q.GetModel_Patameter("UserCenter_RiaService_AddPayOrder");//
var userCenterRiaServiceProAddPayOrder = _BAS_PARAMETER_Q.GetModel_Patameter("UserCenter_RiaService_ProAddPayOrder");//业务
var userCenterRiaServiceOpenPayOrder = _BAS_PARAMETER_Q.GetModel_Patameter("UserCenter_RiaService_OpenPayOrder");
var userCenterRiaServiceValidatePayid = _BAS_PARAMETER_Q.GetModel_Patameter("UserCenter_RiaService_ValidatePayid");
if (string.IsNullOrEmpty(model.PayNo) || model.PayNo == "auto")
{
System.DateTime startTime = TimeZone.CurrentTimeZone.ToLocalTime(new System.DateTime(1970, 1, 1, 0, 0, 0));
model.PayNo = "tgorder" + (long)(System.DateTime.Now - startTime).TotalMilliseconds;
}
if (ModelState.IsValid)
{
if (!string.IsNullOrEmpty(model.resPhone))
{
PhoneLogModel phoneLogModel = new PhoneLogModel
{
Method = System.Reflection.MethodBase.GetCurrentMethod().Name,
userid = UserId
};
model.mobile = _RES_RESOURCEMOBILE_Q.GetNumberByResId(model.resPhone, phoneLogModel);
}
if (string.IsNullOrEmpty(model.mobile))
{
return JsonHandler.ManageMessage("手机号码不能为空", false);
}
if (!Utility.ChekMobile(model.mobile))
return JsonHandler.ManageMessage("手机号码格式不正确", false);
if (string.IsNullOrEmpty(model.businessType))
return JsonHandler.ManageMessage("版本不能为空", false);
string addurl = "", openurl = "";
if (model.businessType == "1" || model.businessType == "3")
{
if (null != userCenterRiaServiceProAddPayOrder)
addurl = userCenterRiaServiceProAddPayOrder.PARAVALUE;
}
if (model.businessType == "2")
{
if (null != userCenterRiaServiceAddPayOrder)
addurl = userCenterRiaServiceAddPayOrder.PARAVALUE;
}
if (null != userCenterRiaServiceOpenPayOrder)
openurl = userCenterRiaServiceOpenPayOrder.PARAVALUE;
string code = Request.Form["ProductCode"];
string paytype = Request.Form["PayType"];
model.productCode = code;
model.CreateUser = UserId.ToString();
model.PayType = paytype;
ValidatePayOrder validatePay = new ValidatePayOrder(model.PayNo);
string validatePayMsg = "";
string validatePayUrl = "";
if (null != userCenterRiaServiceValidatePayid)
validatePayUrl = userCenterRiaServiceValidatePayid.PARAVALUE;
bool checkPayid = validatePay.ValidationOfPayid(validatePayUrl, out validatePayMsg);
if (!checkPayid)
return JsonHandler.ManageMessage(validatePayMsg, false);
PayOpenOrder PayOrder = new PayOpenOrder();
PayOrderResult addresul = PayOrder.AddpayOrder(model, addurl);
if (addresul.result)
{
PayOrderResult openresult = PayOrder.OpenpayOrder(model, addresul.ApplyOrderId, openurl);
if (openresult.result)
{
return JsonHandler.ManageMessage("下单并开通成功", true);
}
else
{
return JsonHandler.ManageMessage("下单成功,开通失败,错误:" + Utility.GetCheckEnumNameByValue<EnumInterfaceErrcode>(openresult.retcode), false);
}
}
else
{
return JsonHandler.ManageMessage("下单失败,错误:" + Utility.GetCheckEnumNameByValue<EnumInterfaceErrcode>(addresul.retcode), false);
}
}
return JsonHandler.ManageMessage("验证失败", false);
}
[HttpPost]
[AuthorizeToolBar(InitRights.CONST_L2订单查询, InitToolBar.CONST_Other5)]
public JsonResult L2AddOrderOpen(PayOpenOrder model, int days)
{
if (string.IsNullOrEmpty(model.PayNo) || model.PayNo == "auto")
{
System.DateTime startTime = TimeZone.CurrentTimeZone.ToLocalTime(new System.DateTime(1970, 1, 1, 0, 0, 0));
model.PayNo = "tgorder" + (long)(System.DateTime.Now - startTime).TotalMilliseconds;
}
if (ModelState.IsValid)
{
if (!string.IsNullOrEmpty(model.resPhone))
{
PhoneLogModel phoneLogModel = new PhoneLogModel
{
Method = System.Reflection.MethodBase.GetCurrentMethod().Name,
userid = UserId
};
model.mobile = _RES_RESOURCEMOBILE_Q.GetNumberByResId(model.resPhone, phoneLogModel);
}
if (string.IsNullOrEmpty(model.mobile))
{
return JsonHandler.ManageMessage("手机号码不能为空", false);
}
if (!Utility.ChekMobile(model.mobile))
return JsonHandler.ManageMessage("手机号码格式不正确", false);
if (string.IsNullOrEmpty(model.businessType))
return JsonHandler.ManageMessage("版本不能为空", false);
string code = Request.Form["ProductCode"];
string paytype = Request.Form["PayType"];
string url = "";
string json = "";
AddOrderOpen theModel = new AddOrderOpen();
theModel.productCode = code;
theModel.userName = model.userName;
theModel.PayPrice = model.PayPrice;
theModel.Days = days;
//theModel.resPhone = model.wx_SzzyOrder.RESID;
theModel.CreateUser = UserId.ToString();
theModel.PayMark = model.PayMark;
theModel.PayNo = model.PayNo;
theModel.PayType = paytype;
theModel.mobile = model.mobile;
url = cache.GetValue_Parameter(Parameter.UserCenter_RiaService_AddOrderOpen);//内部接口··调用RiaSerivice
json = Utility.ConvertToJSON<AddOrderOpen>(theModel);
json = sHelper.createSignEncodingStr(json, SecurityHelper.OrderClientIdKey);
string retmsg = Utility.PostData(url + "?" + json, Encoding.UTF8);
retmsg = sHelper.decyptData(SecurityHelper.OrderClientIdKey, retmsg);
retClass retmessage = JsonHelper.JsonDivertToObj<retClass>(retmsg);
if (retmessage.result)
{
return JsonHandler.ManageMessage("下单并开通成功", true);
}
else
{
if (retmessage.retcode == (int)EnumInterfaceErrcode.)
{
return JsonHandler.ManageMessage("开通成功", true);
}
else if (retmessage.retcode == Convert.ToInt32(EnumInterfaceErrcode.) && !string.IsNullOrWhiteSpace(retmessage.orderId))
{
return JsonHandler.ManageMessage("系统正忙,请稍后再试", false);
}
else
{
return JsonHandler.ManageMessage("系统错误" + retmessage.retcode.ToString(), false);
}
}
}
return JsonHandler.ManageMessage("验证失败", false);
}
public JsonResult L2GetPhoneByResid(string resid)
{
if (!string.IsNullOrEmpty(resid))
{
var list = _IRES_CUSTOMER_Q.GetList_CustomerByResid(resid);
if (list != null && list.Count > 0)
{
List<SelectListItem> customerList = list.Select(p => new SelectListItem()
{
Text = p.RESID,
Value = p.LASTNUM3
}).ToList();
return Json(new { type = true, data = customerList }, JsonRequestBehavior.AllowGet);
}
else
return Json(new { type = false, data = "数据为空请检查客户ID" }, JsonRequestBehavior.AllowGet);
}
else
return Json(new { type = false, data = "客户ID不能为空" }, JsonRequestBehavior.AllowGet);
}
#endregion
#region
#region
/// <summary>
/// 申请订单页面
/// </summary>
/// <param name="CustomerId"></param>
/// <returns></returns>
public ActionResult CreateOrderApply(string CustomerId)
{
List<SOFT_USER> lists = new List<SOFT_USER>();
//List<L2_SOFT_PRODUCT> productList = new List<L2_SOFT_PRODUCT>();
List<L2_SOFT_PRODUCT> productList = cache.GetSProductList();
//var notInProductId = new List<decimal> { 60001000, 60001001, 60001017, 70001100, 70001102, 70001103 };
//productList = productList.Where(m => !notInProductId.Contains(m.PRODUCTID)).ToList();
productList = productList.Where(m => m.PRICE == 0).OrderBy(p => p.SORT).ThenByDescending(p => p.PRODUCTID).ToList();
try
{
if (!string.IsNullOrEmpty(CustomerId))
{
lists = _customerUser_Q.GetListByCustomerId(CustomerId);
}
//productList = _product_q.GetAllPRODUCTS().Where(p => p.ISSHOW.ToString() == "1").ToList();
}
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();
var ProductList = productList.Select(item => new SelectListItem() { Text = item.PRODUCTNAME, Value = item.PRODUCTID.ToString() }).ToList();
var allChannel = new List<Dictionary<string, string>>();
foreach (var pro in productList)
{
var channel = new Dictionary<string, string>
{
{ "name", pro.PRODUCTNAME },
{ "value", pro.PRODUCTID.ToString() }
};
allChannel.Add(channel);
}
//var customer = _IRES_CUSTOMER_Q.getResCustomerByResId(CustomerId);
ViewBag.freeOrderType = cache.GetValue_Parameter("freeOrderType");
ViewBag.CustomerId = CustomerId;
ViewBag.UserNameItems = UserNameItems;
ViewBag.ProductList = JsonHelper.ObjDivertToJson(allChannel);
ViewBag.DeptCode = Utility.GetSettingOrNullByKey("DataClientCode");
ViewBag.Gid = deptId;
var deptList = cache.GetList_SalesDepartMent().Where(p => p.CHANNELDEF != null);
var selectList = new List<SelectListItem>();
foreach (var item in deptList)
{
selectList.Add(new SelectListItem() { Text = item.DEPTNAME, Value = item.SALEDEPTCODE });
}
ViewBag.DeptList = selectList;
ViewBag.companyCode = companyCode;
return View();
}
/// <summary>
/// 申请订单_post
/// </summary>
/// <param name="UserName"></param>
/// <param name="ProductList"></param>
/// <param name="ResId"></param>
/// <returns></returns>
public ActionResult CreateOrder(string UserName, string ProductList, string ResId, int? Days, int? mainOrderId, string deptcode)
{
decimal productId, price;
decimal days;
if (string.IsNullOrWhiteSpace(ProductList))
{
return JsonHandler.ManageMessage("请选择产品!", false);
}
if (string.IsNullOrEmpty(deptcode))
{
return JsonHandler.ManageMessage("请选择部门归属!", false);
}
if (Days <= 0 || !Days.HasValue)
{
return JsonHandler.ManageMessage("请选择开通天数!", false);
}
ProductList = ProductList.Trim(',');
var prodata = ProductList.Split(',').ToList();
var successList = new List<string>();
var errList = new List<string>();
foreach (var productid in prodata)
{
bool flagProductId = decimal.TryParse(productid, out productId);
var uname = Utility.DecryptUrlDecode(UserName);
var product = cache.GetSProductList().Where(p => p.PRODUCTID == productId).FirstOrDefault();
//if (Days.HasValue)
//{
// days = Days.Value;
//}
//else
//{
// days = product.DAYS.Value;
//}
days = Days.Value;
if (mainOrderId.HasValue)
{
var order = wx_TDorder_BL.GetTDOrderDetail(mainOrderId.Value);
if (order == null)
{
errList.Add($"【{product.PRODUCTNAME}开通失败订单号不存在】");
//return JsonHandler.ManageMessage("订单号不存在", false);
}
}
price = product.PRICE.Value;
if (!string.IsNullOrEmpty(uname) && flagProductId && days > 0 && product != null)
{
decimal orderId = 0;
bool result = _order.CreateOrder(productId, product.PRODUCTCODE, ResId, uname, companyId, UserId, 1, days, price, out orderId, mainOrderId, deptcode);
if (result)
{
var autoOpenFreeOrder = cache.GetValue_Parameter("AutoOpenFreeOrder");
if (string.IsNullOrEmpty(autoOpenFreeOrder) || autoOpenFreeOrder == "true")
{
var freeOrderRule = cache.GetValue_Parameter("FreeOrderRule");
if (string.IsNullOrEmpty(freeOrderRule))
{
var openMsg = (JsonResult)OpenOrder(orderId.ToString(), string.Format("客服{0}申请开通", Eid.ToString()));
var success = (JsonMessage)openMsg.Data;
if (success.type == 1)
{
successList.Add($"{product.PRODUCTNAME} {success.message}");
}
else
{
errList.Add($"{product.PRODUCTNAME}{success.message}");
}
continue;
}
var rule = JsonConvert.DeserializeObject<FreeOrderRule>(freeOrderRule);
//查看是否有规则,如果没有直接开通
if (rule.IsLimit)
{
var productRule = rule.Products.FirstOrDefault(p => p.ProductId == product.PRODUCTID);
if (productRule != null)
{
var freeOrderList = _order.getOrderByResId(ResId, product.PRODUCTID);
var hasOrderCount = freeOrderList.Count;
if (hasOrderCount >= productRule.Limit)
{
successList.Add($"【{product.PRODUCTNAME}】下单成功,请联系总监助理,手工开通!");
}
else
{
var openMsg = (JsonResult)OpenOrder(orderId.ToString(), string.Format("客服{0}申请开通", Eid.ToString()));
var success = (JsonMessage)openMsg.Data;
if (success.type == 1)
{
successList.Add($"{product.PRODUCTNAME} {success.message}");
}
else
{
errList.Add($"{product.PRODUCTNAME}{success.message}");
}
}
}
else
{
//没有找到规则,说明这个产品不做限制,直接开通
var openMsg = (JsonResult)OpenOrder(orderId.ToString(), string.Format("客服{0}申请开通", Eid.ToString()));
var success = (JsonMessage)openMsg.Data;
if (success.type == 1)
{
successList.Add($"{product.PRODUCTNAME} {success.message}");
}
else
{
errList.Add($"{product.PRODUCTNAME}{success.message}");
}
}
}
else
{
var openMsg = (JsonResult)OpenOrder(orderId.ToString(), string.Format("客服{0}申请开通", Eid.ToString()));
var success = (JsonMessage)openMsg.Data;
if (success.type == 1)
{
successList.Add($"{product.PRODUCTNAME} {success.message}");
}
else
{
errList.Add($"{product.PRODUCTNAME}{success.message}");
}
}
}
else
{
successList.Add($"【{product.PRODUCTNAME}】下单成功,请联系总部开通!");
}
}
else
{
errList.Add($"{product.PRODUCTNAME}下单申请失败");
}
}
else
{
errList.Add($"{product.PRODUCTNAME} 参数错误");
}
}
var msg = "";
var isSuccess = false;
if (successList.Count() > 0)
{
msg = string.Join(",", successList);
isSuccess = true;
}
if (errList.Count() > 0)
{
msg += string.Join(",", successList);
}
return JsonHandler.ManageMessage(msg, isSuccess);
}
/// <summary>
/// 走新的创建合同接口 需要签订合同 根据配置 freeOrderType =old 走旧的
/// </summary>
/// <param name="UserName"></param>
/// <param name="ProductList"></param>
/// <param name="ResId"></param>
/// <returns></returns>
public ActionResult CreateOrderNew(string UserName, string ProductList, string ResId, int? Days, int? mainOrderId, string deptcode)
{
decimal productId, price;
decimal days;
if (string.IsNullOrWhiteSpace(ProductList))
{
return JsonHandler.ManageMessage("请选择产品!", false);
}
if (string.IsNullOrEmpty(deptcode))
{
return JsonHandler.ManageMessage("请选择部门归属!", false);
}
if (Days <= 0 || !Days.HasValue)
{
return JsonHandler.ManageMessage("请选择开通天数!", false);
}
ProductList = ProductList.Trim(',');
var prodata = ProductList.Split(',').ToList();
var successList = new List<string>();
var errList = new List<string>();
foreach (var productid in prodata)
{
bool flagProductId = decimal.TryParse(productid, out productId);
var uname = Utility.DecryptUrlDecode(UserName);
var product = cache.GetSProductList().Where(p => p.PRODUCTID == productId).FirstOrDefault();
//if (Days.HasValue)
//{
// days = Days.Value;
//}
//else
//{
// days = product.DAYS.Value;
//}
days = Days.Value;
if (mainOrderId.HasValue)
{
var order = wx_TDorder_BL.GetTDOrderDetail(mainOrderId.Value);
if (order == null)
{
errList.Add($"【{product.PRODUCTNAME}开通失败订单号不存在】");
//return JsonHandler.ManageMessage("订单号不存在", false);
}
}
price = product.PRICE.Value;
if (!string.IsNullOrEmpty(uname) && flagProductId && days > 0 && product != null)
{
decimal orderId = 0;
string url = "";
string json = "";
freeordermodel theModel = new freeordermodel();
PhoneLogModel phoneLogModel = new PhoneLogModel
{
Method = System.Reflection.MethodBase.GetCurrentMethod().Name,
userid = UserId
};
theModel.mobile = _RES_RESOURCEMOBILE_Q.GetNumberByResId(ResId, phoneLogModel);
theModel.productname = product.PRODUCTNAME;
theModel.needpay = price;
theModel.opendays = 1;
theModel.ordertype = 1;
theModel.productId = productId;
theModel.remark = "创建订单";
theModel.saledeptid = companyId;
theModel.source = "1";
theModel.softusername = uname;
theModel.productcode = product.PRODUCTCODE;//小类代码
theModel.teamserve = 1;
theModel.userid = UserId;
theModel.count = Convert.ToInt32(days);//产品数 --免费产品始终一天,这里天数作为数量传递,达到天数效果
theModel.productType = Convert.ToInt32(product.PRODUCTTYPE);//产品分类
theModel.opuser = UserId;
theModel.ctime = DateTimeTool.ConvertDateTimeInt(DateTime.Now).ToString();
//theModel.companycode = companyCode;
theModel.companycode = Utility.GetSettingOrNullByKey("DataClientCode");
theModel.days = Convert.ToInt32(days);
theModel.mainOrderId = mainOrderId.HasValue ? Convert.ToInt32(mainOrderId) : (int?)null;
var depment = cache.GetList_SalesDepartMent();
if (!string.IsNullOrEmpty(deptcode))
{
var dep = depment.Find(p => p.SALEDEPTCODE == deptcode);
if (dep != null)
{
if (dep.CHANNELDEF.HasValue)
theModel.ch = (int)dep.CHANNELDEF;
}
}
url = cache.GetValue_Parameter(Parameter.Core_ZxdService_CreateFreeOrder);//内部接口··创建免费订单接口
json = Utility.ConvertToJSON<freeordermodel>(theModel);
json = sHelper.createSignEncodingStr(json, SecurityHelper.OrderClientIdKey);
//LogHelper.Info("投顾订单" + model.ORDERID + (string.IsNullOrEmpty(model.WEBORDERID) ? "" : string.Format("({0})", model.WEBORDERID)) + "审核:" + url + "?" + json);
//url = "http://localhost:55047/OrderService.svc/FreeOrder/Create";
string retmsg = Utility.PostData(url + "?" + json, Encoding.UTF8);
retmsg = sHelper.decyptData(SecurityHelper.OrderClientIdKey, retmsg);
CreateOrderRsp retmessage = JsonHelper.JsonDivertToObj<CreateOrderRsp>(retmsg);//返回信息
if (retmessage.retCode == (int)NodeJsOrderEnum.)//成功
{
bool result = _order.CreateOrder(productId, product.PRODUCTCODE, ResId, uname, companyId, UserId, 1, days, price, out orderId, mainOrderId, deptcode);
if (result)
{
successList.Add($"{product.PRODUCTNAME} 添加成功");
}
else
{
errList.Add($"{product.PRODUCTNAME}添加失败");
}
L2_SOFT_ORDER model = _order.getOrderByOrderId(orderId);
model.ORDERSTATUS = 0;
//model.OPENUSER = UserId;
//model.OTIME = DateTime.Now;
model.WEBORDERID = retmessage.orderId;
model.MEMO = "";
_order.UpdateOrder(ref errors, model);
//return JsonHandler.ManageMessage("创建成功", true);
}
else
{
errList.Add($"{product.PRODUCTNAME}{retmessage.retMsg}");
}
}
else
{
errList.Add($"{product.PRODUCTNAME} 参数错误");
}
}
var msg = "";
var isSuccess = false;
if (successList.Count() > 0)
{
msg = string.Join(",", successList);
isSuccess = true;
}
if (errList.Count() > 0)
{
msg += string.Join(",", errList);
}
return JsonHandler.ManageMessage(msg, isSuccess);
}
public JsonResult MainOrderIsExists(int mainOrderId)
{
var order = wx_TDorder_BL.GetTDOrderDetail(mainOrderId);
if (order != null)
{
return Json(new { ret = true }, JsonRequestBehavior.AllowGet);
}
else
{
return Json(new { ret = false }, JsonRequestBehavior.AllowGet);
}
}
public ActionResult OrderList(string ResId)
{
try
{
if (!string.IsNullOrEmpty(ResId))
{
string tableId = "Level2Orderlist";
Table tab = new Table(tableId, "layui-table content_width");
tab.AddHeadCol("ORDERID", "", "活动单号");
tab.AddHeadCol("WEBORDERID", "", "权限订单号");
tab.AddHeadCol("PRODUCTID", "", "活动名称");
tab.AddHeadCol("USERNAME", "", "用户名");
tab.AddHeadCol("DAYS", "", "开通天数");
//tab.AddHeadCol("PRICE", "10%", "支付金额");
tab.AddHeadCol("CTIME", "", "下单时间");
tab.AddHeadCol("CREATEUSER", "", "下单人");
tab.AddHeadCol("HTURL", "", "合同地址");
tab.AddHeadCol("HTURL", "", "合同状态");
tab.AddHeadCol("ORDERSTATUS", "", "是否开通");
tab.AddHeadCol("OTIME", "", "开通时间");
//tab.AddHeadCol("operation", "", "操作");
tab.AddHeadRow();
var list = _order.getOrderByResId(ResId);
List<L2_SOFT_PRODUCT> productList = cache.GetSProductList();
//var notInProductId = new List<decimal> { 60001000, 60001001, 60001017, 70001100, 70001102, 70001103 };
//productList = productList.Where(m => !notInProductId.Contains(m.PRODUCTID)).ToList();
productList = productList.Where(m => m.PRICE == 0).ToList();
string clientid = cache.GetValue_Parameter(WX.CRM.Model.Enum.Parameter.Sys_OrderClientIdKey);
if (string.IsNullOrWhiteSpace(clientid))
{
clientid = "UPWEBSITE";
}
string threeUrl = cache.GetValue_Parameter(Parameter.UserCenter_RiaService_ContractSignThree);//三要素合同地址
foreach (var model in list)
{
tab.AddCol(model.ORDERID);
tab.AddCol(model.WEBORDERID);
if (string.IsNullOrWhiteSpace(model.PRODUCTNAME))
{
L2_SOFT_PRODUCT product = productList.FirstOrDefault(p => p.PRODUCTCODE == model.PRODUCTCODE);
tab.AddCol(product == null ? "" : product.PRODUCTNAME);
model.PRODUCTNAME = product?.PRODUCTNAME;
}
else
{
tab.AddCol(model.PRODUCTNAME);
}
tab.AddCol(PhoneHelper.FormatPhoneUserName(model.USERNAME));
tab.AddCol(model.DAYS);
//tab.AddCol(model.PRICE);
tab.AddCol(model.CTIME);
tab.AddCol(InnerUserHelper.Instance.EidAndName(model.CREATEUSER));
tab.AddCol(string.Format("<a style=\"color:green;\" href=\"javascript:void(0);\" onclick=\"ShowL2OrderHeTongUrl('{0}')\">获取地址</a>", model.WEBORDERID));
if (model.CONTRACTSTATUS == 1)
{
tab.AddCol(string.Format("<a style=\"color:green;\" href=\"javascript:void(0);\" onclick=\"ContractFreeOrderView('{0}')\">已签订</a>", model.WEBORDERID));
}
else
{
tab.AddCol(string.Format("<font color='#c2c2c2'>未签订</font>"));
}
tab.AddCol(GetStatusName(model.ORDERSTATUS));
tab.AddCol(model.OTIME);
//tab.AddCol(model.ORDERSTATUS == 1 ? string.Format(" <input class='btn btn-danger cancelOrder' type='button' value='申请撤销' OrderId=\"{0}\" status=\"{1}\" />", model.ORDERID, model.ORDERSTATUS) : "");
tab.AddRow();
}
ViewBag.List = tab.GetTable();
return View();
}
else
{
return JsonHandler.ManageMessage("参数错误", false);
}
}
catch (Exception ex)
{
LogHelper.Error("Leve2OrderController_OrderList:" + ex.Message + ex.StackTrace);
return JsonHandler.ManageMessage(ex.Message, false);
}
}
#endregion
#region
[AuthorizeRedirect(Roles = InitRights.CONST_投顾订单开通审核)]
public ActionResult CheckLevel2OrderList()
{
ToolBar tool = new ToolBar();
string[] toolbtn = new ToolButtonView().ToolButtonRight(InitRights., userRightId);
LogHelper.Info(string.Join(",", toolbtn));
tool.AllowButton(toolbtn);
tool.AddOtherButton("Other1", "导出", "icon-export", "Export_Click", true);
tool.AddOtherButton("Other2", "关闭", "icon-close", "Close_Click", true);
//tool.AllowButton("Check", "Delete");
ViewBag.ToolBar = tool;
Pager gp = new Pager() { page = 1, rows = 10 };
string tableId = "Orderlist";
Table tab = new Table(tableId);
tab.AddHeadCol("checkALL", "", "<input type='checkbox' id='CheckALL'/>");
tab.AddHeadCol("DEPTNAME", "", "部门归属");
tab.AddHeadCol("EID", "", "员工");
tab.AddHeadCol("orderid", "", "投顾单号");
tab.AddHeadCol("ProductName", "", "产品名称");
tab.AddHeadCol("RESID", "", "客户ID");
tab.AddHeadCol("USERNAME", "", "用户名");
tab.AddHeadCol("DAYS", "", "开通天数");
tab.AddHeadCol("MainOrderId", "", "主订单ID");
tab.AddHeadCol("PRICE", "", "支付金额");
tab.AddHeadCol("CTIME", "", "下单时间");
//tab.AddHeadCol("CREATEUSERStr", "", "下单人");
tab.AddHeadCol("ORDERSTATUSNAME", "", "订单状态");
tab.AddHeadCol("OTIME", "", "开通时间");
//tab.AddHeadCol("operation", "", "操作");
tab.AddHeadRow();
ViewBag.ActiveList = tab.GetHead() + Pagination.GetPage(gp, "Orderlist", "5,8,10,15");
var softprodutlist = cache.GetSProductList().Select(item => new SelectListItem() { Text = item.PRODUCTNAME.ToString(), Value = item.PRODUCTID.ToString() }).ToList();
softprodutlist.Insert(0, new SelectListItem { Text = "所有", Value = "-1", Selected = true });
//softprodutlist.Add(new SelectListItem { Text = "所有", Value = "-1", Selected = true });
ViewBag.SoftProductList = softprodutlist;
ViewBag.inneruserid = UserId;
ViewBag.userGroupId = userGroupId;
ViewBag.saleDeptId = saleDeptId;
ViewBag.roleCodes = DataCacheHelper.GetCache().Get_RoleCodes(userRoleId);
return View();
}
[HttpPost]
[AuthorizeRedirect(Roles = InitRights.CONST_投顾订单开通审核)]
public JsonResult GetLevel2OrderHtmlList(Pager pager, string columns, QueryUserComboDto usercomboDto)
{
try
{
string orderId = Request.Form["orderId"];
string resid = Request.Form["resid"]; //
string status = Request.Form["status"];//类型
string product = Request.Form["product"];//品种
DateTime? ctime = Request.Form["ctime"].GetDateTime();
DateTime? etime = Request.Form["etime"].GetDateTime();
string username = Request.Form["userName"];
string groupId = Request.Form["groupId"];
decimal userId = Request.Form["userId"].GetDecimal(0);
var list = _order.getOrderList(ref pager, Convert.ToInt32(status == "" ? "-1" : status), ctime, etime.Value.AddDays(1), Convert.ToInt32(product ?? "0"), resid, orderId, username, groupId, userId, usercomboDto);
var table = new Table(columns, true);
table.gridPager = pager;
List<L2_SOFT_PRODUCT> productList = cache.GetSProductList();
foreach (var model in list)
{
L2_SOFT_PRODUCT active = productList.FirstOrDefault(p => p.PRODUCTID == model.PRODUCTID);
table.AddCol(model.ORDERSTATUS == 0 ? string.Format("<input name='orderCheck' type='checkbox' value='{0}' />", model.ORDERID) : "");
table.AddCol(InnerUserHelper.Instance.GetGroupName(InnerUserHelper.Instance.GetGroupId(model.CREATEUSER)));
table.AddCol(InnerUserHelper.Instance.EidAndName(model.CREATEUSER));
table.AddCol(model.ORDERID);
table.AddCol(active == null ? "" : active.PRODUCTNAME);
table.AddCol(model.RESID);
table.AddCol(PhoneHelper.FormatPhoneUserName(model.USERNAME));
table.AddCol(model.DAYS);
table.AddCol(model.MAINORDERID);
table.AddCol(model.PRICE);
table.AddCol(model.CTIME);
//table.AddCol(InnerUserHelper.Instance.GetUsername(model.CREATEUSER));
table.AddCol(GetStatusName(model.ORDERSTATUS));
table.AddCol(model.OTIME);
//table.AddCol(model.ORDERSTATUS == 0 ? string.Format(" <input class='btn btn-danger ' type='button' value='审核' checkOrder(\"{0}\") /> <input class='btn btn-danger ' type='button' value='删除' deleteOrder(\"{1}\") />", model.ORDERID, model.ORDERID) : "");
table.AddRow();
}
var json = new
{
totalPages = pager.totalPages,
totalRows = pager.totalRows,
rowsList = table.GetRows()
};
return Json(json, JsonRequestBehavior.AllowGet);
}
catch (Exception ex)
{
LogHelper.Error(ex.Message);
var json = new
{
totalPages = 0,
totalRows = 0,
rowsList = 0
};
return Json(json, JsonRequestBehavior.AllowGet);
}
}
public string GetStatusName(decimal statusID)
{
int status = Convert.ToInt32(statusID);
string relust = string.Empty;
switch (status)
{
case 0: relust = "未开通"; break;
case 1: relust = "已开通"; break;
case 2: relust = "已撤销"; break;
case 3: relust = "已删除"; break;
}
return relust;
}
/// <summary>
/// 审核开通详细
/// </summary>
/// <param name="id"></param>
/// <returns></returns>
[AuthorizeToolBar(InitRights.CONST_投顾订单开通审核, InitToolBar.CONST_Check)]
public ActionResult ApplyDetails(string id)
{
L2_SOFT_ORDER model = null;
var productName = "";
if (!string.IsNullOrEmpty(id))
{
decimal orderId = Convert.ToDecimal(id);
model = _order.getOrderByOrderId(orderId);
if (model != null)
{
var product = cache.GetSProductList().Where(p => p.PRODUCTCODE.Trim() == model.PRODUCTCODE.Trim()).FirstOrDefault();
productName = product == null ? "" : product.PRODUCTNAME;
}
}
ViewBag.days = model.DAYS;
ViewBag.price = model.PRICE;
ViewBag.productName = productName;
ViewBag.orderId = model.ORDERID;
return View(model);
}
[AuthorizeToolBar(InitRights.CONST_投顾订单开通审核, InitToolBar.CONST_Delete)]
public JsonResult DeleteOrder(string id)
{
if (string.IsNullOrWhiteSpace(id))
return JsonHandler.ManageMessage("参数错误", false);
string message = _order.deleteOrder(ref errors, Convert.ToDecimal(id));
bool result = message == "成功";
return JsonHandler.DeleteMessage(errors, result);
}
/// <summary>
/// OpenOrder开通订单
/// </summary>
/// <param name="UserName"></param>
/// <param name="ProductList"></param>
/// <param name="ResId"></param>
/// <returns></returns>
[AuthorizeToolBar(InitRights.CONST_投顾订单开通审核, InitToolBar.CONST_Check)]
public ActionResult OpenOrder(string id, string reson)
{
L2_SOFT_ORDER model = null;
string AdminPassword = cache.GetValue_Parameter(Parameter.ISVR_CN_JMDAgentPwd);
string AdminAgentId = cache.GetValue_Parameter(Parameter.ISVR_CN_JMDAgentId);
string url = "";
string json = "";
if (!string.IsNullOrEmpty(id))
{
decimal orderId = Convert.ToDecimal(id);
model = _order.getOrderByOrderId(orderId);
var freeOrderType = cache.GetValue_Parameter("freeOrderType");
if (freeOrderType != "old" && model != null)
{
var openMsg = _order.OpenOrder(model.WEBORDERID.ToString(), reson);
return JsonHandler.ManageMessage("开通成功", true);
}
}
var product = cache.GetSProductList().Where(p => p.PRODUCTID == model.PRODUCTID).FirstOrDefault();
freeordermodel theModel = new freeordermodel();
PhoneLogModel phoneLogModel = new PhoneLogModel
{
Method = System.Reflection.MethodBase.GetCurrentMethod().Name,
userid = UserId
};
theModel.mobile = _RES_RESOURCEMOBILE_Q.GetNumberByResId(model.RESID, phoneLogModel);
theModel.needpay = model.PRICE;
theModel.opendays = 1;
theModel.ordertype = 1;
theModel.productId = model.PRODUCTID;
theModel.remark = reson;
theModel.saledeptid = companyId;
theModel.source = "1";
theModel.softusername = model.USERNAME;
theModel.productcode = model.PRODUCTCODE;//小类代码
theModel.teamserve = 1;
theModel.userid = model.CREATEUSER;
theModel.count = Convert.ToInt32(model.DAYS);//产品数 --免费产品始终一天,这里天数作为数量传递,达到天数效果
theModel.productType = Convert.ToInt32(product.PRODUCTTYPE);//产品分类
theModel.opuser = UserId;
theModel.ctime = DateTimeTool.ConvertDateTimeInt(model.CTIME).ToString();
//theModel.companycode = companyCode;
theModel.companycode = Utility.GetSettingOrNullByKey("DataClientCode");
theModel.days = Convert.ToInt32(model.DAYS);
theModel.mainOrderId = model.MAINORDERID.HasValue ? Convert.ToInt32(model.MAINORDERID) : (int?)null;
var depment = cache.GetList_SalesDepartMent();
if (!string.IsNullOrEmpty(model.DEPTCODE))
{
var dep = depment.Find(p => p.SALEDEPTCODE == model.DEPTCODE);
if (dep != null)
{
if (dep.CHANNELDEF.HasValue)
theModel.ch = (int)dep.CHANNELDEF;
}
}
url = cache.GetValue_Parameter(Parameter.Core_ZxdService_FreeOrder);//内部接口··开通免费订单接口
//活动订单,不填金额,走赠送接口
//if (theModel.productCode.ToUpper().StartsWith("OEM_ACTIVE"))
//{
// theModel.PayPrice = 0;
// theModel.Days = 0;
// url = cache.GetValue_Parameter(Parameter.UserCenter_RiaService_AddOrderOpenFree);
//}
json = Utility.ConvertToJSON<freeordermodel>(theModel);
json = sHelper.createSignEncodingStr(json, SecurityHelper.OrderClientIdKey);
LogHelper.Info("投顾订单" + model.ORDERID + (string.IsNullOrEmpty(model.WEBORDERID) ? "" : string.Format("({0})", model.WEBORDERID)) + "审核:" + url + "?" + json);
string retmsg = Utility.PostData(url + "?" + json, Encoding.UTF8);
retmsg = sHelper.decyptData(SecurityHelper.OrderClientIdKey, retmsg);
CreateOrderRsp retmessage = JsonHelper.JsonDivertToObj<CreateOrderRsp>(retmsg);//返回信息
if (retmessage.retCode == (int)NodeJsOrderEnum.)//成功
{
model.ORDERSTATUS = 1;
model.OPENUSER = UserId;
model.OTIME = DateTime.Now;
model.WEBORDERID = retmessage.orderId;
model.MEMO = reson;
_order.UpdateOrder(ref errors, model);
return JsonHandler.ManageMessage("开通成功", true);
}
else
{
return JsonHandler.ManageMessage(string.IsNullOrEmpty(retmessage.retMsg) ? Utility.GetCheckEnumNameByValue<NodeJsOrderEnum>(retmessage.retCode) : retmessage.retMsg, false);
}
}
/// <summary>
/// CloseFreeOrderByEmpower通过员工权限管理关闭免费订单
/// </summary>
/// <param name="UserName"></param>
/// <param name="ProductList"></param>
/// <param name="ResId"></param>
/// <returns></returns>
[AuthorizeToolBar(InitRights.CONST_投顾订单开通审核, InitToolBar.CONST_Other2)]
public ActionResult CloseFreeOrderByEmpower(string orderId, string username)
{
L2_SOFT_ORDER model = null;
string AdminPassword = cache.GetValue_Parameter(Parameter.ISVR_CN_JMDAgentPwd);
string AdminAgentId = cache.GetValue_Parameter(Parameter.ISVR_CN_JMDAgentId);
string url = "";
string json = "";
freeOrderClose theModel = new freeOrderClose();
theModel.orderId = orderId;//订单ID
theModel.userName = username;
//theModel.companycode = saleDeptCode;
url = cache.GetValue_Parameter(Parameter.Core_ZxdService_CloseFreeOrder);//内部接口··开通免费订单接口
json = Utility.ConvertToJSON<freeOrderClose>(theModel);
json = sHelper.createSignEncodingStr(json, SecurityHelper.OrderClientIdKey);
string retmsg = Utility.PostData(url + "?" + json, Encoding.UTF8);
retmsg = sHelper.decyptData(SecurityHelper.OrderClientIdKey, retmsg);
freeOrderCloseRes retmessage = JsonHelper.JsonDivertToObj<freeOrderCloseRes>(retmsg);//返回信息
//string mms = string.Empty;
if (retmessage.iRet == 0)
{
return JsonHandler.ManageMessage(retmessage.sMsg, true);
}
return JsonHandler.ManageMessage(retmessage.sMsg, false);
}
/// <summary>
/// OpenOrder开通订单
/// </summary>
/// <param name="UserName"></param>
/// <param name="ProductList"></param>
/// <param name="ResId"></param>
/// <returns></returns>
[AuthorizeToolBar(InitRights.CONST_投顾订单开通审核, InitToolBar.CONST_Other2)]
public ActionResult CloseFreeOrder(string id)
{
L2_SOFT_ORDER model = null;
string AdminPassword = cache.GetValue_Parameter(Parameter.ISVR_CN_JMDAgentPwd);
string AdminAgentId = cache.GetValue_Parameter(Parameter.ISVR_CN_JMDAgentId);
string url = "";
string json = "";
if (!string.IsNullOrEmpty(id))
{
decimal orderId = Convert.ToDecimal(id);
model = _order.getOrderByOrderId(orderId);
}
//var user = _softuser_q.GetUser_userName(model.USERNAME);
//AddOrderOpen theModel = new AddOrderOpen();
//theModel.productCode = model.PRODUCTCODE;
//theModel.userName = model.USERNAME;
//if (model.PRICE != null)
// theModel.PayPrice = model.PRICE.Value;
//theModel.Days = model.DAYS;
//theModel.resPhone = model.RESID;
//theModel.CreateUser = UserId.ToString();
//theModel.PayMark = string.IsNullOrEmpty(reson) ? "坐席申请开通" : reson;
//theModel.Orderid = model.WEBORDERID;
var product = cache.GetSProductList().Where(p => p.PRODUCTID == model.PRODUCTID).FirstOrDefault();
freeOrderClose theModel = new freeOrderClose();
theModel.orderId = model.WEBORDERID;//订单ID
theModel.userName = model.USERNAME;
//theModel.companycode = saleDeptCode;
url = cache.GetValue_Parameter(Parameter.Core_ZxdService_CloseFreeOrder);//内部接口··开通免费订单接口
//活动订单,不填金额,走赠送接口
//if (theModel.productCode.ToUpper().StartsWith("OEM_ACTIVE"))
//{
// theModel.PayPrice = 0;
// theModel.Days = 0;
// url = cache.GetValue_Parameter(Parameter.UserCenter_RiaService_AddOrderOpenFree);
//}
json = Utility.ConvertToJSON<freeOrderClose>(theModel);
json = sHelper.createSignEncodingStr(json, SecurityHelper.OrderClientIdKey);
LogHelper.Info("投顾订单" + model.ORDERID + (string.IsNullOrEmpty(model.WEBORDERID) ? "" : string.Format("({0})", model.WEBORDERID)) + "关闭:" + url + "?" + json);
string retmsg = Utility.PostData(url + "?" + json, Encoding.UTF8);
retmsg = sHelper.decyptData(SecurityHelper.OrderClientIdKey, retmsg);
freeOrderCloseRes retmessage = JsonHelper.JsonDivertToObj<freeOrderCloseRes>(retmsg);//返回信息
string mms = string.Empty;
if (retmessage.iRet == 0)
{
mms = _order.closeOrder(model.ORDERID);
}
else
{
return JsonHandler.ManageMessage(retmessage.sMsg, false);
}
return JsonHandler.ManageMessage(mms, false);
}
#region
[AuthorizeToolBar(InitRights.CONST_投顾订单开通审核, InitToolBar.CONST_Other1)]
public FileResult Level2ListExport(QueryUserComboDto usercomboDto)
{
string orderId = Request.Params["orderId"];
string resid = Request.Params["resid"]; //
string status = Request.Params["status"];//类型
string product = Request.Params["product"];//品种
DateTime? ctime = Request.Params["ctime"].GetDateTime();
DateTime? etime = Request.Params["etime"].GetDateTime();
string username = Request.Params["userName"];
string groupId = Request.Params["groupId"];
decimal userId = Request.Params["userId"].GetDecimal(0);
Pager pager = new Pager() { rows = int.MaxValue, page = 1 };
var list = _order.getOrderList(ref pager, Convert.ToInt32(status == "" ? "-1" : status), ctime, etime, Convert.ToInt32(product ?? "0"), resid, orderId, username, groupId, userId, usercomboDto);
List<L2_SOFT_PRODUCT> productList = cache.GetSProductList();
string checkedFilds = PageRequest.GetQueryString("checkedFilds");
string checkedTitle = PageRequest.GetQueryString("checkedTitles");
if (!string.IsNullOrWhiteSpace(checkedFilds))
{
checkedFilds = checkedFilds.Replace("[checkALL]", "");
}
if (!string.IsNullOrWhiteSpace(checkedTitle))
{
checkedTitle = checkedTitle.Trim(',');
}
List<Soft_ActiveOrderlist> exprotlist = new List<Soft_ActiveOrderlist>();
foreach (var model in list)
{
Soft_ActiveOrderlist item = new Soft_ActiveOrderlist();
L2_SOFT_PRODUCT active = productList.FirstOrDefault(p => p.PRODUCTID == model.PRODUCTID);
item.ORDERSTATUS = model.ORDERSTATUS;
item.ProductName = active == null ? "" : active.PRODUCTNAME;
item.orderid = model.ORDERID.ToString();
item.RESID = model.RESID;
item.USERNAME = PhoneHelper.FormatPhoneUserName(model.USERNAME);
item.DAYS = model.DAYS;
item.PRICE = model.PRICE;
item.CTIME = model.CTIME;
item.CREATEUSERStr = InnerUserHelper.Instance.GetUsername(model.CREATEUSER);
item.PRODUCTCODE = model.PRODUCTCODE;
item.ORDERSTATUSNAME = GetStatusName(model.ORDERSTATUS);
item.OTIME = model.OTIME;
//table.AddCol(model.ORDERSTATUS == 0 ? string.Format(" <input class='btn btn-danger ' type='button' value='审核' checkOrder(\"{0}\") /> <input class='btn btn-danger ' type='button' value='删除' deleteOrder(\"{1}\") />", model.ORDERID, model.ORDERID) : "");
exprotlist.Add(item);
}
return File(ExcelHelper.ExportListModelToExcel<Soft_ActiveOrderlist>(exprotlist.ToList(), "投顾订单开通审核", 60000, checkedFilds, checkedTitle, null), "application/ms-excel", PageRequest.GetDlownLoadName("投顾订单开通审核.xls"));
}
#endregion
#endregion
#endregion
#region
/// <summary>
/// 订单统计 (日期、注册渠道号、产品大类)
/// </summary>
/// <returns></returns>
[AuthorizeRedirect(Roles = InitRights.CONST_L2订单统计)]
public ActionResult L2OrderStOrEx()
{
#region toolbar工具栏
ToolBar tool = new ToolBar();
string[] toolbtn = new ToolButtonView().ToolButtonRight(InitRights.L2订单统计, userRightId);
tool.AllowButton(toolbtn);
tool.AllowButton("Other1");
tool.AddOtherButton("Other1", "导出", "icon-export", "BtnExportAll_Click", true);
ViewBag.ToolBar = tool;
#endregion toolbar工具栏
#region gridtable
//var pager = new Pager() { page = 1, rows = 20 };
var tableId = "tablist";
var tab = new Table(tableId);
tab.AddHeadCol("", "25px", " ");
tab.AddHeadCol("paydate", "20%", "日期 ", true);
tab.AddHiddenHeadCol("ProductCode", "ProductCode");
tab.AddHeadCol("productname", "20%", "产品 ");
tab.AddHeadCol("regcampainid", "20%", "注册渠道号 ", true);
//tab.AddHeadCol("countOrder", "10%", "订单数量 ");
tab.AddHeadCol("sumPaytotal", "20%", "总金额 ");
tab.AddHeadCol("", "10%", "操作 ");
tab.AddHeadRow();
ViewBag.gridTable = tab.GetTable();// +Pagination.GetPage(pager, tableId, "10,20,30");
#endregion gridtable
return View();
}
[HttpPost]
/// <summary>
/// 按照条件获取数据
/// </summary>
/// <param name="pager"></param>
/// <param name="queryStr"></param>
/// <returns></returns>
[AuthorizeRedirect(Roles = InitRights.CONST_L2订单统计)]
public JsonResult L2OrderStOrExHtmlList(string columns, DateTime cTime, DateTime eTime)
{
string msg = "";
string ctime = Request.Form["ctime"];
string etime = Request.Form["etime"];
Soft_CRMOrderModel crmmodel = new Soft_CRMOrderModel("", "", "", "", "", "", ctime, etime, "", "", "", 0, 0);
//获取订单列表
List<Soft_OrderSt> orderSt = crmmodel.GetOrderSt(out msg);
Table table = new Table(columns, true);
//推广资源
var groupList = from q in orderSt
group q by q.PayDate into g
select g;
string style1 = "text-align:left;padding-left:10px;";
string style2 = "text-align:left;padding-left:30px;";
//string style3 = "text-align:left;padding-left:10px;color:red;font-weight:bold";
//推广资源table
foreach (var group in groupList)
{
var linkDetail = string.Format("<a href=\"javascript:parent.ChildAddTab('{0}', '{1}', '')\">详情</a>"
, "订单详细"
, "/Level2/Leve2Order/L2OrderStOrExDetail?page=1&rows=20&stime=" + Convert.ToDateTime(group.Key).ToString("yyyy-MM-dd 00:00:00") + "&etime=" + Convert.ToDateTime(group.Key).ToString("yyyy-MM-dd 23:59:59"));
//table.AddHiddenCol(group.First().PayDate);
//table.AddHiddenCol("");
//table.AddHiddenCol(group.Sum(m => m.SumPaytotal));
table.AddCol("<span class='expand-activity txt-expand' title='" + group.Key + "'> </span>");
table.AddCol(style1, "", group.Key);
table.AddHiddenCol("所有");
table.AddCol(style1, "", "所有");
table.AddCol(style1, "", "所有");
table.AddCol(style1, "", "合计:" + group.Sum(m => m.SumPaytotal));
table.AddCol(linkDetail);
//table.AddCol(style1, "", "合计:" + group.Sum(m => m.ActivityCountByTime));
table.AddRow();
foreach (var model in group)
{
var linkDetail1 = string.Format("<a href=\"javascript:parent.ChildAddTab('{0}', '{1}', '')\">详情</a>"
, "订单详细"
, "/Level2/Leve2Order/L2OrderStOrExDetail?page=1&rows=20&stime="
+ Convert.ToDateTime(group.Key).ToString("yyyy-MM-dd 00:00:00") + "&etime=" + Convert.ToDateTime(group.Key).ToString("yyyy-MM-dd 23:59:59") + "&productbigtype=" + model.ProductCode + "&regCampainid=" + model.RegCampainid);
//table.AddHiddenCol("");
//table.AddHiddenCol(model.PayDate);
//table.AddHiddenCol(model.ProductName);
table.AddCol("");
table.AddCol("");
table.AddHiddenCol(model.ProductCode);
table.AddCol(style2, "", model.ProductName);
table.AddCol(style2, "", model.RegCampainid);
table.AddCol(style2, "", model.SumPaytotal);
//table.AddCol(style2, "", model.ActivityCountByTime);
//table.AddCol(style3, "", "");
table.AddCol(linkDetail1);
table.AddRow("style='display:none' typeName='" + group.Key + "'");
}
}
var json = new
{
rowsList = table.GetRows()//推广
};
return Json(json, JsonRequestBehavior.AllowGet);
}
/// <summary>
/// 订单详情页面
/// </summary>
/// <param name="CustomerId"></param>
/// <returns></returns>
public ActionResult L2OrderStOrExDetail(string stime, string etime, string productbigtype, string regCampainid)
{
#region toolbar工具栏
ToolBar tool = new ToolBar();
string[] toolbtn = new ToolButtonView().ToolButtonRight(InitRights.L2订单统计, userRightId);
tool.AllowButton(toolbtn);
tool.AllowButton("Other1");
tool.AddOtherButton("Other1", "导出", "icon-export", "BtnExportAll_Click", true);
ViewBag.ToolBar = tool;
#endregion toolbar工具栏
#region gridtable
var pager = new Pager() { page = 1, rows = 20 };
var tableId = "detailtablist";
var tab = new Table(tableId);
tab.AddHeadCol("orderid", "10%", "订单号 ", true);
tab.AddHeadCol("pcusername", "10%", "用户名 ");
tab.AddHeadCol("bigproductcode", "10%", "产品");
tab.AddHeadCol("regcampainid", "10%", "注册渠道号", true);
tab.AddHeadCol("WEBPAYID", "10%", "支付流水号 ");
tab.AddHeadCol("PAYTOTAL", "10%", "支付金额", true);
tab.AddHeadCol("PAYTYPE", "10%", "支付方式", true);
tab.AddHeadCol("CTIME", "10%", "支付时间");
tab.AddHeadCol("PAYMEMO", "10%", "支付备注");
tab.AddHeadRow();
ViewBag.gridTable = tab.GetTable() + Pagination.GetPage(pager, tableId, "10,20,30");
#endregion gridtable
#region
ViewBag.Stime = stime;
ViewBag.Etime = etime;
ViewBag.Productbigtype = productbigtype;
ViewBag.RegCampainid = regCampainid;
#endregion
return View();
}
//列表
[HttpPost]
[AuthorizeRedirect(Roles = InitRights.CONST_L2订单统计)]
public JsonResult L2OSOEDGetHtmlList(Pager pager, string columns)//, string stime, string etime, string productbigtype, string regCampainid)
{
int total = 0;
string msg = "";
string stime = Request.Form["stime"];
string etime = Request.Form["etime"];
string regCampainid = Request.Form["regCampainid"];
string _productbigtype = Request.Form["productbigtype"];
//string _productbigtype = productbigtype;
if (string.IsNullOrEmpty(_productbigtype))
_productbigtype = "-1";
if (_productbigtype == "-1")
{
//if (_protype != null)
//{
softBigProducts = cache.GetBigProductList();
//softBigProducts = softBigProducts.Where(p => p.GROUPID == Convert.ToDecimal(_protype)).ToList()
softBigProducts = softBigProducts.ToList();
_productbigtype = "";
foreach (L2_SOFT_BIGPRODUCT item in softBigProducts)
{
_productbigtype += item.PRODUCTCODE + ",";
}
_productbigtype = _productbigtype.Substring(0, _productbigtype.Length - 1);
//}
}
if (!string.IsNullOrEmpty(stime) && !string.IsNullOrEmpty(etime))
{
stime = Convert.ToDateTime(stime).ToString("yyyy-MM-dd 00:00:00");
etime = Convert.ToDateTime(etime).ToString("yyyy-MM-dd 23:59:59");
}
Soft_CRMOrderModel crmmodel = new Soft_CRMOrderModel(_productbigtype, stime, etime, string.IsNullOrEmpty(regCampainid) ? (decimal?)null : Convert.ToDecimal(regCampainid), pager.page, pager.rows);
//获取支付列表
List<Soft_OrderWebPayList> detail = crmmodel.GetOrderStDetail(out msg, out total);
var list = detail.AsQueryable();
pager.totalRows = total;
var table = new Table(columns, true);
table.gridPager = pager;
foreach (var model in list)
{
table.AddCol(model.ORDERID);//订单号
table.AddCol(PhoneHelper.FormatPhoneUserName(model.PcUserName));//pc用户名
table.AddCol(GetBigProductName(model.BIGPRODUCTCODE));//大类代码
table.AddCol(model.RegCampainid);//注册渠道号
table.AddCol(model.WEBPAYID);//支付流水号
table.AddCol(model.PAYTOTAL);//支付金额
table.AddCol(GetPayType(model.PAYTYPE.ToString()));//支付方式
table.AddCol(model.CTIME);//开通时间
table.AddCol(model.PAYMEMO);//支付备注
table.AddRow();
}
var json = new
{
totalPages = pager.totalPages,
totalRows = pager.totalRows,
rowsList = table.GetRows()
};
return Json(json, JsonRequestBehavior.AllowGet);
}
[AuthorizeToolBar(InitRights.CONST_L2订单统计, InitToolBar.CONST_Other4)]
public FileResult L2OrderStOrExDetailListExport()
{
int total = 0;
string msg = "";
string checkedFilds = PageRequest.GetQueryString("checkedFilds");
string checkedTitles = PageRequest.GetQueryString("checkedTitles");
string ctime = Request.QueryString["ctime"];
string etime = Request.QueryString["etime"];
string openstime = Request.QueryString["openctime"];
string openetime = Request.QueryString["openetime"];
string _productbigtype = Request.QueryString["productbigtype"];
string _productsmalltype = Request.QueryString["productsmalltype"];
string _openStatu = Request.QueryString["openStatu"];
string _userName = Request.QueryString["userName"];
string _OrderId = Request.QueryString["OrderId"];
string _resId = Request.Form["ResId"];
if (_productbigtype == "-1")
{
_productbigtype = "";
}
if (_productsmalltype == "-1" || _productsmalltype == "null")
{
_productsmalltype = "";
}
Soft_CRMOrderModel crmmodel = new Soft_CRMOrderModel("", _productbigtype, _productsmalltype, _userName, _OrderId, _openStatu, ctime, etime, openstime, openetime, _resId, 1, int.MaxValue);
//获取订单列表
List<Soft_OrderDetail> list = crmmodel.GetOderDetail(out msg, out total);
List<string> ResIds = new List<string>();
foreach (var item in list)
{
item.USERNAME = PhoneHelper.FormatPhoneUserName(item.USERNAME);
item.PcUserName = PhoneHelper.FormatPhoneUserName(item.USERNAME);
var orderext = item.orderExt.FirstOrDefault();
if (null != orderext)
{
item.CHANNEL = orderext.USERCAMPAINID;
item.L2RESID = orderext.MOBILE;
try
{
ResIds.Add(orderext.MOBILE);
RegisterResId regist = new RegisterResId(orderext.MOBILE);
regist.RegisterPhone();
}
catch (Exception ex)
{
LogHelper.Error("level2导出的手机注册" + orderext.MOBILE + ex.ToString());
}
}
}
try
{
RegisterListResId regist = new RegisterListResId(ResIds);
regist.RegisterPhone();
}
catch (Exception ex)
{
LogHelper.Error("level2导出的手机注册" + ex.ToString());
}
return File(ExcelHelper.ExportListModelToExcel<Soft_OrderDetail>(list, "订单查询", 10000, checkedFilds, checkedTitles, DataFormart), "application/ms-excel", PageRequest.GetDlownLoadName("订单查询.xls"));
}
#endregion
public class FreeOrderRule
{
public bool IsLimit { get; set; }
public List<FreeProductRule> Products { get; set; }
}
public class FreeProductRule
{
public decimal ProductId { get; set; }
public int Limit { get; set; }
}
}
}