Эх сурвалжийг харах

助力包统计交易去重

lcl 1 жил өмнө
parent
commit
7dea2cd4a7

+ 193 - 187
AppStart/Helper/SycnSpServer/SycnSpTradeTmpService.cs

@@ -104,220 +104,226 @@ namespace MySystem
                         }
                         if (op)
                         {
-                            PxcModels.PosMachinesTwo pos = db.PosMachinesTwo.FirstOrDefault(m => m.PosSn == TradeSnNo);
-                            if (pos != null)
+                            string check = RedisDbconn.Instance.Get<string>("helpprofit:" + trade.TradeSerialNo);
+                            if(string.IsNullOrEmpty(check))
                             {
-                                PxcModels.KqProducts brand = db.KqProducts.FirstOrDefault(m => m.Id == pos.BrandId) ?? new PxcModels.KqProducts();
-                                if (pos.BindMerchantId > 0)
+                                RedisDbconn.Instance.Set("helpprofit:" + trade.TradeSerialNo, trade.TradeSerialNo);
+                                RedisDbconn.Instance.SetExpire("helpprofit:" + trade.TradeSerialNo, 10);
+                                PxcModels.PosMachinesTwo pos = db.PosMachinesTwo.FirstOrDefault(m => m.PosSn == TradeSnNo);
+                                if (pos != null)
                                 {
-                                    PxcModels.Users user = db.Users.FirstOrDefault(m => m.Id == pos.UserId) ?? new PxcModels.Users();
-                                    int TopUserId = 0;
-                                    if (!string.IsNullOrEmpty(user.ParentNav))
+                                    PxcModels.KqProducts brand = db.KqProducts.FirstOrDefault(m => m.Id == pos.BrandId) ?? new PxcModels.KqProducts();
+                                    if (pos.BindMerchantId > 0)
                                     {
-                                        TopUserId = int.Parse(user.ParentNav.Trim(',').Replace(",,", ",").Split(',')[0]);
-                                    }
-                                    decimal TradeAmount = trade.TradeAmount;
-                                    int BankCardType = -1;
-                                    int QrPayFlag = 0;
-                                    int VipFlag = 0;
-                                    int PayType = 0;
-                                    if (pos.BrandId == 1 || pos.BrandId == 3)
-                                    {
-                                        TradeAmount = TradeAmount / 100;
-                                        BankCardType = int.Parse(trade.BankCardType);
-                                        if (trade.TradeType == "02") QrPayFlag = 1;
-                                        else if (trade.TradeType == "NQ") PayType = 1;
-                                        if (trade.SettleMethod == "E") VipFlag = 1;
-                                    }
-                                    else if (pos.BrandId == 2)
-                                    {
-                                        if (trade.TradeType == "CREDIT_BY_CARD")
+                                        PxcModels.Users user = db.Users.FirstOrDefault(m => m.Id == pos.UserId) ?? new PxcModels.Users();
+                                        int TopUserId = 0;
+                                        if (!string.IsNullOrEmpty(user.ParentNav))
                                         {
-                                            BankCardType = 1;
+                                            TopUserId = int.Parse(user.ParentNav.Trim(',').Replace(",,", ",").Split(',')[0]);
                                         }
-                                        else
+                                        decimal TradeAmount = trade.TradeAmount;
+                                        int BankCardType = -1;
+                                        int QrPayFlag = 0;
+                                        int VipFlag = 0;
+                                        int PayType = 0;
+                                        if (pos.BrandId == 1 || pos.BrandId == 3)
                                         {
-                                            BankCardType = 0;
+                                            TradeAmount = TradeAmount / 100;
+                                            BankCardType = int.Parse(trade.BankCardType);
+                                            if (trade.TradeType == "02") QrPayFlag = 1;
+                                            else if (trade.TradeType == "NQ") PayType = 1;
+                                            if (trade.SettleMethod == "E") VipFlag = 1;
                                         }
-                                        if (trade.TradeType == "CLOUD_PAY") QrPayFlag = 1;
-                                    }
-                                    else if (pos.BrandId == 4 || pos.BrandId == 5)
-                                    {
-                                        TradeAmount = TradeAmount / 100;
-                                        if (trade.BankCardType == "100")
-                                        {
-                                            BankCardType = 1;
-                                        }
-                                        else if (trade.BankCardType == "200")
-                                        {
-                                            BankCardType = 0;
-                                        }
-                                        if (trade.TradeType == "200") QrPayFlag = 1;
-                                        if (trade.Field1 == "1") VipFlag = 1;
-                                    }
-                                    else if (pos.BrandId == 6 || pos.BrandId == 22)
-                                    {
-                                        TradeAmount = TradeAmount / 100;
-                                        if (trade.BankCardType == "02" || trade.BankCardType == "12")
+                                        else if (pos.BrandId == 2)
                                         {
-                                            BankCardType = 1;
+                                            if (trade.TradeType == "CREDIT_BY_CARD")
+                                            {
+                                                BankCardType = 1;
+                                            }
+                                            else
+                                            {
+                                                BankCardType = 0;
+                                            }
+                                            if (trade.TradeType == "CLOUD_PAY") QrPayFlag = 1;
                                         }
-                                        else
+                                        else if (pos.BrandId == 4 || pos.BrandId == 5)
                                         {
-                                            BankCardType = 0;
+                                            TradeAmount = TradeAmount / 100;
+                                            if (trade.BankCardType == "100")
+                                            {
+                                                BankCardType = 1;
+                                            }
+                                            else if (trade.BankCardType == "200")
+                                            {
+                                                BankCardType = 0;
+                                            }
+                                            if (trade.TradeType == "200") QrPayFlag = 1;
+                                            if (trade.Field1 == "1") VipFlag = 1;
                                         }
-                                    }
-                                    else if (pos.BrandId == 7)
-                                    {
-                                        TradeAmount = TradeAmount / 100;
-                                        if (trade.BankCardType == "OA" || trade.BankCardType == "CC" || trade.BankCardType == "SCC")
+                                        else if (pos.BrandId == 6 || pos.BrandId == 22)
                                         {
-                                            BankCardType = 1;
+                                            TradeAmount = TradeAmount / 100;
+                                            if (trade.BankCardType == "02" || trade.BankCardType == "12")
+                                            {
+                                                BankCardType = 1;
+                                            }
+                                            else
+                                            {
+                                                BankCardType = 0;
+                                            }
                                         }
-                                        else
+                                        else if (pos.BrandId == 7)
                                         {
-                                            BankCardType = 0;
+                                            TradeAmount = TradeAmount / 100;
+                                            if (trade.BankCardType == "OA" || trade.BankCardType == "CC" || trade.BankCardType == "SCC")
+                                            {
+                                                BankCardType = 1;
+                                            }
+                                            else
+                                            {
+                                                BankCardType = 0;
+                                            }
                                         }
-                                    }
-                                    else if (pos.BrandId == 8 || pos.BrandId == 9)
-                                    {
-                                        TradeAmount = TradeAmount / 100;
-                                        if (trade.BankCardType == "100")
+                                        else if (pos.BrandId == 8 || pos.BrandId == 9)
                                         {
-                                            BankCardType = 1;
+                                            TradeAmount = TradeAmount / 100;
+                                            if (trade.BankCardType == "100")
+                                            {
+                                                BankCardType = 1;
+                                            }
+                                            else if (trade.BankCardType == "200")
+                                            {
+                                                BankCardType = 0;
+                                            }
+                                            if (trade.TradeType == "200") QrPayFlag = 1;
+                                            if (trade.Field1 == "1") VipFlag = 1;
                                         }
-                                        else if (trade.BankCardType == "200")
+                                        else if (pos.BrandId == 10 || pos.BrandId == 11)
                                         {
-                                            BankCardType = 0;
+                                            if (trade.BankCardType == "01")
+                                            {
+                                                BankCardType = 1;
+                                            }
+                                            else if (trade.BankCardType == "00")
+                                            {
+                                                BankCardType = 0;
+                                            }
+                                            if (trade.TradeType == "F010") QrPayFlag = 1;
                                         }
-                                        if (trade.TradeType == "200") QrPayFlag = 1;
-                                        if (trade.Field1 == "1") VipFlag = 1;
-                                    }
-                                    else if (pos.BrandId == 10 || pos.BrandId == 11)
-                                    {
-                                        if (trade.BankCardType == "01")
+                                        else if (pos.BrandId == 12 || pos.BrandId == 13) //盒易付
                                         {
-                                            BankCardType = 1;
+                                            if (trade.BankCardType == "C")
+                                            {
+                                                BankCardType = 1;
+                                            }
+                                            else if (trade.BankCardType == "D")
+                                            {
+                                                BankCardType = 0;
+                                            }
+                                            if (trade.Field3 == "1") QrPayFlag = 1;
                                         }
-                                        else if (trade.BankCardType == "00")
+                                        else if (pos.BrandId == 15 || pos.BrandId == 16) //联客宝
                                         {
-                                            BankCardType = 0;
+                                            TradeAmount = TradeAmount / 100;
+                                            // 支付类型
+                                            // 01-内卡借记卡
+                                            // 02-内卡贷记卡
+                                            // 03-银联二维码
+                                            // 11-外卡借记卡
+                                            // 12-外卡贷记卡
+                                            // 30-微信
+                                            // 31-支付宝
+                                            // M3-扫码(银联二维码、微信、支付宝)
+                                            if (trade.BankCardType == "02")
+                                            {
+                                                BankCardType = 1;
+                                            }
+                                            else
+                                            {
+                                                BankCardType = 0;
+                                            }
                                         }
-                                        if (trade.TradeType == "F010") QrPayFlag = 1;
-                                    }
-                                    else if (pos.BrandId == 12 || pos.BrandId == 13) //盒易付
-                                    {
-                                        if (trade.BankCardType == "C")
+                                        else if (pos.BrandId == 30 || pos.BrandId == 31) //拉卡拉
                                         {
-                                            BankCardType = 1;
+                                            TradeAmount = TradeAmount / 100;
+                                            if (trade.BankCardType == "01" || trade.BankCardType == "61")
+                                            {
+                                                BankCardType = 1;
+                                            }
+                                            else
+                                            {
+                                                BankCardType = 0;
+                                            }
                                         }
-                                        else if (trade.BankCardType == "D")
+                                        int BrandId = pos.BrandId;
+                                        decimal SourceTradeAmount = TradeAmount;
+                                        decimal CheckMoney = brand.ActTradeAmount > 0 ? brand.ActTradeAmount : 1000;
+                                        //判断激活条件并激活
+                                        if (TradeAmount > 0)
                                         {
-                                            BankCardType = 0;
+                                            ulong MerHelpFlag = 0;
+                                            int CapFlag = 0;
+                                            if(BankCardType == 0 && TradeAmount >= 1666.67M)
+                                            {
+                                                CapFlag = 1;
+                                            }
+                                            string HelpProfitFlag = "";
+                                            bool checkHelpProfit = db.HelpProfitMerchantForUser.Any(m => m.MerchantId == pos.BindMerchantId);
+                                            if(checkHelpProfit)
+                                            {
+                                                HelpProfitFlag = "HelpProfit";
+                                            }
+                                            int ActStatus = pos.ActivationState;
+                                            int Version = 0;
+                                            if(MerHelpFlag == 2) Version = 1;
+                                            if(MerHelpFlag == 3) Version = 2;
+                                            //盒易付和来客吧电签,稳定期自动转到稳定期A
+                                            if((pos.BrandId == 12 || pos.BrandId == 13) && MerHelpFlag == 0 && Version == 0)
+                                            {
+                                                Version = 1;
+                                            }
+                                            if(Utils.Instance.IsWifi(pos.BrandId))
+                                            {
+                                                MerHelpFlag = 1;
+                                                Version = 0;
+                                            }
+                                            decimal SettleFee = trade.SettleFee * 100;
+                                            PxcModels.TradeRecord add = db.TradeRecord.Add(new PxcModels.TradeRecord()
+                                            {
+                                                ParentNav = user.ParentNav,
+                                                CreateDate = trade.CreateDate,
+                                                UpdateDate = trade.UpdateDate,
+                                                RecordNo = trade.TradeSerialNo, //单号
+                                                UserId = pos.UserId, //创客
+                                                MerchantId = pos.BindMerchantId, //商户
+                                                MerNo = trade.MerNo, //渠道商户编号
+                                                MerHelpFlag = MerHelpFlag >= 2 ? 1 : MerHelpFlag, //1扶持周,0稳定期,2盈利期
+                                                HelpMonthCount = 0, //扶持第几个月
+                                                MerBuddyType = user.MerchantType, //商户创客类型
+                                                SnNo = TradeSnNo, //渠道SN号
+                                                TradeSerialNo = trade.ChannelSerial, //交易流水号
+                                                TradeAmount = TradeAmount, //交易金额
+                                                BankCardType = BankCardType, //银行卡类型
+                                                QrPayFlag = QrPayFlag, //云闪付标识
+                                                CapFlag = CapFlag, //借记卡是否封顶
+                                                VipFlag = VipFlag, //会员标记
+                                                PayType = PayType, //支付方式
+                                                BrandId = BrandId, //品牌
+                                                Remark = trade.TradeType == "2" && trade.ProductType == "12" ? "吱码SN:" + trade.TradeSnNo : trade.Remark, //备注
+                                                TopUserId = TopUserId, //顶级创客
+                                                MerUserId = pos.UserId, //商户直属创客M
+                                                SeoTitle = HelpProfitFlag,
+                                                Version = Version,
+                                                ActStatus = ActStatus,
+                                                CreateMan = trade.AgentNo,
+                                                UpdateMan = trade.BankCardType,
+                                                SeoKeyword = trade.SerEntryMode,
+                                                SeoDescription = trade.TradeType,
+                                                Sort = (int)SettleFee,
+                                                TradeDate = pos.BindingTime,
+                                            }).Entity;
+                                            db.SaveChanges();
                                         }
-                                        if (trade.Field3 == "1") QrPayFlag = 1;
-                                    }
-                                    else if (pos.BrandId == 15 || pos.BrandId == 16) //联客宝
-                                    {
-                                        TradeAmount = TradeAmount / 100;
-                                        // 支付类型
-                                        // 01-内卡借记卡
-                                        // 02-内卡贷记卡
-                                        // 03-银联二维码
-                                        // 11-外卡借记卡
-                                        // 12-外卡贷记卡
-                                        // 30-微信
-                                        // 31-支付宝
-                                        // M3-扫码(银联二维码、微信、支付宝)
-                                        if (trade.BankCardType == "02")
-                                        {
-                                            BankCardType = 1;
-                                        }
-                                        else
-                                        {
-                                            BankCardType = 0;
-                                        }
-                                    }
-                                    else if (pos.BrandId == 30 || pos.BrandId == 31) //拉卡拉
-                                    {
-                                        TradeAmount = TradeAmount / 100;
-                                        if (trade.BankCardType == "01" || trade.BankCardType == "61")
-                                        {
-                                            BankCardType = 1;
-                                        }
-                                        else
-                                        {
-                                            BankCardType = 0;
-                                        }
-                                    }
-                                    int BrandId = pos.BrandId;
-                                    decimal SourceTradeAmount = TradeAmount;
-                                    decimal CheckMoney = brand.ActTradeAmount > 0 ? brand.ActTradeAmount : 1000;
-                                    //判断激活条件并激活
-                                    if (TradeAmount > 0)
-                                    {
-                                        ulong MerHelpFlag = 0;
-                                        int CapFlag = 0;
-                                        if(BankCardType == 0 && TradeAmount >= 1666.67M)
-                                        {
-                                            CapFlag = 1;
-                                        }
-                                        string HelpProfitFlag = "";
-                                        bool checkHelpProfit = db.HelpProfitMerchantForUser.Any(m => m.MerchantId == pos.BindMerchantId);
-                                        if(checkHelpProfit)
-                                        {
-                                            HelpProfitFlag = "HelpProfit";
-                                        }
-                                        int ActStatus = pos.ActivationState;
-                                        int Version = 0;
-                                        if(MerHelpFlag == 2) Version = 1;
-                                        if(MerHelpFlag == 3) Version = 2;
-                                        //盒易付和来客吧电签,稳定期自动转到稳定期A
-                                        if((pos.BrandId == 12 || pos.BrandId == 13) && MerHelpFlag == 0 && Version == 0)
-                                        {
-                                            Version = 1;
-                                        }
-                                        if(Utils.Instance.IsWifi(pos.BrandId))
-                                        {
-                                            MerHelpFlag = 1;
-                                            Version = 0;
-                                        }
-                                        decimal SettleFee = trade.SettleFee * 100;
-                                        PxcModels.TradeRecord add = db.TradeRecord.Add(new PxcModels.TradeRecord()
-                                        {
-                                            ParentNav = user.ParentNav,
-                                            CreateDate = trade.CreateDate,
-                                            UpdateDate = trade.UpdateDate,
-                                            RecordNo = trade.TradeSerialNo, //单号
-                                            UserId = pos.UserId, //创客
-                                            MerchantId = pos.BindMerchantId, //商户
-                                            MerNo = trade.MerNo, //渠道商户编号
-                                            MerHelpFlag = MerHelpFlag >= 2 ? 1 : MerHelpFlag, //1扶持周,0稳定期,2盈利期
-                                            HelpMonthCount = 0, //扶持第几个月
-                                            MerBuddyType = user.MerchantType, //商户创客类型
-                                            SnNo = TradeSnNo, //渠道SN号
-                                            TradeSerialNo = trade.ChannelSerial, //交易流水号
-                                            TradeAmount = TradeAmount, //交易金额
-                                            BankCardType = BankCardType, //银行卡类型
-                                            QrPayFlag = QrPayFlag, //云闪付标识
-                                            CapFlag = CapFlag, //借记卡是否封顶
-                                            VipFlag = VipFlag, //会员标记
-                                            PayType = PayType, //支付方式
-                                            BrandId = BrandId, //品牌
-                                            Remark = trade.TradeType == "2" && trade.ProductType == "12" ? "吱码SN:" + trade.TradeSnNo : trade.Remark, //备注
-                                            TopUserId = TopUserId, //顶级创客
-                                            MerUserId = pos.UserId, //商户直属创客M
-                                            SeoTitle = HelpProfitFlag,
-                                            Version = Version,
-                                            ActStatus = ActStatus,
-                                            CreateMan = trade.AgentNo,
-                                            UpdateMan = trade.BankCardType,
-                                            SeoKeyword = trade.SerEntryMode,
-                                            SeoDescription = trade.TradeType,
-                                            Sort = (int)SettleFee,
-                                            TradeDate = pos.BindingTime,
-                                        }).Entity;
-                                        db.SaveChanges();
                                     }
                                 }
                             }