$mainId], null, "*"); foreach ($sjItemIds as $item) { $sjItems[$item['itemId']] = ['ghsItemId' => $item['id'], 'delStatus' => $item['delStatus']]; } } $classIds = array_column($list, "classId"); $classNameMap = PtItemClassClass::getNameMap($classIds); if (!empty($list)) { //产品相关 $ids = array_column($list, 'id'); $cpInfoList = []; if (!empty($ids)) { $relate = PtCpItemClass::getAllByCondition(['itemId' => ['in', $ids]], null, '*'); if (!empty($relate)) { foreach ($relate as $it) { $ptItemId = $it['itemId'] ?? 0; $cpName = $it['cpName'] ?? ''; $cpId = $it['cpId'] ?? 0; $auth = $it['auth'] ?? 0; $cpInfoList[$ptItemId][] = ['name' => $cpName, 'auth' => $auth, 'id' => $cpId]; } } } foreach ($list as $k => $v) { $shortCover = $v['cover'] ?? ''; $cover = imgUtil::groupImg($shortCover) . "?x-oss-process=image/resize,m_fill,h_130,w_130"; $bigCover = imgUtil::groupImg($shortCover) . "?x-oss-process=image/resize,m_fill,h_700,w_700"; $list[$k]['cover'] = $cover; $list[$k]['bigCover'] = $bigCover; $list[$k]['className'] = $classNameMap[$v['classId']] ?? ''; if ($showSelect) { //1未选 2已选 //$select = in_array($v['id'], $sjItemIds) ? 2 : 1; $list[$k]['select'] = key_exists($v['id'], $sjItems) ? 2 : 1; //0显示(未删除) 1不显示(删除) $list[$k]['is_delete'] = isset($sjItems[$v['id']]['delStatus']) ? ($sjItems[$v['id']]['delStatus'] == 1 ? 1 : 0) : 0; $list[$k]['ghs_item_id'] = $sjItems[$v['id']]['ghsItemId'] ?? 0; } $id = $v['id'] ?? 0; $cpList = $cpInfoList[$id] ?? []; $list[$k]['cpList'] = $cpList; } } $data['list'] = $list; return $data; } //先写死,之后查表 public static function getUnitName($unit) { $map = [ 1 => '扎', 2 => '支', ]; return $map[$unit] ?? '支'; } //新增花材 public static function addItem($data) { $classId = $data['classId'] ?? 0; $stockWarning = $data['stockWarning'] ?? false; $py = stringUtil::py($data['name']); $data['py'] = $py; $name = $data['name'] ?? false; $data['alias'] = $data['alias'] ?? ''; $data['cover'] = $data['cover'] ?? ''; $ratio = $data['ratio'] ?? 0; $weight = $data['weight'] ?? false; $data['bigUnit'] = $data['bigUnit'] ?? '扎'; $data['smallUnit'] = $data['smallUnit'] ?? '支'; if (preg_match("/^[1-9][0-9]*$/", $data['ratio']) == false || $data['ratio'] <= 0) { util::fail('比例请填写整数,并且大于0'); } $data['skAddPrice'] = 5; $data['addPrice'] = 4; $data['hjAddPrice'] = 3; $data['zsAddPrice'] = 2; if (!$classId) { util::fail("请选择分类"); } if ($stockWarning === false) { util::fail("请输入库存预警值"); } if ($name === false) { util::fail("请输入花材名称"); } if ($ratio === false) { util::fail("请输入花材比例"); } if ($weight === false) { util::fail("请输入花材重量"); } $existItemClass = PtItemClassClass::exists(['id' => $classId]); if (!$existItemClass) { util::fail("花材分类不存在"); } if (isset($data['allRank']) && $data['allRank'] == 1) { $a = $data; $a['name'] = $name . ' A级'; $a['py'] = stringUtil::py($a['name']); self::add($a); $b = $data; $b['name'] = $name . ' B级'; $b['py'] = stringUtil::py($b['name']); self::add($b); $c = $data; $c['name'] = $name . ' C级'; $c['py'] = stringUtil::py($c['name']); self::add($c); $d = $data; $d['name'] = $name . ' D级'; $d['py'] = stringUtil::py($d['name']); self::add($d); $e = $data; $e['name'] = $name . ' E级'; $e['py'] = stringUtil::py($e['name']); self::add($e); $o = $data; $o['name'] = $name . ' O级'; $o['py'] = stringUtil::py($o['name']); self::add($o); } return self::add($data); } //修改花材信息 public static function updateItem($data) { $id = $data['id'] ?? 0; $model = self::getById($id); if (!$model) { util::fail('没有找到花材'); } $upData = []; if (isset($data['name']) && !empty($data['name'])) { $upData['name'] = $data['name']; $upData['py'] = stringUtil::py($data['name']); } if (isset($data['cover']) && !empty($data['cover'])) { $upData['cover'] = $data['cover']; } if (isset($data['ratioType']) && is_numeric($data['ratioType'])) { $upData['ratioType'] = $data['ratioType']; } if (isset($data['ratio']) && !empty($data['ratio'])) { if (preg_match("/^[1-9][0-9]*$/", $data['ratio']) == false || $data['ratio'] <= 0) { util::fail('比例请填写整数,并且大于0'); } $upData['ratio'] = $data['ratio']; } if (isset($data['weight']) && !empty($data['weight'])) { $upData['weight'] = $data['weight']; } if (isset($data['stockWarning']) && !empty($data['stockWarning'])) { $upData['stockWarning'] = $data['stockWarning']; } if (isset($data['bigUnit']) && !empty($data['bigUnit'])) { $upData['bigUnit'] = $data['bigUnit']; } if (isset($data['bigUnitId']) && !empty($data['bigUnitId'])) { $upData['bigUnitId'] = $data['bigUnitId']; } if (isset($data['smallUnit']) && !empty($data['smallUnit'])) { $upData['smallUnit'] = $data['smallUnit']; } if (isset($data['smallUnitId']) && !empty($data['smallUnitId'])) { $upData['smallUnitId'] = $data['smallUnitId']; } if (isset($data['classId']) && !empty($data['classId'])) { $upData['classId'] = $data['classId']; } if (isset($data['inTurn']) && !empty($data['inTurn'])) { $upData['inTurn'] = $data['inTurn']; } unset($data['id']); if (!empty($upData)) { self::updateById($id, $upData); } if (isset($data['inTurn']) && !empty($data['inTurn'])) { $relate = PtItemCatRelateClass::getByCondition(['itemId' => $id], true); if (!empty($relate)) { $relate->inTurn = $data['inTurn']; $relate->save(); } } $syncData = []; if (isset($data['ratioType']) && is_numeric($data['ratioType'])) { $syncData['ratioType'] = $data['ratioType']; } if (isset($data['bigUnit']) && !empty($data['bigUnit'])) { $syncData['bigUnit'] = $data['bigUnit']; } if (isset($data['bigUnitId']) && !empty($data['bigUnitId'])) { $syncData['bigUnitId'] = $data['bigUnitId']; } if (isset($data['smallUnit']) && !empty($data['smallUnit'])) { $syncData['smallUnit'] = $data['smallUnit']; } if (isset($data['smallUnitId']) && !empty($data['smallUnitId'])) { $syncData['smallUnitId'] = $data['smallUnitId']; } if (isset($data['weight']) && !empty($data['weight'])) { $syncData['weight'] = $data['weight']; } ProductClass::updateByCondition(['itemId' => $id], $syncData); } //获取详情 ssh 2021.4.11 public static function getItemInfo($id) { $info = self::getById($id); if (empty($info)) { return $info; } $list = self::groupInfo([$info]); return current($list); } public static function groupInfo($list) { if (empty($list)) { return $list; } foreach ($list as $key => $val) { $list[$key]['coverUrl'] = imgUtil::groupImg($val['cover']); } return $list; } }