field($field) ->where(['id'=>$goods_id,'status'=>1,'is_deleted'=>0]) ->find($goods_id); if(empty($detail)) $this->error('商品已下架'); $detail['before_num'] = $detail['special_point']; $detail['after_num'] =$detail['base_stock'] - $detail['special_point']; $detail['is_collect'] = Db::table('goods_collect')->where(['user_id'=>$this->uid,'goods_id'=>$goods_id])->count(); $this->success('oK',['goods_info'=>$detail,]); } /** * @title 获取商品列表(商城商品) * @desc 获取商品列表(商城商品) * @author qc * @url /api/Expedite/getGoodsList * @method GET * @header name:Authorization require:1 desc:Token * @param name:page type:int default:1 desc:页数 * @param name:page_num type:int : default:20 desc:每页数 * @param name:goods_name type:string require:0 default:-- desc:商品名称 * @param name:cate_id type:int require:0 default:0 desc:分类id * @return name:name type:string default:-- desc:商品名称 * @return name:cover type:string default:-- desc:商品封面图 * @return name:desc type:string default:-- desc:商品简述 * @return name:goods_price type:float default:-- desc:价格 * @return name:spec type:string default:-- desc:规格详情 * @return name:spec.title type:string default:-- desc:标题 * @return name:spec.award_name type:string default:-- desc:名称 * @return name:spec.spec_img type:string default:-- desc:封面 * @return name:spec.store_num type:string default:-- desc:剩余库存 * @return name:spec.base_num type:string default:-- desc:初始库存 * @return name:spec.crystal type:string default:-- desc:明信片价值 * @return name:spec.color type:int default:-- desc:0黑色,1红色,2金色 * @return name:first_classify type:int default:-- desc:一级分类id * @return name:detail type:int default:-- desc:商品详情 * @return name:stock type:float default:-- desc:剩余库存 * @return name:base_stock type:float default:-- desc:初始库存 * @return name:end_time type:string default:-- desc:结束时间 * @return name:goods_info.special_ type:array default:-- desc:特殊奖励设置(前后场两个奖励) * @return name:goods_info.special_award.title type:string default:-- desc:标题 * @return name:goods_info.special_award.goods type:string default:-- desc:商品名 * @return name:goods_info.special_award.cover type:string default:-- desc:图片 * @return name:goods_info.special_award.crystal type:string default:-- desc:明信片 * @return name:goods_info.special_award.is_over type:string default:-- desc:奖励是否完成 * @return name:msg_num type:int default:-- desc:消息未读数量 */ public function getGoodsList() { $sel_where = []; $sel_where[] = ['status','=',1]; $sel_where[] = ['is_deleted','=',0]; /* $sel_where[] = ['end_time','> time',date("Y-m-d H:i:s")];*/ if(input('goods_name')) $sel_where[] = ['name','like',"%".input('goods_name')."%"]; if(input('cate_id',0)) $sel_where[] = ['first_classify','=',input('cate_id')]; $field = 'id,name,cover,desc,goods_price,spec,first_classify,detail,stock,base_stock,end_time,special_award'; $list = Db::table('store_goods') ->field($field) ->where($sel_where) ->order('sort desc , id desc ') ->limit($this->off_set,$this->page_num) ->select(); $msg_num = Db::table('user_message') ->where('user_id',$this->uid) ->where('is_read',0) ->count(); $this->success('ok',['list'=>$list,'msg_num'=>$msg_num ? $msg_num :0]); } /** * @title 获取商品分类(商城商品) * @desc 获取商品分类(商城商品) * @author qc * @url /api/Expedite/getGoodCate * @method GET * @header name:Authorization require:1 desc:Token * @return name:id type:array default:-- desc:商品详情 * @return name:title type:string default:-- desc:分类名称 */ public function getGoodCate() { $list = Db::table('store_goods_cate') ->where('pid',0) ->where('status',1) ->where('is_deleted',0) ->field('id,title') ->order('sort desc , id desc') ->select(); $this->success('ok',['list'=>$list]); } /** * @title 获取首页轮播图 * @desc 获取首页轮播图 * @author qc * @url /api/Expedite/getBanner * @method GET * @header name:Authorization require:1 desc:Token * @param name:num type:int default:5 desc:查询数量 * @return name:name type:srting default:-- desc:标题 * @return name:cover type:srting default:-- desc:图片路径 * @return name:link type:srting default:-- desc:跳转地址 */ public function getBanner() { $num = input('get.num',20); $list = Db::table('store_banner') ->field('id,name,cover,link') ->where(['is_deleted'=>0]) ->limit(0,$num) ->order('sort desc ,id desc') ->select(); $this->success('ok',['list'=>$list]); } /** * @title 获取订单列表(商城商品) * @desc 获取订单列表(商城商品) * @author qc * @url /api/Expedite/getOrderListByGoodsId * @method GET * @header name:Authorization require:1 desc:Token * @param name:page type:int default:1 desc:页数 * @param name:page_num type:int : default:20 desc:每页数 * @param name:goods_id type:string require:1 default:-- desc:商品id * @return name:create_at type:string default:-- desc:时间 * @return name:goods_name type:string default:-- desc:商品 * @return name:name type:string default:-- desc:会员名称 * @return name:headimg type:string default:-- desc:会员头像 */ public function getOrderListByGoodsId() { $goods_id = input('goods_id',0); $list = Db::table('goods_order') ->alias('o') ->field('o.create_at,o.goods_name,m.name,m.headimg') ->join('store_member m','o.uid = m.id') ->where('o.goods_id',$goods_id) ->where('o.pay_state',1) ->order('o.id desc ') ->limit($this->off_set,$this->page_num) ->select(); $this->success('ok',['list'=>$list]); } /** * @title 获取商品中奖详情 * @desc 获取商品中奖详情 * @author qc * @url /api/Expedite/getAwardDetailByGoodsId * @method GET * @header name:Authorization require:1 desc:Token * @param name:page type:int default:1 desc:页数 * @param name:page_num type:int : default:20 desc:每页数 * @param name:goods_id type:string require:1 default:-- desc:商品id * @return name:create_at type:string default:-- desc:时间 * @return name:award_name type:string default:-- desc:奖品标题 * @return name:award_cover type:string default:-- desc:奖品图片 * @return name:name type:string default:-- desc:会员名称 * @return name:headimg type:string default:-- desc:会员头像 * @return name:is_special type:int default:-- desc:是否是特殊奖励 * @return name:is_last type:int default:-- desc:场终奖励 * @return name:color_num type:int default:-- desc:0黑色,1红色,2金色 * @return name:code type:int default:100 desc:编码 * @return name:title type:int default:--- desc:标题 */ public function getAwardDetailByGoodsId() { $goods_id = input('goods_id',0); $goods_code = Db::table('magic_draw')->field('id') ->where('goods_id',$goods_id) ->where('is_special',0) ->where('is_last',0) ->order('id asc') ->select(); foreach ($goods_code as $k=>&$c) { $c['k'] = $k+1; } $goods_code = array_column($goods_code,null,'id'); $list = Db::table('magic_draw') ->alias('d') ->field('d.id,d.award_name,d.award_cover,d.create_at,m.name,m.headimg,d.is_special,is_last,title,color_num') ->join('store_member m','d.user_id = m.id') ->where('d.goods_id',$goods_id) ->order('d.is_special desc,d.is_last desc ,d.id desc ') ->limit($this->off_set,$this->page_num) ->select(); foreach ($list as &$lv) { $lv['code'] = isset($goods_code[$lv['id']])?$goods_code[$lv['id']]['k']:' '; } $this->success('ok',['list'=>$list]); } /** * @title 获取商品详情(兑换商品) * @desc 获取商品详情(兑换商品) * @author qc * @url /api/Expedite/getExchangeGoodsDetail * @method GET * @header name:Authorization require:1 desc:Token * @param name:goods_id type:int require:1 default:0 desc:兑换商品id * @return name:name type:string default:-- desc:商品名称 * @return name:cover type:string default:-- desc:商品封面图 * @return name:desc type:string default:-- desc:商品简述 * @return name:crystal type:int default:-- desc:售价(明信片||余额) * @return name:first_classify type:int default:-- desc:一级分类id * @return name:detail type:int default:-- desc:商品详情 * @return name:stock type:float default:-- desc:剩余库存 */ public function getExchangeGoodsDetail() { $goods_id = input('goods_id'); $field = 'id,name,cover,desc,first_classify,detail,stock,crystal'; $detail = Db::table('exchange_goods') ->field($field) ->where(['id'=>$goods_id,'status'=>1,'is_deleted'=>0]) ->find($goods_id); if(empty($detail)) $this->error('商品已下架'); $this->success('oK',$detail); } /** * @title 获取商品列表(兑换商品) * @desc 获取商品列表(兑换商品) * @author qc * @url /api/Expedite/getExchangeGoodsList * @method GET * @header name:Authorization require:1 desc:Token * @param name:page type:int default:1 desc:页数 * @param name:page_num type:int : default:20 desc:每页数 * @param name:goods_name type:string require:0 default:-- desc:商品名称 * @param name:cate_id type:int require:0 default:0 desc:分类id * @return name:name type:string default:-- desc:商品名称 * @return name:cover type:string default:-- desc:商品封面图 * @return name:desc type:string default:-- desc:商品简述 * @return name:crystal type:int default:-- desc:售价(明信片||余额) * @return name:first_classify type:int default:-- desc:一级分类id * @return name:detail type:int default:-- desc:商品详情 * @return name:stock type:float default:-- desc:剩余库存 */ public function getExchangeGoodsList() { $sel_where = []; $sel_where[] = ['status','=',1]; $sel_where[] = ['is_deleted','=',0]; if(input('goods_name')) $sel_where[] = ['name','like',"%".input('goods_name')."%"]; if(input('cate_id',0)) $sel_where[] = ['first_classify','=',input('cate_id')]; $field = 'id,name,cover,desc,first_classify,detail,stock,crystal'; $list = Db::table('exchange_goods') ->field($field) ->where($sel_where) ->order('sort desc , id desc ') ->limit($this->off_set,$this->page_num) ->select(); $this->success('ok',['list'=>$list]); } /** * @title 获取平台设置 * @desc 获取平台设置 * @author qc * @url /api/Expedite/getSysConfig * @method GET * @return name:agreement type:string default:-- desc:用户协议 * @return name:purchase_notice type:string default:-- desc:购买须知 * @return name:platform_notice type:string default:-- desc:平台消息 * @return name:invite_rule type:string default:-- desc:邀请规则 */ public function getSysConfig(){ $con_name =['agreement','purchase_notice','platform_notice','invite_rule']; $set = Db::table('system_config')->where('name','in',$con_name)->select(); $ret = []; foreach ($set as $value) { $ret[$value['name']]=$value['value']; } $this->success('获取成功',$ret); } /** * @title 获取商品详情(集市商品) * @desc 获取商品详情(集市商品) * @author qc * @url /api/Expedite/getMarketGoodsDetail * @method GET * @header name:Authorization require:1 desc:Token * @param name:goods_id type:int require:1 default:0 desc:商品id * @return name:id type:int default:-- desc:商品id * @return name:sell_price type:string default:-- desc:售价 * @return name:cover type:string default:-- desc:商品图 * @return name:status type:int default:-- desc:0已下架1正常售卖 * @return name:user_id type:int default:-- desc:售卖商品会员id * @return name:stock type:int default:-- desc:数量 * @return name:sell_price type:int default:-- desc:售价(所有数量的售价) * @return name:crystal type:float default:-- desc:每个价值 * @return name:sell_status type:int default:-- desc:售卖状态1在售2售完3真正支付中 * @return name:pro_info type:array default:-- desc:详情 * @return name:pro_info.num type:int default:-- desc:数量 * @return name:pro_info.case_name type:int default:-- desc:名称 * @return name:pro_info.case_cover type:int default:-- desc:图片 * @return name:pro_info.crystal type:int default:-- desc:明信片 */ public function getMarketGoodsDetail() { $goods_id = input('goods_id',0); $detail = MarketGoods::get(['id'=>$goods_id]); if(empty($detail)) $this->error('商品已下架'); $this->success('oK',['goods_info'=>$detail,]); } /** * @title 获取商品列表(集市商品) * @desc 获取商品列表(集市商品) * @author qc * @url /api/Expedite/getMarketGoodsList * @method GET * @header name:Authorization require:1 desc:Token * @param name:page type:int default:1 desc:页数 * @param name:page_num type:int : default:20 desc:每页数 * @param name:goods_name type:string require:0 default:-- desc:商品名称 * @return name:id type:int default:-- desc:商品id * @return name:sell_price type:string default:-- desc:售价 * @return name:cover type:string default:-- desc:商品图 * @return name:status type:int default:-- desc:0已下架1正常售卖 * @return name:user_id type:int default:-- desc:售卖商品会员id * @return name:stock type:int default:-- desc:数量 * @return name:sell_price type:int default:-- desc:售价(所有数量的售价) * @return name:crystal type:float default:-- desc:每个价值 * @return name:sell_status type:int default:-- desc:售卖状态1在售2售完3真正支付中 * @return name:order_status type:int default:-- desc:0售卖中1已售卖/待发货2待收货3已完成 * @return name:pro_info type:array default:-- desc:详情 * @return name:pro_info.num type:int default:-- desc:数量 * @return name:pro_info.case_name type:int default:-- desc:名称 * @return name:pro_info.case_cover type:int default:-- desc:图片 * @return name:pro_info.crystal type:int default:-- desc:明信片 * @return name:pro_info.headimg type:string default:-- desc:头像 * @return name:pro_info.name type:string default:-- desc:名称 */ public function getMarketGoodsList() { $sql = "SELECT g.*,m.headimg,m.name FROM market_goods as g LEFT JOIN store_member as m ON g.user_id = m.id WHERE g.status = 1 AND g.stock > 0 AND g.sell_status = 1 "; if(input('goods_name')) $sel_where[] = ['pro_info','like',"%".input('goods_name')."%"]; if($sel_name = input('goods_name')) $sql .= " AND (g.name_str LIKE '%$sel_name%' OR m.name LIKE '%$sel_name%' ) "; $sql .= " ORDER BY g.id desc LIMIT $this->off_set,$this->page_num"; $list = Db::query($sql); $this->success('ok',['list'=>$list]); } }