Browse Source

完善功能

gorden 8 months ago
parent
commit
0b7906b966

+ 98 - 0
app/admin/controller/member/WriteOffController.php

@@ -0,0 +1,98 @@
+<?php
+
+namespace app\admin\controller\member;
+
+use app\controller\Curd;
+use app\model\MemberBenefit;
+use app\model\RuleAddedComponent;
+use app\model\SysUser;
+use support\Db;
+use support\Request;
+
+class WriteOffController extends Curd
+{
+    public function __construct()
+    {
+        // $this->model = new ;
+    }
+
+    public function list(Request $request)
+    {
+        $page = $request->get('page', 1);
+        $pageSize = $request->get('pageSize', 50);
+        $keywords = $request->get('keywords','');
+        $date = $request->get('date',[]);
+
+        $appointmentList = Db::table('appointment')
+            ->leftJoin('member','member.member_id' ,'=','appointment.join_appointment_member_id')
+            ->leftJoin('member_cert','member_cert.join_cert_member_id' ,'=','appointment.join_appointment_member_id')
+            ->select('appointment.appointment_id as quota_id', 'appointment.join_appointment_member_id as member_id', 'appointment.appointment_done_json as used_json', 'appointment.appointment_done_datetime as used_time','appointment.join_appointment_member_benefit_id as benefit_id',
+                'member.member_mobile','member_cert.member_cert_name'
+            )
+            ->when($keywords != '',function($query) use ($keywords){
+                $query->where('member.member_mobile','like','%'.$keywords.'%');
+            })->when(!empty($date),function($query) use ($date){
+                $date[0] = date('Y-m-d',strtotime($date[0])).' 00:00:00';
+                $date[1] = date('Y-m-d',strtotime($date[1])). ' 23:59:59';
+                $query->whereBetween('appointment.appointment_done_datetime',$date);
+            })
+            ->where('appointment_status', 'DONE');
+        $quotaList = Db::table('member_quota')
+            ->leftJoin('member','member.member_id' ,'=','member_quota.join_quota_member_id')
+            ->leftJoin('member_cert','member_cert.join_cert_member_id' ,'=','member_quota.join_quota_member_id')
+            ->select('member_quota.member_quota_id as quota_id', 'member_quota.join_quota_member_id as member_id', 'member_quota.member_quota_used_json as used_json', "member_quota.member_quota_extend_json->writeOffTime as used_time","member_quota.join_member_rule_added_component_id as benefit_id",
+                'member.member_mobile','member_cert.member_cert_name')
+                
+            ->when($keywords != '',function($query) use ($keywords){
+                $query->where('member.member_mobile','like','%'.$keywords.'%');
+            })->when(!empty($date),function($query) use ($date){
+                $date[0] = date('Y-m-d',strtotime($date[0])).' 00:00:00';
+                $date[1] = date('Y-m-d',strtotime($date[1])). ' 23:59:59';
+                $query->whereBetween('member_quota.member_quota_extend_json->writeOffTime',$date);
+            })
+            ->where('member_quota_status', 'USED')
+//            ->toSql();
+            ->union($appointmentList);
+            $total = $quotaList->count('*');
+
+            $quotaList = $quotaList->orderBy('used_time', 'DESC')
+            ->forPage($page, $pageSize)
+            ->get();
+
+        $rows = [];
+        foreach ($quotaList as $item) {
+            $username = '';
+            $premises = '';
+            $benefitName = '';
+            if (!empty($item->used_json)) {
+                $usedJson = json_decode($item->used_json,true);
+                if (isset($usedJson['charge']) && isset($usedJson['charge']['charge_user_id'])){
+                    $username = SysUser::where('user_id',$usedJson['charge']['charge_user_id'])->value('user_name');
+                }
+                if (isset($usedJson['charge']) && isset($usedJson['charge']['charge_premises'])){
+                    $premises = $usedJson['charge']['charge_premises'];
+                }
+                if (substr($item->quota_id,0,2) == 'AP'){
+                    $benefitName = MemberBenefit::where('member_benefit_id',$item->benefit_id)->value('member_benefit_name');
+                }elseif (substr($item->quota_id,0,2) == 'MQ'){
+                    $benefitName = RuleAddedComponent::where('rule_added_component_id',$item->benefit_i)->value('rule_added_component_name');
+                }
+            }
+
+
+            $rows[] = [
+                'quota_id' => $item->quota_id,
+                'username' => $username,
+                'premises' => $premises,
+                'benefit_name' => $benefitName,
+                'used_time'=>$item->used_time,
+                'member_name' => $item->member_cert_name ?  $item->member_cert_name.'-' : '',
+                'member_mobile' => $item->member_mobile ?  $item->member_mobile : '',
+                'nbr'=>1
+            ];
+
+        }
+
+        return json_success('', compact('rows', 'page', 'pageSize', 'total'));
+    }
+}

+ 5 - 0
app/admin/controller/order/PayDetailController.php

@@ -110,6 +110,11 @@ class PayDetailController extends Curd
             return json_fail($this->validateClass->getError());
         }
 
+        $password = $request->post('recharge_password','');
+        if(!$password || $password != '123456'){
+            return json_fail('充值密码错误');
+        }
+
         try {
             Db::beginTransaction();
             $data = $this->insertRechargeInput($request);

+ 1 - 1
app/admin/validate/member/MemberValidate.php

@@ -14,7 +14,7 @@ class MemberValidate extends Validate
         'is_owner' => 'require|in:Y,N',
         'classify|归类' => 'require', // 归类 会员/游客
         'birth|生日' => 'require',
-        'gender|性别' => 'require|in:male,female,unknown',
+        'gender|性别' => 'require',
         'status|状态' => 'require|in:ACTIVED,DISABLED',
         'mobile|手机号' => 'require|mobile',
         'addr|具体地址' => 'require',

+ 6 - 0
route/admin.php

@@ -1,5 +1,6 @@
 <?php
 
+use app\admin\controller\finance\WriteOffController;
 use Webman\Route;
 
 Route::group('/admin', function () {
@@ -567,6 +568,11 @@ Route::group('/admin', function () {
         })->middleware([
             \app\middleware\AdminAuthCheck::class
         ]);
+        Route::group('/writeOff',function(){
+            Route::get('/list',[WriteOffController::class,'list']);
+        })->middleware([
+            \app\middleware\AdminAuthCheck::class
+        ]);
         // 用户管理
         Route::group('', function () {
             Route::get('/selectList', [\app\admin\controller\member\MemberController::class, 'selectList']);