Exemple #1
0
        public async Task <IActionResult> Edit(Guid id, [Bind("Id,ApplicationUserId,ScoreValueId,PostId,Date")] ScoreLog scoreLog)
        {
            if (id != scoreLog.Id)
            {
                return(NotFound());
            }

            if (ModelState.IsValid)
            {
                try
                {
                    _context.Update(scoreLog);
                    await _context.SaveChangesAsync();
                }
                catch (DbUpdateConcurrencyException)
                {
                    if (!ScoreLogExists(scoreLog.Id))
                    {
                        return(NotFound());
                    }
                    else
                    {
                        throw;
                    }
                }
                return(RedirectToAction(nameof(Index)));
            }
            ViewData["ApplicationUserId"] = new SelectList(_context.ApplicationUsers, "Id", "Id", scoreLog.ApplicationUserId);
            ViewData["PostId"]            = new SelectList(_context.Posts, "Id", "Body", scoreLog.PostId);
            ViewData["ScoreValueId"]      = new SelectList(_context.ScoreValues, "Id", "Id", scoreLog.ScoreValueId);
            return(View(scoreLog));
        }
Exemple #2
0
        // ================================

        /// <summary>Call this function to reset the game</summary>
        /// <param name="ResetLogs">Whether the logs should be reset</param>
        /// <param name="ResetRenderer">Whether the renderer should be reset</param>
        internal static void Reset(bool ResetLogs, bool ResetRenderer)
        {
            // track manager
            for (int i = 0; i < Program.CurrentRoute.Tracks.Count; i++)
            {
                int key = Program.CurrentRoute.Tracks.ElementAt(i).Key;
                Program.CurrentRoute.Tracks[key] = new Track();
            }
            // train manager
            TrainManager.Trains = new TrainManager.Train[] { };
            // game
            Interface.ClearMessages();
            CurrentInterface             = InterfaceType.Normal;
            Program.CurrentRoute.Comment = "";
            Program.CurrentRoute.Image   = "";
            Program.CurrentRoute.Atmosphere.AccelerationDueToGravity = 9.80665;
            Program.CurrentRoute.Atmosphere.InitialAirPressure       = 101325.0;
            Program.CurrentRoute.Atmosphere.InitialAirTemperature    = 293.15;
            Program.CurrentRoute.Atmosphere.InitialElevation         = 0.0;
            Program.CurrentRoute.Atmosphere.SeaLevelAirPressure      = 101325.0;
            Program.CurrentRoute.Atmosphere.SeaLevelAirTemperature   = 293.15;
            Program.CurrentRoute.BufferTrackPositions = new double[] { };
            //Messages = new Message[] { };
            Program.Renderer.Marker.MarkerTextures = new Texture[] { };
            Program.CurrentRoute.PointsOfInterest  = new PointOfInterest[] { };
            PrecedingTrainTimeDeltas = new double[] { };
            PrecedingTrainSpeedLimit = double.PositiveInfinity;
            Program.CurrentRoute.BogusPreTrainInstructions = new BogusPreTrainInstruction[] { };
            TrainName  = "";
            TrainStart = TrainStartMode.EmergencyBrakesNoAts;
            Program.CurrentRoute.NoFogStart  = (float)Math.Max(1.33333333333333 * Interface.CurrentOptions.ViewingDistance, 800.0);
            Program.CurrentRoute.NoFogEnd    = (float)Math.Max(2.66666666666667 * Interface.CurrentOptions.ViewingDistance, 1600.0);
            Program.CurrentRoute.PreviousFog = new Fog(Program.CurrentRoute.NoFogStart, Program.CurrentRoute.NoFogEnd, Color24.Grey, 0.0);
            Program.CurrentRoute.CurrentFog  = new Fog(Program.CurrentRoute.NoFogStart, Program.CurrentRoute.NoFogEnd, Color24.Grey, 0.5);
            Program.CurrentRoute.NextFog     = new Fog(Program.CurrentRoute.NoFogStart, Program.CurrentRoute.NoFogEnd, Color24.Grey, 1.0);
            if (ResetLogs)
            {
                LogRouteName       = "";
                LogTrainName       = "";
                LogDateTime        = DateTime.Now;
                CurrentScore       = new Score();
                ScoreMessages      = new ScoreMessage[] { };
                ScoreLogs          = new ScoreLog[64];
                ScoreLogCount      = 0;
                BlackBoxEntries    = new BlackBoxEntry[256];
                BlackBoxEntryCount = 0;
                BlackBoxNextUpdate = 0.0;
            }
            // renderer
            if (ResetRenderer)
            {
                Program.Renderer.InfoTotalTriangles     = 0;
                Program.Renderer.InfoTotalTriangleStrip = 0;
                Program.Renderer.InfoTotalQuads         = 0;
                Program.Renderer.InfoTotalQuadStrip     = 0;
                Program.Renderer.InfoTotalPolygon       = 0;
                Program.Renderer.Reset();
            }
        }
