| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242 |
- <?php
- namespace biz\item\classes;
- use biz\base\classes\BaseClass;
- 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, 'inTurn DESC');
- $list = $data['list'];
- //$sjItemIds = [];
- $sjItems = [];
- if ($showSelect && $mainId) {
- $sjItemIds = ProductClass::getAllByCondition($where = ['mainId' => $mainId], null, "*");
- foreach ($sjItemIds as $item) {
- $sjItems[$item['itemId']] = ['ghsItemId' => $item['id'], 'delStatus' => $item['delStatus']];
- }
- //$sjItemIds = array_column($sjItemIds, 'itemId');
- //$sjItemIds = array_unique($sjItemIds);
- }
- $classIds = array_column($list, "classId");
- $classNameMap = PtItemClassClass::getNameMap($classIds);
- if ($list) {
- 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;
- }
- }
- }
- $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 = isset($data['py']) && !empty($data['py']) ? $data['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("花材分类不存在");
- }
- return self::add($data);
- }
- //修改花材信息
- public static function updateItem($data, $sync = false)
- {
- $id = $data['id'] ?? 0;
- $syncCover = false;
- $model = self::getById($id);
- if (!$model) {
- util::fail("该花材不存在");
- }
- $upData = [];
- if (isset($data['name'])) {
- if (empty($data['name'])) {
- util::fail("请输入花材名称");
- }
- $upData['name'] = $data['name'];
- }
- if (isset($data['py'])) {
- if (empty($data['py'])) {
- util::fail("请输入花材拼音");
- }
- $upData['py'] = $data['py'];
- }
- if (isset($data['cover'])) {
- if (empty($data['cover'])) {
- util::fail("请输入花材图片");
- }
- $upData['cover'] = $data['cover'];
- $syncCover = true;
- }
- if (isset($data['alias'])) {
- if (empty($data['alias'])) {
- util::fail("请输入花材别名");
- }
- $upData['alias'] = $data['alias'];
- }
- if (isset($data['cost'])) {
- if (empty($data['cost'])) {
- util::fail("请输入花材成本价");
- }
- $upData['cost'] = $data['cost'];
- }
- if (isset($data['ratio'])) {
- if (empty($data['ratio'])) {
- util::fail("请输入花材比例");
- }
- if (preg_match("/^[1-9][0-9]*$/", $data['ratio']) == false || $data['ratio'] <= 0) {
- util::fail('比例请填写整数,并且大于0');
- }
- $upData['ratio'] = $data['ratio'];
- }
- if (isset($data['weight'])) {
- if (empty($data['weight'])) {
- util::fail("请输入花材重量");
- }
- $upData['weight'] = $data['weight'];
- }
- if (isset($data['addPrice'])) {
- if (empty($data['addPrice'])) {
- util::fail("请输入花材价加");
- }
- $upData['addPrice'] = $data['addPrice'];
- }
- if (isset($data['stockWarning'])) {
- if (empty($data['stockWarning'])) {
- util::fail("请输入花材库存预警");
- }
- $upData['stockWarning'] = $data['stockWarning'];
- }
- if (isset($data['bigUnit'])) {
- if (empty($data['bigUnit'])) {
- util::fail("请输入花材大单位");
- }
- $upData['bigUnit'] = $data['bigUnit'];
- }
- if (isset($data['smallUnit'])) {
- if (empty($data['smallUnit'])) {
- util::fail("请输入花材小单位");
- }
- $upData['smallUnit'] = $data['smallUnit'];
- }
- if (isset($data['classId'])) {
- if (empty($data['classId'])) {
- util::fail("请选择花材分类");
- }
- $upData['classId'] = $data['classId'];
- }
- unset($data['id']);
- if (empty($upData)) {
- util::fail("参数错误");
- }
- self::updateById($id, $upData);
- if ($sync) {
- //同步各个商户的Item todo
- if ($syncCover) {
- $newCover = $upData['cover'];
- $syncData['cover'] = $newCover;
- 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;
- }
- }
|