DuGuYang 2 лет назад
Родитель
Сommit
6c75961fb0

+ 17 - 0
AppStart/PublicFunction.cs

@@ -514,6 +514,23 @@ namespace MySystem
 
 
         #endregion
         #endregion
 
 
+
+        #region 获取指定层级创客信息
+        /// <summary>
+        /// 获取指定层级创客信息
+        /// </summary>
+        /// <param name="ParentNav">父级集合</param>
+        /// <param name="Level">层级</param>
+        public static Models.Users GetTopUserInfo(string ParentNav, int Level)
+        {
+            WebCMSEntities db = new WebCMSEntities();
+            string[] ParentNavList = ParentNav.ToString().Trim(',').Replace(",,", ",").Split(',');
+            var userInfo = db.Users.FirstOrDefault(m => m.Id == int.Parse(ParentNavList[Level])) ?? new Users();
+            return userInfo;
+        }
+        #endregion
+
+
         #region 统计机具绑定数据
         #region 统计机具绑定数据
 
 
         public static void StatUserMachineData(int UserId, int BrandId, int Count)
         public static void StatUserMachineData(int UserId, int BrandId, int Count)

+ 22 - 2
Areas/Admin/Controllers/MainServer/LeaderReserveRecordController.cs

@@ -98,8 +98,19 @@ namespace MySystem.Areas.Admin.Controllers
                 dic["UserIdRealName"] = userid_Users.RealName;
                 dic["UserIdRealName"] = userid_Users.RealName;
                 dic.Remove("UserId");
                 dic.Remove("UserId");
 
 
+                var remark = dic["Remark"].ToString();
+                var SourceUserId = 0;
+                if ((remark == "推荐小盟主" || remark == "推荐大盟主") || (int.Parse(function.CheckInt(dic["OrderId"].ToString())) > 0 && int.Parse(function.CheckInt(dic["SourceUserId"].ToString())) == 0))
+                {
+                    var SourceOrderId = int.Parse(function.CheckInt(dic["OrderId"].ToString()));
+                    var orders = db.Orders.FirstOrDefault(m => m.Id == SourceOrderId) ?? new Orders();
+                    SourceUserId = orders.UserId;
+                }
+                else
+                {
+                    SourceUserId = int.Parse(function.CheckInt(dic["SourceUserId"].ToString()));
+                }
                 //购券创客
                 //购券创客