Exemple #3
0
        // ================================

        /// <summary>Call this function to reset the game</summary>
        /// <param name="ResetLogs">Whether the logs should be reset</param>
        internal static void Reset(bool ResetLogs)
        {
            // track manager
            for (int i = 0; i < TrackManager.Tracks.Length; i++)
            {
                TrackManager.Tracks[i] = new TrackManager.Track();
            }
            // train manager
            TrainManager.Trains = new TrainManager.Train[] { };
            // game
            Interface.ClearMessages();
            CurrentInterface = InterfaceType.Normal;
            RouteComment     = "";
            RouteImage       = "";
            RouteAccelerationDueToGravity = 9.80665;
            RouteRailGauge              = 1.435;
            RouteInitialAirPressure     = 101325.0;
            RouteInitialAirTemperature  = 293.15;
            RouteInitialElevation       = 0.0;
            RouteSeaLevelAirPressure    = 101325.0;
            RouteSeaLevelAirTemperature = 293.15;
            Stations = new RouteStation[] { };
            CurrentRoute.Sections = new Section[] { };
            BufferTrackPositions  = new double[] { };
            //Messages = new Message[] { };
            MarkerTextures           = new Texture[] { };
            PointsOfInterest         = new PointOfInterest[] { };
            PrecedingTrainTimeDeltas = new double[] { };
            PrecedingTrainSpeedLimit = double.PositiveInfinity;
            CurrentRoute.BogusPretrainInstructions = new BogusPretrainInstruction[] { };
            TrainName  = "";
            TrainStart = TrainStartMode.EmergencyBrakesNoAts;
            CurrentRoute.NoFogStart   = (float)Math.Max(1.33333333333333 * Interface.CurrentOptions.ViewingDistance, 800.0);
            CurrentRoute.NoFogEnd     = (float)Math.Max(2.66666666666667 * Interface.CurrentOptions.ViewingDistance, 1600.0);
            CurrentRoute.PreviousFog  = new Fog(CurrentRoute.NoFogStart, CurrentRoute.NoFogEnd, Color24.Grey, 0.0);
            CurrentRoute.CurrentFog   = new Fog(CurrentRoute.NoFogStart, CurrentRoute.NoFogEnd, Color24.Grey, 0.5);
            CurrentRoute.NextFog      = new Fog(CurrentRoute.NoFogStart, CurrentRoute.NoFogEnd, Color24.Grey, 1.0);
            InfoTotalTriangles        = 0;
            InfoTotalTriangleStrip    = 0;
            InfoTotalQuads            = 0;
            InfoTotalQuadStrip        = 0;
            InfoTotalPolygon          = 0;
            InfoStaticOpaqueFaceCount = 0;
            if (ResetLogs)
            {
                LogRouteName       = "";
                LogTrainName       = "";
                LogDateTime        = DateTime.Now;
                CurrentScore       = new Score();
                ScoreMessages      = new ScoreMessage[] { };
                ScoreLogs          = new ScoreLog[64];
                ScoreLogCount      = 0;
                BlackBoxEntries    = new BlackBoxEntry[256];
                BlackBoxEntryCount = 0;
                BlackBoxNextUpdate = 0.0;
            }
            // renderer
            Renderer.Reset();
        }
Exemple #4
0
        /// <summary>Call this function to reset the game</summary>
        /// <param name="ResetLogs">Whether the logs should be reset</param>
        internal static void Reset(bool ResetLogs)
        {
            // track manager
            for (int i = 0; i < Program.CurrentRoute.Tracks.Count; i++)
            {
                int key = Program.CurrentRoute.Tracks.ElementAt(i).Key;
                Program.CurrentRoute.Tracks[key] = new Track();
            }
            // train manager
            Program.TrainManager.Trains = new TrainBase[] { };
            // game
            Interface.LogMessages.Clear();
            Program.CurrentHost.MissingFiles.Clear();
            if (Program.Renderer.CurrentInterface != InterfaceType.Menu)
            {
                Program.Renderer.CurrentInterface = InterfaceType.Normal;
            }

            Program.CurrentRoute.Comment              = "";
            Program.CurrentRoute.Image                = "";
            Program.CurrentRoute.Atmosphere           = new Atmosphere();
            Program.CurrentRoute.LightDefinitions     = new LightDefinition[] { };
            Program.CurrentRoute.BufferTrackPositions = new double[] { };
            //Messages = new Message[] { };
            Program.Renderer.Marker.MarkerTextures            = new Texture[] { };
            Program.CurrentRoute.PointsOfInterest             = new PointOfInterest[] { };
            Program.CurrentRoute.PrecedingTrainTimeDeltas     = new double[] { };
            Interface.CurrentOptions.PrecedingTrainSpeedLimit = double.PositiveInfinity;
            Program.CurrentRoute.BogusPreTrainInstructions    = new BogusPreTrainInstruction[] { };
            Interface.CurrentOptions.TrainName  = "";
            Interface.CurrentOptions.TrainStart = TrainStartMode.EmergencyBrakesNoAts;
            Program.CurrentRoute.NoFogStart     = (float)Math.Max(1.33333333333333 * Interface.CurrentOptions.ViewingDistance, 800.0);
            Program.CurrentRoute.NoFogEnd       = (float)Math.Max(2.66666666666667 * Interface.CurrentOptions.ViewingDistance, 1600.0);
            Program.CurrentRoute.PreviousFog    = new Fog(Program.CurrentRoute.NoFogStart, Program.CurrentRoute.NoFogEnd, Color24.Grey, 0.0);
            Program.CurrentRoute.CurrentFog     = new Fog(Program.CurrentRoute.NoFogStart, Program.CurrentRoute.NoFogEnd, Color24.Grey, 0.5);
            Program.CurrentRoute.NextFog        = new Fog(Program.CurrentRoute.NoFogStart, Program.CurrentRoute.NoFogEnd, Color24.Grey, 1.0);
            if (ResetLogs)
            {
                LogRouteName       = "";
                LogTrainName       = "";
                LogDateTime        = DateTime.Now;
                CurrentScore       = new Score();
                ScoreMessages      = new ScoreMessage[] { };
                ScoreLogs          = new ScoreLog[64];
                ScoreLogCount      = 0;
                BlackBoxEntries    = new BlackBoxEntry[256];
                BlackBoxEntryCount = 0;
                BlackBoxNextUpdate = 0.0;
            }
        }
