field($field) ->where(['id'=>$goods_id,'status'=>1,'is_deleted'=>0]) ->find($goods_id); if(empty($detail)) $this->error('商品已下架'); $detail['month_sell'] = Db::table('goods_sell_info') ->where(['goods_id'=>$goods_id]) ->where('create_at','> time',date('Y-m-d H:i:s',strtotime('-1 month'))) ->count(); $detail['is_collect'] = Db::table('goods_collect')->where(['user_id'=>$this->uid,'goods_id'=>$goods_id])->count(); $this->success('oK',$detail); } /** * @title 获取商品列表 * @desc 获取商品列表 * @author qc * @url /api/Expedite/getGoodsList * @method GET * @header name:Authorization require:1 desc:Token * @param name:goods_name type:string require:0 default:-- desc:商品名称 * @param name:is_integral type:int require:0 default:0 desc:0商城商品,1积分商品 * @param name:page type:int default:1 desc:页数 * @param name:page_num type:int : default:20 desc:每页数 * @return name:name type:string default:-- desc:商品名称 * @return name:cover type:string default:-- desc:商品封面图 * @return name:desc type:string default:-- desc:商品简述 * @return name:floor_price type:float default:-- desc:最低价量 * @return name:spec type:string default:-- desc:规格详情 * @return name:spec.goods_no 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.price type:string default:-- desc:该货号定价 * @return name:spec.sell_money type:string default:-- desc:该货号售价 * @return name:spec.integral type:string default:-- desc:用多少积分兑换 * @return name:spec.spec_exp type:string default:-- desc:规格 * @return name:first_classify type:int default:-- desc:一级分类id * @return name:second_classify type:int default:-- desc:二级分类id * @return name:detail type:int default:-- desc:商品详情 * @return name:postage type:float default:-- desc:商品运费 * @return name:stock type:float default:-- desc:剩余库存(所有规格总库存) * @return name:is_integral type:int default:-- desc:是否是积分商品 * @return name:integral type:int default:-- desc:用多少积分兑换 * @return name:sell_num type:int default:-- desc:兑换量(销量) * @return name:is_seckill type:int default:-- desc:是否是秒杀商品(0非秒杀,1秒杀商品,积分商品忽略is_seckill字段) * @return name:seckill_start type:string default:-- desc:秒杀开始时间(is_seckill=0时忽略) * @return name:seckill_end type:string default:-- desc:秒杀结束时间(is_seckill=0时忽略) * @return name:freight_type type:int default:-- desc:快递方式(0固定运费,1运费模板) * @return name:freight_id type:int default:-- desc:运费模板id(freight_type=0时忽略) * @return name:postage type:float default:-- desc:商品运费(freight_type=1时忽略) * @return name:level type:int default:-- desc:最低等级限制 */ public function getGoodsList() { $sel_where = []; $sel_where[] = ['status','=',1]; $sel_where[] = ['is_deleted','=',0]; if(input('goods_name')) $sel_where[] = ['name','like',"%".input('goods_name')."%"]; if(input('is_integral',0)) $sel_where[] = ['is_integral','=',input('is_integral')]; $field = 'id,name,cover,desc,floor_price,spec,first_classify,second_classify,detail,stock,is_integral,integral,is_seckill,seckill_start,seckill_end,freight_type,freight_id,postage,level'; $list = Db::table('store_goods') ->field($field) ->where($sel_where) ->order('sort desc , id desc ') ->limit($this->off_set,$this->page_num) ->select(); foreach ($list as &$value) { $value['sell_num'] = Db::table('goods_sell_info')->where(['goods_id'=>$value['id']])->sum('num'); } $this->success('ok',['list'=>$list]); } /** * @title 获取系统设置(用户须知 && 隐私协议&&积分规则 ) * @desc 获取系统设置(用户须知 && 隐私协议&&积分规则 ) * @author qc * @url /api/Expedite/getSysConfig * @method GET * @param name:type type:string require:0 default:0 desc:获取系统设置类型(0用户须知,1隐私协议,2积分规则 ) * @return name:set_info type:string default:-- desc:设置详情 */ public function getSysConfig() { $type = input('get.type',0); $con_name =['agreement','privacy_policy','integral_intro']; $data = [ 'set_info'=>htmlspecialchars_decode(sysconf($con_name[$type])), ]; $this->success('获取成功',$data); } /** * @title 获取平台设置 * @desc 获取平台设置 * @author qc * @url /api/Expedite/getPlatFormSet * @method GET * @return name:login_header type:string default:-- desc:授权登录头像 * @return name:login_title type:string default:-- desc:授权登录标题 * @return name:fun_poster type:string default:-- desc:粉丝海报 * @return name:share_integral type:string default:-- desc:每次分享活得积分 * @return name:max_integral type:string default:-- desc:每日分享活得积分上限 * @return name:live_preview type:string default:-- desc:看直播预告积分奖励 * @return name:share_poster type:string default:-- desc:分享海报 * @return name:integral_top_image type:string default:-- desc:积分商城顶部图片 * @return name:index_image type:string default:-- desc:首页弹窗 */ public function getPlatFormSet(){ $con_name =['login_header','login_title','fun_poster','share_integral','max_integral','live_preview','share_poster','integral_top_image','index_image']; $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/getLiveBanner * @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 getLiveBanner() { $num = input('get.num',5); $list = Db::table('live_banner') ->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/getIndexLive * @method GET * @header name:Authorization require:1 desc:Token * @return name:info type:array default:-- desc:直播设置详情 * @return name:info.id type:int default:-- desc:id * @return name:info.name type:string default:-- desc:直播标题 * @return name:info.desc type:string default:-- desc:直播简介 * @return name:info.cover type:string default:-- desc:直播封面 * @return name:info.start_at type:string default:-- desc:直播开始时间 * @return name:info.status type:string default:-- desc:直播状态(1直播中,2未开始,3已结束) * @return name:info.link type:string default:-- desc:跳转链接 */ public function getIndexLive() { $info = Db::table('store_live') ->field('id,name,desc,cover,start_at,status,link') ->where('status','=',2) ->where('start_at','> time',date('Y-m-d H:i:s')) ->where('is_deleted','=',0) ->order('sort desc,id desc') ->find(); if(empty($info)) { $info = Db::table('store_live') ->field('id,name,desc,cover,start_at,status,link') ->where('status','in',[1,3]) ->where('is_deleted','=',0) ->order('sort desc,id desc') ->find(); } $this->success('ok',['info'=>$info]); } /** * @title 获取首页直播预告(分享) * @desc 获取首页直播预告(分享) * @author qc * @url /api/Expedite/getIndexLiveById * @method GET * @header name:Authorization require:1 desc:Token * @param name:id type:int require:1 default:-- desc:直播id * @return name:info type:array default:-- desc:直播设置详情 * @return name:info.id type:int default:-- desc:id * @return name:info.name type:string default:-- desc:直播标题 * @return name:info.desc type:string default:-- desc:直播简介 * @return name:info.cover type:string default:-- desc:直播封面 * @return name:info.start_at type:string default:-- desc:直播开始时间 * @return name:info.status type:string default:-- desc:直播状态(1直播中,2未开始,3已结束) * @return name:info.link type:string default:-- desc:跳转链接 */ public function getIndexLiveById() { $id = input('get.id',0); $info = Db::table('store_live') ->field('id,name,desc,cover,start_at,status,link') ->find($id); $this->success('ok',['info'=>$info]); } /** * @title 获取直播列表 * @desc 获取直播列表 * @author qc * @url /api/Expedite/getLiveList * @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:status type:int default:0 desc:直播状态 (0全部,1直播中,2未开始,3 已结束) * @return name:id type:int default:-- desc:id * @return name:name type:string default:-- desc:直播标题 * @return name:desc type:string default:-- desc:直播简介 * @return name:cover type:string default:-- desc:直播封面 * @return name:start_at type:string default:-- desc:直播开始时间 * @return name:status type:string default:-- desc:直播状态(1直播中,2未开始,3已结束) * @return name:link type:string default:-- desc:跳转链接 */ public function getLiveList() { $where = []; $where['is_deleted'] = 0; if(input('status',0)) $where['status'] = input('status'); $list = Db::table('store_live') ->field('id,name,desc,cover,status,start_at,link') ->where($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/AccountLink * @method GET * @header name:Authorization require:1 desc:Token * @return name:account_link type:string default:-- desc:跳转链接 */ public function AccountLink() { $account_link = Db::table('platform_set')->where('name','account_link')->value('content'); $this->success('ok',['account_link'=>$account_link]); } }