瀏覽代碼

完善功能

gorden 10 月之前
父節點
當前提交
8f2a8fb2d8

+ 67 - 0
app/admin/controller/member/MemberController.php

@@ -161,6 +161,73 @@ class MemberController
         return json_success('',$data);
     }
 
+    public function selectMemberAllQuotaByGoods(Request $request){
+        $memberId = $request->get('member_id','');
+        $orderId = $request->get('order_id','');
+        $person = $request->get('person','');
+        $selectType = $request->get('select_type','ALL');
+
+        if(!$memberId){
+            return json_fail('参数异常');
+        }
+        $data = [];
+
+        $benefit = MemberBenefit::where('join_benefit_member_id',$memberId)
+            // ->whereColumn('member_benefit_limit_count','>','member_benefit_used_count')
+            ->select('member_benefit_id as id','member_benefit_name as name','member_benefit_limit_count as total','member_benefit_used_count as used')
+            ->when($orderId != '',function($query) use ($orderId){
+                $query->where('join_benefit_order_id',$orderId);
+            })
+            ->get()
+            ->toArray();
+
+
+        foreach($benefit as $item){
+            if ($item['total'] - $item['used'] < $person){
+                $item['disabled'] = true;
+            }
+            $item['cut'] = $item['total'] - $item['used'];
+            $data[] = $item;
+        }
+        if ($selectType == 'BENEFIT'){
+            return json_success('',$data);
+        }
+        
+        $quotas = MemberQuota::where('join_quota_member_id',$memberId)
+            ->selectRaw('join_quota_member_id,join_member_rule_added_component_id,COUNT(*) as total')
+            ->groupBy('join_quota_member_id','join_member_rule_added_component_id')
+            ->get()
+            ->toArray();
+        foreach($quotas as $quota){
+            $usedNum = MemberQuota::where('join_quota_member_id',$quota['join_quota_member_id'])
+                ->where('join_member_rule_added_component_id',$quota['join_member_rule_added_component_id'])
+                ->where('member_quota_status','USED')
+                ->count('*');
+            if($quota['total'] <= $usedNum){
+                continue;
+            }
+            $memberQuota = MemberQuota::where('join_quota_member_id',$quota['join_quota_member_id'])
+                ->where('join_member_rule_added_component_id',$quota['join_member_rule_added_component_id'])
+                ->select('member_quota_id as id','member_quota_name as name')
+                ->first()
+                ->toArray();
+
+            $memberQuota['total'] = $quota['total'];
+            $memberQuota['used'] = $usedNum;
+            if ($memberQuota['total'] - $memberQuota['used'] < $person){
+                $memberQuota['disabled'] = true;
+            }
+            $memberQuota['cut'] = $memberQuota['total'] - $memberQuota['used'];
+            $data[] = $memberQuota;
+        }
+
+        if($selectType == 'QUOTA'){
+            return json_success('',$data);
+        }
+    
+        return json_success('',$data);
+    }
+
     public function list(Request $request)
     {
 

+ 8 - 0
app/admin/controller/order/WholeController.php

@@ -570,6 +570,14 @@ class WholeController extends Curd
             Db::beginTransaction();
             // 减额度
             $benefit->member_benefit_used_count = $benefit->member_benefit_used_count + $nbr;
+            // 用完了
+            if($benefit->member_benefit_limit_count <= $benefit->member_benefit_used_count){
+                $benefit->member_benefit_status = 'DONE';
+                if(!empty($benefit->join_benefit_order_id)){
+                    Order::where('order_id',$benefit->join_benefit_order_id)->update(['order_status_system'=>'DONE']);
+                }
+            }
+
             $benefit->save();
             // 记录核销
             $params = [

+ 3 - 1
app/admin/service/goods/GoodsService.php

@@ -454,7 +454,9 @@ class GoodsService
             if (!empty($good['goods_attribute_json'])) {
                 $attributeJson = json_decode($good['goods_attribute_json'], true);
                 if (isset($attributeJson['premisses'])) {
-                    $premisses = SysDept::whereIn('dept_id', $attributeJson['premisses'])
+                    $premisses = SysDept::when(!empty($attributeJson['premisses']),function($query) use($attributeJson){
+                        $query->whereIn('dept_id', $attributeJson['premisses']);
+                    })->where('dept_category','营业场所')
                         ->select('dept_id', 'dept_name')
                         ->get();
                     $good['premisses'] = $premisses;