| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267 |
- <?php
- namespace biz\item\classes;
- use biz\base\classes\BaseClass;
- use biz\cp\classes\PtCpItemClass;
- use bizGhs\product\classes\ProductClass;
- use common\components\imgUtil;
- use bizGhs\item\classes\ItemClass;
- use common\components\stringUtil;
- use common\components\util;
- class PtItemClass extends BaseClass
- {
- public static $baseFile = '\biz\item\models\PtItem';
- //列表数据
- public static function getItemList($where, $showSelect = false, $mainId = '')
- {
- $data = self::getList('*', $where, 'auth DESC,useNum DESC');
- $list = $data['list'];
- $sjItems = [];
- if ($showSelect && $mainId) {
- $sjItemIds = ProductClass::getAllByCondition($where = ['mainId' => $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;
- }
- }
|