mirror of
https://gitee.com/hzchunfen/erp.git
synced 2025-12-01 14:40:44 +00:00
feat: #10000 优化
This commit is contained in:
parent
25ac64e0e5
commit
3cb13c933c
@ -27,9 +27,13 @@ class GroupsController extends Controller
|
|||||||
public function index(Request $request)
|
public function index(Request $request)
|
||||||
{
|
{
|
||||||
$groups = Groups::query()
|
$groups = Groups::query()
|
||||||
|
->with(['shop:id,name'])
|
||||||
->where('parent_id', 0)
|
->where('parent_id', 0)
|
||||||
->filter()
|
->filter()
|
||||||
->paginate($request->get('per_page'));
|
->paginate($request->get('per_page'));
|
||||||
|
foreach ($groups as &$group) {
|
||||||
|
$group['children'] = Groups::query()->with(['shop:id,name'])->where('parent_id', $group->id)->get();
|
||||||
|
}
|
||||||
|
|
||||||
return GroupsResource::collection($groups);
|
return GroupsResource::collection($groups);
|
||||||
}
|
}
|
||||||
@ -89,7 +93,6 @@ class GroupsController extends Controller
|
|||||||
'limit_buy' => isset($changeData[$sku['id']]) ? $changeData[$sku['id']]['limit_buy'] : 0,
|
'limit_buy' => isset($changeData[$sku['id']]) ? $changeData[$sku['id']]['limit_buy'] : 0,
|
||||||
'sku_id' => $sku['id'],
|
'sku_id' => $sku['id'],
|
||||||
'price_in_fen' => isset($changeData[$sku['id']]) ? $changeData[$sku['id']]['price_in_fen'] * 100 : $price,
|
'price_in_fen' => isset($changeData[$sku['id']]) ? $changeData[$sku['id']]['price_in_fen'] * 100 : $price,
|
||||||
'sort' => 500,
|
|
||||||
'external_sku_id' => $sku['goods']['goods_code'] . '_' . $sku['sku_code'],
|
'external_sku_id' => $sku['goods']['goods_code'] . '_' . $sku['sku_code'],
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
@ -110,6 +113,7 @@ class GroupsController extends Controller
|
|||||||
public function show($id)
|
public function show($id)
|
||||||
{
|
{
|
||||||
return new GroupsResource(Groups::query()
|
return new GroupsResource(Groups::query()
|
||||||
|
->where('parent_id', 0)
|
||||||
->find($id));
|
->find($id));
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -123,12 +127,14 @@ class GroupsController extends Controller
|
|||||||
return response($this->res, $this->res['httpCode']);
|
return response($this->res, $this->res['httpCode']);
|
||||||
}
|
}
|
||||||
$deleteIds = $request->delete_ids;
|
$deleteIds = $request->delete_ids;
|
||||||
$ids = GroupGoods::query()
|
$groupHasGoods = GroupGoods::query()
|
||||||
->where('group_id', $id)
|
->where('group_id', $id)
|
||||||
->whereNotIn('sku_id', $deleteIds)
|
->whereNotIn('sku_id', $deleteIds)
|
||||||
->pluck('sku_id')->toArray();
|
->get(['id', 'sku_id', 'limit_buy', 'price_in_fen'])
|
||||||
|
->toArray();
|
||||||
|
$groupHasGoods = ArrayUtils::index($groupHasGoods, 'sku_id');
|
||||||
$skus = GoodsSku::query()
|
$skus = GoodsSku::query()
|
||||||
->whereIn('id', array_merge($ids, $request->new_ids))
|
->whereIn('id', array_merge(array_keys($groupHasGoods), $request->new_ids))
|
||||||
->with(['goods' => function ($query) {
|
->with(['goods' => function ($query) {
|
||||||
$query->with(['type:id,name', 'brand:id,name']);
|
$query->with(['type:id,name', 'brand:id,name']);
|
||||||
}])
|
}])
|
||||||
@ -152,15 +158,15 @@ class GroupsController extends Controller
|
|||||||
]);
|
]);
|
||||||
GroupGoods::where('group_id', $id)->whereIn('sku_id', $deleteIds)->delete();
|
GroupGoods::where('group_id', $id)->whereIn('sku_id', $deleteIds)->delete();
|
||||||
foreach ($skus as $sku) {
|
foreach ($skus as $sku) {
|
||||||
$price = $sku['cost'] * 100;
|
$limitBuy = isset($groupHasGoods[$sku['id']]) ? $groupHasGoods[$sku['id']]['limit_buy'] : 0;
|
||||||
|
$price = isset($groupHasGoods[$sku['id']]) ? $groupHasGoods[$sku['id']]['price_in_fen'] : $sku['cost'];
|
||||||
$groupGoods = [
|
$groupGoods = [
|
||||||
'category_name' => $sku['goods']['type']['name'],
|
'category_name' => $sku['goods']['type']['name'],
|
||||||
'type_id' => $sku['goods']['type']['id'],
|
'type_id' => $sku['goods']['type']['id'],
|
||||||
'goods_name' => $sku['goods']['title'] . ' ' . $sku['title'],
|
'goods_name' => $sku['goods']['title'] . ' ' . $sku['title'],
|
||||||
'goods_id' => $sku['goods_id'],
|
'goods_id' => $sku['goods_id'],
|
||||||
'limit_buy' => isset($changeData[$sku['id']]) ? $changeData[$sku['id']]['limit_buy'] : 0,
|
'limit_buy' => isset($changeData[$sku['id']]) ? $changeData[$sku['id']]['limit_buy'] : $limitBuy,
|
||||||
'price_in_fen' => isset($changeData[$sku['id']]) ? $changeData[$sku['id']]['price_in_fen'] * 100 : $price,
|
'price_in_fen' => isset($changeData[$sku['id']]) ? $changeData[$sku['id']]['price_in_fen'] * 100 : $price * 100,
|
||||||
'sort' => 500,
|
|
||||||
'external_sku_id' => $sku['goods']['goods_code'] . '_' . $sku['sku_code'],
|
'external_sku_id' => $sku['goods']['goods_code'] . '_' . $sku['sku_code'],
|
||||||
];
|
];
|
||||||
GroupGoods::updateOrCreate(
|
GroupGoods::updateOrCreate(
|
||||||
@ -252,7 +258,6 @@ class GroupsController extends Controller
|
|||||||
$goodsSku['limit_buy'] = $groupGoods[$goodsSku['id']]['limit_buy'];
|
$goodsSku['limit_buy'] = $groupGoods[$goodsSku['id']]['limit_buy'];
|
||||||
} else {
|
} else {
|
||||||
$goodsSku['price_in_fen'] = $goodsSku['cost'];
|
$goodsSku['price_in_fen'] = $goodsSku['cost'];
|
||||||
$goodsSku['sort'] = 500;
|
|
||||||
$goodsSku['limit_buy'] = 0;
|
$goodsSku['limit_buy'] = 0;
|
||||||
}
|
}
|
||||||
$goodsSku['goods_name'] = $goodsSku['goods']['title'] . ' ' . $goodsSku['title'];
|
$goodsSku['goods_name'] = $goodsSku['goods']['title'] . ' ' . $goodsSku['title'];
|
||||||
@ -281,7 +286,6 @@ class GroupsController extends Controller
|
|||||||
->paginate($request->get('per_page'));
|
->paginate($request->get('per_page'));
|
||||||
foreach ($goodsSkus as &$goodsSku) {
|
foreach ($goodsSkus as &$goodsSku) {
|
||||||
$goodsSku['price_in_fen'] = $goodsSku['cost'];
|
$goodsSku['price_in_fen'] = $goodsSku['cost'];
|
||||||
$goodsSku['sort'] = 500;
|
|
||||||
$goodsSku['limit_buy'] = 0;
|
$goodsSku['limit_buy'] = 0;
|
||||||
$goodsSku['goods_name'] = $goodsSku['goods']['title'] . ' ' . $goodsSku['title'];
|
$goodsSku['goods_name'] = $goodsSku['goods']['title'] . ' ' . $goodsSku['title'];
|
||||||
$goodsSku['external_sku_id'] = $goodsSku['goods']['goods_code'] . '_' . $goodsSku['sku_code'];
|
$goodsSku['external_sku_id'] = $goodsSku['goods']['goods_code'] . '_' . $goodsSku['sku_code'];
|
||||||
|
|||||||
@ -42,10 +42,10 @@ class Groups
|
|||||||
'goods_desc' => $item['goods_name'],
|
'goods_desc' => $item['goods_name'],
|
||||||
'goods_name' => $item['goods_name'],
|
'goods_name' => $item['goods_name'],
|
||||||
'limit_buy' => $item['limit_buy'],
|
'limit_buy' => $item['limit_buy'],
|
||||||
'market_price' => $priceInFen,
|
'market_price' => $priceInFen ?: 10000,
|
||||||
'sku_list' => [[
|
'sku_list' => [[
|
||||||
'external_sku_id' => $item['external_sku_id'],
|
'external_sku_id' => $item['external_sku_id'],
|
||||||
'price_in_fen' => $priceInFen,
|
'price_in_fen' => $priceInFen ?: 10000,
|
||||||
'quantity_type' => 0,
|
'quantity_type' => 0,
|
||||||
'spec_id_list' => [],
|
'spec_id_list' => [],
|
||||||
'total_quantity' => $item['goodsSku']['stock'],
|
'total_quantity' => $item['goodsSku']['stock'],
|
||||||
|
|||||||
@ -121,8 +121,6 @@ class KuaiTuanTuan extends BusinessClient
|
|||||||
}
|
}
|
||||||
$publicParams = array_merge($publicParams, $appendParams);
|
$publicParams = array_merge($publicParams, $appendParams);
|
||||||
$publicParams['sign'] = $this->getSign($publicParams);
|
$publicParams['sign'] = $this->getSign($publicParams);
|
||||||
var_dump($publicParams);
|
|
||||||
exit();
|
|
||||||
$res = $this->formDataPostRequest($url, $publicParams);
|
$res = $this->formDataPostRequest($url, $publicParams);
|
||||||
if (isset($res['error_response'])) {
|
if (isset($res['error_response'])) {
|
||||||
// ToDo 重构异常处理
|
// ToDo 重构异常处理
|
||||||
@ -169,7 +167,7 @@ class KuaiTuanTuan extends BusinessClient
|
|||||||
[$type, $appendParams] = Groups::createGroup($localGroupId, $this->shop);
|
[$type, $appendParams] = Groups::createGroup($localGroupId, $this->shop);
|
||||||
$res = $this->doRequest($type, $appendParams);
|
$res = $this->doRequest($type, $appendParams);
|
||||||
if (isset($res['response']['success'])) {
|
if (isset($res['response']['success'])) {
|
||||||
$group = GroupsModel::query()->find($localGroupId);
|
$group = GroupsModel::query()->where('parent_id', $localGroupId)->where('shop_id', $this->shop->id)->first();
|
||||||
$group->activity_no = $res['response']['activity_no'];
|
$group->activity_no = $res['response']['activity_no'];
|
||||||
$group->save();
|
$group->save();
|
||||||
}
|
}
|
||||||
|
|||||||
@ -51,9 +51,9 @@
|
|||||||
@change="handleCellChange(scope.row)"></el-input>
|
@change="handleCellChange(scope.row)"></el-input>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column label="价格">
|
<el-table-column label="成本">
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
<el-input v-model="scope.row.price_in_fen" placeholder="价格"
|
<el-input v-model="scope.row.price_in_fen" placeholder="成本"
|
||||||
@change="handleCellChange(scope.row)"></el-input>
|
@change="handleCellChange(scope.row)"></el-input>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
@ -191,7 +191,7 @@ export default {
|
|||||||
},
|
},
|
||||||
groupGoodsSearch: {
|
groupGoodsSearch: {
|
||||||
external_sku_id: "",
|
external_sku_id: "",
|
||||||
has_stock: 1,
|
has_stock: 2,
|
||||||
type_id: 0,
|
type_id: 0,
|
||||||
page: 1,
|
page: 1,
|
||||||
per_page: 20,
|
per_page: 20,
|
||||||
|
|||||||
@ -192,7 +192,7 @@ export default {
|
|||||||
},
|
},
|
||||||
groupGoodsSearch: {
|
groupGoodsSearch: {
|
||||||
external_sku_id: "",
|
external_sku_id: "",
|
||||||
has_stock: 1,
|
has_stock: 0,
|
||||||
page: 1,
|
page: 1,
|
||||||
per_page: 20,
|
per_page: 20,
|
||||||
group_id: 0,
|
group_id: 0,
|
||||||
@ -291,8 +291,13 @@ export default {
|
|||||||
},
|
},
|
||||||
getGoupInfo(id) {
|
getGoupInfo(id) {
|
||||||
showGroup(id).then((res) => {
|
showGroup(id).then((res) => {
|
||||||
this.group = res.data.data;
|
if (undefined === res.data.data.id) {
|
||||||
this.group.datetimerange = [this.group.start_time, this.group.end_time];
|
this.$message.error('不可编辑!!!');
|
||||||
|
this.$router.push({ path: "GROUP_MANAGEMENT" });
|
||||||
|
} else {
|
||||||
|
this.group = res.data.data;
|
||||||
|
this.group.datetimerange = [this.group.start_time, this.group.end_time];
|
||||||
|
}
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
getgoodsType() {
|
getgoodsType() {
|
||||||
|
|||||||
@ -21,28 +21,32 @@
|
|||||||
</el-card>
|
</el-card>
|
||||||
|
|
||||||
<el-card style="margin-top: 10px" class="box-card">
|
<el-card style="margin-top: 10px" class="box-card">
|
||||||
<el-table v-loading="loading" :data="tableData" border style="width: 100%">
|
<el-table v-loading="loading" :data="tableData" border style="width: 100%" row-key="id"
|
||||||
|
:tree-props="{ children: 'children' }">
|
||||||
|
<el-table-column prop="shop.name" label="店铺">
|
||||||
|
</el-table-column>
|
||||||
<el-table-column prop="title" label="活动标题">
|
<el-table-column prop="title" label="活动标题">
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column prop="status" label="团购状态">
|
<el-table-column prop="status" label="团购状态">
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column label="开团时间">
|
<el-table-column label="开团时间">
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
<div>{{ scope.row.start_time }}</div>
|
<div>{{ scope.row.start_time }}</div>
|
||||||
<div>至</div>
|
<div>至</div>
|
||||||
<div>{{ scope.row.end_time }}</div>
|
<div>{{ scope.row.end_time }}</div>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column label="手机查看">
|
<el-table-column label="手机查看">
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
<el-image style="width: 100px; height: 100px" :src="scope.row.ercode"></el-image>
|
<el-image style="width: 100px; height: 100px" :src="scope.row.qr_code_url"></el-image>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column prop="create_status" label="创建结果">
|
<el-table-column prop="create_status" label="创建结果">
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column prop="options" label="操作">
|
<el-table-column prop="options" label="操作">
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
<el-button @click="groupEdit(scope.row.id)" type="text" size="small">编辑</el-button>
|
<el-button v-if="scope.row.parent_id == 0" @click="groupEdit(scope.row.id)" type="text"
|
||||||
|
size="small">编辑</el-button>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
</el-table>
|
</el-table>
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user