MealcenterModel.php 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110
  1. <?php
  2. namespace app\common\model;
  3. use think\Model;
  4. class MealcenterModel extends Model
  5. {
  6. protected $table = "t_mealcenter";
  7. public function insertData($data)
  8. {
  9. if (!isset($data['createtime']) || empty($data['createtime']) || !is_string($data['createtime'])) {
  10. $data['createtime'] = date("Y-m-d H:i:s");
  11. }
  12. if (isset($data['id'])) {
  13. unset($data['id']);
  14. }
  15. $data = $this->formatData($data);
  16. if (empty($data)) {
  17. return false;
  18. }
  19. $id = $this->insertGetId($data);
  20. return $id ? $id : false;
  21. }
  22. /**
  23. * 校验入库数据
  24. * 20220119
  25. */
  26. private function formatData($data)
  27. {
  28. $useData = [];
  29. $fields = $this->getTableFields();
  30. foreach ($data as $key => $value) {
  31. if (in_array($key, $fields)) {
  32. $useData[$key] = $value;
  33. }
  34. }
  35. return $useData;
  36. }
  37. public function getInfo($where, $field = "*", $row = true)
  38. {
  39. $info = $this->field($field)->where($where);
  40. if ($row) {
  41. $info = $info->find();
  42. } else {
  43. $info = $info->select();
  44. }
  45. return empty($info) ? false : $info;
  46. }
  47. public function updateinfo($where, $updateData)
  48. {
  49. $row = $this->where($where)->update($updateData);
  50. return empty($row) ? false : $row;
  51. }
  52. public function deleteinfo($where)
  53. {
  54. $row = $this->where($where)->delete();
  55. return empty($row) ? false : $row;
  56. }
  57. public function getList($where = [], $field = "*", $page = 1, $size = 10, $order = "id desc", $group = "", $row = false)
  58. {
  59. $sqlObj = $this->where($where);
  60. if ("count" != $field) {
  61. if (empty($size)) {
  62. $sqlObj = $sqlObj->field($field)->order($order)->group($group);
  63. } else {
  64. $sqlObj = $sqlObj->field($field)->order($order)->group($group)->page($page, $size);
  65. }
  66. if ($row) {
  67. $data = $sqlObj->find();
  68. } else {
  69. $data = $sqlObj->select();
  70. }
  71. } else {
  72. $data = $sqlObj->count();
  73. }
  74. return $data;
  75. }
  76. public function getlistbycoord($where, $page = 1, $size = 0)
  77. {
  78. $long = $where['gcj_long'];
  79. $lat = $where['gcj_lat'];
  80. $startinex = ($page - 1) * $size;
  81. $sql = "
  82. select * from
  83. (
  84. select
  85. m.*,
  86. st_distance_sphere(
  87. point(
  88. CAST(m.gcj_long AS decimal(11,8)),
  89. CAST(m.gcj_lat AS decimal(11,8))
  90. ),
  91. point(
  92. CAST(" . $long . " AS decimal(11,8)),
  93. CAST(" . $lat . " AS decimal(11,8))
  94. )
  95. ) as distance
  96. from t_mealcenter as m where is_active=1
  97. ) as tab order by distance asc limit " . $startinex . "," . $size . "
  98. ";
  99. $list = $this->query($sql);
  100. return $list;
  101. }
  102. }