using System; using System.Collections.Generic; using System.Data; using System.Linq; using System.Web.Mvc; using WX.CRM.BLL; using WX.CRM.Common; using WX.CRM.IBLL.Util; using WX.CRM.IBLL.Wx; using WX.CRM.Model.Entity; using WX.CRM.WebHelper; namespace WX.CRM.WEB.Controllers.WeiXin { public class CommissionBalanceController : BaseController { private readonly IWX_BALANCE_LOG _balanceLog; private readonly IWX_BALANCE _balance; private readonly ICACHE_Q _cache; public CommissionBalanceController(IWX_BALANCE_LOG balanceLog, IWX_BALANCE balance, ICACHE_Q cache) { _balanceLog = balanceLog; _balance = balance; _cache = cache; } [HttpGet] [AuthorizeRedirect(InitRights.CONST_分成结算)] //[AuthorizeSession(HasRight = true)] public ActionResult Index() { var pager = new Pager() { order = "optime", page = 1, rows = 10 }; string tableId = "tablist"; var tab = new Table(tableId); tab.AddHeadCol("pkid", "", "编号"); tab.AddHeadCol("month", "", "结算年月"); tab.AddHeadCol("type", "", "操作类型"); tab.AddHeadCol("operator", "", "操作人"); tab.AddHeadCol("ctime", "", "操作时间"); tab.AddHeadCol("remark", "", "备注"); tab.AddHeadRow(); ViewBag.gridTable = tab.GetTable() + Pagination.GetPage(pager, tableId, "5,8,10,15"); return View(); } [HttpPost] [AuthorizeRedirect(InitRights.CONST_分成结算)] //[AuthorizeSession(HasRight = true)] public JsonResult BalanceLog(Pager pager, string columns) { try { var table = new Table(columns, true); var where = PredicateExtensionses.True(); var list = _balanceLog.GetList(where, p => p.PKID, pager); foreach (var model in list) { table.AddCol(model.PKID); table.AddCol(model.MONTH); table.AddCol(model.TYPE); table.AddCol(InnerUserHelper.Instance.GetEid(model.OPERATOR) + " - " + InnerUserHelper.Instance.GetUsername(model.OPERATOR)); table.AddCol(model.CTIME); table.AddCol(model.REMARK); table.AddRow(); } var json = new { totalPages = pager.totalPages, totalRows = pager.totalRows, rowsList = table.GetRows() }; return Json(json, JsonRequestBehavior.AllowGet); } catch (Exception ex) { LogHelper.Error("CommissionBalance/BalanceLog:" + ex.Message + ex.StackTrace); return JsonHandler.ManageMessage(ex.Message, false); } } [HttpPost] [AuthorizeRedirect(InitRights.CONST_分成结算)] //[AuthorizeSession(HasRight = true)] public JsonResult CheckBalance() { try { var ret = _balance.CheckCommission(); if (string.IsNullOrEmpty(ret)) { return Json(new { result = "ok" }, JsonRequestBehavior.AllowGet); } var data = new List(); var list = new List(ret.Split(',')); foreach (var item in list) { data.Add(new CheckCommissionView() { OrderId = item.Split('#')[0], EidAndUserName = InnerUserHelper.Instance.EidAndName(decimal.Parse(item.Split('#')[1].ToString())) }); } return Json(new { result = "no", data = data }, JsonRequestBehavior.AllowGet); } catch (Exception ex) { LogHelper.Error("CommissionBalance/BalanceLog:" + ex.Message + ex.StackTrace); return JsonHandler.ManageMessage(ex.Message, false); } } [HttpPost] [AuthorizeRedirect(InitRights.CONST_分成结算)] //[AuthorizeSession(HasRight = true)] public JsonResult Balance(string month) { try { if (string.IsNullOrEmpty(month)) return JsonHandler.ManageMessage("参数错误,请确认!", false); DateTime m; if (!DateTime.TryParse(month, out m)) { return JsonHandler.ManageMessage("参数错误,请确认!", false); } var ret = _balance.SaleUserCommissionBalance(m, UserId, string.Empty); return Json(new { result = ret }, JsonRequestBehavior.AllowGet); } catch (Exception ex) { LogHelper.Error("CommissionBalance/Balance:" + ex.Message + ex.StackTrace); return JsonHandler.ManageMessage(ex.Message, false); } } [HttpPost] [AuthorizeRedirect(InitRights.CONST_分成结算)] //[AuthorizeSession(HasRight = true)] public JsonResult UnBalance(string month) { try { if (string.IsNullOrEmpty(month)) return JsonHandler.ManageMessage("参数错误,请确认!", false); DateTime m; if (!DateTime.TryParse(month, out m)) { return JsonHandler.ManageMessage("参数错误,请确认!", false); } _balance.SaleUserCommissionUnBalance(m, UserId); return Json(new { result = "ok" }, JsonRequestBehavior.AllowGet); } catch (Exception ex) { LogHelper.Error("CommissionBalance/UnBalance:" + ex.Message + ex.StackTrace); //return JsonHandler.ManageMessage(ex.Message, false); return Json(new { result = "err" }, JsonRequestBehavior.AllowGet); } } [HttpGet] [AuthorizeRedirect(InitRights.CONST_分成报表查询)] //[AuthorizeSession(HasRight = true)] public ActionResult Report() { ToolBar tool = new ToolBar(); string[] toolbtn = new ToolButtonView().ToolButtonRight(InitRights.订单分成导出, userRightId); tool.AllowButton(toolbtn); tool.AddOtherButton("Other2", "导出", "icon-export", "ExportAllPage_Click", true); ViewBag.ToolBar = tool; string tableId = "tablist"; Table tab = new Table(tableId); tab.AddHeadCol("yearmonth", "", "结算年月"); tab.AddHeadCol("gname", "", "组别"); tab.AddHeadCol("eid", "", "工号"); tab.AddHeadCol("uname", "", "姓名"); tab.AddHeadCol("commissionprice", "", "分成金额"); tab.AddHeadRow(); ViewBag.gridTable = tab.GetTable(); try { var list = _balance.GetList().OrderByDescending(p => p.PKID).Select(p => p.MONTH); ViewBag.YearMonth = list; } catch (Exception ex) { LogHelper.Error(ex); } return View(); } [HttpPost] [AuthorizeRedirect(InitRights.CONST_分成报表查询)] //[AuthorizeSession(HasRight = true)] public ActionResult ReportHtml(string columns, string month) { try { if (string.IsNullOrEmpty(month)) return JsonHandler.ManageMessage("参数错误,请确认!", false); DateTime m; if (!DateTime.TryParse(month, out m)) { return JsonHandler.ManageMessage("参数错误,请确认!", false); } var table = new Table(columns, true); var ds = _balance.CommissionBalanceReport(m); foreach (DataRow model in ds.Tables[0].Rows) { table.AddCol(model["yearmonth"].ToString()); table.AddCol(model["gname"].ToString()); table.AddCol(model["eid"].ToString()); table.AddCol(model["uname"].ToString()); table.AddCol(model["commissionprice"].ToString()); table.AddRow(); } table.AddCol(""); table.AddCol(""); table.AddCol(""); table.AddCol(""); table.AddCol("合计:" + ds.Tables[1].Rows[0][0].ToString()); table.AddRow(); var json = new { rowsList = table.GetRows() }; return Json(json, JsonRequestBehavior.AllowGet); } catch (Exception ex) { LogHelper.Error("CommissionBalance/ReportHtml:" + ex.Message + ex.StackTrace); return JsonHandler.ManageMessage(ex.Message, false); } } [AuthorizeRedirect(InitRights.CONST_分成报表查询)] //[AuthorizeSession(HasRight = true)] public FileResult Export(string month) { DateTime m; DateTime.TryParse(month, out m); var checkedFilds = PageRequest.GetQueryString("checkedFilds"); var checkedTitle = PageRequest.GetQueryString("checkedTitles"); var ds = _balance.CommissionBalanceReport(m); var list = ds.Tables[0].ToList(); return File(ExcelHelper.ExportListModelToExcel(list, "分成报表", 50000, checkedFilds, checkedTitle, null), "application/ms-excel", PageRequest.GetDlownLoadName("分成报表.xls")); //return File(ExcelHelper.ExportDataTableToExcel(ds.Tables[0], "分成报表", checkedFilds, checkedTitle, DataFormart), "application/ms-excel", PageRequest.GetDlownLoadName("分成报表.xls")); } } public class CheckCommissionView { public string OrderId { get; set; } public string EidAndUserName { get; set; } } public class CommissonBalanceExport { public string YearMonth { get; set; } public string GName { get; set; } public decimal Eid { get; set; } public string UName { get; set; } public decimal CommissionPrice { get; set; } } }