service = new OrderService(); parent::__construct($app); } /** * @return \think\response\Json * @throws BaseException */ public function create() { $params = (new CreateOrderValidate())->message([ 'store_id.require' => lang("Stores do not exist"), 'customer_id.require' => lang("Customer do not exist"), 'products.require' => lang("Products do not exist"), ])->requestBodyCheck($this->request); $products = json_decode($params['products']); predicate($products != null, 'products 解析错误'); for ($i = 0; $i < count($products); $i++) { $product = $products[$i]; predicate(isset($product->store_product_id) && $product->store_product_id > 0, '门店商品ID错误!'); predicate($product->quantity > 0, '商品数量错误!'); predicate($product->adviser_1_id > 0, '销售顾问1必须存在!'); if(isset($product->adviser_2_id)) predicate($product->adviser_2_id > 0, '销售顾问2不符合规则!'); if(isset($product->teacher_id)) predicate($product->teacher_id > 0, '老师不符合规则!'); } $res = $this->service->create($params, $products); predicate($res->bool,$res->message); return $this->ok($res->data); } /** * @return \think\response\Json * @throws BaseException */ public function payment() { $params = $this->request->param(); if(!isset($params['order_id'])) { return $this->fail("订单ID不存在!"); } if(!isset($params['channels'])) { return $this->fail("支付记录不存在!"); } $channels = json_decode($params['channels']); predicate($channels != null, 'channels 解析错误'); for ($i = 0; $i < count($channels); $i++) { $channel = $channels[$i]; predicate(isset($channel->channel_id) && $channel->channel_id > 0, '支付渠道错误!'); if (isset($channel->fee)) { predicate($channel->fee > 0, '支付费用错误!'); } if (isset($channel->credit_card)) { predicate(is_array($channel->credit_card), 'credit_card 不符合规则!'); for ($j = 0; $j < count($channel->credit_card); $j++) { $credit_card = $channel->credit_card[$j]; predicate(isset($credit_card->credit_card_id) && $credit_card->credit_card_id > 0, '信用卡配置id错误!'); predicate($credit_card->fee > 0, '支付费用错误!'); if (isset($credit_card->stage_num)) predicate(in_array($credit_card->stage_num,[6, 9, 12, 24, 36]), '分期数不符合规则!'); } } } $res = $this->service->payment($params, $channels); predicate($res->bool,$res->message); return $this->ok($res->data); } /** * @return \think\response\Json * @throws BaseException */ public function fetch() { $params = $this->request->param(); predicate(isset($params['store_id']) && $params['store_id'] > 0, '门店id不能为空'); predicate(isset($params['type']) && in_array($params['type'], [1, 2]), '订单类型不符合规则'); $res = $this->service->fetch($params); return $this->ok($res); } /** * @return \think\response\Json * @throws BaseException * @throws \think\db\exception\DbException */ public function fetchByCustomerId() { $params = $this->request->param(); predicate(isset($params['store_id']) && $params['store_id'] > 0, '门店id不能为空'); predicate(isset($params['customer_id']) && $params['customer_id'] > 0, '客户ID不能为空'); $res = $this->service->fetchByCustomerId($params); return $this->ok($res); } public function fetchOrderProducts() { $params = $this->request->param(); predicate(isset($params['order_id']) && $params['order_id'] > 0, '订单ID不能为空'); return $this->ok($this->service->fetchOrderProducts($params['order_id'], $params['page'] ?? 1, $params['size'] ?? 10)); } /** * @return \think\response\Json * @throws BaseException */ public function upload_numerology() { $params = $this->request->param(); predicate(isset($params['order_product_id']) && $params['order_product_id'] > 0, '订单商品不能空!'); predicate(isset($params['report']), '命理报告不能为空'); $res = $this->service->upload_numerology($params['order_product_id'], $params['report']); predicate($res->bool,$res->message); return $this->ok($res->data); } /** * @return \think\response\Json */ public function fetchWaitGatherAnnualFee() { $params = $this->request->param(); return $this->ok($this->service->fetchWaitGatherAnnualFee( $params['admin_id'], format_string($params['text'] ?? null), isset($params['start_time']) && $params['start_time'] > 0 ? $params['start_time'] : null, isset($params['end_time']) && $params['end_time'] > 0 ? $params['end_time'] : null, $params['page'] ?? 1, $params['size'] ?? 20 )); } /** * @return \think\response\Json * @throws BaseException */ public function paymentAnnualFee() { $params = $this->request->param(); predicate(isset($params['annual_fee_id']) && $params['annual_fee_id'] > 0, '待收取年费的ID错误!'); $r = $this->service->paymentAnnualFee($params['annual_fee_id']); predicate($r->bool,$r->message); return $this->ok($r->data); } /** * @return \think\response\Json * @throws BaseException */ public function fetchOrderByReturn() { $params = $this->request->param(); predicate(isset($params['store_id']) && $params['store_id'] > 0, '门店ID错误!'); return $this->ok($this->service->fetchOrderByReturn( $params['admin_id'], $params['store_id'], format_string($params['order_no'] ?? null), format_string($params['customer_name'] ?? null), $params['page'] ?? 1, $params['size'] ?? 10 )); } /** * @return \think\response\Json * @throws BaseException */ public function returnOrderProduct() { $params = $this->request->param(); predicate(isset($params['order_id']) && $params['order_id'] > 0, '订单ID不存在!'); predicate(isset($params['order_product_ids']), lang("Please select the item to return")); $order_product_ids = explode(',', $params['order_product_ids']); $r = $this->service->returnOrderProduct($params['admin_id'],$params['order_id'], array_unique($order_product_ids)); predicate($r->bool, $r->message); return $this->ok($r->data); } /** * @return \think\response\Json * @throws BaseException */ public function findByOrderNo() { $params = $this->request->param(); predicate(isset($params['order_no']) && strlen($params['order_no']) > 0, '请输入订单编号!'); $r = $this->service->findByOrderNo($params['admin_id'], $params['order_no']); predicate($r->bool, $r->message); return $this->ok($r->data); } /** * @return \think\response\Json * @throws BaseException */ public function exchange() { $params = $this->request->param(); predicate(isset($params['order_id']) && $params['order_id'] > 0, '订单ID不存在!'); predicate(isset($params['origin_order_product_ids']) && $params['origin_order_product_ids'] > 0, '原来的订单商品IDs不存在!'); predicate(isset($params['append_product_ids']) && $params['append_product_ids'] > 0, '新添加的商品IDs不存在!'); $origin_order_product_ids = explode(',', $params['origin_order_product_ids']); $append_product_ids = explode(',', $params['append_product_ids']); $r = $this->service->exchange($params['admin_id'], $params['order_id'], $origin_order_product_ids, $append_product_ids); predicate($r->bool, $r->message); return $this->ok($r->data); } }