Exemple #5
0
        /***********************************************
        * LogEvent()
        *    Logs all events that affect user's score
        ***********************************************/
        private static void LogEvent(string targetId, string eventOwner, int points, string eventName)
        {
            ScoreLog newEvent = new ScoreLog
            {
                TargetId       = targetId,
                EventOwnerName = eventOwner,
                Event          = eventName,
                Points         = points,
                Timestamp      = DateTime.Now
            };

            db.ScoreLogs.Add(newEvent);
            db.SaveChanges();
        }
Exemple #6
0
        public async Task <IActionResult> Create([Bind("Id,ApplicationUserId,ScoreValueId,PostId,Date")] ScoreLog scoreLog)
        {
            if (ModelState.IsValid)
            {
                scoreLog.Id = Guid.NewGuid();
                _context.Add(scoreLog);
                await _context.SaveChangesAsync();

                return(RedirectToAction(nameof(Index)));
            }
            ViewData["ApplicationUserId"] = new SelectList(_context.ApplicationUsers, "Id", "Id", scoreLog.ApplicationUserId);
            ViewData["PostId"]            = new SelectList(_context.Posts, "Id", "Body", scoreLog.PostId);
            ViewData["ScoreValueId"]      = new SelectList(_context.ScoreValues, "Id", "Id", scoreLog.ScoreValueId);
            return(View(scoreLog));
        }
Exemple #7
0
        public bool Insert(ScoreLog scoreLog)
        {
            bool isTrue = false;

            try
            {
                using (var db = BaseDal.WriteSanNongDunDbBase())
                {
                    isTrue = db.Insert <ScoreLog>(scoreLog);
                    if (!isTrue)
                    {
                        LogHelper.WriteInfo(typeof(ScoreLogDal), "Insert--添加记录失败", Engineer.ccc, scoreLog);
                    }
                }
            }
            catch (Exception ex)
            {
                LogHelper.WriteLog(typeof(ScoreLogDal), "Insert", Engineer.ccc, scoreLog, ex);
            }
            return(isTrue);
        }
        // Lưu lại log điểm của bài kiểm tra
        private async Task SaveScoreLog(Guid examLogId, Guid?destId, float scores, float maxScores)
        {
            if (destId == null || destId == Guid.Empty)
            {
                return;
            }
            var scoreLog = new ScoreLog
            {
                ExamLogId    = examLogId,
                DestId       = destId.Value,
                Scores       = scores,
                MaxScores    = maxScores,
                RateInParent = scores / maxScores
            };

            // Xóa các bản đã tổn tại có examLogId và desId trùng đã tồn tại trước đó
            await ScoreLogRepository.DeleteAsync(x => x.ExamLogId == examLogId && x.DestId == destId.Value);

            // Lưu mới vào CSDL
            await ScoreLogRepository.InsertAsync(scoreLog);
        }