-                int SourceUserId = int.Parse(function.CheckInt(dic["SourceUserId"].ToString()));
                 if (SourceUserId > 0)
                 if (SourceUserId > 0)
                 {
                 {
                     Users sourceUser = db.Users.FirstOrDefault(m => m.Id == SourceUserId) ?? new Users();
                     Users sourceUser = db.Users.FirstOrDefault(m => m.Id == SourceUserId) ?? new Users();
@@ -112,6 +123,15 @@ namespace MySystem.Areas.Admin.Controllers
                 if (ChangeType == 1) dic["ChangeTypeName"] = "增加";
                 if (ChangeType == 1) dic["ChangeTypeName"] = "增加";
                 if (ChangeType == 2) dic["ChangeTypeName"] = "减少";
                 if (ChangeType == 2) dic["ChangeTypeName"] = "减少";
 
 
+                //剩余可提现余额
+                int AccountRecordId = int.Parse(function.CheckInt(dic["AccountRecordId"].ToString()));
+                if (AccountRecordId > 0)
+                {
+                    LeaderAccountRecord leaderAccountRecord = db.LeaderAccountRecord.FirstOrDefault(m => m.Id == AccountRecordId) ?? new LeaderAccountRecord();
+                    dic["AfterBalanceAmount"] = leaderAccountRecord.AfterBalanceAmount;
+                    dic.Remove("AccountRecordId");
+                }
+
                 // else
                 // else
                 // {
                 // {
                 //     int OrderId = int.Parse(function.CheckInt(dic["OrderId"].ToString()));
                 //     int OrderId = int.Parse(function.CheckInt(dic["OrderId"].ToString()));
@@ -220,7 +240,7 @@ namespace MySystem.Areas.Admin.Controllers
             {
             {
                 SqlString += " and SeoKeyword=" + SeoKeyword;
                 SqlString += " and SeoKeyword=" + SeoKeyword;
             }
             }
-            var Sql = "SELECT c.MakerCode '创客编号',c.RealName '创客姓名',DATE_FORMAT(c.CreateDate,'%Y-%m-%d %H:%i:%s') '创建时间',c.Remark '变动类型',c.SeoDescription '备注',(CASE WHEN c.ChangeType=1 THEN '增加' WHEN c.ChangeType=2 THEN '减少' ELSE '' end) '操作类型',c.Type1Num '电签兑换券张数',c.Type2Num '大POS兑换券张数',d.LeaderBalanceAmount '可提现余额',c.ChangeAmt '使用额度',c.BeforeAmt '使用前剩余额度',c.AfterAmt '使用后剩余额度' FROM(SELECT a.*,b.MakerCode,b.RealName FROM(SELECT Id,UserId,CreateDate,ChangeAmt,BeforeAmt,AfterAmt,Remark,SeoDescription,ChangeType,REPLACE (JSON_EXTRACT (SeoTitle, '$[0].Num'),'\\\"','') AS 'Type1Num', REPLACE (JSON_EXTRACT (SeoTitle, '$[1].Num'),'\\\"','') AS 'Type2Num' FROM LeaderReserveRecord WHERE 1=1 " + SqlString + ") a LEFT JOIN Users b ON a.UserId=b.Id) c LEFT JOIN UserAccount d ON c.UserId=d.Id";
+            var Sql = "SELECT c.MakerCode '创客编号',c.RealName '创客姓名',DATE_FORMAT(c.CreateDate,'%Y-%m-%d %H:%i:%s') '创建时间',c.Remark '变动类型',c.SeoDescription '备注',(CASE WHEN c.ChangeType=1 THEN '增加' WHEN c.ChangeType=2 THEN '减少' ELSE '' end) '操作类型',c.Type1Num '电签兑换券张数',c.Type2Num '大POS兑换券张数',d.LeaderBalanceAmount '可提现余额',c.ChangeAmt '使用额度',c.BeforeAmt '使用前剩余额度',c.AfterAmt '使用后剩余额度',e.AfterBalanceAmount '变化后可提现余额' FROM(SELECT a.*,b.MakerCode,b.RealName FROM(SELECT Id,UserId,CreateDate,ChangeAmt,BeforeAmt,AfterAmt,Remark,SeoDescription,ChangeType,AccountRecordId,REPLACE (JSON_EXTRACT (SeoTitle, '$[0].Num'),'\\\"','') AS 'Type1Num', REPLACE (JSON_EXTRACT (SeoTitle, '$[1].Num'),'\\\"','') AS 'Type2Num' FROM LeaderReserveRecord WHERE 1=1 " + SqlString + ") a LEFT JOIN Users b ON a.UserId=b.Id) c LEFT JOIN UserAccount d ON c.UserId=d.Id LEFT JOIN(SELECT Id,AfterBalanceAmount FROM LeaderAccountRecord)e ON c.AccountRecordId=e.Id";
             var sysAdmin = bsdb.SysAdmin.FirstOrDefault(m => m.AdminName == SysUserName && m.Status > -1);
             var sysAdmin = bsdb.SysAdmin.FirstOrDefault(m => m.AdminName == SysUserName && m.Status > -1);
             var FileName = "盟主储蓄金变动记录" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
             var FileName = "盟主储蓄金变动记录" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
             string SendData = "{\"Operater\":\"" + sysAdmin.Id + "\",\"SqlString\":\"" + Sql + "\",\"FileName\":\"" + FileName + "\",\"MaxCount\":\"0\"}";
             string SendData = "{\"Operater\":\"" + sysAdmin.Id + "\",\"SqlString\":\"" + Sql + "\",\"FileName\":\"" + FileName + "\",\"MaxCount\":\"0\"}";

+ 31 - 10
Areas/Admin/Controllers/MainServer/OrdersController.cs

@@ -218,7 +218,32 @@ namespace MySystem.Areas.Admin.Controllers
                 //创客
                 //创客
                 int UserId = int.Parse(function.CheckInt(dic["UserId"].ToString()));
                 int UserId = int.Parse(function.CheckInt(dic["UserId"].ToString()));
                 Users userid_Users = db.Users.FirstOrDefault(m => m.Id == UserId) ?? new Users();
                 Users userid_Users = db.Users.FirstOrDefault(m => m.Id == UserId) ?? new Users();
-                dic["UserInfo"] = userid_Users.MakerCode + "<br />" + userid_Users.RealName;
+                dic["UserInfo"] = userid_Users.MakerCode + "<br />" + userid_Users.RealName + "<br />" + userid_Users.Id;
+
+                //顶级创客信息
+                if (!string.IsNullOrEmpty(userid_Users.ParentNav))
+                {
+                    string[] ParentNavList = userid_Users.ParentNav.Trim(',').Replace(",,", ",").Split(',');
+                    var topUserInfo = new Users();
+                    if (ParentNavList.Length > 1)
+                    {
+                        topUserInfo = PublicFunction.GetTopUserInfo(userid_Users.ParentNav, 1);
+                    }
+                    else
+                    {
+                        topUserInfo = PublicFunction.GetTopUserInfo(userid_Users.ParentNav, 0);
+                    }
+                    //顶级创客信息
+                    dic["TopUserInfo"] = topUserInfo.MakerCode + "<br />" + topUserInfo.RealName;
+
+                    //分离顶级创客信息
+                    dic["TopUserInfoMakerCode"] = topUserInfo.MakerCode;
+                    dic["TopUserInfoRealName"] = topUserInfo.RealName;
+                }
+                else
+                {
+                    dic["TopUserInfo"] = "";
+                }
                 dic.Remove("UserId");
                 dic.Remove("UserId");
 
 
                 //订单状态
                 //订单状态
@@ -300,11 +325,7 @@ namespace MySystem.Areas.Admin.Controllers
                 dic["StoreFrom"] = storeuserid_Users.MakerCode + "<br />" + storeid_StoreHouse.StoreName;
                 dic["StoreFrom"] = storeuserid_Users.MakerCode + "<br />" + storeid_StoreHouse.StoreName;
                 dic.Remove("StoreUserId");
                 dic.Remove("StoreUserId");
 
 
-                //顶级创客
-                int TopUserId = int.Parse(function.CheckInt(dic["TopUserId"].ToString()));
-                Users topuserid_Users = db.Users.FirstOrDefault(m => m.Id == TopUserId) ?? new Users();
-                dic["TopUserInfo"] = topuserid_Users.MakerCode + "<br />" + topuserid_Users.RealName;
-                dic.Remove("TopUserId");
+                
 
 
                 // //支付状态
                 // //支付状态
                 // int PayStatus = int.Parse(dic["PayStatus"].ToString());
                 // int PayStatus = int.Parse(dic["PayStatus"].ToString());
@@ -617,12 +638,12 @@ namespace MySystem.Areas.Admin.Controllers
                     bool op = true;
                     bool op = true;
                     decimal TotalPrice = order.TotalPrice;
                     decimal TotalPrice = order.TotalPrice;
                     decimal Amount = data.RefundActAmount;
                     decimal Amount = data.RefundActAmount;
-                    if(order.PayMode == 1)
+                    if (order.PayMode == 1)
                     {
                     {
                         PublicAccountSet set = db.PublicAccountSet.FirstOrDefault() ?? new PublicAccountSet();
                         PublicAccountSet set = db.PublicAccountSet.FirstOrDefault() ?? new PublicAccountSet();
                         string result = new Alipay.AlipayPublicClass(_accessor.HttpContext).Refund(set.AlipayAppId, set.AlipayPrivateKey, set.AlipayPublicKey, order.OrderNo, Amount);
                         string result = new Alipay.AlipayPublicClass(_accessor.HttpContext).Refund(set.AlipayAppId, set.AlipayPrivateKey, set.AlipayPublicKey, order.OrderNo, Amount);
                     }
                     }
-                    else if(order.PayMode == 3)
+                    else if (order.PayMode == 3)
                     {
                     {
                         UserAccount user = db.UserAccount.FirstOrDefault(m => m.Id == order.UserId);
                         UserAccount user = db.UserAccount.FirstOrDefault(m => m.Id == order.UserId);
                         if (user == null)
                         if (user == null)
@@ -658,7 +679,7 @@ namespace MySystem.Areas.Admin.Controllers
                             Remark = Remark,
                             Remark = Remark,
                         });
                         });
                     }
                     }
