TestController.php 8.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246
  1. <?php
  2. namespace App\Http\Controllers\Api;
  3. use App\Helpers\Jwt;
  4. use App\Http\Controllers\Api\v1\NotifyController;
  5. use App\Models\AwardModel;
  6. use App\Models\LotteryModel;
  7. use App\Models\MemberModel;
  8. use App\Models\UserModel;
  9. use App\Services\CityService;
  10. use App\Services\ConfigService;
  11. use App\Services\DevicesService;
  12. use App\Services\NotifyService;
  13. use App\Services\RedisService;
  14. use App\Services\SnapshotService;
  15. use App\Services\WechatService;
  16. use Illuminate\Support\Facades\Session;
  17. /**
  18. * 测试控制器类
  19. * @author wesmiler
  20. * @since 2020/11/10
  21. * Class TestController
  22. * @package App\Http\Controllers
  23. */
  24. class TestController extends BaseController
  25. {
  26. /**
  27. * 构造函数
  28. * @author wesmiler
  29. * @since 2020/11/11
  30. * TestController constructor.
  31. */
  32. public function __construct()
  33. {
  34. parent::__construct();
  35. }
  36. public function index(){
  37. $dd = WechatService::makeNormalQrcode(1);
  38. var_dump($dd);
  39. //return message(1005,'true',['ddd'=> []]);
  40. }
  41. public function lamp(){
  42. $orderSn = request()->get('order_sn');
  43. return DevicesService::make()->catchLamp($orderSn);
  44. }
  45. public function lamp1(){
  46. $colors = ['黄色','红色','绿色','白色'];
  47. shuffle($colors);
  48. $data = [
  49. 'CommandType'=> 'OpenLed', // 执行命令方式:OpenLed-开灯,CloseLed-关灯,QuitStatus-查询状态
  50. 'MD'=> 1, // 机器号设备号
  51. 'MDPORT'=> 1, // 设备端口:暂与设备号一致
  52. 'LEDID'=> 4, // 亮灯灯号1-498对应1号设备,498后为设备2
  53. 'Color'=> urlencode($colors[0]), // 颜色
  54. 'OrderNo'=> 'G202107152132315', // 订单号
  55. ];
  56. $dataStr = [];
  57. foreach($data as $k => $v){
  58. $dataStr[] = $k.'='.$v;
  59. }
  60. // 调用亮灯接口处理
  61. $dataStr = implode('&', $dataStr);
  62. var_dump($dataStr);
  63. $headers = ["Content-Type: application/x-www-form-urlencoded; charset=UTF-8"];
  64. $apiUrl = ConfigService::make()->getConfigByCode('gd_api_url').'/LEDControl.ashx';
  65. $result = httpHeaderRequest($apiUrl, $dataStr,'post',$headers,'text');
  66. var_dump($result);
  67. return $result;
  68. }
  69. /**
  70. * 支付回调
  71. */
  72. public function pay($scene){
  73. $postData = request()->all();
  74. $sign = request()->headers->get('Wechatpay-Signature');
  75. $nonce = request()->headers->get('Wechatpay-Nonce');
  76. $timestamp = request()->headers->get('Wechatpay-Timestamp');
  77. $body = file_get_contents('php://input');
  78. $id = isset($postData['id'])? '_'.$postData['id'] : '';
  79. RedisService::set('caches:payments:'.$scene.':result'.$id.'_'.date('YmdHis'), ['result'=> $postData,'sign'=> $sign,'date'=> date('Y-m-d H:i:s')], 7200);
  80. $postData = isset($postData['resource'])? $postData['resource'] : [];
  81. if(empty($scene) || empty($postData)){
  82. return NotifyService::make()->rebackMsg('回调参数错误');
  83. }
  84. // 解密
  85. $signStr = "{$timestamp}\n{$nonce}\n{$body}\n";
  86. $ciphertext = isset($postData['ciphertext'])? $postData['ciphertext'] : '';
  87. RedisService::set('caches:payments:'.$scene.':result'.$id.'_ciphertext', ['result'=> $postData,'date'=> date('Y-m-d H:i:s')], 7200);
  88. if(empty($ciphertext)){
  89. return NotifyService::make()->rebackMsg('解密数据不存在');
  90. }
  91. $postData = WechatService::decryptNotifyData($postData);
  92. $postData = $postData? json_decode($postData, true) : [];
  93. // var_dump($postData);
  94. $outTradeNo = isset($postData['out_trade_no']) ? $postData['out_trade_no'] : '';
  95. if(empty($postData) || empty($outTradeNo)){
  96. return NotifyService::make()->rebackMsg('获取解密数据失败');
  97. }
  98. RedisService::set('caches:payments:'.$scene.':result'.$id.'_'.$outTradeNo, ['result'=> $postData], 7200);
  99. RedisService::set('caches:payments:'.$scene.':check'.$id.'_'.$outTradeNo, ['data'=> $postData,'signStr'=> $signStr,'sign'=> $sign], 3600);
  100. if (WechatService::checkJsapiNotifyV3($signStr, $sign, $postData)) {
  101. switch($scene){
  102. case 'index': // 供灯订单
  103. return NotifyService::make()->notifyGongdeng($postData, $outTradeNo);
  104. case 'recharge': // 充值
  105. break;
  106. default:
  107. break;
  108. }
  109. }
  110. return 'fail';
  111. }
  112. public function baward(){
  113. $id = request('id', '');
  114. $api = request('code','');
  115. $apiUrl = 'http://18.166.54.98';
  116. $webApiUrl = 'http://18.166.54.98:5666';
  117. $sdate = request('sdate', '2021-07-14');
  118. if(empty($id) || empty($api) || empty($sdate)){
  119. return false;
  120. }
  121. $url = $webApiUrl.'/home/get_history?fdate='.$sdate.'&id='.$api;
  122. $results = file_get_contents($url);
  123. $datas = $results? json_decode($results, true) : [];
  124. $datas = isset($datas[0]['data'])? $datas[0]['data'] : [];
  125. $awards = [];
  126. //var_dump($datas);
  127. if($datas){
  128. foreach ($datas as $v) {
  129. $cycleid = isset($v['qihao'])? $v['qihao'] : '';
  130. $balls = isset($v['jg'])? $v['jg'] : '';
  131. $stime = isset($v['time'])? $v['time'] : '';
  132. //if(!AwardModel::where(['Number'=> $cycleid])->value('id')){
  133. $awards[$cycleid] = [
  134. 'Sid'=> $id,
  135. 'DateTIme'=> $stime,
  136. 'Number'=> $cycleid,
  137. 'Data'=> $balls,
  138. ];
  139. // }
  140. }
  141. }
  142. ksort($awards);
  143. $awards = array_values($awards);
  144. //AwardModel::insert($awards);
  145. echo '<pre>';
  146. var_dump($awards);
  147. }
  148. public function award(){
  149. /*$lotterys = LotteryModel::where(['State'=> 1])
  150. ->where('Pid','>', 0)
  151. ->select(['id','title','api','model'])
  152. ->get()
  153. ->toArray();*/
  154. $id = request('id', '');
  155. $api = request('code','');
  156. $type = request('type',0);
  157. $apiUrl = 'http://18.166.54.98';
  158. $webApiUrl = 'http://18.166.54.98:5666';
  159. $sdate = request('sdate', '2021-07-14');
  160. if(empty($id) || empty($api) || empty($sdate)){
  161. return false;
  162. }
  163. $baseUrl = "https://168api.vip/index.php?controller=Apiac_Lotrs&action=findLotRs&uid=61258&mkey=96396ae0d51ef0740236fb7256e4e8f7&code=".$api.'&pt=nav';
  164. /*if($id==76){
  165. $url = $baseUrl.'&sdate='.$sdate;
  166. }else if($id==91) {
  167. $url = $baseUrl.'&sdate='.$sdate;
  168. }else if($id==75) {
  169. $url = $baseUrl.'&sdate=' . $sdate;
  170. }else if($id==104) {
  171. $url = $baseUrl.'&sdate='. $sdate;
  172. }else if($id==105) {
  173. $url = $baseUrl.'&sdate=' . $sdate;
  174. }else if($id==92){
  175. $url = $apiUrl.'/api/award/index.php?mkey=DfhHGF7USHGVFDKJNX3454AHDc&code='.$api;
  176. }else if($id>=78 && $id<=120){
  177. $url = $baseUrl;
  178. }else if($id == 48 || $id == 75 || $id == 76 || $id == 78){
  179. $url = $baseUrl.'?date='.date('Y', time());
  180. }else if ($id == 8){
  181. $url = $baseUrl.'&sdate='.$sdate;
  182. }else if ($id == 77){
  183. $Date = date('Y',time());
  184. $url = "{$webApiUrl}/home/six_history?year=".$Date.'&gtype=1';
  185. }else{
  186. $url = $webApiUrl.'/home/get_today?id='.$id;
  187. }*/
  188. $url = $baseUrl.'&sdate='.$sdate;
  189. // echo $url."<br>";
  190. $results = httpRequest($url,'','get');
  191. $datas = isset($results['data'])?$results['data'] : [];
  192. $awards = [];
  193. if($datas){
  194. foreach ($datas as $v) {
  195. $cycleid = isset($v['cycleid'])? $v['cycleid'] : '';
  196. $balls = isset($v['balls'])? $v['balls'] : '';
  197. $stime = isset($v['stime'])? $v['stime'] : '';
  198. if($type == 1){
  199. $d = explode('-', $cycleid);
  200. $cycleid = isset($d[1])? $d[1] : $cycleid;
  201. }else if($type == 2){
  202. $cycleid = str_replace('-','', $cycleid);
  203. }
  204. //if(!AwardModel::where(['Number'=> $cycleid])->value('id')){
  205. $awards[$cycleid] = [
  206. 'Sid'=> $id,
  207. 'DateTIme'=> $stime,
  208. 'Number'=> $cycleid,
  209. 'Data'=> $balls,
  210. ];
  211. // }
  212. }
  213. }
  214. ksort($awards);
  215. $awards = array_values($awards);
  216. //AwardModel::insert($awards);
  217. echo '<pre>';
  218. var_dump($awards);
  219. }
  220. }