mirror of
https://gitee.com/hzchunfen/erp.git
synced 2025-12-01 06:30:49 +00:00
feat: #10000 更新
This commit is contained in:
parent
0fe511bd6e
commit
b343b14acd
@ -37,6 +37,7 @@ class KttOrderQuery extends Command
|
|||||||
* Execute the console command.
|
* Execute the console command.
|
||||||
*
|
*
|
||||||
* @return mixed
|
* @return mixed
|
||||||
|
* @throws \Exception
|
||||||
*/
|
*/
|
||||||
public function handle()
|
public function handle()
|
||||||
{
|
{
|
||||||
|
|||||||
@ -9,6 +9,11 @@ class BusinessOrderFilter extends Filters
|
|||||||
return $this->builder->where('participate_no', trim($value));
|
return $this->builder->where('participate_no', trim($value));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
protected function supplyParticipateNo($value)
|
||||||
|
{
|
||||||
|
return $this->builder->where('supply_participate_no', trim($value));
|
||||||
|
}
|
||||||
|
|
||||||
protected function shopId($value)
|
protected function shopId($value)
|
||||||
{
|
{
|
||||||
return $this->builder->where('shop_id', $value);
|
return $this->builder->where('shop_id', $value);
|
||||||
|
|||||||
@ -6,6 +6,7 @@ use App\Events\StockUpdateEvent;
|
|||||||
use App\Http\Controllers\Controller;
|
use App\Http\Controllers\Controller;
|
||||||
use App\Http\Resources\GoodsSkuResource;
|
use App\Http\Resources\GoodsSkuResource;
|
||||||
use App\Imports\CombinationGoodsImport;
|
use App\Imports\CombinationGoodsImport;
|
||||||
|
use App\Models\BusinessOrderItem;
|
||||||
use App\Models\CombinationGood;
|
use App\Models\CombinationGood;
|
||||||
use App\Models\Goods;
|
use App\Models\Goods;
|
||||||
use App\Models\GoodsSku;
|
use App\Models\GoodsSku;
|
||||||
@ -20,7 +21,7 @@ class GoodsCombinationController extends Controller
|
|||||||
public function index(Request $request)
|
public function index(Request $request)
|
||||||
{
|
{
|
||||||
// ToDo
|
// ToDo
|
||||||
// 可通过子商城查找主商品
|
// 可通过子商品查找主商品
|
||||||
$skus = GoodsSku::query()
|
$skus = GoodsSku::query()
|
||||||
->with([
|
->with([
|
||||||
'combinationGoods:id,goods_sku_id,item_id,item_num',
|
'combinationGoods:id,goods_sku_id,item_id,item_num',
|
||||||
@ -29,9 +30,41 @@ class GoodsCombinationController extends Controller
|
|||||||
])
|
])
|
||||||
->where('is_combination', 1)
|
->where('is_combination', 1)
|
||||||
->filter()
|
->filter()
|
||||||
|
->orderBy('stock', 'desc')
|
||||||
->paginate($request->get('per_page'));
|
->paginate($request->get('per_page'));
|
||||||
|
$fields = implode(',', [
|
||||||
|
'shop_id',
|
||||||
|
'external_sku_id',
|
||||||
|
'sum(goods_number) as number',
|
||||||
|
'sum(already_cancel_number) as cancel_number',
|
||||||
|
]);
|
||||||
foreach ($skus as &$item) {
|
foreach ($skus as &$item) {
|
||||||
$items = [];
|
$items = [];
|
||||||
|
$lastInventoryTime = date('Y-m-d 07:00:00');
|
||||||
|
$orderDetail = BusinessOrderItem::query()
|
||||||
|
->select(DB::raw($fields))
|
||||||
|
->with(['shop:id,name'])
|
||||||
|
->where('external_sku_id', $item['external_sku_id'])
|
||||||
|
->when($lastInventoryTime, function ($query) use ($lastInventoryTime) {
|
||||||
|
$query->where('created_at', '>', $lastInventoryTime);
|
||||||
|
})
|
||||||
|
->groupBy(['shop_id', 'external_sku_id'])
|
||||||
|
->get()
|
||||||
|
->toArray();
|
||||||
|
$addOrderGoodsNum = $reduceOrderGoodsNum = 0;
|
||||||
|
if ($orderDetail) {
|
||||||
|
$addOrderGoodsNum = array_sum(array_column($orderDetail, 'number'));
|
||||||
|
$reduceOrderGoodsNum = array_sum(array_column($orderDetail, 'cancel_number'));
|
||||||
|
}
|
||||||
|
$item['order_goods_num'] = $addOrderGoodsNum - $reduceOrderGoodsNum;
|
||||||
|
$item['order_detail'] = $orderDetail;
|
||||||
|
$number = BusinessOrderItem::query()
|
||||||
|
->where('external_sku_id', $item['external_sku_id'])
|
||||||
|
->sum('goods_number');
|
||||||
|
$cancelNumber = BusinessOrderItem::query()
|
||||||
|
->where('external_sku_id', $item['external_sku_id'])
|
||||||
|
->sum('already_cancel_number');
|
||||||
|
$item['total_orders_num'] = $number - $cancelNumber;
|
||||||
foreach ($item['combinationGoods'] as $combinationItem) {
|
foreach ($item['combinationGoods'] as $combinationItem) {
|
||||||
$items[] = [
|
$items[] = [
|
||||||
'cost' => 0,
|
'cost' => 0,
|
||||||
@ -48,6 +81,9 @@ class GoodsCombinationController extends Controller
|
|||||||
'title' => $combinationItem['goodsSkuItem']['goods']['title'] . $combinationItem['goodsSkuItem']['title'],
|
'title' => $combinationItem['goodsSkuItem']['goods']['title'] . $combinationItem['goodsSkuItem']['title'],
|
||||||
'updated_at' => $combinationItem['goodsSkuItem']['updated_at'],
|
'updated_at' => $combinationItem['goodsSkuItem']['updated_at'],
|
||||||
'yesterday_num' => $combinationItem['goodsSkuItem']['yesterday_num'],
|
'yesterday_num' => $combinationItem['goodsSkuItem']['yesterday_num'],
|
||||||
|
'order_goods_num' => '请在商品列表查看',
|
||||||
|
'order_detail' => [],
|
||||||
|
'total_orders_num' => '不显示',
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
$item['children'] = $items;
|
$item['children'] = $items;
|
||||||
|
|||||||
@ -52,7 +52,7 @@ class GoodsSkusController extends Controller
|
|||||||
$query->where('day', $day);
|
$query->where('day', $day);
|
||||||
}])
|
}])
|
||||||
->where('is_combination', 0)
|
->where('is_combination', 0)
|
||||||
->orderBy('updated_at', 'desc')
|
->orderBy('stock', 'desc')
|
||||||
->paginate($request->get('per_page'));
|
->paginate($request->get('per_page'));
|
||||||
$fields = implode(',', [
|
$fields = implode(',', [
|
||||||
'shop_id',
|
'shop_id',
|
||||||
|
|||||||
@ -16,6 +16,7 @@ class BusinessOrder extends Model
|
|||||||
'is_supplier',
|
'is_supplier',
|
||||||
'cancel_status',
|
'cancel_status',
|
||||||
'after_sales_status',
|
'after_sales_status',
|
||||||
|
'supply_participate_no',
|
||||||
];
|
];
|
||||||
|
|
||||||
protected $fillable = [
|
protected $fillable = [
|
||||||
|
|||||||
@ -11,11 +11,11 @@
|
|||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item>
|
<el-form-item>
|
||||||
<el-button type="primary" @click="handleChoose(1)">筛选</el-button>
|
<el-button type="primary" @click="handleChoose(1)">筛选</el-button>
|
||||||
<el-upload ref="myUpload" action="/api/combination/goods" :multiple="false" name="combinationGoods"
|
<el-upload ref="myUpload" action="/api/combination/goods" :multiple="false" name="combinationGoods"
|
||||||
:show-file-list="false" :on-success="uploadSuccess" :before-upload="beforeUpload"
|
:show-file-list="false" :on-success="uploadSuccess" :before-upload="beforeUpload"
|
||||||
:on-error="uploadError" style="display:inline-block;margin: 0 10px 0 10px;">
|
:on-error="uploadError" style="display:inline-block;margin: 0 10px 0 10px;">
|
||||||
<el-button type="primary" plain>组合商品导入</el-button>
|
<el-button type="primary" plain>组合商品导入</el-button>
|
||||||
</el-upload>
|
</el-upload>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-form>
|
</el-form>
|
||||||
</div>
|
</div>
|
||||||
@ -44,7 +44,25 @@
|
|||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column prop="num" label="组合数量"></el-table-column>
|
<el-table-column prop="num" label="组合数量"></el-table-column>
|
||||||
<el-table-column prop="reference_price" label="售价"></el-table-column>
|
<el-table-column prop="reference_price" label="售价"></el-table-column>
|
||||||
<el-table-column prop="stock" label="库存"></el-table-column>
|
<el-table-column sortable label="今日7点以后订单">
|
||||||
|
<template slot-scope="scope">
|
||||||
|
<div>
|
||||||
|
<span>{{ scope.row.order_goods_num }}</span>
|
||||||
|
</div>
|
||||||
|
<el-popover placement="right-start" trigger="hover" v-if="scope.row.order_detail.length !== 0">
|
||||||
|
<div>
|
||||||
|
<span v-for="(j, index) in scope.row.order_detail" :key="index">
|
||||||
|
<div>{{ j.shop.name }}:{{ j.number }}</div>
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
|
<el-button class="btn11" type="text" slot="reference"><img src="../../css/img/眼睛.png"
|
||||||
|
alt="" />
|
||||||
|
</el-button>
|
||||||
|
</el-popover>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column sortable prop="total_orders_num" label="累计订单"></el-table-column>
|
||||||
|
<el-table-column sortable prop="stock" label="库存"></el-table-column>
|
||||||
<el-table-column prop="status" label="状态"> </el-table-column>
|
<el-table-column prop="status" label="状态"> </el-table-column>
|
||||||
<el-table-column label="操作" width="130">
|
<el-table-column label="操作" width="130">
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
@ -58,7 +76,7 @@
|
|||||||
<!-- 分页功能 -->
|
<!-- 分页功能 -->
|
||||||
<div class="page">
|
<div class="page">
|
||||||
<el-pagination @size-change="handleSizeChange" @current-change="handleCurrentChange"
|
<el-pagination @size-change="handleSizeChange" @current-change="handleCurrentChange"
|
||||||
:current-page="current_page" :page-sizes="[15, 50, 100]" :page-size="per_page"
|
:current-page="current_page" :page-sizes="[15, 50, 100, 150, 200]" :page-size="per_page"
|
||||||
layout="total, sizes, prev, pager, next, jumper" :total="Paginationdata.total">
|
layout="total, sizes, prev, pager, next, jumper" :total="Paginationdata.total">
|
||||||
</el-pagination>
|
</el-pagination>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@ -224,11 +224,10 @@
|
|||||||
<div v-if="stock">
|
<div v-if="stock">
|
||||||
<el-input v-model="scope.row.daily.inventory"></el-input>
|
<el-input v-model="scope.row.daily.inventory"></el-input>
|
||||||
</div>
|
</div>
|
||||||
<el-popover placement="right-start" trigger="hover" :content="
|
<el-popover placement="right-start" trigger="hover" :content="scope.row.daily.inventory_time
|
||||||
scope.row.daily.inventory_time
|
|
||||||
? scope.row.daily.inventory_time
|
? scope.row.daily.inventory_time
|
||||||
: ''
|
: ''
|
||||||
">
|
">
|
||||||
<div v-if="!stock" slot="reference">
|
<div v-if="!stock" slot="reference">
|
||||||
{{ scope.row.daily.inventory }}
|
{{ scope.row.daily.inventory }}
|
||||||
</div>
|
</div>
|
||||||
@ -257,7 +256,7 @@
|
|||||||
<!-- 分页功能 -->
|
<!-- 分页功能 -->
|
||||||
<div class="page">
|
<div class="page">
|
||||||
<el-pagination @size-change="handleSizeChange" @current-change="handleCurrentChange"
|
<el-pagination @size-change="handleSizeChange" @current-change="handleCurrentChange"
|
||||||
:current-page="current_page" :page-sizes="[15, 50, 100]" :page-size="per_page"
|
:current-page="current_page" :page-sizes="[15, 50, 100, 150, 200]" :page-size="per_page"
|
||||||
layout="total, sizes, prev, pager, next, jumper" :total="Paginationdata.total">
|
layout="total, sizes, prev, pager, next, jumper" :total="Paginationdata.total">
|
||||||
</el-pagination>
|
</el-pagination>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@ -50,6 +50,13 @@
|
|||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
|
||||||
|
<el-form-item label="帮卖团跟团号:">
|
||||||
|
<el-input v-model="form.participate_no" placeholder="帮卖团跟团号"></el-input>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="自卖团跟团号:">
|
||||||
|
<el-input v-model="form.supply_participate_no" placeholder="自卖团跟团号"></el-input>
|
||||||
|
</el-form-item>
|
||||||
|
|
||||||
<el-form-item>
|
<el-form-item>
|
||||||
<el-button type="primary" @click="handleChoose">筛选</el-button>
|
<el-button type="primary" @click="handleChoose">筛选</el-button>
|
||||||
<el-button plain @click="handleReChoose">重置筛选</el-button>
|
<el-button plain @click="handleReChoose">重置筛选</el-button>
|
||||||
@ -70,7 +77,8 @@
|
|||||||
<el-table-column prop="is_supplier" label="订单类型"></el-table-column>
|
<el-table-column prop="is_supplier" label="订单类型"></el-table-column>
|
||||||
<el-table-column prop="cancel_status" label="订单状态"></el-table-column>
|
<el-table-column prop="cancel_status" label="订单状态"></el-table-column>
|
||||||
<el-table-column prop="after_sales_status" label="售后状态"></el-table-column>
|
<el-table-column prop="after_sales_status" label="售后状态"></el-table-column>
|
||||||
<el-table-column prop="participate_no" label="跟团号"></el-table-column>
|
<el-table-column prop="supply_participate_no" label="自卖团跟团号"></el-table-column>
|
||||||
|
<el-table-column prop="participate_no" label="帮卖团跟团号"></el-table-column>
|
||||||
<el-table-column label="商品信息">
|
<el-table-column label="商品信息">
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
<div v-for="item in scope.row.items" :key="item.id">
|
<div v-for="item in scope.row.items" :key="item.id">
|
||||||
@ -134,6 +142,8 @@ export default {
|
|||||||
is_supplier: "",
|
is_supplier: "",
|
||||||
cancel_status: "",
|
cancel_status: "",
|
||||||
after_sales_status: "",
|
after_sales_status: "",
|
||||||
|
supply_participate_no: "",
|
||||||
|
participate_no: "",
|
||||||
},
|
},
|
||||||
dialogVisible: false,
|
dialogVisible: false,
|
||||||
loading: true,
|
loading: true,
|
||||||
@ -219,6 +229,8 @@ export default {
|
|||||||
is_supplier: "",
|
is_supplier: "",
|
||||||
cancel_status: "",
|
cancel_status: "",
|
||||||
after_sales_status: "",
|
after_sales_status: "",
|
||||||
|
supply_participate_no: "",
|
||||||
|
participate_no: "",
|
||||||
};
|
};
|
||||||
this.getPlatOrderList();
|
this.getPlatOrderList();
|
||||||
},
|
},
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user