-                    if(op)
+                    if (op)
                     {
                     {
                         order.RefundStatus = 1;
                         order.RefundStatus = 1;
                         order.RefundActAmount = Amount;
                         order.RefundActAmount = Amount;
@@ -1498,7 +1519,7 @@ namespace MySystem.Areas.Admin.Controllers
                 string end = datelist[1];
                 string end = datelist[1];
                 SqlString += " and a.SendDate>='" + start + " 00:00:00' and a.SendDate<='" + end + " 23:59:59'";
                 SqlString += " and a.SendDate>='" + start + " 00:00:00' and a.SendDate<='" + end + " 23:59:59'";
             }
             }
-            var Sql = "SELECT b.MakerCode '创客编号',b.RealName '创客真实姓名',a.OrderNo '订单号',a.Mobile '手机号',a.RealName '姓名',a.TotalPrice '总价',a.Areas '所在地区',a.Address '详细地址',a.ErpName '物流名称',a.ErpCode '运单号',DATE_FORMAT(a.SendDate,'%Y-%m-%d %H:%i:%s') '发货时间',(CASE WHEN a.PayMode=1 THEN '支付宝' WHEN a.PayMode=2 THEN '微信' WHEN a.PayMode=3 THEN '账户余额' ELSE '' end) '支付方式',DATE_FORMAT(a.PayDate,'%Y-%m-%d %H:%i:%s') '支付时间',a.TradeNo '支付交易号',c.StoreNo '仓库编号',c.StoreName '仓库名称',(CASE WHEN a.RefundStatus=0 THEN '未退款' WHEN a.RefundStatus=1 THEN '已退款' end) '退款状态',(CASE WHEN a.DeliveryType=1 THEN '邮寄到付' WHEN a.DeliveryType=2 THEN '上门自提' ELSE '' end) '提货类型',(CASE WHEN a.SendStatus=0 THEN '未发货' WHEN a.SendStatus=1 THEN '已发货' WHEN a.SendStatus=2 THEN '已退货' ELSE '' end) '发货状态',d.ProductName '商品名称',a.BuyCount '下单数量',d.TotalPrice '商品单价',d.NormDetail '商品规格',a.StoreContact '仓库联系人',(CASE WHEN a.StoreType=0 THEN '总仓' WHEN a.StoreType=1 THEN '分仓' ELSE '' end) '仓库类型',e.MakerCode '仓库归属创客编号',e.RealName '仓库归属创客姓名',(CASE WHEN a.PayStatus=0 THEN '未支付' WHEN a.PayStatus=1 THEN '支付成功' WHEN a.PayStatus=2 THEN '支付失败' WHEN a.PayStatus=3 THEN '支付锁定中' WHEN a.PayStatus=4 THEN '支付处理中' ELSE '' end) '支付状态',a.Remark '订单备注' FROM Orders a LEFT JOIN Users b ON a.UserId=b.Id LEFT JOIN StoreHouse c ON a.StoreId=c.Id LEFT JOIN OrderProduct d ON a.Id=d.OrderId LEFT JOIN Users e ON a.StoreUserId=e.Id" + SqlString + "";
+            var Sql = "SELECT aa.*,bb.RealName FROM(SELECT b.MakerCode '创客编号',b.RealName '创客真实姓名',a.OrderNo '订单号',SUBSTRING_INDEX(SUBSTRING_INDEX(b.ParentNav,',',4),',',-1) TopId,a.Mobile '手机号',a.RealName '姓名',a.TotalPrice '总价',a.Areas '所在地区',a.Address '详细地址',a.ErpName '物流名称',a.ErpCode '运单号',DATE_FORMAT(a.SendDate,'%Y-%m-%d %H:%i:%s') '发货时间',(CASE WHEN a.PayMode=1 THEN '支付宝' WHEN a.PayMode=2 THEN '微信' WHEN a.PayMode=3 THEN '账户余额' ELSE '' end) '支付方式',DATE_FORMAT(a.PayDate,'%Y-%m-%d %H:%i:%s') '支付时间',a.TradeNo '支付交易号',c.StoreNo '仓库编号',c.StoreName '仓库名称',(CASE WHEN a.RefundStatus=0 THEN '未退款' WHEN a.RefundStatus=1 THEN '已退款' end) '退款状态',(CASE WHEN a.DeliveryType=1 THEN '邮寄到付' WHEN a.DeliveryType=2 THEN '上门自提' ELSE '' end) '提货类型',(CASE WHEN a.SendStatus=0 THEN '未发货' WHEN a.SendStatus=1 THEN '已发货' WHEN a.SendStatus=2 THEN '已退货' ELSE '' end) '发货状态',d.ProductName '商品名称',a.BuyCount '下单数量',d.TotalPrice '商品单价',d.NormDetail '商品规格',a.StoreContact '仓库联系人',(CASE WHEN a.StoreType=0 THEN '总仓' WHEN a.StoreType=1 THEN '分仓' ELSE '' end) '仓库类型',e.MakerCode '仓库归属创客编号',e.RealName '仓库归属创客姓名',(CASE WHEN a.PayStatus=0 THEN '未支付' WHEN a.PayStatus=1 THEN '支付成功' WHEN a.PayStatus=2 THEN '支付失败' WHEN a.PayStatus=3 THEN '支付锁定中' WHEN a.PayStatus=4 THEN '支付处理中' ELSE '' end) '支付状态',a.Remark '订单备注' FROM Orders a LEFT JOIN Users b ON a.UserId=b.Id LEFT JOIN StoreHouse c ON a.StoreId=c.Id LEFT JOIN OrderProduct d ON a.Id=d.OrderId LEFT JOIN Users e ON a.StoreUserId=e.Id" + SqlString + ")aa LEFT JOIN Users bb ON aa.TopId = bb.Id";
             var sysAdmin = bsdb.SysAdmin.FirstOrDefault(m => m.AdminName == SysUserName && m.Status > -1);
             var sysAdmin = bsdb.SysAdmin.FirstOrDefault(m => m.AdminName == SysUserName && m.Status > -1);
             var FileName = "商城订单记录" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
             var FileName = "商城订单记录" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
             string SendData = "{\"Operater\":\"" + sysAdmin.Id + "\",\"SqlString\":\"" + Sql + "\",\"FileName\":\"" + FileName + "\",\"MaxCount\":\"0\"}";
             string SendData = "{\"Operater\":\"" + sysAdmin.Id + "\",\"SqlString\":\"" + Sql + "\",\"FileName\":\"" + FileName + "\",\"MaxCount\":\"0\"}";

