feat(beforehand_order): 优化订单逻辑和商品详情

- 在订单列表中添加更多商品属性字段
- 完善订单逻辑,增加商品属性保存
- 优化商品详情接口,添加单位名称
- 移除商品分类冗余代码
This commit is contained in:
mkm 2024-10-21 15:43:01 +08:00
parent 34b9cd8061
commit 97e0704cec
3 changed files with 38 additions and 14 deletions

View File

@ -71,7 +71,7 @@ class BeforehandOrderCartInfoLists extends BaseAdminDataLists implements ListsSe
}
$list = BeforehandOrderCartInfo::where($this->searchWhere)
->field(['id', 'bhoid', 'uid', 'is_buyer', 'buyer_uid', 'product_id', 'attr_value_id', 'purchase', 'price', 'total_price', 'cart_num', 'mark'])
->field(['id', 'bhoid','package','store_info','marques','gross_weight','net_weight','accept_num','after_sales','loss', 'uid', 'is_buyer', 'buyer_uid', 'product_id', 'attr_value_id', 'purchase', 'price', 'total_price', 'cart_num', 'mark'])
->limit($this->limitOffset, $this->limitLength)
->order(['id' => 'desc'])
->select()->each(function ($item) use($system_store,$order_mark) {
@ -140,12 +140,18 @@ class BeforehandOrderCartInfoLists extends BaseAdminDataLists implements ListsSe
'bhoid' => '订单id',
'store_name' => '商品名称',
'system_store' => '门店',
'warehouse_stock' => '仓库数量',
'cart_num' => '需求数量',
'marques' => '型号',
'package' => '包装',
'top_cate_name' => '分类',
'unit_name' => '单位',
'gross_weight' => '毛重',
'net_weight' => '净重',
'warehouse_stock' => '仓库数量',
'cart_num' => '需求数量',
'price' => '单价',
'total_price' => '总价',
'after_sales' => '售后',
'loss' => '损耗',
'mark' => '备注',
'order_mark' => '订单备注',

View File

@ -55,11 +55,23 @@ class BeforehandOrderLogic extends BaseLogic
$total_price = 0;
$uid = $params['uid'] ?? 0;
foreach ($params['product_arr'] as $k => $v) {
if($v['product_id']<=0){
unset($params['product_arr'][$k]);
continue;
}
$datas[$k]['mark'] = $v['mark'] ?? '';
$datas[$k]['product_id'] = $v['product_id'];
$datas[$k]['uid'] = $uid;
$datas[$k]['marques'] = $v['marques'];
$datas[$k]['store_info'] = $v['store_info'];
$datas[$k]['after_sales'] = $v['after_sales'];
$datas[$k]['loss'] = $v['loss'];
$datas[$k]['unit'] = $v['unit'];
$datas[$k]['gross_weight'] = $v['gross_weight'];
$datas[$k]['net_weight'] = $v['net_weight'];
$datas[$k]['cart_num'] = $v['nums'];
$datas[$k]['price'] = $v['purchase'];
$datas[$k]['package'] = $v['package'];
$datas[$k]['total_price'] = $v['total_price'];
$datas[$k]['create_time'] = time();
$datas[$k]['update_time'] = time();
@ -84,9 +96,22 @@ class BeforehandOrderLogic extends BaseLogic
'arrival_time' => strtotime($params['arrival_time']),
'order_type' => $order_type
]);
$product_arr=[];
foreach ($datas as $k => $v) {
$datas[$k]['bhoid'] = $order['id'];
$data['id']=$v['product_id'];
$data['marques']=$v['marques'];
$data['store_info']=$v['store_info'];
$data['after_sales']=$v['after_sales'];
$data['package']=$v['package'];
$data['loss']=$v['loss'];
$data['gross_weight']=$v['gross_weight'];
$data['net_weight']=$v['net_weight'];
$data['mark']=$v['mark'];
$product_arr[]=$data;
}
(new StoreProduct())->saveAll($product_arr);
(new BeforehandOrderCartInfo())->saveAll($datas);
Db::commit();
return true;

View File

@ -11,6 +11,7 @@ use app\common\model\store_branch_product_exchange\StoreBranchProductExchange;
use app\common\model\store_category\StoreCategory;
use app\common\model\store_product_attr_value\StoreProductAttrValue;
use app\common\model\store_product_cate\StoreProductCate;
use app\common\model\store_product_unit\StoreProductUnit;
use app\common\model\system_store\SystemStore;
use app\common\model\system_store_storage\SystemStoreStorage;
use Illuminate\Support\Facades\Log;
@ -288,18 +289,10 @@ class StoreProductLogic extends BaseLogic
public static function detail($params): array
{
$data = StoreProduct::where('id', $params['id'])->findOrEmpty()->toArray();
if ($data) {
$data['cate_arr'] = [];
$id_1 = StoreCategory::where('id', $data['cate_id'])->value('pid');
if ($id_1) {
$id_2 = StoreCategory::where('id', $id_1)->value('pid');
if ($id_2 == 0) {
$data['cate_arr'] = [$id_1, $data['cate_id']];
} else {
$data['cate_arr'] = [$id_2, $id_1, $data['cate_id']];
}
}
if(empty($data)){
throw new BusinessException('商品不存在');
}
$data['unit_name']=StoreProductUnit::where('id', $data['unit'])->value('name');
return $data;
}