123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110 |
- <?php
- namespace app\common\model;
- use think\Model;
- class MealcenterModel extends Model
- {
- protected $table = "t_mealcenter";
- public function insertData($data)
- {
- if (!isset($data['createtime']) || empty($data['createtime']) || !is_string($data['createtime'])) {
- $data['createtime'] = date("Y-m-d H:i:s");
- }
- if (isset($data['id'])) {
- unset($data['id']);
- }
- $data = $this->formatData($data);
- if (empty($data)) {
- return false;
- }
- $id = $this->insertGetId($data);
- return $id ? $id : false;
- }
- /**
- * 校验入库数据
- * 20220119
- */
- private function formatData($data)
- {
- $useData = [];
- $fields = $this->getTableFields();
- foreach ($data as $key => $value) {
- if (in_array($key, $fields)) {
- $useData[$key] = $value;
- }
- }
- return $useData;
- }
- public function getInfo($where, $field = "*", $row = true)
- {
- $info = $this->field($field)->where($where);
- if ($row) {
- $info = $info->find();
- } else {
- $info = $info->select();
- }
- return empty($info) ? false : $info;
- }
- public function updateinfo($where, $updateData)
- {
- $row = $this->where($where)->update($updateData);
- return empty($row) ? false : $row;
- }
- public function deleteinfo($where)
- {
- $row = $this->where($where)->delete();
- return empty($row) ? false : $row;
- }
- public function getList($where = [], $field = "*", $page = 1, $size = 10, $order = "id desc", $group = "", $row = false)
- {
- $sqlObj = $this->where($where);
- if ("count" != $field) {
- if (empty($size)) {
- $sqlObj = $sqlObj->field($field)->order($order)->group($group);
- } else {
- $sqlObj = $sqlObj->field($field)->order($order)->group($group)->page($page, $size);
- }
- if ($row) {
- $data = $sqlObj->find();
- } else {
- $data = $sqlObj->select();
- }
- } else {
- $data = $sqlObj->count();
- }
- return $data;
- }
- public function getlistbycoord($where, $page = 1, $size = 0)
- {
- $long = $where['gcj_long'];
- $lat = $where['gcj_lat'];
- $startinex = ($page - 1) * $size;
- $sql = "
- select * from
- (
- select
- m.*,
- st_distance_sphere(
- point(
- CAST(m.gcj_long AS decimal(11,8)),
- CAST(m.gcj_lat AS decimal(11,8))
- ),
- point(
- CAST(" . $long . " AS decimal(11,8)),
- CAST(" . $lat . " AS decimal(11,8))
- )
- ) as distance
- from t_mealcenter as m where is_active=1
- ) as tab order by distance asc limit " . $startinex . "," . $size . "
- ";
- $list = $this->query($sql);
- return $list;
- }
- }
|