Exemple #9
0
		// ================================

		internal static void Reset(bool ResetLogs) {
			// track manager
			TrackManager.CurrentTrack = new TrackManager.Track();
			// train manager
			TrainManager.Trains = new TrainManager.Train[] { };
			// game
			Debug.ClearMessages();
			CurrentInterface = InterfaceType.Normal;
			RouteComment = "";
			RouteImage = "";
			RouteAccelerationDueToGravity = 9.80665;
			RouteRailGauge = 1.435;
			RouteInitialAirPressure = 101325.0;
			RouteInitialAirTemperature = 293.15;
			RouteInitialElevation = 0.0;
			RouteSeaLevelAirPressure = 101325.0;
			RouteSeaLevelAirTemperature = 293.15;
			Stations = new Station[] { };
			Sections = new Section[] { };
			BufferTrackPositions = new double[] { };
			Messages = new Message[] { };
			MarkerTextures = new Textures.Texture[] { };
			PointsOfInterest = new PointOfInterest[] { };
			PrecedingTrainTimeDeltas = new double[] { };
			PrecedingTrainSpeedLimit = double.PositiveInfinity;
			BogusPretrainInstructions = new BogusPretrainInstruction[] { };
			TrainName = "";
			TrainStart = TrainStartMode.EmergencyBrakesNoAts;
			NoFogStart = (float)Math.Max(1.33333333333333 * Options.Current.ViewingDistance, 800.0);
			NoFogEnd = (float)Math.Max(2.66666666666667 * Options.Current.ViewingDistance, 1600.0);
			PreviousFog = new Fog(NoFogStart, NoFogEnd, new Color24(128, 128, 128), 0.0);
			CurrentFog = new Fog(NoFogStart, NoFogEnd, new Color24(128, 128, 128), 0.5);
			NextFog = new Fog(NoFogStart, NoFogEnd, new Color24(128, 128, 128), 1.0);
			InfoTotalTriangles = 0;
			InfoTotalTriangleStrip = 0;
			InfoTotalQuads = 0;
			InfoTotalQuadStrip = 0;
			InfoTotalPolygon = 0;
			InfoStaticOpaqueFaceCount = 0;
			if (ResetLogs) {
				LogRouteName = "";
				LogTrainName = "";
				LogDateTime = DateTime.Now;
				CurrentScore = new Score();
				ScoreMessages = new ScoreMessage[] { };
				ScoreLogs = new ScoreLog[64];
				ScoreLogCount = 0;
				BlackBoxEntries = new BlackBoxEntry[256];
				BlackBoxEntryCount = 0;
				BlackBoxNextUpdate = 0.0;
			}
			// renderer
			Renderer.Reset();
		}
        public ReturnModel UpdateUserScore(string userName, decimal score, int plusType = 1)
        {
            ReturnModel model    = new ReturnModel();
            UserInfo    userInfo = _userDal.GetUserByLoginName(userName);

            if (userInfo == null)
            {
                model.IsTrue = false;
                model.Msg    = "用户不存在!";
                return(model);
            }

            AccountInfo acc = _accDal.GetAccByUserId(userInfo.UserId);

            if (acc == null)
            {
                model.IsTrue = false;
                model.Msg    = "用户个人账户不存在!";
                return(model);
            }

            if (plusType == 1)
            {
                acc.Score += score;
                model.Msg  = "商城添加score";
            }
            else if (plusType == 2)
            {
                if (acc.Score - score < 0 && score <= 0)
                {
                    model.IsTrue = false;
                    model.Msg    = "该score数量不足!";
                    return(model);
                }
                acc.Score -= score;
                model.Msg  = "商城减掉score";
            }
            else
            {
                model.IsTrue = false;
                model.Msg    = "plusType参数错误!";
                return(model);
            }

            model.IsTrue = _accDal.UpdateAccInfo(acc);
            LogHelper.WriteInfo(typeof(UserInfo), " UpdateUserScore ===== 修改账户ep记录", Engineer.ccc, new { userName = userName, ep = score, plusType = plusType });
            if (model.IsTrue)
            {
                ScoreLog scoreLog = new ScoreLog();
                scoreLog.UserId     = acc.UserId;
                scoreLog.Remark     = "商城积分兑换";
                scoreLog.LogCount   = Convert.ToDecimal(score);
                scoreLog.CreateTime = DateTime.Now;

                _scoreLogDal.Insert(scoreLog);
                LogHelper.WriteInfo(typeof(UserInfo), " UpdateUserScore ===== 添加电商api===score加减记录", Engineer.ccc, scoreLog);
                model.Msg = "更新成功!";
            }
            else
            {
                model.Msg = "更新失败!";
            }
            return(model);
        }
        public ReturnModel OrderOverApi(string userName, int count)
        {
            ReturnModel returnModel = new ReturnModel();

            returnModel.IsTrue = false;

            UserInfo user = _userDal.GetUserByLoginName(userName);

            if (user != null)
            {
                user.Level  += count;
                user.OutNum += count;
                if (user.Level >= 2)
                {
                    user.OutNum = 2;
                    user.Level  = 2;
                }


                user.IsActivation  = 1;
                returnModel.IsTrue = _userDal.UpdateUserInfo(user);
                if (returnModel.IsTrue)
                {
                    //查看直推人是否激活
                    UserInfo parentUser = _userDal.GetParentIdByUserId(user.ParentId);
                    #region //查看直推人是否激活   直推返利
                    if (parentUser.IsActivation == 1)
                    {
                        decimal zhitui = 0;
                        switch (parentUser.Level)
                        {
                        case 1:
                            zhitui = Convert.ToDecimal(330 * 0.15);
                            break;

                        case 2:
                            zhitui = Convert.ToDecimal(660 * 0.25);
                            break;
                        }
                        //添加直推人账户
                        AccountInfo parentAcc = _accDal.GetAccByUserId(parentUser.UserId);
                        parentAcc.Score      += zhitui * Convert.ToDecimal(0.1);
                        parentAcc.GreenCount += zhitui * Convert.ToDecimal(0.9);
                        parentAcc.GreenTotal += zhitui;
                        returnModel.IsTrue    = _accDal.UpdateAccInfo(parentAcc);
                        if (!returnModel.IsTrue)
                        {
                            returnModel.Msg = "直推返利,账户更新失败!";
                        }
                        //添加积分记录

                        ScoreLog scoreLog = new ScoreLog();
                        scoreLog.UserId     = parentUser.UserId;
                        scoreLog.Remark     = "推荐积分" + user.UserName;
                        scoreLog.LogCount   = zhitui * Convert.ToDecimal(0.1);
                        scoreLog.CreateTime = DateTime.Now;
                        returnModel.IsTrue  = _scoreLogDal.Insert(scoreLog);
                        if (!returnModel.IsTrue)
                        {
                            returnModel.Msg = "直推积分添加记录失败!";
                            LogHelper.WriteInfo(typeof(UserInfo), " OrderOverApi =====直推积分添加记录失败 ", Engineer.ccc, scoreLog);
                        }
                        //添加绿氧记录
                        StatusLog statusLog = new StatusLog();
                        statusLog.LogCount   = zhitui * Convert.ToDecimal(0.9);
                        statusLog.CreateTime = DateTime.Now;
                        statusLog.LogType    = 2;//1,静态  2,直推
                        statusLog.UserId     = parentUser.UserId;
                        statusLog.ReUserId   = user.UserId;
                        returnModel.IsTrue   = _statusLogDal.Insert(statusLog);
                        if (!returnModel.IsTrue)
                        {
                            returnModel.Msg = "直推绿氧添加记录失败!";
                            LogHelper.WriteInfo(typeof(UserInfo), " OrderOverApi =====直推绿氧添加记录失败 ", Engineer.ccc, scoreLog);
                        }
                    }
                    #endregion

                    //向上递归添加业绩
                    GetUpTeamList(user, count);
                    //添加每日新增业绩
                    GlobalConfig gc = _GlobalConfigDal.GetGlobalConfig("EveryDate");
                    gc.ConfigValue = (Convert.ToDecimal(gc.ConfigValue) + (count * 330)).ToString();
                    _GlobalConfigDal.UpdateGlobalConfig(gc);
                }
                else
                {
                    returnModel.Msg = "修改级别,激活失败";
                }
            }

            return(returnModel);
        }
