Răsfoiți Sursa

导出每月表格功能开发

lichunlei 3 ani în urmă
părinte
comite
da2f5ff2f6

+ 13 - 0
AppStart/Tables/ProgressUserList.cs

@@ -0,0 +1,13 @@
+using System;
+using System.Collections.Generic;
+namespace MySystem
+{
+    public class ProgressUserList
+    {
+        public decimal LastMonth { get; set; }
+        public decimal ThisMonth { get; set; }
+        public int IsOk { get; set; }
+        public int UserId { get; set; }
+        public string ParentNav { get; set; }
+    }
+}

+ 388 - 0
Areas/Admin/Controllers/MainServer/ExportTableController.cs

@@ -0,0 +1,388 @@
+using System;
+using System.Web;
+using System.Collections.Generic;
+using System.Diagnostics;
+using System.Linq;
+using System.Data;
+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 ExportTable : BaseController
+    {
+        public ExportTable(IHttpContextAccessor accessor, ILogger<BaseController> logger, IOptions<Setting> setting) : base(accessor, logger, setting)
+        {
+            OtherMySqlConn.connstr = ConfigurationManager.AppSettings["SqlConnStr"].ToString();
+        }
+
+        #region 分润
+
+        public IActionResult Profit()
+        {
+            DataTable dt = OtherMySqlConn.dtable("select MakerCode,RealName,UserLevel,Rank,DirectFlag,BrandName,CreditTradeAmt,CreditTradeProfit,QrCreditTradeAmt,QrCreditTradeProfit,NonQrCreditTradeAmt,NonQrCreditTradeProfit,HelpCreditTradeAmt,HelpCreditTradeProfit,NotHelpCreditTradeAmt,NotHelpCreditTradeProfit,DebitTradeAmt,DebitTradeProfit from ProfitRewardExport where SeoTitle='" + DateTime.Now.AddMonths(-1).ToString("yyyyMM") + "'");
+            string html = "<table>";
+            html += "<tr>";
+            html += "<td>创客编号</td>";
+            html += "<td>创客姓名</td>";
+            html += "<td>创客职级</td>";
+            html += "<td>预设职级</td>";
+            html += "<td>分润类型</td>";
+            html += "<td>品牌</td>";
+            html += "<td>贷记卡交易额</td>";
+            html += "<td>贷记卡分润</td>";
+            html += "<td>云闪付贷记卡交易额</td>";
+            html += "<td>云闪付贷记卡分润</td>";
+            html += "<td>非云闪付贷记卡交易额</td>";
+            html += "<td>非云闪付贷记卡分润</td>";
+            html += "<td>非云闪付扶持期贷记卡交易额</td>";
+            html += "<td>非云闪付扶持期贷记卡分润</td>";
+            html += "<td>非云闪付稳定期贷记卡交易额</td>";
+            html += "<td>非云闪付稳定期贷记卡分润</td>";
+            html += "<td>借记卡交易额</td>";
+            html += "<td>借记卡分润</td>";
+            html += "</tr>";
+            foreach(DataRow dr in dt.Rows)
+            {
+                html += "<tr>";
+                html += "<td>" + dr["MakerCode"].ToString() + "</td>";
+                html += "<td>" + dr["RealName"].ToString() + "</td>";
+                html += "<td>" + dr["UserLevel"].ToString() + "</td>";
+                html += "<td>" + dr["Rank"].ToString() + "</td>";
+                html += "<td>" + dr["DirectFlag"].ToString() + "</td>";
+                html += "<td>" + dr["BrandName"].ToString() + "</td>";
+                html += "<td>" + dr["CreditTradeAmt"].ToString() + "</td>";
+                html += "<td>" + dr["CreditTradeProfit"].ToString() + "</td>";
+                html += "<td>" + dr["QrCreditTradeAmt"].ToString() + "</td>";
+                html += "<td>" + dr["QrCreditTradeProfit"].ToString() + "</td>";
+                html += "<td>" + dr["NonQrCreditTradeAmt"].ToString() + "</td>";
+                html += "<td>" + dr["NonQrCreditTradeProfit"].ToString() + "</td>";
+                html += "<td>" + dr["HelpCreditTradeAmt"].ToString() + "</td>";
+                html += "<td>" + dr["HelpCreditTradeProfit"].ToString() + "</td>";
+                html += "<td>" + dr["NotHelpCreditTradeAmt"].ToString() + "</td>";
+                html += "<td>" + dr["NotHelpCreditTradeProfit"].ToString() + "</td>";
+                html += "<td>" + dr["DebitTradeAmt"].ToString() + "</td>";
+                html += "<td>" + dr["DebitTradeProfit"].ToString() + "</td>";
+                html += "</tr>";
+            }
+            html += "</table>";
+            ViewBag.html = html;
+
+            return View();
+        }
+
+        #endregion
+
+        #region 补贴
+
+        public IActionResult Subsidy()
+        {
+            DataTable dt = OtherMySqlConn.dtable("select MakerCode,RealName,UserLevel,Rank,KqSnNo,MerchantName,DirectFlag,BrandName,CreditTradeAmt,SubsidyProfit from ProfitSubsidyExport where SeoTitle='" + DateTime.Now.AddMonths(-1).ToString("yyyyMM") + "'");
+            string html = "<table>";
+            html += "<tr>";
+            html += "<td>创客编号</td>";
+            html += "<td>创客名称</td>";
+            html += "<td>创客职级</td>";
+            html += "<td>设置职级</td>";
+            html += "<td>商户编号</td>";
+            html += "<td>商户名称</td>";
+            html += "<td>补贴类型</td>";
+            html += "<td>品牌</td>";
+            html += "<td>贷记卡交易额</td>";
+            html += "<td>补贴分润</td>";
+            html += "</tr>";
+            foreach(DataRow dr in dt.Rows)
+            {
+                html += "<tr>";
+                html += "<td>" + dr["MakerCode"].ToString() + "</td>";
+                html += "<td>" + dr["RealName"].ToString() + "</td>";
+                html += "<td>" + dr["UserLevel"].ToString() + "</td>";
+                html += "<td>" + dr["Rank"].ToString() + "</td>";
+                html += "<td>" + dr["KqSnNo"].ToString() + "</td>";
+                html += "<td>" + dr["MerchantName"].ToString() + "</td>";
+                html += "<td>" + dr["DirectFlag"].ToString() + "</td>";
+                html += "<td>" + dr["BrandName"].ToString() + "</td>";
+                html += "<td>" + dr["CreditTradeAmt"].ToString() + "</td>";
+                html += "<td>" + dr["SubsidyProfit"].ToString() + "</td>";
+                html += "</tr>";
+            }
+            html += "</table>";
+            ViewBag.html = html;
+
+            return View();
+        }
+
+        #endregion
+
+        #region 666推荐王
+
+        public IActionResult Recommend()
+        {
+            DateTime start = DateTime.Parse(DateTime.Now.AddMonths(-1).ToString("yyyyMM") + "-01 00:00:00");
+            DateTime end = start.AddMonths(1);
+            string TradeMonth = start.ToString("yyyyMM");
+            List<RecommendPriceList> userdic = new List<RecommendPriceList>();
+            WebCMSEntities db = new WebCMSEntities();
+            //判断当月是否下单
+            bool checkOrder = db.Orders.Any(m => m.PayDate >= start && m.PayDate < end && m.Status > 0 && m.TotalPrice == 66);
+            if(checkOrder)
+            {
+                //统计当月下单名单
+                List<int> uids = db.Orders.Where(m => m.PayDate >= start && m.PayDate < end && m.Status > 0 && m.TotalPrice == 66).ToList().Select(m => m.UserId).Distinct().ToList();
+                foreach(int uid in uids)
+                {
+                    int ActCount = 0;
+                    List<Users> users = db.Users.Where(m => m.ParentUserId == uid && m.AuthFlag == 1 && m.AuthDate >= start).ToList();
+                    foreach(Users user in users)
+                    {
+                        int BeforeActCount = db.PosMachinesTwo.Count(m => m.BuyUserId == user.Id && m.ActivationState == 1 && m.ActivationTime < start);
+                        if(BeforeActCount == 0)
+                        {
+                            decimal tradeAmt = 0; //机具总交易额
+                            int actPosCount = 0; //激活机具数量
+                            //查询当前创客所属机具
+                            var posList = db.PosMachinesTwo.Select(m => new { m.ActivationState, m.ActivationTime, m.BuyUserId, m.BindMerchantId }).Where(m => m.BuyUserId == user.Id && m.ActivationState == 1 && m.ActivationTime >= start && m.ActivationTime < end).ToList();
+                            if(posList.Count > 0)
+                            {
+                                actPosCount = posList.Count;
+                                foreach(var pos in posList)
+                                {
+                                    //查询机具交易额
+                                    bool checkTrade = db.PosMerchantTradeSummay.Any(m => m.MerchantId == pos.BindMerchantId && m.TradeMonth == TradeMonth);
+                                    if(checkTrade)
+                                    {
+                                        tradeAmt += db.PosMerchantTradeSummay.Where(m => m.MerchantId == pos.BindMerchantId && m.TradeMonth == TradeMonth).Sum(m => m.TradeAmount);
+                                    }
+                                }                                
+                                decimal AvgTradeAmount = tradeAmt / actPosCount;
+                                if(AvgTradeAmount >= 30000 && actPosCount >= 3)
+                                {
+                                    ActCount += 1;
+                                }
+                            }
+                        }
+                    }
+                    RecommendPriceList item = userdic.FirstOrDefault(m => m.UserId == uid);
+                    if(item != null)
+                    {
+                        item.ActCount += ActCount;
+                    }
+                    else
+                    {
+                        userdic.Add(new RecommendPriceList()
+                        {
+                            UserId = uid,
+                            ActCount = ActCount,
+                        });
+                    }
+                }
+            }
+            string html = "<table>";
+            html += "<tr>";
+            html += "<td>创客编号</td>";
+            html += "<td>创客姓名</td>";
+            html += "<td>推荐总数</td>";
+            html += "<td>成功推荐数</td>";
+            html += "<td>是否达标</td>";
+            html += "</tr>";
+            foreach(RecommendPriceList item in userdic)
+            {
+                string status = "未达标";
+                if(item.ActCount >= 6)
+                {
+                    status = "已达标";
+                }
+                Users user = db.Users.FirstOrDefault(m => m.Id == item.UserId) ?? new Users();
+                int subCount = db.Users.Count(m => m.ParentUserId == item.UserId && m.AuthFlag == 1 && m.AuthDate >= start);
+                html += "<tr>";
+                html += "<td>" + user.MakerCode + "</td>"; //创客编号
+                html += "<td>" + user.RealName + "</td>"; //创客姓名
+                html += "<td>" + subCount + "</td>"; //推荐总数
+                html += "<td>" + item.ActCount + "</td>"; //成功推荐数
+                html += "<td>" + status + "</td>"; //是否达标
+                html += "</tr>";
+            }
+            html += "</table>";
+            db.Dispose();
+            ViewBag.html = html;
+            return View();
+        }
+
+        #endregion
+        
+        #region 888翻倍奖
+
+        public IActionResult Double()
+        {
+            WebCMSEntities maindb = new WebCMSEntities();
+            List<int> userIdList = new List<int>();
+            string html = "<table>";
+            DateTime StartDate = DateTime.Parse(DateTime.Now.AddMonths(-1).ToString("yyyy-MM") + "-01 00:00:00");
+            DateTime EndDate = StartDate.AddMonths(1);
+            var orders = maindb.Orders.Select(m => new { m.UserId, m.TotalPrice, m.Status, m.PayDate }).Where(m => m.PayDate >= StartDate && m.PayDate < EndDate && m.TotalPrice == 88 && m.Status > 0).ToList();
+            foreach (var order in orders)
+            {
+                userIdList.Add(order.UserId);
+            }
+            foreach (int UserId in userIdList)
+            {
+                Users myuser = maindb.Users.FirstOrDefault(m => m.Id == UserId) ?? new Users();
+                var lastmonth = DateTime.Now.AddMonths(-2).ToString("yyyyMM");
+                var thismonth = DateTime.Now.AddMonths(-1).ToString("yyyyMM");
+                DateTime start = DateTime.Now.AddDays(1 - DateTime.Now.Day).Date;
+                DateTime end = DateTime.Now.AddDays(1 - DateTime.Now.Day).Date.AddMonths(1).AddSeconds(-1);
+                string UserIdString = "," + UserId + ",";
+                List<Users> users = maindb.Users.Where(m => m.ParentNav.Contains(UserIdString) || m.Id == UserId).ToList();
+                List<int> uids = new List<int>();
+                List<int> uids2 = new List<int>();
+                foreach (var user in users)
+                {
+                    uids.Add(user.Id);
+                }
+                var suborders = orders.Where(m => uids.Contains(m.UserId)).ToList();
+                foreach (var suborder in suborders)
+                {
+                    uids2.Add(suborder.UserId);
+                }
+                users = users.Where(m => uids2.Contains(m.Id)).ToList();
+                List<ProgressUserList> list = new List<ProgressUserList>();
+                foreach (Users user in users)
+                {
+                    int IsOk = 0;//是否达标(0-否 1-是)
+                    decimal lastMonthAmt = maindb.TradeDaySummary.Where(m => m.TradeMonth == lastmonth && m.SeoTitle == "team" && m.UserId == user.Id).Sum(m => m.HelpNonDirectTradeAmt + m.NotHelpNonDirectTradeAmt);
+                    decimal thisMonthAmt = maindb.TradeDaySummary.Where(m => m.TradeMonth == thismonth && m.SeoTitle == "team" && m.UserId == user.Id).Sum(m => m.HelpNonDirectTradeAmt + m.NotHelpNonDirectTradeAmt);
+                    if (thisMonthAmt >= lastMonthAmt * 2 && thisMonthAmt >= 2000000)
+                    {
+                        IsOk = 1;
+                    }
+                    ProgressUserList item = new ProgressUserList()
+                    {
+                        LastMonth = lastMonthAmt,
+                        ThisMonth = thisMonthAmt,
+                        UserId = user.Id,
+                        ParentNav = user.ParentNav,
+                        IsOk = IsOk,
+                    };
+                    list.Add(item);
+                }
+                list = list.OrderBy(m => m.ParentNav).ToList();
+                int index = 0;
+                decimal selfTrade = 0; // 自己的本月交易额
+                decimal lastTrade = 0; // 自己的上月交易额
+                decimal totalTrade = 0; // 自己的本月目标交易额
+                string selfNav = ""; // 自己的ParentNav
+                List<string> ParentNavs = new List<string>();
+                if (list.Count > 0)
+                {
+                    foreach (ProgressUserList sub in list)
+                    {
+                        index += 1;
+                        if (index == 1)
+                        {
+                            selfTrade = sub.ThisMonth;
+                            lastTrade = sub.LastMonth;
+                            totalTrade = lastTrade * 2;
+                            selfNav = sub.ParentNav + "," + sub.UserId + ",";
+                        }
+                        else
+                        {
+                            bool op = true; //是否满足条件
+                            string ParentNav = sub.ParentNav + "," + sub.UserId + ",";
+                            foreach (string subNav in ParentNavs)
+                            {
+                                if (ParentNavs.Contains(ParentNav) && ParentNav != subNav)
+                                {
+                                    op = false;
+                                }
+                            }
+                            if (op)
+                            {
+                                if (sub.IsOk == 1)
+                                {
+                                    selfTrade -= sub.ThisMonth;
+                                    totalTrade -= sub.ThisMonth;
+                                }
+                            }
+                            ParentNavs.Add(ParentNav);
+                        }
+                    }
+                }
+                if (lastTrade * 2 < 2000000 || selfTrade == 0 || totalTrade < 2000000)
+                {
+                    totalTrade = 2000000;
+                }
+                html += "<tr>";
+                html += "<td>" + myuser.MakerCode + "</td>";
+                html += "<td>" + myuser.RealName + "</td>";
+                html += "<td>" + selfTrade + "</td>";
+                html += "<td>" + lastTrade + "</td>";
+                html += "<td>" + totalTrade + "</td>";
+                if (selfTrade >= totalTrade)
+                {
+                    html += "<td>满足条件</td>";
+                }
+                else
+                {
+                    html += "<td>未满足条件</td>";
+                }
+                html += "</tr>";
+            }
+            html += "</table>";
+            maindb.Dispose();
+            ViewBag.html = html;
+            return View();
+        }
+
+        #endregion
+
+        #region 分仓数据
+
+        public IActionResult StoreHouse()
+        {
+
+            DataTable dt = OtherMySqlConn.dtable("");
+            string html = "<table>";
+            html += "<tr>";
+            html += "<td>创客编号</td>";
+            html += "<td>创客名称</td>";
+            html += "<td>创客职级</td>";
+            html += "<td>设置职级</td>";
+            html += "<td>商户编号</td>";
+            html += "<td>商户名称</td>";
+            html += "<td>补贴类型</td>";
+            html += "<td>品牌</td>";
+            html += "<td>贷记卡交易额</td>";
+            html += "<td>补贴分润</td>";
+            html += "</tr>";
+            foreach(DataRow dr in dt.Rows)
+            {
+                html += "<tr>";
+                html += "<td>" + dr["MakerCode"].ToString() + "</td>";
+                html += "<td>" + dr["RealName"].ToString() + "</td>";
+                html += "<td>" + dr["UserLevel"].ToString() + "</td>";
+                html += "<td>" + dr["Rank"].ToString() + "</td>";
+                html += "<td>" + dr["KqSnNo"].ToString() + "</td>";
+                html += "<td>" + dr["MerchantName"].ToString() + "</td>";
+                html += "<td>" + dr["DirectFlag"].ToString() + "</td>";
+                html += "<td>" + dr["BrandName"].ToString() + "</td>";
+                html += "<td>" + dr["CreditTradeAmt"].ToString() + "</td>";
+                html += "<td>" + dr["SubsidyProfit"].ToString() + "</td>";
+                html += "</tr>";
+            }
+            html += "</table>";
+            ViewBag.html = html;
+
+            return View();
+        }
+
+        #endregion
+    }
+}

