From e786382e19c697c72c2b519d0acaa4085599e4cc Mon Sep 17 00:00:00 2001
From: YM <479443481@qq.com>
Date: 星期日, 09 三月 2025 19:52:33 +0800
Subject: [PATCH] 增加班次管理

---
 app/user/controller/Attendance.php |  142 +++++++++++++++++++++++------------------------
 1 files changed, 70 insertions(+), 72 deletions(-)

diff --git a/app/user/controller/Attendance.php b/app/user/controller/Attendance.php
index 7bf1907..811f4f1 100644
--- a/app/user/controller/Attendance.php
+++ b/app/user/controller/Attendance.php
@@ -15,12 +15,13 @@
     public function index()
     {
         if (request()->isAjax()) {
-            $list = Db::name('Position')->where('status', '>=', 0)->order('create_time asc')->select()->toArray();
-            foreach ($list as &$val) {
-                $groupId = Db::name('PositionGroup')->where(['pid' => $val['id']])->column('group_id');
-                $groupName = Db::name('AdminGroup')->where('id', 'in', $groupId)->column('title');
-                $val['groupName'] = implode(',', $groupName);
-            }
+            $list = Db::name('AttendanceGroup')->where('is_del', '=', 0)->order('create_time asc')->select()->toArray();
+            // var_dump($list);
+            // foreach ($list as &$val) {
+            //     $groupId = Db::name('PositionGroup')->where(['pid' => $val['id']])->column('group_id');
+            //     $groupName = Db::name('AdminGroup')->where('id', 'in', $groupId)->column('title');
+            //     $val['groupName'] = implode(',', $groupName);
+            // }
             $res['data'] = $list;
             return table_assign(0, '', $res);
         } else {
@@ -33,75 +34,72 @@
     {
         $param = get_params();
         if (request()->isAjax()) {
-            // if (!empty($param['id']) && $param['id'] > 0) {
-            //     if($param['id']==1){
-            //         return to_assign(1, '瓒呯骇绠$悊鍛樹笉鑳界紪杈�');
-            //     }
-            //     try {
-            //         validate(PositionCheck::class)->scene('edit')->check($param);
-            //     } catch (ValidateException $e) {
-            //         // 楠岃瘉澶辫触 杈撳嚭閿欒淇℃伅
-            //         return to_assign(1, $e->getError());
-            //     }
-            //     // 鍚姩浜嬪姟
-            //     Db::startTrans();
-            //     try {
-            //         Db::name('Position')->where(['id' => $param['id']])->strict(false)->field(true)->update($param);
-            //         Db::name('PositionGroup')->where(['pid' => $param['id']])->delete();
-            //         foreach ($param['group_id'] as $k => $v) {
-            //             $data[$k] = [
-            //                 'pid' => $param['id'],
-            //                 'group_id' => $v,
-            //                 'create_time' => time(),
-            //             ];
-            //         }
-            //         Db::name('PositionGroup')->strict(false)->field(true)->insertAll($data);
-            //         add_log('edit', $param['id'], $param);
-            //         //娓呴櫎鑿滃崟\鏉冮檺缂撳瓨
-            //         clear_cache('adminMenu');
-            //         clear_cache('adminRules');
-            //         // 鎻愪氦浜嬪姟
-            //         Db::commit();
-            //     } catch (\Exception $e) {
-            //         // 鍥炴粴浜嬪姟
-            //         Db::rollback();
-            //         return to_assign(1, '鎻愪氦澶辫触:' . $e->getMessage());
-            //     }
-            // } else {
-            //     try {
-            //         validate(PositionCheck::class)->scene('add')->check($param);
-            //     } catch (ValidateException $e) {
-            //         // 楠岃瘉澶辫触 杈撳嚭閿欒淇℃伅
-            //         return to_assign(1, $e->getError());
-            //     }
-            //     // 鍚姩浜嬪姟
-            //     Db::startTrans();
-            //     try {
-            //         $uid = Db::name('Position')->strict(false)->field(true)->insertGetId($param);
-            //         foreach ($param['group_id'] as $k => $v) {
-            //             $data[$k] = [
-            //                 'pid' => $uid,
-            //                 'group_id' => $v,
-            //                 'create_time' => time(),
-            //             ];
-            //         }
-            //         Db::name('PositionGroup')->strict(false)->field(true)->insertAll($data);
-            //         add_log('add', $uid, $param);
-            //         // 鎻愪氦浜嬪姟
-            //         Db::commit();
-            //     } catch (\Exception $e) {
-            //         // 鍥炴粴浜嬪姟
-            //         Db::rollback();
-            //         return to_assign(1, '鎻愪氦澶辫触:' . $e->getMessage());
-            //     }
-            // }
+            if (!empty($param['id']) && $param['id'] > 0) {
+                try {
+                    validate(PositionCheck::class)->scene('edit')->check($param);
+                } catch (ValidateException $e) {
+                    // 楠岃瘉澶辫触 杈撳嚭閿欒淇℃伅
+                    return to_assign(1, $e->getError());
+                }
+                // 鍚姩浜嬪姟
+                Db::startTrans();
+                try {
+                    Db::name('AttendanceGroup')->where(['id' => $param['id']])->strict(false)->field(true)->update($param);
+                    // Db::name('PositionGroup')->where(['pid' => $param['id']])->delete();
+                    // foreach ($param['group_id'] as $k => $v) {
+                    //     $data[$k] = [
+                    //         'pid' => $param['id'],
+                    //         'group_id' => $v,
+                    //         'create_time' => time(),
+                    //     ];
+                    // }
+                    // Db::name('PositionGroup')->strict(false)->field(true)->insertAll($data);
+                    add_log('edit', $param['id'], $param);
+                    //娓呴櫎鑿滃崟\鏉冮檺缂撳瓨
+                    // clear_cache('adminMenu');
+                    // clear_cache('adminRules');
+                    // 鎻愪氦浜嬪姟
+                    Db::commit();
+                } catch (\Exception $e) {
+                    // 鍥炴粴浜嬪姟
+                    Db::rollback();
+                    return to_assign(1, '鎻愪氦澶辫触:' . $e->getMessage());
+                }
+            } else {
+                try {
+                    validate(PositionCheck::class)->scene('add')->check($param);
+                } catch (ValidateException $e) {
+                    // 楠岃瘉澶辫触 杈撳嚭閿欒淇℃伅
+                    return to_assign(1, $e->getError());
+                }
+                // 鍚姩浜嬪姟
+                Db::startTrans();
+                try {
+                    $uid = Db::name('AttendanceGroup')->strict(false)->field(true)->insertGetId($param);
+                    // foreach ($param['group_id'] as $k => $v) {
+                    //     $data[$k] = [
+                    //         'pid' => $uid,
+                    //         'group_id' => $v,
+                    //         'create_time' => time(),
+                    //     ];
+                    // }
+                    // Db::name('PositionGroup')->strict(false)->field(true)->insertAll($data);
+                    add_log('add', $uid, $param);
+                    // 鎻愪氦浜嬪姟
+                    Db::commit();
+                } catch (\Exception $e) {
+                    // 鍥炴粴浜嬪姟
+                    Db::rollback();
+                    return to_assign(1, '鎻愪氦澶辫触:' . $e->getMessage());
+                }
+            }
             return to_assign();
         }
         else{
-            // $id = isset($param['id']) ? $param['id'] : 0;
+            $id = isset($param['id']) ? $param['id'] : 0;
             // $group = Db::name('AdminGroup')->order('create_time asc')->select()->toArray();
             // if ($id > 0) {
-            //     $detail = Db::name('Position')->where(['id' => $id])->find();
+                $detail = Db::name('AttendanceGroup')->where(['id' => $id])->find();
             //     $detail['group_id'] = Db::name('PositionGroup')->where(['pid' => $id])->column('group_id');
             //     foreach ($group as &$val) {
             //         if (in_array($val['id'], $detail['group_id'])) {
@@ -110,10 +108,10 @@
             //             $val['checked'] = 0;
             //         }
             //     }
-            //     View::assign('detail', $detail);
+                View::assign('detail', $detail);
             // }
             // View::assign('group', $group);
-            // View::assign('id', $id);
+            View::assign('id', $id);
             return view();
         }
     }

--
Gitblit v1.9.1