TG.WXCRM.V4/WEB/Controllers/Base/CompanyController.cs

209 lines
7.9 KiB
C#

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<IBAS_COMPANY_Q>();
//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]
/// <summary>
/// 按照条件获取数据
/// </summary>
/// <param name="pager"></param>
/// <param name="queryStr"></param>
/// <returns></returns>
[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<WX.CRM.Model.Entity.BAS_COMPANY> list = companyBiz_Q.GetList_Company(ref pager, companyName, isOutAgent, companyCode, cTime1, cTime2);
List<WX.CRM.Model.Entity.BAS_BUSINESS> business = businessBiz_Q.GetList();
List<WX.CRM.Model.Entity.BAS_COMPANY> 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;", "", "&nbsp;&nbsp;" + 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<WX.CRM.Model.Entity.BAS_BUSINESS> 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 + "]&nbsp;";
}
}
return businesstr;
}
#region
/// <summary>
/// 删除数据
/// </summary>
/// <param name="id"></param>
/// <returns></returns>
[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
}
}