request->isGet) { $config = Yii::$app->services->setting->addons->get($this->mall_id, SudokuEnum::ADDONS_NAME, 'basic'); //统计会员剩余次数 if($config['type'] == StatusEnum::ENABLED){ $params['where'][] = ['>','created_at',strtotime(date('Y-m-d'))]; } if(!isset($config['is_show'])) $config['is_show'] = 1; $params['where'][] = ['=','user_id',$this->user_id]; $count_times = AddonsSudokuLog::count($params); $limit_times = $config['lucky_number'] - $count_times; if($limit_times < 0) $limit_times = 0; $Sudokuparams['where'][] = ['mall_id'=>$this->mall_id]; $Sudokuparams['order'] = 'id asc'; $Sudokuparams['with'] = ['goods','coupon']; $list = AddonsSudoku::lists($Sudokuparams,true); $get_system_setting = PlatformSetting::getConfByGroup('system', true); if(empty($list)){ for ($i = 0; $i<8; $i++){ $arr['name'] = ''; $arr['image_url'] = $get_system_setting['api_url']['value'].'/resources/addons/sudoku/img/sudoku'.$i.'.png'; $arr['type'] = ''; $arr['goods_id'] = ''; $arr['score'] = ''; $arr['red_packet_amount'] = ''; $arr['coupon_id'] = ''; $arr['probability'] = '0'; $arr['stock'] = ''; $arr['prize_id'] = $i; $list[$i] = $arr; }; } if($list){ foreach ($list as $k=>$v){ switch ($v['type']){ case '1': //奖励金额 $list[$k]['name'] = $v['name']?$v['name']:'现金¥'.$v['red_packet_amount'].''; break; case '2': //奖励优惠卷 $list[$k]['name'] = $v['name']?$v['name']:$v['coupon']['name']; break; case '3': //奖励积分 $list[$k]['name'] = $v['name']?$v['name']:'积分'.$v['score']; break; case '4': //奖励商品 $list[$k]['name'] = $v['name']?$v['name']:$v['goods']['goods_name'].'商品一件'; break; case '5': //谢谢参与 $list[$k]['name'] = '谢谢参与'; break; } } } $this->success('获取成功', compact('config','list','limit_times')); } } /** * ltm * 2021/12/22 15:39 * 获取九空格的配置文件 * @return string */ public function actionGetPrizeLog() { if (\Yii::$app->request->isGet) { $get = Yii::$app->request->get(); $res = Yii::$app->services->validate->validate($get,[ [['user_id','type','page'], 'safe'], ]); if($res === false) return $this->error(Yii::$app->services->validate->getErrorMessage()); $params['where'][] = ['mall_id' => $this->mall_id]; if($get['type']) $params['where'][] = ['=','type',$get['type']]; else $params['where'][] = ['<','type','5']; if($get['user_id']) $params['where'][] = ['user_id' => $get['user_id']]; $params['with'] = ['goods','coupon','user','order']; $params['order'] = 'id desc'; $list = AddonsSudokuLog::listPage($params); $list['list'] = AddonsSudoku::getPrizeName($list['list']); return $this->success('操作成功', $list); } } /** * ltm * 2021/12/22 15:39 * 获取九空格的配置文件 * @return string */ public function actionPreview() { if (\Yii::$app->request->isGet) { $get = Yii::$app->request->get(); $res = Yii::$app->services->validate->validate($get,[ [['id'], 'required'], [['address_id'], 'safe'], ]); $get = AddonsSudokuLog::exceptNullVal($get); if($res === false) return $this->error(Yii::$app->services->validate->getErrorMessage()); // 对象处理 $orderFormLogic = new OrderFormLogic(); $form = $orderFormLogic->getDefaultform($this->mall_id, $this->user_id); $form->id = $get['id']; $form->attributes = $get; $form['action'] = AppEnum::ACTION_PREVIEW; !empty($form->shipping_type) && $form->shipping_type = ShippingTypeEnum::LOGISTICS; // 订单初始化 $orderInitDataLogic = new OrderInitDataLogic(); $form = $orderInitDataLogic->execute($form, PreviewTypeEnum::BUY_NOW); if ($form === false) return $this->error($orderInitDataLogic->getError()); if($get['address_id']) { $form->address_id = $get['address_id']; $address_info = UserAddress::getUserAddress($this->user_id, $get['address_id']); }else { $address_info = $form->address_default; } // 运费 $orderMarketingLogic = new OrderMarketingLogic(); $form = $orderMarketingLogic->run($form); //获取九宫格的配置 $config = Yii::$app->services->setting->addons->get($this->mall_id, SudokuEnum::ADDONS_NAME, 'basic'); if($config['shipping_type'] == StatusEnum::ENABLED){ $marketing['deduct']['shipping_fee']['name'] = "运费"; $marketing['deduct']['shipping_fee']['money'] = "0"; }else{ $marketing = $form['marketing']; } $pay_type_list = \Yii::$app->services->pay->getEnablePayment($this->mall_id, $this->platform); $shipping_type_list = ShippingTypeEnum::getMap(); $info = compact('marketing', 'address_info', 'pay_type_list', 'shipping_type_list'); if($config['shipping_type'] == StatusEnum::ENABLED) $info['total_pay_money'] = "0"; else $info['total_pay_money'] = $form['total_pay_money']; $info['is_address'] = $form['is_address'] ?? 0; $info['order'] = $form->order; $info['status'] = $form->status; $form->goods['num'] = 1; $info['goods'] = $form->goods; return $this->success('操作成功', $info); } } /** * ltm * 2021/12/22 15:39 * 获取九空格的配置文件 * @return string */ public function actionCreate() { if (\Yii::$app->request->isPost) { $post = Yii::$app->request->post(); $res = Yii::$app->services->validate->validate($post,[ [['id','address_id'],'required'], [['remark'], 'safe'], ]); $post = AddonsSudokuLog::exceptNullVal($post); if($res === false) return $this->error(Yii::$app->services->validate->getErrorMessage()); //对象处理 $orderFormLogic = new OrderFormLogic(); $form = $orderFormLogic->getDefaultform($this->mall_id, $this->user_id); $form -> id = $post['id']; $form -> remark = $post['remark']; $form->attributes = $post; if($post['address_id']) $form->address_id = $post['address_id']; $form['action'] = AppEnum::ACTION_CREATE; !empty($form->shipping_type) && $form->shipping_type = ShippingTypeEnum::LOGISTICS; //订单初始化 $orderInitDataLogic = new OrderInitDataLogic(); $form = $orderInitDataLogic->execute($form, PreviewTypeEnum::BUY_NOW); if ($form === false) return $this->error($orderInitDataLogic->getError()); //运费 $orderMarketingLogic = new OrderMarketingLogic(); $form = $orderMarketingLogic->run($form); //获取九宫格的配置 $config = Yii::$app->services->setting->addons->get($this->mall_id, SudokuEnum::ADDONS_NAME, 'basic'); if($config['shipping_type'] == StatusEnum::ENABLED){ $form->group_order_goods['0']['mch_order_info']['shipping_money'] = "0"; }else{ $form->group_order_goods['0']['mch_order_info']['shipping_money'] = $form['total_pay_money']; } if($form->status=='1') return $this->error('订单已经领取但未支付,请到订单支付列表进行支付', $res); $res = Order::createOrder($form); if ($res === false) return $this->error(Order::getStaticError()); $update_log = AddonsSudokuLog::findOne([['id'=>$post['id']]]); $update_log -> status = 1; $update_log -> receive_at = time(); $update_log -> order_id = $res['transaction']['order_ids']; if(!$update_log->save()) return $this->error($update_log->getErrorMessage());//更新领奖记录 return $this->success('领取成功', $res); } } /** * 抽奖接口 * @Author: ltm * @DateTime: 2021/12/23 0023 10:26 * @Copyright: copyright (c) 2021 广东七件事集团 * @param $data * @return bool */ public function actionLottery(){ if (\Yii::$app->request->isGet) { $lotteryData['mall_id'] = $this->mall_id; $lotteryData['user_id'] = $this->user_id; $lotteryLogic = new LotteryLogic(); $res = $lotteryLogic->execute($lotteryData);//执行抽奖 if ($res === false) return $this->error($lotteryLogic->error); return $this->success('操作成功',$res); } } /** * 抽奖接口 测试抽奖接口 * @Author: ltm * @DateTime: 2021/12/23 0023 10:26 * @Copyright: copyright (c) 2021 广东七件事集团 * @param $data * @return bool */ public function actionLotterytest(){ for ($i = 0; $i<100;$i++){ $this->actionLottery(); } } }