| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165 |
- <?php
- /**
- * 重庆赤晓店信息科技有限公司
- * https://www.chixiaodian.com
- * Copyright (c) 2023 赤店商城 All rights reserved.
- */
- namespace app\modules\alliance\models;
- use app\models\MdStaff;
- use app\models\VerifyCard;
- use app\models\VerifyCardAccount;
- use app\models\VerifyCardSale;
- use app\utils\ShareQrcode;
- use yii\base\Model;
- use app\models\VerifyCardLog;
- use app\models\Goods;
- use app\utils\QrCode as QrCodeForm;
- class WriteOffCodeForm extends Model
- {
- public $sale_id;
- public $_from;
- public function rules()
- {
- return [
- [['sale_id'],'integer'],
- [['_from'], 'string']
- ];
- }
- public function getQrcode(){
- $sale_log = VerifyCardSale::findOne($this->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()
- ];
- }
- }
- }
|