chore: 添加静态资源文件和版本配置文件
添加大量图片、字体、音频等静态资源文件,包括用户界面图片、模板文件和安装界面素材 添加系统版本配置文件(.version)和常量定义文件(.constant) 更新供应商依赖文件,包括Symfony VarDumper组件和相关许可证文件 添加验证码配置文件(captcha.php)和.gitignore规则
This commit is contained in:
73
app/model/product/sku/StoreProductAttr.php
Normal file
73
app/model/product/sku/StoreProductAttr.php
Normal file
@@ -0,0 +1,73 @@
|
||||
<?php
|
||||
// +----------------------------------------------------------------------
|
||||
// | CRMEB [ CRMEB赋能开发者,助力企业发展 ]
|
||||
// +----------------------------------------------------------------------
|
||||
// | Copyright (c) 2016~2026 https://www.crmeb.com All rights reserved.
|
||||
// +----------------------------------------------------------------------
|
||||
// | Licensed CRMEB并不是自由软件,未经许可不能去掉CRMEB相关版权
|
||||
// +----------------------------------------------------------------------
|
||||
// | Author: CRMEB Team <admin@crmeb.com>
|
||||
// +----------------------------------------------------------------------
|
||||
namespace app\model\product\sku;
|
||||
|
||||
use crmeb\basic\BaseModel;
|
||||
use crmeb\traits\ModelTrait;
|
||||
use think\Model;
|
||||
|
||||
/**
|
||||
* 商品属性Model
|
||||
* Class StoreProductAttr
|
||||
* @package app\common\model\product
|
||||
*/
|
||||
class StoreProductAttr extends BaseModel
|
||||
{
|
||||
use ModelTrait;
|
||||
|
||||
/**
|
||||
* 模型名称
|
||||
* @var string
|
||||
*/
|
||||
protected $name = 'store_product_attr';
|
||||
|
||||
/**
|
||||
* 规格获取器
|
||||
* @param $value
|
||||
* @return false|string[]
|
||||
*/
|
||||
protected function getAttrValuesAttr($value)
|
||||
{
|
||||
return explode(',', $value);
|
||||
}
|
||||
|
||||
/**
|
||||
* 规格修改器
|
||||
* @param $value
|
||||
* @return string
|
||||
*/
|
||||
protected function setAttrValuesAttr($value)
|
||||
{
|
||||
return is_array($value) ? implode(',', $value) : $value;
|
||||
}
|
||||
|
||||
/**
|
||||
* 商品搜索器
|
||||
* @param Model $query
|
||||
* @param $value
|
||||
* @param $data
|
||||
*/
|
||||
public function searchProductIdAttr($query, $value)
|
||||
{
|
||||
$query->where('product_id', $value);
|
||||
}
|
||||
|
||||
/**
|
||||
* 商品类型搜索器
|
||||
* @param Model $query
|
||||
* @param $value
|
||||
* @param $data
|
||||
*/
|
||||
public function searchTypeAttr($query, $value)
|
||||
{
|
||||
$query->where('type', $value);
|
||||
}
|
||||
}
|
||||
75
app/model/product/sku/StoreProductAttrResult.php
Normal file
75
app/model/product/sku/StoreProductAttrResult.php
Normal file
@@ -0,0 +1,75 @@
|
||||
<?php
|
||||
// +----------------------------------------------------------------------
|
||||
// | CRMEB [ CRMEB赋能开发者,助力企业发展 ]
|
||||
// +----------------------------------------------------------------------
|
||||
// | Copyright (c) 2016~2026 https://www.crmeb.com All rights reserved.
|
||||
// +----------------------------------------------------------------------
|
||||
// | Licensed CRMEB并不是自由软件,未经许可不能去掉CRMEB相关版权
|
||||
// +----------------------------------------------------------------------
|
||||
// | Author: CRMEB Team <admin@crmeb.com>
|
||||
// +----------------------------------------------------------------------
|
||||
namespace app\model\product\sku;
|
||||
|
||||
use crmeb\basic\BaseModel;
|
||||
use crmeb\traits\ModelTrait;
|
||||
use think\Model;
|
||||
|
||||
/**
|
||||
* Class StoreProductAttrResult
|
||||
* @package app\common\model\product
|
||||
*/
|
||||
class StoreProductAttrResult extends BaseModel
|
||||
{
|
||||
|
||||
use ModelTrait;
|
||||
|
||||
/**
|
||||
* 模型名称
|
||||
* @var string
|
||||
*/
|
||||
protected $name = 'store_product_attr_result';
|
||||
|
||||
protected $insert = ['change_time'];
|
||||
|
||||
/**
|
||||
* 自动增加改变时间
|
||||
* @param $value
|
||||
* @return int
|
||||
*/
|
||||
protected static function setChangeTimeAttr($value)
|
||||
{
|
||||
return time();
|
||||
}
|
||||
|
||||
/**
|
||||
* 数据json化
|
||||
* @param $value
|
||||
* @return false|string
|
||||
*/
|
||||
protected static function setResultAttr($value)
|
||||
{
|
||||
return is_array($value) ? json_encode($value) : $value;
|
||||
}
|
||||
|
||||
/**
|
||||
* 商品搜索器
|
||||
* @param Model $query
|
||||
* @param $value
|
||||
* @param $data
|
||||
*/
|
||||
public function searchProductIdAttr($query, $value)
|
||||
{
|
||||
$query->where('product_id', $value);
|
||||
}
|
||||
|
||||
/**
|
||||
* 商品类型搜索器
|
||||
* @param Model $query
|
||||
* @param $value
|
||||
* @param $data
|
||||
*/
|
||||
public function searchTypeAttr($query, $value)
|
||||
{
|
||||
$query->where('type', $value);
|
||||
}
|
||||
}
|
||||
188
app/model/product/sku/StoreProductAttrValue.php
Normal file
188
app/model/product/sku/StoreProductAttrValue.php
Normal file
@@ -0,0 +1,188 @@
|
||||
<?php
|
||||
// +----------------------------------------------------------------------
|
||||
// | CRMEB [ CRMEB赋能开发者,助力企业发展 ]
|
||||
// +----------------------------------------------------------------------
|
||||
// | Copyright (c) 2016~2026 https://www.crmeb.com All rights reserved.
|
||||
// +----------------------------------------------------------------------
|
||||
// | Licensed CRMEB并不是自由软件,未经许可不能去掉CRMEB相关版权
|
||||
// +----------------------------------------------------------------------
|
||||
// | Author: CRMEB Team <admin@crmeb.com>
|
||||
// +----------------------------------------------------------------------
|
||||
|
||||
namespace app\model\product\sku;
|
||||
|
||||
use app\model\activity\integral\StoreIntegral;
|
||||
use app\model\store\product\ProductAttrValue;
|
||||
use crmeb\basic\BaseModel;
|
||||
use crmeb\traits\ModelTrait;
|
||||
use think\Model;
|
||||
use app\model\product\product\StoreProduct;
|
||||
|
||||
/**
|
||||
* Class StoreProductAttrValue
|
||||
* @package app\common\model\product
|
||||
*/
|
||||
class StoreProductAttrValue extends BaseModel
|
||||
{
|
||||
use ModelTrait;
|
||||
|
||||
/**
|
||||
* 模型名称
|
||||
* @var string
|
||||
*/
|
||||
protected $name = 'store_product_attr_value';
|
||||
|
||||
protected $insert = ['unique'];
|
||||
|
||||
/**
|
||||
* sku 字段写入
|
||||
* @param $value
|
||||
* @return string
|
||||
*/
|
||||
public function setSukAttr($value)
|
||||
{
|
||||
return is_array($value) ? implode(',', $value) : $value;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Unique字段写入
|
||||
* @param $value
|
||||
* @param $data
|
||||
* @return mixed
|
||||
*/
|
||||
public function setUniqueAttr($value, $data)
|
||||
{
|
||||
if (is_array($data['suk'])) {
|
||||
$data['suk'] = $this->setSukAttr($data['suk']);
|
||||
}
|
||||
return $data['unique'] ?: substr(md5($data['product_id'] . $data['suk'] . uniqid(true)), 12, 8);
|
||||
}
|
||||
|
||||
/**
|
||||
* 门店规格表
|
||||
* @return \think\model\relation\HasOne
|
||||
*/
|
||||
public function storeBranch()
|
||||
{
|
||||
return $this->hasOne(ProductAttrValue::class, 'unique', 'unique')->bind([
|
||||
'branch_sales' => 'sales',
|
||||
'branch_stock' => 'stock'
|
||||
]);
|
||||
}
|
||||
|
||||
/**
|
||||
* 关联积分商城表
|
||||
* @return \think\model\relation\HasOne
|
||||
*/
|
||||
public function storeIntegral()
|
||||
{
|
||||
return $this->hasOne(StoreIntegral::class, 'id', 'product_id')->where('is_show', 1)->where('is_del', 0);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 商品搜索器
|
||||
* @param Model $query
|
||||
* @param $value
|
||||
* @param $data
|
||||
*/
|
||||
public function searchProductIdAttr($query, $value)
|
||||
{
|
||||
if (is_array($value)) {
|
||||
$query->whereIn('product_id', $value);
|
||||
} else {
|
||||
$query->where('product_id', $value);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 商品类型搜索器
|
||||
* @param Model $query
|
||||
* @param $value
|
||||
* @param $data
|
||||
*/
|
||||
public function searchTypeAttr($query, $value)
|
||||
{
|
||||
if ($value !== '') {
|
||||
$query->where('type', $value);
|
||||
}
|
||||
}
|
||||
|
||||
public function searchKeywordAttr($query, $value)
|
||||
{
|
||||
if ($value !== '') {
|
||||
$query->whereLike('product_id|product_name|product_code|product_bar_code', '%' . trim($value) . '%');
|
||||
}
|
||||
}
|
||||
|
||||
public function searchTimeAttr($query, $value)
|
||||
{
|
||||
if ($value !== '') {
|
||||
$time = explode('-', $value);
|
||||
if (count($time) != 2) {
|
||||
return;
|
||||
}
|
||||
$query->whereBetweenTime('add_time', $time[0], $time[1]);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* 商品属性名称搜索器
|
||||
* @param Model $query
|
||||
* @param $value
|
||||
* @param $data
|
||||
*/
|
||||
public function searchSukAttr($query, $value)
|
||||
{
|
||||
if (is_array($value)) {
|
||||
if ($value) $query->whereIn('suk', $value);
|
||||
} else {
|
||||
if ($value !== '') $query->where('suk', $value);
|
||||
}
|
||||
}
|
||||
|
||||
public function searchStockRangeAttr($query, $value)
|
||||
{
|
||||
$stock_range = explode('-', $value);
|
||||
if (count($stock_range) == 0) {
|
||||
return;
|
||||
}
|
||||
if (count($stock_range) == 1) {
|
||||
$query->where('stock', '>=', $stock_range[0]);
|
||||
}
|
||||
if (count($stock_range) == 2 && ($stock_range[0] !== '' || $stock_range[1] !== '')) {
|
||||
if ($stock_range[0] === '') {
|
||||
$query->where('stock', '<=', $stock_range[1]);
|
||||
} elseif ($stock_range[1] === '') {
|
||||
$query->where('stock', '>=', $stock_range[0]);
|
||||
} else {
|
||||
$query->whereBetween('stock', $stock_range);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 规格唯一值搜索器
|
||||
* @param Model $query
|
||||
* @param $value
|
||||
* @param $data
|
||||
*/
|
||||
public function searchUniqueAttr($query, $value)
|
||||
{
|
||||
if (is_array($value)) {
|
||||
$query->whereIn('unique', $value);
|
||||
} else {
|
||||
if ($value) {
|
||||
$query->where('unique', $value);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public function product()
|
||||
{
|
||||
return $this->hasOne(StoreProduct::class, 'id', 'product_id')->field('store_name,id')->bind(['store_name']);
|
||||
}
|
||||
|
||||
}
|
||||
84
app/model/product/sku/StoreProductRule.php
Normal file
84
app/model/product/sku/StoreProductRule.php
Normal file
@@ -0,0 +1,84 @@
|
||||
<?php
|
||||
// +----------------------------------------------------------------------
|
||||
// | CRMEB [ CRMEB赋能开发者,助力企业发展 ]
|
||||
// +----------------------------------------------------------------------
|
||||
// | Copyright (c) 2016~2026 https://www.crmeb.com All rights reserved.
|
||||
// +----------------------------------------------------------------------
|
||||
// | Licensed CRMEB并不是自由软件,未经许可不能去掉CRMEB相关版权
|
||||
// +----------------------------------------------------------------------
|
||||
// | Author: CRMEB Team <admin@crmeb.com>
|
||||
// +----------------------------------------------------------------------
|
||||
namespace app\model\product\sku;
|
||||
|
||||
use crmeb\basic\BaseModel;
|
||||
use crmeb\traits\ModelTrait;
|
||||
use think\Model;
|
||||
|
||||
/**
|
||||
* 商品规则
|
||||
* Class StoreProductRule
|
||||
* @package app\common\model\product
|
||||
*/
|
||||
class StoreProductRule extends BaseModel
|
||||
{
|
||||
use ModelTrait;
|
||||
|
||||
/**
|
||||
* 模型名称
|
||||
* @var string
|
||||
*/
|
||||
protected $name = 'store_product_rule';
|
||||
|
||||
/**
|
||||
* 商户搜索器
|
||||
* @param Model $query
|
||||
* @param $value
|
||||
*/
|
||||
public function searchTypeAttr($query, $value)
|
||||
{
|
||||
if (is_array($value)) {
|
||||
if ($value) $query->whereIn('type', $value);
|
||||
} else {
|
||||
if ($value !== '') $query->where('type', $value);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 关联门店ID、供应商ID搜索器
|
||||
* @param Model $query
|
||||
* @param $value
|
||||
*/
|
||||
public function searchRelationIdAttr($query, $value)
|
||||
{
|
||||
if (is_array($value)) {
|
||||
if ($value) $query->whereIn('relation_id', $value);
|
||||
} else {
|
||||
if ($value !== '') $query->where('relation_id', $value);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 供应商
|
||||
* @param Model $query
|
||||
* @param $value
|
||||
*/
|
||||
public function searchSupplierIdAttr($query, $value)
|
||||
{
|
||||
if (is_array($value)) {
|
||||
if ($value) $query->whereIn('relation_id', $value)->where('type', 2);
|
||||
} else {
|
||||
if ($value !== '') $query->where('relation_id', $value)->where('type', 2);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 属性模板名称搜索器
|
||||
* @param Model $query
|
||||
* @param $value
|
||||
* @param $data
|
||||
*/
|
||||
public function searchRuleNameAttr($query, $value)
|
||||
{
|
||||
$query->where('rule_name', 'like', '%' . $value . '%');
|
||||
}
|
||||
}
|
||||
85
app/model/product/sku/StoreProductVirtual.php
Normal file
85
app/model/product/sku/StoreProductVirtual.php
Normal file
@@ -0,0 +1,85 @@
|
||||
<?php
|
||||
|
||||
|
||||
namespace app\model\product\sku;
|
||||
|
||||
|
||||
use crmeb\basic\BaseModel;
|
||||
use crmeb\traits\ModelTrait;
|
||||
|
||||
class StoreProductVirtual extends BaseModel
|
||||
{
|
||||
use ModelTrait;
|
||||
|
||||
/**
|
||||
* 数据表主键
|
||||
* @var string
|
||||
*/
|
||||
protected $pk = 'id';
|
||||
|
||||
/**
|
||||
* 模型名称
|
||||
* @var string
|
||||
*/
|
||||
protected $name = 'store_product_virtual';
|
||||
|
||||
/**
|
||||
* 卡号搜索器
|
||||
* @param $query
|
||||
* @param $value
|
||||
*/
|
||||
public function searchCardNoAttr($query, $value)
|
||||
{
|
||||
$query->where('card_no', $value);
|
||||
}
|
||||
|
||||
/**
|
||||
* 卡密搜索器
|
||||
* @param $query
|
||||
* @param $value
|
||||
*/
|
||||
public function searchCardPwdAttr($query, $value)
|
||||
{
|
||||
$query->where('card_pwd', $value);
|
||||
}
|
||||
|
||||
/**
|
||||
* 商品搜索器
|
||||
* @param $query
|
||||
* @param $value
|
||||
*/
|
||||
public function searchProductIdAttr($query, $value)
|
||||
{
|
||||
$query->where('product_id', $value);
|
||||
}
|
||||
|
||||
/**
|
||||
* 用户搜索器
|
||||
* @param $query
|
||||
* @param $value
|
||||
*/
|
||||
public function searchUidAttr($query, $value)
|
||||
{
|
||||
$query->where('uid', $value);
|
||||
}
|
||||
|
||||
/**
|
||||
* 订单搜索器
|
||||
* @param $query
|
||||
* @param $value
|
||||
*/
|
||||
public function searchOrderIdAttr($query, $value)
|
||||
{
|
||||
$query->where('order_id', $value);
|
||||
}
|
||||
|
||||
/**
|
||||
* 唯一值搜索器
|
||||
* @param $query
|
||||
* @param $value
|
||||
*/
|
||||
public function searchAttrUniqueAttr($query, $value)
|
||||
{
|
||||
$query->where('attr_unique', $value);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user