| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261 |
- <?php
- namespace bizGhs\item\classes;
- use biz\item\classes\PtItemCatClass;
- use biz\item\classes\PtItemCatRelateClass;
- use biz\item\classes\PtItemClass;
- use biz\item\classes\PtItemClassClass;
- use bizGhs\base\classes\BaseClass;
- use bizGhs\product\classes\ProductClass;
- use common\components\imgUtil;
- use common\services\xhItemService;
- class ItemClass extends BaseClass
- {
- public static $baseFile = '\bizGhs\item\models\Item';
- //初始化花材 lqh 2021.4.12 modify ssh 20210711
- public static function initItem($mainId)
- {
- $ptClass = PtItemCatClass::getAllList("*", ['type' => 0], 'inTurn desc');
- if (empty($ptClass)) {
- return false;
- }
- $hasClassIds = array_column($ptClass, 'id');
- $relate = PtItemCatRelateClass::getAllByCondition(['catId' => ['in', $hasClassIds]], null, '*');
- $relateInfo = [];
- $hasItemIds = [];
- if (!empty($relate)) {
- foreach ($relate as $key => $val) {
- $catId = $val['catId'] ?? 0;
- $itemId = $val['itemId'] ?? 0;
- $relateInfo[$catId][] = $itemId;
- $hasItemIds[] = $itemId;
- }
- $hasItemIds = array_unique(array_filter($hasItemIds));
- }
- $itemInfo = PtItemClass::getAllByCondition(['id' => ['in', $hasItemIds]], null, '*', 'id');
- foreach ($ptClass as $v) {
- $classId = $v['id'];
- $className = $v['name'];
- $inTurn = $v['inTurn'];
- $classData = [
- 'mainId' => $mainId,
- 'name' => $className,
- 'inTurn' => $inTurn,
- ];
- //初始化花材分类
- $addClassRespond = ItemClassClass::add($classData);
- $ghsClassId = $addClassRespond['id'];
- if (isset($relateInfo[$classId]) == false) {
- continue;
- }
- $itemAddData = [];
- $productAddData = [];
- foreach ($relateInfo[$classId] as $currentId) {
- if (isset($itemInfo[$currentId]) == false) {
- continue;
- }
- $currentItem = $itemInfo[$currentId] ?? [];
- unset($currentItem['addTime']);
- unset($currentItem['updateTime']);
- $itemData = $currentItem;
- $itemData['classId'] = $ghsClassId;
- $itemData['itemId'] = $currentItem['id'];
- unset($itemData['id']);
- $itemData['rank'] = 'A';
- $itemAddData[] = $itemData;
- $productData = $currentItem;
- $productData['mainId'] = $mainId;
- $productData['itemId'] = $currentItem['id'];
- $productData['classId'] = $ghsClassId;
- unset($productData['id']);
- $productData['rank'] = 'B';
- $productData['price'] = bcadd($currentItem['cost'], $currentItem['addPrice'], 2);
- //花材默认是下架状态
- $productData['status'] = 2;
- $productData['property'] = 1;
- $productAddData[] = $productData;
- }
- if (empty($itemAddData)) {
- continue;
- }
- ProductClass::batchAdd($productAddData);
- }
- //增加默认分类
- $classData = ['mainId' => $mainId, 'name' => '默认分类', 'inTurn' => -1, 'isDefault' => 1,];
- ItemClassClass::add($classData);
- }
- //从首店复制花材和分类 ssh 20220522
- public static function copyItem($oldMainId, $newMainId)
- {
- $classList = ItemClassClass::getAllByCondition(['mainId' => $oldMainId], null, '*');
- $classMap = [];
- if (!empty($classList)) {
- foreach ($classList as $class) {
- $preId = $class['id'] ?? 0;
- $class['mainId'] = $newMainId;
- $class['shopId'] = 0;
- unset($class['addTime']);
- unset($class['updateTime']);
- unset($class['id']);
- $ret = ItemClassClass::add($class, true);
- $newId = $ret->id ?? 0;
- $classMap[$preId] = $newId;
- }
- }
- $itemList = self::getAllByCondition(['mainId' => $oldMainId], null, '*');
- if (!empty($itemList)) {
- foreach ($itemList as $item) {
- unset($item['stock']);
- unset($item['addTime']);
- unset($item['updateTime']);
- unset($item['id']);
- $preId = $item['classId'] ?? 0;
- $newId = $classMap[$preId] ?? 0;
- $item['classId'] = $newId;
- $item['mainId'] = $newMainId;
- $item['shopId'] = 0;
- self::add($item);
- }
- }
- }
- public static function getShowList($where)
- {
- $level = 0;
- $list = self::getAllByCondition($where, ['inTurn' => SORT_DESC, 'actualSold' => SORT_DESC], "*");
- if (empty($list)) {
- return $list;
- }
- $list = ProductClass::groupProductInfo($list, $level);
- $data = [];
- $data[ItemClassClass::TJ_CLASS_ID] = [];
- foreach ($list as $it) {
- $classId = $it['classId'] ?? 0;
- $data[$classId][] = $it;
- if (isset($it['discountPrice']) && $it['discountPrice'] > 0) {
- $data[ItemClassClass::TJ_CLASS_ID][] = $it;
- }
- }
- return $data;
- }
- //列表数据
- public static function getGhsItemList($where)
- {
- $data = self::getList('*', $where, 'addTime DESC');
- $list = isset($data['list']) && !empty($data['list']) ? $data['list'] : [];
- if (empty($list)) {
- return $data;
- }
- foreach ($list as $k => $v) {
- $list[$k]['itemName'] = $list[$k]['name'] ?? '';
- $cover = $list[$k]['cover'] ?? '';
- $list[$k]['cover'] = imgUtil::groupImg($cover);
- }
- $data['list'] = $list;
- if (isset($where['classId'])) {
- $class = ItemClassClass::getById($where['classId']);
- $data['className'] = $class['name'] ?? '';
- }
- return $data;
- }
- //批量新增花材(初始化使用)
- public static function batchAddGhsItem($data)
- {
- return true;
- }
- //修改花材的信息(库存预警、每扎加价、每扎重量)
- public static function updateGshItem($id, $stockWarning, $addPrice, $weight, $cost)
- {
- $data['stockWarning'] = $stockWarning;
- $data['addPrice'] = $addPrice;
- $data['weight'] = $weight;
- $data['cost'] = $cost;
- self::updateById($id, $data);
- return true;
- }
- //删除花材
- public static function deleteGhsItem($id)
- {
- self::deleteById($id);
- return true;
- }
- //根据花材分类ID,获取itemIds
- public static function getItemIdsByClassId($sjId, $classId)
- {
- $where = [
- 'classId' => $classId,
- 'sjId' => $sjId,
- ];
- $data = self::getAllList("itemId", $where);
- if ($data) {
- $data = array_column($data, 'itemId');
- }
- return $data;
- }
- //获取当前供货商下的所有item
- public static function getGhsItemAll($sjId, $select = "*")
- {
- $where = [
- 'sjId' => $sjId
- ];
- $data = self::getAllList($select, $where);
- return $data;
- }
- //根据拼音名称,获取itemIds
- public static function getItemIdsByPyName($pyName)
- {
- //统一转小写
- $pyName = strtolower($pyName);
- $where = ['py' => $pyName];
- $data = xhItemService::getAllByCondition($where, null, 'id');
- if ($data) {
- $data = array_column($data, 'id');
- }
- return $data;
- }
- //获取某个花材的信息 lqh 2021.1.28
- public static function getItemData($itemId, $sjId)
- {
- return self::getByCondition(['itemId' => $itemId, 'sjId' => $sjId]);
- }
- //修改某个花材的成本价(采购之后要用到) lqh 2021.1.28 (废弃不用,更新product)
- public static function changeCost($itemId, $sjId, $cost)
- {
- return self::updateByCondition(['itemId' => $itemId, 'sjId' => $sjId], ['cost' => $cost]);
- }
- //获取itemId=>classId
- public static function getItemIdClassIdMap($sjId)
- {
- $map = [];
- $itemData = self::getGhsItemAll($sjId, "itemId,classId");
- foreach ($itemData as $v) {
- $map[$v['itemId']] = $v['classId'];
- }
- return $map;
- }
- }
|