+ 10 - 0
Areas/Admin/Controllers/OperateServer/AmountRecordOperateController.cs

@@ -127,6 +127,16 @@ namespace MySystem.Areas.Admin.Controllers
                 dic["OpCode"] = sysAdmin.OpCode;
                 dic["OpCode"] = sysAdmin.OpCode;
                 dic["MakerCode"] = sysAdmin.MakerCode;
                 dic["MakerCode"] = sysAdmin.MakerCode;
                 dic["MakerName"] = sysAdmin.MakerName;
                 dic["MakerName"] = sysAdmin.MakerName;
+                var SourceUserId = 0;
+                if (int.Parse(dic["QueryCount"].ToString()) > 0)
+                {
+                    var Id = int.Parse(dic["QueryCount"].ToString());
+                    var orderInfo = db.Orders.FirstOrDefault(m => m.Id == Id) ?? new Models.Orders();
+                    SourceUserId = orderInfo.UserId;
+                    if (dic["OperateType"].ToString() == "购买运营中心") SourceUserId = Id;
+                    var userInfo = db.Users.FirstOrDefault(m => m.Id == UserId) ?? new Models.Users();
+                    dic["SourceInfo"] = userInfo.MakerCode + "<br />" + userInfo.RealName;
+                }
                 int OperateType = int.Parse(dic["OperateType"].ToString());
                 int OperateType = int.Parse(dic["OperateType"].ToString());
                 dic["OperateTypeName"] = "";
                 dic["OperateTypeName"] = "";
                 if (OperateType == 1) dic["OperateTypeName"] = "收入";
                 if (OperateType == 1) dic["OperateTypeName"] = "收入";

