* @param coupon_ids一个兑换码所能兑换的优惠券数组 * @param channel 发放渠道,某一批次优惠券唯一标识 * @param desc 某一批次优惠券的描述 * @param count 要生成的数量 * @return 生成的兑换码保存在/download/文件夹下,可通过外网提取,保存到本地后要及时删除 */ class CouponFactoryCommand extends CConsoleCommand{ public function run($args) { ini_set('memory_limit', '256M'); set_time_limit(0); $count = 3;//生成数量 $channel = '20161011-test'; $desc = '测试用'; $date = date('Ymd'); $i = 0; $coupons = array(); $coupon_ids[] = '57fb18dda84ea03a0a8b458d'; $coupon_ids[] = '57df714b9f5160c1048b456a'; // $coupon_ids[] = '561cbd7b0eb9fbaa628b4a80'; // $coupon_ids[] = '561cbdc70eb9fb60638b4a93'; foreach ($coupon_ids as $value) { $coupon_id = new MongoId($value); $coupons[] = $coupon_id; } for (;$i<$count;) { $model = new CouponCode(); $model->coupons = $coupons; $model->channel = $channel; $model->desc = $desc; $model->code = $model->code + $i*1024; $criteria = new EMongoCriteria(); $criteria->code('==', $model->code); $exits = CouponCode::model()->count($criteria); if($exits>0){ continue; } $model->stop_time = time() + 86400*30; $model->save(); $i++; file_put_contents(APP_PATH.'/download/'.$date.'_coupon_code.html',$model->code."\r\n",FILE_APPEND); echo $i."\n"; } } }