Browse Source

完善功能

gorden 7 months ago
parent
commit
b9a42ea1a9

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

@@ -1142,6 +1142,7 @@ class WholeController extends Curd
         $params = $request->post();
         // 判断餐品是否连带着服务或实体
         $goodsClassifys = array_unique(array_column($params['goodsContentList'],'goods_classify'));
+        dump($goodsClassifys);
         if (in_array('MEALS',$goodsClassifys) && count($goodsClassifys) > 1){
             return json_fail('餐饮餐品不支持和其他类型的产品一起下单');
         }

+ 16 - 15
app/admin/controller/sys_manage/RestaurantTableController.php

@@ -275,22 +275,23 @@ class RestaurantTableController extends Curd{
 
         $table = SysDept::where('dept_id',$tableId)->where('dept_category','桌台')->first();
         $restaurant = SysDept::where('dept_id',$table->dept_super_id)->first();
-        $premises = SysDept::where('dept_id',$restaurant->dept_super_id)->first();
-        if (!$premises){
-            return json_fail('营业场所不存在');
-        }
-        $qrcodeContent = [
-            'action'=>'scan-dishes',
-            'data'=>[
-                'premises'=>$table->dept_super_id,
-                'table'=>$table->dept_name,
-                'dept'=>$table->dept_id
-            ]
-        ];
-        $url = "https://open.weixin.qq.com/connect/oauth2/authorize?appid=wxc6274da7198e3eb4&redirect_uri=https%3A%2F%2Fh5.wanyuewellness.com.cn%2F%23%2Fpages%2Findex%2FWeChatGuide?scan="
-        . urlencode(json_encode($qrcodeContent)).
+        // $premises = SysDept::where('dept_id',$restaurant->dept_super_id)->first();
+        // if (!$premises){
+        //     return json_fail('营业场所不存在');
+        // }
+        // $qrcodeContent = [
+        //     'action'=>'scan-dishes',
+        //     'data'=>[
+        //         'premises'=>$table->dept_super_id,
+        //         'table'=>$table->dept_name,
+        //         'dept'=>$table->dept_id
+        //     ]
+        // ];
+        // $url = "https://open.weixin.qq.com/connect/oauth2/authorize?appid=wxc6274da7198e3eb4&redirect_uri=https%3A%2F%2Fh5.wanyuewellness.com.cn%2F%23%2Fpages%2Findex%2FWeChatGuide?scan="
+        // . urlencode(json_encode($qrcodeContent)).
 //        "%7B%22action%22%3A%22scan-dishes%22%2C%22data%22%3A%7B%22premises%22%3A15%2C%22table%22%3A%221%E5%8F%B7%E5%8F%B0%22%2C%22tableid%22%3A16%7D%7D
-        "&response_type=code&scope=snsapi_base&connect_redirect=1&state=#wechat_redirect";
+        // "&response_type=code&scope=snsapi_base&connect_redirect=1&state=#wechat_redirect";
+        $url = getenv('TABLE_QRCODE_DOMAIN')."/qr?tid=".$table->dept_id;
         $qrcode = new Qrcode();
         $qrcode->setLabel($restaurant->dept_name."(".$table->dept_name.")");
         $qrcode = $qrcode->create($url,$fileName);

+ 34 - 0
app/api/controller/scan/QrcodeController.php

@@ -0,0 +1,34 @@
+<?php
+
+namespace app\api\controller\scan;
+
+use app\model\SysDept;
+use support\Request;
+
+class QrcodeController{
+    public function index(Request $request)
+    {
+        $tableId = $request->get('tid','');
+        if (!empty($tableId)){
+            $table = SysDept::where('dept_id',$tableId)->where('dept_category','桌台')->first();
+            if (!$table){
+                echo "桌台不存在";
+                exit();
+            }
+
+            $qrcodeContent = [
+                'action'=>'scan-dishes',
+                'data'=>[
+                    'premises'=>$table->dept_super_id,
+                    'table'=>$table->dept_name,
+                    'dept'=>$table->dept_id
+                ]
+            ];
+            $url = "https://open.weixin.qq.com/connect/oauth2/authorize?appid=wxc6274da7198e3eb4&redirect_uri=https%3A%2F%2Fh5.wanyuewellness.com.cn%2F%23%2Fpages%2Findex%2FWeChatGuide?scan="
+            . urlencode(json_encode($qrcodeContent)).
+            "&response_type=code&scope=snsapi_base&connect_redirect=1&state=#wechat_redirect";
+
+            return redirect($url,302);
+        }
+    }
+}

+ 77 - 26
app/command/WelfareAccountCommand.php

@@ -6,6 +6,7 @@ use app\model\Member;
 use app\model\MemberAccount;
 use app\model\Order;
 use app\model\PayDetail;
+use support\Db;
 use Symfony\Component\Console\Command\Command;
 use Symfony\Component\Console\Input\InputArgument;
 use Symfony\Component\Console\Input\InputInterface;
@@ -22,45 +23,95 @@ class WelfareAccountCommand extends Command
      */
     protected function configure()
     {
-        $this->addArgument('name', InputArgument::OPTIONAL, '余额账户转福利账户');
+        // $this->addArgument('name', InputArgument::OPTIONAL, '余额账户转福利账户');
+        $this->addArgument('name', InputArgument::OPTIONAL, '福利账户余额清空');
     }
 
-
     protected function execute(InputInterface $input, OutputInterface $output): int
     {
-        $members = Member::select('member_id', 'member_classify')->get()->toArray();
-        foreach ($members as $member) {
-            if (!MemberAccount::where('join_account_member_id', $member['member_id'])->where('member_account_classify', 'WELFARE')->exists()) {
-                if (!$this->generateWelfareAccount($member['member_id'])) {
-                    echo "会员【" . $member['member_id'] . "】跳过\n";
+        $accounts = MemberAccount::where('member_account_classify','WELFARE')->get()->toArray();
+        Db::beginTransaction();
+        try{
+            
+            foreach($accounts as $account){
+                if ($account['member_account_income'] == '0.00'){
+                    echo "会员【" . $account['join_account_member_id'] . "】跳过\n";
                     continue;
                 }
+                // 更新余额账户
+                MemberAccount::where('member_account_id',$account['member_account_id'])->update([
+                    'member_account_expend' => $account['member_account_expend'] + $account['member_account_surplus'],
+                    'member_account_surplus' => 0
+                ]);
+
+                // 插入清零记录
+                $this->generatePayDetail($account);
+                echo "会员【" . $account['join_account_member_id'] . "】已处理完成\n";
             }
-            if ($member['member_classify'] != 'EMPLOY') {
-                Member::where('member_id', $member['member_id'])->update(['member_classify' => 'EMPLOY']);
-            }
-            // 改所有的充值记录
-            PayDetail::where('join_pay_member_id', $member['member_id'])->where('pay_category', 'RECHARGE')->where('pay_amount','1000.00')->update(['pay_prepayid' => $member['member_id'] . '-WELFARE']);
-
-            // 改所有的付款记录
-            PayDetail::where('join_pay_member_id', $member['member_id'])->where('pay_prepayid', $member['member_id'] . '-CASH')->update(['pay_prepayid' => $member['member_id'] . '-WELFARE']);
+            Db::commit();
 
-            // 余额账户清空
-           MemberAccount::where('join_account_member_id', $member['member_id'])->where('member_account_classify', 'CASH')->update([
-               'member_account_income' => 0,
-               'member_account_expend' => 0,
-               'member_account_surplus' => 0,
-               'member_account_added' => 0,
+            return self::SUCCESS;
+        }catch(\Exception $e){
+            dump($e->getMessage());
 
-           ]);
-
-
-            echo "会员【" . $member['member_id'] . "】已处理完成\n";
+            Db::rollBack();
         }
 
-        return self::SUCCESS;
     }
 
+    /**
+     * 生成清零记录
+     */
+    private function generatePayDetail($account)
+    {
+        $payDetailData = [
+            'join_pay_member_id'=>$account['join_account_member_id'],
+            'pay_status'=>'SUCCESS',
+            'pay_category'=>'CLEAR',
+            'pay_amount'=>$account['member_account_surplus'],
+            'pay_paytimes'=>date('Y-m-d H:i:s'),
+            'pay_prepayid'=>$account['member_account_nbr'],
+            'pay_addtimes'=>time()
+        ];
+        
+        PayDetail::insert($payDetailData);
+    }
+
+    // protected function execute(InputInterface $input, OutputInterface $output): int
+    // {
+    //     $members = Member::select('member_id', 'member_classify')->get()->toArray();
+    //     foreach ($members as $member) {
+    //         if (!MemberAccount::where('join_account_member_id', $member['member_id'])->where('member_account_classify', 'WELFARE')->exists()) {
+    //             if (!$this->generateWelfareAccount($member['member_id'])) {
+    //                 echo "会员【" . $member['member_id'] . "】跳过\n";
+    //                 continue;
+    //             }
+    //         }
+    //         if ($member['member_classify'] != 'EMPLOY') {
+    //             Member::where('member_id', $member['member_id'])->update(['member_classify' => 'EMPLOY']);
+    //         }
+    //         // 改所有的充值记录
+    //         PayDetail::where('join_pay_member_id', $member['member_id'])->where('pay_category', 'RECHARGE')->where('pay_amount','1000.00')->update(['pay_prepayid' => $member['member_id'] . '-WELFARE']);
+
+    //         // 改所有的付款记录
+    //         PayDetail::where('join_pay_member_id', $member['member_id'])->where('pay_prepayid', $member['member_id'] . '-CASH')->update(['pay_prepayid' => $member['member_id'] . '-WELFARE']);
+
+    //         // 余额账户清空
+    //        MemberAccount::where('join_account_member_id', $member['member_id'])->where('member_account_classify', 'CASH')->update([
+    //            'member_account_income' => 0,
+    //            'member_account_expend' => 0,
+    //            'member_account_surplus' => 0,
+    //            'member_account_added' => 0,
+
+    //        ]);
+
+
+    //         echo "会员【" . $member['member_id'] . "】已处理完成\n";
+    //     }
+
+    //     return self::SUCCESS;
+    // }
+
     private function generateWelfareAccount($memberId)
     {
         $cashAccount = MemberAccount::where('join_account_member_id', $memberId)->where('member_account_classify', 'CASH')->first();

+ 3 - 0
route/api.php

@@ -7,4 +7,7 @@ Route::group('/api',function (){
         Route::post('/alipay',[\app\api\controller\pay\AlipayController::class,'index']);
         Route::post('/wxpay',[\app\api\controller\pay\WxpayController::class,'index']);
     });
+    Route::group('/scan',function (){
+        Route::get('/qr',[\app\api\controller\scan\QrcodeController::class,'index']);
+    });
 });