소스 검색

serverorder

steelxu 2 년 전
부모
커밋
73a60d17b5
3개의 변경된 파일213개의 추가작업 그리고 0개의 파일을 삭제
  1. 27 0
      application/api/controller/Houseserver.php
  2. 106 0
      application/api/logic/houseserverlogic.php
  3. 80 0
      application/common/model/serverappointmentmodel.php

+ 27 - 0
application/api/controller/Houseserver.php

@@ -20,4 +20,31 @@ class Houseserver extends Controller{
         }
         return backjson2(200, $result['msg'], $result['data']);
     }
+
+    /*
+     * 20221229
+     */
+    public function suborder()
+    {
+        $post = request()->post();
+        $l_h = new houseserverlogic();
+        $result =$l_h->createOrder($post);
+        if (empty($result['status'])) {
+            return backjson2(0, $result['msg']);
+        }
+        return backjson2(200, $result['msg'], $result['data']);
+    }
+
+    /*
+     * 20221229
+     */
+    public function queryorderlistbyuid(){
+        $post = request()->post();
+        $l_h = new houseserverlogic();
+        $result =$l_h->getorderlistbyuserid($post);
+        if (empty($result['status'])) {
+            return backjson2(0, $result['msg']);
+        }
+        return backjson2(200, $result['msg'], $result['data']);
+    }
 }

+ 106 - 0
application/api/logic/houseserverlogic.php

@@ -7,6 +7,10 @@
  */
 namespace app\api\logic;
 use app\common\model\houseservermodel;
+use app\common\model\MealcenterModel;
+use app\common\model\serverappointmentmodel;
+use app\common\model\UserAddressModel;
+use think\Db;
 
 class houseserverlogic{
 
@@ -28,4 +32,106 @@ class houseserverlogic{
         ];
         return backarr(1, "查询成功", $data);
     }
+    /*
+     * 20221229
+     * 创建家政预约定单
+     */
+    public function createOrder($arr)
+    {
+        $fillfields = ['center_id', 'serverid','apointmentuserid'];
+        foreach ($fillfields as $key => $value) {
+            if (!isset($arr[$value]) || empty($arr[$value])) {
+                return backarr(0, "参数缺少");
+            }
+        }
+        $center_id = $arr['center_id'];
+        $serverid = $arr['serverid'];
+        $userid = $arr['apointmentuserid'];
+        $m_mc =new MealcenterModel();
+        $mcinfo = $m_mc->getInfo(['id' => $center_id, 'is_active' => 1]);
+        if (empty($mcinfo)) {
+            return backarr(0, "配餐中心不存在");
+        }
+        $m_hs = new houseservermodel();
+        $sinfo = $m_hs->getInfo(['id' => $serverid, 'isactive' => 1]);
+        if (empty($sinfo)) {
+            return backarr(0, "服务项目不存在");
+        }
+        Db::startTrans();
+        try {
+            $m_ua = new UserAddressModel();
+            if (!isset($arr['address_id']) || empty($arr['address_id'])) {
+                $fillfields = ['receiver_address', 'address', 'receiver_name', 'receiver_telno', 'gcj_lat', 'gcj_long'];
+                foreach ($fillfields as $key => $value) {
+                    if (!isset($arr[$value]) || empty($arr[$value])) {
+                        throw new \Exception("参数缺少");
+                    }
+                }
+                $insertData = [
+                    'receiver_address' => $arr['receiver_address'],
+                    'address' => $arr['address'],
+                    'receiver_name' => $arr['receiver_name'],
+                    'receiver_telno' => $arr['receiver_telno'],
+                    'gcj_lat' => $arr['gcj_lat'],
+                    'gcj_long' => $arr['gcj_long'],
+                    'user_id' => $userid,
+                ];
+                $uaid = $m_ua->insertData($insertData);
+                if (empty($uaid)) {
+                    throw new \Exception("地址保存失败");
+                }
+            } else {
+                $uaid = $arr['address_id'];
+                $uinfo = $m_ua->getInfo(['id' => $uaid]);
+                if (empty($uinfo)) {
+                    throw new \Exception("无地址信息");
+                }
+            }
+
+
+
+            $orderno = date('ymdhis') . $center_id . $serverid . $userid;
+            $insertData = [
+                'center_id' => $center_id,
+                'serverid' => $serverid,
+                'orderno' => $orderno,
+                'apointmentuserid' => $userid,
+                'address_id' => $uaid,
+                'appointmenttime' => date('Y-m-d H:i:s'),
+
+            ];
+            $m_mo = new serverappointmentmodel();
+            $moid = $m_mo->insertData($insertData);
+            if (empty($moid)) {
+                throw new \Exception("预约单添加失败");
+            }
+            Db::commit();
+            return backarr(1, "预约单添加成功", ['moid' => $moid]);
+        } catch (\Exception $e) {
+            Db::rollback();
+            $msg = $e->getMessage();
+            return backarr(0, $msg);
+        }
+    }
+
+    /*
+     * 20221229
+     */
+    public function getorderlistbyuserid($arr){
+        $t_sa=new serverappointmentmodel();
+        if (!isset($arr['userid']) || empty($arr['userid'])) {
+            return backarr(0, "参数缺少");
+        }
+        $page = isset($arr['page']) && is_numeric($arr['page']) && !empty($arr['page']) && $arr['page'] > 0 ? $arr['page'] : 1;
+        $size = isset($arr['size']) && is_numeric($arr['size']) && !empty($arr['size']) && $arr['size'] > 0 ? $arr['size'] : 10;
+        $where_arr['apointmentuserid']=$arr['userid'];
+        $list=$t_sa->getList($where_arr,'*',$page,$size);
+        $data = [
+            'page' => $page,
+            'size' => $size,
+            //  'count' => $count,
+            'list' => $list,
+        ];
+        return backarr(1, "查询成功", $data);
+    }
 }

+ 80 - 0
application/common/model/serverappointmentmodel.php

@@ -0,0 +1,80 @@
+<?php
+/**
+ * Created by PhpStorm.
+ * User: sicilon_IT
+ * Date: 2022/12/29
+ * Time: 14:27
+ */
+namespace app\common\model;
+use think\Model;
+class serverappointmentmodel extends Model{
+    protected $table = "t_serverappointment";
+
+    public function insertData($data)
+    {
+        if (isset($data['id'])) {
+            unset($data['id']);
+        }
+        $data = $this->formatData($data);
+        if (empty($data)) {
+            return false;
+        }
+        $id = $this->insertGetId($data);
+        return $id ? $id : false;
+    }
+
+    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;
+    }
+}