|
@@ -5,6 +5,7 @@ namespace app\admin\controller\order;
|
|
|
use app\admin\service\coupon\CouponService;
|
|
|
use app\admin\service\member\MemberService;
|
|
|
use app\admin\service\order\OrderService;
|
|
|
+use app\admin\service\order\PayDetailService;
|
|
|
use app\admin\validate\coupon\CouponValidate;
|
|
|
use app\admin\validate\device\DeviceValidate;
|
|
|
use app\admin\validate\order\OrderExpressValidate;
|
|
@@ -67,8 +68,9 @@ class WholeController extends Curd
|
|
|
*/
|
|
|
public function select(Request $request): Response
|
|
|
{
|
|
|
+ $timeType = $request->get('time_type', 'add');
|
|
|
[$where, $format, $limit, $field, $order] = $this->selectInput($request);
|
|
|
- if (!empty($where['order_addtimes'])) {
|
|
|
+ if (!empty($where['order_addtimes']) && $timeType == 'add') {
|
|
|
$where['order_addtimes'][0] = strtotime($where['order_addtimes'][0]);
|
|
|
$where['order_addtimes'][1] = strtotime($where['order_addtimes'][1]);
|
|
|
}
|
|
@@ -87,7 +89,7 @@ class WholeController extends Curd
|
|
|
$todayTimeUnix = strtotime(date('Y-m-d') . ' 00:00:00');
|
|
|
$groupIds = PayDetail::whereRaw('CAST(UNIX_TIMESTAMP(pay_paytimes) as SIGNED) > ? ', [$todayTimeUnix])
|
|
|
->where('join_pay_order_id', '<>', '')
|
|
|
- ->whereIn('pay_category',['GOODS','SERVICE','CHNMED','CHNNCD','PACKAGE','MEALS'])
|
|
|
+ ->whereIn('pay_category', ['GOODS', 'SERVICE', 'CHNMED', 'CHNNCD', 'PACKAGE', 'MEALS'])
|
|
|
->where('pay_status', 'SUCCESS')
|
|
|
->pluck('join_pay_order_id')
|
|
|
->toArray();
|
|
@@ -96,15 +98,15 @@ class WholeController extends Curd
|
|
|
$todayTimeUnix = strtotime(date('Y-m-d') . ' 00:00:00');
|
|
|
$groupIds = PayDetail::whereRaw('CAST(UNIX_TIMESTAMP(pay_paytimes) as SIGNED) > ? ', [$todayTimeUnix])
|
|
|
->where('join_pay_order_id', '<>', '')
|
|
|
- ->whereIn('pay_prepayid',['WXPAY','ALIPAY','OFFLINE_WXPAY','OFFLINE_ALIPAY','MONEY'])
|
|
|
+ ->whereIn('pay_prepayid', ['WXPAY', 'ALIPAY', 'OFFLINE_WXPAY', 'OFFLINE_ALIPAY', 'MONEY'])
|
|
|
->where('pay_status', 'SUCCESS')
|
|
|
->pluck('join_pay_order_id')
|
|
|
->toArray();
|
|
|
$where['order_groupby'] = ['in', $groupIds];
|
|
|
- }else if ($type == 'todayRechargeOrder'){
|
|
|
- $where['order_classify'] = ['in',['RECHARGE','COMBINE','PARTNER','REFERRER','VIP']];
|
|
|
+ } else if ($type == 'todayRechargeOrder') {
|
|
|
+ $where['order_classify'] = ['in', ['RECHARGE', 'COMBINE', 'PARTNER', 'REFERRER', 'VIP']];
|
|
|
$todayTimeUnix = strtotime(date('Y-m-d') . ' 00:00:00');
|
|
|
- $where['order_addtimes'] = ['>',$todayTimeUnix];
|
|
|
+ $where['order_addtimes'] = ['>', $todayTimeUnix];
|
|
|
}
|
|
|
$orderIds = [];
|
|
|
if (!empty($where['order_id'])) {
|
|
@@ -155,12 +157,26 @@ class WholeController extends Curd
|
|
|
$orderGoodsIds = OrderSheet::whereIn('join_sheet_goods_id', $goodsIds)->pluck('join_sheet_order_id')->toArray();
|
|
|
if (!empty($where['order_id'])) {
|
|
|
$orderIds = array_intersect($orderIds, $orderGoodsIds);
|
|
|
- $where['order_id'] = ['in', implode(',', $orderIds)];
|
|
|
+// $where['order_id'] = ['in', implode(',', $orderIds)];
|
|
|
} else {
|
|
|
- $where['order_id'] = ['in', implode(',', $orderGoodsIds)];
|
|
|
+ $orderIds = $orderGoodsIds;
|
|
|
+// $where['order_id'] = ['in', implode(',', $orderGoodsIds)];
|
|
|
}
|
|
|
+ }
|
|
|
+ // 付款时间
|
|
|
+ if ($timeType == 'pay' && !empty($where['order_addtimes'])) {
|
|
|
+ $payTimeStart = strtotime($where['order_addtimes'][0]);
|
|
|
+ $payTimeEnd = strtotime($where['order_addtimes'][1]);
|
|
|
+ unset($where['order_addtimes']);
|
|
|
+ $payOrderIds = PayDetailService::getPayOrderId($payTimeStart, $payTimeEnd);
|
|
|
+ }
|
|
|
+ if (!empty($orderIds) && !empty($payOrderIds)) {
|
|
|
+ $orderIds = array_intersect($orderIds, $payOrderIds);
|
|
|
+ $where['order_id'] = ['in', implode(',', $orderIds)];
|
|
|
} elseif (!empty($orderIds)) {
|
|
|
$where['order_id'] = ['in', implode(',', $orderIds)];
|
|
|
+ } elseif (!empty($payOrderIds)) {
|
|
|
+ $where['order_id'] = ['in', implode(',', $payOrderIds)];
|
|
|
}
|
|
|
// 自提订单
|
|
|
if (!empty($where['order_status_system']) && $where['order_status_system'] == 'PICKUP') {
|
|
@@ -273,55 +289,8 @@ class WholeController extends Curd
|
|
|
];
|
|
|
unset($item['join_express_order_id'], $item['order_express_type']);
|
|
|
}
|
|
|
- $payDetails = PayDetail::where('join_pay_order_id', $item['order_groupby'])
|
|
|
- ->whereJsonContains('join_pay_object_json->order_id', $item['order_id'])
|
|
|
- ->where('pay_category', '<>', 'REFUND')
|
|
|
- ->where('pay_status', 'SUCCESS')
|
|
|
- ->select('pay_id', 'pay_category', 'pay_prepayid', 'pay_paytimes', 'pay_status', 'pay_amount', 'pay_extend_json')
|
|
|
- ->get()
|
|
|
- ->toArray();
|
|
|
- if (count($payDetails) > 1) {
|
|
|
- $item['payWay'] = "CONSTITUTE";
|
|
|
- } elseif (count($payDetails) == 1) {
|
|
|
- $payDetail0 = $payDetails[0];
|
|
|
- $item['payWay'] = $payDetail0['pay_prepayid'];
|
|
|
- } else {
|
|
|
- $item['payWay'] = null;
|
|
|
- }
|
|
|
- if (count($payDetails) > 0) {
|
|
|
- $payDetail0 = $payDetails[0];
|
|
|
- $item['pay_times'] = $payDetail0['pay_paytimes'];
|
|
|
- }
|
|
|
- if (!empty($item['payWay']) && $item['order_status_payment'] == 'SUCCESS') {
|
|
|
- $payWay = explode('-', $item['payWay']);
|
|
|
- if (!empty($payWay[1]) && $payWay[1] == 'CASH') {
|
|
|
- $item['payWay'] = '账户余额';
|
|
|
- } else if (!empty($payWay[1]) && $payWay[1] == 'WELFARE') {
|
|
|
- $item['payWay'] = '福利账户';
|
|
|
- } else if (!empty($payWay[1]) && $payWay[1] == 'VIP') {
|
|
|
- $item['payWay'] = 'VIP账户';
|
|
|
- } else if (!empty($payWay[1]) && $payWay[1] == 'QRCODE') {
|
|
|
- $item['payWay'] = '付款码';
|
|
|
- } else if (!empty($payWay[1]) && $payWay[1] == 'NONE') {
|
|
|
- $item['payWay'] = '付零';
|
|
|
- } else if (!empty($payWay[0]) && $payWay[0] == 'OFFLINE') {
|
|
|
- $item['payWay'] = '线下支付';
|
|
|
- } else if (!empty($payWay[0]) && $payWay[0] == 'OFFLINE_ALIPAY') {
|
|
|
- $item['payWay'] = '线下支付-支付宝';
|
|
|
- } else if (!empty($payWay[0]) && $payWay[0] == 'OFFLINE_WXPAY') {
|
|
|
- $item['payWay'] = '线下支付-微信';
|
|
|
- } else if (!empty($payWay[0]) && $payWay[0] == 'WXPAY') {
|
|
|
- $item['payWay'] = '微信支付';
|
|
|
- } else if (!empty($payWay[0]) && $payWay[0] == 'ALIPAY') {
|
|
|
- $item['payWay'] = '支付宝';
|
|
|
- } else if (!empty($payWay[0]) && $payWay[0] == 'CONSTITUTE') {
|
|
|
- $item['payWay'] = '组合支付';
|
|
|
- } else if (!empty($payWay[0]) && $payWay[0] == 'MONEY') {
|
|
|
- $item['payWay'] = '现金';
|
|
|
- }
|
|
|
- } else {
|
|
|
- $item['payWay'] = null;
|
|
|
- }
|
|
|
+
|
|
|
+ $item['payDetail'] = PayDetailService::getPayWay($item['order_groupby'],$item['order_id']);
|
|
|
}
|
|
|
|
|
|
return $items;
|
|
@@ -4388,6 +4357,7 @@ class WholeController extends Curd
|
|
|
|
|
|
public function exportOrder(Request $request)
|
|
|
{
|
|
|
+ $timeType = $request->get('time_type', 'add');
|
|
|
$type = $request->get('type', '');
|
|
|
[$where, $format, $limit, $field, $order] = $this->selectInput($request);
|
|
|
|
|
@@ -4397,11 +4367,10 @@ class WholeController extends Curd
|
|
|
$where['order_classify'] = $request->get('goods_classify');
|
|
|
}
|
|
|
|
|
|
-// $where['order_category'] = ['<>', 'RECHARGE'];
|
|
|
if (!empty($request->get('order_ids'))) {
|
|
|
$where['order_id'] = ['in', $request->get('order_ids')];
|
|
|
}
|
|
|
- if (!empty($where['order_addtimes'])) {
|
|
|
+ if (!empty($where['order_addtimes']) && $timeType == 'add') {
|
|
|
$where['order_addtimes'][0] = strtotime($where['order_addtimes'][0]);
|
|
|
$where['order_addtimes'][1] = strtotime($where['order_addtimes'][1]);
|
|
|
}
|
|
@@ -4419,11 +4388,10 @@ class WholeController extends Curd
|
|
|
->toArray();
|
|
|
$where['order_groupby'] = ['in', $groupIds];
|
|
|
}
|
|
|
- $orderId = trim($request->get('order_id', ''));
|
|
|
+ $orderId = trim($request->get('order_id'));
|
|
|
$orderIds = [];
|
|
|
if (!empty($orderId)) {
|
|
|
$orderIds = Order::where('order_id', 'like', '%' . $orderId . '%')
|
|
|
-// ->whereIn('order_classify', ['SERVICE', 'CHNMED', 'CHNNCD'])
|
|
|
->pluck('order_id')
|
|
|
->toArray();
|
|
|
}
|
|
@@ -4439,9 +4407,22 @@ class WholeController extends Curd
|
|
|
$orderIds = $goodsOrderIds;
|
|
|
}
|
|
|
}
|
|
|
- if (!empty($orderId) || !empty($goodsName)) {
|
|
|
+ // 付款时间
|
|
|
+ if ($timeType == 'pay' && !empty($where['order_addtimes'])) {
|
|
|
+ $payTimeStart = strtotime($where['order_addtimes'][0]);
|
|
|
+ $payTimeEnd = strtotime($where['order_addtimes'][1]);
|
|
|
+ unset($where['order_addtimes']);
|
|
|
+ $payOrderIds = PayDetailService::getPayOrderId($payTimeStart, $payTimeEnd);
|
|
|
+ }
|
|
|
+ if (!empty($orderIds) && !empty($payOrderIds)) {
|
|
|
+ $orderIds = array_intersect($orderIds, $payOrderIds);
|
|
|
$where['order_id'] = ['in', implode(',', $orderIds)];
|
|
|
+ } elseif (!empty($orderIds)) {
|
|
|
+ $where['order_id'] = ['in', implode(',', $orderIds)];
|
|
|
+ } elseif (!empty($payOrderIds)) {
|
|
|
+ $where['order_id'] = ['in', implode(',', $payOrderIds)];
|
|
|
}
|
|
|
+
|
|
|
$order = $request->get('order', 'desc');
|
|
|
$field = $field ?? 'order_addtimes';
|
|
|
|