ContractController.php 2.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192
  1. <?php
  2. namespace App\Http\Controllers\Api;
  3. use App\Http\Controllers\FrontController;
  4. use App\Models\Contract;
  5. use App\Models\Invest;
  6. use App\Servers\CommonServer;
  7. use App\Servers\MemberServer;
  8. use App\Servers\RedisDataServer;
  9. use Illuminate\Support\Facades\Auth;
  10. class ContractController extends FrontController
  11. {
  12. public function __construct()
  13. {
  14. parent::__construct();
  15. }
  16. /**
  17. * 获取基本投资信息
  18. * @return \Illuminate\Http\JsonResponse
  19. */
  20. function getInvestData(){
  21. $mId=MemberServer::creatServer()->getMemberId();
  22. $sysAddress=CommonServer::creatServer()->getConfigValue('sys_address');
  23. $num=Contract::where('m_id',$mId)->where('status',2)->count();
  24. $sendNum=Contract::where('m_id',$mId)->where('status',1)->count();
  25. if($num>0){
  26. $investId=2;
  27. }else{
  28. $investId=1;
  29. }
  30. $investData=Invest::where('id',$investId)->select(['id','invest_money'])->first();
  31. if(empty($investData)){
  32. return $this->apiResponseError('信息异常');
  33. }
  34. $investData->{'sysAddress'}=$sysAddress;
  35. $investData->{'sendNum'}=$sendNum;
  36. return $this->apiResponseSuccess('获取信息成功',$investData);
  37. }
  38. /**
  39. * 执行报单
  40. * @return \Illuminate\Http\JsonResponse
  41. */
  42. function setInvest(){
  43. $mId=MemberServer::creatServer()->getMemberId();
  44. $redis_on_name = 'setInvest' . $mId;
  45. $redis_time = RedisDataServer::creatServer()->getData($redis_on_name);
  46. $time=time();
  47. if(!empty($redis_time) && $redis_time >$time-2){
  48. return $this->apiResponseError( '请不要频繁执行');
  49. }
  50. RedisDataServer::creatServer()->setData($redis_on_name,$time,'str',2,false);
  51. $investId=request()->input('id');
  52. $txid=request()->input('txid');
  53. if(empty($investId)){
  54. return $this->apiResponseError('缺少必要参数');
  55. }
  56. if(empty($txid)){
  57. return $this->apiResponseError('缺少必要参数');
  58. }
  59. $num=Contract::where('hash',$txid)->count();
  60. if($num>0){
  61. return $this->apiResponseError('当前交易已执行');
  62. }
  63. $investData=Invest::where('id',$investId)->select(['id','invest_money'])->first();
  64. $contractData=Contract::create([
  65. 'm_id'=>$mId,
  66. 'type'=>$investId,
  67. 'status'=>1,
  68. 'hash'=>$txid,
  69. 'broadcast_data'=>'',
  70. 'money'=>$investData->{'invest_money'},
  71. 'error_msg'=>'',
  72. ]);
  73. if(empty($contractData)){
  74. return $this->apiResponseError('执行失败');
  75. }else{
  76. return $this->apiResponseSuccess('执行成功');
  77. }
  78. }
  79. }