You've already forked qlg.tsgz.moe
addons
app_download_files
extend
hyhproject
admin
app
common
home
home2
behavior
common
conf
controller
model
Articles.php
Attributes.php
Base.php
Goods.php
GoodsVirtuals.php
HomeMenus.php
Imports.php
Reports.php
Settlements.php
ShopConfigs.php
ShopFreights.php
ShopRoles.php
ShopUsers.php
Shops.php
SpecItems.php
Users.php
validate
view
mobile2
wechat2
.htaccess
command.php
mobile
oss
static
thinkphp
upload
vendor
wxtmp
.gitignore
.htaccess
.user.ini
404.html
H5B854518.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
174 lines
6.1 KiB
PHP
Executable File
174 lines
6.1 KiB
PHP
Executable File
<?php
|
|
namespace wstmart\home\model;
|
|
use wstmart\common\model\Goods as CGoodsVirtuals;
|
|
use think\Db;
|
|
use think\Loader;
|
|
/**
|
|
* ============================================================================
|
|
* 虚拟商品卡券模型
|
|
*/
|
|
class GoodsVirtuals extends CGoodsVirtuals{
|
|
/**
|
|
* 导入
|
|
*/
|
|
public function importCards($data){
|
|
Loader::import('phpexcel.PHPExcel.IOFactory');
|
|
$objReader = \PHPExcel_IOFactory::load(WSTRootPath().json_decode($data)->route.json_decode($data)->name);
|
|
$objReader->setActiveSheetIndex(0);
|
|
$sheet = $objReader->getActiveSheet();
|
|
$rows = $sheet->getHighestRow();
|
|
$cells = $sheet->getHighestColumn();
|
|
//数据集合
|
|
$readData = [];
|
|
$shopId = (int)session('WST_USER.shopId');
|
|
$goodsId = (int)input('goodsId');
|
|
$importNum = 0;
|
|
//生成订单
|
|
Db::startTrans();
|
|
try{
|
|
//读取现有的卡券
|
|
$goodscards = Db::name('goods_virtuals')->where(['dataFlag'=>1,'goodsId'=>$goodsId])->field('cardNo')->select();
|
|
$goodscardsMap = [];
|
|
if(count($goodscards)>0){
|
|
foreach($goodscards as $v){
|
|
$goodscardsMap[] = $v['cardNo'];
|
|
}
|
|
}
|
|
//循环读取每个单元格的数据
|
|
for ($row = 2; $row <= $rows; $row++){//行数是以第2行开始
|
|
$cards = [];
|
|
$cards['shopId'] = $shopId;
|
|
$cards['goodsId'] = $goodsId;
|
|
$cardNo = trim($sheet->getCell("A".$row)->getValue());
|
|
if($cardNo=='')break;//如果某一行第一列为空则停止导入
|
|
$cards['cardNo'] = $cardNo;
|
|
$cards['cardPwd'] = trim($sheet->getCell("B".$row)->getValue());
|
|
$cards['createTime'] = date('Y-m-d H:i:s');
|
|
if(in_array($cardNo,$goodscardsMap))continue;
|
|
$goodscardsMap[] = $cardNo;
|
|
$readData[] = $cards;
|
|
$importNum++;
|
|
}
|
|
if(count($readData)>0){
|
|
model('GoodsVirtuals')->saveAll($readData);
|
|
$this->updateGoodsStock($goodsId);
|
|
}
|
|
Db::commit();
|
|
return json_encode(['status'=>1,'importNum'=>$importNum]);
|
|
}catch (\Exception $e) {
|
|
Db::rollback();errLog($e);
|
|
return json_encode(WSTReturn('导入商品卡券失败',-1));
|
|
}
|
|
}
|
|
|
|
/**
|
|
* 删除
|
|
*/
|
|
public function del(){
|
|
$shopId = (int)session('WST_USER.shopId');
|
|
$ids = input('ids');
|
|
$id = input('id');
|
|
if($ids=='')return WSTReturn('请选择要删除的卡券号');
|
|
try{
|
|
$this->where(['shopId'=>$shopId,'id'=>['in',$ids],'goodsId'=>$id])->update(['dataFlag'=>-1]);
|
|
$this->updateGoodsStock($id);
|
|
Db::commit();
|
|
}catch (\Exception $e) {
|
|
Db::rollback();errLog($e);
|
|
return WSTReturn('操作失败');
|
|
}
|
|
return WSTReturn('操作成功',1);
|
|
}
|
|
|
|
/**
|
|
* 编辑
|
|
*/
|
|
public function edit(){
|
|
$shopId = (int)session('WST_USER.shopId');
|
|
$id = (int)input('id');
|
|
//判断卡券是否有效
|
|
$rs = $this->where(['id'=>$id,'shopId'=>$shopId,'dataFlag'=>1,'isUse'=>0])->find();
|
|
if(empty($rs))return WSTReturn('非法的卡券');
|
|
$cardNo = input('cardNo');
|
|
$cardPwd = input('cardPwd');
|
|
if($cardNo=='' || $cardPwd=='')return WSTReturn('请输入完整卡券信息');
|
|
$conts = $this->where(['shopId'=>$shopId,'dataFlag'=>1,'cardNo'=>$cardNo,'id'=>['<>',$id]])->Count();
|
|
if($conts>0)return WSTReturn('该卡券号已存在,请重新输入');
|
|
$rs->cardNo = $cardNo;
|
|
$rs->cardPwd = $cardPwd;
|
|
$rs->save();
|
|
return WSTReturn('操作成功',1);
|
|
}
|
|
|
|
/**
|
|
* 获取虚拟商品库存列表
|
|
*/
|
|
public function stockByPage(){
|
|
$key = input('cardNo');
|
|
$id = (int)input('id');
|
|
$isUse = (int)input('isUse',-1);
|
|
$shopId = (int)session('WST_USER.shopId');
|
|
$where = ['shopId'=>$shopId,'goodsId'=>$id,'dataFlag'=>1];
|
|
if($key !='')$where['cardNo'] = ['like','%'.$key.'%'];
|
|
if(in_array($isUse,[0,1]))$where['isUse'] = $isUse;
|
|
$page = $this->field('orderNo,orderId,cardNo,id,cardPwd,isUse')
|
|
->where($where)->order('id desc')
|
|
->paginate(20)->toArray();
|
|
return $page;
|
|
}
|
|
|
|
/**
|
|
* 生成卡券号
|
|
*/
|
|
public function getCardNo($shopId){
|
|
$cardNo = date('Ymd').sprintf("%08d", rand(0,99999999));
|
|
$conts = $this->where(['shopId'=>$shopId,'dataFlag'=>1,'cardNo'=>$cardNo])->Count();
|
|
if($conts==0){
|
|
return $cardNo;
|
|
}else{
|
|
return $this->getCardNo($shopId);
|
|
}
|
|
}
|
|
|
|
/**
|
|
* 生成卡券
|
|
*/
|
|
public function add(){
|
|
$shopId = (int)session('WST_USER.shopId');
|
|
$goodsId = (int)input('goodsId');
|
|
//判断商品是否有效
|
|
$goods = model('goods')->where(['goodsId'=>$goodsId,'shopId'=>$shopId,'goodsType'=>1])->find();
|
|
if(empty($goods))return WSTReturn('非法的卡券商品');
|
|
$cardNo = input('cardNo');
|
|
$cardPwd = input('cardPwd');
|
|
if($cardNo=='' || $cardPwd=='')return WSTReturn('请输入完整卡券信息');
|
|
$conts = $this->where(['shopId'=>$shopId,'dataFlag'=>1,'cardNo'=>$cardNo])->Count();
|
|
if($conts>0)return WSTReturn('该卡券号已存在,请重新输入');
|
|
$data = [];
|
|
$data['cardNo'] = $cardNo;
|
|
$data['cardPwd'] = $cardPwd;
|
|
$data['dataFlag'] = 1;
|
|
$data['shopId'] = $shopId;
|
|
$data['goodsId'] = $goodsId;
|
|
$data['createTime'] = date('Y-m-d H:i:s');
|
|
Db::startTrans();
|
|
try{
|
|
$this->save($data);
|
|
$this->updateGoodsStock($goodsId);
|
|
Db::commit();
|
|
}catch (\Exception $e) {
|
|
Db::rollback();errLog($e);
|
|
return WSTReturn('新增失败');
|
|
}
|
|
return WSTReturn('新增成功',1);
|
|
}
|
|
|
|
/**
|
|
* 更新商品数量
|
|
*/
|
|
public function updateGoodsStock($id){
|
|
$shopId = (int)session('WST_USER.shopId');
|
|
$counts = $this->where(['dataFlag'=>1,'goodsId'=>$id,'shopId'=>$shopId,'isUse'=>0])->Count();
|
|
Db::name('goods')->where('goodsId',$id)->setField('goodsStock',$counts);
|
|
}
|
|
} |