initdata.php 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. <?php
  2. /**
  3. * Created by PhpStorm.
  4. * User: stanley-king
  5. * Date: 2017/7/2
  6. * Time: 下午7:47
  7. */
  8. defined('InShopNC') or exit('Access Invalid!');
  9. class initdataControl extends BaseCronControl
  10. {
  11. public function order_numOp()
  12. {
  13. $mod_member = Model('member');
  14. $i = 0;
  15. while (true)
  16. {
  17. $start = $i * 1000;
  18. $items = Model()->table('member')->field('member_id')->order('member_id asc')->limit("{$start},1000")->select();
  19. if(empty($items)) {
  20. return;
  21. }
  22. $i++;
  23. foreach ($items as $item)
  24. {
  25. $member_id = intval($item['member_id']);
  26. if($member_id <= 0) continue;
  27. $result = $this->stat_order($member_id);
  28. if($result == false) continue;
  29. $order_num = intval($result['order_num']);
  30. $lasted_time = intval($result['lastest_time']);
  31. $mod_member->editMember(['member_id' => $member_id],['order_num' => $order_num,'lastest_order' => $lasted_time]);
  32. }
  33. }
  34. }
  35. private function stat_order($member_id)
  36. {
  37. $items = Model()->table('order')
  38. ->field('count(*) as order_num,max(payment_time) lastest_time')
  39. ->where(['buyer_id' => $member_id,'order_state' => array('in',[20,30,40])])
  40. ->select();
  41. if(empty($items)) {
  42. return false;
  43. }
  44. elseif($items[0]['order_num'] == 0){
  45. return false;
  46. } else {
  47. return $items[0];
  48. }
  49. }
  50. }