Exemple #12
0
        public void Execute(JobExecutionContext context)
        {
            List <UserInfo> list = new List <UserInfo>();
            GlobalConfig    gc   = _GlobalConfigDal.GetGlobalConfig("EveryDate");

            list = _UserDal.GetAllUser();

            int sumUserCount = 0;

            foreach (var item in list)
            {
                sumUserCount += item.Level;
            }
            double everyDate = Convert.ToDouble(gc.ConfigValue);
            double everyAge  = everyDate / Convert.ToDouble(sumUserCount) * 0.2;

            foreach (var item in list)
            {
                double      userSum   = Convert.ToDouble(item.Level) * everyAge;
                double      userGreen = userSum * 0.9;
                double      userScore = userSum * 0.1;
                AccountInfo acc       = new AccountInfo();
                acc = _UserAccountDal.GetAccByUserId(item.UserId);
                if (acc != null)
                {
                    acc.Score          += Convert.ToDecimal(userScore);
                    acc.GreenCount     += Convert.ToDecimal(userGreen);
                    acc.StaticsRelease += Convert.ToDecimal(userGreen);
                    acc.GreenTotal     += Convert.ToDecimal(userSum);
                    bool isTrue = _UserAccountDal.UpdateAccInfo(acc);
                    if (!isTrue)
                    {
                        LogHelper.WriteInfo(typeof(StatusJob), "静态修改用户待释放资产失败!", Engineer.ccc, new{ userid = item.UserId, userSum = userSum, userGreen = userGreen, userScore = userScore, sumUserCount = sumUserCount, everyDate = everyDate, everyAge = everyAge });
                    }

                    //添加静态绿养记录
                    StatusLog statusLog = new StatusLog();
                    statusLog.LogCount   = Convert.ToDecimal(userGreen);
                    statusLog.CreateTime = DateTime.Now;
                    statusLog.LogType    = 1;//1,静态  2,直推
                    statusLog.UserId     = item.UserId;
                    bool isTrueStatus = _statusLogDal.Insert(statusLog);
                    if (!isTrueStatus)
                    {
                        LogHelper.WriteInfo(typeof(StatusJob), "静态绿养日志失败!", Engineer.ccc, statusLog);
                    }

                    //添加静态积分记录
                    ScoreLog scoreLog = new ScoreLog();
                    scoreLog.UserId     = item.UserId;
                    scoreLog.Remark     = "静态积分";
                    scoreLog.LogCount   = Convert.ToDecimal(userScore);
                    scoreLog.CreateTime = DateTime.Now;

                    bool isTrueScore = _scoreLogDal.Insert(scoreLog);
                    if (!isTrueScore)
                    {
                        LogHelper.WriteInfo(typeof(StatusJob), "静态积分日志失败!", Engineer.ccc, scoreLog);
                    }
                }

                ////清除今日新增
                //gc.ConfigValue = "0";
                //bool isTrueGc= _GlobalConfigDal.UpdateGlobalConfig(gc);
                //if (!isTrueGc)
                //{
                //    LogHelper.WriteInfo(typeof(StatusJob), "清除今日新增失败!", Engineer.ccc, gc);
                //}
            }
        }
