Пример #1
0
 /**
  * @param $job
  * @param $data
  */
 public function fire($job, $data)
 {
     $job->delete();
     if (!empty($data['send_id'])) {
         $user_send_water = new UserSendWater();
         $result = $user_send_water->where('id', $data['send_id'])->first();
         if (!empty($result) && $result->status == UserSendWater::STATUS_IS_FALSE) {
             $user_send_water->where('id', $data['send_id'])->update(['status' => UserSendWater::STATUS_IS_ACTIVE_FALSE]);
             $user_financial_result = UserFinancial::where('user_id', $result->user_id)->first();
             UserFinancial::where('user_id', $result->user_id)->update(['water_count' => $user_financial_result->water_count + $result->water_count, 'send_water' => $user_financial_result->send_water - $result->water_count]);
         }
     }
 }
Пример #2
0
 /**
  * 回收亲水值
  * Execute the console command.
  * @return mixed
  */
 public function fire()
 {
     $i = 0;
     while (true) {
         $user_send_water = new UserSendWater();
         $user_send_rt = $user_send_water->where('status', UserSendWater::STATUS_IS_FALSE)->where('id', '>', $i)->limit($this->limit)->orderBy('id', 'asc')->get()->toArray();
         if (empty($user_send_rt)) {
             break;
         }
         $user_financial = new UserFinancial();
         foreach ($user_send_rt as $user_send_rt_v) {
             //如果创建时间比现在超过48小时则算无效
             if (strtotime($user_send_rt_v['created_at']) - time() >= UserSendWater::getSystemTime()) {
                 $result = $user_send_water->where('id', $user_send_rt['id'])->first();
                 if (!empty($result) && $result->status == UserSendWater::STATUS_IS_FALSE) {
                     $user_send_water->where('id', $user_send_rt['id'])->update(['status' => UserSendWater::STATUS_IS_ACTIVE_FALSE]);
                     $user_financial_result = $user_financial->where('user_id', $result->user_id)->first();
                     $user_financial->where('user_id', $result->user_id)->update(['water_count' => $user_financial_result->water_count + $result->water_count, 'send_water' => $user_financial_result->send_water - $result->water_count]);
                 }
             }
             $i = $user_send_rt['id'];
         }
     }
 }
Пример #3
0
 /**
  * 亲水列表
  * @param $params
  * @param $user_id
  * @return array
  */
 public function bagList($params, $user_id)
 {
     $page = $params->get('page') ?: 1;
     $count = $params->get('count') ?: 10;
     $user_send_water = new UserSendWater();
     $result = [];
     $send_water = 0;
     if ($params->get('status')) {
         switch ($params->get('status')) {
             case 0:
                 $result = $user_send_water->where('accept_user_id', $user_id)->where('status', UserSendWater::STATUS_IS_FALSE)->where('overdue_date', '>=', time())->skip(($page - 1) * $count)->take($count)->get()->toArray();
                 $send_water = $user_send_water->where('accept_user_id', $user_id)->where('status', UserSendWater::STATUS_IS_FALSE)->count();
                 break;
             case 1:
                 $result = $user_send_water->where('accept_user_id', $user_id)->where('status', UserSendWater::STATUS_IS_TRUE)->where('overdue_date', '>=', time())->skip(($page - 1) * $count)->take($count)->get()->toArray();
                 $send_water = $user_send_water->where('accept_user_id', $user_id)->where('status', UserSendWater::STATUS_IS_FALSE)->count();
                 break;
             case 2:
                 $result = $user_send_water->where('accept_user_id', $user_id)->whereBetween('status', [0, 2])->where('overdue_date', '<', time())->skip(($page - 1) * $count)->take($count)->get()->toArray();
                 $send_water = $user_send_water->where('status', UserSendWater::STATUS_IS_FALSE)->count();
                 break;
         }
     } else {
         $result = $user_send_water->where('accept_user_id', $user_id)->skip(($page - 1) * $count)->take($count)->get()->toArray();
         $send_water = $user_send_water->where('accept_user_id', $user_id)->count();
     }
     $next_page = ($page - 1) * $count >= $send_water ? $page : $page + 1;
     $pager = ['page' => $page, 'count' => $count, 'total' => $send_water, 'next' => $next_page];
     if (empty($result)) {
         return ['status' => true, 'message' => 'success', 'info' => [], 'pager' => $pager];
     }
     $user_ids = [];
     foreach ($result as $value) {
         $user_ids[] = $value['user_id'];
     }
     $user_result = UserBase::whereIn('user_id', array_unique($user_ids))->get()->toArray();
     $user_list = [];
     foreach ($user_result as $user_result_val) {
         $user_list[$user_result_val['user_id']] = $user_result_val['user_name'] ?: '匿名';
     }
     $list = [];
     foreach ($result as $value) {
         $list[] = ['bag_id' => $value['id'], 'water_num' => $value['water_count'], 'from_id' => $value['user_id'], 'from_name' => $user_list[$value['user_id']], 'create_time' => $value['created_at'], 'get_time' => $value['updated_at'], 'status' => $value['status']];
     }
     return ['status' => true, 'message' => 'success', 'info' => $list, 'pager' => $pager];
 }