cxgj/modules/admin/models/LevelEditForm.php
2023-11-27 09:45:13 +08:00

144 lines
4.7 KiB
PHP

<?php
/**
* @author Any
* @description KISS
* @date 2020-11-23
* @version 1.0.0
*
* _____LOG_____
*
*/
namespace app\modules\admin\models;
use app\components\Utils;
use app\models\Banner;
use app\models\Level;
use app\models\Model;
use app\models\Option;
class LevelEditForm extends AdminModel
{
public $model;
public $level;
public $name;
public $status;
public $recharge_number;
public $discount;
public $cover;
public $cover_min;
public $pic;
public $font_color;
public $levelDetailsKey = 'level_details';
public $levelDetails;
public $one_status;
public $one_recharge_number;
public $one_discount;
public $two_status;
public $two_recharge_number;
public $two_discount;
public $three_status;
public $three_recharge_number;
public $three_discount;
public function rules()
{
return [
[['name', 'status' ,'recharge_number', 'discount', 'cover', 'pic','levelDetails'], 'trim'],
[['cover', 'pic', 'name','levelDetails','font_color','cover_min'], 'string'],
[['status','level', 'discount'],'integer'],
[['recharge_number'], 'number'],
[['status'], 'in', 'range' => [0, 1]],
[['name', 'status' ,'recharge_number', 'discount','level'], 'required','on' => 'edit'],
[['one_status', 'one_recharge_number' ,'one_discount','two_status','two_recharge_number','two_discount','three_status','three_recharge_number','three_discount'], 'required','on' => 'editSetting'],
];
}
public function attributeLabels() {
return [
'name' => '名称',
'status' => '状态',
'recharge_number' => '充值',
'discount' => '折扣',
'cover' => '卡片1',
'cover_min' => '卡片2',
'pic' => '图标',
'one_status' => '见习会员-状态',
'one_recharge_number' => '见习会员-充值金额',
'one_discount' => '见习会员-折扣',
'two_status' => '进阶会员-状态',
'two_recharge_number' => '进阶会员-充值金额',
'two_discount' => '进阶会员-折扣',
'three_status' => '高阶会员-状态',
'three_recharge_number' => '高阶会员-充值金额',
'three_discount' => '高阶会员-折扣',
];
}
public function edit()
{
if(!$this->validate()){
return $this->getModelError();
}
if($this->model->isNewRecord){
$this->model->created_at = time();
}
$this->model->level = $this->level;
$this->model->name = $this->name;
$this->model->status = $this->status;
$this->model->recharge_number = $this->recharge_number;
$this->model->discount = $this->discount;
$this->model->cover = $this->cover;
$this->model->cover_min = $this->cover_min;
$this->model->pic = $this->pic;
$this->model->font_color = $this->font_color;
$this->model->updated_at = time();
if(!$this->model->save()){
return $this->getModelError($this->model);
}
return $this->apiReturnSuccess("保存成功");
}
public function editDetails()
{
$key = Utils::hump2underline($this->levelDetailsKey);
$key = strtoupper($key);
$f = Option::setOption($key, $this->levelDetails, 0);
if(!$f){
return $this->apiReturnError('保存失败');
}
return $this->apiReturnSuccess("保存成功");
}
public function editSetting()
{
if(!$this->validate()){
return $this->getModelError();
}
$time = time();
$data = [
['level' => 1,'name' => '见习会员','recharge_number'=>$this->one_recharge_number,'discount' => $this->one_discount,'status' => $this->one_status,'updated_at' => $time],
['level' => 2,'name' => '进阶会员','recharge_number'=>$this->two_recharge_number,'discount' => $this->two_discount,'status' => $this->two_status,'updated_at' => $time],
['level' => 3,'name' => '高阶会员','recharge_number'=>$this->three_recharge_number,'discount' => $this->three_discount,'status' => $this->three_status,'updated_at' => $time],
];
$is_exists = Level::find()->exists();
foreach ($data as $item){
if(!$is_exists){
$item['created_at'] = $time;
\Yii::$app->db->createCommand()->insert(Level::tableName(), $item)->execute();
}else{
\Yii::$app->db->createCommand()->update(Level::tableName(), $item,['id' => $item['level']])->execute();
}
}
return $this->apiReturnSuccess("保存成功");
}
}