/** * 添加日志 * @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; }
/** * 添加新用户 * @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; } }