/* * 创客 */ 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, string CreateDateData, int TopUserId, string RiskFlagSelect, string MerchantTypeSelect, int? sSettleAmount, int? eSettleAmount, int? sCashFreezeAmt, int? eCashFreezeAmt, int UserId, int SelfId = 0, int ParentId = 0, int ShowFlag = 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("SettleAmount", "3"); //结算金额 Fields.Add("CashFreezeAmt", "3"); //冻结金额 Fields.Add("UserLevel", "0"); //创客等级 if (SelfId == 0 && ParentId == 0) { if (ShowFlag == 0) { Dictionary objs = new Dictionary(); return Json(objs); } } string condition = " and Status>-1"; string sort = "Id desc"; //直属创客编号 if (!string.IsNullOrEmpty(ParentMakerCode)) { condition += " and ParentUserId in (select UserId from UserForMakerCode where MakerCode='" + ParentMakerCode + "')"; } //直属创客名称 if (!string.IsNullOrEmpty(ParentRealName)) { condition += " and ParentUserId 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 (sSettleAmount != null) { condition += " and SettleAmount>=" + sSettleAmount.Value; } if (eSettleAmount != null) { condition += " and SettleAmount<=" + eSettleAmount.Value; } if (sCashFreezeAmt != null) { condition += " and CashFreezeAmt>=" + sCashFreezeAmt.Value; } if (eCashFreezeAmt != null) { condition += " and CashFreezeAmt<=" + eCashFreezeAmt.Value; } 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; } if (UserId > 0) { condition += " and Id=" + UserId; } if (!string.IsNullOrEmpty(CreateDateData)) { string[] datelist = CreateDateData.Split(new string[] { " - " }, StringSplitOptions.None); string start = datelist[0]; string end = datelist[1]; condition += " and CreateDate>='" + start + " 00:00:00' and CreateDate<='" + end + " 23:59:59'"; } 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 && data.CashFreezeAmt <= account.BalanceAmount) { account.BalanceAmount -= data.CashFreezeAmt; account.FreezeAmount += data.CashFreezeAmt; ChangeType = 61; } else if (Kind == 1 && data.CashFreezeAmt > account.BalanceAmount) { return "冻结金额大于余额"; } else if (Kind == 2 && data.CashFreezeAmt <= account.FreezeAmount) { account.BalanceAmount += data.CashFreezeAmt; account.FreezeAmount -= data.CashFreezeAmt; ChangeType = 62; } else if (Kind == 2 && data.CashFreezeAmt > account.FreezeAmount) { return "解冻金额大于冻结金额"; } else if (Kind == 3 && data.CashFreezeAmt <= account.BalanceAmount) { account.TotalAmount -= data.CashFreezeAmt; account.BalanceAmount -= data.CashFreezeAmt; ChangeType = 63; } else if (Kind == 3 && data.CashFreezeAmt > account.BalanceAmount) { return "扣减金额大于余额"; } 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 注销 // 1、未实名创客; // 2、已实名创客,无开通商户; // 3、近7天未在商城下单过商品; // 4、名下无未绑定机具、机具券,无未申请的循环机; public string Cancel(string UserId) { Users user = db.Users.FirstOrDefault(m => m.Id == Convert.ToInt32(UserId)); if (user != null) { if (user.AuthFlag == 1) { bool check = db.PosMachinesTwo.Any(m => m.BuyUserId == user.Id && m.BindingState == 1); if (check) { // return Json(new AppResultJson() { Status = "-1", Info = "注销失败,未满足条件:已实名创客,无开通商户。如有疑问,请联系客服" }); return "注销失败,未满足条件:已实名创客,无开通商户。如有疑问,请联系客服"; } DateTime checkDate = DateTime.Now.AddDays(-7); check = db.Orders.Any(m => m.CreateDate >= checkDate && m.Status > 0 && m.UserId == user.Id); if (check) { // return Json(new AppResultJson() { Status = "-1", Info = "注销失败,未满足条件:近7天未在商城下单过商品。如有疑问,请联系客服" }); return "注销失败,未满足条件:近7天未在商城下单过商品。如有疑问,请联系客服"; } check = db.PosMachinesTwo.Any(m => m.BuyUserId == user.Id && m.IsPurchase == 0); if (check) { // return Json(new AppResultJson() { Status = "-1", Info = "注销失败,未满足条件:名下无未绑定机具、机具券,无未申请的循环机。如有疑问,请联系客服" }); return "注销失败,未满足条件:名下无未绑定机具、机具券,无未申请的循环机。如有疑问,请联系客服"; } check = db.PosCoupons.Any(m => m.UserId == user.Id && m.IsUse == 0); if (check) { // return Json(new AppResultJson() { Status = "-1", Info = "注销失败,未满足条件:名下无未绑定机具、机具券,无未申请的循环机。如有疑问,请联系客服" }); return "注销失败,未满足条件:名下无未绑定机具、机具券,无未申请的循环机。如有疑问,请联系客服"; } } UserForMobile forMobile = db.UserForMobile.FirstOrDefault(m => m.Mobile == user.Mobile); if (forMobile != null) { db.UserForMobile.Remove(forMobile); } UserForMakerCode forCode = db.UserForMakerCode.FirstOrDefault(m => m.MakerCode == user.MakerCode); if (forCode != null) { db.UserForMakerCode.Remove(forCode); } user.Status = -1; user.Mobile += "d"; user.CertId += "d"; function.WriteLog(user.Id + "于" + DateTime.Now.ToString() + "注销账号", "创客注销日志"); // TODO: 每月扫描一次注销的创客,把注销创客伞下创客全部挂到注销创客的上级 // TODO: 清除token,token登录返回 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 string OpenEnterpriseMaker(string Id) { string[] idlist = Id.Split(new char[] { ',' }); AddSysLog(Id, "Users", "OpenEnterpriseMaker"); foreach (string subid in idlist) { int id = int.Parse(subid); Dictionary Fields = new Dictionary(); Fields.Add("BusinessFlag", 1); new AdminContentOther(_accessor.HttpContext, PublicFunction.MainTables).Edit("Users", Fields, id); } db.SaveChanges(); return "success"; } #endregion #region 关闭企业创客 /// /// 关闭企业创客 /// /// public string CloseEnterpriseMaker(string Id) { string[] idlist = Id.Split(new char[] { ',' }); AddSysLog(Id, "Users", "CloseEnterpriseMaker"); foreach (string subid in idlist) { int id = int.Parse(subid); Dictionary Fields = new Dictionary(); Fields.Add("BusinessFlag", 0); new AdminContentOther(_accessor.HttpContext, PublicFunction.MainTables).Edit("Users", Fields, id); } db.SaveChanges(); return "success"; } #endregion #region 一键大盟主 /// /// 一键大盟主 /// /// public string SetBigLeader(string Id) { string[] idlist = Id.Split(new char[] { ',' }); AddSysLog(Id, "Users", "SetBigLeader"); foreach (string subid in idlist) { int id = int.Parse(subid); Dictionary Fields = new Dictionary(); Fields.Add("LeaderLevel", 2); new AdminContentOther(_accessor.HttpContext, PublicFunction.MainTables).Edit("Users", Fields, id); } db.SaveChanges(); return "success"; } #endregion #region 一键小盟主 /// /// 一键小盟主 /// /// public string SetSmallLeader(string Id) { string[] idlist = Id.Split(new char[] { ',' }); AddSysLog(Id, "Users", "SetSmallLeader"); foreach (string subid in idlist) { int id = int.Parse(subid); Dictionary Fields = new Dictionary(); Fields.Add("LeaderLevel", 1); 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"); 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(); } else if (Kind == 4) { string error = ""; for (int i = 1; i < list.Count; i++) { JsonData dr = list[i]; string MakerCode = dr[0].ToString(); string OperationAmt = dr[2].ToString();//操作金额 string OperationType = 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); UserAccount account = db.UserAccount.FirstOrDefault(m => m.Id == User.Id); if (account == null) { account = db.UserAccount.Add(new UserAccount() { Id = User.Id, UserId = User.Id, }).Entity; db.SaveChanges(); } if (User != null) { decimal BeforeTotalAmount = account.TotalAmount; //变更前总金额 decimal BeforeFreezeAmount = account.FreezeAmount; //变更前冻结金额 decimal BeforeBalanceAmount = account.BalanceAmount; //变更前余额 int ChangeType = 0; if (OperationType == "1" && Convert.ToDecimal(OperationAmt) <= account.BalanceAmount) { account.BalanceAmount -= Convert.ToDecimal(OperationAmt); account.FreezeAmount += Convert.ToDecimal(OperationAmt); ChangeType = 61; } else if (OperationType == "1" && Convert.ToDecimal(OperationAmt) > account.BalanceAmount) { error += "以下操作失败" + User.MakerCode + ',' + User.RealName + "冻结金额大于余额" + '|' + '\n'; } else if (OperationType == "2" && Convert.ToDecimal(OperationAmt) <= account.FreezeAmount) { account.BalanceAmount += Convert.ToDecimal(OperationAmt); account.FreezeAmount -= Convert.ToDecimal(OperationAmt); ChangeType = 62; } else if (OperationType == "2" && Convert.ToDecimal(OperationAmt) > account.FreezeAmount) { error += "以下操作失败" + User.MakerCode + ',' + User.RealName + "解冻金额大于冻结金额" + '|' + '\n'; } else if (OperationType == "3" && Convert.ToDecimal(OperationAmt) <= account.BalanceAmount) { account.TotalAmount -= Convert.ToDecimal(OperationAmt); account.BalanceAmount -= Convert.ToDecimal(OperationAmt); ChangeType = 63; } else if (OperationType == "3" && Convert.ToDecimal(OperationAmt) > account.BalanceAmount) { error += "以下操作失败" + User.MakerCode + ',' + User.RealName + "扣减金额大于余额" + '|' + '\n'; } else if (OperationType == "4") { account.TotalAmount += Convert.ToDecimal(OperationAmt); account.BalanceAmount += Convert.ToDecimal(OperationAmt); 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 = User.Id, //创客 ChangeType = ChangeType, //变动类型 ChangeAmount = Convert.ToDecimal(OperationAmt), //变更金额 BeforeTotalAmount = BeforeTotalAmount, //变更前总金额 AfterTotalAmount = AfterTotalAmount, //变更后总金额 BeforeFreezeAmount = BeforeFreezeAmount, //变更前冻结金额 AfterFreezeAmount = AfterFreezeAmount, //变更后冻结金额 BeforeBalanceAmount = BeforeBalanceAmount, //变更前余额 AfterBalanceAmount = AfterBalanceAmount, //变更后余额 Remark = dr[4].ToString(), }).Entity; db.SaveChanges(); AddSysLog(User.Id.ToString(), "Users", "ChangeCashFreezeAmts"); db.SaveChanges(); } } } db.SaveChanges(); return "warning" + error; } 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, "MakerCode,RealName,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 直属创客导出Excel /// /// 直属创客导出Excel /// /// public JsonResult ExportZSExcel(Users data, string MakerCode, string ParentMakerCode) { Dictionary Fields = new Dictionary(); string condition = " and Status>-1"; //创客编号 if (!string.IsNullOrEmpty(MakerCode)) { condition += " and ParentUserId in (select UserId from UserForMakerCode where MakerCode='" + MakerCode + "')"; } //直属创客编号 if (!string.IsNullOrEmpty(ParentMakerCode)) { condition += " and ParentUserId in (select UserId from UserForMakerCode where MakerCode='" + ParentMakerCode + "')"; } Dictionary obj = new AdminContentOther(_accessor.HttpContext, PublicFunction.MainTables).IndexData("Users", Fields, "Id desc", "True", 1, 20000, condition, "Id,MakerCode,RealName,UserLevel", false); List> diclist = obj["data"] as List>; foreach (Dictionary dic in diclist) { int Id = int.Parse(dic["Id"].ToString()); Users userZS = db.Users.FirstOrDefault(m => m.Id == Id) ?? new Users(); dic["MakerCode"] = userZS.MakerCode; dic["RealName"] = userZS.RealName; dic["UserLevel"] = RelationClass.GetUserLevelSetInfo(int.Parse(dic["UserLevel"].ToString())); } 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("Id", "Id"); ReturnFields.Add("MakerCode", "创客编号"); ReturnFields.Add("RealName", "创客姓名"); ReturnFields.Add("UserLevel", "创客等级"); result.Add("Fields", ReturnFields); AddSysLog("0", "Users", "ExportZSExcel"); return Json(result); } #endregion #region 上级创客导出Excel /// /// 上级创客导出Excel /// /// public JsonResult ExportSJExcel(Users data, string MakerCode, string ParentMakerCode) { Dictionary Fields = new Dictionary(); string condition = " and Status>-1"; //创客编号 if (!string.IsNullOrEmpty(MakerCode)) { var query = db.UserForMakerCode.FirstOrDefault(m => m.MakerCode == MakerCode); Users self = db.Users.FirstOrDefault(m => m.Id == query.UserId); if (self != null) { string ParentNav = function.CheckNull(self.ParentNav); condition += " and Id in (" + ParentNav.Trim(',').Replace(",,", ",") + ")"; } } //直属创客编号 if (!string.IsNullOrEmpty(ParentMakerCode)) { var query = db.UserForMakerCode.FirstOrDefault(m => m.MakerCode == ParentMakerCode); Users self = db.Users.FirstOrDefault(m => m.Id == query.UserId); if (self != null) { string ParentNav = function.CheckNull(self.ParentNav); condition += " and Id in (" + ParentNav.Trim(',').Replace(",,", ",") + ")"; } } Dictionary obj = new AdminContentOther(_accessor.HttpContext, PublicFunction.MainTables).IndexData("Users", Fields, "Id desc", "True", 1, 20000, condition, "Id,MakerCode,RealName,UserLevel", false); List> diclist = obj["data"] as List>; foreach (Dictionary dic in diclist) { int Id = int.Parse(dic["Id"].ToString()); Users userSJ = db.Users.FirstOrDefault(m => m.Id == Id) ?? new Users(); dic["MakerCode"] = userSJ.MakerCode; dic["RealName"] = userSJ.RealName; dic["UserLevel"] = RelationClass.GetUserLevelSetInfo(int.Parse(dic["UserLevel"].ToString())); } 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("Id", "Id"); ReturnFields.Add("MakerCode", "创客编号"); ReturnFields.Add("RealName", "创客姓名"); ReturnFields.Add("UserLevel", "创客等级"); 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) { PublicFunction.SycnMachineCount(Id, Brand.Id); } 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 #region 根据条件查询直属创客交易额列表 /// /// 直属创客交易额列表 /// /// public IActionResult Children(Users data, string right, int ParentId = 0, string MakerCode = "") { ViewBag.RightInfo = RightInfo; ViewBag.right = right; 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; List Brands = db.KqProducts.OrderBy(m => m.Id).ToList(); ViewBag.Brands = Brands; return View(); } #endregion #region 根据条件查询直属创客交易额列表 /// /// 直属创客交易额列表 /// /// public JsonResult ChildrenData(Users data, int BrandSelect, string MakerCode, string CreateDateData, int ParentId = 0, int page = 1, int limit = 30) { Dictionary Fields = new Dictionary(); WebCMSEntities db = new WebCMSEntities(); Fields.Add("MakerCode", "1"); //创客编号 int BrandId = BrandSelect; string start = ""; string end = ""; string condition = " and Status>-1 and AuthFlag >0"; string con = " and Status>-1"; string cons = " and Status>=-1"; string sort = "Id desc"; //创客编号 if (!string.IsNullOrEmpty(MakerCode)) { condition += " and Id in (select UserId from UserForMakerCode where MakerCode='" + MakerCode + "')"; } if (ParentId > 0) { condition += " and ParentUserId=" + ParentId + " or Id=" + ParentId; } //时间不为空 if (!string.IsNullOrEmpty(CreateDateData)) { string[] datelist = CreateDateData.Split(new string[] { " - " }, StringSplitOptions.None); start = datelist[0].Replace("-", ""); end = datelist[1].Replace("-", ""); con += " and TradeDate>='" + start + "' and TradeDate<='" + end + "'"; cons += " and SeoKeyword >=" + start + " and SeoKeyword <=" + end; } //时间为空 else { start = DateTime.Now.ToString("yyyyMM") + "01"; end = DateTime.Now.AddMonths(1).ToString("yyyyMM") + "01"; con += " and TradeDate>='" + start + "' and TradeDate<'" + end + "'"; cons += " and SeoKeyword >=" + start + " and SeoKeyword <" + end; } if (!string.IsNullOrEmpty(BrandSelect.ToString()) && BrandId > 0) { con += " and BrandId='" + BrandId + "'"; cons += " and BrandId='" + BrandId + "'"; } 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) { int UId = int.Parse(dic["Id"].ToString()); var Info = GetMonthTradeForBrand(UId, start, end, BrandId); dic["TotalAmtfc"] = Convert.ToDecimal(Info["TotalAmtfc"].ToString()) + Convert.ToDecimal(Info["YAmtfc"].ToString()); dic["DAmtfc"] = Convert.ToDecimal(Info["DAmtfc"].ToString()); dic["JAmtfc"] = Convert.ToDecimal(Info["JAmtfc"].ToString()); dic["JfAmtfc"] = Convert.ToDecimal(Info["JfAmtfc"].ToString()); dic["JCountfc"] = Convert.ToInt32(Info["JCountfc"].ToString()); dic["YAmtfc"] = Convert.ToDecimal(Info["YAmtfc"].ToString()); dic["TotalAmtwd"] = Convert.ToDecimal(Info["TotalAmtwd"].ToString()) + Convert.ToDecimal(Info["YAmtwd"].ToString()); dic["DAmtwd"] = Convert.ToDecimal(Info["DAmtwd"].ToString()); dic["JAmtwd"] = Convert.ToDecimal(Info["JAmtwd"].ToString()); dic["JfAmtwd"] = Convert.ToDecimal(Info["JfAmtwd"].ToString()); dic["JCountwd"] = Convert.ToInt32(Info["JCountwd"].ToString()); dic["YAmtwd"] = Convert.ToDecimal(Info["YAmtwd"].ToString()); dic["TotalAmtyl"] = Convert.ToDecimal(Info["TotalAmtyl"].ToString()) + Convert.ToDecimal(Info["YAmtyl"].ToString()); dic["DAmtyl"] = Convert.ToDecimal(Info["DAmtyl"].ToString()); dic["JAmtyl"] = Convert.ToDecimal(Info["JAmtyl"].ToString()); dic["JfAmtyl"] = Convert.ToDecimal(Info["JfAmtyl"].ToString()); dic["JCountyl"] = Convert.ToInt32(Info["JCountyl"].ToString()); dic["YAmtyl"] = Convert.ToDecimal(Info["YAmtyl"].ToString()); dic["TBCount"] = Info["TBCount"].ToString(); dic["TACount"] = Info["TACount"].ToString(); // dic["BCount"] = Info["BCount"].ToString(); // dic["ACount"] = Info["ACount"].ToString(); } //个人 //扶持期 decimal TotalAmtfc = 0; decimal DAmtfc = 0; decimal JAmtfc = 0; decimal JfAmtfc = 0; int JCountfc = 0; decimal YAmtfc = 0; //稳定期 decimal TotalAmtwd = 0; decimal DAmtwd = 0; decimal JAmtwd = 0; decimal JfAmtwd = 0; int JCountwd = 0; decimal YAmtwd = 0; //盈利期 decimal TotalAmtyl = 0; decimal DAmtyl = 0; decimal JAmtyl = 0; decimal JfAmtyl = 0; int JCountyl = 0; decimal YAmtyl = 0; //团队 //扶持期 decimal TotalAmtfc1 = 0; decimal DAmtfc1 = 0; decimal JAmtfc1 = 0; decimal JfAmtfc1 = 0; int JCountfc1 = 0; decimal YAmtfc1 = 0; //稳定期 decimal TotalAmtwd1 = 0; decimal DAmtwd1 = 0; decimal JAmtwd1 = 0; decimal JfAmtwd1 = 0; int JCountwd1 = 0; decimal YAmtwd1 = 0; //盈利期 decimal TotalAmtyl1 = 0; decimal DAmtyl1 = 0; decimal JAmtyl1 = 0; decimal JfAmtyl1 = 0; int JCountyl1 = 0; decimal YAmtyl1 = 0; int PBCount = 0; int PACount = 0; int TBCount = 0; int TACount = 0; Dictionary other = new Dictionary(); DataTable dt = OtherMySqlConn.dtable("SELECT Sum(HelpDirectTradeAmt + HelpDirectDebitTradeAmt),Sum(if (QueryCount = 0,HelpDirectTradeAmt,0)),Sum(if (QueryCount = 0,HelpDirectDebitTradeAmt - HelpDirectDebitCapTradeAmt,0)),Sum(if (QueryCount = 0,HelpDirectDebitCapTradeAmt,0)),Sum(if (QueryCount = 0,HelpDirectDebitCapNum,0)),Sum(if (QueryCount = 1,HelpDirectTradeAmt,0)),Sum(NotHelpDirectTradeAmt + NotHelpDirectDebitTradeAmt),Sum(if (QueryCount = 0,NotHelpDirectTradeAmt,0)),Sum(if (QueryCount = 0,NotHelpDirectDebitTradeAmt - NotHelpDirectDebitCapTradeAmt,0)),Sum(if (QueryCount = 0,NotHelpDirectDebitCapTradeAmt,0)),Sum(if (QueryCount = 0,NotHelpDirectDebitCapNum,0)),Sum(if (QueryCount = 1,NotHelpDirectTradeAmt,0)),Sum(ProfitDirectTradeAmt + ProfitDirectDebitTradeAmt),Sum(if (QueryCount = 0,ProfitDirectTradeAmt,0)),Sum(if (QueryCount = 0,ProfitDirectDebitTradeAmt - ProfitDirectDebitCapTradeAmt,0)),Sum(if (QueryCount = 0,ProfitDirectDebitCapTradeAmt,0)),Sum(if (QueryCount = 0,ProfitDirectDebitCapNum,0)),Sum(if (QueryCount = 1,ProfitDirectTradeAmt,0))from TradeDaySummary where SeoTitle = 'self' and UserId =" + ParentId + "" + con); if (dt.Rows.Count > 0) { TotalAmtfc = Convert.ToDecimal(function.CheckNum(dt.Rows[0][0].ToString())); DAmtfc = Convert.ToDecimal(function.CheckNum(dt.Rows[0][1].ToString())); JAmtfc = Convert.ToDecimal(function.CheckNum(dt.Rows[0][2].ToString())); JfAmtfc = Convert.ToDecimal(function.CheckNum(dt.Rows[0][3].ToString())); JCountfc = Convert.ToInt32(function.CheckInt(dt.Rows[0][4].ToString())); YAmtfc = Convert.ToDecimal(function.CheckNum(dt.Rows[0][5].ToString())); TotalAmtwd = Convert.ToDecimal(function.CheckNum(dt.Rows[0][6].ToString())); DAmtwd = Convert.ToDecimal(function.CheckNum(dt.Rows[0][7].ToString())); JAmtwd = Convert.ToDecimal(function.CheckNum(dt.Rows[0][8].ToString())); JfAmtwd = Convert.ToDecimal(function.CheckNum(dt.Rows[0][9].ToString())); JCountwd = Convert.ToInt32(function.CheckInt(dt.Rows[0][10].ToString())); YAmtwd = Convert.ToDecimal(function.CheckNum(dt.Rows[0][11].ToString())); TotalAmtyl = Convert.ToDecimal(function.CheckNum(dt.Rows[0][12].ToString())); DAmtyl = Convert.ToDecimal(function.CheckNum(dt.Rows[0][13].ToString())); JAmtyl = Convert.ToDecimal(function.CheckNum(dt.Rows[0][14].ToString())); JfAmtyl = Convert.ToDecimal(function.CheckNum(dt.Rows[0][15].ToString())); JCountyl = Convert.ToInt32(function.CheckInt(dt.Rows[0][16].ToString())); YAmtyl = Convert.ToDecimal(function.CheckNum(dt.Rows[0][17].ToString())); } //统计激活数(个人、团队) dt = OtherMySqlConn.dtable("SELECT SUM(if(SeoTitle='self',ActiveBuddyMerStatus,0)),SUM(if(SeoTitle='team',ActiveBuddyMerStatus,0)) FROM UserTradeMonthSummary WHERE UserId= " + ParentId + "" + cons); if (dt.Rows.Count > 0) { PACount = Convert.ToInt32(function.CheckNum(dt.Rows[0][0].ToString())); TACount = Convert.ToInt32(function.CheckNum(dt.Rows[0][1].ToString())); } DataTable dts = OtherMySqlConn.dtable("SELECT Sum(HelpNonDirectTradeAmt + HelpNonDirectDebitTradeAmt),Sum(if (QueryCount = 0,HelpNonDirectTradeAmt,0)),Sum(if (QueryCount = 0,HelpNonDirectDebitTradeAmt - HelpNonDirectDebitCapTradeAmt,0)),Sum(if (QueryCount = 0,HelpNonDirectDebitCapTradeAmt,0)),Sum(if (QueryCount = 0,HelpNonDirectDebitCapNum,0)),Sum(if (QueryCount = 1,HelpNonDirectTradeAmt,0)),Sum(NotHelpNonDirectTradeAmt + NotHelpNonDirectDebitTradeAmt),Sum(if (QueryCount = 0,NotHelpNonDirectTradeAmt,0)),Sum(if (QueryCount = 0,NotHelpNonDirectDebitTradeAmt - NotHelpNonDirectDebitCapTradeAmt,0)),Sum(if (QueryCount = 0,NotHelpNonDirectDebitCapTradeAmt,0)),Sum(if (QueryCount = 0,NotHelpNonDirectDebitCapNum,0)),Sum(if (QueryCount = 1,NotHelpNonDirectTradeAmt,0)),Sum(ProfitNonDirectTradeAmt + ProfitNonDirectDebitTradeAmt),Sum(if (QueryCount = 0,ProfitNonDirectTradeAmt,0)),Sum(if (QueryCount = 0,ProfitNonDirectDebitTradeAmt - ProfitNonDirectDebitCapTradeAmt,0)),Sum(if (QueryCount = 0,ProfitNonDirectDebitCapTradeAmt,0)),Sum(if (QueryCount = 0,ProfitNonDirectDebitCapNum,0)),Sum(if (QueryCount = 1,ProfitNonDirectTradeAmt,0))from TradeDaySummary where SeoTitle = 'team' and UserId =" + ParentId + "" + con); if (dts.Rows.Count > 0) { TotalAmtfc1 = Convert.ToDecimal(function.CheckNum(dts.Rows[0][0].ToString())); DAmtfc1 = Convert.ToDecimal(function.CheckNum(dts.Rows[0][1].ToString())); JAmtfc1 = Convert.ToDecimal(function.CheckNum(dts.Rows[0][2].ToString())); JfAmtfc1 = Convert.ToDecimal(function.CheckNum(dts.Rows[0][3].ToString())); JCountfc1 = Convert.ToInt32(function.CheckInt(dts.Rows[0][4].ToString())); YAmtfc1 = Convert.ToDecimal(function.CheckNum(dts.Rows[0][5].ToString())); TotalAmtwd1 = Convert.ToDecimal(function.CheckNum(dts.Rows[0][6].ToString())); DAmtwd1 = Convert.ToDecimal(function.CheckNum(dts.Rows[0][7].ToString())); JAmtwd1 = Convert.ToDecimal(function.CheckNum(dts.Rows[0][8].ToString())); JfAmtwd1 = Convert.ToDecimal(function.CheckNum(dts.Rows[0][9].ToString())); JCountwd1 = Convert.ToInt32(function.CheckInt(dts.Rows[0][10].ToString())); YAmtwd1 = Convert.ToDecimal(function.CheckNum(dts.Rows[0][11].ToString())); TotalAmtyl1 = Convert.ToDecimal(function.CheckNum(dts.Rows[0][12].ToString())); DAmtyl1 = Convert.ToDecimal(function.CheckNum(dts.Rows[0][13].ToString())); JAmtyl1 = Convert.ToDecimal(function.CheckNum(dts.Rows[0][14].ToString())); JfAmtyl1 = Convert.ToDecimal(function.CheckNum(dts.Rows[0][15].ToString())); JCountyl1 = Convert.ToInt32(function.CheckInt(dts.Rows[0][16].ToString())); YAmtyl1 = Convert.ToDecimal(function.CheckNum(dts.Rows[0][17].ToString())); } other.Add("TotalAmtfc", TotalAmtfc); other.Add("DAmtfc", DAmtfc); other.Add("JAmtfc", JAmtfc); other.Add("JfAmtfc", JfAmtfc); other.Add("JCountfc", JCountfc); other.Add("YAmtfc", YAmtfc); other.Add("TotalAmtwd", TotalAmtwd); other.Add("DAmtwd", DAmtwd); other.Add("JAmtwd", JAmtwd); other.Add("JfAmtwd", JfAmtwd); other.Add("JCountwd", JCountwd); other.Add("YAmtwd", YAmtwd); other.Add("TotalAmtyl", TotalAmtyl); other.Add("DAmtyl", DAmtyl); other.Add("JAmtyl", JAmtyl); other.Add("JfAmtyl", JfAmtyl); other.Add("JCountyl", JCountyl); other.Add("YAmtyl", YAmtyl); other.Add("TotalAmtfc1", TotalAmtfc1); other.Add("DAmtfc1", DAmtfc1); other.Add("JAmtfc1", JAmtfc1); other.Add("JfAmtfc1", JfAmtfc1); other.Add("JCountfc1", JCountfc1); other.Add("YAmtfc1", YAmtfc1); other.Add("TotalAmtwd1", TotalAmtwd1); other.Add("DAmtwd1", DAmtwd1); other.Add("JAmtwd1", JAmtwd1); other.Add("JfAmtwd1", JfAmtwd1); other.Add("JCountwd1", JCountwd1); other.Add("YAmtwd1", YAmtwd1); other.Add("TotalAmtyl1", TotalAmtyl1); other.Add("DAmtyl1", DAmtyl1); other.Add("JAmtyl1", JAmtyl1); other.Add("JfAmtyl1", JfAmtyl1); other.Add("JCountyl1", JCountyl1); other.Add("YAmtyl1", YAmtyl1); other.Add("PBCount", PBCount); other.Add("PACount", PACount); other.Add("TBCount", TBCount); other.Add("TACount", TACount); db.Dispose(); obj.Add("other", other); return Json(obj); } public Dictionary GetMonthTradeForBrand(int UserId, string sTradeDate, string eTradeDate, int BrandId) { WebCMSEntities db = new WebCMSEntities(); string condition = " and Status>-1"; string cons = " and Status>=-1"; //产品类型 if (!string.IsNullOrEmpty(BrandId.ToString()) && BrandId > 0) { condition += " and BrandId =" + BrandId; cons += " and BrandId =" + BrandId; } //创客Id if (!string.IsNullOrEmpty(UserId.ToString())) { condition += " and UserId =" + UserId; } //开始时间 if (!string.IsNullOrEmpty(sTradeDate) && !string.IsNullOrEmpty(eTradeDate)) { condition += " and TradeDate >=" + Convert.ToInt32(sTradeDate) + " and TradeDate <=" + Convert.ToInt32(eTradeDate); cons += " and SeoKeyword >=" + Convert.ToInt32(sTradeDate) + " and SeoKeyword <=" + Convert.ToInt32(eTradeDate); } //结束时间 else { var start = DateTime.Now.ToString("yyyyMM") + "01"; condition += " and TradeDate >=" + Convert.ToInt32(start) + " and TradeDate <=" + Convert.ToInt32(eTradeDate); cons += " and SeoKeyword >=" + Convert.ToInt32(start) + " and SeoKeyword <=" + Convert.ToInt32(eTradeDate); } //扶持期 decimal TotalAmtfc = 0; decimal DAmtfc = 0; decimal JAmtfc = 0; decimal JfAmtfc = 0; int JCountfc = 0; decimal YAmtfc = 0; //稳定期 decimal TotalAmtwd = 0; decimal DAmtwd = 0; decimal JAmtwd = 0; decimal JfAmtwd = 0; int JCountwd = 0; decimal YAmtwd = 0; //盈利期 decimal TotalAmtyl = 0; decimal DAmtyl = 0; decimal JAmtyl = 0; decimal JfAmtyl = 0; int JCountyl = 0; decimal YAmtyl = 0; int BCount = 0; int ACount = 0; int PBCount = 0; int PACount = 0; int TBCount = 0; int TACount = 0; Dictionary obj = new Dictionary(); DataTable dt = OtherMySqlConn.dtable("SELECT Sum(HelpNonDirectTradeAmt + HelpNonDirectDebitTradeAmt),Sum(if (QueryCount = 0,HelpNonDirectTradeAmt,0)),Sum(if (QueryCount = 0,HelpNonDirectDebitTradeAmt - HelpNonDirectDebitCapTradeAmt,0)),Sum(if (QueryCount = 0,HelpNonDirectDebitCapTradeAmt,0)),Sum(if (QueryCount = 0,HelpNonDirectDebitCapNum,0)),Sum(if (QueryCount = 1,HelpNonDirectTradeAmt,0)),Sum(NotHelpNonDirectTradeAmt + NotHelpNonDirectDebitTradeAmt),Sum(if (QueryCount = 0,NotHelpNonDirectTradeAmt,0)),Sum(if (QueryCount = 0,NotHelpNonDirectDebitTradeAmt - NotHelpNonDirectDebitCapTradeAmt,0)),Sum(if (QueryCount = 0,NotHelpNonDirectDebitCapTradeAmt,0)),Sum(if (QueryCount = 0,NotHelpNonDirectDebitCapNum,0)),Sum(if (QueryCount = 1,NotHelpNonDirectTradeAmt,0)),Sum(ProfitNonDirectTradeAmt + ProfitNonDirectDebitTradeAmt),Sum(if (QueryCount = 0,ProfitNonDirectTradeAmt,0)),Sum(if (QueryCount = 0,ProfitNonDirectDebitTradeAmt - ProfitNonDirectDebitCapTradeAmt,0)),Sum(if (QueryCount = 0,ProfitNonDirectDebitCapTradeAmt,0)),Sum(if (QueryCount = 0,ProfitNonDirectDebitCapNum,0)),Sum(if (QueryCount = 1,ProfitNonDirectTradeAmt,0))from TradeDaySummary where SeoTitle = 'team'" + condition); if (dt.Rows.Count > 0) { TotalAmtfc = Convert.ToDecimal(function.CheckNum(dt.Rows[0][0].ToString())); DAmtfc = Convert.ToDecimal(function.CheckNum(dt.Rows[0][1].ToString())); JAmtfc = Convert.ToDecimal(function.CheckNum(dt.Rows[0][2].ToString())); JfAmtfc = Convert.ToDecimal(function.CheckNum(dt.Rows[0][3].ToString())); JCountfc = Convert.ToInt32(function.CheckInt(dt.Rows[0][4].ToString())); YAmtfc = Convert.ToDecimal(function.CheckNum(dt.Rows[0][5].ToString())); TotalAmtwd = Convert.ToDecimal(function.CheckNum(dt.Rows[0][6].ToString())); DAmtwd = Convert.ToDecimal(function.CheckNum(dt.Rows[0][7].ToString())); JAmtwd = Convert.ToDecimal(function.CheckNum(dt.Rows[0][8].ToString())); JfAmtwd = Convert.ToDecimal(function.CheckNum(dt.Rows[0][9].ToString())); JCountwd = Convert.ToInt32(function.CheckInt(dt.Rows[0][10].ToString())); YAmtwd = Convert.ToDecimal(function.CheckNum(dt.Rows[0][11].ToString())); TotalAmtyl = Convert.ToDecimal(function.CheckNum(dt.Rows[0][12].ToString())); DAmtyl = Convert.ToDecimal(function.CheckNum(dt.Rows[0][13].ToString())); JAmtyl = Convert.ToDecimal(function.CheckNum(dt.Rows[0][14].ToString())); JfAmtyl = Convert.ToDecimal(function.CheckNum(dt.Rows[0][15].ToString())); JCountyl = Convert.ToInt32(function.CheckInt(dt.Rows[0][16].ToString())); YAmtyl = Convert.ToDecimal(function.CheckNum(dt.Rows[0][17].ToString())); } //统计激活数(个人、团队) dt = OtherMySqlConn.dtable("SELECT SUM(if(SeoTitle='team',ActiveBuddyMerStatus,0)) FROM UserTradeMonthSummary WHERE UserId= " + UserId + "" + cons); if (dt.Rows.Count > 0) { TACount = Convert.ToInt32(function.CheckNum(dt.Rows[0][0].ToString())); } obj.Add("TotalAmtfc", TotalAmtfc); obj.Add("DAmtfc", DAmtfc); obj.Add("JAmtfc", JAmtfc); obj.Add("JfAmtfc", JfAmtfc); obj.Add("JCountfc", JCountfc); obj.Add("YAmtfc", YAmtfc); obj.Add("TotalAmtwd", TotalAmtwd); obj.Add("DAmtwd", DAmtwd); obj.Add("JAmtwd", JAmtwd); obj.Add("JfAmtwd", JfAmtwd); obj.Add("JCountwd", JCountwd); obj.Add("YAmtwd", YAmtwd); obj.Add("TotalAmtyl", TotalAmtyl); obj.Add("DAmtyl", DAmtyl); obj.Add("JAmtyl", JAmtyl); obj.Add("JfAmtyl", JfAmtyl); obj.Add("JCountyl", JCountyl); obj.Add("YAmtyl", YAmtyl); obj.Add("BCount", BCount); obj.Add("ACount", ACount); obj.Add("PBCount", PBCount); obj.Add("PACount", PACount); obj.Add("TBCount", TBCount); obj.Add("TACount", TACount); db.Dispose(); return obj; } #endregion #region 未实名创客列表 /// /// 根据条件查询未实名创客列表 /// /// public IActionResult AuthIndex(Users data, string right) { ViewBag.RightInfo = RightInfo; ViewBag.right = right; return View(); } #endregion #region 根据条件查询未实名创客列表 /// /// 未实名创客列表 /// /// public JsonResult AuthIndexData(Users data, int page = 1, int limit = 30) { Dictionary Fields = new Dictionary(); Fields.Add("MakerCode", "1"); //创客编号 string condition = " and Status>-1 and AuthFlag=0 and RealName is not null and CertId is not null and SettleBankCardNo is not null and SettleBankCardName is not null"; string sort = "Id desc"; 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 string Auth(string Id) { string[] idlist = Id.Split(new char[] { ',' }); AddSysLog(Id, "Users", "Auth"); foreach (string subid in idlist) { int id = int.Parse(subid); Dictionary Fields = new Dictionary(); Fields.Add("AuthFlag", 1); Fields.Add("AuthDate", DateTime.Now); new AdminContentOther(_accessor.HttpContext, PublicFunction.MainTables).Edit("Users", Fields, id); } db.SaveChanges(); return "success"; } #endregion #region 修改盟主金额 public IActionResult ChangeLeaderAmount(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 ChangeLeaderAmount(Users data, string ChangeAmount, int AmountType, string Note, int Kind) { int UserId = data.Id; var Amount = Convert.ToDecimal(ChangeAmount); 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 (AmountType == 1) { if ((Kind == 1 || Kind == 3) && Amount > account.LeaderReserve) { return "盟主储蓄金不足"; } decimal BeforeLeaderReserve = account.LeaderReserve; //变更前盟主储蓄金 decimal BeforeLeaderBalanceAmount = account.LeaderBalanceAmount; //变更前盟主可提现余额 int ChangeType = 0; if (Kind == 1 && Amount <= account.LeaderReserve) { account.LeaderReserve -= Amount; account.TotalProfit += Amount; string text = string.Format("修改盟主金额,操作人: '" + SysUserName + "_" + SysRealName + "',操作类型: '系统冻结(盟主储蓄金)',Time'" + DateTime.Now + "'"); function.WriteLog(text, "ChangeLeaderAmount");//修改盟主金额 } else if (Kind == 1 && Amount > account.LeaderReserve) { return "冻结金额大于盟主储蓄金"; } else if (Kind == 2 && Amount <= account.TotalProfit) { account.LeaderReserve += Amount; account.TotalProfit -= Amount; string text = string.Format("修改盟主金额,操作人: '" + SysUserName + "_" + SysRealName + "',操作类型: '系统解冻(盟主储蓄金)',Time'" + DateTime.Now + "'"); function.WriteLog(text, "ChangeLeaderAmount");//修改盟主金额 } else if (Kind == 2 && Amount > account.TotalProfit) { return "解冻金额大于冻结金额"; } else if (Kind == 3 && Amount <= account.LeaderReserve) { account.LeaderReserve -= Amount; ChangeType = 4; decimal AfterLeaderReserve = account.LeaderReserve; //变更后盟主储蓄金 decimal AfterLeaderBalanceAmount = account.LeaderBalanceAmount; //变更后盟主可提现余额 var query = db.LeaderReserveRecord.Add(new LeaderReserveRecord() { CreateDate = DateTime.Now, //创建时间 UserId = UserId, //创客 Remark = "系统扣减(盟主储蓄金)", ChangeType = ChangeType, BeforeAmt = BeforeLeaderReserve, AfterAmt = AfterLeaderReserve, ChangeAmt = Amount, TradeDate = DateTime.Now.ToString("yyyyMMdd"), TradeMonth = DateTime.Now.ToString("yyyyMM"), }).Entity; db.SaveChanges(); string text = string.Format("修改盟主金额,操作人: '" + SysUserName + "_" + SysRealName + "',操作类型: '系统扣减(盟主储蓄金)',Time'" + DateTime.Now + "'"); function.WriteLog(text, "ChangeLeaderAmount");//修改盟主金额 } else if (Kind == 3 && Amount > account.LeaderReserve) { return "扣减金额大于盟主储蓄金"; } else if (Kind == 4) { account.LeaderReserve += Amount; ChangeType = 1; decimal AfterLeaderReserve = account.LeaderReserve; //变更后总金额 decimal AfterLeaderBalanceAmount = account.LeaderBalanceAmount; //变更后冻结金额 var query = db.LeaderReserveRecord.Add(new LeaderReserveRecord() { CreateDate = DateTime.Now, //创建时间 UserId = UserId, //创客 Remark = "系统增加(盟主储蓄金)", ChangeType = ChangeType, BeforeAmt = BeforeLeaderReserve, AfterAmt = AfterLeaderReserve, ChangeAmt = Amount, TradeDate = DateTime.Now.ToString("yyyyMMdd"), TradeMonth = DateTime.Now.ToString("yyyyMM"), }).Entity; db.SaveChanges(); string text = string.Format("修改盟主金额,操作人: '" + SysUserName + "_" + SysRealName + "',操作类型: '系统增加(盟主储蓄金)',Time'" + DateTime.Now + "'"); function.WriteLog(text, "ChangeLeaderAmount");//修改盟主金额 } AddSysLog(data.Id.ToString(), "Users", "ChangeLeaderAmount"); db.SaveChanges(); } //盟主可提现余额 if (AmountType == 2) { if ((Kind == 1 || Kind == 3) && Amount > account.LeaderBalanceAmount) { return "盟主可提现余额不足"; } decimal BeforeLeaderReserve = account.LeaderReserve; //变更前盟主储蓄金 decimal BeforeLeaderBalanceAmount = account.LeaderBalanceAmount; //变更前盟主可提现余额 int ChangeType = 0; if (Kind == 1 && Amount <= account.LeaderReserve) { account.LeaderBalanceAmount -= Amount; account.TotalServiceProfit += Amount; string text = string.Format("修改盟主金额,操作人: '" + SysUserName + "_" + SysRealName + "',操作类型: '系统冻结(盟主可提现余额)',Time'" + DateTime.Now + "'"); function.WriteLog(text, "ChangeLeaderAmount");//修改盟主金额 } else if (Kind == 1 && Amount > account.LeaderBalanceAmount) { return "冻结金额大于盟主可提现余额"; } else if (Kind == 2 && Amount <= account.TotalServiceProfit) { account.LeaderBalanceAmount += Amount; account.TotalServiceProfit -= Amount; string text = string.Format("修改盟主金额,操作人: '" + SysUserName + "_" + SysRealName + "',操作类型: '系统解冻(盟主可提现余额)',Time'" + DateTime.Now + "'"); function.WriteLog(text, "ChangeLeaderAmount");//修改盟主金额 } else if (Kind == 2 && Amount > account.TotalServiceProfit) { return "解冻金额大于冻结金额"; } else if (Kind == 3 && Amount <= account.LeaderBalanceAmount) { account.LeaderBalanceAmount -= Amount; ChangeType = 6; decimal AfterLeaderReserve = account.LeaderReserve; //变更后总金额 decimal AfterLeaderBalanceAmount = account.LeaderBalanceAmount; //变更后冻结金额 var query = db.LeaderReserveRecord.Add(new LeaderReserveRecord() { CreateDate = DateTime.Now, //创建时间 UserId = UserId, //创客 Remark = "系统扣减(盟主可提现余额)", ChangeType = ChangeType, BeforeAmt = BeforeLeaderBalanceAmount, AfterAmt = AfterLeaderBalanceAmount, ChangeAmt = Amount, TradeDate = DateTime.Now.ToString("yyyyMMdd"), TradeMonth = DateTime.Now.ToString("yyyyMM"), }).Entity; db.SaveChanges(); string text = string.Format("修改盟主金额,操作人: '" + SysUserName + "_" + SysRealName + "',操作类型: '系统扣减(盟主可提现余额)',Time'" + DateTime.Now + "'"); function.WriteLog(text, "ChangeLeaderAmount");//修改盟主金额 } else if (Kind == 3 && Amount > account.LeaderBalanceAmount) { return "扣减金额大于盟主可提现余额"; } else if (Kind == 4) { account.LeaderBalanceAmount += Amount; ChangeType = 5; decimal AfterLeaderReserve = account.LeaderReserve; //变更后总金额 decimal AfterLeaderBalanceAmount = account.LeaderBalanceAmount; //变更后冻结金额 var query = db.LeaderReserveRecord.Add(new LeaderReserveRecord() { CreateDate = DateTime.Now, //创建时间 UserId = UserId, //创客 Remark = "系统增加(盟主可提现余额)", ChangeType = ChangeType, BeforeAmt = BeforeLeaderBalanceAmount, AfterAmt = AfterLeaderBalanceAmount, ChangeAmt = Amount, TradeDate = DateTime.Now.ToString("yyyyMMdd"), TradeMonth = DateTime.Now.ToString("yyyyMM"), }).Entity; db.SaveChanges(); string text = string.Format("修改盟主金额,操作人: '" + SysUserName + "_" + SysRealName + "',操作类型: '系统增加(盟主可提现余额)',Time'" + DateTime.Now + "'"); function.WriteLog(text, "ChangeLeaderAmount");//修改盟主金额 } AddSysLog(data.Id.ToString(), "Users", "ChangeLeaderAmount"); db.SaveChanges(); } return "success"; } #endregion #region 伞下创客列表 /// /// 根据条件查询伞下创客列表 /// /// public IActionResult SanIndex(Users data, string right) { ViewBag.RightInfo = RightInfo; ViewBag.right = right; 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 SanIndexData(Users data, string MakerCode, string IsLeader, string IsOp, string CreateDateData, string UserYsLevel, string UserLevel, int ShowFlag = 0, int page = 1, int limit = 30) { Dictionary Fields = new Dictionary(); if (ShowFlag == 0) { Dictionary objs = new Dictionary(); return Json(objs); } string condition = " and Status>-1"; //创客编号 if (!string.IsNullOrEmpty(MakerCode)) { var userForMakerCode = db.UserForMakerCode.FirstOrDefault(m => m.MakerCode == MakerCode) ?? new UserForMakerCode(); if (userForMakerCode.UserId == 0) { return Json(new AppResultJson() { Status = "-1", Info = "未找到创客" + MakerCode + "关联数据", Data = "" }); } var user = db.Users.FirstOrDefault(m => m.Id == userForMakerCode.UserId) ?? new Users(); if (user.Id == 0) { return Json(new AppResultJson() { Status = "-1", Info = "创客" + MakerCode + "不存在", Data = "" }); } condition += " and ParentNav like '%," + user.Id + ",%'"; } if (!string.IsNullOrEmpty(IsLeader)) { condition += " and LeaderLevel=" + IsLeader; } if (!string.IsNullOrEmpty(UserYsLevel)) { var UserIds = ""; var Rank = int.Parse(UserYsLevel); var list = db.UserRankWhite.Where(m => m.Status > -1 && m.Rank == Rank).ToList(); foreach (var item in list) { UserIds += item.UserId + ","; } UserIds = UserIds.TrimEnd(','); condition += " and Id IN(" + UserIds + ")"; } if (!string.IsNullOrEmpty(UserLevel)) { condition += " and UserLevel=" + UserLevel; } if (!string.IsNullOrEmpty(IsOp)) { } if (!string.IsNullOrEmpty(CreateDateData)) { string[] datelist = CreateDateData.Split(new string[] { " - " }, StringSplitOptions.None); string start = datelist[0]; string end = datelist[1]; condition += " and CreateDate>='" + start + " 00:00:00' and CreateDate<='" + end + " 23:59:59'"; } 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) { dic["AuthFlagName"] = dic["AuthFlag"].ToString() == "1" ? "已实名" : "未实名"; dic["RiskFlagName"] = dic["RiskFlag"].ToString() == "1" ? "已风控" : "未风控"; dic["UserLevel"] = RelationClass.GetUserLevelSetInfo(int.Parse(dic["UserLevel"].ToString())); int UserId = int.Parse(dic["Id"].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; var userRankWhite = db.UserRankWhite.FirstOrDefault(m => m.UserId == UserId) ?? new UserRankWhite(); dic["UserYsLevel"] = RelationClass.GetUserLevelSetInfo(userRankWhite.Rank); int LeaderLevel = int.Parse(dic["LeaderLevel"].ToString()); if (LeaderLevel == 1) { dic["IsLeader"] = "小盟主"; } else if (LeaderLevel == 2) { dic["IsLeader"] = "大盟主"; } else { dic["IsLeader"] = ""; } dic["MerchantType"] = RelationClassForConst.GetMerchantTypeInfo(int.Parse(dic["MerchantType"].ToString())); } return Json(obj); } #endregion } }