今天生日

23岁了~ 呵呵,应该说老了?

今天最后一天班,最后几天可真是忙死了,总算在最后能有一个不错的结果,从Tom的邮件里面看到"Good"那确实是相当的不容易啊~  年后的工作会更忙碌,加油让我熬过整个这个项目的开发周期,我要撑下去,终于有了Lead项目的机会, 而且还是8个人,机会难得,特别是客户和USP都这么专业,我要加油!不能浮躁,现在谈创业还是有很长的距离,在群硕我至少要熬过3个自己独立Lead的项目,在此以前什么都不要想。这次我确实能够明显的感觉到距离,没有理由,我还是需要锻炼。

去年的这个时候,我还是学生,呵呵,明年的这个时候?也许。。
这是我的最终代码 有一个问题就是 目前是我手动测试的一个用户 给到他发放福利了 , 但是我希望是可以控制的 怎么优化? 例如某个用户生日当天没有给到积分 我来手动再给他一次:<?php namespace app\command\admin; use think\console\Command; use think\console\Input; use think\console\Output; use think\Db; class Drawscore extends Command { protected $logFile; protected $logPath; protected function configure() { $this->setName('drawscore') ->setDescription('定时计划:计算工友生日和会员等级 生日/每年赠送相应积分'); } protected function execute(Input $input, Output $output) { // 初始化日志系统 $this->initLogSystem(); $this->log("开始执行工匠福利积分发放...", true); // 获取所有有效档位(按积分要求升序排列) $this->log("查询有效福利档位..."); $fuli = Db::name("user_birthday_fuli") ->where("status", 1) ->order("chengzhang", "asc") ->select(); if(empty($fuli)) { $this->log("没有配置福利档位,跳过执行", true); return; } $this->log("找到 ".count($fuli)." 个有效福利档位"); // 获取最低积分要求 $minScore = $fuli[0]['chengzhang']; // 获取今天的月-日格式(如:07-15) $todayMD = date('m-d'); $this->log("最低积分要求: {$minScore}, 今天日期: {$todayMD}"); // 查询满足条件的工匠(积分达标且今天生日) $this->log("查询符合条件的生日工匠..."); $users = Db::name("user") ->alias("u") ->join("user_gongjiang_log g", "g.user_id = u.id AND g.status = 1") ->where("u.score", ">=", $minScore) ->where("u.id", "=", 866) //Jin 测试 ->where('u.birthday', '>', 0) // 确保birthday是有效时间戳 ->whereRaw("DATE_FORMAT(FROM_UNIXTIME(u.birthday), '%m-%d') = ?", [$todayMD]) ->field("u.id, u.mobile, u.score") ->select(); if(empty($users)) { $this->log("今天没有符合条件的生日工匠", true); return; } $this->log("找到 ".count($users)." 个符合条件的生日工匠"); // 构建积分档位映射表 $this->log("构建积分档位映射表..."); $scoreMap = []; foreach ($fuli as $item) { $scoreMap[$item['chengzhang']] = $item['zengsong']; $this->log("档位: {$item['chengzhang']}分 => 赠送{$item['zengsong']}分"); } krsort($scoreMap); // 按积分要求降序排列 // 当前年份的时间范围 $currentYear = date('Y'); $startTime = strtotime("{$currentYear}-01-01 00:00:00"); $endTime = strtotime("{$currentYear}-12-31 23:59:59"); $this->log("本年度时间范围: {$currentYear}-01-01 至 {$currentYear}-12-31"); $successCount = 0; $skipCount = 0; $failCount = 0; $this->log("开始处理工匠用户..."); foreach ($users as $user) { $this->log("处理用户 ID: {$user['id']}, 手机: {$user['mobile']}, 积分: {$user['score']}"); $shouldGet = 0; // 从高到低匹配用户应得积分档位 foreach ($scoreMap as $required => $reward) { if ($user['score'] >= $required) { $shouldGet = $reward; $this->log("匹配到档位: {$required}分 => 应得{$reward}分"); break; } } if ($shouldGet <= 0) { $this->log("无匹配档位,跳过"); $skipCount++; continue; } // 检查本年度是否已发放 $this->log("检查本年度是否已发放..."); $hasGiven = Db::name("user_score_log") ->where([ 'type_id' => 6, // 工匠福利 'user_id' => $user['id'] ]) ->where('create_time', 'between', [$startTime, $endTime]) ->count(); if ($hasGiven > 0) { $this->log("用户ID:{$user['id']} 本年度已发放积分,跳过"); $skipCount++; continue; } // 发放积分 $remark = '工匠生日福利积分'; $this->log("发放积分: {$shouldGet}分..."); $drawScore = \app\user\model\ScoreLog::changeNoRedis(6, $user['id'], $shouldGet, 1, $remark); if (!$drawScore) { $this->log("用户ID:{$user['id']} 积分发放失败", true); $failCount++; } else { $this->log("用户ID:{$user['id']} 发放 {$shouldGet} 积分成功", true); $successCount++; } } $this->log("工匠生日福利发放完成", true); $this->log("统计: 成功 {$successCount} 人, 跳过 {$skipCount} 人, 失败 {$failCount} 人"); } /** * 初始化日志系统 */ protected function initLogSystem() { // 创建日志目录(如果不存在) $this->logPath = app()->getRuntimePath() . 'drawscore_logs/'; if (!is_dir($this->logPath)) { mkdir($this->logPath, 0755, true); } // 按日期命名日志文件 $date = date('Y-m-d'); $this->logFile = $this->logPath . "drawscore_{$date}.log"; } /** * 记录日志(同时输出到控制台和文件) * * @param string $message 日志内容 * @param bool $toConsole 是否输出到控制台 */ protected function log($message, $toConsole = false) { // 添加时间戳 $logMessage = '[' . date('Y-m-d H:i:s') . '] ' . $message . PHP_EOL; // 写入文件 file_put_contents($this->logFile, $logMessage, FILE_APPEND | LOCK_EX); // 输出到控制台 if ($toConsole) { $this->output->writeln($message); } } }
11-05
混合动力汽车(HEV)模型的Simscape模型(Matlab代码、Simulink仿真实现)内容概要:本文档介绍了一个混合动力汽车(HEV)的Simscape模型,该模型通过Matlab代码和Simulink仿真工具实现,旨在对混合动力汽车的动力系统进行建模与仿真分析。模型涵盖了发动机、电机、电池、传动系统等关键部件,能够模拟车辆在不同工况下的能量流动与控制策略,适用于动力系统设计、能耗优化及控制算法验证等研究方向。文档还提及该资源属于一个涵盖多个科研领域的MATLAB仿真资源包,涉及电力系统、机器学习、路径规划、信号处理等多个技术方向,配套提供网盘下载链接,便于用户获取完整资源。; 适合人群:具备Matlab/Simulink使用基础的高校研究生、科研人员及从事新能源汽车系统仿真的工程技术人员。; 使用场景及目标:①开展混合动力汽车能量管理策略的研究与仿真验证;②学习基于Simscape的物理系统建模方法;③作为教学案例用于车辆工程或自动化相关课程的实践环节;④与其他优化算法(如智能优化、强化学习)结合,实现控制策略的优化设计。; 阅读建议:建议使用者先熟悉Matlab/Simulink及Simscape基础操作,结合文档中的模型结构逐步理解各模块功能,可在此基础上修改参数或替换控制算法以满足具体研究需求,同时推荐访问提供的网盘链接获取完整代码与示例文件以便深入学习与调试。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值