diff --git a/app/Http/Controllers/Group/GroupsController.php b/app/Http/Controllers/Group/GroupsController.php index 00354b6..b3d46fc 100644 --- a/app/Http/Controllers/Group/GroupsController.php +++ b/app/Http/Controllers/Group/GroupsController.php @@ -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']; diff --git a/app/Services/Business/KuaiTuanTuan/Groups.php b/app/Services/Business/KuaiTuanTuan/Groups.php index 963081d..96c2783 100644 --- a/app/Services/Business/KuaiTuanTuan/Groups.php +++ b/app/Services/Business/KuaiTuanTuan/Groups.php @@ -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'], diff --git a/app/Services/Business/KuaiTuanTuan/KuaiTuanTuan.php b/app/Services/Business/KuaiTuanTuan/KuaiTuanTuan.php index 76b3b49..875829d 100644 --- a/app/Services/Business/KuaiTuanTuan/KuaiTuanTuan.php +++ b/app/Services/Business/KuaiTuanTuan/KuaiTuanTuan.php @@ -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(); } diff --git a/resources/frontend/src/views/group/addGroup.vue b/resources/frontend/src/views/group/addGroup.vue index 8f4f36a..ed01c1a 100644 --- a/resources/frontend/src/views/group/addGroup.vue +++ b/resources/frontend/src/views/group/addGroup.vue @@ -51,9 +51,9 @@ @change="handleCellChange(scope.row)"> - + @@ -191,7 +191,7 @@ export default { }, groupGoodsSearch: { external_sku_id: "", - has_stock: 1, + has_stock: 2, type_id: 0, page: 1, per_page: 20, diff --git a/resources/frontend/src/views/group/editGroup.vue b/resources/frontend/src/views/group/editGroup.vue index e2c0131..6f2b5d7 100644 --- a/resources/frontend/src/views/group/editGroup.vue +++ b/resources/frontend/src/views/group/editGroup.vue @@ -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() { diff --git a/resources/frontend/src/views/group/group.vue b/resources/frontend/src/views/group/group.vue index 86b634f..ebd1c84 100644 --- a/resources/frontend/src/views/group/group.vue +++ b/resources/frontend/src/views/group/group.vue @@ -21,28 +21,32 @@ - + + +