| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309 |
- <?php
- /**
- * 日志规则逻辑类
- *
- * @author qifan
- * @date 2020-12-03
- */
-
- namespace app\admin\logic;
-
- use think\Db;
-
- class DailyRuleLogic
- {
- /**
- * 获取日志欢迎语
- *
- * @return array|mixed
- */
- public function welcome()
- {
- $mark = Db::name('admin_oalog_rule')->where('type', 4)->value('mark');
-
- return !empty($mark) ? unserialize($mark) : [];
- }
-
- /**
- * 保存欢迎语
- *
- * @param $data
- * @return int|string
- * @throws \think\Exception
- * @throws \think\exception\PDOException
- */
- public function setWelcome($data)
- {
- $result = [];
-
- foreach ($data as $key => $value) {
- if (!empty($value)) $result[] = $value;
- }
-
- $result = serialize($result);
-
- if (Db::name('admin_oalog_rule')->where('type', 4)->value('id')) {
- return Db::name('admin_oalog_rule')->where('type', 4)->update(['mark' => $result]);
- }
-
- return Db::name('admin_oalog_rule')->insert([
- 'type' => 4,
- 'status' => 1,
- 'mark' => $result
- ]);
- }
-
- /**
- * 获取日志规则
- *
- * @return mixed
- * @throws \think\db\exception\DataNotFoundException
- * @throws \think\db\exception\ModelNotFoundException
- * @throws \think\exception\DbException
- */
- public function workLogRule()
- {
- $result[] = $this->getDayLogRule();
- $result[] = $this->getWeekLogRule();
- $result[] = $this->getMonthLogRule();
-
- return $result;
- }
-
- /**
- * 设置日志规则
- *
- * @param $param
- * @throws \think\Exception
- * @throws \think\exception\PDOException
- */
- public function setWorkLogRule($param)
- {
- if (!empty($param[0])) $this->setDayLogRule($param[0]);
- if (!empty($param[1])) $this->setWeekLogRule($param[1]);
- if (!empty($param[2])) $this->setMonthLogRule($param[2]);
- }
-
- /**
- * 设置日规则
- *
- * @param $param
- * @return int|string
- * @throws \think\Exception
- * @throws \think\exception\PDOException
- */
- private function setDayLogRule($param)
- {
- $data = [
- 'type' => 1,
- 'userIds' => $param['userIds'],
- 'effective_day' => $param['effective_day'],
- 'start_time' => $param['start_time'],
- 'end_time' => $param['end_time'],
- 'status' => $param['status']
- ];
-
- if (Db::name('admin_oalog_rule')->where('type', 1)->value('id')) {
- return Db::name('admin_oalog_rule')->where('type', 1)->update($data);
- }
-
- return Db::name('admin_oalog_rule')->insert($data);
- }
-
- /**
- * 设置周规则
- *
- * @param $param
- * @return int|string
- * @throws \think\Exception
- * @throws \think\exception\PDOException
- */
- private function setWeekLogRule($param)
- {
- $data = [
- 'type' => 2,
- 'userIds' => $param['userIds'],
- 'start_time' => $param['start_time'],
- 'end_time' => $param['end_time'],
- 'status' => $param['status']?:''
- ];
-
- if (Db::name('admin_oalog_rule')->where('type', 2)->value('id')) {
- return Db::name('admin_oalog_rule')->where('type', 2)->update($data);
- }
-
- return Db::name('admin_oalog_rule')->insert($data);
- }
-
- /**
- * 设置月规则
- *
- * @param $param
- * @return int|string
- * @throws \think\Exception
- * @throws \think\exception\PDOException
- */
- private function setMonthLogRule($param)
- {
- $data = [
- 'type' => 3,
- 'userIds' => $param['userIds'],
- 'start_time' => $param['start_time'],
- 'end_time' => $param['end_time'],
- 'status' => $param['status']?:''
- ];
-
- if (Db::name('admin_oalog_rule')->where('type', 3)->value('id')) {
- return Db::name('admin_oalog_rule')->where('type', 3)->update($data);
- }
-
- return Db::name('admin_oalog_rule')->insert($data);
- }
-
- /**
- * 获取日规则
- *
- * @return array
- * @throws \think\db\exception\DataNotFoundException
- * @throws \think\db\exception\ModelNotFoundException
- * @throws \think\exception\DbException
- */
- private function getDayLogRule()
- {
- $day = Db::name('admin_oalog_rule')->where('type', 1)->find();
-
- return [
- 'type' => $day['type'],
- 'status' => $day['status'],
- 'userIds' => $day['userIds'],
- 'user' => $this->getUsers($day['userIds']),
- 'effective_day' => $day['effective_day'],
- 'start_time' => $day['start_time']?:null,
- 'end_time' => $day['end_time']?:null
- ];
- }
-
- /**
- * 获取周规则
- *
- * @return array
- * @throws \think\db\exception\DataNotFoundException
- * @throws \think\db\exception\ModelNotFoundException
- * @throws \think\exception\DbException
- */
- private function getWeekLogRule()
- {
- $week = Db::name('admin_oalog_rule')->where('type', 2)->find();
-
- return [
- 'type' => $week['type'],
- 'status' => $week['status'],
- 'userIds' => $week['userIds'],
- 'user' => $this->getUsers($week['userIds']),
- 'effective_day' => $week['effective_day'],
- 'start_time' => $week['start_time']?:1,
- 'end_time' => $week['end_time']?:3
- ];
- }
-
- /**
- * 获取月规则
- *
- * @return array
- * @throws \think\db\exception\DataNotFoundException
- * @throws \think\db\exception\ModelNotFoundException
- * @throws \think\exception\DbException
- */
- private function getMonthLogRule()
- {
- $month = Db::name('admin_oalog_rule')->where('type', 3)->find();
-
- return [
- 'type' => $month['type'],
- 'status' => $month['status'],
- 'userIds' => $month['userIds'],
- 'user' => $this->getUsers($month['userIds']),
- 'effective_day' => $month['effective_day'],
- 'start_time' => $month['start_time']?:1,
- 'end_time' => $month['end_time']?:3
- ];
- }
-
- /**
- * 获取用户列表
- *
- * @param $ids
- * @return bool|\PDOStatement|string|\think\Collection
- * @throws \think\db\exception\DataNotFoundException
- * @throws \think\db\exception\ModelNotFoundException
- * @throws \think\exception\DbException
- */
- private function getUsers($ids)
- {
- return Db::name('admin_user')->field(['id', 'realname'])->whereIn('id', $ids)->select();
- }
-
- /**
- * 自定义日程类型列表
- * @return array
- * @throws \think\db\exception\DataNotFoundException
- * @throws \think\db\exception\ModelNotFoundException
- * @throws \think\exception\DbException
- */
- public function schedule()
- {
- $list = Db::name('admin_oa_schedule')->where('type', 2)->field(['name,color,schedule_id as id'])->select();
- $data = [];
- $data['list'] = $list;
- return $data;
- }
-
- /**
- * 设置日程自定义规则
- * @param $param
- * @return int|string
- * @throws \think\Exception
- * @throws \think\exception\PDOException
- */
- public function setSchedule($param)
- {
- if (Db::name('admin_oa_schedule')->where('schedule_id', $param['id'])->value('schedule_id')) {
- $data = [
- 'name' => $param['name'],
- 'update_time' => time(),
- 'color' => $param['color'],
- ];
- return Db::name('admin_oa_schedule')->where( 'schedule_id', $param['id'])->update($data);
- }
-
- }
-
- /**
- * 添加自定义日程规则
- * @param $param
- * @return int|string
- */
- public function addSchedule($param)
- {
- $data = [
- 'name' => $param['name'],
- 'create_time' => time(),
- 'color' => $param['color'],
- ];
- return Db::name('admin_oa_schedule')->insert($data);
- }
-
- /**
- * 删除日程自定义规则
- * @param $param
- * @return int
- * @throws \think\Exception
- * @throws \think\exception\PDOException
- */
- public function delSchedule($param)
- {
- if (Db::name('admin_oa_schedule')->where('schedule_id', $param)->value('schedule_id')) {
- return Db::name('AdminOaSchedule')->where('schedule_id', $param)->delete();
- }
- }
- }
|