using Ninject; using System; using System.Web.Mvc; using WX.CRM.BLL.Base; using WX.CRM.Common; using WX.CRM.IBLL.Base; using WX.CRM.Model.Entity; using WX.CRM.WebHelper; namespace WX.CRM.WEB.Controllers.Base { public class FeedbackController : BaseController { private ValidationErrors errors = new ValidationErrors(); [Inject] public IBAS_NOTICE bas_Notice_BL { get; set; } [Inject] public IBAS_FEEDBACK bas_Feedback_BL { get; set; } [AuthorizeRedirect(Roles = InitRights.CONST_意见反馈)] public ActionResult Index() { ToolBar tool = new ToolBar(); string[] toolbtn = new ToolButtonView().ToolButtonRight(InitRights.意见反馈, userRightId); tool.AddOtherButton("Other1", "回复", "icon-edit", "Reply_Click", true); tool.AllowButton(toolbtn); ViewBag.ToolBar = tool; Pager pager = new Pager() { page = 1, rows = 20 }; var tableId = "tablist"; Table tab = new Table(tableId); tab.AddHiddenHeadCol("PKID", "编号"); tab.AddHeadCol("CONTENT", "50%", "内容"); tab.AddHeadCol("REPLY", "", "回复"); tab.AddHeadCol("SHOWTYPE", "", "反馈方式"); tab.AddHeadCol("INNERUSERID", "", "创建人"); tab.AddHeadCol("CTIME", "", "创建时间"); tab.AddHeadRow(); ViewBag.gridTable = tab.GetHead() + Pagination.GetPage(pager, tableId, "10,20"); return View(); } [HttpPost] [AuthorizeRedirect(Roles = InitRights.CONST_意见反馈)] public JsonResult GetHtmlList(Pager pager, decimal? eId, string content, string stime, string etime, string columns) { decimal? innerUserId = null; var uid = InnerUserHelper.Instance.GetUserIdByEid(eId); if (uid > 1) { innerUserId = uid; } var list = bas_Feedback_BL.GetList(ref pager, innerUserId, content, stime, etime); Table table = new Table(columns, true); foreach (var model in list) { table.AddHiddenCol(model.PKID); table.AddCol("text-align:left", "", model.CONTENT); table.AddCol("text-align:left", "", model.REPLY); table.AddCol(model.SHOWTYPE.HasValue ? model.SHOWTYPE == 1 ? "实名" : "匿名" : ""); table.AddCol(InnerUserHelper.Instance.GetEidAndTrueName(model.INNERUSERID)); table.AddCol(model.CTIME); table.AddRow(); } var json = new { totalPages = pager.totalPages, totalRows = pager.totalRows, rowsList = table.GetRows() }; return Json(json, JsonRequestBehavior.AllowGet); } [AuthorizeRedirect()] public ActionResult Add() { BAS_FEEDBACK model = new BAS_FEEDBACK(); model.SHOWTYPE = 0; return View(model); } [HttpPost] [AuthorizeRedirect()] public JsonResult Add(BAS_FEEDBACK model) { if (model == null) { errors.Add("参数不能为空!"); return JsonHandler.InsertMessage(errors, false); } if (string.IsNullOrWhiteSpace(model.CONTENT)) { errors.Add("内容不能为空!"); return JsonHandler.InsertMessage(errors, false); } if (string.IsNullOrWhiteSpace(model.CONTENT)) { errors.Add("内容不能为空!"); return JsonHandler.InsertMessage(errors, false); } model.PKID = new SEQUENCES_BL().Seq_base_get(); model.CTIME = DateTime.Now; model.INNERUSERID = UserId; var flag = bas_Feedback_BL.Add(model); return JsonHandler.InsertMessage(errors, flag == 1); } [HttpGet] [AuthorizeToolBar(InitRights.CONST_意见反馈, InitToolBar.CONST_Other1)] public ActionResult Reply(decimal id) { BAS_FEEDBACK model = bas_Feedback_BL.Get(m => m.PKID == id); return View(model); } [HttpPost] [AuthorizeToolBar(InitRights.CONST_意见反馈, InitToolBar.CONST_Other1)] public ActionResult Reply(BAS_FEEDBACK model) { if (model == null) { errors.Add("参数不能为空!"); return JsonHandler.InsertMessage(errors, false); } if (string.IsNullOrWhiteSpace(model.REPLY)) { errors.Add("回复内容不能为空!"); return JsonHandler.InsertMessage(errors, false); } var feedBack = bas_Feedback_BL.Get(m => m.PKID == model.PKID); feedBack.REPLY = model.REPLY; feedBack.REPLYTIME = DateTime.Now; feedBack.REPLYERID = UserId; var flag = bas_Feedback_BL.Update(feedBack); return JsonHandler.InsertMessage(errors, flag); } [AuthorizeRedirect(Roles = InitRights.CONST_我的意见反馈)] public ActionResult MyList() { ToolBar tool = new ToolBar(); string[] toolbtn = new ToolButtonView().ToolButtonRight(InitRights.我的意见反馈, userRightId); tool.AllowButton(toolbtn); ViewBag.ToolBar = tool; Pager pager = new Pager() { page = 1, rows = 20 }; var tableId = "tablist"; Table tab = new Table(tableId); tab.AddHiddenHeadCol("PKID", "编号"); tab.AddHeadCol("CONTENT", "", "反馈内容"); tab.AddHeadCol("SHOWTYPE", "", "回复"); tab.AddHeadRow(); ViewBag.gridTable = tab.GetHead() + Pagination.GetPage(pager, tableId, "10,20"); return View(); } [HttpPost] [AuthorizeRedirect(Roles = InitRights.CONST_我的意见反馈)] public JsonResult GetMyListHtmlList(Pager pager, string columns) { var list = bas_Feedback_BL.GetList(m => m.INNERUSERID == UserId, m => m.CTIME, pager); Table table = new Table(columns, true); foreach (var model in list) { table.AddHiddenCol(model.PKID); table.AddCol("text-align:left", "", model.CONTENT); table.AddCol("text-align:left", "", model.REPLY); table.AddRow(); } var json = new { totalPages = pager.totalPages, totalRows = pager.totalRows, rowsList = table.GetRows() }; return Json(json, JsonRequestBehavior.AllowGet); } } }