SmsApiForm.php 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. <?php
  2. namespace common\models\forms;
  3. use common\components\Model;
  4. use common\helpers\Date;
  5. use common\libs\logging\operate\AdminOperate;
  6. use common\models\OcrApi;
  7. use common\models\SmsApi;
  8. use yii\helpers\Json;
  9. /**
  10. * Login form
  11. */
  12. class SmsApiForm extends Model
  13. {
  14. public $id;
  15. public $config;
  16. public function init() {
  17. parent::init();
  18. $this->adminOperateLogger = new AdminOperate([
  19. 'fetchClass' => SmsApi::class,
  20. ]);
  21. }
  22. /**
  23. * @inheritdoc
  24. */
  25. public function rules()
  26. {
  27. return [
  28. [['id', 'config'], 'trim'],
  29. [['id', 'config'], 'required'],
  30. [['id'], 'exist', 'targetClass'=>SmsApi::class, 'targetAttribute'=>'ID'],
  31. ];
  32. }
  33. /**
  34. * 指定校验场景
  35. * @return array
  36. */
  37. public function scenarios()
  38. {
  39. $parentScenarios = parent::scenarios();
  40. $customScenarios = [
  41. 'edit' => ['id', 'config']
  42. ];
  43. return array_merge($parentScenarios, $customScenarios);
  44. }
  45. /**
  46. * 编辑
  47. * @return null|static
  48. */
  49. public function edit(){
  50. if(!$this->validate()){
  51. return null;
  52. }
  53. $this->adminOperateLogger->saveBeforeContent = SmsApi::getConfigById($this->id);
  54. if($this->scenario == 'edit') {
  55. $model = SmsApi::findOne(['ID'=>$this->id]);
  56. $model->UPDATE_ADMIN = \Yii::$app->user->id;
  57. $model->UPDATED_AT = Date::nowTime();
  58. $model->CONFIG = Json::encode($this->config);
  59. } else {
  60. $this->addError('edit', '提交场景不存在');
  61. return null;
  62. }
  63. if(!$model->save()){
  64. $this->addErrors($model->getErrors());
  65. return null;
  66. }
  67. $this->adminOperateLogger->saveAfterContent = SmsApi::getConfigById($this->id);
  68. $this->adminOperateLogger->clean()->save([
  69. 'optType' => 'SmsApi配置成功',
  70. ]);
  71. return $model;
  72. }
  73. }