Files
addons
app_download_files
extend
hyhproject
admin
app
common
home
home2
mobile2
wechat2
behavior
common
conf
controller
model
Articles.php
Base.php
Goods.php
GoodsAppraises.php
GoodsCats.php
Index.php
Orders.php
Payments.php
Shops.php
Users.php
validate
view
.htaccess
command.php
mobile
oss
static
thinkphp
upload
vendor
wxtmp
.gitignore
.htaccess
.user.ini
404.html
H5436787D.wgt
admin.php
app-release.apk
app_download.html
cash.lock
demo.php
get_startup.php
get_version.php
get_version_new.php
index.html
index.php
reg.lock
robots.txt
qlg.tsgz.moe/hyhproject/wechat2/model/Shops.php
2019-09-06 23:53:10 +08:00

135 lines
6.0 KiB
PHP
Executable File

<?php
namespace wstmart\wechat\model;
use wstmart\common\model\Shops as CShops;
use think\Db;
/**
* ============================================================================
* 门店类
*/
class Shops extends CShops{
/**
* 店铺街列表
*/
public function pageQuery($pagesize){
$catId = (int)input("id");
$keyword = input("keyword");
$condition = input("condition");
$desc = input("desc");
$datas = array('sort'=>array('1'=>'ss.totalScore/ss.totalUsers'),'desc'=>array('desc','asc'));
$rs = $this->alias('s');
$where = [];
$where['s.dataFlag'] = 1;
$where['s.shopStatus'] = 1;
$where['s.applyStatus'] = 2;
if($keyword!='')$where['s.shopName'] = ['like','%'.$keyword.'%'];
if($catId>0){
$rs->join('__CAT_SHOPS__ cs','cs.shopId = s.shopId','left');
$where['cs.catId'] = $catId;
}
$order = ['s.shopId'=>'asc'];
if($condition>0){
$order = [$datas['sort'][$condition]=>$datas['desc'][$desc]];
}
$page = $rs->join('__SHOP_SCORES__ ss','ss.shopId = s.shopId','left')
->where($where)->order($order)
->field('s.shopId,s.shopImg,s.shopName,s.shopCompany,ss.totalScore,ss.totalUsers,ss.goodsScore,ss.goodsUsers,ss.serviceScore,ss.serviceUsers,ss.timeScore,ss.timeUsers,s.areaIdPath')
->paginate($pagesize)->toArray();
foreach ($page['Rows'] as $key =>$v){
//商品列表
$goods = db('goods')->where(['dataFlag'=> 1,'isSale'=>1,'goodsStatus'=> 1,'shopId'=> $v["shopId"]])->field('goodsId,goodsName,shopPrice,goodsImg')
->order('saleTime desc')->limit(4)->select();
$page['Rows'][$key]['goods'] = $goods;
}
if(empty($page['Rows']))return $page;
$shopIds = [];
$areaIds = [];
foreach ($page['Rows'] as $key =>$v){
$shopIds[] = $v['shopId'];
$tmp = explode('_',$v['areaIdPath']);
$areaIds[] = $tmp[1];
$page['Rows'][$key]['areaId'] = $tmp[1];
//总评分
$page['Rows'][$key]['totalScore'] = WSTScore($v["totalScore"]/3, $v["totalUsers"]);
$page['Rows'][$key]['goodsScore'] = WSTScore($v['goodsScore'],$v['goodsUsers']);
$page['Rows'][$key]['serviceScore'] = WSTScore($v['serviceScore'],$v['serviceUsers']);
$page['Rows'][$key]['timeScore'] = WSTScore($v['timeScore'],$v['timeUsers']);
}
$rccredMap = [];
$goodsCatMap = [];
$areaMap = [];
//认证、地址、分类
if(!empty($shopIds)){
$rccreds = Db::name('shop_accreds')->alias('sac')->join('__ACCREDS__ a','a.accredId=sac.accredId and a.dataFlag=1','left')
->where('shopId','in',$shopIds)->field('sac.shopId,accredName,accredImg')->select();
foreach ($rccreds as $v){
$rccredMap[$v['shopId']][] = $v;
}
$goodsCats = Db::name('cat_shops')->alias('cs')->join('__GOODS_CATS__ gc','cs.catId=gc.catId and gc.dataFlag=1','left')
->where('shopId','in',$shopIds)->field('cs.shopId,gc.catName')->select();
foreach ($goodsCats as $v){
$goodsCatMap[$v['shopId']][] = $v['catName'];
}
$areas = Db::name('areas')->alias('a')->join('__AREAS__ a1','a1.areaId=a.parentId','left')
->where('a.areaId','in',$areaIds)->field('a.areaId,a.areaName areaName2,a1.areaName areaName1')->select();
foreach ($areas as $v){
$areaMap[$v['areaId']] = $v;
}
}
foreach ($page['Rows'] as $key =>$v){
$page['Rows'][$key]['accreds'] = (isset($rccredMap[$v['shopId']]))?$rccredMap[$v['shopId']]:[];
$page['Rows'][$key]['catshops'] = (isset($goodsCatMap[$v['shopId']]))?implode(',',$goodsCatMap[$v['shopId']]):'';
$page['Rows'][$key]['areas']['areaName1'] = (isset($areaMap[$v['areaId']]['areaName1']))?$areaMap[$v['areaId']]['areaName1']:'';
$page['Rows'][$key]['areas']['areaName2'] = (isset($areaMap[$v['areaId']]['areaName2']))?$areaMap[$v['areaId']]['areaName2']:'';
}
return $page;
}
/**
* 获取卖家中心信息
*/
public function getShopSummary(){
$shopId = (int)input('shopId',1);
$shop = $this->alias('s')->join('__SHOP_SCORES__ cs','cs.shopId = s.shopId','left')->join('__SHOP_CONFIGS__ sc','sc.shopId = s.shopId','left')
->where(['s.shopId'=>$shopId,'dataFlag'=>1])
->field('s.shopId,shopImg,shopName,shopkeeper,shopAddress,shopQQ,shopTel,serviceStartTime,serviceEndTime,isInvoice,invoiceRemarks,cs.*,sc.shopBanner')
->find();
//评分
$scores['totalScore'] = WSTScore($shop['totalScore'],$shop['totalUsers']);
$scores['goodsScore'] = WSTScore($shop['goodsScore'],$shop['goodsUsers']);
$scores['serviceScore'] = WSTScore($shop['serviceScore'],$shop['serviceUsers']);
$scores['timeScore'] = WSTScore($shop['timeScore'],$shop['timeUsers']);
WSTUnset($shop, 'totalUsers,goodsUsers,serviceUsers,timeUsers');
$shop['scores'] = $scores;
//认证
$accreds = $this->shopAccreds($shopId);
$shop['accreds'] = $accreds;
return ['shop'=>$shop];
}
/**
* 自营店铺楼层
*/
public function getFloorData(){
$limit = (int)input('post.currPage');
$cacheData = cache('WX_SHOP_FLOOR'.$limit);
if($cacheData)return $cacheData;
$rs = Db::name('shop_cats')->where(['dataFlag'=>1,'isShow'=>1,'parentId'=>0,'shopId'=>1])->field('catId,catName')->order('catSort asc')->limit($limit,1)->select();
if($rs){
$rs= $rs[0];
$goods = Db::name('goods')->where('shopCatId1','=',$rs['catId'])->where(['dataFlag'=>1,'goodsStatus'=>1])->field('goodsId,goodsName,goodsImg,shopPrice,marketPrice,saleNum')->order('isHot desc')->limit(4)->select();
$rs['goods'] = $goods;
$rs['currPage'] = $limit;
}
cache('WX_SHOP_FLOOR'.$limit,$rs,86400);
return $rs;
}
/**
* 根据订单id 获取店铺名称
*/
public function getShopName($oId){
return $this->alias('s')
->join('__ORDERS__ o',"s.shopId=o.shopId",'inner')
->where("o.orderId=$oId")
->value('s.shopName');
}
}