using System; using System.Collections.Generic; using System.Linq; using System.Web.Mvc; using WX.CRM.Common; using WX.CRM.IBLL.Base; using WX.CRM.WebHelper; //using Ninject; namespace WX.CRM.WEB.Controllers.Base { public class CompanyController : BaseController { private IBAS_COMPANY companyBiz; private IBAS_COMPANY_Q companyBiz_Q; private IBAS_BUSINESS_Q businessBiz_Q; ValidationErrors errors = new ValidationErrors(); public CompanyController(IBAS_COMPANY _companyBiz, IBAS_COMPANY_Q _companyBiz_Q, IBAS_BUSINESS_Q _businessBiz_Q) { this.companyBiz = _companyBiz; this.companyBiz_Q = _companyBiz_Q; this.businessBiz_Q = _businessBiz_Q; } #region 首页 [AuthorizeRedirect(Roles = InitRights.CONST_代理商管理)] public ActionResult Index() { //IBAS_COMPANY_Q doa = WebHelper.Infrastructure.NinjectControllerFactory.ninjectKernel.Get(); //ToolBar ToolBar tool = new ToolBar(); string[] toolbtn = new ToolButtonView().ToolButtonRight(InitRights.代理商管理, userRightId); tool.AllowButton(toolbtn); //tool.AllowButton("Create", "Edit", "Details", "Delete"); ViewBag.ToolBar = tool; //table Pager pager = new Pager() { page = 1, rows = 10 }; string tableId = "tablist"; Table tab = new Table(tableId); tab.AddHeadCol("companyId", "8%", "公司ID", "sortTable('tablist',1,'int');", "cursor:pointer"); tab.AddHeadCol("companyName", "8%", "公司名称", "sortTable('tablist',2);", "cursor:pointer"); tab.AddHeadCol("systemCode", "5%", "系统前缀"); tab.AddHeadCol("companyCode", "5%", "公司编码"); tab.AddHeadCol("isOuterAgent", "10%", "机构"); tab.AddHeadCol("isOuterAgent", "10%", "外部公司"); tab.AddHeadCol("parentId", "10%", "父公司"); tab.AddHeadCol("businessValue", "20%", "公司业务"); tab.AddHeadCol("comments", "", "公司简介"); tab.AddHeadRow(); ViewBag.gridTable = tab.GetHead() + Pagination.GetPage(pager, tableId, "10,20,30"); return View(); } #endregion #region 列表 [HttpPost] /// /// 按照条件获取数据 /// /// /// /// [AuthorizeRedirect(Roles = InitRights.CONST_代理商管理)] public JsonResult GetHtmlList(Pager pager, string columns) { string companyName = Request.Form["companyName"]; string isOutAgent = Request.Form["isOutAgent"]; string companyCode = Request.Form["companyCode"]; string cTime1 = Request.Form["cTime1"]; string cTime2 = Request.Form["cTime2"]; List list = companyBiz_Q.GetList_Company(ref pager, companyName, isOutAgent, companyCode, cTime1, cTime2); List business = businessBiz_Q.GetList(); List allCompanyList = DataCacheHelper.GetCache().GetList_innerCompany();//缓存中读取全部公司数据 WX.CRM.Model.Entity.BAS_COMPANY company = null; Table table = new Table(columns, true); table.gridPager = pager; foreach (WX.CRM.Model.Entity.BAS_COMPANY model in list) { table.AddCol(model.COMPANYID); table.AddCol(model.COMPANYNAME); table.AddCol(model.SYSTEMCODE); table.AddCol(model.COMPANYCODE); table.AddCol(model.ORGANNAME); table.AddCol(model.ISOUTERAGENT.Value == 1 ? "是" : "否"); if (model.PARENTID == null || model.PARENTID.Value == 0) company = null; else company = allCompanyList.FirstOrDefault(m => m.COMPANYID == model.PARENTID); if (company == null) table.AddCol(""); else table.AddCol(company.COMPANYNAME); table.AddCol("text-align:left;", "", "  " + GetBusiness(business, Convert.ToInt32(model.BUSINESSVALUE))); table.AddCol(model.COMMENTS); table.AddRow(); } var json = new { totalPages = pager.totalPages, totalRows = pager.totalRows, rowsList = table.GetRows() }; return Json(json, JsonRequestBehavior.AllowGet); } #endregion #region 详细 [AuthorizeToolBar(InitRights.CONST_代理商管理, InitToolBar.CONST_Details)] public ActionResult Details(string id) { WX.CRM.Model.Entity.BAS_COMPANY model = null; if (id != null) model = companyBiz_Q.GetModel_Company(Convert.ToDecimal(id)); else model = new WX.CRM.Model.Entity.BAS_COMPANY(); return View(model); } #endregion #region 编辑 [HttpGet] [AuthorizeToolBar(InitRights.CONST_代理商管理, InitToolBar.CONST_Edit)] public ActionResult Edit(string id) { WX.CRM.Model.Entity.BAS_COMPANY model = null; if (id == null) { model = new WX.CRM.Model.Entity.BAS_COMPANY(); model.ISOUTERAGENT = 0;//默认不是外部公司 } else model = companyBiz_Q.GetModel_Company(Convert.ToDecimal(id)); ViewBag.BusinessList = businessBiz_Q.GetList(); return View(model); } [HttpPost] [AuthorizeToolBar(InitRights.CONST_代理商管理, InitToolBar.CONST_Edit)] public JsonResult Edit(WX.CRM.Model.Entity.BAS_COMPANY model) { if (!ModelState.IsValid) { return JsonHandler.ValidateFailMessage(); } if (model.COMPANYID == 0) { model.CREATEUSER = UserId; bool result = companyBiz.Create_Company(ref errors, model); return JsonHandler.InsertMessage(errors, result); } else { model.UPDATEUSER = UserId; bool result = companyBiz.Update_Company(ref errors, model); return JsonHandler.UpdateMessage(errors, result); } } #endregion private string GetBusiness(List business, int businessValue) { string businesstr = ""; foreach (WX.CRM.Model.Entity.BAS_BUSINESS model in business) { if ((businessValue & Convert.ToInt32(model.BUSINESSID)) > 0) { businesstr += "[" + model.BUSINESSNAME + "] "; } } return businesstr; } #region 删除 /// /// 删除数据 /// /// /// [AuthorizeToolBar(InitRights.CONST_代理商管理, InitToolBar.CONST_Delete)] public JsonResult Delete(string id) { if (string.IsNullOrWhiteSpace(id)) { return JsonHandler.ManageMessage("删除失败", false); } bool result = companyBiz.Delete_Company(ref errors, Convert.ToDecimal(id)); return JsonHandler.DeleteMessage(errors, result); } #endregion #region 组织结构图 [AuthorizeRedirect(Roles = InitRights.CONST_组织结构图)] public ActionResult OrganizationMap() { return View(); } #endregion } }