仓库商品新增规格库存查询、后台首页新增钩子、动态列表数据参数支持min和max、库存修改优化
parent
b0ddebd010
commit
c7b1ec0780
|
|
@ -129,9 +129,52 @@ class Index extends Common
|
|||
}
|
||||
}
|
||||
|
||||
// 钩子初始化
|
||||
$this->PluginsInit();
|
||||
return MyView();
|
||||
}
|
||||
|
||||
/**
|
||||
* 钩子初始化
|
||||
* @author Devil
|
||||
* @blog http://gong.gg/
|
||||
* @version 1.0.0
|
||||
* @date 2018-12-07
|
||||
* @desc description
|
||||
*/
|
||||
private function PluginsInit()
|
||||
{
|
||||
// 顶部钩子
|
||||
MyViewAssign('plugins_admin_view_index_init_top_data', MyEventTrigger('plugins_admin_view_index_init_top', ['hook_name'=>'plugins_admin_view_index_init_top', 'is_backend'=>false, 'admin'=>$this->admin]));
|
||||
|
||||
// 公告顶部钩子
|
||||
MyViewAssign('plugins_admin_view_index_init_notice_top_data', MyEventTrigger('plugins_admin_view_index_init_notice_top', ['hook_name'=>'plugins_admin_view_index_init_notice_top', 'is_backend'=>false, 'admin'=>$this->admin]));
|
||||
|
||||
// 基础统计顶部钩子
|
||||
MyViewAssign('plugins_admin_view_index_init_stats_base_top_data', MyEventTrigger('plugins_admin_view_index_init_stats_base_top', ['hook_name'=>'plugins_admin_view_index_init_stats_base_top', 'is_backend'=>false, 'admin'=>$this->admin]));
|
||||
|
||||
// 基础统计内部顶部钩子
|
||||
MyViewAssign('plugins_admin_view_index_init_stats_inside_base_top_data', MyEventTrigger('plugins_admin_view_index_init_stats_inside_base_top', ['hook_name'=>'plugins_admin_view_index_init_stats_inside_base_top', 'is_backend'=>false, 'admin'=>$this->admin]));
|
||||
|
||||
// 订单金额走势统计内部顶部钩子
|
||||
MyViewAssign('plugins_admin_view_index_init_stats_inside_amount_trend_top_data', MyEventTrigger('plugins_admin_view_index_init_stats_inside_amount_trend_top', ['hook_name'=>'plugins_admin_view_index_init_stats_inside_amount_trend_top', 'is_backend'=>false, 'admin'=>$this->admin]));
|
||||
|
||||
// 订单交易走势统计内部顶部钩子
|
||||
MyViewAssign('plugins_admin_view_index_init_stats_inside_order_trading_top_data', MyEventTrigger('plugins_admin_view_index_init_stats_inside_order_trading_top', ['hook_name'=>'plugins_admin_view_index_init_stats_inside_order_trading_top', 'is_backend'=>false, 'admin'=>$this->admin]));
|
||||
|
||||
// 组合商品和支付统计内部顶部钩子
|
||||
MyViewAssign('plugins_admin_view_index_init_stats_inside_compose_top_data', MyEventTrigger('plugins_admin_view_index_init_stats_inside_compose_top', ['hook_name'=>'plugins_admin_view_index_init_stats_inside_compose_top', 'is_backend'=>false, 'admin'=>$this->admin]));
|
||||
|
||||
// 地域分布统计内部顶部钩子
|
||||
MyViewAssign('plugins_admin_view_index_init_stats_inside_region_top_data', MyEventTrigger('plugins_admin_view_index_init_stats_inside_region_top', ['hook_name'=>'plugins_admin_view_index_init_stats_inside_region_top', 'is_backend'=>false, 'admin'=>$this->admin]));
|
||||
|
||||
// 系统信息顶部钩子
|
||||
MyViewAssign('plugins_admin_view_index_init_system_info_top_data', MyEventTrigger('plugins_admin_view_index_init_system_info_top', ['hook_name'=>'plugins_admin_view_index_init_system_info_top', 'is_backend'=>false, 'admin'=>$this->admin]));
|
||||
|
||||
// 底部钩子
|
||||
MyViewAssign('plugins_admin_view_index_init_bottom_data', MyEventTrigger('plugins_admin_view_index_init_bottom', ['hook_name'=>'plugins_admin_view_index_init_bottom', 'is_backend'=>false, 'admin'=>$this->admin]));
|
||||
}
|
||||
|
||||
/**
|
||||
* 应用商店帐号绑定
|
||||
* @author Devil
|
||||
|
|
|
|||
|
|
@ -49,6 +49,7 @@ class Brand
|
|||
'delete_url' => MyUrl('admin/brand/delete'),
|
||||
'delete_key' => 'ids',
|
||||
'detail_title' => '基础信息',
|
||||
'is_middle' => 0,
|
||||
],
|
||||
// 表单配置
|
||||
'form' => [
|
||||
|
|
|
|||
|
|
@ -50,6 +50,7 @@ class Warehouse
|
|||
'is_delete' => 1,
|
||||
'delete_url' => MyUrl('admin/warehouse/delete'),
|
||||
'delete_key' => 'ids',
|
||||
'is_middle' => 0,
|
||||
],
|
||||
// 表单配置
|
||||
'form' => [
|
||||
|
|
|
|||
|
|
@ -49,6 +49,7 @@ class WarehouseGoods
|
|||
'delete_url' => MyUrl('admin/warehousegoods/delete'),
|
||||
'delete_key' => 'ids',
|
||||
'detail_title' => '基础信息',
|
||||
'is_middle' => 0,
|
||||
],
|
||||
// 表单配置
|
||||
'form' => [
|
||||
|
|
@ -61,28 +62,30 @@ class WarehouseGoods
|
|||
'width' => 80,
|
||||
],
|
||||
[
|
||||
'label' => '基础信息',
|
||||
'view_type' => 'module',
|
||||
'view_key' => 'warehousegoods/module/goods',
|
||||
'grid_size' => 'lg',
|
||||
'is_sort' => 1,
|
||||
'sort_field' => 'goods_id',
|
||||
'search_config' => [
|
||||
'label' => '基础信息',
|
||||
'view_type' => 'module',
|
||||
'view_key' => 'warehousegoods/module/goods',
|
||||
'grid_size' => 'lg',
|
||||
'is_sort' => 1,
|
||||
'sort_field' => 'goods_id',
|
||||
'params_where_name' => 'goods_id',
|
||||
'search_config' => [
|
||||
'form_type' => 'input',
|
||||
'form_name' => 'id',
|
||||
'form_name' => 'wg.id',
|
||||
'where_type_custom' => 'in',
|
||||
'where_value_custom' => 'WhereGoodsInfo',
|
||||
'placeholder' => '请输入商品名称/型号',
|
||||
],
|
||||
],
|
||||
[
|
||||
'label' => '仓库',
|
||||
'view_type' => 'field',
|
||||
'view_key' => 'warehouse_name',
|
||||
'is_sort' => 1,
|
||||
'label' => '仓库',
|
||||
'view_type' => 'field',
|
||||
'view_key' => 'warehouse_name',
|
||||
'is_sort' => 1,
|
||||
'params_where_name' => 'warehouse_id',
|
||||
'search_config' => [
|
||||
'form_type' => 'select',
|
||||
'form_name' => 'warehouse_id',
|
||||
'form_name' => 'wg.warehouse_id',
|
||||
'data' => $this->WarehouseList(),
|
||||
'data_key' => 'id',
|
||||
'data_name' => 'name',
|
||||
|
|
@ -91,15 +94,17 @@ class WarehouseGoods
|
|||
],
|
||||
],
|
||||
[
|
||||
'label' => '是否启用',
|
||||
'view_type' => 'status',
|
||||
'view_key' => 'is_enable',
|
||||
'post_url' => MyUrl('admin/warehousegoods/statusupdate'),
|
||||
'is_form_su' => 1,
|
||||
'align' => 'center',
|
||||
'is_sort' => 1,
|
||||
'label' => '是否启用',
|
||||
'view_type' => 'status',
|
||||
'view_key' => 'is_enable',
|
||||
'post_url' => MyUrl('admin/warehousegoods/statusupdate'),
|
||||
'is_form_su' => 1,
|
||||
'align' => 'center',
|
||||
'is_sort' => 1,
|
||||
'params_where_name' => 'is_enable',
|
||||
'search_config' => [
|
||||
'form_type' => 'select',
|
||||
'form_name' => 'wg.is_enable',
|
||||
'where_type' => 'in',
|
||||
'data' => MyConst('common_is_enable_list'),
|
||||
'data_key' => 'id',
|
||||
|
|
@ -108,30 +113,48 @@ class WarehouseGoods
|
|||
],
|
||||
],
|
||||
[
|
||||
'label' => '总库存',
|
||||
'view_type' => 'field',
|
||||
'view_key' => 'inventory',
|
||||
'is_sort' => 1,
|
||||
'label' => '总库存',
|
||||
'view_type' => 'field',
|
||||
'view_key' => 'inventory',
|
||||
'is_sort' => 1,
|
||||
'params_where_name' => 'inventory',
|
||||
'search_config' => [
|
||||
'form_type' => 'section',
|
||||
'form_name' => 'wg.inventory',
|
||||
],
|
||||
],
|
||||
[
|
||||
'label' => '创建时间',
|
||||
'view_type' => 'field',
|
||||
'view_key' => 'add_time',
|
||||
'is_sort' => 1,
|
||||
'label' => '规格库存',
|
||||
'view_type' => 'module',
|
||||
'view_key' => 'warehousegoods/module/spec_inventory',
|
||||
'is_sort' => 1,
|
||||
'grid_size' => 'lg',
|
||||
'params_where_name' => 'spec_inventory',
|
||||
'search_config' => [
|
||||
'form_type' => 'datetime',
|
||||
'form_type' => 'section',
|
||||
'form_name' => 'wgs.inventory',
|
||||
],
|
||||
],
|
||||
[
|
||||
'label' => '更新时间',
|
||||
'view_type' => 'field',
|
||||
'view_key' => 'upd_time',
|
||||
'label' => '创建时间',
|
||||
'view_type' => 'field',
|
||||
'view_key' => 'add_time',
|
||||
'is_sort' => 1,
|
||||
'params_where_name' => 'add_time',
|
||||
'search_config' => [
|
||||
'form_type' => 'datetime',
|
||||
'form_name' => 'wg.add_time',
|
||||
],
|
||||
],
|
||||
[
|
||||
'label' => '更新时间',
|
||||
'view_type' => 'field',
|
||||
'view_key' => 'upd_time',
|
||||
'params_where_name' => 'upd_time',
|
||||
'is_sort' => 1,
|
||||
'search_config' => [
|
||||
'form_type' => 'datetime',
|
||||
'form_name' => 'wg.upd_time',
|
||||
],
|
||||
],
|
||||
[
|
||||
|
|
|
|||
|
|
@ -3,6 +3,20 @@
|
|||
<!-- right content start -->
|
||||
<div class="content-right" data-url="{{:MyUrl('admin/index/stats')}}">
|
||||
<div class="content">
|
||||
<!-- 顶部钩子 -->
|
||||
{{if isset($shopxo_is_develop) and $shopxo_is_develop eq true}}
|
||||
<div class="plugins-tag">
|
||||
<span>plugins_admin_view_index_init_top</span>
|
||||
</div>
|
||||
{{/if}}
|
||||
{{if !empty($plugins_admin_view_index_init_top_data) and is_array($plugins_admin_view_index_init_top_data)}}
|
||||
{{foreach $plugins_admin_view_index_init_top_data as $hook}}
|
||||
{{if is_string($hook) or is_int($hook)}}
|
||||
{{$hook|raw}}
|
||||
{{/if}}
|
||||
{{/foreach}}
|
||||
{{/if}}
|
||||
|
||||
{{if $is_system_show_base eq 1}}
|
||||
<!-- 顶部提示信息 -->
|
||||
{{if !empty($site_store_info) and !empty($site_store_info['base']) and !empty($site_store_info['base']['site_top_notice'])}}
|
||||
|
|
@ -48,6 +62,20 @@
|
|||
</div>
|
||||
{{/if}}
|
||||
|
||||
<!-- 公告顶部钩子 -->
|
||||
{{if isset($shopxo_is_develop) and $shopxo_is_develop eq true}}
|
||||
<div class="plugins-tag">
|
||||
<span>plugins_admin_view_index_init_notice_top</span>
|
||||
</div>
|
||||
{{/if}}
|
||||
{{if !empty($plugins_admin_view_index_init_notice_top_data) and is_array($plugins_admin_view_index_init_notice_top_data)}}
|
||||
{{foreach $plugins_admin_view_index_init_notice_top_data as $hook}}
|
||||
{{if is_string($hook) or is_int($hook)}}
|
||||
{{$hook|raw}}
|
||||
{{/if}}
|
||||
{{/foreach}}
|
||||
{{/if}}
|
||||
|
||||
<!-- 后台公告 -->
|
||||
{{if !empty($admin_notice)}}
|
||||
<div class="am-alert am-alert-danger" data-am-alert>
|
||||
|
|
@ -56,8 +84,36 @@
|
|||
</div>
|
||||
{{/if}}
|
||||
|
||||
<!-- 基础统计基础顶部钩子 -->
|
||||
{{if isset($shopxo_is_develop) and $shopxo_is_develop eq true}}
|
||||
<div class="plugins-tag">
|
||||
<span>plugins_admin_view_index_init_stats_base_top</span>
|
||||
</div>
|
||||
{{/if}}
|
||||
{{if !empty($plugins_admin_view_index_init_stats_base_top_data) and is_array($plugins_admin_view_index_init_stats_base_top_data)}}
|
||||
{{foreach $plugins_admin_view_index_init_stats_base_top_data as $hook}}
|
||||
{{if is_string($hook) or is_int($hook)}}
|
||||
{{$hook|raw}}
|
||||
{{/if}}
|
||||
{{/foreach}}
|
||||
{{/if}}
|
||||
|
||||
<!-- 是否展示统计数据 -->
|
||||
{{if isset($is_stats) and $is_stats eq 1}}
|
||||
<!-- 基础统计内部顶部钩子 -->
|
||||
{{if isset($shopxo_is_develop) and $shopxo_is_develop eq true}}
|
||||
<div class="plugins-tag">
|
||||
<span>plugins_admin_view_index_init_stats_inside_base_top</span>
|
||||
</div>
|
||||
{{/if}}
|
||||
{{if !empty($plugins_admin_view_index_init_stats_inside_base_top_data) and is_array($plugins_admin_view_index_init_stats_inside_base_top_data)}}
|
||||
{{foreach $plugins_admin_view_index_init_stats_inside_base_top_data as $hook}}
|
||||
{{if is_string($hook) or is_int($hook)}}
|
||||
{{$hook|raw}}
|
||||
{{/if}}
|
||||
{{/foreach}}
|
||||
{{/if}}
|
||||
|
||||
<!-- 基础统计 -->
|
||||
<div class="block-container shopxo-base">
|
||||
<div class="block-title echarts-title">
|
||||
|
|
@ -177,6 +233,20 @@
|
|||
</ul>
|
||||
</div>
|
||||
|
||||
<!-- 订单金额走势统计内部顶部钩子 -->
|
||||
{{if isset($shopxo_is_develop) and $shopxo_is_develop eq true}}
|
||||
<div class="plugins-tag">
|
||||
<span>plugins_admin_view_index_init_stats_inside_amount_trend_top</span>
|
||||
</div>
|
||||
{{/if}}
|
||||
{{if !empty($plugins_admin_view_index_init_stats_inside_amount_trend_top_data) and is_array($plugins_admin_view_index_init_stats_inside_amount_trend_top_data)}}
|
||||
{{foreach $plugins_admin_view_index_init_stats_inside_amount_trend_top_data as $hook}}
|
||||
{{if is_string($hook) or is_int($hook)}}
|
||||
{{$hook|raw}}
|
||||
{{/if}}
|
||||
{{/foreach}}
|
||||
{{/if}}
|
||||
|
||||
<!-- 订单成交金额走势,收入统计权限判断-->
|
||||
{{if isset($is_income) and $is_income eq true}}
|
||||
<div class="block-container">
|
||||
|
|
@ -199,6 +269,20 @@
|
|||
</div>
|
||||
{{/if}}
|
||||
|
||||
<!-- 订单交易走势统计内部顶部钩子 -->
|
||||
{{if isset($shopxo_is_develop) and $shopxo_is_develop eq true}}
|
||||
<div class="plugins-tag">
|
||||
<span>plugins_admin_view_index_init_stats_inside_order_trading_top</span>
|
||||
</div>
|
||||
{{/if}}
|
||||
{{if !empty($plugins_admin_view_index_init_stats_inside_order_trading_top_data) and is_array($plugins_admin_view_index_init_stats_inside_order_trading_top_data)}}
|
||||
{{foreach $plugins_admin_view_index_init_stats_inside_order_trading_top_data as $hook}}
|
||||
{{if is_string($hook) or is_int($hook)}}
|
||||
{{$hook|raw}}
|
||||
{{/if}}
|
||||
{{/foreach}}
|
||||
{{/if}}
|
||||
|
||||
<!-- 订单交易走势 -->
|
||||
<div class="block-container">
|
||||
<div class="block-title echarts-title">
|
||||
|
|
@ -219,6 +303,20 @@
|
|||
<div id="echarts-order-trading"></div>
|
||||
</div>
|
||||
|
||||
<!-- 组合商品和支付统计内部顶部钩子 -->
|
||||
{{if isset($shopxo_is_develop) and $shopxo_is_develop eq true}}
|
||||
<div class="plugins-tag">
|
||||
<span>plugins_admin_view_index_init_stats_inside_compose_top</span>
|
||||
</div>
|
||||
{{/if}}
|
||||
{{if !empty($plugins_admin_view_index_init_stats_inside_compose_top_data) and is_array($plugins_admin_view_index_init_stats_inside_compose_top_data)}}
|
||||
{{foreach $plugins_admin_view_index_init_stats_inside_compose_top_data as $hook}}
|
||||
{{if is_string($hook) or is_int($hook)}}
|
||||
{{$hook|raw}}
|
||||
{{/if}}
|
||||
{{/foreach}}
|
||||
{{/if}}
|
||||
|
||||
<!-- 组合 -->
|
||||
<ul class="am-avg-sm-1 am-avg-sm-2 am-avg-lg-2 block-combination-container-2">
|
||||
<li>
|
||||
|
|
@ -263,6 +361,20 @@
|
|||
</li>
|
||||
</ul>
|
||||
|
||||
<!-- 地域分布统计内部顶部钩子 -->
|
||||
{{if isset($shopxo_is_develop) and $shopxo_is_develop eq true}}
|
||||
<div class="plugins-tag">
|
||||
<span>plugins_admin_view_index_init_stats_inside_region_top</span>
|
||||
</div>
|
||||
{{/if}}
|
||||
{{if !empty($plugins_admin_view_index_init_stats_inside_region_top_data) and is_array($plugins_admin_view_index_init_stats_inside_region_top_data)}}
|
||||
{{foreach $plugins_admin_view_index_init_stats_inside_region_top_data as $hook}}
|
||||
{{if is_string($hook) or is_int($hook)}}
|
||||
{{$hook|raw}}
|
||||
{{/if}}
|
||||
{{/foreach}}
|
||||
{{/if}}
|
||||
|
||||
<!-- 订单地域分布 -->
|
||||
<div class="am-nbfc {{if $is_system_show_base eq 0}}am-padding-bottom-sm{{/if}}">
|
||||
<div class="block-container {{if $is_system_show_base eq 0}}am-margin-bottom-0{{/if}}">
|
||||
|
|
@ -292,6 +404,20 @@
|
|||
</div>
|
||||
{{/if}}
|
||||
|
||||
<!-- 系统信息顶部钩子 -->
|
||||
{{if isset($shopxo_is_develop) and $shopxo_is_develop eq true}}
|
||||
<div class="plugins-tag">
|
||||
<span>plugins_admin_view_index_init_system_info_top</span>
|
||||
</div>
|
||||
{{/if}}
|
||||
{{if !empty($plugins_admin_view_index_init_system_info_top_data) and is_array($plugins_admin_view_index_init_system_info_top_data)}}
|
||||
{{foreach $plugins_admin_view_index_init_system_info_top_data as $hook}}
|
||||
{{if is_string($hook) or is_int($hook)}}
|
||||
{{$hook|raw}}
|
||||
{{/if}}
|
||||
{{/foreach}}
|
||||
{{/if}}
|
||||
|
||||
<!-- 系统信息 -->
|
||||
{{if $is_system_show_base eq 1}}
|
||||
<ul class="am-avg-sm-1 am-avg-sm-2 am-avg-lg-2 block-combination-container-2 am-padding-bottom-sm">
|
||||
|
|
@ -364,6 +490,20 @@
|
|||
</li>
|
||||
</ul>
|
||||
{{/if}}
|
||||
|
||||
<!-- 底部钩子 -->
|
||||
{{if isset($shopxo_is_develop) and $shopxo_is_develop eq true}}
|
||||
<div class="plugins-tag">
|
||||
<span>plugins_admin_view_index_init_bottom</span>
|
||||
</div>
|
||||
{{/if}}
|
||||
{{if !empty($plugins_admin_view_index_init_bottom_data) and is_array($plugins_admin_view_index_init_bottom_data)}}
|
||||
{{foreach $plugins_admin_view_index_init_bottom_data as $hook}}
|
||||
{{if is_string($hook) or is_int($hook)}}
|
||||
{{$hook|raw}}
|
||||
{{/if}}
|
||||
{{/foreach}}
|
||||
{{/if}}
|
||||
</div>
|
||||
</div>
|
||||
<!-- right content end -->
|
||||
|
|
|
|||
|
|
@ -0,0 +1,12 @@
|
|||
{{if !empty($module_data['spec']) and is_array($module_data['spec'])}}
|
||||
<div class="am-scrollable-vertical spec-inventory-list">
|
||||
<ul>
|
||||
{{foreach $module_data.spec as $sv}}
|
||||
<li class="am-nbfc">
|
||||
<p class="spec-name am-fl">{{if empty($sv['spec'])}}默认规格{{else /}}{{$sv.spec}}{{/if}}</p>
|
||||
<strong class="am-fr">{{$sv.inventory}}</strong>
|
||||
</li>
|
||||
{{/foreach}}
|
||||
</ul>
|
||||
</div>
|
||||
{{/if}}
|
||||
|
|
@ -433,6 +433,14 @@ class FormHandleModule
|
|||
if(array_key_exists($params_where_name, $this->out_params) && $this->out_params[$params_where_name] !== null && $this->out_params[$params_where_name] !== '')
|
||||
{
|
||||
$this->out_params[$form_key] = $this->out_params[$params_where_name];
|
||||
// min字段
|
||||
} elseif(array_key_exists($params_where_name.'_min', $this->out_params) && $this->out_params[$params_where_name.'_min'] !== null && $this->out_params[$params_where_name.'_min'] !== '')
|
||||
{
|
||||
$this->out_params[$form_key.'_min'] = $this->out_params[$params_where_name.'_min'];
|
||||
// max字段
|
||||
} elseif(array_key_exists($params_where_name.'_max', $this->out_params) && $this->out_params[$params_where_name.'_max'] !== null && $this->out_params[$params_where_name.'_max'] !== '')
|
||||
{
|
||||
$this->out_params[$form_key.'_max'] = $this->out_params[$params_where_name.'_max'];
|
||||
}
|
||||
|
||||
// 根据组件类型处理
|
||||
|
|
|
|||
|
|
@ -2004,7 +2004,7 @@ class GoodsService
|
|||
public static function GoodsDeleteHandle($goods_ids)
|
||||
{
|
||||
// 删除商品
|
||||
if(!Db::name('Goods')->where(['id'=>$goods_ids])->delete())
|
||||
if(Db::name('Goods')->where(['id'=>$goods_ids])->delete() === false)
|
||||
{
|
||||
throw new \Exception('商品删除失败');
|
||||
}
|
||||
|
|
|
|||
|
|
@ -38,12 +38,12 @@ class WarehouseGoodsService
|
|||
public static function WarehouseGoodsList($params = [])
|
||||
{
|
||||
$where = empty($params['where']) ? [] : $params['where'];
|
||||
$field = empty($params['field']) ? '*' : $params['field'];
|
||||
$field = empty($params['field']) ? 'wg.*' : $params['field'];
|
||||
$m = isset($params['m']) ? intval($params['m']) : 0;
|
||||
$n = isset($params['n']) ? intval($params['n']) : 10;
|
||||
|
||||
$order_by = empty($params['order_by']) ? 'id desc' : trim($params['order_by']);
|
||||
$data = Db::name('WarehouseGoods')->field($field)->where($where)->order($order_by)->limit($m, $n)->select()->toArray();
|
||||
$order_by = empty($params['order_by']) ? 'wg.id desc' : trim($params['order_by']);
|
||||
$data = Db::name('WarehouseGoods')->alias('wg')->join('warehouse_goods_spec wgs', 'wg.id=wgs.warehouse_goods_id')->field($field)->where($where)->group('wg.id')->order($order_by)->limit($m, $n)->select()->toArray();
|
||||
return DataReturn('处理成功', 0, self::DataHandle($data));
|
||||
}
|
||||
|
||||
|
|
@ -100,33 +100,53 @@ class WarehouseGoodsService
|
|||
}
|
||||
}
|
||||
|
||||
// 商品规格库存
|
||||
$spec_inventory = [];
|
||||
$temp_inventory = Db::name('WarehouseGoodsSpec')->where(['warehouse_goods_id'=>array_column($data, 'id')])->field('warehouse_goods_id,inventory,spec')->select()->toArray();
|
||||
if(!empty($temp_inventory))
|
||||
{
|
||||
foreach($temp_inventory as $iv)
|
||||
{
|
||||
$temp = empty($iv['spec']) ? [] : json_decode($iv['spec'], true);
|
||||
$iv['spec'] = (!empty($temp) && is_array($temp)) ? implode(' / ', array_column($temp, 'value')) : '';
|
||||
if(!array_key_exists($iv['warehouse_goods_id'], $spec_inventory))
|
||||
{
|
||||
$spec_inventory[$iv['warehouse_goods_id']] = [];
|
||||
}
|
||||
$spec_inventory[$iv['warehouse_goods_id']][] = $iv;
|
||||
}
|
||||
}
|
||||
|
||||
// 数据处理
|
||||
foreach($data as &$v)
|
||||
{
|
||||
// 用户
|
||||
if(isset($v['user_id']))
|
||||
if(array_key_exists('user_id', $v))
|
||||
{
|
||||
$v['user'] = UserService::GetUserViewInfo($v['user_id']);
|
||||
}
|
||||
|
||||
// 商品信息
|
||||
if(isset($v['goods_id']))
|
||||
if(array_key_exists('goods_id', $v))
|
||||
{
|
||||
$v['goods'] = isset($goods[$v['goods_id']]) ? $goods[$v['goods_id']] : [];
|
||||
}
|
||||
|
||||
// 仓库
|
||||
if(isset($v['warehouse_id']))
|
||||
if(array_key_exists('warehouse_id', $v))
|
||||
{
|
||||
$v['warehouse_name'] = isset($warehouse[$v['warehouse_id']]) ? $warehouse[$v['warehouse_id']] : '';
|
||||
}
|
||||
|
||||
// 规格
|
||||
$v['spec'] = (empty($spec_inventory) || !array_key_exists($v['id'], $spec_inventory)) ? [] : $spec_inventory[$v['id']];
|
||||
|
||||
// 时间
|
||||
if(isset($v['add_time']))
|
||||
if(array_key_exists('add_time', $v))
|
||||
{
|
||||
$v['add_time'] = date('Y-m-d H:i:s', $v['add_time']);
|
||||
}
|
||||
if(isset($v['upd_time']))
|
||||
if(array_key_exists('upd_time', $v))
|
||||
{
|
||||
$v['upd_time'] = empty($v['upd_time']) ? '' : date('Y-m-d H:i:s', $v['upd_time']);
|
||||
}
|
||||
|
|
@ -146,7 +166,7 @@ class WarehouseGoodsService
|
|||
*/
|
||||
public static function WarehouseGoodsTotal($where = [])
|
||||
{
|
||||
return (int) Db::name('WarehouseGoods')->where($where)->count();
|
||||
return (int) Db::name('WarehouseGoods')->alias('wg')->join('warehouse_goods_spec wgs', 'wg.id=wgs.warehouse_goods_id')->where($where)->count('distinct wg.id');
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -56,3 +56,20 @@
|
|||
.goods-page-container {
|
||||
height: 40px;
|
||||
}
|
||||
|
||||
/**
|
||||
* 数据列表规格展示
|
||||
*/
|
||||
.spec-inventory-list {
|
||||
height: 100px;
|
||||
}
|
||||
.spec-inventory-list ul li .spec-name {
|
||||
width: calc(100% - 75px);
|
||||
}
|
||||
.spec-inventory-list ul li:not(:last-child) {
|
||||
border-bottom: 1px solid #eee;
|
||||
padding: 3px 0;
|
||||
}
|
||||
.spec-inventory-list ul li:first-child {
|
||||
padding-top: 0;
|
||||
}
|
||||
Loading…
Reference in New Issue