* Refactor design::batchCreate method.

This commit is contained in:
tianshujie
2023-12-13 15:51:51 +08:00
parent 60c9b0831a
commit ffbb37031d
3 changed files with 24 additions and 33 deletions
+10
View File
@@ -14,3 +14,13 @@ $config->design->form->create['desc'] = array('type' => 'string', 'requ
$config->design->form->create['version'] = array('type' => 'int', 'required' => false, 'default' => 1);
$config->design->form->create['createdBy'] = array('type' => 'string', 'required' => false, 'default' => $app->user->account);
$config->design->form->create['createdDate'] = array('type' => 'datetime', 'required' => false, 'default' => $now);
$config->design->form->batchcreate['name'] = array('type' => 'string', 'required' => false, 'default' => '', 'filter' => 'trim', 'base' => true);
$config->design->form->batchcreate['type'] = array('type' => 'string', 'required' => false, 'default' => '');
$config->design->form->batchcreate['product'] = array('type' => 'int', 'required' => false, 'default' => 0);
$config->design->form->batchcreate['project'] = array('type' => 'int', 'required' => false, 'default' => 0);
$config->design->form->batchcreate['story'] = array('type' => 'int', 'required' => false, 'default' => 0);
$config->design->form->batchcreate['desc'] = array('type' => 'string', 'required' => false, 'default' => '');
$config->design->form->batchcreate['version'] = array('type' => 'int', 'required' => false, 'default' => 1);
$config->design->form->batchcreate['createdBy'] = array('type' => 'string', 'required' => false, 'default' => $app->user->account);
$config->design->form->batchcreate['createdDate'] = array('type' => 'datetime', 'required' => false, 'default' => $now);
+7 -16
View File
@@ -158,11 +158,12 @@ class design extends control
}
/**
* 批量创建设计。
* Batch create designs.
*
* @param int $projectID
* @param int $productID
* @param string $type
* @param string $type all|bySearch|HLDS|DDS|DBDS|ADS
* @access public
* @return void
*/
@@ -172,20 +173,11 @@ class design extends control
if($_POST)
{
$this->design->batchCreate($projectID, $productID);
$designs = form::batchData()->get();
$this->design->batchCreate($projectID, $productID, $designs);
if(dao::isError())
{
$response['result'] = 'fail';
$response['message'] = dao::getError();
return $this->send($response);
}
$response['result'] = 'success';
$response['message'] = $this->lang->saveSuccess;
$response['load'] = inlink('browse', "projectID=$projectID&productID=$productID");
return $this->send($response);
if(dao::isError()) return $this->send(array('result' => 'fail', 'message' => dao::getError()));
return $this->send(array('result' => 'success', 'message' => $this->lang->saveSuccess, 'load' => inlink('browse', "projectID={$projectID}&productID={$productID}")));
}
$products = $this->product->getProductPairsByProject($projectID);
@@ -193,8 +185,7 @@ class design extends control
$project = $this->loadModel('project')->getByID($projectID);
$this->view->title = $this->lang->design->common . $this->lang->colon . $this->lang->design->batchCreate;
$this->view->title = $this->lang->design->common . $this->lang->colon . $this->lang->design->batchCreate;
$this->view->stories = $this->loadModel('story')->getProductStoryPairs($productIdList);
$this->view->users = $this->loadModel('user')->getPairs('noclosed');
$this->view->type = $type;
+7 -17
View File
@@ -51,37 +51,27 @@ class designModel extends model
}
/**
* 批量创建设计。
* Batch create designs.
*
* @param int $projectID
* @param int $productID
* @param array $designs
* @access public
* @return bool
*/
public function batchCreate($projectID = 0, $productID = 0)
public function batchCreate(int $projectID = 0, int $productID = 0, array $designs = array()): bool
{
$data = fixer::input('post')->get();
$this->loadModel('action');
foreach($data->name as $i => $name)
foreach($designs as $rowID => $design)
{
if(!trim($name)) continue;
$design = new stdclass();
$design->story = isset($data->story[$i]) ? $data->story[$i] : '';
$design->type = $data->type[$i];
$design->name = $name;
$design->product = $productID;
$design->project = $projectID;
$design->desc = nl2br($data->desc[$i]);
$design->createdBy = $this->app->user->account;
$design->createdDate = helper::now();
$design->product = $productID;
$design->project = $projectID;
$this->dao->insert(TABLE_DESIGN)->data($design)->autoCheck()->batchCheck($this->config->design->batchcreate->requiredFields, 'notempty')->exec();
if(dao::isError())
{
foreach(dao::getError() as $field => $error) dao::$errors["{$field}[{$i}]"] = $error;
foreach(dao::getError() as $field => $error) dao::$errors["{$field}[{$rowID}]"] = $error;
return false;
}