Exemple #13
0
        public void Execute(JobExecutionContext context)
        {
            List <AccountInfo> accAllList = new List <AccountInfo>();
            //List<UserInfo> list = new List<UserInfo>();
            GlobalConfig gc = _GlobalConfigDal.GetGlobalConfig("EveryDate");

            //list = _UserDal.GetAllUser();
            accAllList = _UserAccountDal.GetAllAcc();
            int hongBaoSum = 0;

            //获取红包总数
            foreach (var item in accAllList)
            {
                AccountInfo acc = new AccountInfo();
                acc = _UserAccountDal.GetAccByUserId(item.UserId);
                if (acc.LeftCount <= acc.RightCount)
                {
                    hongBaoSum += acc.LeftCount;
                }
                else
                {
                    hongBaoSum += acc.RightCount;
                }
            }

            //获取每个红包平均值
            double everyDate = Convert.ToDouble(gc.ConfigValue);
            double everyAge  = everyDate / Convert.ToDouble(hongBaoSum) * 0.15;

            foreach (var item in accAllList)
            {
                UserInfo user = _UserDal.GetUserById(item.UserId);

                double userSum      = 0;
                int    hongbaoCount = 0;
                if (item.LeftAchievement <= item.RightAchievement)
                {
                    userSum     += Convert.ToDouble(item.LeftCount) * everyAge;
                    hongbaoCount = item.LeftCount;
                }
                else
                {
                    userSum     += Convert.ToDouble(item.RightCount) * everyAge;
                    hongbaoCount = item.RightCount;
                }
                //获取每人  积分 和绿养
                double userGreen = userSum * 0.9;
                double userScore = userSum * 0.1;

                //直推返利四层
                #region 直推返利四层
                GetUpFourUserAccount(user, userGreen, userScore, hongbaoCount);


                #endregion


                AccountInfo acc = new AccountInfo();
                acc = _UserAccountDal.GetAccByUserId(item.UserId);
                if (acc != null)
                {
                    acc.Score          += Convert.ToDecimal(userScore);
                    acc.GreenCount     += Convert.ToDecimal(userGreen);
                    acc.StaticsRelease += Convert.ToDecimal(userGreen);
                    acc.GreenTotal     += Convert.ToDecimal(userSum);
                    bool isTrue = _UserAccountDal.UpdateAccInfo(acc);
                    if (!isTrue)
                    {
                        LogHelper.WriteInfo(typeof(StatusJob), "红包用户待释放资产失败!", Engineer.ccc, new { userid = item.UserId, userSum = userSum, userGreen = userGreen, userScore = userScore, sumUserCount = hongBaoSum, everyDate = everyDate, everyAge = everyAge });
                    }

                    //添加红包记录
                    HongBaoLog hongBaoLog = new HongBaoLog();
                    hongBaoLog.LogCount     = Convert.ToDecimal(userGreen);
                    hongBaoLog.CreateTime   = DateTime.Now;
                    hongBaoLog.HongBaoCount = hongbaoCount;
                    hongBaoLog.UserId       = item.UserId;
                    hongBaoLog.LogType      = 1;//1,自己业绩红包  2,返利4层
                    hongBaoLog.ReUserId     = item.UserId;
                    bool isTrueStatus = _hongBaoLogDal.Insert(hongBaoLog);
                    if (!isTrueStatus)
                    {
                        LogHelper.WriteInfo(typeof(StatusJob), "红包日志失败!", Engineer.ccc, hongBaoLog);
                    }

                    //添加红包积分记录
                    ScoreLog scoreLog = new ScoreLog();
                    scoreLog.UserId     = item.UserId;
                    scoreLog.Remark     = "红包积分";
                    scoreLog.LogCount   = Convert.ToDecimal(userScore);
                    scoreLog.CreateTime = DateTime.Now;

                    bool isTrueScore = _scoreLogDal.Insert(scoreLog);
                    if (!isTrueScore)
                    {
                        LogHelper.WriteInfo(typeof(StatusJob), "红包积分日志失败!", Engineer.ccc, scoreLog);
                    }
                }
            }
        }
