common.php 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122
  1. <?php
  2. /**
  3. * @copyright Copyright (c) 2021 勾股工作室
  4. * @license https://opensource.org/licenses/GPL-3.0
  5. * @link https://www.gougucms.com
  6. */
  7. /**
  8. ======================
  9. *模块数据获取公共文件
  10. ======================
  11. */
  12. use think\facade\Db;
  13. //是否是合同管理员权限
  14. function contract_auth($uid)
  15. {
  16. if($uid == 1){
  17. return 1;
  18. }
  19. $map = [];
  20. $map[] = ['name', '=', 'contract_admin'];
  21. $map[] = ['', 'exp', Db::raw("FIND_IN_SET('{$uid}',uids)")];
  22. $count = Db::name('DataAuth')->where($map)->count();
  23. return $count;
  24. }
  25. //读取分类列表
  26. function contract_cate()
  27. {
  28. $cate = Db::name('ContractCate')->where(['status' => 1])->order('id desc')->select()->toArray();
  29. return $cate;
  30. }
  31. //读取签约主体
  32. function contract_subject()
  33. {
  34. $subject = Db::name('InvoiceSubject')->where(['status' => 1])->order('id desc')->select()->toArray();
  35. return $subject;
  36. }
  37. //读取部门列表
  38. function get_department()
  39. {
  40. $department = Db::name('Department')->order('sort desc,id asc')->where(['status' => 1])->select()->toArray();
  41. return $department;
  42. }
  43. //写入日志
  44. function to_log($uid,$new,$old)
  45. {
  46. $log_data = [];
  47. $key_array = ['id', 'create_time', 'update_time', 'sign_did'];
  48. foreach ($new as $key => $value) {
  49. if (!in_array($key, $key_array)) {
  50. if(isset($old[$key]) && ($old[$key]!=$value)){
  51. $log_data[] = array(
  52. 'field' => $key,
  53. 'contract_id' => $new['id'],
  54. 'admin_id' => $uid,
  55. 'old_content' => $old[$key],
  56. 'new_content' => $value,
  57. 'create_time' => time(),
  58. );
  59. }
  60. }
  61. }
  62. Db::name('ContractLog')->strict(false)->field(true)->insertAll($log_data);
  63. }
  64. /**
  65. * 管理员操作日志
  66. * @param string $type 操作类型 login add edit view delete
  67. * @param int $param_id 操作类型
  68. * @param array $param 提交的参数
  69. * @param subject $param 操作主题
  70. */
  71. function add_log($type, $param_id = '', $param = [],$subject='')
  72. {
  73. $action = '未知操作';
  74. $type_action = get_config('log.admin_action');
  75. if($type_action[$type]){
  76. $action = $type_action[$type];
  77. }
  78. if ($type == 'login') {
  79. $login_admin = Db::name('Admin')->where(array('id' => $param_id))->find();
  80. } else {
  81. $session_admin = get_config('app.session_admin');
  82. $login_admin = \think\facade\Session::get($session_admin);
  83. }
  84. $data = [];
  85. $data['title'] = '';
  86. $data['uid'] = $login_admin['id'];
  87. $data['nickname'] = $login_admin['nickname'];
  88. $data['type'] = $type;
  89. $data['action'] = $action;
  90. $data['param_id'] = $param_id;
  91. $data['param'] = json_encode($param);
  92. $data['module'] = strtolower(app('http')->getName());
  93. $data['controller'] = uncamelize(app('request')->controller());
  94. $data['function'] = strtolower(app('request')->action());
  95. $parameter = $data['module'] . '/' . $data['controller'] . '/' . $data['function'];
  96. $rule_menu = Db::name('AdminRule')->where(array('src' => $parameter))->find();
  97. if($rule_menu){
  98. $data['title'] = $rule_menu['title'];
  99. $data['subject'] = $rule_menu['name'];
  100. }
  101. else{
  102. if(empty($subject)){
  103. $data['subject'] = '系统';
  104. }else{
  105. $data['subject'] = $subject;
  106. }
  107. }
  108. $content = $login_admin['nickname'] . '在' . date('Y-m-d H:i:s') . $data['action'] . '了' . $data['subject'];
  109. $data['content'] = $content;
  110. $data['ip'] = app('request')->ip();
  111. $data['create_time'] = time();
  112. Db::name('AdminLog')->strict(false)->field(true)->insert($data);
  113. }