functions.php 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424
  1. <?php
  2. /**
  3. * Here is your custom functions.
  4. */
  5. use Firebase\JWT\JWT;
  6. use Firebase\JWT\Key;
  7. /* @登录失效码*/
  8. define('USER_INVALID', 4008);
  9. /* @无权限码*/
  10. define('USER_AUTH', 4009);
  11. /* @错误码*/
  12. define('ERROR', 400);
  13. /* @成功码*/
  14. define('SUCCESS', 0);
  15. function error($msg = '请求成功', $data = [], $code = ERROR)
  16. {
  17. $result = [
  18. 'code' => $code,
  19. 'message' => $msg,
  20. 'time' => time(),
  21. 'data' => $data,
  22. ];
  23. $result = encrypt($result);
  24. return json($result);
  25. }
  26. function success($data = [], $msg = '请求成功', $code = 200, $count = 0)
  27. {
  28. $result = [
  29. 'code' => $code,
  30. 'message' => $msg,
  31. 'data' => $data,
  32. 'count' => $count
  33. ];
  34. $result = encrypt($result);
  35. return json($result);
  36. }
  37. function adminsuccess($data = [], $msg = '请求成功', $code = 200, $count = 0)
  38. {
  39. $result = [
  40. 'code' => $code,
  41. 'message' => $msg,
  42. 'data' => $data,
  43. 'count' => $count
  44. ];
  45. return json($result);
  46. }
  47. /** 加密
  48. * @param $data
  49. * @return void
  50. */
  51. function jwtEncode($data)
  52. {
  53. return JWT::encode($data, getenv('JWT_PRIVATEKEY'), 'HS256');
  54. }
  55. /** 解密
  56. * @param $data
  57. * @return void
  58. */
  59. function jwtDecode($data)
  60. {
  61. try {
  62. $data = JWT::decode($data, new Key(getenv('JWT_PRIVATEKEY'), 'HS256'));
  63. } catch (\Exception $exception) {
  64. throw new \Exception('验证失败');
  65. }
  66. return $data;
  67. }
  68. /** 钱包名称
  69. * @param $value
  70. * @return array[]|mixed
  71. */
  72. function moldType($value = '')
  73. {
  74. $arr = [
  75. [
  76. 'value' => 1,
  77. 'name' => '总资产',
  78. ], [
  79. 'value' => 2,
  80. 'name' => '脱贫金',
  81. ], [
  82. 'value' => 3,
  83. 'name' => '团队金',
  84. ], [
  85. 'value' => 4,
  86. 'name' => '充值钱包',
  87. ], [
  88. 'value' => 5,
  89. 'name' => '卡余额',
  90. ], [
  91. 'value' => 6,
  92. 'name' => '数字人民币余额',
  93. ]
  94. ];
  95. if ($value) {
  96. $data = collect($arr)->where('value', $value)->first();
  97. return $data['name'];
  98. } else {
  99. return $arr;
  100. }
  101. }
  102. /** 产品类型
  103. * @param $type
  104. * @return string
  105. */
  106. function cardNumberType($type = '')
  107. {
  108. if ($type == 1) {
  109. return '股权产品';
  110. } else {
  111. return '无';
  112. }
  113. }
  114. /**钱包字段
  115. * @param $value
  116. * @return array[]|mixed
  117. */
  118. //总资产
  119. define('moldType1', 1);
  120. define('moldTypefild1', 'money');
  121. //脱贫金
  122. define('moldType2', 2);
  123. define('moldTypefild2', 'money_one');
  124. //推荐奖钱包
  125. define('moldType3', 3);
  126. define('moldTypefild3', 'money_two');
  127. //充值钱包
  128. define('moldType4', 4);
  129. define('moldTypefild4', 'money_four');
  130. //卡余额
  131. define('moldType5', 5);
  132. define('moldTypefild5', 'money_five');
  133. //卡余额
  134. define('moldType6', 6);
  135. define('moldTypefild6', 'money_six');
  136. function moldTypefild($value = '')
  137. {
  138. $arr = [
  139. [
  140. 'value' => 1,
  141. 'name' => 'money',
  142. ], [
  143. 'value' => 2,
  144. 'name' => 'money_one',
  145. ], [
  146. 'value' => 3,
  147. 'name' => 'money_two',
  148. ], [
  149. 'value' => 4,
  150. 'name' => 'money_four',
  151. ], [
  152. 'value' => 5,
  153. 'name' => 'money_five',
  154. ], [
  155. 'value' => 6,
  156. 'name' => 'money_six',
  157. ]
  158. ];
  159. if ($value) {
  160. $data = collect($arr)->where('value', $value)->first();
  161. return $data['name'];
  162. } else {
  163. return $arr;
  164. }
  165. }
  166. /** 流水类型 */
  167. /** 注册奖励 */
  168. define('streamType1', 1);
  169. /** 签到 */
  170. define('streamType2', 2);
  171. /** 邀请*/
  172. define('streamType3', 3);
  173. /** 提现 */
  174. define('streamType4', 4);
  175. /** 购买 */
  176. define('streamType5', 5);
  177. /** 提现驳回 */
  178. define('streamType6', 6);
  179. /** 平台充值 */
  180. define('streamType7', 7);
  181. /** 平台扣款 */
  182. define('streamType8', 8);
  183. /** 华润赠送 */
  184. define('streamType9', 9);
  185. /** 返佣 */
  186. define('streamType10', 10);
  187. /** 实名奖励 */
  188. define('streamType11', 11);
  189. /** 申请 */
  190. define('streamType12', 12);
  191. /** 数据恢复 */
  192. define('streamType13', 13);
  193. /** 充值 */
  194. define('streamType14', 14);
  195. /** 充值反点 */
  196. define('streamType15', 15);
  197. /** 商品购买 */
  198. define('streamType16', 16);
  199. /** 国债债券购买 */
  200. define('streamType17', 17);
  201. /** 转账 */
  202. define('streamType18', 18);
  203. /** 激活 */
  204. define('streamType19', 19);
  205. function streamType($value = '')
  206. {
  207. $arr = [
  208. [
  209. 'value' => 1,
  210. 'name' => '注册奖励',
  211. ],
  212. [
  213. 'value' => 2,
  214. 'name' => '天天领钱',
  215. ],
  216. [
  217. 'value' => 3,
  218. 'name' => '邀请福利',
  219. ],
  220. [
  221. 'value' => 4,
  222. 'name' => '提现',
  223. ],
  224. [
  225. 'value' => 5,
  226. 'name' => '购买',
  227. ],
  228. [
  229. 'value' => 6,
  230. 'name' => '提现驳回',
  231. ],
  232. [
  233. 'value' => 7,
  234. 'name' => '平台充值',
  235. ],
  236. [
  237. 'value' => 8,
  238. 'name' => '平台扣款',
  239. ],
  240. [
  241. 'value' => 9,
  242. 'name' => '华润赠送',
  243. ],
  244. [
  245. 'value' => 10,
  246. 'name' => '返佣',
  247. ],
  248. [
  249. 'value' => 11,
  250. 'name' => '实名奖励',
  251. ],
  252. [
  253. 'value' => 12,
  254. 'name' => '申请',
  255. ],
  256. [
  257. 'value' => 13,
  258. 'name' => '数据恢复',
  259. ],
  260. [
  261. 'value' => 14,
  262. 'name' => '充值',
  263. ],
  264. [
  265. 'value' => 15,
  266. 'name' => '充值反点',
  267. ],
  268. [
  269. 'value' => 16,
  270. 'name' => '商品购买',
  271. ],
  272. [
  273. 'value' => 17,
  274. 'name' => '国债债券购买',
  275. ],
  276. [
  277. 'value' => 18,
  278. 'name' => '转账',
  279. ],
  280. [
  281. 'value' => 19,
  282. 'name' => '激活',
  283. ]
  284. ];
  285. if ($value) {
  286. $data = collect($arr)->where('value', $value)->first();
  287. return $data['name'];
  288. } else {
  289. return $arr;
  290. }
  291. }
  292. /** 获取未来时间 */
  293. function futureDay($day)
  294. {
  295. return date('Y-m-d', strtotime("+$day days")) . ' 23:59:59';
  296. }
  297. /** 后台登录名称 */
  298. function adminName()
  299. {
  300. return md5(getenv('PROJECT') . date('Ymd'));
  301. }
  302. function imgtxt($html)
  303. {
  304. if (empty($html)) {
  305. return $html;
  306. }
  307. // 要替换的目标字符串
  308. $target = getenv('IMG');
  309. // 正则表达式匹配所有<img>标签
  310. $pattern = '/<img[^>]+/i';
  311. // 正则表达式匹配src属性
  312. $src_pattern = '/src="([^"]+)/i';
  313. // 执行替换
  314. $replaced_html = preg_replace_callback($pattern, function ($matches) use ($src_pattern, $target) {
  315. // 匹配src属性
  316. preg_match($src_pattern, $matches[0], $src_matches);
  317. // 如果找到了src属性,则替换它
  318. if (isset($src_matches[1])) {
  319. // 构造新的<img>标签
  320. if (strpos($src_matches[1], 'http') !== false) {
  321. } else {
  322. return str_replace($src_matches[1], imageToBase64($src_matches[1]), $matches[0]);
  323. }
  324. }
  325. // 如果没有找到src属性,直接返回原始<img>标签
  326. return $matches[0];
  327. }, $html);
  328. // 输出替换后的HTML内容
  329. return $replaced_html;
  330. }
  331. function uuid()
  332. {
  333. $uuid = \support\Db::table('wa_users')->orderByDesc('uuid')->value('uuid');
  334. return bcadd($uuid, bcadd(mt_rand(100, 999), date('d')));
  335. }
  336. /**
  337. * 生成银行卡号
  338. * @param $length
  339. * @return string
  340. */
  341. function generateBankAccountNumber($length = 19)
  342. {
  343. $prefix = '6214'; // 定义账号前缀,如银行标识
  344. $suffixLength = $length - strlen($prefix); // 计算后缀的长度
  345. $suffix = substr(mt_rand(100000000000000, 999999999999999), 0, $suffixLength); // 随机生成后缀
  346. return $prefix . $suffix;
  347. }
  348. /**
  349. * 生成证 书编号
  350. * @return string
  351. * @throws \Random\RandomException
  352. */
  353. function generateCertificateNumber($length = 12)
  354. {
  355. $prefix = 'JZYH'; // 定义账号前缀,如银行标识
  356. $suffixLength = $length - strlen($prefix); // 计算后缀的长度
  357. $suffix = substr(mt_rand(100000000000000, 999999999999999), 0, $suffixLength); // 随机生成后缀
  358. return $prefix . $suffix;
  359. }
  360. /**
  361. * 生成随机字母
  362. * @param $length
  363. * @return string
  364. */
  365. function RandomAlphaNum($length = 4)
  366. {
  367. $randomString = '';
  368. for ($i = 0; $i < $length; $i ++) {
  369. $randomString .= chr(rand(65, 90)); // 生成大写字母 'A' 到 'Z'
  370. // 如果需要包含小写字母,取消下面这行的注释
  371. // $randomString .= chr(rand(97, 122)); // 生成小写字母 'a' 到 'z'
  372. }
  373. return $randomString;
  374. }
  375. function encrypt($data)
  376. {
  377. $info = openssl_encrypt (json_encode ($data, JSON_UNESCAPED_UNICODE), 'AES-128-ECB', getenv ("JWT_AESKEY"), OPENSSL_RAW_DATA) ;
  378. return base64_encode ($info);
  379. }
  380. function imageToBase64($imagePath)
  381. {
  382. if (file_exists('./public'.$imagePath) && !empty($imagePath)) {
  383. // $image = file_get_contents('./public'.$imagePath);
  384. // $base64 = base64_encode($image);
  385. // return 'data:image/jpeg;base64,' . $base64; // 这里假设图片为JPEG格式,根据实际需要修改
  386. return getenv('IMG').$imagePath;
  387. } else {
  388. return '';
  389. }
  390. }