+ 1 - 1
Areas/Admin/Controllers/MainServer/PosMachinesTwoChangeController.cs

@@ -59,7 +59,7 @@ namespace MySystem.Areas.Admin.Controllers
             Fields.Add("PosSn", "1"); //SN编号
             Fields.Add("BrandId", "0"); //品牌
 
-            string condition = " and Status>-1 AND BindingState = 1 AND DATE_SUB(CURDATE(), INTERVAL 180 DAY) >= date(BindingTime) and DownFeeFlag =0";
+            string condition = " and Status>-1 AND BindingState = 1 AND DATE_SUB(CURDATE(), INTERVAL 180 DAY) >= date(BindingTime) and UpFeeFlag=1 and DownFeeFlag=0 and SeoDescription!='设置成功'";
             //绑定状态
             if (!string.IsNullOrEmpty(BindingStateSelect))
             {

+ 13 - 0
Areas/Admin/Views/Home/Index.cshtml

@@ -224,6 +224,19 @@
                                 <dd data-name="grid">
                                     <a lay-href="/Admin/SysTools/CheckMachine2">机具补录</a>
                                 </dd>
+                                <dd data-name="grid" class="layui-nav-itemed">
+                                    <a href="javascript:;" title="每月表格">导出每月表格<span class="layui-nav-more"></span></a>
+                                    <dl class="layui-nav-child">
+                                        <dd data-name="list"><a lay-href="/Admin/ExportTable/Profit" title="分润">分润</a></dd>
+                                        <dd data-name="list"><a lay-href="/Admin/ExportTable/Subsidy" title="补贴">补贴</a></dd>
+                                        <dd data-name="list"><a lay-href="/Admin/ExportTable/Trade" title="交易额">交易额</a></dd>
+                                        <dd data-name="list"><a lay-href="/Admin/ExportTable/OpenMachine" title="开机排行">开机排行</a></dd>
+                                        <dd data-name="list"><a lay-href="/Admin/ExportTable/PullNew" title="有效拉新排行">有效拉新排行</a></dd>
+                                        <dd data-name="list"><a lay-href="/Admin/ExportTable/Recommend" title="666推荐王">666推荐王</a></dd>
+                                        <dd data-name="list"><a lay-href="/Admin/ExportTable/Double" title="888翻倍奖">888翻倍奖</a></dd>
+                                        <dd data-name="list"><a lay-href="/Admin/ExportTable/StoreHouse" title="分仓数据">分仓数据</a></dd>
+                                    </dl>
+                                </dd>
                             </dl>
                         </li>
                         }

