AndroidAdapter.php 2.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. <?php
  2. namespace Biz\SetAdapter\Result;
  3. class AndroidAdapter extends BaseAdapter {
  4. /**
  5. * 安卓接口适配
  6. * @param string $path
  7. * @param array $params
  8. * @return array
  9. */
  10. public function update(string $path, array $params) {
  11. $params = parent::update($path, $params);
  12. $conf = lang('AndroidConf', 'api')->get($path);
  13. //按配置文件处理
  14. if (isset($conf)) {
  15. $oldStatus = $params['status'];
  16. $newStatus = $conf['status'][$oldStatus] ?? $oldStatus;
  17. $params['status'] = $newStatus;
  18. if (isset($conf['toArr']) && $conf['toArr'] === 1) {
  19. $params['data'] = array_values($params['data']);
  20. }
  21. if (isset($conf['arrFields'])) {
  22. foreach ($conf['arrFields'] as $k => $v) {
  23. if (is_array($params['data'][$v])) continue;//如果已是数组则继续
  24. if (empty(trim($params['data'][$v]))) $params['data'][$v] = [];
  25. }
  26. }
  27. if (isset($conf['conv'])) {
  28. $data = $params['data']['data'];
  29. foreach ($conf['conv'] as $k => $v) {
  30. $targetField = $v['destField'];
  31. $targetKey = $v['key'];
  32. foreach ($data as $kk => $vv) {
  33. if (isset($vv['settings'][$targetField])) {
  34. if (is_string($vv['settings'][$targetField])) {
  35. $vv['settings'][$targetField] = [$targetKey => floatval($vv['settings'][$targetField])];
  36. }
  37. if (isset($vv['settings'][$targetField]['min'])) {
  38. $vv['settings'][$targetField]['min'] = floatval($vv['settings'][$targetField]['min']);
  39. }
  40. if (isset($vv['settings'][$targetField]['max'])) {
  41. $vv['settings'][$targetField]['max'] = floatval($vv['settings'][$targetField]['max']);
  42. }
  43. $data[$kk] = $vv;
  44. }
  45. }
  46. }
  47. $params['data']['data'] = $data;
  48. }
  49. }
  50. self::fixSth($path, $params);
  51. return $params;
  52. }
  53. protected function fixSth(string $path, array &$params) {
  54. //register the fixFunctions
  55. self::fixExample($path, $params);
  56. }
  57. protected function fixExample(string $path, array &$params) {
  58. //do sth
  59. }
  60. }