Exemple #1
0
 /**
  * 添加日志
  * @param array $log 
  */
 public function saveLog($log = [])
 {
     $this->uid = $log['uid'];
     $this->login_time = time();
     $this->login_ip = PublicLibrary::get_ip();
     return $this->save();
 }
 /**
  * 一呼百应活动支付生成订单
  * @1.活动产品rel_id,2.手机号:mobile,3.用户名:username,4.地址:address,5.支付宝号:alipay  6.验证签名:checkkey
  * @测试地址:http://dev.idaiyan.cn/activity/generationh5&rel_id=32827#
  * @提交地址:http://dev.idaiyan.cn/order/orderbuild?rel_id=32770&a_id=7&address=北京市海淀区
  * @线上地址:http://test.idaiyan.cn/order/orderbuild?rel_id=32770&a_id=7&address=beijing
  */
 public function actionOrderbuild()
 {
     //开启缓存
     $session = Yii::$app->session;
     $session->isActive ? '' : $session->open();
     // //判断用户有没有登录
     // $_SESSION['user']['uid'] = 26;
     // // $uid = '26';
     $parr = Yii::$app->request->post();
     // $m_member = spClass("m_member");
     $mobile = $_SESSION['user']['mobile'];
     // $mobile = '13718147652';
     $rel_id = intval($parr['rel_id']);
     //查询产品id
     $ActivityProduct = new ActivityProduct();
     $apt = $ActivityProduct->pk($rel_id);
     $product_id = $apt['product_id'];
     $a_id = intval($parr['a_id']);
     $address = strip_tags($parr['address']);
     $truename = isset($parr['share_name']) ? strip_tags($parr['share_name']) : '';
     // if ($uid) {
     if ($address) {
         //获取活动价格
         $acprattr_model = new ActivityProductAttrVal();
         $acprattr = $acprattr_model->getRealAttrVals($rel_id, $a_id);
         $price = isset($acprattr['discount_price']['val']['price']) ? $acprattr['discount_price']['val']['price'] : '1';
         // 已登录  密码 动态码 情况
         if (!empty($_SESSION['user']['uid']) && $rel_id) {
             //添加订单数据
             $uid = $_SESSION['user']['uid'];
             $model_order = new Order();
             $model_order->uid = $uid;
             $model_order->mobile = $mobile;
             $model_order->rel_id = $rel_id;
             $model_order->acti_id = $a_id;
             $model_order->product_id = $product_id;
             $model_order->truename = $truename;
             $model_order->address = $address;
             $model_order->create_time = time();
             $model_order->totalpay = $price;
             //活动详细页面
             $model_order->ip = PublicLibrary::get_ip();
             //ip
             $model_order->orderno = 'iwx' . date('YmdHis', time()) . mt_rand(100000, 999999);
             $model_order->save();
             $order_id = Yii::$app->db->getLastInsertID();
             //获取刚刚插入到数据库的订单id
             // echo $order_id;
             if ($order_id) {
                 $output['status'] = 1;
                 $output['order_id'] = '/weixin/jspay?id=' . $order_id;
                 $output['info'] = '订单生成成功!';
                 // $mProductStat->updatePartake($pid);
             } else {
                 $output['status'] = 0;
                 $output['order_id'] = 0;
                 $output['info'] = '订单生成失败,请重新提交!';
             }
         } else {
             $output['status'] = 0;
             $output['order_id'] = 0;
             $output['info'] = '用户未登录或没有该产品!';
         }
         // return $this->redirect('weixin/jspay',['act' =>'pay', 'id' =>$rel_id]);
     } else {
         $output['status'] = 0;
         $output['order_id'] = 0;
         $output['info'] = '信息填写不完整!';
     }
     // }
     $output = PublicLibrary::format_res_encode($output['status'], $output['info'], $output['order_id']);
     // var_dump($output);
     echo $output;
 }
