初始版本
This commit is contained in:
114
server/app/api/lists/OrderLists.php
Executable file
114
server/app/api/lists/OrderLists.php
Executable file
@@ -0,0 +1,114 @@
|
||||
<?php
|
||||
// +----------------------------------------------------------------------
|
||||
// | likeshop开源商城系统
|
||||
// +----------------------------------------------------------------------
|
||||
// | 欢迎阅读学习系统程序代码,建议反馈是我们前进的动力
|
||||
// | gitee下载:https://gitee.com/likeshop_gitee
|
||||
// | github下载:https://github.com/likeshop-github
|
||||
// | 访问官网:https://www.likeshop.cn
|
||||
// | 访问社区:https://home.likeshop.cn
|
||||
// | 访问手册:http://doc.likeshop.cn
|
||||
// | 微信公众号:likeshop技术社区
|
||||
// | likeshop系列产品在gitee、github等公开渠道开源版本可免费商用,未经许可不能去除前后端官方版权标识
|
||||
// | likeshop系列产品收费版本务必购买商业授权,购买去版权授权后,方可去除前后端官方版权标识
|
||||
// | 禁止对系统程序代码以任何目的,任何形式的再发布
|
||||
// | likeshop团队版权所有并拥有最终解释权
|
||||
// +----------------------------------------------------------------------
|
||||
// | author: likeshop.cn.team
|
||||
// +----------------------------------------------------------------------
|
||||
|
||||
namespace app\api\lists;
|
||||
|
||||
|
||||
use app\common\enum\OrderEnum;
|
||||
use app\common\model\coach\Coach;
|
||||
use app\common\model\order\Order;
|
||||
|
||||
class OrderLists extends BaseApiDataLists
|
||||
{
|
||||
/**
|
||||
* @notes 搜索条件
|
||||
* @return array
|
||||
* @author ljj
|
||||
* @date 2022/2/28 9:31 上午
|
||||
*/
|
||||
public function where()
|
||||
{
|
||||
$where = [];
|
||||
$where[] = ['user_id','=',$this->userId];
|
||||
if (isset($this->params['order_status']) && $this->params['order_status'] != '') {
|
||||
switch ($this->params['order_status']) {
|
||||
case 1:
|
||||
$where[] = ['order_status','=',OrderEnum::ORDER_STATUS_WAIT_PAY];
|
||||
break;
|
||||
case 2:
|
||||
$where[] = ['order_status','in',[OrderEnum::ORDER_STATUS_WAIT_RECEIVING,OrderEnum::ORDER_STATUS_ARRIVE,OrderEnum::ORDER_STATUS_DEPART]];
|
||||
break;
|
||||
case 3:
|
||||
$where[] = ['order_status','=',OrderEnum::ORDER_STATUS_START_SERVER];
|
||||
break;
|
||||
case 4:
|
||||
$where[] = ['order_status','=',OrderEnum::ORDER_STATUS_SERVER_FINISH];
|
||||
break;
|
||||
case 5:
|
||||
$where[] = ['order_status','=',OrderEnum::ORDER_STATUS_CLOSE];
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
return $where;
|
||||
}
|
||||
|
||||
/**
|
||||
* @notes 订单列表
|
||||
* @return array
|
||||
* @throws \think\db\exception\DataNotFoundException
|
||||
* @throws \think\db\exception\DbException
|
||||
* @throws \think\db\exception\ModelNotFoundException
|
||||
* @author ljj
|
||||
* @date 2022/2/28 9:31 上午
|
||||
*/
|
||||
public function lists(): array
|
||||
{
|
||||
$lists = Order::field('id,sn,order_status,pay_status,total_order_amount,appoint_time,user_remark,address_snap,order_amount,server_finish_time,create_time,coach_id')
|
||||
->order('id','desc')
|
||||
->with(['order_goods' => function($query){
|
||||
$query->field('id,order_id,goods_id,goods_snap,goods_num,duration,goods_image,goods_name,goods_price')->hidden(['goods_snap']);
|
||||
}])
|
||||
->append(['appoint_time','appoint_date','order_status_desc','pay_btn','gap_btn','append_btn','user_cancel_btn','del_btn','comment_btn','look_comment_btn','order_cancel_time'])
|
||||
->where($this->where())
|
||||
->limit($this->limitOffset, $this->limitLength)
|
||||
->select()
|
||||
->toArray();
|
||||
$coachIds = array_column($lists,'coach_id');
|
||||
$coachLists = Coach::where(['id'=>$coachIds])
|
||||
->field('name,work_photo,mobile,sn,id')->select()->toArray();
|
||||
$coachLists = array_column($coachLists,null,'id');
|
||||
foreach ($lists as $key => $order){
|
||||
$lists[$key]['coach_info'] = [];
|
||||
if(in_array($order['order_status'],[OrderEnum::ORDER_STATUS_DEPART,OrderEnum::ORDER_STATUS_ARRIVE,OrderEnum::ORDER_STATUS_START_SERVER,OrderEnum::ORDER_STATUS_SERVER_FINISH])){
|
||||
$lists[$key]['coach_info'] = [
|
||||
'name' => $coachLists[$order['coach_id']]['name'] ?? '',
|
||||
'work_photo' => $coachLists[$order['coach_id']]['work_photo'] ?? '',
|
||||
'sn' => $coachLists[$order['coach_id']]['sn'] ?? '',
|
||||
'mobile' => $coachLists[$order['coach_id']]['mobile'] ?? ''
|
||||
];
|
||||
}
|
||||
if(!isset($order['address_snap']['house_number'])){
|
||||
$lists[$key]['address_snap']['house_number'] = '';
|
||||
}
|
||||
}
|
||||
return $lists;
|
||||
}
|
||||
|
||||
/**
|
||||
* @notes 订单数量
|
||||
* @return int
|
||||
* @author ljj
|
||||
* @date 2022/2/28 9:32 上午
|
||||
*/
|
||||
public function count(): int
|
||||
{
|
||||
return Order::where($this->where())->count();
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user