+ 17 - 0
Areas/Admin/Views/MainServer/ExportTable/Double.cshtml

@@ -0,0 +1,17 @@
+<!DOCTYPE html>
+<html>
+
+<head>
+    <meta charset="utf-8">
+    <title></title>
+    <meta name="renderer" content="webkit">
+    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
+    <meta name="viewport"
+        content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=0">
+</head>
+
+<body>
+    @Html.Raw(ViewBag.html);
+</body>
+
+</html>

+ 17 - 0
Areas/Admin/Views/MainServer/ExportTable/Profit.cshtml

@@ -0,0 +1,17 @@
+<!DOCTYPE html>
+<html>
+
+<head>
+    <meta charset="utf-8">
+    <title></title>
+    <meta name="renderer" content="webkit">
+    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
+    <meta name="viewport"
+        content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=0">
+</head>
+
+<body>
+    @Html.Raw(ViewBag.html);
+</body>
+
+</html>

+ 17 - 0
Areas/Admin/Views/MainServer/ExportTable/Recommend.cshtml

@@ -0,0 +1,17 @@
+<!DOCTYPE html>
+<html>
+
+<head>
+    <meta charset="utf-8">
+    <title></title>
+    <meta name="renderer" content="webkit">
+    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
+    <meta name="viewport"
+        content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=0">
+</head>
+
+<body>
+    @Html.Raw(ViewBag.html);
+</body>
+
+</html>