+ 1 - 0
Models/LeaderReserveRecord.cs

@@ -24,5 +24,6 @@ namespace MySystem.Models
         public string TradeDate { get; set; }
         public string TradeDate { get; set; }
         public string TradeMonth { get; set; }
         public string TradeMonth { get; set; }
         public int UserId { get; set; }
         public int UserId { get; set; }
+        public int AccountRecordId { get; set; }
     }
     }
 }
 }

+ 4 - 0
Models/WebCMSEntities.cs

@@ -5323,6 +5323,10 @@ namespace MySystem.Models
             {
             {
                 entity.Property(e => e.Id).HasColumnType("int(11)");
                 entity.Property(e => e.Id).HasColumnType("int(11)");
 
 
+                entity.Property(e => e.AccountRecordId)
+                    .HasColumnType("int(11)")
+                    .HasComment("可提现余额变动Id");
+
                 entity.Property(e => e.AfterAmt).HasColumnType("decimal(18,2)");
                 entity.Property(e => e.AfterAmt).HasColumnType("decimal(18,2)");
 
 
                 entity.Property(e => e.BeforeAmt).HasColumnType("decimal(18,2)");
                 entity.Property(e => e.BeforeAmt).HasColumnType("decimal(18,2)");

+ 2 - 1
wwwroot/layuiadmin/modules_main/LeaderReserveRecord_Admin.js

@@ -102,7 +102,8 @@ layui.config({
             , { field: 'SeoKeyword', width: 200, title: '订单编号', sort: true }
             , { field: 'SeoKeyword', width: 200, title: '订单编号', sort: true }
             , { field: 'dPosCoupons', width: 150, title: '电签兑换券', sort: true }
             , { field: 'dPosCoupons', width: 150, title: '电签兑换券', sort: true }
             , { field: 'bPosCoupons', width: 150, title: '大POS兑换券', sort: true }
             , { field: 'bPosCoupons', width: 150, title: '大POS兑换券', sort: true }
-            , { field: 'LeaderBalanceAmount', width: 130, title: '可提现余额', sort: true }
+            , { field: 'LeaderBalanceAmount', width: 130, title: '当前可提现余额', sort: true }
+            , { field: 'AfterBalanceAmount', width: 130, title: '变化后可提现余额', sort: true }
             , { field: 'ChangeAmt', width: 130, title: '使用额度', sort: true }
             , { field: 'ChangeAmt', width: 130, title: '使用额度', sort: true }
             , { field: 'BeforeAmt', width: 180, title: '使用前剩余额度', sort: true }
             , { field: 'BeforeAmt', width: 180, title: '使用前剩余额度', sort: true }
             , { field: 'AfterAmt', width: 180, title: '使用后剩余额度', sort: true }
             , { field: 'AfterAmt', width: 180, title: '使用后剩余额度', sort: true }

+ 1 - 0
wwwroot/layuiadmin/modules_operate/AmountRecord_Admin.js

@@ -100,6 +100,7 @@ layui.config({
             , { field: 'BeforeAmount', width: 130, title: '交易前总金额', sort: true }
             , { field: 'BeforeAmount', width: 130, title: '交易前总金额', sort: true }
             , { field: 'AfterAmount', width: 130, title: '交易后总金额', sort: true }
             , { field: 'AfterAmount', width: 130, title: '交易后总金额', sort: true }
             , { field: 'CreateDate', width: 110, title: '交易时间', sort: true }
             , { field: 'CreateDate', width: 110, title: '交易时间', sort: true }
+            , { field: 'SourceInfo', width: 110, title: '来源创客信息', sort: true }
         ]]
         ]]
         , where: {
         , where: {
         }
         }