CouponFactoryCommand.php 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. <?php
  2. /**
  3. * 生成兑换码脚本
  4. * @author >
  5. * @param coupon_ids一个兑换码所能兑换的优惠券数组
  6. * @param channel 发放渠道,某一批次优惠券唯一标识
  7. * @param desc 某一批次优惠券的描述
  8. * @param count 要生成的数量
  9. * @return 生成的兑换码保存在/download/文件夹下,可通过外网提取,保存到本地后要及时删除
  10. */
  11. class CouponFactoryCommand extends CConsoleCommand{
  12. public function run($args) {
  13. ini_set('memory_limit', '256M');
  14. set_time_limit(0);
  15. $count = 3;//生成数量
  16. $channel = '20161011-test';
  17. $desc = '测试用';
  18. $date = date('Ymd');
  19. $i = 0;
  20. $coupons = array();
  21. $coupon_ids[] = '57fb18dda84ea03a0a8b458d';
  22. $coupon_ids[] = '57df714b9f5160c1048b456a';
  23. // $coupon_ids[] = '561cbd7b0eb9fbaa628b4a80';
  24. // $coupon_ids[] = '561cbdc70eb9fb60638b4a93';
  25. foreach ($coupon_ids as $value) {
  26. $coupon_id = new MongoId($value);
  27. $coupons[] = $coupon_id;
  28. }
  29. for (;$i<$count;) {
  30. $model = new CouponCode();
  31. $model->coupons = $coupons;
  32. $model->channel = $channel;
  33. $model->desc = $desc;
  34. $model->code = $model->code + $i*1024;
  35. $criteria = new EMongoCriteria();
  36. $criteria->code('==', $model->code);
  37. $exits = CouponCode::model()->count($criteria);
  38. if($exits>0){
  39. continue;
  40. }
  41. $model->stop_time = time() + 86400*30;
  42. $model->save();
  43. $i++;
  44. file_put_contents(APP_PATH.'/download/'.$date.'_coupon_code.html',$model->code."\r\n",FILE_APPEND);
  45. echo $i."\n";
  46. }
  47. }
  48. }