leftJoin('goods g','g.id = gu.goods_id') ->leftJoin('shop s','s.id = g.shop_id') ->field('gu.id,gu.goods_id,g.name as goods_name,g.image as goods_image,s.name as shop_name,s.logo,gu.stock,g.max_price,gu.activity_price,gu.status') ->where($where) ->where('gu.del','1') ->group('gu.goods_id') ->order(['gu.id' => 'desc']) ->paginate([ 'page' => $get['page'], 'list_rows' => $get['limit'], 'var_page' => 'page' ]) ->toArray(); if($lists){ foreach ($lists['data'] as &$item){ $item['goods_image'] = UrlServer::getFileUrl($item['goods_image']); } } return ['count'=>$lists['total'], 'lists'=>$lists['data']]; } public static function add($post){ try{ $now = time(); $activity_sn = $now.rand(1000, 9999); foreach ($post['item'] as $item){ $add_data[] =[ 'goods_id' => $item['goods_id'], 'item_id' => $item['item_id'], 'activity_price' => $item['price'], 'stock'=>$item['stock'], 'del' => 1, 'activity_sn' =>$activity_sn, 'create_time' => $now, 'update_time' => $now, ]; } $GroupbuyGoods = new GroupbuyGoods(); $GroupbuyGoods->saveAll($add_data); return true; }catch(\Exception $e) { self::$error = $e->getMessage(); return false; } } public static function edit($post){ Db::startTrans(); try{ foreach ($post['item'] as $goods){ $review_status = GroupbuyGoods::where('id', $goods['id'])->value('status'); $update_data = [ 'activity_price' => $goods['activity_price'], 'stock' => $goods['stock'], ]; GroupbuyGoods::where(['id'=>$goods['id']])->update($update_data); } Db::commit(); return true; }catch(\Exception $e) { self::$error = $e->getMessage(); Db::rollback(); return false; } } public static function getEditGoods($id){ $groupGoods = GroupbuyGoods::alias('gu') ->join('goods_item gi','gu.item_id = gi.id') ->where(['del'=>1,'gu.goods_id'=>$id]) ->field('gu.*,gi.image,gi.spec_value_str,gi.price as goods_price') ->select() ->toArray(); $goods_id = $groupGoods[0]['goods_id']; $goods = Goods::where(['del'=>0,'id'=>$goods_id])->field('image,name')->find(); foreach ($groupGoods as &$item){ $item['name'] = $goods['name']; if(!$item['image']){ $item['image'] = $goods['image']; } } return $groupGoods; } public static function del($id){ try{ $update_data = [ 'update_time' => time(), 'del' => 0, ]; GroupbuyGoods::where([ 'del'=>1, 'goods_id'=>$id, ])->update($update_data); return true; }catch(\Exception $e) { self::$error = $e->getMessage(); return false; } } public static function switchStatus($post){ try{ $update_data = [ 'update_time' => time(), 'status' => $post['is_show'], ]; GroupbuyGoods::where([ 'goods_id'=>$post['id'], ])->update($update_data); return true; }catch(\Exception $e) { self::$error = $e->getMessage(); return false; } } //获取商品列表 public static function getGoodsList($get,$is_item = false){ $where = [ ['del', '=', GoodsEnum::DEL_NORMAL], // 未删除 ['audit_status', '=', GoodsEnum::AUDIT_STATUS_OK], // 审核通过 ['type', '=', GoodsEnum::TYPE_ACTUAL] // 实物商品才参与 ]; if (isset($get['keyword']) && $get['keyword']) { $where[] = ['name', 'like', '%' . $get['keyword'] . '%']; } if(!empty($get['cid'])) { $where[] = ['shop_cate_id', '=', $get['cid']]; } $goods_count = Goods::where($where)->count(); $goods_list = Goods::where($where) ->page($get['page'], $get['limit']) ->column('*','id'); foreach ($goods_list as &$item) { $item['goods_item'] = []; $item['price'] = '¥'.$item['min_price']; if($item['max_price'] != $item['min_price']){ $item['price'] = '¥'.$item['min_price'].'~'.'¥'.$item['max_price']; } $item['create_time_desc'] = date('Y-m-d H:i:s',$item['create_time']); $item['image'] = UrlServer::getFileUrl($item['image']); } if($is_item){ $goods_ids = array_keys($goods_list); $goods_item = GoodsItem::where(['goods_id'=>$goods_ids])->select()->toArray(); foreach ($goods_item as $items){ if(isset($goods_list[$items['goods_id']])){ if($items['image']){ $items['image'] = UrlServer::getFileUrl($items['image']); }else{ $items['image'] = $goods_list[$items['goods_id']]['image']; } $goods_list[$items['goods_id']]['goods_item'][] = $items; } } } return ['count' => $goods_count, 'list' =>array_values($goods_list)]; } /** * 店铺商品分类 */ public static function listAll() { $lists = GoodsCategory::field('id,name')->where([ 'del'=>0, ])->order('id', 'asc')->select(); return empty($lists) ? [] : $lists->toArray(); } public static function getConfig() { $data = GroupbuyConfig::select(); $config = array(); if (!empty($data)) { $result = $data->toArray(); foreach ($result as &$v) { $config[$v['name']] = $v['value']; } } return $config; } // 设置配置 public static function setConfig($post) { try { Db::startTrans(); $time = time(); $data = [ ['name' => 'status', 'value' => (isset($post['status']) && $post['status'] == 'on') ? 1 : 0, 'update_time' => $time], ['name' => 'end_time', 'value' => $post['end_time'], 'update_time' => $time], ['name' => 'rule', 'value' => $post['rule'], 'update_time' => $time], ['name' => 'service', 'value' => str_replace(',', ',', $post['service']), 'update_time' => $time], ]; foreach ($data as $item) { Db::name('groupbuy_config')->replace()->save($item); } Db::commit(); return true; } catch (\Exception $e) { Db::rollback(); self::$error = $e->getMessage(); return false; } } }