request->post(); $mobile = $post['mobile'] ?? ''; $page = $post['page'] ?? 1; $limit = $post['limit'] ?? 10; $response_ = new ResponseBuild(); if (empty($mobile)) { $response_->build(ResponseBuild::STATUS_PARAMS_NOT_VALIDATE); return $response_; } $data = CoinReleaseMember::getList2($page, $limit, ['mobile' => $mobile], ['create_time' => SORT_DESC]); if ($data) { $infos = &$data['data']; $names = array_unique(array_column($infos, 'coin')); $nicknames = Coin::getNicknamesByNames($names);//获取昵称 $rule_ids = array_unique(array_column($infos, 'rule_id')); $rules = CoinPublishRule::find()->where(['in', 'id', $rule_ids])->asArray()->all(); //获取锁仓规则 $rules = array_column($rules, null, 'id'); //构造返回数据 foreach ($infos as $key => &$item) { $rule = $rules[$item['rule_id']]; $item['nickname'] = $nicknames[$item['coin']] ?? ''; $item['repeat'] = $rule['repeat']; $item['date'] = date(CoinPublishRule::DATE_FORMAT[$rule['repeat']], strtotime($rule['release_time'])); unset($item['rule_id'], $item['user_id'], $item['platform_id']); } $response_->build(ResponseBuild::STATUS_SUCCEED, '', $data); return $response_; } else { $response_->build(-1, '数据为空'); return $response_; } } /** * 提币申请 */ public function actionRequestCoin() { $response = new ResponseBuild(); $post = Yii::$app->request->post(); $field = ['id', 'address', 'mobile', 'amount', 'validate_code']; foreach ($field as $item) { if (isset($post[$item]) && !empty($post[$item])) { $$item = $post[$item]; } else { $response->build(ResponseBuild::STATUS_PARAMS_NOT_VALIDATE, $item . ' can not be blank'); return $response; } } $note = $post['note'] ?? ''; //todo 验证验证码 $user_asset = CoinReleaseMember::findOne([$id]); //判断余额师傅充足 if ($user_asset->release < $amount * 1e8) { $response->build(-1, '余额不足!'); return $response; } //添加提币申请 $request_coin = new CoinReleaseCheck(); $request_coin->uid = $user_asset->user_id; $request_coin->mid = $id; $request_coin->mobile = $user_asset->mobile; $request_coin->amount = $amount * 1e8; $request_coin->coin = $user_asset->coin; $request_coin->to_address = $address; //记录提笔数据 $user_asset->release -= ($amount * 1e8); $user_asset->output += $amount * 1e8; //开启事务 try { $trans = CoinReleaseMember::getDb()->beginTransaction(); if ($user_asset->save() && $request_coin->save()) { $trans->commit(); $response->build(ResponseBuild::STATUS_SUCCEED); } else { $trans->rollBack(); $response->build(ResponseBuild::STATUS_INTERNAL_ERROR); } } catch (\Exception $exception) { $response->build($exception->getCode(), $exception->getMessage()); } //记录提币申请 $extract = CoinExtract::findOne(['address' => $address]); if (!$extract) { $extract = new CoinExtract(); } $extract->address = $address; $extract->total += 1; if (strtotime($extract->update_time) < strtotime(date('Y-m-d', time()))) { $extract->today = 1; } else { $extract->today += 1; } $extract->save(); return $response; } }