瀏覽代碼

添加推荐王算法,待整理

lcl 1 年之前
父節點
當前提交
9436e57fdd
共有 1 個文件被更改,包括 116 次插入0 次删除
  1. 116 0
      AppStart/Helper/Profit/RecommandKingHelper.cs

+ 116 - 0
AppStart/Helper/Profit/RecommandKingHelper.cs

@@ -0,0 +1,116 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Data;
+using MySystem.PxcModels;
+using Library;
+using LitJson;
+
+namespace MySystem
+{
+    public class RecommandKingHelper
+    {
+        public readonly static RecommandKingHelper Instance = new RecommandKingHelper();
+        private RecommandKingHelper()
+        { }    
+    
+    
+    
+    
+        public void Recommend2()
+        {
+            DateTime start = DateTime.Parse(DateTime.Now.AddMonths(-1).ToString("yyyy-MM") + "-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).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)
+                        {
+                            //查询当前创客所属机具
+                            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 || (user.AuthDate >= start && user.AuthDate < end))
+                            {
+                                int actPosCount = 0; //激活机具数量
+                                foreach(var pos in posList)
+                                {
+                                    decimal tradeAmt = 0; //机具总交易额
+                                    //查询机具交易额
+                                    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);
+                                    }
+                                    if(tradeAmt >= 30000)
+                                    {
+                                        actPosCount += 1;
+                                    }
+                                }                          
+                                if(actPosCount >= 2)
+                                {
+                                    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 && m.AuthDate < end);
+                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();
+            function.WritePage("/wwwroot/EveryMonthExcel/" + DateTime.Now.AddMonths(-1).ToString("yyyyMM") + "/", "Recommend.html", html);
+        }
+
+        #endregion
+    
+    }
+}