78 lines
2.3 KiB
PHP
78 lines
2.3 KiB
PHP
<?php
|
|
|
|
|
|
|
|
|
|
namespace app\common\dao\store\product;
|
|
|
|
use app\common\dao\BaseDao;
|
|
use app\common\model\store\product\ProductPresellSku;
|
|
use think\facade\Db;
|
|
|
|
class ProductPresellSkuDao extends BaseDao
|
|
{
|
|
protected function getModel(): string
|
|
{
|
|
return ProductPresellSku::class;
|
|
}
|
|
|
|
public function clear($id)
|
|
{
|
|
$this->getModel()::getDB()->where('product_presell_id', $id)->delete();
|
|
}
|
|
|
|
public function descStock(int $product_presell_id, string $unique, int $desc)
|
|
{
|
|
return $this->getModel()::getDB()->where('product_presell_id', $product_presell_id)->where('unique', $unique)->update([
|
|
'stock' => Db::raw('stock-' . $desc),
|
|
'seles' => Db::raw('seles+' . $desc),
|
|
]);
|
|
}
|
|
|
|
public function incStock(int $product_presell_id, string $unique, int $desc)
|
|
{
|
|
return $this->getModel()::getDB()->where('product_presell_id', $product_presell_id)->where('unique', $unique)->update([
|
|
'stock' => Db::raw('stock+' . $desc),
|
|
'seles' => Db::raw('seles-' . $desc),
|
|
]);
|
|
}
|
|
|
|
/**
|
|
* TODO 增加 参与或支付成功 人数
|
|
* @param int $product_presell_id
|
|
* @param string $unique
|
|
* @param string $field
|
|
* @return mixed
|
|
* @author Qinii
|
|
* @day 2020-11-27
|
|
*/
|
|
public function incCount(int $product_presell_id,string $unique,string $field,$inc = 1)
|
|
{
|
|
return $this->getModel()::getDB()->where('product_presell_id', $product_presell_id)->where('unique', $unique)
|
|
->update([
|
|
$field => Db::raw($field.'+' . $inc)
|
|
]);
|
|
}
|
|
|
|
/**
|
|
* TODO 减少 参与或支付成功 人数
|
|
* @param int $product_presell_id
|
|
* @param string $unique
|
|
* @param string $field
|
|
* @return mixed
|
|
* @author Qinii
|
|
* @day 2020-11-27
|
|
*/
|
|
public function desCount(int $product_presell_id,string $unique,$inc = 1)
|
|
{
|
|
$res = $this->getModel()::getDB()->where('product_presell_id', $product_presell_id)->where('unique',$unique)->find();
|
|
if($res->presell->presell_type == 1 ){
|
|
$res->one_pay = ($res->one_pay > 0) ? $res->one_pay - $inc : 0;
|
|
}else{
|
|
$res->two_pay = ($res->two_pay > 0) ? $res->two_pay - $inc : 0;
|
|
}
|
|
return $res->save();
|
|
}
|
|
}
|
|
|