<?php
namespace admin\action;

class dmmtaskAction extends elementAction
{
	public function __construct($elename='dmmtask')
    {
		parent::__construct($elename);
	}

	public function edit()
    {
        $req = \mvc::$req;
        $where['ct_dbname']='';
        $row = $this->element->hasWhere($where);
        if($row){
            $this->msgJson(lg('已存在空目标库记录，不允许添加'));
            exit();
        }
        $req = \mvc::$req;
        $key = $req['key'];
        unset($req['key']);
        unset($req['elename']);
        if(isset($this->elecfg['uniqueFields']) && !empty($this->elecfg['uniqueFields'])){
            $find = [];
            $msg = '';
            foreach($this->elecfg['uniqueFields'] as $field){
                $find[$field] = $req[$field];
                if($msg!='') $msg.=', ';
                $msg .= $this->elecfg['fields'][$field][LG_NAME];
            }
            $find[$this->elecfg['key'].'[!]'] = $key;
            $rows = $this->element->getRowByWhere($find);
            if(!empty($rows)){
                $this->msgJson(sprintf("重复的 [ %s ]",$msg));
                exit();
            }
        }
        foreach($this->elecfg['fields'] as $k=>$v){
            if(isset($v['auto'])){
                switch ($v['auto']) {
                    case 'opuser':
                        $req[$k] = getOpuser();
                        break;
                    case 'oa_create_time':
                        if(empty($key)){
                            $req[$k] = getNowTime();
                        }
                        break;
                    case 'oa_update_time':
                        $req[$k] = getNowTime();
                        break;
                }
            }
        }
        foreach($req as $k=>$v){
            if($this->elecfg['fields'][$k]['unique'] || $this->elecfg['fields'][$k]['key']){
                if($this->element->hasWithOut($k,$v,$key)){
                    $this->msgJson(lg('存在相同的描述，不允许添加'));
                    exit();
                }
            }
			if(isset($this->elecfg['fields'][$k]['editor']['ruleFunction']) && !empty($this->elecfg['fields'][$k]['editor']['ruleFunction'])){
				$this->elecfg['fields'][$k]['editor']['ruleFunction']($req[$this->elecfg['fields'][$k]['field']],$req);
			}
        }
        
        if(isset($this->elecfg['fields']['opuser'])) $req['opuser'] = getOpuser();
        if(isset($this->elecfg['fields']['update_time'])) $req['update_time'] = getNowTime();
        if(empty($key)){
            if($req[$this->elecfg['key']]=='') unset($req[$this->elecfg['key']]);
            if(isset($this->elecfg['fields']['create_time'])) $req['create_time'] = getNowTime();
            $id = $this->element->add($req);
            $this->successJson(['key'=>$id,'op'=>'add']);
        }else{
            if($this->element->edit($key,$req)){
                $this->successJson(['key'=>$key,'op'=>'edit']);
            }
        }
    }
}