/* * 商户 */ using System; using System.Web; using System.Collections.Generic; using System.Diagnostics; using System.Linq; using System.Threading.Tasks; using Microsoft.AspNetCore.Mvc; using Microsoft.AspNetCore.Http; using Microsoft.Extensions.Logging; using Microsoft.Extensions.Options; using MySystem.Models; using Library; using LitJson; using MySystemLib; namespace MySystem.Areas.Admin.Controllers { [Area("Admin")] [Route("Admin/[controller]/[action]")] public class MerchantInfoController : BaseController { public MerchantInfoController(IHttpContextAccessor accessor, ILogger logger, IOptions setting) : base(accessor, logger, setting) { } #region 商户列表 /// /// 根据条件查询商户列表 /// /// public IActionResult Index(MerchantInfo data, string right) { ViewBag.RightInfo = RightInfo; ViewBag.right = right; return View(); } #endregion #region 根据条件查询商户列表 /// /// 商户列表 /// /// public JsonResult IndexData(MerchantInfo data, string AlipayPid, int page = 1, int limit = 30) { Dictionary Fields = new Dictionary(); Fields.Add("Name", "1"); //名称 Fields.Add("CreateDate", "3"); //时间 Fields.Add("Mobile", "1"); //手机号 string condition = ""; if(!string.IsNullOrEmpty(AlipayPid)) { condition += " and Id=(select Id from MerchantAddInfo where AlipayPid='" + AlipayPid + "')"; } if(data.Status > 0) { int Status = data.Status; if(Status == 3) Status = 0; if(Status == 4) Status = -1; condition += " and Status=" + Status; } if(data.QueryCount > 0) { int QueryCount = data.QueryCount; if(QueryCount == 3) QueryCount = 0; if(QueryCount == 4) QueryCount = -1; condition += " and QueryCount=" + QueryCount; } Dictionary obj = new AdminContent(_accessor.HttpContext, PublicFunction.MainTables).IndexData("MerchantInfo", Fields, "Id desc", "0", page, limit, condition); List> diclist = obj["data"] as List>; foreach (Dictionary dic in diclist) { dic["IsAuthName"] = dic["IsAuth"].ToString() == "1" ? "是" : "否"; string Status = dic["Status"].ToString(); if(Status == "-1") dic["Status"] = "审核失败"; if(Status == "0") dic["Status"] = "待审核"; if(Status == "1") dic["Status"] = "待签约"; if(Status == "2") dic["Status"] = "已签约"; string QueryCount = dic["QueryCount"].ToString(); if(QueryCount == "-1") dic["QueryCount"] = "审核失败"; if(QueryCount == "0") dic["QueryCount"] = "待审核"; if(QueryCount == "1") dic["QueryCount"] = "待签约"; if(QueryCount == "2") dic["QueryCount"] = "已签约"; int Id = int.Parse(dic["Id"].ToString()); MerchantAddInfo add = db.MerchantAddInfo.FirstOrDefault(m => m.Id == Id) ?? new MerchantAddInfo(); dic["SubMchid"] = add.SubMchid; dic["AlipayPid"] = add.AlipayPid; dic["AlipayAuthToken"] = add.AlipayAuthToken; } return Json(obj); } #endregion #region 增加商户 /// /// 增加或修改商户信息 /// /// public IActionResult Add(string right) { ViewBag.RightInfo = RightInfo; ViewBag.right = right; return View(); } #endregion #region 增加商户 /// /// 增加或修改商户信息 /// /// [HttpPost] public string Add(MerchantInfo data) { Dictionary Fields = new Dictionary(); Fields.Add("Name", data.Name); //名称 Fields.Add("Mobile", data.Mobile); //手机号 Fields.Add("Areas", data.Areas); //所在地区 Fields.Add("Address", data.Address); //详细地址 Fields.Add("IsAuth", data.IsAuth); //是否认证 Fields.Add("TotalAmount", data.TotalAmount); //平台总收益 Fields.Add("TotalOrder", data.TotalOrder); //累计订单 Fields.Add("TotalCustomer", data.TotalCustomer); //累计客户 Fields.Add("TotalUser", data.TotalUser); //会员数 Fields.Add("LoginPwd", function.MD532(data.LoginPwd)); //登录密码 Fields.Add("SeoTitle", data.SeoTitle); Fields.Add("SeoKeyword", data.SeoKeyword); Fields.Add("SeoDescription", data.SeoDescription); int Id = new AdminContent(_accessor.HttpContext, PublicFunction.MainTables).Add("MerchantInfo", Fields, 0); AddSysLog(data.Id.ToString(), "MerchantInfo", "add"); db.SaveChanges(); SetRedis(Id); return "success"; } #endregion #region 修改商户 /// /// 增加或修改商户信息 /// /// public IActionResult Edit(string right, int Id = 0) { ViewBag.RightInfo = RightInfo; ViewBag.right = right; MerchantInfo editData = db.MerchantInfo.FirstOrDefault(m => m.Id == Id) ?? new MerchantInfo(); ViewBag.data = editData; MerchantAddInfo addData = db.MerchantAddInfo.FirstOrDefault(m => m.Id == Id) ?? new MerchantAddInfo(); ViewBag.adddata = addData; return View(); } #endregion #region 修改商户 /// /// 增加或修改商户信息 /// /// [HttpPost] public string Edit(MerchantInfo data, string AlipayAuthToken) { Dictionary Fields = new Dictionary(); Fields.Add("Name", data.Name); //名称 Fields.Add("Mobile", data.Mobile); //手机号 Fields.Add("Address", data.Address); //详细地址 if (!string.IsNullOrEmpty(data.LoginPwd)) //密码不为空就修改密码,否则不操作 { Fields.Add("LoginPwd", function.MD532(data.LoginPwd)); //登录密码 } Fields.Add("QueryCount", data.QueryCount); Fields.Add("Status", data.Status); Fields.Add("SeoTitle", data.SeoTitle); Fields.Add("SeoKeyword", data.SeoKeyword); Fields.Add("SeoDescription", data.SeoDescription); new AdminContent(_accessor.HttpContext, PublicFunction.MainTables).Edit("MerchantInfo", Fields, data.Id); Dictionary addFields = new Dictionary(); addFields.Add("AlipayAuthToken", AlipayAuthToken); addFields.Add("QueryCount", data.QueryCount); addFields.Add("Status", data.Status); new AdminContent(_accessor.HttpContext, PublicFunction.MainTables).Edit("MerchantAddInfo", addFields, data.Id); AddSysLog(data.Id.ToString(), "MerchantInfo", "update"); db.SaveChanges(); SetRedis(data.Id); return "success"; } #endregion #region 删除商户信息 /// /// 删除商户信息 /// /// public string Delete(string Id) { string[] idlist = Id.Split(new char[] { ',' }); AddSysLog(Id, "MerchantInfo", "del"); foreach (string subid in idlist) { int id = int.Parse(subid); Dictionary Fields = new Dictionary(); Fields.Add("Status", -1); new AdminContent(_accessor.HttpContext, PublicFunction.MainTables).Edit("MerchantInfo", Fields, id); } db.SaveChanges(); return "success"; } #endregion #region 开启 /// /// 开启 /// /// public string Open(string Id) { string[] idlist = Id.Split(new char[] { ',' }); AddSysLog(Id, "MerchantInfo", "open"); foreach (string subid in idlist) { int id = int.Parse(subid); Dictionary Fields = new Dictionary(); Fields.Add("Status", 1); new AdminContent(_accessor.HttpContext, PublicFunction.MainTables).Edit("MerchantInfo", Fields, id); } db.SaveChanges(); return "success"; } #endregion #region 关闭 /// /// 关闭 /// /// public string Close(string Id) { string[] idlist = Id.Split(new char[] { ',' }); AddSysLog(Id, "MerchantInfo", "close"); foreach (string subid in idlist) { int id = int.Parse(subid); Dictionary Fields = new Dictionary(); Fields.Add("Status", 0); new AdminContent(_accessor.HttpContext, PublicFunction.MainTables).Edit("MerchantInfo", Fields, id); } db.SaveChanges(); return "success"; } #endregion #region 排序 /// /// 排序 /// /// public string Sort(int Id, int Sort) { new AdminContent(_accessor.HttpContext, PublicFunction.MainTables).Sort("MerchantInfo", Sort, Id); AddSysLog(Id.ToString(), "MerchantInfo", "sort"); return "success"; } #endregion #region 导入数据 /// /// 导入数据 /// /// public string Import(string ExcelData) { ExcelData = HttpUtility.UrlDecode(ExcelData); JsonData list = JsonMapper.ToObject(ExcelData); for (int i = 1; i < list.Count; i++) { JsonData dr = list[i]; db.MerchantInfo.Add(new MerchantInfo() { CreateDate = DateTime.Now, UpdateDate = DateTime.Now, }); db.SaveChanges(); } AddSysLog("0", "MerchantInfo", "Import"); return "success"; } #endregion #region 导出Excel /// /// 导出Excel /// /// public JsonResult ExportExcel(MerchantInfo data) { Dictionary Fields = new Dictionary(); Fields.Add("Name", "1"); //名称 Fields.Add("CreateDate", "3"); //时间 Fields.Add("Mobile", "1"); //手机号 Fields.Add("IsAuth", "1"); //是否认证 string condition = ""; Dictionary obj = new AdminContent(_accessor.HttpContext, PublicFunction.MainTables).IndexData("MerchantInfo", Fields, "Id desc", "0", 1, 20000, condition, "", false); List> diclist = obj["data"] as List>; foreach (Dictionary dic in diclist) { dic["IsAuthName"] = dic["IsAuth"].ToString() == "1" ? "是" : "否"; } Dictionary result = new Dictionary(); result.Add("Status", "1"); result.Add("Info", "Excel报表-" + DateTime.Now.ToString("yyyy-MM-ddTHH:mm:ss") + ".xlsx"); result.Add("Obj", diclist); Dictionary ReturnFields = new Dictionary(); result.Add("Fields", ReturnFields); AddSysLog("0", "MerchantInfo", "ExportExcel"); return Json(result); } #endregion #region 设置缓存 private void SetRedis(int Id = 0) { if (Id > 0) { MerchantInfo merchant = db.MerchantInfo.FirstOrDefault(m => m.Id == Id) ?? new MerchantInfo(); RedisDbconn.Instance.Set("MerchantInfo:" + Id, merchant); MerchantForMobile forMobile = db.MerchantForMobile.FirstOrDefault(m => m.Mobile == merchant.Mobile); if (forMobile == null) { forMobile = db.MerchantForMobile.Add(new MerchantForMobile() { Mobile = merchant.Mobile, MerchantId = Id, }).Entity; } RedisDbconn.Instance.Set("MerchantForMobile:" + merchant.Mobile, forMobile); } } #endregion } }