修改商品

This commit is contained in:
邹景立 2021-03-11 16:16:49 +08:00
parent cd562da07d
commit 5970a1dbf5
19 changed files with 219 additions and 164 deletions

View File

@ -13,7 +13,7 @@ use think\console\Output;
* Class UserLevel
* @package app\data\command
*/
class UserLevel extends Command
class UserUpgrade extends Command
{
protected function configure()
{

View File

@ -51,7 +51,7 @@ class ShopGoods extends Controller
elseif ($this->type === 'recycle') $query->where(['deleted' => 1]);
else $this->error("无法加载 {$this->type} 数据列表!");
// 列表排序并显示
$query->like('code,name,mark')->equal('status,cate');
$query->like('code,name,marks,cateids')->equal('status');
$query->order('sort desc,id desc')->page();
}
@ -65,7 +65,7 @@ class ShopGoods extends Controller
public function select()
{
$query = $this->_query($this->table);
$query->equal('status,cate')->like('code,name,mark');
$query->equal('status')->like('code,name,marks')->in('cates');
$query->where(['deleted' => 0])->order('sort desc,id desc')->page();
}
@ -78,13 +78,9 @@ class ShopGoods extends Controller
*/
protected function _page_filter(array &$data)
{
$this->marks = GoodsService::instance()->getMarkList();
$this->clist = GoodsService::instance()->getCateList('arr2table');
$clist = $this->app->db->name('ShopGoodsCate')->whereIn('id', array_column($data, 'cate'))->column('pid,name,status', 'id');
foreach ($data as &$vo) {
$vo['cate'] = $clist[$vo['cate']] ?? $vo['cate'];
$vo['mark'] = str2arr($vo['mark'] ?: '', ',', $this->marks);
}
$this->marks = GoodsService::instance()->getMarkData();
$this->cates = GoodsService::instance()->getCateData();
GoodsService::instance()->buildItemData($data, false);
}
/**
@ -153,12 +149,15 @@ class ShopGoods extends Controller
$data['code'] = CodeExtend::uniqidNumber(14, 'G');
}
if ($this->request->isGet()) {
$data['mark'] = str2arr($data['mark'] ?? '');
$this->marks = GoodsService::instance()->getMarkList();
$this->cates = GoodsService::instance()->getCateList('arr2table');
$this->levels = $this->app->db->name('DataUserLevel')->where(['status' => 1])->order('number asc,id desc')->select()->toArray();
$this->trucks = $this->app->db->name('ShopTruckTemplate')->where(['status' => 1, 'deleted' => 0])->order('sort desc,id desc')->column('code,name');
$this->discounts = $this->app->db->name('DataUserDiscount')->where(['status' => 1, 'deleted' => 0])->order('sort desc,id desc')->select()->toArray();
$data['marks'] = str2arr($data['marks'] ?? '');
$data['payment'] = str2arr($data['payment'] ?? '');
$data['cateids'] = str2arr($data['cateids'] ?? '');
$this->marks = GoodsService::instance()->getMarkData();
$this->cates = GoodsService::instance()->getCateData();
$this->trucks = $this->app->db->name('ShopTruckTemplate')->where(['status' => 1, 'deleted' => 0])->order('sort desc,id desc')->column('code,name', 'code');
$this->payments = $this->app->db->name('ShopPayment')->where(['status' => 1, 'deleted' => 0])->order('sort desc,id desc')->column('type,code,name', 'code');
$this->upgrades = $this->app->db->name('DataUserUpgrade')->where(['status' => 1, 'deleted' => 0])->order('number asc,id desc')->column('number,name', 'id');
$this->discounts = $this->app->db->name('DataUserDiscount')->where(['status' => 1, 'deleted' => 0])->order('sort desc,id desc')->column('id,name,items', 'id');
// 商品规格处理
$fields = 'goods_sku `sku`,goods_code,goods_spec `key`,price_selling `selling`,price_market `market`,number_virtual `virtual`,number_express `express`,reward_balance `balance`,reward_integral `integral`,status';
$data['data_items'] = json_encode($this->app->db->name('ShopGoodsItem')->where(['goods_code' => $data['code']])->column($fields, 'goods_spec'), JSON_UNESCAPED_UNICODE);
@ -169,7 +168,8 @@ class ShopGoods extends Controller
[$count, $items] = [0, array_column(json_decode($data['data_items'], true), 0)];
foreach ($items as $item) $count += intval($item['status']);
if (empty($count)) $this->error('无效的的商品价格信息!');
$data['mark'] = arr2str($data['mark'] ?? []);
$data['marks'] = arr2str($data['marks'] ?? []);
$data['payment'] = arr2str($data['payment'] ?? []);
if (empty($data['price_market'])) $data['price_market'] = min(array_column($items, 'market'));
if (empty($data['price_selling'])) $data['price_selling'] = min(array_column($items, 'selling'));
$this->app->db->name('ShopGoodsItem')->where(['goods_code' => $data['code']])->update(['status' => 0]);

View File

@ -84,7 +84,7 @@ class UserDiscount extends Controller
}
$vo['items'] = json_encode($rule, JSON_UNESCAPED_UNICODE);
} else {
$query = $this->app->db->name('DataUserLevel');
$query = $this->app->db->name('DataUserUpgrade');
$this->levels = $query->where(['status' => 1])->order('number asc')->select()->toArray();
if (empty($this->levels)) $this->error('未配置用户等级!');
if (!empty($vo['items'])) foreach (json_decode($vo['items'], true) as $item) {

View File

@ -7,16 +7,16 @@ use think\admin\Controller;
/**
* 用户等级管理
* Class UserLevel
* Class UserUpgrade
* @package app\data\controller
*/
class UserLevel extends Controller
class UserUpgrade extends Controller
{
/**
* 绑定数据表
* @var string
*/
private $table = 'DataUserLevel';
private $table = 'DataUserUpgrade';
/**
* 用户等级管理

View File

@ -43,7 +43,7 @@ abstract class Auth extends Controller
protected function initialize()
{
// 接口数据类型
$this->type = input('api') ?: $this->request->header('api-name');
$this->type = $this->request->header('api-name') ?: input('api');
$this->type = $this->type ?: $this->request->header('api-type');
if (empty($this->type) || empty(UserService::TYPES[$this->type])) {
$this->error("接口通道未定义!");

View File

@ -29,7 +29,7 @@ class Goods extends Controller
*/
public function getMark()
{
$this->success('获取标签成功', GoodsService::instance()->getMarkList());
$this->success('获取标签成功', GoodsService::instance()->getMarkData());
}
/**

View File

@ -74,11 +74,39 @@ class GoodsService extends Service
return $cates;
}
/**
* 获取分类数据
* @param boolean $simple 简化数据
* @return array
*/
public function getCateData($simple = true): array
{
$cates = $this->app->db->name('ShopGoodsCate')->column('id,pid,name', 'id');
foreach ($cates as $cate) if (isset($cates[$cate['pid']])) {
$cates[$cate['id']]['parent'] =& $cates[$cate['pid']];
}
foreach ($cates as $key => $cate) {
$id = $cate['id'];
$cates[$id]['ids'][] = $cate['id'];
$cates[$id]['names'][] = $cate['name'];
while (isset($cate['parent']) && $cate = $cate['parent']) {
$cates[$id]['ids'][] = $cate['id'];
$cates[$id]['names'][] = $cate['name'];
}
$cates[$id]['ids'] = array_reverse($cates[$id]['ids']);
$cates[$id]['names'] = array_reverse($cates[$id]['names']);
if ($simple && count($cates[$id]['names']) !== $this->getCateLevel()) {
unset($cates[$key]);
}
}
return $cates;
}
/**
* 获取商品标签数据
* @return array
*/
public function getMarkList(): array
public function getMarkData(): array
{
$map = ['status' => 1];
$query = $this->app->db->name('ShopGoodsMark');
@ -88,29 +116,24 @@ class GoodsService extends Service
/**
* 商品数据绑定
* @param array $data 商品主数据
* @param boolean $simple 简化数据
* @return array
* @throws \think\db\exception\DataNotFoundException
* @throws \think\db\exception\DbException
* @throws \think\db\exception\ModelNotFoundException
*/
public function buildItemData(array &$data = []): array
public function buildItemData(array &$data = [], $simple = true): array
{
$cates = $this->app->db->name('ShopGoodsCate')->column('id,pid,name', 'id');
foreach ($cates as $cate) if (isset($cates[$cate['pid']])) {
$cates[$cate['id']]['parent'] =& $cates[$cate['pid']];
}
$codes = array_unique(array_column($data, 'code'));
$query = $this->app->db->name('ShopGoodsItem')->withoutField('id,status,create_at');
$items = $query->whereIn('goods_code', $codes)->where(['status' => 1])->select()->toArray();
$cates = $this->getCateData();
$marks = $this->app->db->name('ShopGoodsMark')->where(['status' => 1])->column('name');
$query = $this->app->db->name('ShopGoodsItem')->withoutField('id,status,create_at');
$items = $query->whereIn('goods_code', array_unique(array_column($data, 'code')))->where(['status' => 1])->select()->toArray();
foreach ($data as &$vo) {
$vo['marks'] = str2arr($vo['mark'], ',', $marks);
$vo['cates'] = $cates[$vo['cate']] ?? [];
$vo['slider'] = explode('|', $vo['slider']);
$vo['specs'] = json_decode($vo['data_specs'], true);
$vo['items'] = [];
[$vo['marks'], $vo['cateids'], $vo['cateinfo']] = [str2arr($vo['marks'], ',', $marks), str2arr($vo['cateids']), []];
foreach ($cates as $cate) if (in_array($cate['id'], $vo['cateids'])) $vo['cateinfo'] = $cate;
[$vo['slider'], $vo['specs'], $vo['items']] = [str2arr($vo['slider'], '|'), json_decode($vo['data_specs'], true), []];
foreach ($items as $item) if ($item['goods_code'] === $vo['code']) $vo['items'][] = $item;
unset($vo['mark'], $vo['sort'], $vo['status'], $vo['deleted'], $vo['data_items'], $vo['data_specs']);
if ($simple) unset($vo['marks'], $vo['sort'], $vo['status'], $vo['deleted'], $vo['data_items'], $vo['data_specs']);
}
return $data;
}

View File

@ -221,7 +221,7 @@ class RebateCurrentService extends Service
$pids = array_reverse(explode('-', trim($this->user['path'], '-')));
if (empty($pids)) return false;
// 获取拥有差额奖励的等级
$query = $this->app->db->name('DataUserLevel');
$query = $this->app->db->name('DataUserUpgrade');
$numbs = $query->whereLike('rule', '%,' . self::PRIZE_05 . ',%')->column('number');
// 获取可以参与奖励的代理
$query = $this->app->db->name('DataUser')->whereIn('vip_number', $numbs);
@ -275,6 +275,6 @@ class RebateCurrentService extends Service
protected function checkLevelPrize(string $prize, int $level): bool
{
$map = [['number', '=', $level], ['rebate_rule', 'like', "%,{$prize},%"]];
return $this->app->db->name('DataUserLevel')->where($map)->count() > 0;
return $this->app->db->name('DataUserUpgrade')->where($map)->count() > 0;
}
}

View File

@ -229,7 +229,7 @@ class UserService extends Service
$teamsUsers = $this->app->db->name('DataUser')->whereLike('path', "%-{$uid}-%")->count();
$orderAmount = $this->app->db->name('ShopOrder')->where(['uid' => $uid])->whereIn('status', [3, 4, 5])->sum('amount_total');
// 计算用户级别
foreach ($this->app->db->name('DataUserLevel')->where(['status' => 1])->order('number desc')->cursor() as $item) {
foreach ($this->app->db->name('DataUserUpgrade')->where(['status' => 1])->order('number desc')->cursor() as $item) {
$l1 = empty($item['goods_vip_status']) || $user['buy_vip_entry'] > 0;
$l2 = empty($item['teams_users_status']) || $item['teams_users_number'] <= $teamsUsers;
$l3 = empty($item['order_amount_status']) || $item['order_amount_number'] <= $orderAmount;
@ -249,7 +249,7 @@ class UserService extends Service
$tmpNumber = $query->whereRaw("a.uid={$uid} and a.payment_status=1 and a.status in (3,4,5) and b.vip_entry=1")->max('b.vip_number');
if ($tmpNumber > $vipNumber) {
$map = ['number' => $tmpNumber, 'status' => 1];
$levelInfo = $this->app->db->name('DataUserLevel')->where($map)->find();
$levelInfo = $this->app->db->name('DataUserUpgrade')->where($map)->find();
if (!empty($levelInfo)) [$vipNumber, $vipName] = [$levelInfo['number'], $levelInfo['name']];
}
// 统计订单统计

View File

@ -2,15 +2,15 @@
use app\data\command\OrderClear;
use app\data\command\UserBalance;
use app\data\command\UserLevel;
use app\data\command\UserUpgrade;
use app\data\command\UserTransfer;
use think\Console;
if (app()->request->isCli()) {
Console::starting(function (Console $console) {
$console->addCommand(UserLevel::class);
$console->addCommand(OrderClear::class);
$console->addCommand(UserBalance::class);
$console->addCommand(UserUpgrade::class);
$console->addCommand(UserTransfer::class);
});
} else {

View File

@ -5,33 +5,47 @@
<form onsubmit="return false;" id="GoodsForm" data-auto="true" method="post" class='layui-form layui-card' autocomplete="off">
<div class="layui-card-body padding-40 padding-bottom-20">
{notempty name='marks'}
<div class="layui-form-item relative block">
<span class="color-green font-w7 label-required-prev">商品标签</span>
<span class="color-desc margin-left-5">Mark Name</span>
<div class="tags-container layui-textarea">
{foreach $marks as $mark}{if isset($vo.mark) && is_array($vo.mark) && in_array($mark, $vo.mark)}
<label class="think-checkbox notselect"><input checked type="checkbox" name="mark[]" value="{$mark}" lay-ignore> {$mark}</label>
{else}
<label class="think-checkbox notselect"><input type="checkbox" name="mark[]" value="{$mark}" lay-ignore> {$mark}</label>
{/if}{/foreach}
</div>
</div>
{/notempty}
{notempty name='cates'}
<!--{notempty name='cates'}-->
<label class="layui-form-item block relative">
<span class="color-green font-w7 label-required-prev">所属分类</span>
<span class="color-desc margin-left-5">Category Name</span>
<select class="layui-select" name="cate" lay-search>
{foreach $cates as $cate}{if isset($vo.cate) and $vo.cate eq $cate.id}
<option {$cate.sat} selected value="{$cate.id}">{$cate.spl}{$cate.name|default=''}</option>
<select class="layui-select" name="cateids" lay-search>
{foreach $cates as $cate}{if in_array($cate.id, $cate.ids)}
<option selected value="{:arr2str($cate.ids)}">{:join(' ', $cate.names)}</option>
{else}
<option {$cate.sat} value="{$cate.id}">{$cate.spl}{$cate.name|default=''}</option>
<option value="{:arr2str($cate.ids)}">{:join(' ', $cate.names)}</option>
{/if}{/foreach}
</select>
</label>
{/notempty}
<!--{/notempty}-->
<!--{notempty name='marks'}-->
<div class="layui-form-item relative block">
<span class="color-green font-w7 label-required-prev">商品标签</span>
<span class="color-desc margin-left-5">Goods Mark Name</span>
<div class="layui-textarea">
{foreach $marks as $mark}{if isset($vo.marks) && is_array($vo.marks) && in_array($mark, $vo.marks)}
<input checked type="checkbox" name="marks[]" value="{$mark}" title="{$mark}">
{else}
<input type="checkbox" name="marks[]" value="{$mark}" title="{$mark}">
{/if}{/foreach}
</div>
</div>
<!--{/notempty}-->
<!--{notempty name='payments'}-->
<div class="layui-form-item relative block">
<span class="color-green font-w7 label-required-prev">支付方式</span>
<span class="color-desc margin-left-5">Goods Pyament Name</span>
<div class="layui-textarea">
{foreach $payments as $payment}{if isset($vo.payment) && is_array($vo.payment) && in_array($payment.code, $vo.payment)}
<input checked type="checkbox" name="payment[]" value="{$payment.code}" title="{$payment.name}">
{else}
<input type="checkbox" name="payment[]" value="{$payment.code}" title="{$payment.name}">
{/if}{/foreach}
</div>
</div>
<!--{/notempty}-->
<label class="layui-form-item block relative">
<span class="color-green font-w7">商品名称</span>
@ -77,10 +91,50 @@
</table>
</div>
<div class="layui-clear goods-item-box">
<div class="goods-item-box">
<div class="layui-clear">
<fieldset>
<legend><span class="layui-badge think-bg-violet">物流配送发货</span></legend>
<legend><span class="layui-badge think-bg-violet">商品返利配置</span></legend>
<div class="layui-form-item">
{foreach ['非返利商品,其代理不会获得奖励','是返利商品,其代理将会获得奖励'] as $k => $v}
{if (isset($vo.rebate_type) and $vo.rebate_type eq $k) or (empty($vo.rebate_type) and $k eq 0)}
<input type="radio" name="rebate_type" value="{$k}" title="{$v}" checked>
{else}
<input type="radio" name="rebate_type" value="{$k}" title="{$v}">
{/if}{/foreach}
</div>
</fieldset>
<fieldset>
<legend><span class="layui-badge think-bg-violet">入会礼包配置</span></legend>
<div class="layui-form-item">
{foreach ['非入会礼包,购买后不会升级等级','是入会礼包,购买后升级会员级别'] as $k=>$v}
{if (isset($vo.vip_entry) and $vo.vip_entry eq $k) or (empty($vo.vip_entry) and $k eq 0)}
<input type="radio" name="vip_entry" value="{$k}" title="{$v}" checked lay-filter="vip_entry">
{else}
<input type="radio" name="vip_entry" value="{$k}" title="{$v}" lay-filter="vip_entry">
{/if}{/foreach}
</div>
</fieldset>
<!--{notempty name='upgrades'}-->
<fieldset>
<legend><span class="layui-badge think-bg-violet">升级用户级别</span></legend>
<label class="layui-form-item">
<select name="vip_upgrade" class="layui-select" lay-filter="vip_upgrade">
{foreach $upgrades as $upgrade}{if isset($vo.vip_upgrade) and $vo.vip_upgrade eq $upgrade.number}
<option selected value="{$upgrade.number|default=0}">[ {$upgrade.number|default='0'} ] {$upgrade.name|default=''}</option>
{else}
<option value="{$upgrade.number|default=0}">[ {$upgrade.number|default='0'} ] {$upgrade.name|default=''}</option>
{/if}{/foreach}
</select>
<span class="help-block">购买此商品用户可直接升级至此等级!</span>
</label>
</fieldset>
<!--{/notempty}-->
</div>
<div class="layui-clear">
<fieldset>
<legend><span class="layui-badge think-bg-violet">物流配送发货类型</span></legend>
<div class="layui-form-item">
{foreach ['虚拟商品,无需物流配送','实物商品,需要物流配送'] as $k=>$v}
{if (isset($vo.truck_type) and $vo.truck_type eq $k) or (empty($vo.truck_type) and $k eq 0)}
@ -90,38 +144,9 @@
{/if}{/foreach}
</div>
</fieldset>
<!--{notempty name='discounts'}-->
<fieldset>
<legend><span class="layui-badge think-bg-violet">入会礼包配置</span></legend>
<div class="layui-form-item">
{foreach ['非入会礼包,购买后不会影响等级','是入会礼包,购买后升级会员级别'] as $k=>$v}
{if (isset($vo.vip_entry) and $vo.vip_entry eq $k) or (empty($vo.vip_entry) and $k eq 0)}
<input type="radio" name="vip_entry" value="{$k}" title="{$v}" checked lay-filter="vip_entry">
{else}
<input type="radio" name="vip_entry" value="{$k}" title="{$v}" lay-filter="vip_entry">
{/if}{/foreach}
</div>
</fieldset>
{notempty name='levels'}
<fieldset>
<legend><span class="layui-badge think-bg-violet">升级用户级别</span></legend>
<label class="layui-form-item">
<select name="vip_upgrade" class="layui-select" lay-filter="vip_upgrade">
{foreach $levels as $level}{if isset($vo.vip_upgrade) and $vo.vip_upgrade eq $level.number}
<option selected value="{$level.number|default=0}">[ {$level.number|default='0'} ] {$level.name|default=''}</option>
{else}
<option value="{$level.number|default=0}">[ {$level.number|default='0'} ] {$level.name|default=''}</option>
{/if}{/foreach}
</select>
<span class="help-block">购买此商品用户可直接升级至此等级!</span>
</label>
</fieldset>
{/notempty}
{notempty name='discounts'}
<fieldset>
<legend><span class="layui-badge think-bg-violet">用户折扣方案</span></legend>
<legend><span class="layui-badge think-bg-violet">用户购买折扣方案</span></legend>
<label class="layui-form-item">
<select name="discount_id" class="layui-select" lay-search>
<option value="0"> -- 不设置 --</option>
@ -131,29 +156,26 @@
<option value="{$discount.id|default=0}">{$discount.name|default='0'}</option>
{/if}{/foreach}
</select>
<span class="help-block">用户级别达到规则可享有折扣!</span>
<span class="help-block">当用户等级达到指定等级后可享有折扣!</span>
</label>
</fieldset>
{/notempty}
{notempty name='levels'}
<!--{/notempty}-->
<!--{notempty name='upgrades'}-->
<fieldset>
<legend><span class="layui-badge think-bg-violet">限制最低购买等级</span></legend>
<label class="layui-form-item">
<select name="limit_low_vip" class="layui-select">
<option value="0"> -- 不设置 --</option>
{foreach $levels as $level}{if isset($vo.limit_low_vip) and $vo.limit_low_vip eq $level.number}
<option selected value="{$level.number|default=0}">[ {$level.number|default='0'} ] {$level.name|default=''}</option>
{foreach $upgrades as $upgrade}{if isset($vo.limit_low_vip) and $vo.limit_low_vip eq $upgrade.number}
<option selected value="{$upgrade.number|default=0}">[ {$upgrade.number|default='0'} ] {$upgrade.name|default=''}</option>
{else}
<option value="{$level.number|default=0}">[ {$level.number|default='0'} ] {$level.name|default=''}</option>
<option value="{$upgrade.number|default=0}">[ {$upgrade.number|default='0'} ] {$upgrade.name|default=''}</option>
{/if}{/foreach}
</select>
<span class="help-block">
限制此等级及低于此等级的用户不能购买!</span>
<span class="help-block">限制此等级及低于此等级的用户不能购买!</span>
</label>
</fieldset>
{/notempty}
<!--{/notempty}-->
<fieldset>
<legend><span class="layui-badge think-bg-violet">商品限购数量</span></legend>
<label class="layui-form-item">
@ -161,7 +183,7 @@
<span class="help-block">限制每人可购买数量(为 0 时不限制)!</span>
</label>
</fieldset>
</div>
</div>
<div class="layui-form-item">
@ -260,7 +282,7 @@
<label class="layui-form-item block">
<span class="font-w7 color-green">商品简介描述</span>
<textarea class="layui-textarea" placeholder="请输入商品简介描述" name="remark">{$vo.remark|default=''|raw}</textarea>
<textarea class="layui-textarea" placeholder="请输入商品简介描述" name="remarks">{$vo.remarks|default=''|raw}</textarea>
</label>
<div class="layui-form-item block">

View File

@ -67,20 +67,24 @@
商品名称:<span>{$vo.name|default='--'}</span><br>
</div>
</td>
<td class="text-left">
<td class="text-left sub-span-blue">
<div>
<!--{notempty name='clist'}-->
所属分类:{$vo.cate.name|default='-'}<br>
<!--{/notempty}-->
</div>
<div>
{notempty name='vo.mark'}{foreach $vo.mark as $mark}
<span class="notselect nowrap layui-badge layui-bg-cyan">{$mark}</span>
{notempty name='vo.marks'}{foreach $vo.marks as $mark}
<b class="notselect nowrap layui-badge layui-bg-cyan">{$mark}</b>
{/foreach}{/notempty}
</div>
<div class="nowrap">
{notempty name='vo.cateinfo'}
{:join('<span class="layui-icon layui-icon-right font-s10"></span>', $vo.cateinfo.names)}<br>
{/notempty}
</div>
</td>
<td class='nowrap'>
<div>销售状态:{eq name='vo.status' value='0'}<span class="layui-badge">已下架</span>{else}<span class="layui-badge layui-bg-green">销售中</span>{/eq}</div>
<div>
{eq name='vo.status' value='0'}<span class="layui-badge">已下架</span>{else}<span class="layui-badge layui-bg-green">销售中</span>{/eq}
{eq name='vo.vip_entry' value='0'}<span class="layui-badge">非入会礼包</span>{else}<span class="layui-badge layui-bg-green">是入会礼包</span>{/eq}
{eq name='vo.truck_type' value='0'}<span class="layui-badge">无需快递配送</span>{else}<span class="layui-badge layui-bg-green">需要快递配送</span>{/eq}
</div>
<div>创建时间:{$vo.create_at|format_datetime}</div>
</td>
<td class='nowrap sub-span-blue'>

View File

@ -21,26 +21,26 @@
<label class="layui-input-inline">
<select class="layui-select" name="mark" lay-search>
<option value="">-- 全部标签 --</option>
{foreach $marks as $mark}{if input('mark','') eq $mark}
<option selected value="{$mark}">{$mark}</option>
{foreach $marks as $mark}{if input('mark','') eq ','.$mark.','}
<option selected value=",{$mark},">{$mark}</option>
{else}
<option value="{$mark}">{$mark}</option>
<option value=",{$mark},">{$mark}</option>
{/if}{/foreach}
</select>
</label>
</div>
{/notempty}
{notempty name='clist'}
{notempty name='cates'}
<div class="layui-form-item layui-inline">
<label class="layui-form-label">商品分类</label>
<label class="layui-input-inline">
<select class="layui-select" name="cate" lay-search>
<select class="layui-select" name="cateids" lay-search>
<option value="">-- 全部分类 --</option>
{foreach $clist as $cate}{if input('cate','') eq $cate.id}
<option {$cate.sat} selected value="{$cate.id}">{$cate.spl}{$cate.name|default=''}</option>
{foreach $cates as $cate}{if input('cateids','') eq ','.$cate.id.','}
<option selected value=",{$cate.id},">{:join(' ', $cate.names)}</option>
{else}
<option {$cate.sat} value="{$cate.id}">{$cate.spl}{$cate.name|default=''}</option>
<option value=",{$cate.id},">{:join(' ', $cate.names)}</option>
{/if}{/foreach}
</select>
</label>

View File

@ -9,7 +9,7 @@
<div class="layui-form-item">
<div class="relative block">
<span class="color-green font-w7">库存数据</span>
<span class="color-desc margin-left-5">Stock Data</span>
<span class="color-desc margin-left-5">Goods Stock Data</span>
<table class="layui-table border-0 margin-0" lay-skin="line">
<colgroup>
<col style="width:auto">

View File

@ -242,7 +242,10 @@ return array(
'app\\data\\service\\NewsService' => $baseDir . '/app/data/service/NewsService.php',
'app\\data\\service\\OrderService' => $baseDir . '/app/data/service/OrderService.php',
'app\\data\\service\\PaymentService' => $baseDir . '/app/data/service/PaymentService.php',
'app\\data\\service\\PrizeService' => $baseDir . '/app/data/service/PrizeService.php',
'app\\data\\service\\RebateCurrentService' => $baseDir . '/app/data/service/RebateCurrentService.php',
'app\\data\\service\\RebateMonthService' => $baseDir . '/app/data/service/RebateMonthService.php',
'app\\data\\service\\RebateQuarterService' => $baseDir . '/app/data/service/RebateQuarterService.php',
'app\\data\\service\\RebateYearService' => $baseDir . '/app/data/service/RebateYearService.php',
'app\\data\\service\\TruckService' => $baseDir . '/app/data/service/TruckService.php',
'app\\data\\service\\UserService' => $baseDir . '/app/data/service/UserService.php',
'app\\data\\service\\payment\\AlipayPaymentService' => $baseDir . '/app/data/service/payment/AlipayPaymentService.php',

View File

@ -371,7 +371,10 @@ class ComposerStaticInit4f89fd0e0503ccf740f2fa5757825d7b
'app\\data\\service\\NewsService' => __DIR__ . '/../..' . '/app/data/service/NewsService.php',
'app\\data\\service\\OrderService' => __DIR__ . '/../..' . '/app/data/service/OrderService.php',
'app\\data\\service\\PaymentService' => __DIR__ . '/../..' . '/app/data/service/PaymentService.php',
'app\\data\\service\\PrizeService' => __DIR__ . '/../..' . '/app/data/service/PrizeService.php',
'app\\data\\service\\RebateCurrentService' => __DIR__ . '/../..' . '/app/data/service/RebateCurrentService.php',
'app\\data\\service\\RebateMonthService' => __DIR__ . '/../..' . '/app/data/service/RebateMonthService.php',
'app\\data\\service\\RebateQuarterService' => __DIR__ . '/../..' . '/app/data/service/RebateQuarterService.php',
'app\\data\\service\\RebateYearService' => __DIR__ . '/../..' . '/app/data/service/RebateYearService.php',
'app\\data\\service\\TruckService' => __DIR__ . '/../..' . '/app/data/service/TruckService.php',
'app\\data\\service\\UserService' => __DIR__ . '/../..' . '/app/data/service/UserService.php',
'app\\data\\service\\payment\\AlipayPaymentService' => __DIR__ . '/../..' . '/app/data/service/payment/AlipayPaymentService.php',

2
vendor/services.php vendored
View File

@ -1,5 +1,5 @@
<?php
// This file is automatically generated at:2021-03-10 10:48:21
// This file is automatically generated at:2021-03-11 11:29:29
declare (strict_types = 1);
return array (
0 => 'think\\admin\\Library',