/* * 创客 */ using System; using System.Web; using System.Collections.Generic; using System.Diagnostics; using System.Linq; using System.Data; 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 UsersController : BaseController { public UsersController(IHttpContextAccessor accessor, ILogger logger, IOptions setting) : base(accessor, logger, setting) { OtherMySqlConn.connstr = ConfigurationManager.AppSettings["SqlConnStr"].ToString(); } #region 创客列表 /// /// 根据条件查询创客列表 /// /// public IActionResult Index(Users data, string right, int SelfId = 0, int ParentId = 0, string MakerCode = "") { ViewBag.RightInfo = RightInfo; ViewBag.right = right; ViewBag.SelfId = SelfId.ToString(); ViewBag.ParentId = ParentId.ToString(); ViewBag.MakerCode = MakerCode; List TopUsers = db.Users.Where(m => m.ParentUserId == 0).ToList(); ViewBag.TopUsers = TopUsers; List Levels = db.UserLevelSet.OrderBy(m => m.Id).ToList(); ViewBag.Levels = Levels; return View(); } #endregion #region 根据条件查询创客列表 /// /// 创客列表 /// /// public JsonResult IndexData(Users data, string ParentMakerCode, string ParentRealName, string AuthFlagSelect, int TopUserId, string RiskFlagSelect, string MerchantTypeSelect, int SelfId = 0, int ParentId = 0, int page = 1, int limit = 30) { Dictionary Fields = new Dictionary(); Fields.Add("MakerCode", "1"); //创客编号 Fields.Add("RealName", "1"); //创客名称 Fields.Add("Mobile", "1"); //手机号 Fields.Add("CertId", "1"); //身份证号码 Fields.Add("CreateDate", "3"); //注册时间 Fields.Add("SettleAmount", "3"); //结算金额 Fields.Add("CashFreezeAmt", "3"); //冻结金额 Fields.Add("UserLevel", "0"); //创客等级 string condition = " and Status>-1"; string sort = "Id desc"; //直属创客编号 if (!string.IsNullOrEmpty(ParentMakerCode)) { condition += " and Id in (select UserId from UserForMakerCode where MakerCode='" + ParentMakerCode + "')"; } //直属创客名称 if (!string.IsNullOrEmpty(ParentRealName)) { condition += " and Id in (select UserId from UserForRealName where RealName='" + ParentRealName + "')"; } //实名状态 if(!string.IsNullOrEmpty(AuthFlagSelect)) { condition += " and AuthFlag=" + AuthFlagSelect; } //顶级创客 if(TopUserId > 0) { condition += " and ParentNav like '," + TopUserId + ",%'"; } //风控标识 if(!string.IsNullOrEmpty(RiskFlagSelect)) { condition += " and RiskFlag=" + RiskFlagSelect; } //商户创客类型 if(!string.IsNullOrEmpty(MerchantTypeSelect)) { condition += " and MerchantType=" + MerchantTypeSelect; } if (SelfId > 0) { Users self = db.Users.FirstOrDefault(m => m.Id == SelfId); if (self != null) { string ParentNav = function.CheckNull(self.ParentNav); condition += " and Id in (" + ParentNav.Trim(',').Replace(",,", ",") + ")"; sort = "ParentNav asc"; } } if (ParentId > 0) { condition += " and ParentUserId=" + ParentId; } Dictionary obj = new AdminContentOther(_accessor.HttpContext, PublicFunction.MainTables).IndexData("Users", Fields, sort, "True", page, limit, condition); List> diclist = obj["data"] as List>; foreach (Dictionary dic in diclist) { dic["AuthFlagName"] = dic["AuthFlag"].ToString() == "1" ? "已实名" : "未实名"; dic["RiskFlagName"] = dic["RiskFlag"].ToString() == "1" ? "已风控" : "未风控"; dic["UserLevel"] = RelationClass.GetUserLevelSetInfo(int.Parse(dic["UserLevel"].ToString())); dic["MerchantType"] = RelationClassForConst.GetMerchantTypeInfo(int.Parse(dic["MerchantType"].ToString())); int ParentUserId = int.Parse(dic["ParentUserId"].ToString()); Users puser = db.Users.FirstOrDefault(m => m.Id == ParentUserId) ?? new Users(); dic["ParentMakerCode"] = puser.MakerCode; dic["ParentRealName"] = puser.RealName; string ParentNav = dic["ParentNav"].ToString(); if (!string.IsNullOrEmpty(ParentNav)) { string[] list = ParentNav.Trim(',').Replace(",,", ",").Split(','); if (list.Length > 1) { int TopId = int.Parse(function.CheckInt(list[1])); Users tuser = db.Users.FirstOrDefault(m => m.Id == TopId) ?? new Users(); dic["TopMakerCode"] = tuser.MakerCode; dic["TopRealName"] = tuser.RealName; } } } return Json(obj); } #endregion #region 增加创客 /// /// 增加或修改创客信息 /// /// public IActionResult Add(string right) { ViewBag.RightInfo = RightInfo; ViewBag.right = right; return View(); } #endregion #region 增加创客 /// /// 增加或修改创客信息 /// /// [HttpPost] public string Add(Users data, string ParentMakerCode) { bool check = db.UserForMobile.Any(m => m.Mobile == data.Mobile); if (check) { return "手机号已存在,请重新输入"; } check = db.UserForRealName.Any(m => m.RealName == data.RealName); if (check) { return "姓名已存在,请重新输入"; } if (!string.IsNullOrEmpty(data.MakerCode)) { check = db.UserForMakerCode.Any(m => m.MakerCode == data.MakerCode); if (check) { return "创客编码已存在,请重新输入"; } } Dictionary Fields = new Dictionary(); Fields.Add("RealName", data.RealName); //真实姓名 Fields.Add("CertId", data.CertId); //身份证号 Fields.Add("Mobile", data.Mobile); //手机号 Fields.Add("LoginPwd", function.MD532(data.LoginPwd)); //登录密码 Fields.Add("SettleBankCardNo", data.SettleBankCardNo); //结算银行卡号 if (!string.IsNullOrEmpty(ParentMakerCode)) { UserForMakerCode userFor = db.UserForMakerCode.FirstOrDefault(m => m.MakerCode == ParentMakerCode) ?? new UserForMakerCode(); Users puser = db.Users.FirstOrDefault(m => m.Id == userFor.UserId) ?? new Users(); Fields.Add("ParentUserId", userFor.UserId); Fields.Add("ParentNav", puser.ParentNav + "," + userFor.UserId + ","); } int Id = new AdminContentOther(_accessor.HttpContext, PublicFunction.MainTables).Add("Users", Fields, 0); if (string.IsNullOrEmpty(ParentMakerCode)) { string MakerCode = Id.ToString(); for (int i = 0; i < 7 - Id.ToString().Length; i++) { MakerCode = "0" + MakerCode; } MakerCode = "K" + MakerCode; Fields = new Dictionary(); Fields.Add("MakerCode", MakerCode); //编号 new AdminContentOther(_accessor.HttpContext, PublicFunction.MainTables).Edit("Users", Fields, Id); } db.UserDetail.Add(new UserDetail() { Id = Id }); db.UserData.Add(new UserData() { UserId = Id }); AddSysLog(data.Id.ToString(), "Users", "add"); db.SaveChanges(); return "success"; } #endregion #region 修改创客 /// /// 增加或修改创客信息 /// /// public IActionResult Edit(string right, int Id = 0) { ViewBag.RightInfo = RightInfo; ViewBag.right = right; Users editData = db.Users.FirstOrDefault(m => m.Id == Id) ?? new Users(); ViewBag.data = editData; return View(); } #endregion #region 修改创客 /// /// 增加或修改创客信息 /// /// [HttpPost] public string Edit(Users data, UserDetail userdetail, UserData userdata) { Dictionary Fields = new Dictionary(); Fields.Add("RealName", data.RealName); //真实姓名 Fields.Add("CertId", data.CertId); //身份证号 Fields.Add("Mobile", data.Mobile); //手机号 Fields.Add("SettleBankName", data.SettleBankName); //结算银行名称 Fields.Add("SettleBankCardNo", data.SettleBankCardNo); //结算银行卡号 new AdminContentOther(_accessor.HttpContext, PublicFunction.MainTables).Edit("Users", Fields, data.Id); AddSysLog(data.Id.ToString(), "Users", "update"); db.SaveChanges(); return "success"; } #endregion #region 修改结算金额 public IActionResult EditSettleAmount(string right, int Id = 0) { ViewBag.RightInfo = RightInfo; ViewBag.right = right; Users editData = db.Users.FirstOrDefault(m => m.Id == Id) ?? new Users(); ViewBag.data = editData; return View(); } #endregion #region 修改结算金额 [HttpPost] public string EditSettleAmount(Users data) { Dictionary Fields = new Dictionary(); Fields.Add("SettleAmount", data.SettleAmount); new AdminContentOther(_accessor.HttpContext, PublicFunction.MainTables).Edit("Users", Fields, data.Id); AddSysLog(data.Id.ToString(), "Users", "EditSettleAmount"); db.SaveChanges(); return "success"; } #endregion #region 修改账户金额 public IActionResult EditCashFreezeAmt(string right, int Id = 0) { ViewBag.RightInfo = RightInfo; ViewBag.right = right; Users editData = db.Users.FirstOrDefault(m => m.Id == Id) ?? new Users(); ViewBag.data = editData; return View(); } #endregion #region 修改账户金额 [HttpPost] public string EditCashFreezeAmt(Users data, string Note, int Kind) { int UserId = data.Id; UserAccount account = db.UserAccount.FirstOrDefault(m => m.Id == UserId); if (account == null) { account = db.UserAccount.Add(new UserAccount() { Id = UserId, UserId = UserId, }).Entity; db.SaveChanges(); } if ((Kind == 1 || Kind == 3) && data.CashFreezeAmt > account.BalanceAmount) { return "账号余额不足"; } decimal BeforeTotalAmount = account.TotalAmount; //变更前总金额 decimal BeforeFreezeAmount = account.FreezeAmount; //变更前冻结金额 decimal BeforeBalanceAmount = account.BalanceAmount; //变更前余额 int ChangeType = 0; if (Kind == 1) { account.BalanceAmount -= data.CashFreezeAmt; account.FreezeAmount += data.CashFreezeAmt; ChangeType = 61; } else if (Kind == 2) { account.BalanceAmount += data.CashFreezeAmt; account.FreezeAmount -= data.CashFreezeAmt; ChangeType = 62; } else if (Kind == 3) { account.TotalAmount -= data.CashFreezeAmt; account.BalanceAmount -= data.CashFreezeAmt; ChangeType = 63; } else if (Kind == 4) { account.TotalAmount += data.CashFreezeAmt; account.BalanceAmount += data.CashFreezeAmt; ChangeType = 64; } decimal AfterTotalAmount = account.TotalAmount; //变更后总金额 decimal AfterFreezeAmount = account.FreezeAmount; //变更后冻结金额 decimal AfterBalanceAmount = account.BalanceAmount; //变更后余额 UserAccountRecord userAccountRecord = db.UserAccountRecord.Add(new UserAccountRecord() { CreateDate = DateTime.Now, UpdateDate = DateTime.Now, UserId = UserId, //创客 ChangeType = ChangeType, //变动类型 ChangeAmount = data.CashFreezeAmt, //变更金额 BeforeTotalAmount = BeforeTotalAmount, //变更前总金额 AfterTotalAmount = AfterTotalAmount, //变更后总金额 BeforeFreezeAmount = BeforeFreezeAmount, //变更前冻结金额 AfterFreezeAmount = AfterFreezeAmount, //变更后冻结金额 BeforeBalanceAmount = BeforeBalanceAmount, //变更前余额 AfterBalanceAmount = AfterBalanceAmount, //变更后余额 Remark = Note, }).Entity; db.SaveChanges(); RedisDbconn.Instance.Set("UserAccount:" + UserId, account); AddSysLog(data.Id.ToString(), "Users", "EditCashFreezeAmt"); db.SaveChanges(); return "success"; } #endregion #region 账户操作 public IActionResult EditBalance(string right, int Id = 0) { ViewBag.RightInfo = RightInfo; ViewBag.right = right; Users editData = db.Users.FirstOrDefault(m => m.Id == Id) ?? new Users(); ViewBag.data = editData; UserAccount account = db.UserAccount.FirstOrDefault(m => m.Id == Id) ?? new UserAccount(); ViewBag.account = account; return View(); } #endregion #region 账户操作 [HttpPost] public string EditBalance(UserAccount data) { UserAccount account = db.UserAccount.FirstOrDefault(m => m.Id == data.Id); if (account != null) { decimal amount = data.BalanceAmount - account.BalanceAmount; if (amount != 0) { account.BalanceAmount += amount; account.TotalAmount += amount; AddSysLog(data.Id.ToString(), "UserAccount", "EditBalance"); db.SaveChanges(); } } return "success"; } #endregion #region 详情 public IActionResult Detail(string right, int Id = 0) { ViewBag.RightInfo = RightInfo; ViewBag.right = right; Users editData = db.Users.FirstOrDefault(m => m.Id == Id) ?? new Users(); ViewBag.AuthDate = editData.AuthDate == null ? "" : editData.AuthDate.Value.ToString("yyyy-MM-dd HH:mm:ss"); string Age = ""; if (!string.IsNullOrEmpty(editData.CertId)) { int year = DateTime.Now.Year - int.Parse(editData.CertId.Substring(6, 4)); Age = year.ToString(); } ViewBag.Age = Age; ViewBag.QrCode = string.IsNullOrEmpty(editData.ReferenceQrCode) ? defaultImage : SourceHost + editData.ReferenceQrCode; return View(); } #endregion #region 三/四要素验证 public IActionResult ThreeElement(string right) { ViewBag.RightInfo = RightInfo; ViewBag.right = right; return View(); } #endregion #region 三/四要素验证 [HttpPost] public string ThreeElement(string Name, string CertId, string CardNo, string Mobile) { return "success"; } #endregion #region 删除创客信息 /// /// 删除创客信息 /// /// public string Delete(string Id) { string[] idlist = Id.Split(new char[] { ',' }); AddSysLog(Id, "Users", "del"); foreach (string subid in idlist) { int id = int.Parse(subid); Dictionary Fields = new Dictionary(); Fields.Add("Status", -1); new AdminContentOther(_accessor.HttpContext, PublicFunction.MainTables).Edit("Users", Fields, id); } db.SaveChanges(); return "success"; } #endregion #region 开启 /// /// 开启 /// /// public string Open(string Id) { string[] idlist = Id.Split(new char[] { ',' }); AddSysLog(Id, "Users", "open"); foreach (string subid in idlist) { int id = int.Parse(subid); Dictionary Fields = new Dictionary(); Fields.Add("Status", 1); new AdminContentOther(_accessor.HttpContext, PublicFunction.MainTables).Edit("Users", Fields, id); } db.SaveChanges(); return "success"; } #endregion #region 关闭 /// /// 关闭 /// /// public string Close(string Id) { string[] idlist = Id.Split(new char[] { ',' }); AddSysLog(Id, "Users", "close"); foreach (string subid in idlist) { int id = int.Parse(subid); Dictionary Fields = new Dictionary(); Fields.Add("Status", 0); new AdminContentOther(_accessor.HttpContext, PublicFunction.MainTables).Edit("Users", Fields, id); } db.SaveChanges(); return "success"; } #endregion #region 风控 public IActionResult Risk(string right, int Id = 0) { ViewBag.RightInfo = RightInfo; ViewBag.right = right; Users editData = db.Users.FirstOrDefault(m => m.Id == Id) ?? new Users(); ViewBag.data = editData; return View(); } #endregion #region 风控 [HttpPost] public string Risk(Users data) { Users user = db.Users.FirstOrDefault(m => m.Id == data.Id); if (user != null) { user.RiskFlag = data.RiskFlag; user.RiskRemark = data.RiskRemark; db.SaveChanges(); } return "success"; } #endregion #region 解除风控 public string UnRisk(string Id) { string[] idlist = Id.Split(new char[] { ',' }); AddSysLog(Id, "Users", "UnRisk"); foreach (string subid in idlist) { int id = int.Parse(subid); Dictionary Fields = new Dictionary(); Fields.Add("RiskFlag", 0); new AdminContentOther(_accessor.HttpContext, PublicFunction.MainTables).Edit("Users", Fields, id); } db.SaveChanges(); return "success"; } #endregion #region 重置密码 public string ResetPwd(int Id) { string NewPwd = function.get_Random(6); Dictionary Fields = new Dictionary(); Fields.Add("LoginPwd", function.MD532(NewPwd)); new AdminContentOther(_accessor.HttpContext, PublicFunction.MainTables).Edit("Users", Fields, Id); AddSysLog(Id, "Users", "ResetPwd"); RedisDbconn.Instance.Clear("Users:" + Id); return "success|" + NewPwd; } #endregion #region 排序 /// /// 排序 /// /// public string Sort(int Id, int Sort) { new AdminContentOther(_accessor.HttpContext, PublicFunction.MainTables).Sort("Users", Sort, Id); AddSysLog(Id.ToString(), "Users", "sort"); return "success"; } #endregion #region 导入数据 /// /// 导入数据 /// /// public string Import(string ExcelData, int Kind = 0) { ExcelData = HttpUtility.UrlDecode(ExcelData); JsonData list = JsonMapper.ToObject(ExcelData); if (Kind == 1) { for (int i = 1; i < list.Count; i++) { JsonData dr = list[i]; string MakerCode = dr[0].ToString(); string SettleAmount = dr[2].ToString(); UserForMakerCode UserCode = db.UserForMakerCode.FirstOrDefault(m => m.MakerCode == MakerCode); if (UserCode != null) { Users User = db.Users.FirstOrDefault(m => m.Id == UserCode.UserId); if (User != null) { User.SettleAmount = decimal.Parse(function.CheckInt(SettleAmount)); } } } db.SaveChanges(); } else if (Kind == 2) { for (int i = 1; i < list.Count; i++) { JsonData dr = list[i]; string MakerCode = dr[0].ToString(); string CashFreezeAmt = dr[2].ToString(); UserForMakerCode UserCode = db.UserForMakerCode.FirstOrDefault(m => m.MakerCode == MakerCode); if (UserCode != null) { Users User = db.Users.FirstOrDefault(m => m.Id == UserCode.UserId); if (User != null) { User.CashFreezeAmt = decimal.Parse(function.CheckInt(CashFreezeAmt)); } } } db.SaveChanges(); } else if (Kind == 3) { for (int i = 1; i < list.Count; i++) { JsonData dr = list[i]; string MakerCode = dr[0].ToString(); string RiskFlag = dr[2].ToString(); string RiskNote = dr[3].ToString(); UserForMakerCode UserCode = db.UserForMakerCode.FirstOrDefault(m => m.MakerCode == MakerCode); if (UserCode != null) { Users User = db.Users.FirstOrDefault(m => m.Id == UserCode.UserId); if (User != null) { User.RiskFlag = ulong.Parse(function.CheckInt(RiskFlag)); User.RiskRemark = RiskNote; } } } db.SaveChanges(); } AddSysLog("0", "Users", "Import"); return "success"; } #endregion #region 导出Excel /// /// 导出Excel /// /// public JsonResult ExportExcel(Users data, string CreateDate, string ParentMakerCode, string ParentRealName, string AuthFlagSelect, int TopUserId, string RiskFlagSelect, string MerchantTypeSelect, int SelfId = 0, int ParentId = 0) { Dictionary Fields = new Dictionary(); Fields.Add("MakerCode", "1"); //创客编号 Fields.Add("RealName", "1"); //创客名称 Fields.Add("Mobile", "1"); //手机号 Fields.Add("CertId", "1"); //身份证号码 Fields.Add("CreateDate", "3"); //注册时间 Fields.Add("SettleAmount", "3"); //结算金额 Fields.Add("CashFreezeAmt", "3"); //冻结金额 Fields.Add("UserLevel", "0"); //创客等级 string condition = " and Status>-1"; //直属创客编号 if (!string.IsNullOrEmpty(ParentMakerCode)) { condition += " and Id in (select UserId from UserForMakerCode where MakerCode='" + ParentMakerCode + "')"; } //直属创客名称 if (!string.IsNullOrEmpty(ParentRealName)) { condition += " and Id in (select UserId from UserForRealName where RealName='" + ParentRealName + "')"; } //实名状态 if(!string.IsNullOrEmpty(AuthFlagSelect)) { condition += " and AuthFlag=" + AuthFlagSelect; } //顶级创客 if(TopUserId > 0) { condition += " and ParentNav like '," + TopUserId + ",%'"; } //风控标识 if(!string.IsNullOrEmpty(RiskFlagSelect)) { condition += " and RiskFlag=" + RiskFlagSelect; } //商户创客类型 if(!string.IsNullOrEmpty(MerchantTypeSelect)) { condition += " and MerchantType=" + MerchantTypeSelect; } if (SelfId > 0) { Users self = db.Users.FirstOrDefault(m => m.Id == SelfId); if (self != null) { string ParentNav = function.CheckNull(self.ParentNav); condition += " and Id in (" + ParentNav.Trim(',').Replace(",,", ",") + ")"; } } if (ParentId > 0) { condition += " and ParentUserId=" + ParentId; } Dictionary obj = new AdminContentOther(_accessor.HttpContext, PublicFunction.MainTables).IndexData("Users", Fields, "Id desc", "True", 1, 20000, condition, "ParentUserId,ParentNav,UserLevel,SettleAmount,CashFreezeAmt,CertId,Mobile,MerchantType,MerchantDate,AuthFlag,RiskFlag,CreateDate", false); List> diclist = obj["data"] as List>; foreach (Dictionary dic in diclist) { dic["AuthFlag"] = dic["AuthFlag"].ToString() == "1" ? "已实名" : "未实名"; dic["RiskFlag"] = dic["RiskFlag"].ToString() == "1" ? "已风控" : "未风控"; dic["UserLevel"] = RelationClass.GetUserLevelSetInfo(int.Parse(dic["UserLevel"].ToString())); dic["MerchantType"] = RelationClassForConst.GetMerchantTypeInfo(int.Parse(dic["MerchantType"].ToString())); int ParentUserId = int.Parse(dic["ParentUserId"].ToString()); Users puser = db.Users.FirstOrDefault(m => m.Id == ParentUserId) ?? new Users(); dic["ParentMakerCode"] = puser.MakerCode; dic["ParentRealName"] = puser.RealName; string ParentNav = dic["ParentNav"].ToString(); if (!string.IsNullOrEmpty(ParentNav)) { string[] list = ParentNav.Trim(',').Replace(",,", ",").Split(','); if (list.Length > 1) { int TopId = int.Parse(function.CheckInt(list[1])); Users tuser = db.Users.FirstOrDefault(m => m.Id == TopId) ?? new Users(); dic["TopMakerCode"] = tuser.MakerCode; dic["TopRealName"] = tuser.RealName; } } dic.Remove("ParentUserId"); dic.Remove("ParentNav"); } 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(); ReturnFields.Add("MakerCode", "创客编号"); ReturnFields.Add("RealName", "创客姓名"); ReturnFields.Add("UserLevel", "创客等级"); ReturnFields.Add("SettleAmount", "提现金额(元)"); ReturnFields.Add("CashFreezeAmt", "冻结金额(元)"); ReturnFields.Add("CertId", "身份证号"); ReturnFields.Add("Mobile", "联系手机"); ReturnFields.Add("MerchantType", "商户创客类型"); ReturnFields.Add("MerchantDate", "成为商户创客时间"); ReturnFields.Add("ParentMakerCode", "直属创客编号"); ReturnFields.Add("ParentRealName", "直属创客名称"); ReturnFields.Add("TopMakerCode", "顶级创客编号"); ReturnFields.Add("TopRealName", "顶级创客名称"); ReturnFields.Add("AuthFlag", "实名状态"); ReturnFields.Add("RiskFlag", "风控状态"); ReturnFields.Add("CreateDate", "注册时间"); result.Add("Fields", ReturnFields); AddSysLog("0", "Users", "ExportExcel"); return Json(result); } #endregion #region 同步数据 /// /// 同步数据 /// /// public string SycnData(int Id = 0) { var Brands = db.KqProducts.Where(m => m.Status == 1).ToList(); foreach (var Brand in Brands) { string IdBrand = Id + "_" + Brand.Id; UserMachineData machineData = db.UserMachineData.FirstOrDefault(m => m.IdBrand == IdBrand); if (machineData == null) { machineData = db.UserMachineData.Add(new UserMachineData() { IdBrand = IdBrand }).Entity; db.SaveChanges(); } machineData.BindCount = db.PosMachinesTwo.Count(m => m.BuyUserId == Id && m.BrandId == Brand.Id && m.BindingState == 1); machineData.UnBindCount = db.PosMachinesTwo.Count(m => m.BuyUserId == Id && m.BrandId == Brand.Id && m.BindingState == 0); machineData.TotalMachineCount = machineData.BindCount + machineData.UnBindCount; db.SaveChanges(); // RedisDbconn.Instance.Set("UserMachineData:" + IdBrand, machineData); // RedisDbconn.Instance.SetExpire("UserMachineData:" + IdBrand, function.get_Random(1800, 5400)); } AddSysLog(Id, "Users", "SycnData"); db.SaveChanges(); return "success"; } #endregion #region 同步交易额 public IActionResult SycnTradeAmount(string right, int Id = 0) { ViewBag.RightInfo = RightInfo; ViewBag.right = right; Users editData = db.Users.FirstOrDefault(m => m.Id == Id) ?? new Users(); ViewBag.data = editData; return View(); } #endregion #region 同步交易额 [HttpPost] public string SycnTradeAmountDo(DateTime sdate, DateTime edate, int UserId, int BrandId) { if (sdate.AddMonths(1) < edate) { return "时间间隔不能超过1个月"; } if (edate >= DateTime.Parse(DateTime.Now.ToString("yyyy-MM-dd") + " 00:00:00")) { return "结束时间只能是今天之前"; } string check = RedisDbconn.Instance.Get("ResetUserTradeQueue:" + UserId + ":" + BrandId); if (!string.IsNullOrEmpty(check)) { return "请稍后再试"; } try { RedisDbconn.Instance.AddList("ResetUserTradeQueue", UserId + "#cut#" + sdate.ToString("yyyy-MM-dd HH:mm:ss") + "#cut#" + edate.ToString("yyyy-MM-dd HH:mm:ss") + "#cut#" + BrandId); RedisDbconn.Instance.Set("ResetUserTradeQueue:" + UserId + ":" + BrandId, "wait"); RedisDbconn.Instance.SetExpire("ResetUserTradeQueue:" + UserId + ":" + BrandId, 3600); } catch (Exception ex) { function.WriteLog(DateTime.Now.ToString() + "\n" + ex.ToString(), "统计创客的交易额异常"); return "同步异常"; } return "success"; } #endregion #region 创客展业城市 public IActionResult City(Users data, string right) { ViewBag.RightInfo = RightInfo; ViewBag.right = right; List TopUsers = db.Users.Where(m => m.ParentUserId == 0).ToList(); ViewBag.TopUsers = TopUsers; return View(); } #endregion #region 根据条件查询创客展业城市 public JsonResult CityData(Users data, string ParentMakerCode, string ParentRealName, int TopUserId, string Areas, int page = 1, int limit = 30) { Dictionary Fields = new Dictionary(); Fields.Add("MakerCode", "1"); //创客编号 Fields.Add("RealName", "1"); //创客名称 Fields.Add("CitySetDate", "3"); //创建时间 Fields.Add("Areas", "2"); //省市 string condition = " and Status>-1"; //直属创客编号 if (!string.IsNullOrEmpty(ParentMakerCode)) { condition += " and Id in (select UserId from UserForMakerCode where MakerCode='" + ParentMakerCode + "')"; } //直属创客名称 if (!string.IsNullOrEmpty(ParentRealName)) { condition += " and Id in (select UserId from UserForRealName where RealName='" + ParentRealName + "')"; } //顶级创客 if(TopUserId > 0) { condition += " and ParentNav like '," + TopUserId + ",%'"; } Dictionary obj = new AdminContentOther(_accessor.HttpContext, PublicFunction.MainTables).IndexData("Users", Fields, "Id desc", "True", page, limit, condition); List> diclist = obj["data"] as List>; foreach (Dictionary dic in diclist) { int ParentUserId = int.Parse(dic["ParentUserId"].ToString()); Users puser = db.Users.FirstOrDefault(m => m.Id == ParentUserId) ?? new Users(); dic["ParentMakerCode"] = puser.MakerCode; dic["ParentRealName"] = puser.RealName; string ParentNav = dic["ParentNav"].ToString(); if (!string.IsNullOrEmpty(ParentNav)) { int TopId = int.Parse(ParentNav.Trim(',').Replace(",,", ",").Split(',')[0]); Users tuser = db.Users.FirstOrDefault(m => m.Id == TopId) ?? new Users(); dic["TopMakerCode"] = tuser.MakerCode; dic["TopRealName"] = tuser.RealName; } } return Json(obj); } #endregion #region 导出展业城市 public JsonResult ExportCity(Users data, string CreateDate, string ParentMakerCode, string ParentRealName, string AuthFlagSelect, int TopUserId, string RiskFlagSelect, string MerchantTypeSelect) { Dictionary Fields = new Dictionary(); Fields.Add("MakerCode", "1"); //创客编号 Fields.Add("RealName", "1"); //创客名称 Fields.Add("Mobile", "1"); //手机号 Fields.Add("CertId", "1"); //身份证号码 Fields.Add("CreateDate", "3"); //注册时间 Fields.Add("SettleAmount", "3"); //结算金额 Fields.Add("CashFreezeAmt", "3"); //冻结金额 Fields.Add("UserLevel", "0"); //创客等级 string condition = " and Status>-1"; //直属创客编号 if (!string.IsNullOrEmpty(ParentMakerCode)) { condition += " and Id in (select UserId from UserForMakerCode where MakerCode='" + ParentMakerCode + "')"; } //直属创客名称 if (!string.IsNullOrEmpty(ParentRealName)) { condition += " and Id in (select UserId from UserForRealName where RealName='" + ParentRealName + "')"; } //实名状态 if(!string.IsNullOrEmpty(AuthFlagSelect)) { condition += " and AuthFlag=" + AuthFlagSelect; } //顶级创客 if(TopUserId > 0) { condition += " and ParentNav like '," + TopUserId + ",%'"; } //风控标识 if(!string.IsNullOrEmpty(RiskFlagSelect)) { condition += " and RiskFlag=" + RiskFlagSelect; } //商户创客类型 if(!string.IsNullOrEmpty(MerchantTypeSelect)) { condition += " and MerchantType=" + MerchantTypeSelect; } Dictionary obj = new AdminContentOther(_accessor.HttpContext, PublicFunction.MainTables).IndexData("Users", Fields, "Id desc", "True", 1, 20000, condition, "ParentUserId,ParentNav,UserLevel,SettleAmount,CashFreezeAmt,CertId,Mobile,MerchantType,MerchantDate,AuthFlag,RiskFlag,CreateDate", false); List> diclist = obj["data"] as List>; foreach (Dictionary dic in diclist) { dic["AuthFlag"] = dic["AuthFlag"].ToString() == "1" ? "已实名" : "未实名"; dic["RiskFlag"] = dic["RiskFlag"].ToString() == "1" ? "已风控" : "未风控"; dic["UserLevel"] = RelationClass.GetUserLevelSetInfo(int.Parse(dic["UserLevel"].ToString())); dic["MerchantType"] = RelationClassForConst.GetMerchantTypeInfo(int.Parse(dic["MerchantType"].ToString())); int ParentUserId = int.Parse(dic["ParentUserId"].ToString()); Users puser = db.Users.FirstOrDefault(m => m.Id == ParentUserId) ?? new Users(); dic["ParentMakerCode"] = puser.MakerCode; dic["ParentRealName"] = puser.RealName; string ParentNav = dic["ParentNav"].ToString(); if (!string.IsNullOrEmpty(ParentNav)) { int TopId = int.Parse(ParentNav.Trim(',').Replace(",,", ",").Split(',')[0]); Users tuser = db.Users.FirstOrDefault(m => m.Id == TopId) ?? new Users(); dic["TopMakerCode"] = tuser.MakerCode; dic["TopRealName"] = tuser.RealName; } dic.Remove("ParentUserId"); dic.Remove("ParentNav"); } 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(); ReturnFields.Add("MakerCode", "创客编号"); ReturnFields.Add("RealName", "创客姓名"); ReturnFields.Add("UserLevel", "创客等级"); ReturnFields.Add("SettleAmount", "提现金额(元)"); ReturnFields.Add("CashFreezeAmt", "冻结金额(元)"); ReturnFields.Add("CertId", "身份证号"); ReturnFields.Add("Mobile", "联系手机"); ReturnFields.Add("MerchantType", "商户创客类型"); ReturnFields.Add("MerchantDate", "成为商户创客时间"); ReturnFields.Add("ParentMakerCode", "直属创客编号"); ReturnFields.Add("ParentRealName", "直属创客名称"); ReturnFields.Add("TopMakerCode", "顶级创客编号"); ReturnFields.Add("TopRealName", "顶级创客名称"); ReturnFields.Add("AuthFlag", "实名状态"); ReturnFields.Add("RiskFlag", "风控状态"); ReturnFields.Add("CreateDate", "注册时间"); result.Add("Fields", ReturnFields); AddSysLog("0", "Users", "ExportExcel"); return Json(result); } #endregion } }