data)?$form->data:Json::decode($form->data,true); // 产品按照商户重新归类组别 foreach ($order_goods as $item) { if(!isset($group_order_goods[$item['mch_id']])){ $group_order_goods[$item['mch_id']]['mch_order_info']['mch_id'] = $item['mch_id']; if($item['mch_id'] == 0){ // 平台 $mall = Mall::getOne([['id'=>$item['mall_id']]],true,[],false,'name'); if(empty($mall)) throw new Exception('商城不存在'); $group_order_goods[$item['mch_id']]['mch_order_info']['mch_name'] = $mall['name']; }else{ // 查询商户信息 } // 主订单信息 $group_order_goods[$item['mch_id']]['mch_order_info']['user_id'] = $item['user_id']; $group_order_goods[$item['mch_id']]['mch_order_info']['mall_id'] = $item['mall_id']; $group_order_goods[$item['mch_id']]['mch_order_info']['address_id'] = $form->address_id; $group_order_goods[$item['mch_id']]['mch_order_info']['province'] = $form->address_default['province_id']; $group_order_goods[$item['mch_id']]['mch_order_info']['city'] = $form->address_default['city_id']; $group_order_goods[$item['mch_id']]['mch_order_info']['area'] = $form->address_default['district_id']; $group_order_goods[$item['mch_id']]['mch_order_info']['mobile'] = $form->address_default['mobile']; $group_order_goods[$item['mch_id']]['mch_order_info']['receiver_name'] = $form->address_default['name']; $group_order_goods[$item['mch_id']]['mch_order_info']['address'] = $form->address_default['detail']; $region_name = $form->address_default['province'].' '.$form->address_default['city'].' '.$form->address_default['district'].' '.$form->address_default['town'].' '.$form->address_default['detail']; $group_order_goods[$item['mch_id']]['mch_order_info']['region_name'] = $region_name; $group_order_goods[$item['mch_id']]['mch_order_info']['remark'] = $form->remark?$form->remark:" "; $group_order_goods[$item['mch_id']]['mch_order_info']['original_goods_price'] = $item['original_goods_price']; $group_order_goods[$item['mch_id']]['mch_order_info']['goods_price'] = $item['goods_price']; $group_order_goods[$item['mch_id']]['mch_order_info']['shipping_money'] = $item['shipping_money']; $group_order_goods[$item['mch_id']]['mch_order_info']['pay_money'] = $item['goods_price']; $group_order_goods[$item['mch_id']]['mch_order_info']['marketing_type'] = SudokuEnum::ADDONS_NAME; $group_order_goods[$item['mch_id']]['mch_order_info']['marketing_id'] = $form->id; }else{ $group_order_goods[$item['mch_id']]['mch_order_info']['original_goods_price'] += $item['original_goods_price']; $group_order_goods[$item['mch_id']]['mch_order_info']['goods_price'] += $item['goods_price']; $group_order_goods[$item['mch_id']]['mch_order_info']['pay_money'] += $item['goods_price']; } if (!isset($group_order_goods[$item['mch_id']]['goods'][$item['goods_id']])) { $group_order_goods[$item['mch_id']]['goods'][$item['goods_id']]['goods_id'] = $item['goods_id']; $group_order_goods[$item['mch_id']]['goods'][$item['goods_id']]['goods_price'] = 0; $group_order_goods[$item['mch_id']]['goods'][$item['goods_id']]['num'] = 0; $group_order_goods[$item['mch_id']]['goods'][$item['goods_id']]['goods_name'] = $item['goods_name']; $group_order_goods[$item['mch_id']]['goods'][$item['goods_id']]['goods_details'] = []; } $group_order_goods[$item['mch_id']]['goods'][$item['goods_id']]['goods_price'] += $item['goods_price']; $group_order_goods[$item['mch_id']]['goods'][$item['goods_id']]['original_goods_price'] += $item['original_goods_price']; $group_order_goods[$item['mch_id']]['goods'][$item['goods_id']]['num'] += $item['num']; $group_order_goods[$item['mch_id']]['goods'][$item['goods_id']]['goods_details'][] = $item; } // 写入组别 $form['group_order_goods'] = $group_order_goods; $form['address_id'] = $form->address_id; return $form; }catch(Exception $e){ $this->setError($e->getMessage()); return false; } } /** * @desc:校验收货地址 * @Author: hua * @Date: 2021/11/23 * @Time: 10:49 * @Copyright: copyright (c) 2021 广东七件事集团 * @param $action * @param $data * @param $user_id * @throws Exception */ public function checkAddress($action, $data, $user_id) { if ($action == AppEnum::ACTION_CREATE) { if (empty($data['address_id'])) throw new Exception('收货地址不能为空'); $res = UserAddress::findOne(['id' => $data['address_id'], 'status' => StatusEnum::ENABLED, 'user_id' => $user_id]); if (empty($res)) throw new Exception('收货地址无效'); } } }