sale_id); $_from = $this->_from; $pic_url = VerifyCard::findOne($sale_log->verify_card_id)->pic_url; $account = VerifyCardAccount::findOne($sale_log->account_id)->account; $scene = "id={$this->sale_id}"; $res = ShareQrcode::wxQrcode('user/write_off_card/card_write_card/card_write_card', $scene); $url_path = ''; if (isset($res['code']) && $res['code'] == 0) { $url_path = $res['url_path']; } if ($_from === "app" ) { $scene = "user/write_off_card/card_write_card/card_write_card?id={$this->sale_id}"; $save_name = md5("id={$this->sale_id}&account_id={$sale_log->account_id}&platform=app") . '.jpg'; $wxapp_qrcode_file_path = \Yii::$app->runtimePath . '/image/' . $save_name; // $wxapp_qrcode_file_path = str_replace('http://', 'https://', \Yii::$app->request->hostInfo . '/runtime/image/' . $save_name); QrCodeForm::image($scene, 200, false, 'L', 'JPEG', 0, ['255,255,255', '0,0,0'], 1, false, $wxapp_qrcode_file_path); $url_path = str_replace('http://', 'https://', \Yii::$app->request->hostInfo . '/runtime/image/' . $save_name); } return [ "code"=>0, "data"=>[ "pic_url"=>$pic_url, "url_path"=>$url_path, "account"=>$account ] ]; } public function clerkCard(){ $t = \Yii::$app->db->beginTransaction(); try { $user_id = get_saas_user_id(); // $mdStaff = MdStaff::find()->where(['saas_user_id'=>$user_id,'is_delete'=>0])->one(); // if(empty($mdStaff)){ // throw new \Exception("非核销员与店长,不可核销"); // } $sale_log = VerifyCardSale::findOne($this->sale_id); $card = VerifyCard::findOne($sale_log->verify_card_id); if ($sale_log->status == 1) { throw new \Exception("卡已兑换或核销"); } if ($sale_log->end_time <= time()) { throw new \Exception("卡已过期,不能使用"); } if ($card->type == 1) { if($sale_log->left_num > 0) { $sale_log->use_num = $sale_log->use_num + 1; $sale_log->left_num = $sale_log->left_num - 1; $sale_log->left_num == 0 && $sale_log->status = 1; $sale_log->save(); }else{ throw new \Exception("核销卡次数已用完"); } } else if ($card->type == 2) { $sale_log->use_num = $sale_log->use_num + 1; $sale_log->left_num = $sale_log->left_num - 1; $sale_log->status = 1; $sale_log->save(); } else { throw new \Exception("未知类型,卡不可用"); } // 增加核销记录 $log = new VerifyCardLog(); $log->store_id = get_store_id(); $log->sale_id = $this->sale_id; $log->shop_id = 0; $log->verify_person = 0; $log->saas_verify_person = $user_id; $log->user_id = $sale_log->user_id; $log->use_time = time(); $log->type = VerifyCardLog::WRITE_TYPE_WRITE_OFF; $log->describe = $card->type == 1 ? '核销卡核销' : '礼品卡核销'; $log->save(); $t->commit(); return [ 'code' => 0, 'msg' => '核销完成', ]; } catch (\Exception $e) { $t->rollBack(); return [ 'code'=>1, 'msg'=>$e->getMessage() ]; } } public function getCard(){ try { $user_id = get_saas_user_id(); $mdStaff = MdStaff::find()->where(['saas_user_id'=>$user_id,'is_delete'=>0])->one(); if(empty($mdStaff)){ throw new \Exception("非核销员与店长,不可核销"); } $sale_log = VerifyCardSale::findOne($this->sale_id); if($sale_log->status === 1){ throw new \Exception("卡已失效"); } $verifyCard = VerifyCard::findOne($sale_log->verify_card_id); $account = VerifyCardAccount::findOne($sale_log->account_id)->account; $goods_list = []; if ($verifyCard->type == 2) { $goods_list = Goods::find() ->where(['store_id' => get_store_id()]) ->andWhere(['in', 'id', json_decode($verifyCard->goods_ids, true)]) ->asArray() ->all(); foreach ($goods_list as $k => $val) { $val['attr'] = json_decode($val['attr'], true); $goods_info = Goods::findOne($val['id']); $goods_list[$k]['attr_group_list'] = $goods_info->getAttrGroupList(); } } return [ "code"=>0, "data"=>[ 'goods_list' => $goods_list, 'card_type' => $verifyCard->type, "pic_url"=>$verifyCard->pic_url, "bg_url"=>$verifyCard->bg_pic_url, "name"=>$verifyCard->name, "account"=>$account, "use_num"=>$sale_log->use_num, "left_num"=>$sale_log->left_num ], "msg"=>"成功", ]; }catch (\Exception $e){ return [ "code"=>1, "msg"=>$e->getMessage() ]; } } }