| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103 |
- <?php
- namespace App\Http\Controllers\Api;
- use App\Http\Controllers\FrontController;
- use App\Models\Contract;
- use App\Models\Invest;
- use App\Servers\CommonServer;
- use App\Servers\ContractServer;
- use App\Servers\IndentNumServer;
- use App\Servers\MemberServer;
- use App\Servers\RedisDataServer;
- use Illuminate\Support\Facades\Auth;
- class ContractController extends FrontController
- {
- public function __construct()
- {
- parent::__construct();
- }
- /**
- * 获取基本投资信息
- * @return \Illuminate\Http\JsonResponse
- */
- function getInvestData(){
- $mId=MemberServer::creatServer()->getMemberId();
- $sysAddress=CommonServer::creatServer()->getConfigValue('sys_address');
- $num=Contract::where('m_id',$mId)->where('status',2)->count();
- $sendNum=Contract::where('m_id',$mId)->where('status',1)->count();
- if($num>0){
- $investId=2;
- }else{
- $investId=1;
- }
- $investData=Invest::where('id',$investId)->select(['id','invest_money'])->first();
- if(empty($investData)){
- return $this->apiResponseError('信息异常');
- }
- $investData->{'sysAddress'}=$sysAddress;
- $investData->{'sendNum'}=$sendNum;
- return $this->apiResponseSuccess('获取信息成功',$investData);
- }
- /**
- * 执行报单
- * @return \Illuminate\Http\JsonResponse
- */
- function setInvest(){
- $mId=MemberServer::creatServer()->getMemberId();
- $redis_on_name = 'setInvest' . $mId;
- $redis_time = RedisDataServer::creatServer()->getData($redis_on_name);
- $time=time();
- if(!empty($redis_time) && $redis_time >$time-2){
- return $this->apiResponseError( '请不要频繁执行');
- }
- RedisDataServer::creatServer()->setData($redis_on_name,$time,'str',2,false);
- $investId=request()->input('id');
- $txid=request()->input('txid');
- if(empty($investId)){
- return $this->apiResponseError('缺少必要参数');
- }
- if(empty($txid)){
- return $this->apiResponseError('缺少必要参数');
- }
- $num=Contract::where('hash',$txid)->count();
- if($num>0){
- return $this->apiResponseError('当前交易已执行');
- }
- $investData=Invest::where('id',$investId)->first();
- $contractData=Contract::create([
- 'm_id'=>$mId,
- 'type'=>$investId,
- 'status'=>1,
- 'hash'=>$txid,
- 'broadcast_data'=>'',
- 'error_msg'=>'',
- 'money'=>$investData->{'invest_money'},
- 'direct_proportion'=>$investData->{'direct_proportion'},
- 'grant_proportion'=>$investData->{'grant_proportion'},
- 'point_proportion'=>$investData->{'point_proportion'},
- 'dao_proportion'=>$investData->{'dao_proportion'},
- 'technology_proportion'=>$investData->{'technology_proportion'},
- 'reveal_proportion'=>$investData->{'reveal_proportion'},
- 'parent_proportion'=>$investData->{'parent_proportion'},
- 'contract_sn'=>IndentNumServer::creatServer()->getIndentNum(1),
- ]);
- if(empty($contractData)){
- return $this->apiResponseError('执行失败');
- }else{
- ContractServer::creatServer()->addContractLog($contractData,'合约创建成功');
- return $this->apiResponseSuccess('执行成功');
- }
- }
- }
|