Config.php 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105
  1. <?php
  2. /**
  3. * Created by PhpStorm
  4. * User Julyssn
  5. * Date 2022/12/14 17:24
  6. */
  7. namespace app\manage\controller;
  8. use app\BaseController;
  9. use app\manage\model\{Config as Conf};
  10. use think\facade\Cache;
  11. class Config extends BaseController
  12. {
  13. /**
  14. * 获取单个配置
  15. * @return \think\response\Json
  16. */
  17. public function getInfo()
  18. {
  19. $name=$this->request->param('name');
  20. $data = Conf::where(['field'=>$name])->value('val');
  21. return success('', $data);
  22. }
  23. /**
  24. * 获取配置
  25. * @return \think\response\Json
  26. */
  27. public function getAllConfig()
  28. {
  29. $name=['sysInfo','chatInfo','smtp','fileUpload','compass'];
  30. $list = Conf::where(['field'=>$name])->select();
  31. $list = Conf::changeList($list);
  32. return success('', $list);
  33. }
  34. /**
  35. * 修改配置
  36. * @return \think\response\Json
  37. */
  38. public function setConfig()
  39. {
  40. $name = $this->request->param('name');
  41. $value = $this->request->param('value');
  42. if(Conf::where(['field'=>$name])->find()){
  43. Conf::where(['field'=>$name])->update(['val'=>$value]);
  44. }else{
  45. Conf::create(['field'=>$name,'val'=>$value]);
  46. }
  47. if($name=='fileUpload'){
  48. updateEnv('driver',$value['disk']);
  49. updateEnv('own',$value['preview']);
  50. foreach ($value['aliyun'] as $k=>$v){
  51. if($v){
  52. updateEnv('aliyun_'.$k,$v);
  53. }
  54. }
  55. foreach ($value['qiniu'] as $k=>$v){
  56. if($v){
  57. updateEnv('qiniu_'.$k,$v);
  58. }
  59. }
  60. foreach ($value['qcloud'] as $k=>$v){
  61. if($v){
  62. updateEnv('qcloud_'.$k,$v);
  63. }
  64. }
  65. }else{
  66. // 更新系统缓存
  67. $systemInfo=Conf::getSystemInfo(true);
  68. // 向所有人推送新的设置
  69. wsSendMsg(0,'updateConfig',$systemInfo);
  70. }
  71. return success(lang('system.editOk'));
  72. }
  73. /**
  74. * 获取邀请链接
  75. * @return \think\response\Json
  76. */
  77. public function getInviteLink(){
  78. $uid=$this->userInfo['user_id'];
  79. // 邀请码仅两天有效
  80. $code=\utils\Str::random(8);
  81. Cache::set($code,$uid,172800);
  82. $url=getMainHost().'/index.html/#/register?inviteCode='.$code;
  83. return success('',$url);
  84. }
  85. // 发送测试邮件
  86. public function sendTestEmail(){
  87. $email=$this->request->param('email');
  88. if(!$email || !(\utils\Regular::is_email($email))){
  89. return warning(lang('email.input'));
  90. }
  91. $conf=Conf::where(['field'=>'smtp'])->value('val');
  92. $mail=new \mail\Mail($conf);
  93. $mail->sendEmail([$email],lang('email.testTitle'),lang('email.testContent'));
  94. return success(lang('system.sendOk'));
  95. }
  96. }