Browse Source

Merge branch 'master' of http://git.huxiukeji.com/lizhen/xiaoshan

Panda 3 months ago
parent
commit
8be8b7dde2

+ 4 - 0
addons/shopro/controller/Cart.php

@@ -72,6 +72,10 @@ class Cart extends Common
         $type = $params['type'] ?? 'inc';
         $type = 'cover';
 
+        if($goods_num < 1){
+            $this->error('数量错误');
+        }
+
         $cart = CartModel::where('user_id', $user->id)
             ->where('goods_id', $params['goods_id'])
             ->where('goods_sku_price_id', $params['goods_sku_price_id'])

+ 17 - 0
addons/shopro/controller/order/Aftersale.php

@@ -16,6 +16,23 @@ class Aftersale extends Common
     protected $noNeedLogin = [];
     protected $noNeedRight = ['*'];
 
+    //售后原因
+    public function aftersale_reason(){
+        $data = [
+            '不想要了',
+            '不喜欢、效果不好',
+            '货物与描述不符',
+            '质量问题',
+            '收到商品少件(含少配件)',
+            '商品破损或污渍',
+            '商家发错货',
+            '假冒品牌',
+            '其他原因',
+        ];
+
+        $this->success(1, $data);
+    }
+
     //售后列表
     public function index() {
         $user = auth_user();

+ 13 - 3
addons/shopro/controller/order/Express.php

@@ -5,6 +5,7 @@ namespace addons\shopro\controller\order;
 use addons\shopro\controller\Common;
 use app\admin\model\shopro\order\Express as OrderExpressModel;
 use addons\shopro\library\express\Express as ExpressLib;
+use think\Db;
 //物流
 class Express extends Common
 {
@@ -20,11 +21,20 @@ class Express extends Common
         // 更新包裹信息(5分钟缓存)
         (new ExpressLib)->updateOrderExpress($order_id);
 
-        $expresses = OrderExpressModel::with(['logs', 'items' => function ($query) use ($order_id) {
+        $expresses = OrderExpressModel::with(['logs'/*, 'items' => function ($query) use ($order_id) {
             return $query->where('order_id', $order_id);
-        }])->where('user_id', $user->id)->where('order_id', $order_id)->select();
+        }*/])->where('user_id', $user->id)->where('order_id', $order_id)->select();
 
-        $this->success('获取成功', $expresses);
+        $address = Db::name('shopro_order_address')->where('order_id',$order_id)->find();
+        $order_sn  = Db::name('shopro_order')->where('id',$order_id)->value('order_sn');
+
+        $result = [
+            'order_sn' => $order_sn,
+            'address' => $address,
+            'expresses' => $expresses,
+        ];
+
+        $this->success('获取成功', $result);
     }
 
 

+ 21 - 5
addons/shopro/controller/order/Order.php

@@ -29,6 +29,9 @@ class Order extends Common
             case 'unpaid':
                 $orders = $orders->unpaid();
                 break;
+            case 'groupon_ing':
+                $orders = $orders->paid()->nosend()->groupon_ing();
+                break;
             case 'nosend':
                 $orders = $orders->pretendPaid()->nosend();
                 break;
@@ -206,22 +209,34 @@ class Order extends Common
         $this->success('获取成功', $result);
     }
 
-
+    //取消原因
+    public function cancel_reason(){
+        $data = [
+            '收货地址或者手机号填错了',
+            '忘记支付密码/余额不足',
+            '无法正常支付',
+            '不想买了',
+            '其他原因',
+        ];
+
+        $this->success(1, $data);
+    }
 
     // 取消订单,未支付的才可以
     public function cancel()
     {
         $user = auth_user();
         $id = $this->request->param('id');
+        $reason = $this->request->param('reason');
 
-        $order = Db::transaction(function () use ($id, $user) {
+        $order = Db::transaction(function () use ($id, $user, $reason) {
             $order = OrderModel::canCancel()->where('user_id', $user->id)->with(['items', 'invoice'])->lock(true)->where('id', $id)->find();
             if (!$order) {
                 $this->error(__('No Results were found'));
             }
 
             $orderOper = new OrderOper();
-            $order = $orderOper->cancel($order, $user, 'user');
+            $order = $orderOper->cancel($order, $user, 'user', $reason);
 
             return $order;
         });
@@ -238,15 +253,16 @@ class Order extends Common
     {
         $user = auth_user();
         $id = $this->request->param('id');
+        $reason = $this->request->param('reason');
 
         $order = OrderModel::paid()->where('user_id', $user->id)->where('id', $id)->find();
         if (!$order) {
             $this->error(__('No Results were found'));
         }
 
-        $order = Db::transaction(function () use ($order, $user) {
+        $order = Db::transaction(function () use ($order, $user, $reason) {
             $orderOper = new OrderOper();
-            $order = $orderOper->applyRefund($order, $user, 'user');
+            $order = $orderOper->applyRefund($order, $user, 'user',$reason);
 
             return $order;
         });

+ 3 - 1
addons/shopro/library/activity/traits/Groupon.php

@@ -260,7 +260,7 @@ trait Groupon
             extract($grouponCb($rules, $item['ext']));
         }
 
-        // 开团
+        // 开
         $activityGroupon = new ActivityGroupon();
         $activityGroupon->user_id = $user['id'];
         $activityGroupon->goods_id = $item['goods_id'];
@@ -272,6 +272,8 @@ trait Groupon
         $activityGroupon->save();
 
         // 记录团 id
+        //订单表冗余groupon_id
+        $order->groupon_id = $activityGroupon->id;
         $order->ext = array_merge($order->ext, ['groupon_id' => $activityGroupon->id]);
         $order->save();
 

+ 3 - 0
addons/shopro/listener/Order.php

@@ -113,6 +113,9 @@ class Order
             // 如果是拼团, ext 中存储拼团相关信息(这里拼团肯定是成功了,否则下单前已被拦截)
             $order_ext['buy_type'] = request()->param('buy_type', 'groupon');     // 购买方式,alone: 单独购买, groupon: 拼团
             $order_ext['groupon_id'] = request()->param('groupon_id', 0);        // 如果是拼团,团 id
+
+            //订单表冗余groupon_id
+            $order->groupon_id = $order_ext['groupon_id'];
         }
 
         if ($order->status == OrderModel::STATUS_UNPAID) {

+ 2 - 2
addons/shopro/service/order/OrderOper.php

@@ -78,7 +78,7 @@ class OrderOper
      * @param string $type
      * @return object
      */
-    public function applyRefund($order, $user, $type = 'user')
+    public function applyRefund($order, $user, $type = 'user',$reason = '')
     {
         $items = OrderItem::where('order_id', $order->id)->lock(true)->select();
 
@@ -99,7 +99,7 @@ class OrderOper
         $order->ext = array_merge($order->ext, ['apply_refund_time' => time()]);      // 申请时间
         $order->save();
 
-        Action::add($order, null, $user, $type, $this->getOperText($type) . '申请全额退款');
+        Action::add($order, null, $user, $type, $this->getOperText($type) . '申请全额退款' . $reason);
 
         // 订单申请全额退款  orderApplyRefundAfter
         $data = ['order' => $order, 'user' => $user];

+ 13 - 0
application/admin/model/shopro/order/traits/OrderScope.php

@@ -4,6 +4,7 @@ namespace app\admin\model\shopro\order\traits;
 
 use app\admin\model\shopro\order\Order;
 use app\admin\model\shopro\order\OrderItem;
+use app\admin\model\shopro\activity\Groupon;
 
 trait OrderScope
 {
@@ -101,6 +102,18 @@ trait OrderScope
         return $query->where('apply_refund_status',  Order::APPLY_REFUND_STATUS_APPLY);
     }
 
+    //拼团待分享
+    public function scopegroupon_ing($query){
+        $self_name = (new Order())->getQuery()->getTable();
+        $groupon_name = (new Groupon())->getQuery()->getTable();
+
+        return $query->where('activity_type','groupon')->where('activity_id','NEQ',0)->whereExists(function ($query) use ($self_name,$groupon_name) {
+                $query->table($groupon_name)->where('id=' . $self_name . '.groupon_id')->where('status','ing');
+
+            }
+        );
+    }
+
 
     // 未发货
     public function scopeNosend($query)