You've already forked qlg.tsgz.moe
Init Repo
This commit is contained in:
627
hyhproject/admin/model/Goods.php
Executable file
627
hyhproject/admin/model/Goods.php
Executable file
@ -0,0 +1,627 @@
|
||||
<?php
|
||||
namespace wstmart\admin\model;
|
||||
use think\Db;
|
||||
use think\Loader;
|
||||
/**
|
||||
* ============================================================================
|
||||
* 商品类
|
||||
*/
|
||||
class Goods extends Base{
|
||||
/**
|
||||
* 上架商品列表
|
||||
*/
|
||||
public function saleByPage(){
|
||||
$where = [];
|
||||
$where['g.goodsStatus'] = 1;
|
||||
$where['g.dataFlag'] = 1;
|
||||
$where['g.isSale'] = 1;
|
||||
$areaIdPath = input('areaIdPath');
|
||||
$goodsCatIdPath = input('goodsCatIdPath');
|
||||
$goodsName = input('goodsName');
|
||||
$shopName = input('shopName');
|
||||
$startDate = input('startDate');
|
||||
$endDate = input('endDate');
|
||||
if($startDate!='' && $endDate!=''){
|
||||
$where['saleTime'] = ['between',[$startDate.' 00:00:00',$endDate.' 23:59:59']];
|
||||
}else if($startDate!=''){
|
||||
$where['saleTime'] = ['>=',$startDate.' 00:00:00'];
|
||||
}else if($endDate!=''){
|
||||
$where['saleTime'] = ['<=',$endDate.' 23:59:59'];
|
||||
}
|
||||
if($areaIdPath !='')$where['areaIdPath'] = ['like',$areaIdPath."%"];
|
||||
if($goodsCatIdPath !='')$where['goodsCatIdPath'] = ['like',$goodsCatIdPath."%"];
|
||||
if($goodsName != '')$where['goodsName|goodsSn'] = ['like',"%$goodsName%"];
|
||||
if($shopName != '')$where['shopName|shopSn'] = ['like',"%$shopName%"];
|
||||
// 排序
|
||||
$sort = input('sort');
|
||||
$order = 'saleTime desc';
|
||||
if($sort!=''){
|
||||
$sortArr = explode('.',$sort);
|
||||
$order = $sortArr[0].' '.$sortArr[1];
|
||||
}
|
||||
$keyCats = model('GoodsCats')->listKeyAll();
|
||||
$rs = $this->alias('g')
|
||||
->join('__SHOPS__ s','g.shopId=s.shopId','left')
|
||||
->where($where)
|
||||
->field('g.goodsId,g.goodsName,g.goodsSn,g.saleNum,g.shopPrice,g.discountRate,g.shopId,goodsImg,s.shopName,s.phone,goodsCatIdPath,g.createTime,g.saleTime,g.isSale')
|
||||
->order($order)
|
||||
->paginate(input('limit/d'))->toArray();
|
||||
|
||||
foreach ($rs['Rows'] as $key => $v){
|
||||
$rs['Rows'][$key]['verfiycode'] = WSTShopEncrypt($v['shopId']);
|
||||
$rs['Rows'][$key]['goodsCatName'] = self::getGoodsCatNames($v['goodsCatIdPath'],$keyCats);
|
||||
}
|
||||
// dump($rs);die;
|
||||
return $rs;
|
||||
}
|
||||
/**
|
||||
* 下架商品列表
|
||||
*/
|
||||
public function shelvesByPage(){
|
||||
$where = [];
|
||||
$where['g.dataFlag'] = 1;
|
||||
$where['g.isSale'] = 0;
|
||||
$areaIdPath = input('areaIdPath');
|
||||
$goodsCatIdPath = input('goodsCatIdPath');
|
||||
$goodsName = input('goodsName');
|
||||
$shopName = input('shopName');
|
||||
$startDate = input('startDate');
|
||||
$endDate = input('endDate');
|
||||
if($startDate!='' && $endDate!=''){
|
||||
$where['saleTime'] = ['between',[$startDate.' 00:00:00',$endDate.' 23:59:59']];
|
||||
}else if($startDate!=''){
|
||||
$where['saleTime'] = ['>=',$startDate.' 00:00:00'];
|
||||
}else if($endDate!=''){
|
||||
$where['saleTime'] = ['<=',$endDate.' 23:59:59'];
|
||||
}
|
||||
if($areaIdPath !='')$where['areaIdPath'] = ['like',$areaIdPath."%"];
|
||||
if($goodsCatIdPath !='')$where['goodsCatIdPath'] = ['like',$goodsCatIdPath."%"];
|
||||
if($goodsName != '')$where['goodsName|goodsSn'] = ['like',"%$goodsName%"];
|
||||
if($shopName != '')$where['shopName|shopSn'] = ['like',"%$shopName%"];
|
||||
// 排序
|
||||
$sort = input('sort');
|
||||
$order = 'saleTime desc';
|
||||
if($sort!=''){
|
||||
$sortArr = explode('.',$sort);
|
||||
$order = $sortArr[0].' '.$sortArr[1];
|
||||
}
|
||||
$keyCats = model('GoodsCats')->listKeyAll();
|
||||
$rs = $this->alias('g')
|
||||
->join('__SHOPS__ s','g.shopId=s.shopId','left')
|
||||
->where($where)
|
||||
->field('goodsId,goodsName,goodsSn,saleNum,shopPrice,g.shopId,goodsImg,s.shopName,goodsCatIdPath,g.createTime,saleTime,isSale')
|
||||
->order($order)
|
||||
->paginate(input('limit/d'))->toArray();
|
||||
foreach ($rs['Rows'] as $key => $v){
|
||||
$rs['Rows'][$key]['verfiycode'] = WSTShopEncrypt($v['shopId']);
|
||||
$rs['Rows'][$key]['goodsCatName'] = self::getGoodsCatNames($v['goodsCatIdPath'],$keyCats);
|
||||
}
|
||||
return $rs;
|
||||
}
|
||||
public function getGoodsCatNames($goodsCatPath, $keyCats){
|
||||
$catIds = explode("_",$goodsCatPath);
|
||||
$catNames = array();
|
||||
for($i=0,$k=count($catIds);$i<$k;$i++){
|
||||
if($catIds[$i]=='')continue;
|
||||
if(isset($keyCats[$catIds[$i]]))$catNames[] = $keyCats[$catIds[$i]];
|
||||
}
|
||||
return implode("→",$catNames);
|
||||
}
|
||||
/**
|
||||
* 审核中的商品
|
||||
*/
|
||||
public function auditByPage(){
|
||||
$where['goodsStatus'] = 0;
|
||||
$where['g.dataFlag'] = 1;
|
||||
$where['isSale'] = 1;
|
||||
$areaIdPath = input('areaIdPath');
|
||||
$goodsCatIdPath = input('goodsCatIdPath');
|
||||
$goodsName = input('goodsName');
|
||||
$shopName = input('shopName');
|
||||
if($areaIdPath !='')$where['areaIdPath'] = ['like',$areaIdPath."%"];
|
||||
if($goodsCatIdPath !='')$where['goodsCatIdPath'] = ['like',$goodsCatIdPath."%"];
|
||||
if($goodsName != '')$where['goodsName|goodsSn'] = ['like',"%$goodsName%"];
|
||||
if($shopName != '')$where['shopName|shopSn'] = ['like',"%$shopName%"];
|
||||
// 排序
|
||||
$sort = input('sort');
|
||||
$order = 'saleTime desc';
|
||||
if($sort!=''){
|
||||
$sortArr = explode('.',$sort);
|
||||
$order = $sortArr[0].' '.$sortArr[1];
|
||||
}
|
||||
$keyCats = model('GoodsCats')->listKeyAll();
|
||||
$rs = $this->alias('g')->join('__SHOPS__ s','g.shopId=s.shopId','left')
|
||||
->where($where)
|
||||
->field('g.goodsId,g.discountRate,g.goodsName,g.goodsSn,g.saleNum,g.shopPrice,g.goodsImg,s.shopName,s.shopId,s.phone,goodsCatIdPath')
|
||||
->order($order)
|
||||
->paginate(input('limit/d'))->toArray();
|
||||
foreach ($rs['Rows'] as $key => $v){
|
||||
$rs['Rows'][$key]['verfiycode'] = WSTShopEncrypt($v['shopId']);
|
||||
$rs['Rows'][$key]['goodsCatName'] = self::getGoodsCatNames($v['goodsCatIdPath'],$keyCats);
|
||||
}
|
||||
return $rs;
|
||||
}
|
||||
/**
|
||||
* 违规的商品
|
||||
*/
|
||||
public function illegalByPage(){
|
||||
$where['goodsStatus'] = -1;
|
||||
$where['g.dataFlag'] = 1;
|
||||
$where['isSale'] = 1;
|
||||
$areaIdPath = input('areaIdPath');
|
||||
$goodsCatIdPath = input('goodsCatIdPath');
|
||||
$goodsName = input('goodsName');
|
||||
$shopName = input('shopName');
|
||||
$startDate = input('startDate');
|
||||
$endDate = input('endDate');
|
||||
if($startDate!='' && $endDate!=''){
|
||||
$where['saleTime'] = ['between',[$startDate.' 00:00:00',$endDate.' 23:59:59']];
|
||||
}else if($startDate!=''){
|
||||
$where['saleTime'] = ['>=',$startDate.' 00:00:00'];
|
||||
}else if($endDate!=''){
|
||||
$where['saleTime'] = ['<=',$endDate.' 23:59:59'];
|
||||
}
|
||||
if($areaIdPath !='')$where['areaIdPath'] = ['like',$areaIdPath."%"];
|
||||
if($goodsCatIdPath !='')$where['goodsCatIdPath'] = ['like',$goodsCatIdPath."%"];
|
||||
if($goodsName != '')$where['goodsName|goodsSn'] = ['like',"%$goodsName%"];
|
||||
if($shopName != '')$where['shopName|shopSn'] = ['like',"%$shopName%"];
|
||||
// 排序
|
||||
$sort = input('sort');
|
||||
$order = 'saleTime desc';
|
||||
if($sort!=''){
|
||||
$sortArr = explode('.',$sort);
|
||||
$order = $sortArr[0].' '.$sortArr[1];
|
||||
}
|
||||
$keyCats = model('GoodsCats')->listKeyAll();
|
||||
$rs = $this->alias('g')->join('__SHOPS__ s','g.shopId=s.shopId','left')
|
||||
->where($where)
|
||||
->field('goodsId,goodsName,goodsSn,goodsImg,s.shopName,s.shopId,illegalRemarks,goodsCatIdPath')
|
||||
->order($order)
|
||||
->paginate(input('limit/d'))->toArray();
|
||||
foreach ($rs['Rows'] as $key => $v){
|
||||
$rs['Rows'][$key]['verfiycode'] = WSTShopEncrypt($v['shopId']);
|
||||
$rs['Rows'][$key]['goodsCatName'] = self::getGoodsCatNames($v['goodsCatIdPath'],$keyCats);
|
||||
}
|
||||
return $rs;
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除商品
|
||||
*/
|
||||
public function del(){
|
||||
$id = input('post.id/d');
|
||||
$data = [];
|
||||
$data['dataFlag'] = -1;
|
||||
$data['isSale'] = 0;
|
||||
Db::startTrans();
|
||||
try{
|
||||
$result = $this->update($data,['goodsId'=>$id]);
|
||||
if(false !== $result){
|
||||
hook('afterChangeGoodsStatus',['goodsId'=>$id]);
|
||||
Db::name('carts')->where('goodsId',$id)->delete();
|
||||
WSTUnuseImage('goods','goodsImg',$id);
|
||||
WSTUnuseImage('goods','gallery',$id);
|
||||
Db::commit();
|
||||
//标记删除购物车
|
||||
return WSTReturn("删除成功", 1);
|
||||
}
|
||||
}catch (\Exception $e) {
|
||||
Db::rollback();errLog($e);
|
||||
}
|
||||
return WSTReturn('删除失败',-1);
|
||||
}
|
||||
/**
|
||||
* 批量删除商品
|
||||
*/
|
||||
public function batchDel(){
|
||||
$shopId = (int)session('WST_USER.shopId');
|
||||
$ids = input('post.ids/a');
|
||||
Db::startTrans();
|
||||
try{
|
||||
$rs = $this->where(['goodsId'=>['in',$ids],
|
||||
'shopId'=>$shopId])->setField(['dataFlag'=>-1,'isSale'=>0]);
|
||||
if(false !== $rs){
|
||||
Db::name('carts')->where(['goodsId'=>['in',$ids]])->delete();
|
||||
//标记删除购物车
|
||||
foreach ($ids as $v){
|
||||
WSTUnuseImage('goods','goodsImg',(int)$v);
|
||||
WSTUnuseImage('goods','gallery',(int)$v);
|
||||
hook('afterChangeGoodsStatus',['goodsId'=>$v]);
|
||||
}
|
||||
Db::commit();
|
||||
return WSTReturn("删除成功", 1);
|
||||
}
|
||||
}catch (\Exception $e) {
|
||||
Db::rollback();errLog($e);
|
||||
}
|
||||
return WSTReturn('删除失败',-1);
|
||||
}
|
||||
|
||||
/**
|
||||
* 设置商品违规状态
|
||||
*/
|
||||
public function illegal($goodsId=0,$from=0){
|
||||
$illegalRemarks = input('post.illegalRemarks');
|
||||
$id = ($goodsId==0)?(int)input('post.id'):$goodsId;
|
||||
if($illegalRemarks==''){
|
||||
return WSTReturn("请输入原因");
|
||||
}else if($from == 1){
|
||||
$id = ($goodsId==0)?(int)input('post.id'):$goodsId;
|
||||
$illegalRemarks = '该商品因被用户举报,现已下架';
|
||||
}
|
||||
//判断商品状态
|
||||
$rs = $this->alias('g')->join('__SHOPS__ s','g.shopId=s.shopId','left')->where('goodsId',$id)
|
||||
->field('s.userId,g.goodsName,g.goodsSn,g.goodsStatus,g.goodsId,g.shopId')->find();
|
||||
if((int)$rs['goodsId']==0)return WSTReturn("无效的商品");
|
||||
if((int)$rs['goodsStatus']<0)return WSTReturn("操作失败,商品状态已发生改变,请刷新后再尝试");
|
||||
Db::startTrans();
|
||||
try{
|
||||
$res = $this->where('goodsId',$id)->setField(['goodsStatus'=>-1,'illegalRemarks'=>$illegalRemarks]);
|
||||
if($res!==false){
|
||||
|
||||
Db::name('carts')->where(['goodsId'=>$id])->delete();
|
||||
//发送一条商家信息
|
||||
$shopId = $rs["shopId"];
|
||||
$tpl = WSTMsgTemplates('GOODS_REJECT');
|
||||
if( $tpl['tplContent']!='' && $tpl['status']=='1'){
|
||||
$find = ['${GOODS}','${GOODS_SN}','${TIME}','${REASON}'];
|
||||
$replace = [$rs['goodsName'],$rs['goodsSn'],date('Y-m-d H:i:s'),$illegalRemarks];
|
||||
|
||||
$msg = array();
|
||||
$msg["shopId"] = $shopId;
|
||||
$msg["tplCode"] = $tpl["tplCode"];
|
||||
$msg["msgType"] = 1;
|
||||
$msg["content"] = str_replace($find,$replace,$tpl['tplContent']);
|
||||
$msg["msgJson"] = ['from'=>2,'dataId'=>$id];
|
||||
model("common/MessageQueues")->add($msg);
|
||||
}
|
||||
if((int)WSTConf('CONF.wxenabled')==1){
|
||||
$params = [];
|
||||
$params['GOODS'] = $rs['goodsName'];
|
||||
$params['GOODS_SN'] = $rs['goodsSn'];
|
||||
$params['TIME'] = date('Y-m-d H:i:s');
|
||||
$params['REASON'] = $illegalRemarks;
|
||||
|
||||
$msg = array();
|
||||
$tplCode = "WX_GOODS_REJECT";
|
||||
$msg["shopId"] = $shopId;
|
||||
$msg["tplCode"] = $tplCode;
|
||||
$msg["msgType"] = 4;
|
||||
$msg["paramJson"] = ['CODE'=>$tplCode,'params'=>$params] ;
|
||||
$msg["msgJson"] = "";
|
||||
model("common/MessageQueues")->add($msg);
|
||||
}
|
||||
hook('afterChangeGoodsStatus',['goodsId'=>$id]);
|
||||
Db::commit();
|
||||
return WSTReturn('操作成功',1);
|
||||
}
|
||||
}catch (\Exception $e) {
|
||||
Db::rollback();errLog($e);
|
||||
}
|
||||
return WSTReturn('操作失败',-1);
|
||||
}
|
||||
/**
|
||||
* 批量商品审核不通过
|
||||
*/
|
||||
public function batchIllegal(){
|
||||
$ids = input('ids');
|
||||
if(empty($ids))return WSTReturn('请选择商品');
|
||||
$ids = explode(',' , $ids);
|
||||
foreach($ids as $k=>$v){
|
||||
$rs = $this->illegal($v);
|
||||
}
|
||||
return WSTReturn('操作成功',1);
|
||||
|
||||
}
|
||||
/**
|
||||
* 通过商品审核通过
|
||||
*/
|
||||
public function allow($goodsId=0){
|
||||
$id = ($goodsId==0)?(int)input('post.id'):$goodsId;
|
||||
//判断商品状态
|
||||
$rs = $this->alias('g')->join('__SHOPS__ s','g.shopId=s.shopId','left')->where('goodsId',$id)
|
||||
->field('s.userId,g.goodsName,g.goodsSn,g.goodsStatus,g.goodsId,g.shopId')->find();
|
||||
if((int)$rs['goodsId']==0)return WSTReturn("无效的商品");
|
||||
if((int)$rs['goodsStatus']==1)return WSTReturn("操作失败,商品状态已发生改变,请刷新后再尝试");
|
||||
Db::startTrans();
|
||||
try{
|
||||
$res = $this->setField(['goodsId'=>$id,'goodsStatus'=>1]);
|
||||
if($res!==false){
|
||||
//发送一条商家信息
|
||||
$shopId = $rs["shopId"];
|
||||
$tpl = WSTMsgTemplates('GOODS_ALLOW');
|
||||
if( $tpl['tplContent']!='' && $tpl['status']=='1'){
|
||||
$find = ['${GOODS}','${GOODS_SN}','${TIME}'];
|
||||
$replace = [$rs['goodsName'],$rs['goodsSn'],date('Y-m-d H:i:s')];
|
||||
|
||||
$msg = array();
|
||||
$msg["shopId"] = $shopId;
|
||||
$msg["tplCode"] = $tpl["tplCode"];
|
||||
$msg["msgType"] = 1;
|
||||
$msg["content"] = str_replace($find,$replace,$tpl['tplContent']) ;
|
||||
$msg["msgJson"] = ['from'=>2,'dataId'=>$id];
|
||||
model("common/MessageQueues")->add($msg);
|
||||
}
|
||||
if((int)WSTConf('CONF.wxenabled')==1){
|
||||
$params = [];
|
||||
$params['GOODS'] = $rs['goodsName'];
|
||||
$params['GOODS_SN'] = $rs['goodsSn'];
|
||||
$params['TIME'] = date('Y-m-d H:i:s');
|
||||
|
||||
$msg = array();
|
||||
$tplCode = "WX_GOODS_ALLOW";
|
||||
$msg["shopId"] = $shopId;
|
||||
$msg["tplCode"] = $tplCode;
|
||||
$msg["msgType"] = 4;
|
||||
$msg["paramJson"] = ['CODE'=>$tplCode,'params'=>$params] ;
|
||||
$msg["msgJson"] = "";
|
||||
model("common/MessageQueues")->add($msg);
|
||||
}
|
||||
hook('afterChangeGoodsStatus',['goodsId'=>$id]);
|
||||
Db::commit();
|
||||
return WSTReturn('操作成功',1);
|
||||
}
|
||||
}catch (\Exception $e) {
|
||||
Db::rollback();errLog($e);
|
||||
}
|
||||
return WSTReturn('操作失败',-1);
|
||||
}
|
||||
/**
|
||||
* 批量商品审核
|
||||
*/
|
||||
public function batchAllow(){
|
||||
$ids = input('ids');
|
||||
if(empty($ids))return WSTReturn('请选择商品');
|
||||
$ids = explode(',' , $ids);
|
||||
$count = 0;// 记录上架不成功的商品数
|
||||
foreach($ids as $k=>$v){
|
||||
$rs = $this->allow($v);
|
||||
if($rs['status']==-1){
|
||||
++$count;
|
||||
}
|
||||
}
|
||||
if($count==0)return WSTReturn('操作成功',1);
|
||||
$msg = "成功上架".(count($ids)-$count)."件商品,其中{$count}件商品上架失败.";
|
||||
return WSTReturn($msg,1);
|
||||
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 查询商品
|
||||
*/
|
||||
public function searchQuery(){
|
||||
$goodsCatatId = (int)input('post.goodsCatId');
|
||||
if($goodsCatatId<=0)return [];
|
||||
$goodsCatIds = WSTGoodsCatPath($goodsCatatId);
|
||||
$key = input('post.key');
|
||||
$where = [];
|
||||
$where['g.dataFlag'] = 1;
|
||||
$where['g.isSale'] = 1;
|
||||
$where['g.goodsStatus'] = 1;
|
||||
$where['goodsCatIdPath'] = ['like',implode('_',$goodsCatIds).'_%'];
|
||||
if($key!='')$where['goodsName|shopName'] = ['like','%'.$key.'%'];
|
||||
return $this->alias('g')->join('__SHOPS__ s','g.shopId=s.shopId','inner')
|
||||
->where($where)->field('g.goodsName,s.shopName,g.goodsId')->limit(50)->select();
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据下架指定店铺下的所有商品
|
||||
*/
|
||||
public function unsaleByshopId($shopId){
|
||||
//下架商品
|
||||
$data = [];
|
||||
$data['isSale'] = 0;
|
||||
$goodsIds = [];
|
||||
$goods = $this->where(['shopId'=>$shopId,'isSale'=>1])->field('goodsId')->select();
|
||||
if(!empty($goods)){
|
||||
foreach ($goods as $key => $v) {
|
||||
$goodsIds[] = $v['goodsId'];
|
||||
}
|
||||
}
|
||||
$result = $this->where(['shopId'=>$shopId])->update($data);
|
||||
if(false !== $result){
|
||||
//删除推荐商品,删除购物车里的商品
|
||||
if(count($goodsIds)>0){
|
||||
//执行钩子事件
|
||||
foreach ($goodsIds as $key => $v) {
|
||||
hook('afterChangeGoodsStatus',['goodsId'=>$v]);
|
||||
}
|
||||
Db::name('recommends')->where(['dataSrc'=>0,'dataId'=>['in',$goodsIds]])->delete();
|
||||
Db::name('carts')->where(['goodsId'=>['in',$goodsIds]])->delete();
|
||||
}
|
||||
Db::commit();
|
||||
return WSTReturn('操作成功',1);
|
||||
}
|
||||
return WSTReturn('删除失败',-1);
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据下架指定店铺下的所有商品
|
||||
*/
|
||||
public function delByshopId($shopId){
|
||||
//下架商品
|
||||
$data = [];
|
||||
$data['isSale'] = 0;
|
||||
$data['dataFlag'] = -1;
|
||||
$goodsIds = [];
|
||||
$goods = $this->where(['shopId'=>$shopId])->field('goodsId')->select();
|
||||
if(!empty($goods)){
|
||||
foreach ($goods as $key => $v) {
|
||||
$goodsIds[] = $v['goodsId'];
|
||||
}
|
||||
}
|
||||
$result = $this->where(['shopId'=>$shopId])->update($data);
|
||||
if(false !== $result){
|
||||
//删除推荐商品,删除购物车里的商品
|
||||
if(count($goodsIds)>0){
|
||||
//执行钩子事件
|
||||
foreach ($goodsIds as $key => $v) {
|
||||
hook('afterChangeGoodsStatus',['goodsId'=>$v]);
|
||||
}
|
||||
Db::name('recommends')->where(['dataSrc'=>0,'dataId'=>['in',$goodsIds]])->delete();
|
||||
Db::name('carts')->where(['goodsId'=>['in',$goodsIds]])->delete();
|
||||
}
|
||||
Db::commit();
|
||||
return WSTReturn('操作成功',1);
|
||||
}
|
||||
return WSTReturn('删除失败',-1);
|
||||
}
|
||||
|
||||
/**
|
||||
* 商品ECT支付状态
|
||||
*/
|
||||
public function goodsEct(){
|
||||
$goodsId = input('post.id/d');
|
||||
$pay = Db::name('goods_pay')->where(['goodsId'=>$goodsId])->select();//查询支付方式表是否已有该商品
|
||||
if($pay){
|
||||
return WSTReturn('此商品已添加ECT支付');
|
||||
}
|
||||
$arr =[];
|
||||
$arr['goodsId'] = $goodsId;
|
||||
$arr['ectPay'] = 1;
|
||||
// dump($arr);die;
|
||||
$result = Db::name('goods_pay')->insert($arr);
|
||||
if($result){
|
||||
return WSTReturn('添加成功',1);
|
||||
}else{
|
||||
return WSTReturn('添加失败');
|
||||
}
|
||||
}
|
||||
|
||||
//上架商品导出
|
||||
public function toExportSale(){
|
||||
$name="上架商品列表";
|
||||
$where = [];
|
||||
$where['g.goodsStatus'] = 1;
|
||||
$where['g.dataFlag'] = 1;
|
||||
$where['g.isSale'] = 1;
|
||||
$areaIdPath = input('areaIdPath');
|
||||
$goodsCatIdPath = input('goodsCatIdPath');
|
||||
$goodsName = input('goodsName');
|
||||
$shopName = input('shopName');
|
||||
$startDate = input('startDate');
|
||||
$endDate = input('endDate');
|
||||
if($startDate!='' && $endDate!=''){
|
||||
$where['saleTime'] = ['between',[$startDate.' 00:00:00',$endDate.' 23:59:59']];
|
||||
}else if($startDate!=''){
|
||||
$where['saleTime'] = ['>=',$startDate.' 00:00:00'];
|
||||
}else if($endDate!=''){
|
||||
$where['saleTime'] = ['<=',$endDate.' 23:59:59'];
|
||||
}
|
||||
if($areaIdPath !='')$where['areaIdPath'] = ['like',$areaIdPath."%"];
|
||||
if($goodsCatIdPath !='')$where['goodsCatIdPath'] = ['like',$goodsCatIdPath."%"];
|
||||
if($goodsName != '')$where['goodsName|goodsSn'] = ['like',"%$goodsName%"];
|
||||
if($shopName != '')$where['shopName|shopSn'] = ['like',"%$shopName%"];
|
||||
// 排序
|
||||
$sort = input('sort');
|
||||
$order = 'saleTime desc';
|
||||
if($sort!=''){
|
||||
$sortArr = explode('.',$sort);
|
||||
$order = $sortArr[0].' '.$sortArr[1];
|
||||
}
|
||||
$keyCats = model('GoodsCats')->listKeyAll();
|
||||
$page = $this->alias('g')
|
||||
->join('__SHOPS__ s','g.shopId=s.shopId','left')
|
||||
->where($where)
|
||||
->field('goodsId,goodsName,goodsSn,saleNum,shopPrice,g.shopId,goodsImg,s.shopName,goodsCatIdPath,g.createTime,saleTime,isSale')
|
||||
->order($order)
|
||||
->select();
|
||||
foreach ($page as $key => $v){
|
||||
$page[$key]['verfiycode'] = WSTShopEncrypt($v['shopId']);
|
||||
$page[$key]['goodsCatName'] = self::getGoodsCatNames($v['goodsCatIdPath'],$keyCats);
|
||||
}
|
||||
Loader::import('phpexcel.PHPExcel.IOFactory');
|
||||
$objPHPExcel = new \PHPExcel();
|
||||
// 设置excel文档的属性
|
||||
$objPHPExcel->getProperties()->setCreator("heyuanhui")//创建人
|
||||
->setLastModifiedBy("heyuanhui")//最后修改人
|
||||
->setTitle($name)//标题
|
||||
->setSubject($name)//题目
|
||||
->setDescription($name)//描述
|
||||
->setKeywords("订单")//关键字
|
||||
->setCategory("Test result file");//种类
|
||||
|
||||
// 开始操作excel表
|
||||
$objPHPExcel->setActiveSheetIndex(0);
|
||||
// 设置工作薄名称
|
||||
$objPHPExcel->getActiveSheet()->setTitle(iconv('gbk', 'utf-8', 'Sheet'));
|
||||
// 设置默认字体和大小
|
||||
$objPHPExcel->getDefaultStyle()->getFont()->setName(iconv('gbk', 'utf-8', ''));
|
||||
$objPHPExcel->getDefaultStyle()->getFont()->setSize(11);
|
||||
$styleArray = array(
|
||||
'font' => array(
|
||||
'bold' => true,
|
||||
'color'=>array(
|
||||
'argb' => 'ffffffff',
|
||||
)
|
||||
),
|
||||
'borders' => array (
|
||||
'outline' => array (
|
||||
'style' => \PHPExcel_Style_Border::BORDER_THIN, //设置border样式
|
||||
'color' => array ('argb' => 'FF000000'), //设置border颜色
|
||||
)
|
||||
)
|
||||
);
|
||||
//设置宽
|
||||
$objPHPExcel->getActiveSheet()->getColumnDimension('A')->setWidth(25);
|
||||
$objPHPExcel->getActiveSheet()->getColumnDimension('B')->setWidth(25);
|
||||
$objPHPExcel->getActiveSheet()->getColumnDimension('C')->setWidth(12);
|
||||
$objPHPExcel->getActiveSheet()->getColumnDimension('D')->setWidth(12);
|
||||
$objPHPExcel->getActiveSheet()->getColumnDimension('E')->setWidth(12);
|
||||
$objPHPExcel->getActiveSheet()->getColumnDimension('F')->setWidth(25);
|
||||
$objPHPExcel->getActiveSheet()->getColumnDimension('G')->setWidth(40);
|
||||
$objPHPExcel->getActiveSheet()->getColumnDimension('H')->setWidth(25);
|
||||
$objPHPExcel->getActiveSheet()->getColumnDimension('I')->setWidth(8);
|
||||
$objPHPExcel->getActiveSheet()->getColumnDimension('J')->setWidth(8);
|
||||
$objPHPExcel->getActiveSheet()->getColumnDimension('K')->setWidth(25);
|
||||
$objPHPExcel->getActiveSheet()->getColumnDimension('L')->setWidth(25);
|
||||
$objPHPExcel->getActiveSheet()->getColumnDimension('M')->setWidth(25);
|
||||
$objPHPExcel->getActiveSheet()->getColumnDimension('N')->setWidth(25);
|
||||
$objPHPExcel->getActiveSheet()->getStyle('A1:N1')->getFill()->setFillType(\PHPExcel_Style_Fill::FILL_SOLID);
|
||||
$objPHPExcel->getActiveSheet()->getStyle('A1:N1')->getFill()->getStartColor()->setARGB('333399');
|
||||
|
||||
$objPHPExcel->getActiveSheet()
|
||||
->setCellValue('A1', '商品ID')
|
||||
->setCellValue('B1', '商品名称')
|
||||
->setCellValue('C1', '商品编号')
|
||||
->setCellValue('D1', '价格')
|
||||
->setCellValue('E1', '所属店铺')
|
||||
->setCellValue('F1', '申请上架时间')
|
||||
->setCellValue('G1', '审核通过时间')
|
||||
->setCellValue('H1', '所属分类')
|
||||
->setCellValue('I1', '销量')
|
||||
->setCellValue('J1', '状态');
|
||||
$objPHPExcel->getActiveSheet()->getStyle('A1:J1')->applyFromArray($styleArray);
|
||||
|
||||
for ($row = 0; $row < count($page); $row++){
|
||||
$i = $row+2;
|
||||
$objPHPExcel->getActiveSheet()
|
||||
->setCellValue('A'.$i, $page[$row]['goodsId'])
|
||||
->setCellValue('B'.$i, $page[$row]['goodsName'])
|
||||
->setCellValue('C'.$i, chunk_split($page[$row]['goodsSn']))
|
||||
->setCellValue('D'.$i, $page[$row]['shopPrice'])
|
||||
->setCellValue('E'.$i, $page[$row]['shopName'])
|
||||
->setCellValue('F'.$i, $page[$row]['saleTime'])
|
||||
->setCellValue('G'.$i, $page[$row]['createTime'])
|
||||
->setCellValue('H'.$i, $page[$row]['goodsCatName'])
|
||||
->setCellValue('I'.$i, $page[$row]['saleNum'])
|
||||
->setCellValue('J'.$i, $page[$row]['isSale']);
|
||||
|
||||
}
|
||||
//输出EXCEL格式
|
||||
$objWriter = \PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
|
||||
// 从浏览器直接输出$filename
|
||||
header('Content-Type:application/csv;charset=UTF-8');
|
||||
header("Pragma: public");
|
||||
header("Expires: 0");
|
||||
header("Cache-Control:must-revalidate, post-check=0, pre-check=0");
|
||||
header("Content-Type:application/force-download");
|
||||
header("Content-Type:application/vnd.ms-excel;");
|
||||
header("Content-Type:application/octet-stream");
|
||||
header("Content-Type:application/download");
|
||||
header('Content-Disposition: attachment;filename="'.$name.'.xls"');
|
||||
header("Content-Transfer-Encoding:binary");
|
||||
$objWriter->save('php://output');
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user