feat: #10000 优化

This commit is contained in:
赵世界 2022-10-25 13:57:57 +08:00
parent 25ac64e0e5
commit 3cb13c933c
6 changed files with 37 additions and 26 deletions

View File

@ -27,9 +27,13 @@ class GroupsController extends Controller
public function index(Request $request)
{
$groups = Groups::query()
->with(['shop:id,name'])
->where('parent_id', 0)
->filter()
->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);
}
@ -89,7 +93,6 @@ class GroupsController extends Controller
'limit_buy' => isset($changeData[$sku['id']]) ? $changeData[$sku['id']]['limit_buy'] : 0,
'sku_id' => $sku['id'],
'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'],
];
}
@ -110,6 +113,7 @@ class GroupsController extends Controller
public function show($id)
{
return new GroupsResource(Groups::query()
->where('parent_id', 0)
->find($id));
}
@ -123,12 +127,14 @@ class GroupsController extends Controller
return response($this->res, $this->res['httpCode']);
}
$deleteIds = $request->delete_ids;
$ids = GroupGoods::query()
$groupHasGoods = GroupGoods::query()
->where('group_id', $id)
->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()
->whereIn('id', array_merge($ids, $request->new_ids))
->whereIn('id', array_merge(array_keys($groupHasGoods), $request->new_ids))
->with(['goods' => function ($query) {
$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();
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 = [
'category_name' => $sku['goods']['type']['name'],
'type_id' => $sku['goods']['type']['id'],
'goods_name' => $sku['goods']['title'] . ' ' . $sku['title'],
'goods_id' => $sku['goods_id'],
'limit_buy' => isset($changeData[$sku['id']]) ? $changeData[$sku['id']]['limit_buy'] : 0,
'price_in_fen' => isset($changeData[$sku['id']]) ? $changeData[$sku['id']]['price_in_fen'] * 100 : $price,
'sort' => 500,
'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 * 100,
'external_sku_id' => $sku['goods']['goods_code'] . '_' . $sku['sku_code'],
];
GroupGoods::updateOrCreate(
@ -252,7 +258,6 @@ class GroupsController extends Controller
$goodsSku['limit_buy'] = $groupGoods[$goodsSku['id']]['limit_buy'];
} else {
$goodsSku['price_in_fen'] = $goodsSku['cost'];
$goodsSku['sort'] = 500;
$goodsSku['limit_buy'] = 0;
}
$goodsSku['goods_name'] = $goodsSku['goods']['title'] . ' ' . $goodsSku['title'];
@ -281,7 +286,6 @@ class GroupsController extends Controller
->paginate($request->get('per_page'));
foreach ($goodsSkus as &$goodsSku) {
$goodsSku['price_in_fen'] = $goodsSku['cost'];
$goodsSku['sort'] = 500;
$goodsSku['limit_buy'] = 0;
$goodsSku['goods_name'] = $goodsSku['goods']['title'] . ' ' . $goodsSku['title'];
$goodsSku['external_sku_id'] = $goodsSku['goods']['goods_code'] . '_' . $goodsSku['sku_code'];

View File

@ -42,10 +42,10 @@ class Groups
'goods_desc' => $item['goods_name'],
'goods_name' => $item['goods_name'],
'limit_buy' => $item['limit_buy'],
'market_price' => $priceInFen,
'market_price' => $priceInFen ?: 10000,
'sku_list' => [[
'external_sku_id' => $item['external_sku_id'],
'price_in_fen' => $priceInFen,
'price_in_fen' => $priceInFen ?: 10000,
'quantity_type' => 0,
'spec_id_list' => [],
'total_quantity' => $item['goodsSku']['stock'],

View File

@ -121,8 +121,6 @@ class KuaiTuanTuan extends BusinessClient
}
$publicParams = array_merge($publicParams, $appendParams);
$publicParams['sign'] = $this->getSign($publicParams);
var_dump($publicParams);
exit();
$res = $this->formDataPostRequest($url, $publicParams);
if (isset($res['error_response'])) {
// ToDo 重构异常处理
@ -169,7 +167,7 @@ class KuaiTuanTuan extends BusinessClient
[$type, $appendParams] = Groups::createGroup($localGroupId, $this->shop);
$res = $this->doRequest($type, $appendParams);
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->save();
}

View File

@ -51,9 +51,9 @@
@change="handleCellChange(scope.row)"></el-input>
</template>
</el-table-column>
<el-table-column label="价格">
<el-table-column label="成本">
<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>
</template>
</el-table-column>
@ -191,7 +191,7 @@ export default {
},
groupGoodsSearch: {
external_sku_id: "",
has_stock: 1,
has_stock: 2,
type_id: 0,
page: 1,
per_page: 20,

View File

@ -192,7 +192,7 @@ export default {
},
groupGoodsSearch: {
external_sku_id: "",
has_stock: 1,
has_stock: 0,
page: 1,
per_page: 20,
group_id: 0,
@ -291,8 +291,13 @@ export default {
},
getGoupInfo(id) {
showGroup(id).then((res) => {
this.group = res.data.data;
this.group.datetimerange = [this.group.start_time, this.group.end_time];
if (undefined === res.data.data.id) {
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() {

View File

@ -21,28 +21,32 @@
</el-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>
<el-table-column prop="status" label="团购状态">
</el-table-column>
<el-table-column label="开团时间">
<template slot-scope="scope">
<div>{{ scope.row.start_time }}</div>
<div>{{ scope.row.start_time }}</div>
<div></div>
<div>{{ scope.row.end_time }}</div>
<div>{{ scope.row.end_time }}</div>
</template>
</el-table-column>
<el-table-column label="手机查看">
<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>
</el-table-column>
<el-table-column prop="create_status" label="创建结果">
</el-table-column>
<el-table-column prop="options" label="操作">
<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>
</el-table-column>
</el-table>