111
This commit is contained in:
parent
2f5ca0b30f
commit
432e799fdd
|
|
@ -19,7 +19,7 @@ use PhpOffice\PhpSpreadsheet\Writer\Xlsx;
|
|||
use PhpOffice\PhpSpreadsheet\Style\Alignment;
|
||||
use PhpOffice\PhpSpreadsheet\Style\Font;
|
||||
use PhpOffice\PhpSpreadsheet\IOFactory;
|
||||
|
||||
|
||||
|
||||
|
||||
class Order extends Base
|
||||
|
|
@ -646,7 +646,7 @@ class Order extends Base
|
|||
// 清理内存
|
||||
unset($data);
|
||||
gc_collect_cycles();
|
||||
|
||||
|
||||
$page++;
|
||||
}
|
||||
|
||||
|
|
@ -894,11 +894,11 @@ class Order extends Base
|
|||
} else {
|
||||
$str_addtime = 0;
|
||||
}
|
||||
|
||||
|
||||
$field = '*';
|
||||
$order = 'id desc';
|
||||
$data = OrderModel::getList($whe, $field, $order, $this->page);
|
||||
|
||||
|
||||
// 获取对应的订单回调验证信息
|
||||
$order_nums = array_column($data['list'], 'order_num');
|
||||
$notify_info = [];
|
||||
|
|
@ -908,26 +908,26 @@ class Order extends Base
|
|||
->where('status', 2) // 回调失败的记录
|
||||
->select()
|
||||
->toArray();
|
||||
|
||||
|
||||
foreach ($notify_list as $notify) {
|
||||
$notify_info[$notify['order_no']] = $notify;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
foreach ($data['list'] as &$value) {
|
||||
$user_info = User::field('nickname,headimg,mobile,uid')->where(['id' => $value['user_id']])->find();
|
||||
$value['nickname'] = $user_info['nickname'];
|
||||
$value['headimg'] = $user_info['headimg'];
|
||||
$value['mobile'] = $user_info['mobile'];
|
||||
$value['uid'] = $user_info['uid'] ?: $value['user_id'];
|
||||
|
||||
|
||||
// 标记回调验证失败的订单
|
||||
$value['notify_failed'] = isset($notify_info[$value['order_num']]) ? 1 : 0;
|
||||
if ($value['notify_failed']) {
|
||||
$value['notify_info'] = $notify_info[$value['order_num']];
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
View::assign('list', $data['list']);
|
||||
View::assign('count', $data['count']);
|
||||
View::assign('page', $data['page']);
|
||||
|
|
@ -945,22 +945,22 @@ class Order extends Base
|
|||
{
|
||||
$id = request()->param('id/d', 0);
|
||||
$send_num = request()->param('send_num', '');
|
||||
|
||||
|
||||
// 查找商品记录
|
||||
$orderItem = OrderList::where('id', '=', $id)
|
||||
->where('send_num', '=', $send_num)
|
||||
->find();
|
||||
|
||||
|
||||
if (!$orderItem) {
|
||||
return $this->renderError('商品不存在或参数错误');
|
||||
}
|
||||
|
||||
|
||||
// 获取订单信息
|
||||
$orderInfo = OrderListSend::where('send_num', '=', $send_num)->find();
|
||||
if (!$orderInfo) {
|
||||
return $this->renderError('订单不存在');
|
||||
}
|
||||
|
||||
|
||||
Db::startTrans();
|
||||
try {
|
||||
// 更新商品状态
|
||||
|
|
@ -969,17 +969,17 @@ class Order extends Base
|
|||
$orderItem->choice_time = 0;
|
||||
$orderItem->fh_status = 0;
|
||||
$orderItem->save();
|
||||
|
||||
|
||||
// 检查订单中是否还有其他商品
|
||||
$remainingItems = OrderList::where('send_num', '=', $send_num)->count();
|
||||
|
||||
|
||||
// 如果没有其他商品,取消整个订单
|
||||
if ($remainingItems <= 1) { // 1表示当前要删除的商品
|
||||
// 如果订单有运费且已支付,需要处理退款
|
||||
if ($orderInfo['freight'] > 0 && $orderInfo['status'] > 0) {
|
||||
$wxServer = new \app\common\server\WechatRefund($this->app);
|
||||
$refund_res = $wxServer->OrderRefund($orderInfo);
|
||||
|
||||
|
||||
// 记录退款
|
||||
Db::name('profit_pay')->insert([
|
||||
'user_id' => $orderInfo['user_id'],
|
||||
|
|
@ -990,7 +990,7 @@ class Order extends Base
|
|||
'addtime' => time(),
|
||||
]);
|
||||
}
|
||||
|
||||
|
||||
// 更新订单状态为取消
|
||||
OrderListSend::where('id', '=', $orderInfo['id'])->update([
|
||||
'status' => 4,
|
||||
|
|
@ -1003,7 +1003,7 @@ class Order extends Base
|
|||
'count' => $remainingItems - 1 // 减去当前要删除的商品
|
||||
]);
|
||||
}
|
||||
|
||||
|
||||
Db::commit();
|
||||
return $this->renderSuccess('商品已成功从订单中删除');
|
||||
} catch (\Exception $e) {
|
||||
|
|
@ -1019,7 +1019,7 @@ class Order extends Base
|
|||
{
|
||||
return View::fetch('Order/order_list');
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 获取订单列表数据
|
||||
*/
|
||||
|
|
@ -1037,14 +1037,14 @@ class Order extends Base
|
|||
'istest' => input('istest', '0'),
|
||||
'u_status' => input('u_status', '1')
|
||||
];
|
||||
|
||||
|
||||
$result = $this->getOrderDataSource($params);
|
||||
|
||||
|
||||
// 格式化数据
|
||||
foreach ($result['list'] as &$item) {
|
||||
$item = $this->formatOrderData($item);
|
||||
}
|
||||
|
||||
|
||||
return json([
|
||||
'code' => 0,
|
||||
'msg' => '获取成功',
|
||||
|
|
@ -1064,7 +1064,7 @@ class Order extends Base
|
|||
// 格式化时间
|
||||
$addtime = date('Y-m-d H:i:s', $item['addtime']);
|
||||
$pay_time = $item['pay_time'] ? date('Y-m-d H:i:s', $item['pay_time']) : '';
|
||||
|
||||
|
||||
// 支付状态格式化
|
||||
switch ($item['status']) {
|
||||
case 0:
|
||||
|
|
@ -1079,7 +1079,7 @@ class Order extends Base
|
|||
default:
|
||||
$status_text = '未知状态';
|
||||
}
|
||||
|
||||
|
||||
// 支付类型格式化 - 根据订单号前缀判断
|
||||
$order_prefix = substr($item['order_num'], 3, 3);
|
||||
switch ($order_prefix) {
|
||||
|
|
@ -1102,7 +1102,7 @@ class Order extends Base
|
|||
$item['mobile'],
|
||||
$item['goods_title'],
|
||||
$item['goods_price'],
|
||||
$item['num'],
|
||||
$item['prize_num'],
|
||||
$item['order_zhe_total'],
|
||||
$item['price'],
|
||||
$item['use_money'],
|
||||
|
|
@ -1122,7 +1122,7 @@ class Order extends Base
|
|||
$item['pay_time'] = $pay_time;
|
||||
$item['status_text'] = $status_text;
|
||||
$item['pay_type_text'] = $pay_type_text;
|
||||
|
||||
|
||||
return $item;
|
||||
}
|
||||
|
||||
|
|
@ -1148,12 +1148,28 @@ class Order extends Base
|
|||
|
||||
// 设置表头
|
||||
$headers = [
|
||||
'订单ID', '订单号', '用户UID', '用户昵称', '手机号',
|
||||
'商品标题', '商品价格', '购买数量', '订单金额',
|
||||
'RMB支付', '钻石支付', 'UU币支付', '达达券支付', '优惠券抵扣',
|
||||
'抽奖数量', '出货金额', '支付状态', '支付类型', '购买时间', '支付时间'
|
||||
'订单ID',
|
||||
'订单号',
|
||||
'用户UID',
|
||||
'用户昵称',
|
||||
'手机号',
|
||||
'商品标题',
|
||||
'商品价格',
|
||||
'购买数量',
|
||||
'订单金额',
|
||||
'RMB支付',
|
||||
'钻石支付',
|
||||
'UU币支付',
|
||||
'达达券支付',
|
||||
'优惠券抵扣',
|
||||
'抽奖数量',
|
||||
'出货金额',
|
||||
'支付状态',
|
||||
'支付类型',
|
||||
'购买时间',
|
||||
'支付时间'
|
||||
];
|
||||
|
||||
|
||||
// 写入表头
|
||||
foreach ($headers as $col => $header) {
|
||||
$sheet->setCellValueByColumnAndRow($col + 1, 1, $header);
|
||||
|
|
@ -1191,7 +1207,7 @@ class Order extends Base
|
|||
// 清理内存
|
||||
unset($data);
|
||||
gc_collect_cycles();
|
||||
|
||||
|
||||
$page++;
|
||||
}
|
||||
|
||||
|
|
@ -1224,9 +1240,9 @@ class Order extends Base
|
|||
$u_status = $params['u_status'] ?? '1';
|
||||
$page = $params['page'] ?? 1;
|
||||
$limit = $params['limit'] ?? 10;
|
||||
|
||||
|
||||
$where = [];
|
||||
|
||||
|
||||
// 转换时间格式
|
||||
if ($start_time) {
|
||||
$start_time = strtotime($start_time);
|
||||
|
|
@ -1234,20 +1250,20 @@ class Order extends Base
|
|||
if ($end_time) {
|
||||
$end_time = strtotime($end_time);
|
||||
}
|
||||
|
||||
|
||||
if ($user_id) {
|
||||
$user_id = $this->convertUidToUserId($user_id);
|
||||
$where[] = ['o.user_id', '=', $user_id];
|
||||
}
|
||||
|
||||
|
||||
if ($mobile) {
|
||||
$where[] = ['u.mobile', 'like', '%'.$mobile.'%'];
|
||||
$where[] = ['u.mobile', 'like', '%' . $mobile . '%'];
|
||||
}
|
||||
|
||||
|
||||
if ($order_num) {
|
||||
$where[] = ['o.order_num', 'like', '%'.$order_num.'%'];
|
||||
$where[] = ['o.order_num', 'like', '%' . $order_num . '%'];
|
||||
}
|
||||
|
||||
|
||||
if ($status !== '') {
|
||||
$where[] = ['o.status', '=', $status];
|
||||
}
|
||||
|
|
@ -1261,7 +1277,7 @@ class Order extends Base
|
|||
if ($u_status !== '') {
|
||||
$where[] = ['u.status', '=', $u_status];
|
||||
}
|
||||
|
||||
|
||||
if ($start_time && $end_time) {
|
||||
$where[] = ['o.addtime', 'between', [$start_time, $end_time]];
|
||||
} else if ($start_time) {
|
||||
|
|
@ -1269,7 +1285,7 @@ class Order extends Base
|
|||
} else if ($end_time) {
|
||||
$where[] = ['o.addtime', '<=', $end_time];
|
||||
}
|
||||
|
||||
|
||||
$query = Db::table('order')
|
||||
->alias('o')
|
||||
->join('user u', 'o.user_id = u.id')
|
||||
|
|
@ -1283,14 +1299,14 @@ class Order extends Base
|
|||
END as sc_money,u.status u_status,u.istest,u.uid')
|
||||
->where($where)
|
||||
->order('o.id desc');
|
||||
|
||||
|
||||
if ($isExport) {
|
||||
return $query;
|
||||
}
|
||||
|
||||
|
||||
$count = $query->count();
|
||||
$list = $query->page($page, $limit)->select()->toArray();
|
||||
|
||||
|
||||
return [
|
||||
'count' => $count,
|
||||
'list' => $list
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user