You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
138 lines
4.6 KiB
138 lines
4.6 KiB
<?php
|
|
|
|
namespace App\Service;
|
|
|
|
use App\Model\ServiceEvaluate;
|
|
use App\Model\ServicePersonnel;
|
|
use App\Model\Users;
|
|
use Hyperf\DbConnection\Db;
|
|
use Hyperf\HttpServer\Contract\RequestInterface;
|
|
use Hyperf\Di\Annotation\Inject;
|
|
use Hyperf\Paginator\Paginator;
|
|
|
|
class OrderListService implements OrderListServiceInterface
|
|
{
|
|
|
|
public function storeOrderList($data)
|
|
{
|
|
$data['pagesize'] = intval($data['pagesize']);
|
|
$order_main = Db::table('ims_cjdc_order as o')
|
|
->join('ims_cjdc_order_main as m','o.order_main_id','=','m.id')
|
|
->join('ims_cjdc_storeset as s','s.store_id','=','o.store_id')
|
|
->where([
|
|
['o.store_id','=',$data['id']],
|
|
['o.type','=',1],
|
|
])
|
|
->whereIn('o.state',[$data['state']])
|
|
->select(
|
|
's.id',
|
|
's.ps_mode',
|
|
'm.order_shipping_code',
|
|
'o.id as order_id',
|
|
'o.address',
|
|
'o.delivery_time',
|
|
'o.lat',
|
|
'o.lng',
|
|
'o.money',
|
|
'o.name',
|
|
'o.note',
|
|
'o.order_num',
|
|
'o.order_type',
|
|
'o.pay_type',
|
|
'o.state',
|
|
'o.store_id',
|
|
'o.time',
|
|
'm.dada_status'
|
|
)
|
|
->paginate($data['pagesize']);
|
|
$res = array();
|
|
foreach ($order_main as $k => $v){
|
|
if($v->dada_status > 0){
|
|
$v->ps_mode = '达达配送';
|
|
}else{
|
|
$v->ps_mode = '服务站配送';
|
|
}
|
|
$goods = Db::table('ims_cjdc_order_goods')
|
|
->where('order_id',$v->order_id)
|
|
->select('img','number','name','money')
|
|
->get();
|
|
$num = Db::table('ims_cjdc_order_goods')
|
|
->where('order_id',$v->order_id)
|
|
->sum('number');
|
|
$order_data = array(
|
|
'good' => $goods,
|
|
'order' => $v,
|
|
'num' => $num,
|
|
);
|
|
$res[$k] = $order_data;
|
|
}
|
|
return $res;
|
|
|
|
}
|
|
|
|
public function userOrderList($data)
|
|
{
|
|
$order_main = Db::table('ims_cjdc_order_main')
|
|
->where([
|
|
['id','=',$data['id']],
|
|
['type','=',1],
|
|
])
|
|
->select(
|
|
'address',
|
|
'box_money',
|
|
'delivery_time',
|
|
'dn_state',
|
|
'money',
|
|
'name',
|
|
'note',
|
|
'order_num',
|
|
'order_type',
|
|
'pay_time',
|
|
'pay_type',
|
|
'state',
|
|
'dada_fee as ps_money',
|
|
'time',
|
|
'type',
|
|
'yhq_money2',
|
|
'tel',
|
|
'dada_status'
|
|
)
|
|
->first();
|
|
$order = Db::table('ims_cjdc_order as o')
|
|
->join('ims_cjdc_store as s','o.store_id','=','s.id')
|
|
->where('o.order_main_id',$data['id'])
|
|
->select(
|
|
'o.id',
|
|
'o.store_id',
|
|
'o.name as store_name',
|
|
'o.box_money as store_box_money',
|
|
'o.mj_money as store_mj_money',
|
|
'o.money as store_money',
|
|
'o.note as store_note',
|
|
's.tel as store_tel',
|
|
's.logo as store_logo'
|
|
)
|
|
->get();
|
|
$store_list = array();
|
|
foreach ($order as $k => $v){
|
|
$goods = Db::table('ims_cjdc_order_goods as og')
|
|
->join('ims_cjdc_goods as g','g.id','=','og.good_id')
|
|
->where('og.order_id',$v->id)
|
|
->select(
|
|
'og.id as good_id',
|
|
'og.img as good_logo',
|
|
'og.money as good_money',
|
|
'og.name as good_name',
|
|
'og.number as good_num',
|
|
'og.spec as good_spec',
|
|
'g.is_show'
|
|
)
|
|
->get();
|
|
$v->good_list = $goods;
|
|
$store_list[$v->store_id] = $v;
|
|
}
|
|
$order_main->store_list = $store_list;
|
|
return $order_main;
|
|
}
|
|
|
|
}
|