Exemple #3
0
 /**
  * 添加新用户
  * @param array $user:需要保存更新的数组,
  * @param int $uid      需要更新的uid
  *
  * @return bool
  */
 public function saveMember($user = [], $uid = 0)
 {
     if ($uid > 0) {
         $this->findOne($uid);
     }
     if (!empty($user['username']) && PublicLibrary::checkMobileType($user['username']) > 0) {
         $this->mobile = $user['username'];
     } else {
         if (!empty($user['username']) && PublicLibrary::is_valid_email($user['username'])) {
             $this->email = $user['username'];
         } else {
             return false;
         }
     }
     //$this->username = !empty($user['username'])?$user['username']:'';
     $this->random = !empty($user['random']) ? $user['random'] : '';
     $this->password = !empty($user['password']) ? $user['password'] : '';
     $this->is_admin = !empty($user['is_admin']) ? $user['is_admin'] : 0;
     $this->create_at = time();
     $this->create_ip = PublicLibrary::get_ip();
     return $this->save();
 }
 /**
  * 商品生成订单
  * @1.活动产品id rel_id,
  * @2.代金券id:v_id,
  * @3.数量:nums,
  * @4.价格:totalpay,
  * @5.默认地址id:address_id
  * @提交地址:http://dev.idaiyan.cn/payment/orderbuild?rel_id=33104&v_id=4&nums=5&totalpay=66&address_id=8
  * todo 仅仅可以通过某个链接过来。
  */
 public function actionOrderbuild()
 {
     //开启缓存
     $session = Yii::$app->session;
     $session->isActive ? '' : $session->open();
     $user = PublicLibrary::is_login();
     if (!$user) {
         return $this->redirect(['product/index']);
         exit;
     }
     // //判断用户有没有登录
     $uid = $_SESSION['user']['uid'];
     $parr = Yii::$app->request->post();
     if ($parr) {
         //接收传过来的数据
         $address_id = isset($parr['address_id']) ? intval($parr['address_id']) : '';
         $v_id = isset($parr['v_id']) ? intval($parr['v_id']) : '';
         //优惠券id
         $nums = isset($parr['nums']) ? intval($parr['nums']) : '';
         //数量
         $rel_id = isset($parr['rel_id']) ? intval($parr['rel_id']) : '';
         //活动产品id
         //判断是否重复提交表单
         $originator = isset($parr['originator']) ? strip_tags($parr['originator']) : '';
         //重复提交表单的判断
         if ($originator) {
             if (!empty($_SESSION['fsess'])) {
                 // echo 'ok';
                 if ($originator == $_SESSION['fsess']) {
                     $_SESSION['fsess'] = mt_rand(0, 1000000);
                 } else {
                     return $this->redirect(['ucenter/my-order']);
                     exit;
                 }
             }
         }
         /*
             通过address_id uid查询用户相关的信息
             1、判断传过来的地址是否是该用户的地址
             2、查询该用户的地址信息
         */
         //1、判断传过来的地址是否是该用户的地址
         $amodels = new HarvestAddress();
         $addr = $amodels->isUserHarvest($address_id, $uid);
         if (!$addr) {
             return $this->redirect(['product/index']);
             //跳转到完善信息
             exit;
         }
         //2、查询该用户的地址信息
         $ares = $amodels->pk($address_id);
         $mobile = $ares['mobile'];
         if (!$mobile) {
             $mobile = $ares['telephone'];
         }
         $truename = $ares['harvest'];
         $address_id = $ares['id'];
         $address = $ares['address'];
         $province_id = $ares['province'];
         $city_id = $ares['city'];
         $mDistrict = new District();
         $province = $mDistrict->getById($province_id);
         $city = $mDistrict->getById($city_id);
         $location = $province['name'] . ',' . $city['name'];
         /*
             通过rel_id 查询产品相关的信息
         */
         $pmodel = new ActivityProduct();
         // $product = $pmodel->pk(33104);//33104
         $product = $pmodel->pk($rel_id);
         //33104
         $product_id = $product['product_id'];
         $acti_id = $product['acti_id'];
         $stock = $product['stock'];
         //库存
         $acprattr_model = new ActivityProductAttrVal();
         $acprattr = $acprattr_model->getRealAttrVals($rel_id, $acti_id);
         $discount_price = isset($acprattr['discount_price']['val']['price']) ? $acprattr['discount_price']['val']['price'] : '1';
         //活动价格
         //判断需求数和库存数
         if ($nums > $stock) {
             return $this->redirect(['product/index']);
             //跳转到完善信息
             exit;
         }
         /*
             通过product_id 查询产品相关的信息
         */
         $pmodel = new IProductBase();
         $pres = $pmodel->pk($product_id);
         $name = isset($pres['name']) ? strip_tags($pres['name']) : '';
         //产品名称
         if ($v_id) {
             /*
                 通过v_id 和 uid 查询优惠券的信息
             */
             $vmodel = new Volume();
             $vres = $vmodel->isMyolume($uid, $v_id);
             if (!$vres) {
                 return $this->redirect(['product/index']);
                 exit;
             }
             $integral = $vres['integral'];
             //优惠金额
             $totalpay = $discount_price * $nums - $integral;
             //最终价格
             if ($totalpay <= 0) {
                 return $this->redirect(['product/index']);
                 exit;
             }
         } else {
             $totalpay = $discount_price * $nums;
             //最终价格
         }
         $orderno = 'idy' . date('YmdHis', time()) . mt_rand(100000, 999999);
         $model_order = new Order();
         $model_order->uid = $uid;
         $model_order->mobile = $mobile;
         $model_order->rel_id = $rel_id;
         $model_order->product_id = $product_id;
         $model_order->acti_id = $acti_id;
         $model_order->v_id = $v_id;
         $model_order->nums = $nums;
         $model_order->truename = $truename;
         $model_order->province = $province['name'];
         $model_order->city = $city['name'];
         $model_order->address = $address;
         $model_order->create_time = time();
         $model_order->ip = PublicLibrary::get_ip();
         //ip
         $model_order->totalpay = $totalpay;
         $model_order->orderno = $orderno;
         $model_order->save();
         $order_id = Yii::$app->db->getLastInsertID();
         //
         $relpay = $totalpay * 100;
         //价格换算
         //支付宝生成二维码
         $native = Yii::$app->util->weixinnative(1, $name, $orderno);
         $params = ['out_trade_no' => $orderno, 'subject' => $name, 'total_fee' => 0.01, 'body' => $name, 'show_url' => Yii::$app->params['idaiyan'] . '/product/view?id=' . $product_id];
         $formHtml = Yii::$app->alipay->form($params);
         $qrCodeHtml = Yii::$app->alipay->qrcode($params);
         return $this->render('order', ['orderno' => $orderno, 'totalpay' => $totalpay, 'address' => $address, 'location' => $location, 'mobile' => $mobile, 'truename' => $truename, 'native' => $native, 'formHtml' => $formHtml, 'qrCodeHtml' => $qrCodeHtml]);
     } else {
         echo '该页面已经过期啦!';
         exit;
     }
 }