$params['name'], 'py' => $params['py'] ?? '', 'number' => $params['number'], 'spec' => $params['spec'], 'class' => $params['class'], 'brand' => $params['brand'] ?? '', 'unit' => $params['unit'], 'buy' => $params['buy'], 'sell' => $params['sell'] ?? '', 'retail' => $params['retail'] ?? '', 'code' => $params['code'] ?? '', 'warehouse' => $params['warehouse'], 'location' => $params['location'] ?? '', 'stocktip' => $params['stocktip'], 'imgs' => $params['imgs'], 'details' => $params['details'] ? implode(',', $params['details']) : '', 'data' => $params['data'] ?? '', 'more' => $params['more'] ?? '', 'sort' => $params['sort'] ?? '', 'sys_labels' => $sys_labels, ]); Db::commit(); return true; } catch (\Exception $e) { Db::rollback(); self::setError($e->getMessage()); return false; } } /** * @notes 编辑商品列表 * @param array $params * @return bool * @author likeadmin * @date 2024/04/23 11:28 */ public static function edit(array $params): bool { Db::startTrans(); try { $sys_labels = ''; self::updateGoodsclass($params['class']); Goods::where('id', $params['id'])->update([ 'name' => $params['name'], 'py' => $params['py'] ?? '', 'number' => $params['number'], 'spec' => $params['spec'], 'class' => $params['class'], 'brand' => $params['brand'] ?? '', 'unit' => $params['unit'], 'buy' => $params['buy'], 'sell' => $params['sell'] ?? '', 'retail' => $params['retail'] ?? '', 'code' => $params['code'] ?? '', 'warehouse' => $params['warehouse'], 'location' => $params['location'] ?? '', 'stocktip' => $params['stocktip'], 'imgs' => $params['imgs'], 'details' => $params['details'] ? implode(',', $params['details']) : '', 'data' => $params['data'] ?? '', 'more' => $params['more'] ?? '', 'sort' => $params['sort'] ?? '', 'sys_labels' => $sys_labels, ]); Db::commit(); return true; } catch (\Exception $e) { Db::rollback(); self::setError($e->getMessage()); return false; } } /** * @notes 删除商品列表 * @param array $params * @return bool * @author likeadmin * @date 2024/04/23 11:28 */ public static function delete(array $params): bool { return Goods::destroy($params['id']); } /** * @notes 获取商品列表详情 * @param $params * @return array * @author likeadmin * @date 2024/04/23 11:28 */ public static function detail($params): array { $data = Goods::findOrEmpty($params['id']); if (!empty($data['sys_labels'])) { $goodslabel = GoodsLabel::where('id', 'in', trim($data['sys_labels'], ','))->column('name'); $data['sys_labels_text'] = implode(',', $goodslabel); } else { $data['sys_labels_text'] = ''; } return $data->toArray(); } /** * @notes 设置标签 * @param $params * @return bool * @date 2024/04/23 11:28 */ public static function setLabel($params) { try { $value = $params['sys_labels']; if (!empty($value)) { if (!is_array($value)) { $value = ',' . $value . ','; } else { $value = ',' . implode(',', $value) . ','; } } Goods::where('id', $params['id'])->update(['sys_labels' => $value]); return true; } catch (\Exception $e) { self::setError($e->getMessage()); return false; } } /** * 更新商品分类 */ public static function updateGoodsclass($id,$type=0) { $pid = Goodsclass::where('id', $id)->value('pid'); if ($pid) { $goodsclass = Goodsclass::where('id', $pid)->field('pid,children')->find(); if ($goodsclass) { if (count($goodsclass['children']) >= 1) { if (!in_array($id, $goodsclass['children'])) { $arr = $goodsclass['children']; array_push($arr, $id); Goodsclass::where('id', $pid)->update(['children' => $arr]); if ($goodsclass['pid'] != 0 &&$type==0) { self::updateGoodsclass($pid,1); } } } } } } }