瀏覽代碼

完善功能页面

gorden 6 月之前
父節點
當前提交
b5b9981dcb

+ 15 - 0
app/admin/controller/coupon/CouponController.php

@@ -312,6 +312,7 @@ class CouponController extends Curd
             }
         }
 
+        $couponNbr = [];
         Db::beginTransaction();
         try {
             $couponIds = array_column($chooseCoupons, 'id');
@@ -333,6 +334,19 @@ class CouponController extends Curd
                         foreach ($memberList as $item) {
                             $params['member_id'] = $item;
                             if ($chooseCoupon['nbr'] > 0) {
+                                // 有发行数量
+                                if ($coupon['coupon_number'] != 0){
+                                    // 查询共发行了多少张了
+                                    $count = CouponDetail::where('join_detail_coupon_id',$coupon['coupon_id'])->count();
+                                    if (!isset($couponNbr[$coupon['coupon_id']])){
+                                        $couponNbr[$coupon['coupon_id']] = $count;
+                                    }
+                                    if ($couponNbr[$coupon['coupon_id']] + $chooseCoupon['nbr'] > $coupon['coupon_number']){
+                                        throw new BusinessException($coupon['coupon_name']."超出发行数量");
+                                    }
+                                    $couponNbr[$coupon['coupon_id']] = $couponNbr[$coupon['coupon_id']] + $chooseCoupon['nbr'];
+                                }
+
                                 for ($i = 0; $i < $chooseCoupon['nbr']; $i++) {
                                     CouponDetailService::customSendCoupon($params);
                                 }
@@ -345,6 +359,7 @@ class CouponController extends Curd
             Db::commit();
             return json_success("发放成功");
         } catch (BusinessException $e) {
+            Db::rollBack();
             return json_fail($e->getMessage());
         } catch (\Exception $e) {
             Db::rollBack();

+ 1 - 1
app/admin/controller/member/BenefitController.php

@@ -323,7 +323,7 @@ class BenefitController extends Curd
             ->forPage($page, $pageSize)
             ->get()
             ->toArray();
-        foreach ($benefit as &$item){
+        foreach ($rows as &$item){
             $item['member_benefit_limit_count'] = intval($item['member_benefit_limit_count']);
             $item['member_benefit_used_count'] = intval($item['member_benefit_used_count']);
         }

+ 12 - 2
app/admin/controller/order/AppointmentController.php

@@ -88,7 +88,7 @@ class AppointmentController
             ->leftJoin('goods', 'goods.goods_id', '=', 'appointment.join_appointment_goods_id')
 //            ->leftJoin('order', 'order.order_id', '=', 'appointment.join_appointment_order_id')
             ->leftJoin('member_benefit', 'member_benefit.member_benefit_id', '=', 'appointment.join_appointment_member_benefit_id')
-//            ->leftJoin('goods_sku', 'goods_sku.goods_sku_id', '=', 'appointment.join_appointment_goods_sku_id')
+            ->leftJoin('goods_sku', 'goods_sku.goods_sku_id', '=', 'appointment.join_appointment_goods_sku_id')
             ->where('join_appointment_member_id', $memberId)
             ->whereIn('appointment_status', ['WAITING', 'PENDING', 'DOING', 'DONE', 'CANCEL', 'REVOKE'])
             ->select('appointment.*',
@@ -96,6 +96,7 @@ class AppointmentController
 //            'member_cert.member_cert_name',
 //            'member_info.member_info_nickname',
                 'goods.goods_name', 'goods.goods_sales_price',
+                'goods_sku.goods_sku_specs_json',
 //            'order.order_name', 'goods_sku.goods_sku_specs_json', 'order.order_amount_total', 'order.order_amount_pay',
 //            'order.order_category', 'order.order_status_system', 'order.order_status_payment', 'order.order_status_storage',
 //            'order.order_addtimes',
@@ -112,10 +113,19 @@ class AppointmentController
         $rows = $appointments->orderBy('appointment.appointment_addtimes', 'desc')
             ->get();
         foreach ($rows as &$row) {
+            $row->appointment_addtimes = date('Y-m-d H:i:s', $row->appointment_addtimes);
             if ($row->appointment_category == 'NOFEE') {
                 $row->member_benefit_name = "后付费预约";
             }
-            $row->appointment_addtimes = date('Y-m-d H:i:s', $row->appointment_addtimes);
+            if (!empty($row->goods_sku_specs_json)){
+                $row->goods_sku_specs_json = json_decode($row->goods_sku_specs_json);
+            }
+            if (!empty($row->appointment_apply_json)){
+                $applyJson = json_decode($row->appointment_apply_json,true);
+                $row->appointment_apply_json = $applyJson;
+                $row->person = $applyJson['person'] ?? '';
+                $row->appointment_times = $applyJson['times'] ?? '';
+            }
         }
 
         return json_success('', compact('rows', 'page', 'pageSize', 'total'));

+ 19 - 7
app/admin/controller/order/WholeController.php

@@ -88,6 +88,10 @@ class WholeController extends Curd
                 ->toArray();
             $where['order_groupby'] = ['in', $groupIds];
         }
+        $orderIds = [];
+        if (!empty($where['order_id'])) {
+            $orderIds = Order::where('order_id', 'like', '%' . $where['order_id'] . '%')->pluck('order_id')->toArray();
+        }
         $field = $field ?? 'order_addtimes';
         if (!empty($where['order_status_system']) && in_array($where['order_status_system'], ['PENDING', 'WAITING', 'SENDING', 'RECVING', 'SIGNED', 'CONFIRM'])) {
             if ($where['order_status_system'] == 'SENDING') {
@@ -105,8 +109,9 @@ class WholeController extends Curd
         if ($request->get('return')) {
             $where['order_return.order_return_status'] = $request->get('return');
         }
+        $goodsIds = [];
         if ($request->get('goods_classify') || $request->get('goods_name')) {
-            $where['order_id'] = '';
+//            $where['order_id'] = '';
             $goodsClassify = $request->get('goods_classify', '');
             $goodsName = $request->get('goods_name', '');
             if (!empty($goodsName) && empty($goodsClassify)) {
@@ -124,12 +129,19 @@ class WholeController extends Curd
 
                 $goodsIds = $goodsModel->pluck('goods_id')->toArray();
             }
-            if ($goodsIds) {
-                $orderIds = OrderSheet::whereIn('join_sheet_goods_id', $goodsIds)->pluck('join_sheet_order_id')->toArray();
-                if ($orderIds) {
+        }
+        if ($request->get('goods_classify') || $request->get('goods_name')) {
+            $orderGoodsIds = OrderSheet::whereIn('join_sheet_goods_id', $goodsIds)->pluck('join_sheet_order_id')->toArray();
+//            if ($orderGoodsIds) {
+                if (!empty($where['order_id'])) {
+                    $orderIds = array_intersect($orderIds, $orderGoodsIds);
                     $where['order_id'] = ['in', implode(',', $orderIds)];
+                }else{
+                    $where['order_id'] = ['in', implode(',', $orderGoodsIds)];
                 }
-            }
+//            }
+        }elseif (!empty($orderIds)){
+            $where['order_id'] = ['in', implode(',', $orderIds)];
         }
         if (empty($where['order_category'])) {
             // 充值订单不显示
@@ -3752,7 +3764,7 @@ class WholeController extends Curd
 
         $sheet = OrderSheet::with([
             'goods' => function ($query) {
-                $query->select('goods_id', 'goods_name', 'goods_cover');
+                $query->select('goods_id', 'goods_name', 'goods_cover', 'goods_classify');
             },
             'order' => function ($query) {
                 $query->select('order_id', 'order_status_system', 'order_status_payment', 'order_status_storage');
@@ -3794,7 +3806,7 @@ class WholeController extends Curd
             $express = new OrderExpress();
             $express->order_express_type = $params['order_express_type'];
             $express->join_express_order_id = $params['orderId'];
-            $express->join_express_dept_id = $params['submit_premises_id'] ?? '';
+            $express->join_express_dept_id = $params['submit_premises_id'] ?? 0;
             $express->order_express_goods = $params['order_express_goods'];
             $express->order_express_city = $params['order_express_city'];
             $express->order_express_address = $params['order_express_address'];

+ 5 - 0
app/admin/service/member/MemberService.php

@@ -360,6 +360,11 @@ class MemberService
             'member_cert_nation' => $member['cert']['member_cert_nation'] ?? '',
             'member_cert_addtimes' => $member['cert']['member_cert_addtimes'] ?? '',
         ];
+        if (!empty($member['cert']['member_cert_addtimes'])){
+            $member['cert']['member_cert_addtimes'] = date('Y-m-d',$member['cert']['member_cert_addtimes']);
+        }else{
+            $member['cert']['member_cert_addtimes'] = date('Y-m-d',strtotime($member['member_addtimes']));
+        }
         if (!empty($member['join_invite_member_id'])) {
             $inviteMember = Member::with([
                 'info' => function ($query) {

+ 1 - 0
app/admin/service/order/OrderService.php

@@ -109,6 +109,7 @@ class OrderService
             $timeUnix = strtotime("-30 minutes");
             $orders = Order::where('order_status_system', 'PAYING')
                 ->where('order_category', '<>', 'DISHES')     // 点餐不自动取消
+                ->where('order_category', '<>', 'VIP')      // 康养城订单不自动取消,有分次付款
                 // ->where('order_platform','<>','SYSTEM')     // 后台产生的订单不自动取消
                 ->where(function ($query) {
                     $query->where('order_platform', '<>', 'SYSTEM')->orWhereNull('order_platform');

+ 5 - 5
app/model/MemberCert.php

@@ -12,12 +12,12 @@ class MemberCert extends Model
 
     public $keyType = 'string';
 
-    const CREATED_AT = 'member_cert_addtimes';
+//    const CREATED_AT = 'member_cert_addtimes';
 
     const UPDATED_AT = null;
 
-    public function serializeDate(\DateTimeInterface $date)
-    {
-        return $date->format('Y-m-d H:i:s');
-    }
+//    public function serializeDate(\DateTimeInterface $date)
+//    {
+//        return $date->format('Y-m-d H:i:s');
+//    }
 }