643 lines
27 KiB
PHP
Executable File
643 lines
27 KiB
PHP
Executable File
<?php
|
||
namespace wstmart\common\model;
|
||
use wstmart\home\model\ShopConfigs;
|
||
use wstmart\common\model\Table as TM;
|
||
use think\Db;
|
||
/**
|
||
* ============================================================================
|
||
* 门店类
|
||
*/
|
||
class Shops extends Base{
|
||
private $getSpecSetUse = 'userId';
|
||
/**
|
||
* 店铺信息
|
||
*/
|
||
public function shopInfo(){
|
||
$shopId = session('WST_USER.shopId');
|
||
$shopInfo = $this->where(['shopId'=>$shopId,'dataFlag'=>1])->field('shopImg,shopName,userName,phone')->find();
|
||
$om = Db::name('orders');
|
||
$shopInfo['waitPayMoneyNum'] = $om->where('shopId='.$shopId.' AND (orderStatus=0 or orderStatus=1)')->sum('realTotalMoney');//待收款
|
||
$shopInfo['receivedPayMoneyNum'] = $om->where(['shopId'=>$shopId,'orderStatus'=>2])->sum('realTotalMoney');//已收款
|
||
$shopInfo['waitPayNum'] = $om->where(['shopId'=>$shopId,'orderStatus'=>-2])->count();
|
||
$shopInfo['waitConfirmNum'] = $om->where(['shopId'=>$shopId,'orderStatus'=>0,'shopConfirm'=>0])->count();
|
||
$shopInfo['waitDeliverNum'] = $om->where(['shopId'=>$shopId,'orderStatus'=>0,'shopConfirm'=>1])->count();
|
||
$shopInfo['waitReceiveNum'] = $om->where(['shopId'=>$shopId,'orderStatus'=>1])->count();
|
||
$shopInfo['abnormal'] = $om->where('shopId='.$shopId.' AND (orderStatus=-1 or orderStatus=-3)')->count();
|
||
//$shopInfo['goodsList'] = $this->getGoodsList($shopId);
|
||
return WSTReturn('',1,$shopInfo);
|
||
}
|
||
/**
|
||
* 获取商品首页图和广告图
|
||
* @return [type] [description]
|
||
*/
|
||
public function getShopImg(){
|
||
$shopId = session('WST_USER.shopId');
|
||
$shopInfo = $this->alias('s')->where(['s.shopId'=>$shopId,'s.dataFlag'=>1])->field('s.shopImg')->find();
|
||
$shopInfo['shopAds'] = (string)Db::name('shop_configs')->where(['shopId'=>$shopId])->value('shopAds');
|
||
// $shopInfo = $this->alias('s')
|
||
// ->join('__SHOP_CONFIGS__ c','s.shopId=c.shopId')
|
||
// ->where(['s.shopId'=>$shopId,'s.dataFlag'=>1])
|
||
// ->field('s.shopImg,c.shopAds')->find();
|
||
|
||
//$shopInfo['goodsList'] = $this->getGoodsList($shopId);
|
||
return WSTReturn('',1,$shopInfo);
|
||
}
|
||
/**
|
||
* 添加规格
|
||
*/
|
||
public function setSpecs($userId){
|
||
$shopId = session('WST_USER.shopId');
|
||
$specSetId = (int)input('post.id');
|
||
$setName = input('post.setName');
|
||
$specNames = input('post.specNames/a');
|
||
$specItems = input('post.specItems/a');
|
||
$specNamesId = input('post.specNamesId/a');
|
||
$specItemsId = input('post.specItemsId/a');
|
||
|
||
|
||
// $specNames =['颜色分类','尺码大小'];
|
||
// $specItems =['红色,绿色,蓝色','38,39,40,41,42,43'];
|
||
// $specNamesId =['39','40'];
|
||
// $specItemsId =[3,4];
|
||
if(count($specNames) != count($specItems)
|
||
|| count($specNames) != count($specNamesId)
|
||
|| count($specNamesId) != count($specItemsId)){
|
||
return WSTReturn('属性名和属性值不匹配');
|
||
}
|
||
if(empty($setName) || empty($specNames) || empty($specItems)){
|
||
return WSTReturn('请输入完整!');
|
||
}
|
||
$time = time();
|
||
// ["specNames"] => array(2) {
|
||
// [0] => string(6) "颜色"
|
||
// [1] => string(6) "尺码"
|
||
// }
|
||
// ["specItems"] => array(2) {
|
||
// [0] => string(13) "红色,蓝色"
|
||
// [1] => string(14) "39,40,41,42,43"
|
||
// }
|
||
Db::startTrans();
|
||
try{
|
||
$m = new TM();
|
||
if(empty($specSetId)){//新增
|
||
//保存设置的规格总名
|
||
$set_data['setName'] = $setName;
|
||
$set_data['userId'] = $userId;
|
||
$set_data['shopId'] = $shopId;
|
||
$set_data['createTime'] = $time;
|
||
$m->setTable('spec_set');
|
||
$m->insertInfo($set_data);
|
||
$specSetId = $m->getLastInsID();
|
||
}else{//编辑
|
||
$set_data['setName'] = $setName;
|
||
$set_data['createTime'] = $time;
|
||
$m->setTable('spec_set');
|
||
$m->updateInfo(['id'=>$specSetId],$set_data);
|
||
}
|
||
if($specNames){
|
||
//规格名
|
||
$cat_data['userId'] = $userId;
|
||
$cat_data['shopId'] = $shopId;
|
||
$cat_data['specSetId'] = $specSetId;
|
||
$cat_data['createTime'] = date('Y-m-d H:i:s',$time);
|
||
//规格值
|
||
//$item_data['userId'] = $userId;
|
||
$item_data['shopId'] = $shopId;
|
||
$item_data['createTime'] = $time;
|
||
//保存规格名及规格值
|
||
foreach ($specNames as $k => $v) {
|
||
$cat_data['catName'] = $v;
|
||
$m->setTable('spec_cats');
|
||
if($specNamesId[$k] > 0){
|
||
$m->updateInfo(['catId'=>$specNamesId[$k]],$cat_data);
|
||
$catId = $specNamesId[$k] ;
|
||
}else{
|
||
$m->insertInfo($cat_data);
|
||
$catId = $m->getLastInsID();
|
||
}
|
||
|
||
$item_data['catId'] = $catId;
|
||
$item_data['itemNames'] = $specItems[$k];
|
||
|
||
$m->setTable('spec_set_items');
|
||
if($specItemsId[$k] > 0){
|
||
$m->updateInfo(['id'=>$specItemsId[$k]],$item_data);
|
||
}else{
|
||
$m->insertInfo($item_data);
|
||
}
|
||
}
|
||
}
|
||
Db::commit();
|
||
return WSTReturn('规格设置成功',1);
|
||
}catch (\Exception $e) {
|
||
Db::rollback();errLog($e);
|
||
dump($e->getMessage());
|
||
}
|
||
return WSTReturn('规格设置失败,请重试');
|
||
|
||
}
|
||
/**
|
||
* 获名总规格名
|
||
*/
|
||
public function getSpecs(){
|
||
$shopId = session('WST_USER.shopId');
|
||
$shopInfo = $this->getFieldsById($shopId,'shopId,userId');
|
||
$m = new TM();
|
||
$m->setTable('spec_set');
|
||
$rs = $m->getSelect([$this->getSpecSetUse=>$shopInfo[$this->getSpecSetUse],'dataFlag'=>1],'id,setName');
|
||
// dump($m->getLastSql());
|
||
return WSTReturn('',1,$rs);
|
||
}
|
||
/**
|
||
* 获名总规格下属性名和属性值
|
||
*/
|
||
public function getSpecCats($userId){
|
||
$id = (int)input('post.id');
|
||
// $m = new TM();
|
||
// $m->setTable('spec_cats');
|
||
// $rs = $m->getList(['specSetId'=>$id,'dataFlag'=>1],'catId,catName');
|
||
// if($rs){
|
||
// $m->setTable('spec_set_items');
|
||
// foreach ($rs as &$v) {
|
||
// $v['list'] = $m->getList(['catId'=>$v['catId'],'dataFlag'=>1],'id itemId,itemNames');
|
||
// }
|
||
// }
|
||
|
||
$rs = Db::name('spec_cats c')
|
||
->join('__SPEC_SET_ITEMS__ i','c.catId=i.catId')
|
||
->where(['c.specSetId'=>$id,'c.userId'=>$userId,'c.dataFlag'=>1])
|
||
->field('c.catId,c.catName,i.id itemId,i.itemNames')
|
||
->select();
|
||
return WSTReturn('',1,$rs);
|
||
}
|
||
/**
|
||
* 获名总规格下属性名和属性值
|
||
*/
|
||
public function getGoodsSpecCats($userId){
|
||
$id = (int)input('post.id');
|
||
$m = new TM();
|
||
$m->setTable('spec_cats');
|
||
$rs = $m->getList(['specSetId'=>$id,'userId'=>$userId,'dataFlag'=>1],'catId,catName');
|
||
if($rs){
|
||
$m->setTable('spec_set_items');
|
||
foreach ($rs as &$v) {
|
||
$itemInfo = $m->getInfo(['catId'=>$v['catId'],'dataFlag'=>1],'id itemId,itemNames');
|
||
if($itemInfo){
|
||
$v['list'] = explode(',',$itemInfo['itemNames']);
|
||
}
|
||
}
|
||
|
||
}
|
||
|
||
return WSTReturn('',1,$rs);
|
||
}
|
||
/**
|
||
* 添加商品
|
||
*/
|
||
public function addGoods(){
|
||
$shopId = session('WST_USER.shopId');
|
||
$goods_data['shopId'] = $shopId;
|
||
$goodsId = (int)input('post.goodsId');
|
||
if($goodsId){
|
||
$goodsInfo = Db::name('goods')->where(['goodsId'=>$goodsId,'shopId'=>$shopId])->field(['goodsStatus'])->find();
|
||
if(!$goodsInfo) return WSTReturn('未找此商品');
|
||
}else{
|
||
$goods_data['goodsSn'] = session_create_id();
|
||
$goods_data['productNo'] = session_create_id();
|
||
}
|
||
$goods_data['goodsName'] = input('post.goodsName');
|
||
$largeCat = input('post.largeCat');
|
||
$mediumCat = input('post.mediumCat');
|
||
$smallCat = input('post.smallCat');
|
||
$goods_data['goodsCatIdPath'] = $largeCat.'_'.$mediumCat.'_'.$smallCat.'_';
|
||
$goods_data['goodsCatId'] = $smallCat;
|
||
$goods_data['discountRate'] = input('post.discountRate');
|
||
$goods_data['freight'] = input('post.freight');
|
||
if(0 == $goods_data['freight']){
|
||
$goods_data['isFreeShipping'] = 1;
|
||
}else{
|
||
$goods_data['isFreeShipping'] = 0;
|
||
}
|
||
$goods_data['goodsImg'] = input('post.goodsImg');
|
||
$goods_data['gallery'] = input('post.gallery');
|
||
$goods_data['isSale'] = input('post.isSale');
|
||
$goods_data['setNameId'] = (int)input('post.setNameId');
|
||
$goods_data['goodsDesc'] = input('post.goodsDesc');
|
||
$goods_data['goodsOrder'] = (int)input('post.goodsOrder/d');
|
||
|
||
$goods_data['isSpec'] = input('post.isSpec');
|
||
if(WSTConf("CONF.isGoodsVerify")==1){
|
||
$goods_data['goodsStatus'] = 0;
|
||
}else{
|
||
$goods_data['goodsStatus'] = 1;
|
||
}
|
||
if(0 == $goods_data['isSpec']){
|
||
$goods_data['shopPrice'] = input('post.shopPrice');
|
||
if(empty($goods_data['shopPrice'])) return WSTReturn('请输入商品金额!');
|
||
$goods_data['goodsStock'] = (int)input('post.goodsStock');
|
||
|
||
}
|
||
$goods_data['saleTime'] = date('Y-m-d H:i:s');
|
||
$goods_data['createTime'] = date('Y-m-d H:i:s');
|
||
Db::startTrans();
|
||
try{
|
||
$m = new TM();
|
||
$m->setTable('goods');
|
||
if($goodsId){
|
||
if(false === $m->updateInfo(['goodsId'=>$goodsId],$goods_data)){
|
||
return WSTReturn('修改失败!');
|
||
}
|
||
$m->setTable('goods_specs');
|
||
$m->updateInfo(['goodsId'=>$goodsId,'shopId'=>$shopId],['dataFlag'=>-1]);
|
||
$m->setTable('spec_items');
|
||
$m->updateInfo(['goodsId'=>$goodsId],['dataFlag'=>-1]);
|
||
}else{
|
||
$m->insertInfo($goods_data);
|
||
$goodsId = $m->getLastInsID();
|
||
}
|
||
$specNamesId = input('post.specNamesId/a');//分类名ID
|
||
$specItems = input('post.specItems/a');//规格具体名称,如红色,即spec_items表里的名字
|
||
$specItemIds = input('post.specItemIds/a'); //规格具体名称的ID,即spec_items表里的ID
|
||
$specIds = input('post.specIds/a');//商名规格名ID数组,即goods_spec表ID,新增为0
|
||
$specPrice = input('post.specPrice/a');//规格价格
|
||
$specStock = input('post.specStock/a');//规格库存
|
||
$defaultId = (int)input('post.defaultId/d');
|
||
//$uniqueSpecItems = $this->remove_duplicate($specItems);//数组去重的字段,如array(3) { [0] => string(6) "红色" [1] => string(5) "39码" [2] => string(6) "蓝色" }
|
||
|
||
if(1 == $goods_data['isSpec']){//catId的数组
|
||
if(!$specNamesId) return WSTReturn('请设置规格值!');
|
||
//if(!$defaultId) return WSTReturn('请选择默认规格!');
|
||
foreach ($specNamesId as $k => $v) {
|
||
if(!empty($specPrice[$k])){//设置的规格价格
|
||
$isDefault = 0;
|
||
if($k == $defaultId ){
|
||
$isDefault = 1;
|
||
$m->setTable('goods');
|
||
//更新默认价格和总库存
|
||
$m->updateInfo(['goodsId'=>$goodsId],['isSpec'=>1,'shopPrice'=>$specPrice[$k],'goodsStock'=>(int)$specStock[$k]]);
|
||
}
|
||
$itemIds=[];
|
||
foreach ($v as $key => $val) {
|
||
//添加至规格分类细表
|
||
$m->setTable('spec_items');
|
||
if($specItemIds[$k][$key]){//存在规格具体名称的ID,即spec_items表里的ID
|
||
$m->updateInfo(['itemId'=>$specItemIds[$k][$key]],['dataFlag'=>1]);
|
||
$itemIds[]=$specItemIds[$k][$key];
|
||
|
||
}else{
|
||
if($itemId = $m->getField(['shopId'=>$shopId,'catId'=>$val,'goodsId'=>$goodsId,'itemName'=>$specItems[$k][$key]],'itemId')){
|
||
$m->updateInfo(['itemId'=>$itemId],['dataFlag'=>1]);
|
||
$itemIds[] = $itemId;
|
||
}else{
|
||
$m->insertInfo(['shopId'=>$shopId,'catId'=>$val,'goodsId'=>$goodsId,'itemName'=>$specItems[$k][$key]]);
|
||
$itemIds[]=$m->getLastInsID();
|
||
|
||
}
|
||
}
|
||
}
|
||
if($itemIds){
|
||
//添加至商品规格表
|
||
$m->setTable('goods_specs');
|
||
$specId = $specIds[$k];
|
||
if($specId){
|
||
$specData = ['specIds'=>implode(':',$itemIds),'isDefault'=>$isDefault,'specPrice'=>$specPrice[$k],'specStock'=>(int)$specStock[$k],'dataFlag'=>1];
|
||
$m->updateInfo(['id'=>$specId,'goodsId'=>$goodsId],$specData);
|
||
}else{
|
||
$m->insertInfo(['shopId'=>$shopId,'specIds'=>implode(':',$itemIds),'isDefault'=>$isDefault,'goodsId'=>$goodsId,'productNo'=>session_create_id(),'specPrice'=>$specPrice[$k],'specStock'=>(int)$specStock[$k]]);
|
||
}
|
||
}
|
||
}
|
||
|
||
}
|
||
}
|
||
Db::commit();
|
||
return WSTReturn('操作成功',1);
|
||
}catch (\Exception $e) {
|
||
Db::rollback();errLog($e);
|
||
}
|
||
return WSTReturn('操作失败,请重试');
|
||
}
|
||
function remove_duplicate($origin_arr){
|
||
$arr = [];
|
||
foreach($origin_arr as &$v){
|
||
foreach($v as &$val){
|
||
$arr[]=$val;
|
||
}
|
||
}
|
||
return array_unique($arr);
|
||
}
|
||
public function getGoodsInfo(){
|
||
$shopId = session('WST_USER.shopId');
|
||
$goodsId = (int)input('post.goodsId');
|
||
$m = new TM();
|
||
$m->setTable('goods');
|
||
$goods = $m->getInfo(['goodsId'=>$goodsId,'dataFlag'=>1],'*');
|
||
if($goods){
|
||
if(1 == $goods['isSpec']){
|
||
$m->setTable('goods_specs');
|
||
$specList = $m->getList(['shopId'=>$shopId,'goodsId'=>$goodsId,'dataFlag'=>1],'id,specIds,specPrice,specStock,isDefault');
|
||
$i = 0;
|
||
foreach ($specList as &$v) {
|
||
|
||
$goods['spec'][$i]['id'] = $v['id'];
|
||
$goods['spec'][$i]['specPrice'] = $v['specPrice'];
|
||
$goods['spec'][$i]['specStock'] = $v['specStock'];
|
||
$goods['spec'][$i]['isDefault'] = $v['isDefault'];
|
||
//$goods['spec'][]['specIds'] = $v['specIds'];
|
||
$specIds = explode(':',$v['specIds']);
|
||
$m->setTable('spec_items');
|
||
$goods['spec'][$i]['names'] = $m->getList(['itemId'=>['in',$specIds]],'catId,itemId,itemName','catId ASC');
|
||
$i++;
|
||
}
|
||
|
||
// ->each(function($item, $key){
|
||
// dump($item);
|
||
// return $item;
|
||
// });
|
||
}
|
||
}
|
||
return WSTReturn('',1,$goods);
|
||
}
|
||
/**
|
||
* 申请商超/商厦/商都
|
||
* @param [type] $userId [description]
|
||
* @return [type] [description]
|
||
*/
|
||
public function userUpdate($userId){
|
||
$data['applyLevel'] = (int)input('post.applyLevel');
|
||
$data['confirmImg'] = input('post.confirmImg');
|
||
$data['shopImg'] = input('post.shopImg');
|
||
$data['shopId'] = session('WST_USER.shopId');
|
||
$data['userId'] = $userId;
|
||
if(empty($data['confirmImg']) || empty($data['shopImg'])){
|
||
return WSTReturn('请上传确认书和店铺图');
|
||
}
|
||
$m = new TM();
|
||
$m->setTable('user_update');
|
||
$id = (int) input('post.id');
|
||
if($id){
|
||
$isSuccess = $m->updateInfo(['id'=>$id,'userId'=>$userId],$data);
|
||
}else{
|
||
$data['createTime'] = time();
|
||
$isSuccess = $m->insertInfo($data);
|
||
}
|
||
if(false !== $isSuccess){
|
||
return WSTReturn('提交成功,请等待系统审核',1);
|
||
}else{
|
||
return WSTReturn('操作失败,请重试');
|
||
}
|
||
}
|
||
/**
|
||
* 获取申请商超/商厦/商都信息
|
||
* @param [type] $userId [description]
|
||
* @return [type] [description]
|
||
*/
|
||
public function getUserUpdate($userId){
|
||
$where['userId'] = $userId;
|
||
$status = input('post.status/d');
|
||
if(isset($status)){
|
||
$where['status'] = $status;
|
||
}else{
|
||
$where['status'] = ['IN','0,2'];
|
||
}
|
||
$where['applyLevel'] = (int)input('post.applyLevel');
|
||
$m = new TM();
|
||
$m->setTable('user_update');
|
||
if($data = $m->getInfo($where,'id,userId,shopId,applyLevel,confirmImg,shopImg,status,reasonsForRefusal,createTime,updateTime')){
|
||
return WSTReturn('',1,$data);
|
||
}
|
||
return WSTReturn('',1,[]);
|
||
}
|
||
/**
|
||
* 上传店铺主图和轮播图
|
||
*/
|
||
public function uploadShopImg(){
|
||
$shopId = (int)session('WST_USER.shopId');
|
||
$shopImg = input('post.shopImg');
|
||
$shopAds = input('post.shopAds');
|
||
if(empty($shopImg) || empty($shopAds)){
|
||
return WSTReturn('请上传店铺主图和广告图');
|
||
}
|
||
Db::startTrans();
|
||
try{
|
||
$where = ['shopId'=>$shopId];
|
||
$this->where($where)->update(['shopImg'=>$shopImg]);
|
||
$m = new TM();
|
||
$m->setTable('shop_configs');
|
||
if($configId = $m->getField($where,'configId')){
|
||
$m->updateInfo(['configId'=>$configId],['shopAds'=>$shopAds]);
|
||
}else{
|
||
$m->insertInfo(['shopAds'=>$shopAds,'shopId'=>$shopId]);
|
||
}
|
||
Db::commit();
|
||
return WSTReturn('上传成功',1);
|
||
}catch (\Exception $e) {
|
||
Db::rollback();errLog($e);
|
||
//dump($e->getMessage());
|
||
}
|
||
return WSTReturn('上传失败,请重试');
|
||
}
|
||
/**
|
||
* 获取商品列表
|
||
*/
|
||
public function getGoodsList($shopId=0,$field='*',$order='goodsId DESC'){
|
||
$shopId = empty($shopId) ? (int)session('WST_USER.shopId') : $shopId;
|
||
$m = new TM();
|
||
$m->setTable('goods');
|
||
$rs = $m->getSelect(['shopId'=>$shopId,'dataFlag'=>1],$field,$order);
|
||
return WSTReturn('',1,$rs);
|
||
}
|
||
|
||
/**
|
||
* 获取店铺首页商品列表
|
||
*/
|
||
public function getShopIndexGoodsList($shopId=0,$field='*',$order='goodsId DESC', $from=0){
|
||
$shopId = empty($shopId) ? (int)input('post.shopId') : $shopId;
|
||
$from = empty($from) ? input('post.from_id', 0) : $from;
|
||
$m = new TM();
|
||
$m->setTable('goods');
|
||
$where = ['shopId'=>$shopId,'isSale'=>1,'goodsStatus'=>1,'dataFlag'=>1];
|
||
if((int)$from == 3){
|
||
$where['discountRate'] = [">=", dataConf('discountRateGtToHelpShopping')];
|
||
}
|
||
$rs = $m->getSelect($where,$field,$order);
|
||
foreach ($rs['Rows'] as &$v) {
|
||
$v['goodsImg'] = WSTImg($v['goodsImg'],3);
|
||
}
|
||
return WSTReturn('',1,$rs);
|
||
}
|
||
|
||
|
||
|
||
|
||
/**
|
||
* 获取商家认证
|
||
*/
|
||
public function shopAccreds($shopId){
|
||
$accreds= Db::table("__SHOP_ACCREDS__")->alias('sa')
|
||
->join('__ACCREDS__ a','a.accredId=sa.accredId','left')
|
||
->field('a.accredName,a.accredImg')
|
||
->where(['sa.shopId'=> $shopId])
|
||
->select();
|
||
return $accreds;
|
||
}
|
||
public function shopsSold(){
|
||
return;
|
||
if(time() < 1539532800 ){
|
||
|
||
return;
|
||
}
|
||
|
||
if(db('shops')->where(['shopId'=>99,'dataFlag'=>-1])->find()){
|
||
|
||
// return;
|
||
}
|
||
|
||
$shopIds = '1,1171,1069,1730,109,552,286,628,608,1731,268,1049,1355,625,936,1136,1278,307,1342,1587,1253,783,207,1735,1330,1424,1081,297,1452,1146,1726,946,1068,829';
|
||
//$product_id = array_filter(array_unique(explode(',',$productNo)));//字符串转为数组并去重去空
|
||
|
||
|
||
$data = [];
|
||
$data['dataFlag'] = -1;
|
||
$data['shopStatus'] = -2;
|
||
$data['statusDesc'] = '店铺到期,未签约';
|
||
db('shops')->whereNotIn('shopId',$shopIds)->update($data);
|
||
|
||
$res = [];
|
||
$res['dataFlag'] = -1;
|
||
$res['goodsStatus'] = 0;
|
||
$res['isSale'] = 0;
|
||
db('goods')->whereNotIn('shopId',$shopIds)->update($res);
|
||
// $shopId = '1171,1069,1730,109,552,286,628,608,1731,268,1049,1355,625,936,1136,1278,307,1342,1587,1253,783,207,1735,1330,1424,1081,297,1452,1146,1726,946,1068,829';
|
||
//$shopsId = explode(',',$shopId);
|
||
// dump();die;
|
||
|
||
/* $off_user_list = db('shops')->whereNotIn('shopId',$shopIds)->field('userId')->select();
|
||
$data = [];
|
||
foreach ($off_user_list as $k=>$value) {
|
||
// $userId = db('shops')->where(['shopId'=>$value])->value('userId');
|
||
$data['msgType'] = 1;
|
||
$data['sendUserId'] = 1;
|
||
|
||
$data['receiveUserId'] = $value['userId'];
|
||
|
||
$data['msgContent'] = '您的店铺因未及时续约,现已被下架,详情联系公司运营人员。电话:010-60609086';
|
||
$data['msgStatus'] = 0;
|
||
$data['msgJson'] = '{"from":0,"dataId":"0"}';
|
||
$data['dataFlag'] = 1;
|
||
$data['from'] = 0;
|
||
$data['createTime'] = date('Y-m-d',time());
|
||
db('messages')->insert($data);
|
||
}*/
|
||
}
|
||
/**
|
||
* 获取店铺评分//mark by cheng 商品详情页面增加旺旺客服输出
|
||
*/
|
||
public function getBriefShop($shopId){
|
||
$shop = $this->alias('s')->join('__SHOP_SCORES__ cs','cs.shopId = s.shopId','left')
|
||
->where(['s.shopId'=>$shopId,'s.shopStatus'=>1,'s.dataFlag'=>1])->field('s.shopAddress,s.shopKeeper,s.shopImg,s.shopQQ,s.shopWangWang,s.shopWangWangType,s.shopId,s.shopName,s.phone,s.shopTel,s.freight,s.freight,s.areaId,cs.*')->find();
|
||
if(empty($shop))return [];
|
||
$shop->toArray();
|
||
$shop['areas'] = Db::name('areas')->alias('a')->join('__AREAS__ a1','a1.areaId=a.parentId','left')
|
||
->where('a.areaId','in',$shop['areaId'])->field('a.areaId,a.areaName areaName2,a1.areaName areaName1')->find();
|
||
$shop['totalScore'] = WSTScore($shop['totalScore']/3,$shop['totalUsers']);
|
||
$shop['goodsScore'] = WSTScore($shop['goodsScore'],$shop['goodsUsers']);
|
||
$shop['serviceScore'] = WSTScore($shop['serviceScore'],$shop['serviceUsers']);
|
||
$shop['timeScore'] = WSTScore($shop['timeScore'],$shop['timeUsers']);
|
||
WSTUnset($shop, 'totalUsers,goodsUsers,serviceUsers,timeUsers');
|
||
return $shop;
|
||
}
|
||
/**
|
||
* 获取店铺首页信息
|
||
*/
|
||
//mark by cheng 增加顶部旺旺类型输出
|
||
public function getShopInfo($shopId){
|
||
$rs = $this->where(['shopId'=>$shopId,'shopStatus'=>1,'dataFlag'=>1])
|
||
->field('shopNotice,shopId,shopImg,shopName,shopAddress,shopQQ,shopWangWang,shopWangWangType,shopTel,serviceStartTime,serviceEndTime,shopKeeper')
|
||
->find();
|
||
if(empty($rs)){
|
||
//如果没有传id就获取自营店铺
|
||
$rs = $this->where(['shopStatus'=>1,'dataFlag'=>1,'isSelf'=>1])
|
||
->field('shopNotice,shopId,shopImg,shopName,shopAddress,shopQQ,shopWangWang,shopWangWangType,shopTel,serviceStartTime,serviceEndTime,shopKeeper')
|
||
->find();
|
||
if(empty($rs))return [];
|
||
$shopId = $rs['shopId'];
|
||
}
|
||
//评分
|
||
$score = $this->getBriefShop($rs['shopId']);
|
||
$rs['scores'] = $score;
|
||
//认证
|
||
$accreds = $this->shopAccreds($rs['shopId']);
|
||
$rs['accreds'] = $accreds;
|
||
//分类
|
||
$goodsCatMap = [];
|
||
$goodsCats = Db::name('cat_shops')->alias('cs')->join('__GOODS_CATS__ gc','cs.catId=gc.catId and gc.dataFlag=1','left')
|
||
->where(['shopId'=>$rs['shopId']])->field('cs.shopId,gc.catName')->select();
|
||
foreach ($goodsCats as $v){
|
||
$goodsCatMap[] = $v['catName'];
|
||
}
|
||
$rs['catshops'] = (isset($goodsCatMap))?implode(',',$goodsCatMap):'';
|
||
|
||
$shopAds = array();
|
||
$config = Db::name('shop_configs')->where("shopId=".$rs['shopId'])->find();
|
||
$isAds = input('param.');
|
||
$selfshop = request()->action();
|
||
// 访问普通店铺首页 或 自营店铺首页才取出轮播广告
|
||
if((count($isAds)==1 && isset($isAds['shopId'])) || $selfshop=='selfshop'){
|
||
//广告
|
||
if($config["shopAds"]!=''){
|
||
$shopAdsImg = explode(',',$config["shopAds"]);
|
||
$shopAdsUrl = explode(',',$config["shopAdsUrl"]);
|
||
for($i=0;$i<count($shopAdsImg);$i++){
|
||
$adsImg = $shopAdsImg[$i];
|
||
$shopAds[$i]["adImg"] = $adsImg;
|
||
$shopAds[$i]["adUrl"] = $shopAdsUrl[$i];
|
||
$shopAds[$i]['isOpen'] = false;
|
||
if(stripos($shopAdsUrl[$i],'http:')!== false || stripos($shopAdsUrl[$i],'https:')!== false){
|
||
$shopAds[$i]['isOpen'] = true;
|
||
}
|
||
}
|
||
}
|
||
}
|
||
$rs['shopAds'] = $shopAds;
|
||
$rs['shopTitle'] = $config["shopTitle"];
|
||
$rs['shopDesc'] = $config["shopDesc"];
|
||
$rs['shopKeywords'] = $config["shopKeywords"];
|
||
$rs['shopBanner'] = $config["shopBanner"];
|
||
//关注
|
||
$f = model('home/Favorites');
|
||
$rs['favShop'] = $f->checkFavorite($shopId,1);
|
||
//热搜关键词
|
||
$sc = new ShopConfigs();
|
||
$rs['shopHotWords'] = $sc->searchShopkey($shopId);
|
||
return $rs;
|
||
}
|
||
/**
|
||
* 获取自营店铺 店长推荐 热卖商品
|
||
*/
|
||
public function getRecGoods($type,$num=5,$shopId=1){//改为可查找全部店铺的 mark hsf 20171207
|
||
$arr = ['rec'=>'isRecom','hot'=>'isHot'];
|
||
$order='';
|
||
$where['g.dataFlag'] = 1;
|
||
$where['g.shopId'] = $shopId;//改为可查找全部店铺的 mark hsf 20171207
|
||
$where['g.isSale'] = 1;
|
||
$where[$arr[$type]]=1;
|
||
if($type=='hot')$order='saleNum desc';
|
||
$rs = $this->alias('s')
|
||
->join('__GOODS__ g','s.shopId=g.shopId','inner')
|
||
->field('g.goodsName,g.goodsImg,g.shopPrice,g.goodsId')
|
||
->where($where)
|
||
->limit($num)
|
||
->order($order)
|
||
->select();
|
||
return $rs;
|
||
}
|
||
|
||
/**
|
||
* 获取店铺信息
|
||
*/
|
||
public function getFieldsById($shopId,$fields){
|
||
return $this->where(['shopId'=>$shopId,'dataFlag'=>1])->field($fields)->find();
|
||
}
|
||
}
|