Exemple #14
0
        /// <summary>
        /// 获取直推四层账户  返利
        /// </summary>
        /// <param name="parentId"></param>
        /// <returns></returns>
        public void GetUpFourUserAccount(UserInfo user, double userGreen, double userScore, int hongbaoCount)
        {
            List <AccountInfo> list = new List <AccountInfo>();

            #region 第一层
            UserInfo user1 = _UserDal.GetParentIdByUserId(user.ParentId);
            if (user1 == null)
            {
                return;
            }
            AccountInfo acc1         = _UserAccountDal.GetAccByUserId(user1.UserId);
            decimal     rebateScore1 = Convert.ToDecimal(userScore * 0.3);
            decimal     rebateGreen1 = Convert.ToDecimal(userGreen * 0.3);
            acc1.Score      += rebateScore1;
            acc1.GreenCount += rebateGreen1;
            acc1.GreenTotal += Convert.ToDecimal(rebateScore1 + rebateGreen1);

            bool isTrue = _UserAccountDal.UpdateAccInfo(acc1);
            if (!isTrue)
            {
                LogHelper.WriteInfo(typeof(StatusJob), "红包返利第一层失败!", Engineer.ccc, acc1);
            }
            //添加返利红包记录
            #region 添加返利红包记录
            HongBaoLog hongBaoLog = new HongBaoLog();
            hongBaoLog.LogCount     = rebateGreen1;
            hongBaoLog.CreateTime   = DateTime.Now;
            hongBaoLog.HongBaoCount = hongbaoCount;
            hongBaoLog.UserId       = acc1.UserId;
            hongBaoLog.LogType      = 2;//1,自己业绩红包  2,返利4层
            hongBaoLog.ReUserId     = user.UserId;
            bool isTrueStatus = _hongBaoLogDal.Insert(hongBaoLog);
            if (!isTrueStatus)
            {
                LogHelper.WriteInfo(typeof(StatusJob), "红包日志失败!", Engineer.ccc, hongBaoLog);
            }


            #endregion
            //添加红包积分记录
            #region 返利红包记录
            ScoreLog scoreLog1 = new ScoreLog();
            scoreLog1.UserId     = acc1.UserId;
            scoreLog1.Remark     = "业绩推荐积分";
            scoreLog1.LogCount   = rebateScore1;
            scoreLog1.CreateTime = DateTime.Now;

            bool isTrueScore = _scoreLogDal.Insert(scoreLog1);
            if (!isTrueScore)
            {
                LogHelper.WriteInfo(typeof(StatusJob), "红包积分日志失败!", Engineer.ccc, scoreLog1);
            }

            #endregion

            #endregion

            #region 第二层

            UserInfo user2 = _UserDal.GetParentIdByUserId(user1.ParentId);
            if (user2 == null)
            {
                return;
            }
            AccountInfo acc2         = _UserAccountDal.GetAccByUserId(user2.UserId);
            decimal     rebateScore2 = rebateScore1 * Convert.ToDecimal(0.3);
            decimal     rebateGreen2 = rebateGreen1 * Convert.ToDecimal(0.3);
            acc2.Score      += rebateScore2;
            acc2.GreenCount += rebateGreen2;
            acc2.GreenTotal += Convert.ToDecimal(rebateScore2 + rebateGreen2);
            bool isTrue2 = _UserAccountDal.UpdateAccInfo(acc2);
            if (!isTrue2)
            {
                LogHelper.WriteInfo(typeof(StatusJob), "红包返利第二层失败!", Engineer.ccc, acc2);
            }


            //添加返利红包记录
            #region 添加返利红包记录
            HongBaoLog hongBaoLog2 = new HongBaoLog();
            hongBaoLog2.LogCount     = Convert.ToDecimal(rebateGreen2);
            hongBaoLog2.CreateTime   = DateTime.Now;
            hongBaoLog2.HongBaoCount = hongbaoCount;
            hongBaoLog2.UserId       = user2.UserId;
            hongBaoLog2.LogType      = 2;//1,自己业绩红包  2,返利4层
            hongBaoLog2.ReUserId     = user.UserId;
            bool isTrueStatus2 = _hongBaoLogDal.Insert(hongBaoLog2);
            if (!isTrueStatus2)
            {
                LogHelper.WriteInfo(typeof(StatusJob), "业绩推荐日志失败!", Engineer.ccc, hongBaoLog2);
            }


            #endregion
            //添加红包积分记录
            #region 返利红包记录
            ScoreLog scoreLog2 = new ScoreLog();
            scoreLog2.UserId     = acc2.UserId;
            scoreLog2.Remark     = "业绩推荐积分";
            scoreLog2.LogCount   = rebateScore2;
            scoreLog2.CreateTime = DateTime.Now;

            bool isTrueScore2 = _scoreLogDal.Insert(scoreLog2);
            if (!isTrueScore2)
            {
                LogHelper.WriteInfo(typeof(StatusJob), "推荐积分日志失败!", Engineer.ccc, scoreLog2);
            }

            #endregion


            #endregion

            #region 第三层

            UserInfo user3 = _UserDal.GetParentIdByUserId(user2.ParentId);
            if (user3 == null)
            {
                return;
            }
            AccountInfo acc3         = _UserAccountDal.GetAccByUserId(user3.UserId);
            decimal     rebateScore3 = rebateScore2 * Convert.ToDecimal(0.3);
            decimal     rebateGreen3 = rebateGreen2 * Convert.ToDecimal(0.3);
            acc3.Score      += rebateScore3;
            acc3.GreenCount += rebateGreen3;
            acc3.GreenTotal += Convert.ToDecimal(rebateScore3 + rebateGreen3);
            bool isTrue3 = _UserAccountDal.UpdateAccInfo(acc3);
            if (!isTrue3)
            {
                LogHelper.WriteInfo(typeof(StatusJob), "业绩返利第三层失败!", Engineer.ccc, acc3);
            }



            //添加返利红包记录
            #region 添加返利红包记录
            HongBaoLog hongBaoLog3 = new HongBaoLog();
            hongBaoLog3.LogCount     = Convert.ToDecimal(userGreen);
            hongBaoLog3.CreateTime   = DateTime.Now;
            hongBaoLog3.HongBaoCount = hongbaoCount;
            hongBaoLog3.UserId       = user3.UserId;
            hongBaoLog3.LogType      = 2;//1,自己业绩红包  2,返利4层
            hongBaoLog3.ReUserId     = user.UserId;
            bool isTrueStatus3 = _hongBaoLogDal.Insert(hongBaoLog3);
            if (!isTrueStatus3)
            {
                LogHelper.WriteInfo(typeof(StatusJob), "业绩返利第三层红包日志失败!", Engineer.ccc, hongBaoLog3);
            }


            #endregion
            //添加红包积分记录
            #region 返利红包记录
            ScoreLog scoreLog3 = new ScoreLog();
            scoreLog3.UserId     = acc3.UserId;
            scoreLog3.Remark     = "业绩推荐积分";
            scoreLog3.LogCount   = Convert.ToDecimal(userScore);
            scoreLog3.CreateTime = DateTime.Now;

            bool isTrueScore3 = _scoreLogDal.Insert(scoreLog3);
            if (!isTrueScore3)
            {
                LogHelper.WriteInfo(typeof(StatusJob), "业绩积分日志失败!", Engineer.ccc, scoreLog3);
            }

            #endregion
            #endregion

            #region 第四层

            UserInfo user4 = _UserDal.GetParentIdByUserId(user3.ParentId);
            if (user4 == null)
            {
                return;
            }
            AccountInfo acc4 = _UserAccountDal.GetAccByUserId(user4.UserId);

            decimal rebateScore4 = rebateScore3 * Convert.ToDecimal(0.3);
            decimal rebateGreen4 = rebateGreen3 * Convert.ToDecimal(0.3);
            acc4.Score      += rebateScore4;
            acc4.GreenCount += rebateGreen4;
            acc4.GreenTotal += Convert.ToDecimal(rebateScore4 + rebateGreen4);
            bool isTrue4 = _UserAccountDal.UpdateAccInfo(acc3);
            if (!isTrue4)
            {
                LogHelper.WriteInfo(typeof(StatusJob), "红包返利第一层失败!", Engineer.ccc, acc4);
            }

            //添加返利红包记录
            #region 添加返利红包记录
            HongBaoLog hongBaoLog4 = new HongBaoLog();
            hongBaoLog4.LogCount     = Convert.ToDecimal(userGreen);
            hongBaoLog4.CreateTime   = DateTime.Now;
            hongBaoLog4.HongBaoCount = hongbaoCount;
            hongBaoLog4.UserId       = acc4.UserId;
            hongBaoLog4.LogType      = 2;//1,自己业绩红包  2,返利4层
            hongBaoLog4.ReUserId     = user.UserId;
            bool isTrueStatus4 = _hongBaoLogDal.Insert(hongBaoLog4);
            if (!isTrueStatus4)
            {
                LogHelper.WriteInfo(typeof(StatusJob), "第4层返利推荐失败!", Engineer.ccc, hongBaoLog4);
            }


            #endregion
            //添加红包积分记录
            #region 返利红包记录
            ScoreLog scoreLog4 = new ScoreLog();
            scoreLog4.UserId     = acc4.UserId;
            scoreLog4.Remark     = "业绩推荐积分";
            scoreLog4.LogCount   = Convert.ToDecimal(userScore);
            scoreLog4.CreateTime = DateTime.Now;

            bool isTrueScore4 = _scoreLogDal.Insert(scoreLog4);
            if (!isTrueScore4)
            {
                LogHelper.WriteInfo(typeof(StatusJob), "业绩推荐积分日志失败!", Engineer.ccc, scoreLog4);
            }

            #endregion
            #endregion
        }
Exemple #15
0
 public bool Insert(ScoreLog scoreLog)
 {
     return(_ScoreLogDal.Insert(scoreLog));
 }