+ 17 - 0
Areas/Admin/Views/MainServer/ExportTable/Subsidy.cshtml

@@ -0,0 +1,17 @@
+<!DOCTYPE html>
+<html>
+
+<head>
+    <meta charset="utf-8">
+    <title></title>
+    <meta name="renderer" content="webkit">
+    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
+    <meta name="viewport"
+        content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=0">
+</head>
+
+<body>
+    @Html.Raw(ViewBag.html);
+</body>
+
+</html>

+ 6 - 6
Startup.cs

@@ -132,12 +132,12 @@ namespace MySystem
                     pattern: "{controller=Home}/{action=Index}/{Id?}");
             });
 
-            // ResetUserTradeService.Instance.Start();
-            // ResetMerchantTradeService.Instance.Start();
-            // SycnProfitServiceV2.Instance.Start();
-            // SycnHelpProfitService.Instance.Start();
-            // ExcelHelper.Instance.Start();
-            // TestHelper.Instance.Start();
+            ResetUserTradeService.Instance.Start();
+            ResetMerchantTradeService.Instance.Start();
+            SycnProfitServiceV2.Instance.Start();
+            SycnHelpProfitService.Instance.Start();
+            ExcelHelper.Instance.Start();
+            TestHelper.Instance.Start();
         }
 
 

+ 1 - 0
wwwroot/layuiadmin/modules_main/PosMachinesTwoChange_Admin.js

@@ -153,6 +153,7 @@ layui.config({
             , { field: 'DownFeeFlag', width: 200, title: '调降标记', sort: true }
             , { field: 'DownFeeDate', width: 200, title: '调降时间', sort: true }
             , { field: 'DownFeeMan', width: 200, title: '调降人', sort: true }
+            , { field: 'SeoDescription', width: 500, title: '备注', sort: true }
             , { title: '操作', width: 100, align: 'center', fixed: 'right', toolbar: '#table-list-tools' }
         ]]
         , where: {