using System; using System.Collections.Generic; using System.Data; using System.Globalization; using System.IO; using System.Web; using System.Web.Mvc; using WX.CRM.BLL.Base; using WX.CRM.Common; using WX.CRM.IBLL.Wx; using WX.CRM.Model.Entity; using WX.CRM.WebHelper; namespace WX.CRM.WEB.Controllers.WeiXin { public class SzzyPrepaymentController : BaseController { public IWX_SZZYPREPAYMENT WX_SzzyPrement_BL { get; set; } public SzzyPrepaymentController() { } [AuthorizeRedirect(Roles = InitRights.CONST_定金上传)] public ActionResult Index() { //ToolBar ToolBar tool = new ToolBar(); string[] toolbtn = new ToolButtonView().ToolButtonRight(InitRights.定金上传, userRightId); tool.AllowButton(toolbtn); tool.AddOtherButton("Other1", "上传定金", "icon-detail", "Upload_Click", true); ViewBag.ToolBar = tool; //table Pager pager = new Pager() { page = 1, rows = 20 }; string tableId = "tablist"; Table tab = new Table(tableId); tab.AddHiddenHeadCol("PKID", "编号"); tab.AddHeadCol("PREPAYMENTID", "", "定金编号"); tab.AddHeadCol("USERID", "", "用户ID"); tab.AddHeadCol("RESID", "", "客户ID"); tab.AddHeadCol("REALNAME", "", "姓名"); tab.AddHeadCol("TOBANKNAME", "", "收款银行"); tab.AddHeadCol("REMITTIME", "", "汇款日期"); tab.AddHeadCol("AMOUNT", "", "定金金额"); tab.AddHeadCol("SZZYORDERID", "", "定金支付的订单号"); tab.AddHeadRow(); ViewBag.gridTable = tab.GetHead() + Pagination.GetPage(pager, tableId, "5,10,15,20"); return View(); } [HttpPost] [AuthorizeRedirect(Roles = InitRights.CONST_定金上传)] public JsonResult GetHtmlList(Pager pager, string prepaymentId, string resId, string realName, decimal? szzyOrderId, string columns) { List list = WX_SzzyPrement_BL.GetList(ref pager, prepaymentId, resId, realName, szzyOrderId); Table table = new Table(columns, true); table.gridPager = pager; foreach (var model in list) { table.AddHiddenCol(model.PKID); table.AddCol(model.PREPAYMENTID); table.AddCol(model.USERID); var linkUrl = ""; if (!string.IsNullOrEmpty(model.RESID)) { string.Format("{2}" , "客户详细" , "/Csvr/CustomerInfo/CustomerDetail?resid=" + model.RESID , model.RESID); } table.AddCol(linkUrl); table.AddCol(model.REALNAME); table.AddCol(model.TOBANKNAME); table.AddCol(model.REMITTIME); table.AddCol(model.AMOUNT); table.AddCol(model.SZZYORDERID); table.AddRow(); } var json = new { totalPages = pager.totalPages, totalRows = pager.totalRows, rowsList = table.GetRows() }; return Json(json, JsonRequestBehavior.AllowGet); } [AuthorizeToolBar(InitRights.CONST_定金上传, InitToolBar.CONST_Other1)] public ActionResult PrepaymentUpload() { return View(); } [AcceptVerbs(HttpVerbs.Post)] public JsonResult Upload(HttpPostedFileBase fileData) { if (fileData != null) { try { //文件上传后的保存路径 string filePath = Server.MapPath("~/UploadFile/PrepaymentPay/"); if (!Directory.Exists(filePath)) { Directory.CreateDirectory(filePath); } string fileName = Path.GetFileName(fileData.FileName);//原始文件名称 string fileExtension = Path.GetExtension(fileName); //文件扩展名 string saveName = Guid.NewGuid() + fileExtension; //保存文件名称 fileData.SaveAs(filePath + saveName); bool timeIsEmpty = false; handleArrivalUpload(saveName, ref timeIsEmpty); if (!timeIsEmpty) { return Json(new { Success = true, Message = "上传成功" }); } else { return Json(new { Success = false, Message = "更新失败,文件中到账时间格式有误" }); } } catch (Exception ex) { LogHelper.Error(ex); return Json(new { Success = false, Message = ex.Message }, JsonRequestBehavior.AllowGet); } } return Json(new { Success = false, Message = "请选择要上传的文件!" }, JsonRequestBehavior.AllowGet); } public void handleArrivalUpload(string file, ref bool timeIsEmpty) { string str = ""; DataTable dt = null; try { NPOIHelper.InitializeWorkbook_xls(AppDomain.CurrentDomain.BaseDirectory + "UploadFile\\PrepaymentPay\\" + file); dt = NPOIHelper.ConvertToDataTable(); //TempData["uploadtable"] = dt; } catch (Exception ex) { LogHelper.Error(ex); } if (dt.Rows.Count > 0 || dt.Columns.Count == 3) { for (int i = 0; i < dt.Rows.Count; i++) { DataRow model = dt.Rows[i]; string prepaymentId = model[0].ToString(); string userId = model[1].ToString(); string resId = model[2].ToString(); string realName = model[3].ToString(); string toBankName = model[4].ToString(); DateTime remitTime = DateTime.MinValue; if (model[5] != null && !string.IsNullOrWhiteSpace(model[5].ToString())) { if (!DateTime.TryParse(model[5].ToString(), out remitTime)) { DateTime.TryParseExact(model[5].ToString(), "dd/MM/yy hh:mm", new CultureInfo("en-US"), DateTimeStyles.None, out remitTime); } } if (remitTime == null || remitTime == DateTime.MinValue) { timeIsEmpty = true; continue; } decimal amount = Convert.ToDecimal(model[6]); decimal szzyOrderid = Convert.ToDecimal(model[7]); decimal salerEid = Convert.ToDecimal(model[8]); decimal salerUserId = InnerUserHelper.Instance.GetUserIdByEid(salerEid); WX_SZZYPREPAYMENT prepayment = WX_SzzyPrement_BL.Get(m => m.PREPAYMENTID == prepaymentId); if (prepayment == null) { WX_SZZYPREPAYMENT m = new WX_SZZYPREPAYMENT(); m.PKID = new SEQUENCES_BL().Seq_base_get(); m.PREPAYMENTID = prepaymentId; m.USERID = userId; m.RESID = resId; m.REALNAME = realName; m.TOBANKNAME = toBankName; m.REMITTIME = remitTime; m.AMOUNT = amount; m.SZZYORDERID = szzyOrderid; m.INNERUSERID = UserId; m.CTIME = DateTime.Now; m.SALEREID = salerEid; m.SALERUSERID = salerUserId; WX_SzzyPrement_BL.Add(m); } else { prepayment.USERID = userId; prepayment.RESID = resId; prepayment.REALNAME = realName; prepayment.TOBANKNAME = toBankName; prepayment.REMITTIME = remitTime; prepayment.AMOUNT = amount; prepayment.SZZYORDERID = szzyOrderid; prepayment.INNERUSERID = UserId; prepayment.CTIME = DateTime.Now; prepayment.SALEREID = salerEid; prepayment.SALERUSERID = salerUserId; WX_SzzyPrement_BL.Update(prepayment); } } } } } }