|
|
@@ -11,12 +11,10 @@
|
|
|
|
|
|
namespace App\Services\Common;
|
|
|
|
|
|
-use App\Models\AccountLogModel;
|
|
|
use App\Models\ActionLogModel;
|
|
|
-use App\Models\GoodsModel;
|
|
|
-use App\Models\MemberModel;
|
|
|
use App\Models\OrderModel;
|
|
|
use App\Services\BaseService;
|
|
|
+use App\Services\MpService;
|
|
|
use App\Services\RedisService;
|
|
|
use Illuminate\Support\Facades\DB;
|
|
|
|
|
|
@@ -64,11 +62,16 @@ class OrderService extends BaseService
|
|
|
{
|
|
|
$query = $this->model->where('mark', 1);
|
|
|
|
|
|
- // 店铺筛选
|
|
|
+ // 企业筛选
|
|
|
if (isset($params['store_id']) && $params['store_id'] > 0) {
|
|
|
$query->where('store_id', $params['store_id']);
|
|
|
}
|
|
|
|
|
|
+ // 会议
|
|
|
+ if (isset($params['meeting_id']) && $params['meeting_id'] > 0) {
|
|
|
+ $query->where('meeting_id', $params['meeting_id']);
|
|
|
+ }
|
|
|
+
|
|
|
// 用户筛选
|
|
|
if (isset($params['user_id']) && $params['user_id'] > 0) {
|
|
|
$query->where('user_id', $params['user_id']);
|
|
|
@@ -89,13 +92,24 @@ class OrderService extends BaseService
|
|
|
$query->where('refund_status', $params['refund_status']);
|
|
|
}
|
|
|
|
|
|
+ // 单号
|
|
|
+ if (isset($params['order_no']) && $params['order_no']) {
|
|
|
+ $keyword = $params['order_no'];
|
|
|
+ $query->where(function ($q) use ($keyword) {
|
|
|
+ $q->where('order_no', 'like', '%' . $keyword . '%')
|
|
|
+ ->orWhere('transaction_id', 'like', '%' . $keyword . '%');
|
|
|
+ });
|
|
|
+ }
|
|
|
+
|
|
|
// 关键词搜索(订单号、商品名称、收货人手机)
|
|
|
if (isset($params['keyword']) && $params['keyword']) {
|
|
|
$keyword = $params['keyword'];
|
|
|
$query->where(function ($q) use ($keyword) {
|
|
|
- $q->where('order_no', 'like', '%' . $keyword . '%')
|
|
|
- ->orWhere('receiver_name', 'like', '%' . $keyword . '%')
|
|
|
+ $q->where('receiver_name', 'like', '%' . $keyword . '%')
|
|
|
->orWhere('receiver_mobile', 'like', '%' . $keyword . '%')
|
|
|
+ ->orWhereHas('user', function ($q1) use ($keyword) {
|
|
|
+ $q1->where('mobile', 'like', '%' . $keyword . '%');
|
|
|
+ })
|
|
|
->orWhereHas('orderGoods', function ($q2) use ($keyword) {
|
|
|
$q2->where('goods_name', 'like', '%' . $keyword . '%');
|
|
|
});
|
|
|
@@ -118,7 +132,7 @@ class OrderService extends BaseService
|
|
|
$item['goods'] = isset($item['order_goods'][0]) ? $item['order_goods'][0] : null;
|
|
|
|
|
|
$item['real_total'] = $item['pay_total'];
|
|
|
- $item['pay_total'] = moneyFormat($item['pay_total'] + $item['delivery_fee'],2);
|
|
|
+ $item['pay_total'] = moneyFormat($item['pay_total'] + $item['delivery_fee'], 2);
|
|
|
//$item['refund_amount'] = $item['refund_amount']?$item['refund_amount']:$item['pay_total'];
|
|
|
}
|
|
|
}
|
|
|
@@ -149,7 +163,7 @@ class OrderService extends BaseService
|
|
|
$info['create_time'] = $info['create_time'] ? date('Y-m-d H:i:s', strtotime($info['create_time'])) : '';
|
|
|
$info['update_time'] = $info['update_time'] ? date('Y-m-d H:i:s', strtotime($info['update_time'])) : '';
|
|
|
$info['real_total'] = $info['pay_total'];
|
|
|
- $info['pay_total'] = moneyFormat($info['pay_total'] + $info['delivery_fee'],2);
|
|
|
+ $info['pay_total'] = moneyFormat($info['pay_total'] + $info['delivery_fee'], 2);
|
|
|
if (isset($info['order_goods'])) {
|
|
|
foreach ($info['order_goods'] as &$goods) {
|
|
|
$goods['thumb'] = $goods['thumb'] ? get_image_url($goods['thumb']) : '';
|
|
|
@@ -407,8 +421,8 @@ class OrderService extends BaseService
|
|
|
$updateData = [
|
|
|
'status' => 2, // 已付款
|
|
|
'transaction_id' => $transactionId ?: 'PAY' . time() . rand(1000, 9999),
|
|
|
- 'pay_at'=> date('Y-m-d H:i:s'),
|
|
|
- 'remark'=> '人工审核支付',
|
|
|
+ 'pay_at' => date('Y-m-d H:i:s'),
|
|
|
+ 'remark' => '人工审核支付',
|
|
|
'update_time' => time()
|
|
|
];
|
|
|
|
|
|
@@ -425,6 +439,43 @@ class OrderService extends BaseService
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
+ * 获取小程序快递公司列表
|
|
|
+ * @return array
|
|
|
+ */
|
|
|
+ public function getDeliveryList()
|
|
|
+ {
|
|
|
+ $deliveryType = \App\Services\ConfigService::make()->getConfigByCode('delivery_type',1);
|
|
|
+ $cacheKey = "caches:orders:deliveryList_{$deliveryType}";
|
|
|
+ $datas = RedisService::get($cacheKey);
|
|
|
+ if($datas){
|
|
|
+ return ['code' => 0, 'msg' =>'获取成功', 'data'=>$datas];
|
|
|
+ }
|
|
|
+
|
|
|
+ if($deliveryType==1){
|
|
|
+ $result = MpService::make()->requestApi('getDelivery');
|
|
|
+ $errcode = isset($result['errcode'])?$result['errcode'] : -1;
|
|
|
+ $errmsg = isset($result['errmsg']) && $result['errmsg']?$result['errmsg'] : '请求失败';
|
|
|
+ $list = isset($result['delivery_list'])?$result['delivery_list'] : [];
|
|
|
+ if($errcode==-1){
|
|
|
+ return ['code' => -1, 'msg' =>$errmsg, 'data'=>[]];
|
|
|
+ }
|
|
|
+
|
|
|
+ $deliveryList = [];
|
|
|
+ if($list){
|
|
|
+ foreach ($list as $item){
|
|
|
+ $deliveryList[$item['delivery_id']] = $item;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ RedisService::set($cacheKey, $deliveryList, rand(3600, 7200));
|
|
|
+ }else{
|
|
|
+ $deliveryList = config('platform.deliveryList');
|
|
|
+ }
|
|
|
+
|
|
|
+ return ['code' => 0, 'msg' =>'获取成功', 'data'=>$deliveryList];
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
* 订单发货
|
|
|
*/
|
|
|
public function deliverOrder()
|
|
|
@@ -451,6 +502,7 @@ class OrderService extends BaseService
|
|
|
return ['code' => 1, 'msg' => '请填写快递单号'];
|
|
|
}
|
|
|
|
|
|
+ DB::beginTransaction();
|
|
|
$updateData = [
|
|
|
'status' => 3, // 已发货
|
|
|
'delivery_company' => $deliveryCompany,
|
|
|
@@ -459,7 +511,36 @@ class OrderService extends BaseService
|
|
|
'update_time' => time()
|
|
|
];
|
|
|
|
|
|
- $result = $this->model->where('id', $id)->update($updateData);
|
|
|
+ if (!$result = $this->model->where('id', $id)->update($updateData)) {
|
|
|
+ DB::rollBack();
|
|
|
+ return ['code' => 1, 'msg' => '操作失败'];
|
|
|
+ }
|
|
|
+
|
|
|
+ // 调用小程序发货信息同步接口
|
|
|
+ $sendData = [
|
|
|
+ 'order_key' => [
|
|
|
+ "order_number_type" => 2,
|
|
|
+ "transaction_id" => isset($order['transaction_id']) ? $order['transaction_id'] : '',
|
|
|
+ "out_trade_no" => isset($order['out_trade_no']) ? $order['out_trade_no'] : ''
|
|
|
+ ],
|
|
|
+ "delivery_mode" => 1,
|
|
|
+ "logistics_type" => 1,
|
|
|
+ "shipping_list" => [
|
|
|
+ [
|
|
|
+ "tracking_no" => $deliveryNo,
|
|
|
+ "express_company" => "STO",
|
|
|
+ "item_desc" => "微信气泡狗集线器*1",
|
|
|
+ "contact" => [
|
|
|
+ "consignor_contact" => "+86-177****1234"
|
|
|
+ ]
|
|
|
+ ]
|
|
|
+ ],
|
|
|
+ "upload_time" => "2022-12-15T13:29:35.120+08:00",
|
|
|
+ "payer" => [
|
|
|
+ "openid" => "ogqztkPsejM9MQAFfwCQSCi4oNg3"
|
|
|
+ ]
|
|
|
+ ];
|
|
|
+
|
|
|
|
|
|
if ($result) {
|
|
|
ActionLogModel::setTitle("订单发货");
|