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) 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'];

View File

@ -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'],

View File

@ -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();
} }

View File

@ -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,

View File

@ -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() {

View File

@ -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>