/** * 计算黑水值 * Execute the console command. * @return mixed */ public function fire() { $i = 0; $black_water_val = (int) getenv('BLACK_WATER'); while (true) { $result = UserBase::where('user_id', '>', $i)->orderBy('user_id', 'asc')->limit($this->limit)->get()->toArray(); if (empty($result)) { break; } foreach ($result as $value) { $user_login_log = UserLoginLog::where('user_id', $value['user_id'])->where('date', date('Ymd', strtotime('-1 day')))->first(); if (empty($user_login_log)) { $user_black_water = new UserBlackWater(); $user_black_water_result = $user_black_water->where('user_id', $value['user_id'])->first(); if (empty($user_black_water_result)) { $user_black_water->user_id = $value['user_id']; $user_black_water->black_water = $black_water_val; $user_black_water->save(); } else { $user_black_water->where('user_id', $value['user_id'])->update(['black_water' => $user_black_water_result->black_water + $black_water_val]); } } $i = $value['user_id']; } } }
/** * 回收亲水值 * Execute the console command. * @return mixed */ public function fire() { $i = 0; $rank = UserRank::getDefaultRank(); while (true) { $user_financial_result = \DB::select('select * from user_financial where user_id > ? order by (water_count+0) desc limit ?', [$i, $this->limit]); if (empty($user_financial_result)) { break; } $user_base = new UserBase(); foreach ($user_financial_result as $v) { $r = $user_base->where('user_id', $v->user_id)->first(); if ($r['type'] == UserBase::TYPE_USER) { $user_rank = new UserRank(); $rt = $user_rank->where('user_id', $v->user_id)->where('date', Carbon::now()->format('Ymd'))->first(); if (empty($rt)) { $user_rank->user_id = $v->user_id; $user_rank->rank = $rank; $user_rank->date = Carbon::now()->format('Ymd'); $user_rank->save(); $rank += 1; } } $i = $v->user_id; } } }
/** * 为商户设置新密码 * @param $params * @param $user_id * @return array */ public function setBusinessNewPassword($params, $user_id) { $new_password = $params->get('newPassword'); if (trim($new_password) == '') { return ['status' => false, 'message' => '你的新密码不能为空!', 'info' => []]; } $result = UserBase::where('user_id', $user_id)->update(['password' => $this->encryptPassword($new_password)]); if ($result) { return ['status' => true, 'message' => 'success', 'info' => []]; } else { return ['status' => false, 'message' => '修改失败!', 'info' => []]; } }
/** * 第三方平台注册 * @param $params * @return array */ public function otherRegister($params) { if (!$params->get('open_id')) { return ['status' => false, 'message' => '用户唯一标识不能为空!']; } if (!$params->get('type')) { return ['status' => false, 'message' => '登入来源标识不能为空!']; } $user_third_parth = new UserThirdParty(); $rt = $user_third_parth->where('user_other_id', $params->get('open_id'))->where('type', $params->get('type'))->first(); $user_base = new UserBase(); $user_image = new UserImage(); //如果没注册过 if (empty($rt) && in_array($params->get('type'), [UserThirdParty::TX_QQ, UserThirdParty::WEI_XIN])) { $user_base->invite_code = time() . mt_rand(100, 999); if ($params->get('nick_name')) { $user_base->user_name = $params->get('nick_name'); } $user_base->save(); if ($user_base->user_id) { $user_third_parth->user_other_id = $params->get('open_id'); $user_third_parth->type = $params->get('type'); $user_third_parth->user_id = $user_base->user_id; $user_third_parth->save(); $image = $user_image->where('user_id', $user_base->user_id)->head()->first(); if (empty($image)) { $user_image->image_url = $params->get('head_img') ?: UserImage::defaultImage(); $user_image->user_id = $user_base->user_id; $user_image->is_completion = UserImage::IS_COMPLETION_TRUE; $user_image->type = UserImage::TYPE_HEAD; $user_image->save(); } else { $user_image->where('user_id', $user_base->user_id)->where('type', UserImage::TYPE_HEAD)->update(['image_url' => $params->get('head_img') ?: UserImage::defaultImage()]); } if (UserFinancial::getInitialize() > 0) { $user_financial = new UserFinancial(); $user_financial->user_id = $user_base->user_id; $user_financial->water_count = UserFinancial::getInitialize(); $user_financial->save(); } } else { return ['status' => false, 'message' => '系统一个人去旅行了,请稍后重试!']; } $user = $user_base->where('user_id', $user_base->user_id)->IsOpen()->first()->toArray(); if ($params->get('head_img')) { $user['user_head'] = $params->get('head_img'); } else { $user['user_head'] = UserImage::defaultImage(); } $user['token'] = TokenService::tokenEncode($user_base->user_id); UserLoginLog::insert_login_log($user_base->user_id); return $this->outputFormat(true, 'success', $this->formatUser($user)); } //如果已经注册过 $user = $user_base->where('user_id', $rt->user_id)->IsOpen()->first()->toArray(); $image = $user_image->where('user_id', $rt->user_id)->head()->first(); if ($image) { $user['user_head'] = $image->path(); } else { $user['user_head'] = UserImage::defaultImage(); } $user['token'] = TokenService::tokenEncode($rt->user_id); UserLoginLog::insert_login_log($rt->user_id); return $this->outputFormat(true, 'success', $this->formatUser($user)); }
/** * 接受手机号 验证码 分享批次-邀请码 * @param $params * @return array */ public function shareGet($params) { $code = $params->get('code'); $e = explode('-', $code); if (count($e) == 2) { $user_share_log = new UserShareLog(); $user_share_log_tr = $user_share_log->where('share_time', $e[0])->first(); if (empty($user_share_log_tr)) { return ['status' => false, 'message' => '非法参数', 'code' => 1, 'info' => []]; } if ($user_share_log_tr->status == UserShareLog::SHARE_NO) { return ['status' => false, 'message' => '分享已经结束', 'code' => 2, 'info' => []]; } $rt = $this->checkVerify($params->get('cellphone'), $params->get('verify')); if (!$rt['status']) { return ['status' => false, 'code' => 3, 'message' => $rt['message'], 'userInfo' => []]; } //注册成为用户 $user_base = new UserBase(); $user_base_rt = $user_base->where('user_cellphone', $params->get('cellphone'))->first(); if (empty($user_base_rt)) { $user_id = $user_base->user_id; $password = mt_rand(100000, 999999); $user_base->user_cellphone = $params->get('cellphone'); $user_base->password = $this->encryptPassword($password); $user_base->user_name = !empty($user_name) ? $user_name : ''; $user_base->invite_code = crc32(md5($params->get('cellphone'))); if ($user_base->save()) { //发送短信提示 $user_verify = new UserVerify(); $content = '感谢你注册水想世界,您的APP登入密码为' . $password . ',请尽快登入之后修改密码噢~'; $user_verify->getSendMsgUrl($params->get('cellphone'), $content); //建立图片 $user_image = new UserImage(); $user_image->user_id = $user_base->user_id; $user_image->image_url = UserImage::defaultImage(); $user_image->type = UserImage::TYPE_HEAD; $user_image->save(); //绑定关系 $user_relationship = new UserRelationship(); $user_relationship_rt = $user_relationship->where('user_id', $user_share_log_tr->user_id)->where('guest_id', $user_base->user_id)->first(); if (!empty($user_relationship_rt)) { $user_relationship->user_id = $user_share_log_tr->user_id; $user_relationship->guest_id = $user_base->user_id; $user_relationship->save(); } } } else { $user_id = $user_base_rt->user_id; } $user_share_receive_log = new UserShareReceiveLog(); $s = $user_share_receive_log->where('share_id', $user_share_log_tr->id)->where('share_receive_user_id', $user_id)->first(); if (!empty($s)) { return ['status' => false, 'code' => 4, 'message' => '您已经领取过', 'info' => ['water_count' => $s->share_water_count]]; } if (!empty($user_id)) { //开始分享 $water = 0; $share_count = 0; $share_status = 1; switch ($user_share_log_tr->share_count) { case 0: $water = ceil($user_share_log_tr->share_water_count / 3); $share_count = 1; break; case 1: $water = ceil(($user_share_log_tr->share_water_count - $user_share_log_tr->share_receive) / 2); $share_count = 2; break; case 2: $water = $user_share_log_tr->share_water_count - $user_share_log_tr->share_receive; $share_count = 3; $share_status = 0; break; } //放入用户账户 $user_financial = new UserFinancial(); $user_f_rt = $user_financial->where('user_id', $user_id)->first(); if (empty($user_f_rt)) { $user_financial->user_id = $user_id; $user_financial->water_count = $water; $user_financial->save(); } else { $user_financial->where('user_id', $user_id)->update(['water_count' => $user_f_rt->water_count + $water]); } $user_share_log->where('id', $user_share_log_tr->id)->update(['share_count' => $share_count, 'status' => $share_status, 'share_receive' => $user_share_log_tr->share_receive + $water]); //建立领取记录 $user_send_water = new UserSendWater(); $user_send_water->user_id = $user_share_log_tr->user_id; $user_send_water->water_count = $water; $user_send_water->accept_user_id = $user_id; $user_send_water->overdue_date = time(); $user_send_water->share_type = UserSendWater::SHARE_TYPE_WEIXIN; $user_send_water->status = UserSendWater::STATUS_IS_TRUE; $user_send_water->save(); //记录每期领取的人 $user_share_receive_log->share_id = $user_share_log_tr->id; $user_share_receive_log->share_receive_user_id = $user_id; $user_share_receive_log->share_water_count = $water; $user_share_receive_log->save(); return ['status' => true, 'message' => '领取成功', 'info' => ['water_count' => $water]]; } else { return ['status' => false, 'code' => 5, 'message' => '系统一个人旅行去了,请重试!', 'info' => []]; } } else { return ['status' => false, 'code' => 1, 'message' => '非法参数', 'info' => []]; } }