public function currentAction()
 {
     //取出起始时间
     $beginTime = $this->dateArr['endTime'];
     $endTime = time();
     //取出当前时间段的数据
     $orderRelation = new OrderRelationModel();
     $orderRelation->setBeginTime($beginTime);
     $orderRelation->setEndTime($endTime);
     $currentSettles = $orderRelation->getPayedOrder();
     //添加用户信息
     $key = '_customer_id';
     $currentSettles = get_customer_info_by_id($currentSettles, $key);
     //添加系数信息
     $rebate = new RebateModel();
     $key = 'totalGoodsFee';
     $keyRes = '_totalGoodsFee_rebate';
     $currentSettles = $rebate->getRatioByMoney($currentSettles, $key, $keyRes);
     $key = 'lineTotalGoodsFee';
     $keyRes = '_lineTotalGoodsFee_rebate';
     $currentSettles = $rebate->getRatioByMoney($currentSettles, $key, $keyRes);
     //计算佣金
     foreach ($currentSettles as $key => $value) {
         $currentSettles[$key]['commission'] = floor($value['totalDirectFee'] * $value['_totalGoodsFee_rebate']['direct_ratio'] + $value['lineTotalLineFee'] * $value['_lineTotalGoodsFee_rebate']['line_ratio']);
     }
     //数据分页
     $currentPage = I('get.p', 1);
     $this->page->setCounts(count($currentSettles));
     $this->page->setCurrentpage($currentPage);
     $this->page->setPageStyle(2);
     $pageSize = $this->page->getPageSize();
     //截取本页内容
     $currentSettles = array_slice($currentSettles, ($currentPage - 1) * $pageSize, $pageSize);
     $this->assign('beginTime', $beginTime);
     $this->assign('endTime', $endTime);
     $pageStr = $this->page->fetch();
     $this->assign('page', $pageStr);
     $this->assign('data', $currentSettles);
     $this->assign('YZRight', $this->fetch());
     $this->display(YZ_TEMPLATE);
 }
 public function cancelPayAction()
 {
     $payId = I('get.payid', '');
     if ($payId == '') {
         die("系统错误:未接收到payid");
     }
     $page = I('get.p', 1);
     //删除支付订单表
     $relation = new OrderRelationModel();
     $relation->setPayId($payId);
     $key = 'id';
     $relation->setKey($key);
     $relation->cancleInfoByPayid();
     //删除订单表
     $orderForm = new OrderFormModel();
     $orderForm->setPayid($payId);
     $key = 'id';
     $orderForm->setPayidKey($key);
     $orderForm->cancelDataByPayid();
     //设置跳转URL
     $jumpUrl = U("nopay?payid=" . $payid . "&p=" . $page);
     $this->success('订单已取消', $jumpUrl);
 }
 private function _getInfoBetweenTime($beginTime, $endTime)
 {
     //取出当前时间段的数据
     $orderRelation = new OrderRelationModel();
     $orderRelation->setBeginTime($beginTime);
     $orderRelation->setEndTime($endTime);
     $currentSettles = $orderRelation->getPayedOrder();
     //添加用户信息
     $key = '_customer_id';
     $currentSettles = get_customer_info_by_id($currentSettles, $key);
     //添加系数信息
     $rebate = new RebateModel();
     $key = 'totalGoodsFee';
     $keyRes = '_totalGoodsFee_rebate';
     $currentSettles = $rebate->getRatioByMoney($currentSettles, $key, $keyRes);
     $key = 'lineTotalGoodsFee';
     $keyRes = '_lineTotalGoodsFee_rebate';
     $currentSettles = $rebate->getRatioByMoney($currentSettles, $key, $keyRes);
     //计算佣金
     foreach ($currentSettles as $key => $value) {
         $currentSettles[$key]['commission'] = floor($value['totalDirectFee'] * $value['_totalGoodsFee_rebate']['direct_ratio'] + $value['lineTotalLineFee'] * $value['_lineTotalGoodsFee_rebate']['line_ratio']);
     }
     $key1 = '_customer_id';
     $key2 = 'openid';
     $currentSettles = change_key_by_key1_key2($currentSettles, $key1, $key2);
     return $currentSettles;
 }
 private function _getCurrentCustomerCurrentAchievement()
 {
     /* 取用户基本信息**** */
     $openid = (string) $this->postObj->FromUserName;
     //获取当前周期的开始结束日期
     $config = new ConfigModel();
     $times = $config->getBeginTimeAndEndTime();
     $beginTime = $times['endTime'];
     $endTime = time();
     //取当期业绩信息中直销业绩
     $relationForm = new OrderRelationModel();
     $currentAchievement['direct'] = $relationForm->getAchievementByOpenid($openid, $beginTime, $endTime);
     //取出上线为自已的所有用户的业绩
     $customer = new CustomerModel();
     $openids = $customer->getLineOpenids($openid);
     $currentAchievement['line'] = $relationForm->getAchievementByOpenid($openids, $beginTime, $endTime);
     //添加直销,线销系数
     $rebate = new RebateModel();
     //取直销系数
     $dataArr[0] = $currentAchievement['direct'];
     $key = '_totalGoodsFee';
     $keyReturn = '_direct_radio';
     $dataArr = $rebate->getRatioByMoney($dataArr, $key, $keyReturn);
     $currentAchievement['_direct_radio'] = $dataArr[0][$keyReturn];
     //取线销系数
     $dataArr[0] = $currentAchievement['line'];
     $keyReturn = '_line_radio';
     $dataArr = $rebate->getRatioByMoney($dataArr, $key, $keyReturn);
     $currentAchievement['_line_radio'] = $dataArr[0][$keyReturn];
     return $currentAchievement;
 }
 private function _addInfo($allOrderArr)
 {
     //拼接订单中的商品信息
     $orderGoods = new OrderGoodsModel();
     $key = 'id';
     $resKey = '_goods';
     $allOrderArr = $orderGoods->getGoodsArrByOrderIdArr($allOrderArr, $key, $resKey);
     //拼接支付订单信息
     $orderRelation = new OrderRelationModel();
     $key = 'payid';
     $resKey = '_payid';
     $allOrderArr = $orderRelation->getPayInfoArrByPayIdArr($allOrderArr, $key, $resKey);
     //拼接支付URL
     $allOrderArr = $this->_addPayUrl($allOrderArr);
     return $allOrderArr;
 }
 public function payNowAction()
 {
     $openid = get_openid();
     $ids = I('get.ids', '', false);
     $counts = I('get.counts', '', false);
     $coupon = I("get.coupons", '', false);
     //字符串转为数组
     if ($ids == '') {
         $ids = array();
     } else {
         $ids = explode("-", $ids);
     }
     if ($counts == '') {
         $counts = array();
     } else {
         $counts = explode("-", $counts);
     }
     if ($coupon == '') {
         $coupon = array();
     } else {
         $coupon = explode("-", $coupon);
     }
     //取出商品信息,总计信息
     $group = new SubmitController();
     $product = $group->dataAccess($ids, $counts);
     if ($product == false) {
         return;
     }
     $goods = $product[0];
     $totalInfo = $product[1];
     $countTotal = $totalInfo['totalCount'];
     //看优惠券数量是否大于商品数量
     if (count($coupon) > $countTotal) {
         //跳转至报错界面
         return;
     }
     //送入优惠券ID组成的数组,按ID值取出优惠券信息
     $couponModel = new CouponModel();
     $couponInfo = $couponModel->getInfo($coupon, $openid);
     //利用foreach,计算优惠券总金额(过期优惠券\已使用优惠券直接抛弃)
     $couponTotal = 0;
     foreach ($couponInfo as $key => $value) {
         /* 优惠券使用为0,未使用为1*/
         if ($value['end_time'] > time() && (int) $value['state'] & 1 == 1) {
             $couponTotal += $value['cover'];
         }
     }
     $totalInfo['totalCoupon'] = $couponTotal;
     $totalInfo['totalPayable'] -= $couponTotal;
     $totalInfo['totalPayable'] = $totalInfo['totalPayable'] > 0 ? $totalInfo['totalPayable'] : 1;
     //接收收货地址信息,通过收货地址,取详细信息
     $addressId = I('get.addressId', '');
     $address = new CustomerAddressModel();
     $address->setId($addressId);
     $addressInfo = $address->getAddress();
     $totalInfo['addressInfo'] = $addressInfo;
     $totalInfo['buyOpenid'] = $openid;
     //接收支付类型,类型为0为微信支付,类型为1为其它支付方式
     //        $payType = I('get.payType','0');
     //传入总金额,生成订单支付数据
     $orderRelation = new OrderRelationModel();
     $orderRelation->setTotalInfo($totalInfo);
     $payId = $orderRelation->addOrder();
     //传入订单信息,生成订单数据,返回订单ID
     /*
      * $payid, 支付id
      * $openid, 
      * $logisticsMode, 物流方式
      * $source, 来源
      * $payable, 总金额
      * $weightTotal, 总重量
      * $countTotal,商品总数量
      * $address,收货地址
      * $telephone, 收货电话
      * $name,则货人姓名
      * $frontId, 身份证正面ID
      * $backId, 身份证反面ID
      * $idNo, 身份证号
      * $couponTotal, 优惠总数
      * $directTotal, 直销返点总数
      * $lineTotal,线销返点总数
      * $logisticFee,物流费用
      * $maxAmonut,最大优惠金额
      * $coupon,使用优惠券信息
      */
     $orderForm = new OrderFormModel();
     $orderForm->setPayid($payId);
     $orderForm->setOpenid($openid);
     foreach ($goods as $key => $value) {
         $orderForm->setLogisticsMode($value['logisticType']['name']);
         $orderForm->setSource($value['source']['name']);
         $orderForm->setPayable($value['payable']);
         $orderForm->setWeight($value['weightTotal']);
         $orderForm->setCountTotal($value['countTotal']);
         $orderForm->setDirectFee($value['directTotal']);
         $orderForm->setLineFee($value['lineTotal']);
         $orderForm->setLogisticFee($value['logisticFee']);
         $orderForm->setMaxAmonut($value['maxAmonut']);
         $orderId = $orderForm->addOrder();
         /*生成订单-商品数据**************/
         $orderGoods = new OrderGoodsModel();
         $orderGoods->addOrderGoods($orderId, $value['goods']);
         /*添加商品的销量********************/
         $goodsM = new GoodsModel();
         $goodsM->updateSaled($value['goods']);
     }
     /*删除购物车数据******************/
     $shoppingCart = new ShoppingCartModel();
     $shoppingCart->deleteGoods($openid, $goods);
     /*将当前使用优惠券做使用处理*/
     $couponModel->updateUsed($coupon);
     /* 判断支付类型,拼接好URL后跳转 1为其它支付方式 0为微信支付 
      * 注意,在不同模式下,U方法将生成不同的路径,必须按U方法生成的目录设置微信的授权目录
      * 否则将导致出现  get_brand_wcpay_request:fail_invalid appid错误(      */
     //        if($payType == 1)
     //        {
     //            $url = U('WxPay/OtherPay/payNow?payid=' . $payId);
     //        }
     //        else
     //        {
     //            $url = U('WxPay/Pay/payNow?payid=' . $payId);
     //            //$url1 = U('WxPay/Pay/payNow') . '?payid=' . $payId;
     //        }
     $url = U('Pay/Index/index') . '?payid=' . $payId;
     redirect_url($url);
 }
 public function indexAction()
 {
     /* 取用户基本信息**** */
     $customerInfo = $this->customerInfo;
     //设置用户状态,用以显示“修改个人信息还是请完善个人信息”
     if (trim($customerInfo['phone_number']) == '' || trim($customerInfo['account']) == '') {
         $customerInfo['flag'] = 1;
     } else {
         $customerInfo['flag'] = 0;
     }
     $this->assign('customer', $customerInfo);
     $openid = get_openid();
     //取订单数量
     $orderForm = new OrderFormModel();
     $noPayOrderCount = $orderForm->getNopayOrderCountByOpenid($openid);
     $payedOrderCount = $orderForm->getPayedOrderCountByOpenid($openid);
     //传订单数量数据
     $this->assign('noPayOrderCount', $noPayOrderCount);
     $this->assign('payedOrderCount', $payedOrderCount);
     //获取当前周期的开始结束日期
     $config = new ConfigModel();
     $times = $config->getBeginTimeAndEndTime();
     $beginTime = $times['endTime'];
     $endTime = time();
     //取当期业绩信息中直销业绩
     $relationForm = new OrderRelationModel();
     $currentAchievement['direct'] = $relationForm->getAchievementByOpenid($openid, $beginTime, $endTime);
     //取出上线为自已的所有用户的业绩
     $customer = new CustomerModel();
     $openids = $customer->getLineOpenids($openid);
     $currentAchievement['line'] = $relationForm->getAchievementByOpenid($openids, $beginTime, $endTime);
     //添加直销,线销系数
     $rebate = new RebateModel();
     //取直销系数
     $dataArr[0] = $currentAchievement['direct'];
     $key = '_totalGoodsFee';
     $keyReturn = '_direct_radio';
     $dataArr = $rebate->getRatioByMoney($dataArr, $key, $keyReturn);
     $currentAchievement['_direct_radio'] = $dataArr[0][$keyReturn];
     //取线销系数
     $dataArr[0] = $currentAchievement['line'];
     $keyReturn = '_line_radio';
     $dataArr = $rebate->getRatioByMoney($dataArr, $key, $keyReturn);
     $currentAchievement['_line_radio'] = $dataArr[0][$keyReturn];
     $this->assign('achievement', $currentAchievement);
     $changeUrl = U('ChangePhone/index');
     $this->assign('changeUrl', $changeUrl);
     $account = U('Account/index');
     $couponUrl = U('User/Coupon/index');
     $this->assign('couponUrl', $couponUrl);
     $this->assign('wangqiurl', U('User/Achievement/pastData'));
     $finishedOrderUrl = U('UserCenter/OrderManage/finishedOrder');
     $payedOrderUrl = U('UserCenter/OrderManage/payedOrder');
     $unpayOrderUrl = U('UserCenter/OrderManage/unpayedOrder');
     $allOrderUrl = U('UserCenter/OrderManage/allOrder');
     $this->assign('finishedOrderUrl', $finishedOrderUrl);
     $this->assign('payedOrderUrl', $payedOrderUrl);
     $this->assign('unpayOrderUrl', $unpayOrderUrl);
     $this->assign('allOrderUrl', $allOrderUrl);
     $this->assign('count', $count);
     $css = $this->fetch('indexCss');
     $this->assign('indexCss', $css);
     $this->assign("YZBody", $this->fetch());
     $this->display(YZ_TEMPLATE);
 }