caipan_shop_admin/app/model/Spu.php

127 lines
2.8 KiB
PHP

<?php
namespace app\model;
use think\model\relation\HasOne;
class Spu extends Base
{
public const TYPE_NORMAL = 'normal';//普通商品
public const TYPE_SCORE = 'score';//积分商品
public const TYPE_GROUP_BUY = 'group_buy';// 团购
public const TYPE_GROUP_MAKE = 'group_make';// 拼团
public const TYPE_LIMIT_TIME = 'limit_time';// 限时折扣
public const SPU_TYPE_ENTITY = 'entity';// 商品类型-实体
public const SPU_TYPE_VIRTUAL = 'virtual';// 商品类型-虚拟
public static function statusTextList(): array
{
return [
(string) self::COMMON_ON => '已上架',
(string) self::COMMON_OFF => '已下架',
];
}
/**
* 正常商品列表查询字段
*
* @return string[]
*/
public static function spuListFields(): array
{
return [
'id', 'name', 'price', 'original_price', 'cover', 'stock', 'amount', 'is_activity', 'activity_type', 'activity_id'
];
}
/**
* 积分商品列表查询字段
*
* @return string[]
*/
public static function scoreListFields(): array
{
return self::spuListFields();
}
/**
* 活动类型
*
* @return string[]
*/
public static function activityList(): array
{
return [
self::TYPE_LIMIT_TIME,
];
}
/**
* 活动列表
*
* @return array
*/
public static function activity(): array
{
$list = [];
foreach (self::activityList() as $item) {
$arr = [];
$arr['value'] = $item;
$arr['name'] = self::activityTextList()[$item];
$list[] = $arr;
}
return $list;
}
/**
* 活动类型说明
*
* @return string[]
*/
public static function activityTextList(): array
{
return [
self::TYPE_LIMIT_TIME => '限时折扣',
];
}
/**
* 商品类型
*
* @return string[]
*/
public static function spuTypeTextList(): array
{
return [
self::SPU_TYPE_ENTITY => '实体物品',
self::SPU_TYPE_VIRTUAL => '虚拟物品',
];
}
/**
* 限购周期 单位-天
*
* @return string[]
*/
public static function limitList(): array
{
return [
'0' => '不限',
'1' => '每天',
'7' => '每周',
'30' => '每月',
'365' => '每年',
'9999999' => '终身',
];
}
/**
* @return HasOne
*/
public function limitTime(): HasOne
{
return $this->hasOne(SpuActivity::class, 'id', 'activity_id');
}
}