Exemplo n.º 1
0
 /**
  * 账户充值
  */
 public function recharge()
 {
     if (IS_POST) {
         $data['order_sn'] = 'S1_' . order_sn();
         $data['seller_id'] = $this->mid;
         $data['buyer_name'] = get_seller_nickname($data['seller_id']);
         $data['order_type'] = 1;
         $data['payment_id'] = intval($_POST['payment_id']);
         $data['payment_name'] = M('Payment')->where(array('payment_id' => $data['payment_id']))->getField('payment_name');
         $data['payment_code'] = M('Payment')->where(array('payment_id' => $data['payment_id']))->getField('payment_code');
         $data['payment_time'] = 0;
         $data['shipping_express_id'] = 0;
         $data['goods_amount'] = price_format($_POST['amount']);
         $data['order_title'] = '在线充值' . $data['goods_amount'] . '金币';
         if ($data['goods_amount'] < 1) {
             $this->error('充值的金额不正确.');
             die;
         }
         $data['discount'] = 0;
         $data['order_amount'] = $data['goods_amount'] - $data['discount'];
         $data['order_state'] = 10;
         $data['add_time'] = NOW_TIME;
         $res = $this->orderModel->add($data);
         if ($res) {
             $this->success('订单生成成功,正在跳转支付页面.', U('Pay/alipay', array('order_sn' => $data['order_sn'])));
         } else {
             $this->error('订单生成失败');
         }
     } elseif (IS_GET) {
         $this->h3_title = '账户充值';
         $this->display();
     }
 }
Exemplo n.º 2
0
 /**
  * 生成唯一的order_sn,并验证数据库中不存在此order_sn
  * @return order_sn
  */
 protected function _orderSn()
 {
     $map = array();
     $map['order_sn'] = order_sn();
     if ($this->where($map)->find()) {
         return $this->_orderSn();
     } else {
         return $map['order_sn'];
     }
 }
Exemplo n.º 3
0
/**
 * 生成10位order_sn
 */
function order_sn()
{
    static $seed = array();
    $rs = mt_rand(1000000000, 9999999999);
    if (in_array($rs, $seed)) {
        return order_sn();
    } else {
        $seed[] = $rs;
        return $rs;
    }
}
Exemplo n.º 4
0
 public function apply_success()
 {
     if (IS_POST) {
         if ($_SESSION['Repair']) {
             $data['rp_sn'] = order_sn();
             $data['goods_id'] = intval($_SESSION['Repair']['goods_id']);
             $data['spec_id'] = intval($_SESSION['Repair']['spec_id']);
             $data['bd_id'] = intval($_SESSION['Repair']['bd_id']);
             $data['machine_code'] = str_rp($_SESSION['Repair']['machine_code'], 1);
             $data['spec_name'] = str_rp($_SESSION['Repair']['spec_name'], 1);
             $data['content'] = str_rp($_SESSION['Repair']['content']);
             $data['member_id'] = $this->mid;
             $data['addtime'] = NOW_TIME;
             $data['express_style'] = intval($_POST['style']);
             if (empty(str_rp($_POST['express2'], 1))) {
                 $data['express'] = str_rp($_POST['express'], 1);
             } else {
                 $data['express'] = str_rp($_POST['express2'], 1);
             }
             $data['express_sn'] = trim($_POST['express_sn']);
             $data['rp_status'] = 0;
         } else {
             $this->error('申请表单验证失败', U('apply'));
         }
         $res = $this->model->add($data);
         if ($res) {
             unset($_SESSION['Repair']);
             $log['rp_id'] = $res;
             $log['log_content'] = '会员申请维修机器号' . $data['machine_code'];
             $log['log_time'] = NOW_TIME;
             $log['is_view'] = 1;
             M('RepairLog')->add($log);
             $this->display();
         } else {
             $this->error('申请维修失败.');
         }
     }
 }
Exemplo n.º 5
0
 /**
  * 未支付订单完成支付
  */
 public function payTask()
 {
     $where['goods_id'] = intval($_GET['id']);
     if ($where['goods_id']) {
         $where['seller_id'] = $this->mid;
         $task = $this->model->where($where)->find;
         if ($task['pay_result'] == 10) {
             $predeposit = M('Seller')->where(array('seller_id' => $this->mid))->getField('predeposit');
             $amount = $task['goods_amount'];
             if ($predeposit < $amount) {
                 $this->error('预存款不足,请进行充值', U('Member/recharge', array('price' => $amount - $predeposit)));
             } else {
                 $pay['predeposit'] = $predeposit - $amount;
                 $frozen = M('Seller')->where(array('seller_id' => $this->mid))->getField('frozen');
                 $pay['frozen'] = $frozen + $amount;
                 $result = M('Seller')->where(array('seller' => $this->mid))->save($pay);
                 $res = $task['goods_id'];
                 $this->model->where(array('goods_id' => $res, 'seller_id' => $this->mid))->setInc('frozen_amount', $amount);
                 if ($result) {
                     $crs = $this->model->where(array('goods_id' => $res, 'seller_id' => $this->mid))->setField('pay_result', 20);
                     //生成账单日志
                     $data['order_sn'] = 'S2_' . order_sn();
                     $data['seller_id'] = $this->mid;
                     $data['buyer_name'] = get_seller_nickname($data['seller_id']);
                     $data['order_type'] = 2;
                     $data['payment_id'] = 0;
                     $data['payment_name'] = '预存款转入冻结款';
                     $data['payment_time'] = NOW_TIME;
                     $data['shipping_express_id'] = 0;
                     $data['goods_amount'] = price_format($_POST['amount']);
                     $data['order_title'] = '任务id:' . $res . '冻结' . $data['goods_amount'] . '金币';
                     $data['discount'] = 0;
                     $data['order_amount'] = $data['goods_amount'] - $data['discount'];
                     $data['order_state'] = 10;
                     $data['add_time'] = NOW_TIME;
                     $rc = $this->orderModel->add($data);
                     if ($crs) {
                         $bill_data['seller_id'] = $this->mid;
                         $bill_data['bill_log'] = '发布普通任务,任务号:' . $res . '冻结' . $amount;
                         $bill_data['amount'] = $amount;
                         $bill_data['balance'] = $pay['predeposit'];
                         $bill_data['addtime'] = NOW_TIME;
                         $bill_data['bill_type'] = -2;
                         //冻结
                         M('SellerBill')->add($bill_data);
                     }
                 }
                 $this->success('任务支付成功');
             }
         } else {
             $this->error('非法操作');
         }
     } else {
         $this->error('非法操作');
     }
 }
Exemplo n.º 6
0
 public function getPurchase()
 {
     if (IS_AJAX) {
         $goods_id = intval($_POST['id']);
         if ($goods_id) {
             $info = M('Goods')->where(array('goods_id' => $goods_id, 'goods_status' => 1, 'pay_result' => 20))->find();
             if (!empty($info)) {
                 if ($info['goods_storage'] == 0) {
                     $this->error('该商品已经没有库存啦.');
                 }
                 if ($info['start_time'] > NOW_TIME) {
                     $this->error('该活动还没开启.');
                 }
                 if ($info['end_time'] < NOW_TIME) {
                     $this->error('该活动已经结束.');
                 }
                 //购买限制.
                 if ($info['buy_limit']) {
                     $limit_where['member_id'] = $this->mid;
                     $limit_where['goods_id'] = $goods_id;
                     $limit_where['order_state'] = array('neq', -2);
                     $limit_where['goods_type_id'] = 3;
                     $limit_where['add_time'] = array('gt', NOW_TIME - $info['buy_limit'] * 24 * 60 * 60);
                     $order_count = M('Order')->where($limit_where)->count();
                     if ($order_count) {
                         $this->error('该订单在' . $info['buy_limit'] . '日内只能购买一次.');
                     }
                 }
                 $rms = M('Member')->where(array('member_id' => $this->mid))->setDec('predeposit', MSC('gain_purchase_cost'));
                 $predeposit = M('Member')->where(array('member_id' => $this->mid))->getField('predeposit');
                 //写入流水账单
                 $bill['member_id'] = $this->mid;
                 $bill['bill_log'] = '获取资格花费金币';
                 $bill['amount'] = MSC('gain_purchase_cost');
                 $bill['balance'] = $predeposit;
                 $bill['addtime'] = NOW_TIME;
                 $bill['bill_type'] = -1;
                 M('MemberBill')->add($bill);
                 if ($rms) {
                     //扣去库存
                     M('Goods')->where(array('goods_id' => $goods_id, 'goods_status' => 1, 'pay_result' => 20))->setDec('goods_storage');
                     M('Goods')->where(array('goods_id' => intval($_POST['goods_id']), 'goods_status' => 1, 'pay_result' => 20))->setInc('goods_sales');
                     //生成订单
                     $data['goods_type_id'] = 3;
                     $data['order_sn'] = order_sn();
                     $data['seller_id'] = $info['seller_id'];
                     $data['member_id'] = $this->mid;
                     $data['buyer_name'] = M('Member')->where(array('member_id' => $data['member_id']))->getField('nickname');
                     $data['goods_amount'] = $info['goods_o_price'];
                     $data['discount'] = 0;
                     $data['order_amount'] = $info['goods_o_price'];
                     $data['order_state'] = 1;
                     $data['add_time'] = NOW_TIME;
                     $data['goods_id'] = $goods_id;
                     $order_id = M('Order')->add($data);
                     if ($order_id) {
                         //写入订单日志
                         $order_log['order_id'] = $order_id;
                         $order_log['order_state'] = '接取分享购任务';
                         $order_log['step_id'] = 1;
                         $order_log['log_content'] = '接取分享购任务';
                         $order_log['log_time'] = NOW_TIME;
                         $order_log['operator'] = '会员' . $data['member_id'];
                         M('OrderLog')->add($order_log);
                         echo true;
                     } else {
                         echo false;
                     }
                 } else {
                     echo false;
                 }
             }
         }
     }
 }
Exemplo n.º 7
0
 public function editOrder()
 {
     if (IS_POST) {
         $order_id = intval($_POST['order_id']);
         $issuper = M('Admin')->where(array('admin_id' => AID))->getField('admin_issuper');
         if (!$issuper) {
             $order_where['creat_admin_id'] = array('in', '0,' . AID);
         }
         $order_where['order_id'] = $order_id;
         $order = $this->model->where($order_where)->find();
         if (empty($order)) {
             $this->error('非法操作');
         }
         $data['order_sn'] = order_sn();
         $data['out_sn'] = str_rp($_POST['out_sn'], 1);
         $data['buyer_name'] = str_rp($_POST['true_name'], 1);
         $data['payment_time'] = strtotime($_POST['payment_time']);
         $data['add_time'] = strtotime($_POST['add_time']);
         $data['discount'] = floatval($_POST['discount']);
         $data['order_amount'] = floatval($_POST['order_amount']);
         $data['email'] = str_rp($_POST['email'], 1);
         if ($data['email']) {
             saveContact($data['email'], 'email', '订单');
             $member_id = M('Member')->where(array('email' => $data['email']))->getField('member_id');
         }
         $data['mobile'] = str_rp($_POST['mob_phone'], 1);
         if ($data['mobile']) {
             saveContact($data['mobile'], 'mobile', '订单');
             $member_id = M('Member')->where(array('mobile' => $data['mobile']))->getField('member_id');
         }
         if ($member_id) {
             $data['member_id'] = $member_id;
         } else {
             $data['member_id'] = 0;
         }
         $data['source'] = str_rp($_POST['source'], 1);
         $data['creat_admin_id'] = AID;
         $data['customer_id'] = intval($_POST['customer_id']);
         $res = $this->model->where($order_where)->save($data);
         $data['OrderAddress']['company_name'] = str_rp($_POST['company_name'], 1);
         $data['OrderAddress']['true_name'] = $data['buyer_name'];
         $data['OrderAddress']['buyer_id'] = $data['member_id'];
         $data['OrderAddress']['prov_id'] = intval($_POST['province_id']);
         $data['OrderAddress']['city_id'] = intval($_POST['city_id']);
         $data['OrderAddress']['area_id'] = intval($_POST['area_id']);
         $data['OrderAddress']['address'] = str_rp($_POST['address'], 1);
         $data['OrderAddress']['zip_code'] = intval($_POST['zip_code']);
         $data['OrderAddress']['mob_phone'] = $data['mobile'];
         $data['OrderAddress']['email'] = $data['email'];
         $data['OrderAddress']['add_time'] = $data['add_time'];
         M('OrderAddress')->where(array('order_id' => $order_id))->save($data['OrderAddress']);
         $data['OrderLog'][0]['order_state'] = '订单完成';
         $data['OrderLog'][0]['log_time'] = $data['add_time'];
         $data['OrderLog'][0]['state_info'] = '管理员录入订单';
         $data['OrderLog'][0]['operator'] = '管理员-' . get_admin_nickname(AID);
         M('OrderLog')->where(array('order_id' => $order_id))->add($data['OrderLog'][0]);
         foreach ($_POST['goods'] as $key => $val) {
             $goods = M('Goods')->where(array('goods_id' => $val['goods_id']))->find();
             if (!empty($goods)) {
                 $data['OrderGoods'][$key]['order_id'] = $order_id;
                 $data['OrderGoods'][$key]['goods_id'] = $goods['goods_id'];
                 $data['OrderGoods'][$key]['goods_price'] = $val['goods_price'];
                 $data['OrderGoods'][$key]['goods_mkprice'] = $val['goods_mktprice'];
                 $data['OrderGoods'][$key]['goods_num'] = $val['goods_num'];
                 $data['OrderGoods'][$key]['goods_name'] = $goods['goods_name'];
                 $data['OrderGoods'][$key]['goods_image'] = $goods['goods_pic'];
             }
         }
         M('OrderGoods')->where(array('order_id' => $order_id))->delete();
         M('OrderGoods')->addAll($data['OrderGoods']);
         if (empty(intval($_POST['customer_id']))) {
             $customer['company_name'] = str_rp($_POST['company_name'], 1);
             $customer['customer_name'] = $data['buyer_name'];
             $customer['province_id'] = intval($_POST['province_id']);
             $customer['city_id'] = intval($_POST['city_id']);
             $customer['district_id'] = intval($_POST['area_id']);
             $customer['address'] = str_rp($_POST['address'], 1);
             $customer['zip_code'] = intval($_POST['zip_code']);
             $customer['mobile'] = $data['mobile'];
             $customer['email'] = $data['email'];
             $customer['creat_admin_id'] = AID;
             $customer['create_time'] = NOW_TIME;
             $customer['status'] = 1;
             $customer['remark'] = '来自订单录入';
             $customer['sort'] = 0;
             if (!empty($customer['company_name']) || !empty($customer['customer_name'])) {
                 M('Customer')->add($customer);
             }
         }
         if ($res) {
             $this->success('录入订单成功', U('order'));
         } else {
             $this->error('录入订单失败');
         }
     } elseif (IS_GET) {
         $order_id = intval($_GET['order_id']);
         $order_where['order_id'] = $order_id;
         $issuper = M('Admin')->where(array('admin_id' => AID))->getField('admin_issuper');
         if (!$issuper) {
             $order_where['creat_admin_id'] = array('in', '0,' . AID);
         }
         $order = $this->model->relation(true)->where($order_where)->find();
         if (empty($order)) {
             $this->error('非法操作');
         } else {
             $this->order = $order;
         }
         $province = M('District')->where(array('level' => 1, 'status' => 1))->order('d_sort')->select();
         $city = M('District')->where(array('level' => 2, 'status' => 1, 'upid' => $order['prov_id']))->order('d_sort')->select();
         $area = M('District')->where(array('level' => 3, 'status' => 1, 'upid' => $order['city_id']))->order('d_sort')->select();
         $this->assign('province', $province);
         $this->assign('city', $city);
         $this->assign('area', $area);
         $this->display('addOrder');
     }
 }
Exemplo n.º 8
0
 public function autoPublish()
 {
     $this->orderModel = D('SellerOrder');
     $where['plan_status'] = 1;
     $where['next_publish_time'] = array('elt', NOW_TIME);
     $list = M('PublishPlan')->where($where)->select();
     foreach ($list as $key => $val) {
         if ($val['goods_id']) {
             $map['goods_id'] = $val['goods_id'];
             $plan_goods = M('Goods')->where($map)->find();
             unset($plan_goods['goods_id']);
             if ($plan_goods['goods_status'] != -1) {
                 $plan_goods['goods_status'] = 1;
                 $plan_goods['frozen_amount'] = 0;
                 $plan_goods['pay_result'] = 20;
                 $plan_goods['temp_name'] = '';
                 $amount = $plan_goods['goods_amount'];
                 $predeposit = M('Seller')->where(array('seller_id' => $plan_goods['seller_id']))->getField('predeposit');
                 if ($predeposit < $amount) {
                     $res = $this->model->add($plan_goods);
                     if ($res) {
                         $plan['plan_finish_num'] = $val['plan_finish_num'] + 1;
                         $plan['last_publish_time'] = NOW_TIME;
                         if ($plan['plan_finish_num'] < $val['plan_days'] * $val['plan_publish_num']) {
                         } else {
                             $plan['plan_status'] = 0;
                         }
                         $plan['next_publish_time'] = M('PublishPlan')->where(array('plan_id' => $val['plan_id']))->save($plan);
                         //图片保存
                         $goods_pic = M('GoodsPic')->where(array('goods_id' => $plan_goods['goods_id']))->select();
                         if (!empty($goods_pic)) {
                             foreach ($goods_pic as $key => $vo) {
                                 $pic[$key]['goods_id'] = $res;
                                 $pic[$key]['pic'] = $vo['pic'];
                                 $pic[$key]['p_sort'] = 0;
                             }
                             $gpr = M('GoodsPic')->addAll($pic);
                         }
                         //vip
                         $goods_option = M('GoodsOption')->where(array('goods_id' => $plan_goods['goods_id']))->select();
                         if (!empty($goods_option)) {
                             if (is_array($goods_option)) {
                                 foreach ($goods_option as $key => $vo) {
                                     $option_data['goods_id'] = $res;
                                     $option_data['option_id'] = $vo['option_id'];
                                     M('GoodsOption')->add($option_data);
                                 }
                             }
                         }
                         $pay['predeposit'] = $predeposit - $amount;
                         $frozen = M('Seller')->where(array('seller_id' => $plan_goods['seller_id']))->getField('frozen');
                         $pay['frozen'] = $frozen + $amount;
                         $result = M('Seller')->where(array('seller_id' => $plan_goods['seller_id']))->save($pay);
                         $this->model->where(array('goods_id' => $res, 'seller_id' => $plan_goods['seller_id']))->setInc('frozen_amount', $amount);
                         if ($result) {
                             $crs = $this->model->where(array('goods_id' => $res, 'seller_id' => $plan_goods['seller_id']))->setField('pay_result', 20);
                             //生成账单日志
                             $data['order_sn'] = 'S2_' . order_sn();
                             $data['seller_id'] = $plan_goods['seller_id'];
                             $data['buyer_name'] = get_seller_nickname($plan_goods['seller_id']);
                             $data['order_type'] = 2;
                             $data['payment_id'] = 0;
                             $data['payment_name'] = '预存款转入冻结款';
                             $data['payment_time'] = NOW_TIME;
                             $data['shipping_express_id'] = 0;
                             $data['goods_amount'] = price_format($amount);
                             $data['order_title'] = '任务id:' . $res . '冻结' . $data['goods_amount'] . '金币';
                             $data['discount'] = 0;
                             $data['order_amount'] = $data['goods_amount'] - $data['discount'];
                             $data['order_state'] = 10;
                             $data['add_time'] = NOW_TIME;
                             $rc = $this->orderModel->add($data);
                             if ($crs) {
                                 $bill_data['seller_id'] = $this->mid;
                                 $bill_data['bill_log'] = '定时发布普通任务,任务号:' . $res . '冻结' . $amount;
                                 $bill_data['amount'] = $amount;
                                 $bill_data['balance'] = $pay['predeposit'];
                                 $bill_data['addtime'] = NOW_TIME;
                                 $bill_data['bill_type'] = -2;
                                 //冻结
                                 $bres = M('SellerBill')->add($bill_data);
                             } else {
                             }
                         } else {
                         }
                     } else {
                     }
                 } else {
                 }
             } else {
             }
         }
     }
 }
Exemplo n.º 9
0
 public function reserve()
 {
     if (!$this->mid) {
         // 			json_return(300,'请先登录.',array(),U('Login/index'));
         $this->error('请先登录', U('Login/index'));
     }
     $goods_id = intval($_POST['goods_id']);
     $spec_id = intval($_POST['spec_id']);
     $num = intval($_POST['num']);
     if ($num) {
         if ($spec_id) {
             $goods_id = M('GoodsSpec')->where(array('spec_id' => $spec_id))->getField('goods_id');
         }
         $goods = M('Goods')->where(array('goods_id' => $goods_id))->find();
         if (get_distributor($this->mid)) {
             $cdisc = MSC('distributor_discount');
         } else {
             $cdisc = 1;
         }
         $data['order_sn'] = order_sn();
         $data['member_id'] = $this->mid;
         $data['order_type'] = 2;
         $data['goods_amount'] = $cdisc * get_discount($num) * $num * $goods['goods_price'];
         $data['discount'] = 0;
         $data['order_amount'] = $data['goods_amount'] - $data['discount'];
         $data['order_state'] = 0;
         $data['add_time'] = NOW_TIME;
         $data['goods_id'] = $goods_id;
         $data['spec_id'] = $spec_id;
         $data['reserve_num'] = $num;
         $res = M('Reserve')->add($data);
         if ($res) {
             $this->success('预订成功', $_SERVER['HTTP_REFERER']);
             // 				json_return(200,'预订成功.');
         } else {
             $this->error('预订失败');
             // 				json_return(300,'预定失败.');
         }
     } else {
         $this->error('预订数量不能为空');
         json_return(300, '预订数量不能为空');
     }
 }
Exemplo n.º 10
0
 /**
  * 浏览收藏任务
  */
 public function browse()
 {
     if (IS_POST) {
         //计算所需价格
         $vip = vip_level($this->mid);
         $goods_o_price = intval($_POST['goods_o_price'] * 100) / 100;
         $tax_rate = MSC('tax_rate');
         $goods_storage = intval($_POST['goods_storage']);
         $freight = intval($_POST['freight'] * 100) / 100;
         $goods_min_num = intval($_POST['goods_min_num']);
         $goods_price = ($goods_o_price * $goods_min_num + $freight) * $tax_rate;
         $add_bounty = intval($_POST['add_bounty'] * 100) / 100;
         $amount = ($goods_o_price * $goods_min_num + $freight) * $goods_storage + $goods_price * $goods_storage + $add_bounty * $goods_storage;
         $option = $_POST['vip_select'];
         //vip服务
         if (intval($_POST['vip_service'])) {
             $data['limit_id'] = intval($_POST['limit_id']);
             if (!empty($option)) {
                 $vip_discount = get_vip_discount($vip);
                 if (is_array($option)) {
                     foreach ($option as $key => $val) {
                         $amount += M('VipOption')->where(array('option_id' => $val))->getField('option_price') * $goods_storage * $vip_discount;
                     }
                 }
             }
             if (intval($_POST['limit_id'])) {
                 $amount += M('GoodsLimit')->where(array('limit_id' => intval($_POST['limit_id']), 'status' => 1))->getField('price');
             }
             $data['add_comment'] = str_rp(trim($_POST['add_comment']));
         }
         //计划任务
         if (intval($_POST['plan']) && intval($_POST['plan_days']) && intval($_POST['plan_publish_num']) && intval($_POST['interval_time'])) {
             $plan_click = intval($_POST['plan_days']) * intval($_POST['plan_publish_num']);
             $amount += $plan_click * MSC('plan_cost');
         }
         //保存主图
         if (!empty($_POST['pic'])) {
             $data['goods_pic'] = $_POST['pic'][0];
         }
         //数据整合处理
         $data['seller_id'] = $this->mid;
         $data['goods_name'] = str_rp(trim($_POST['goods_name']));
         $data['goods_url'] = str_rp(trim($_POST['goods_url']));
         $data['goods_o_price'] = $goods_o_price;
         $data['goods_storage'] = $goods_storage;
         $data['goods_price'] = $goods_price;
         //$data['goods_price'] = $goods_price*(1-(MSC('website_bonus')/100));
         $data['goods_min_num'] = $goods_min_num;
         $data['freight'] = $freight;
         $data['goods_amount'] = $amount;
         $data['add_bounty'] = $add_bounty;
         $data['search_key'] = str_rp(trim($_POST['search_key']));
         $data['search_tip'] = str_rp(trim($_POST['search_tip']));
         $data['comment'] = str_rp(trim($_POST['comment']));
         $data['pf_id'] = intval($_POST['web_platform']);
         $data['web_platform'] = M('Platform')->where(array('pf_id' => $data['pf_id']))->getField('pf_name');
         $data['account_id'] = M('SellerAccount')->where(array('account_id' => intval($_POST['account_id']), 'seller_id' => $this->mid, 'status' => 1))->getField('account_id');
         $data['goods_type_id'] = 4;
         $data['pay_result'] = 10;
         $data['goods_status'] = 1;
         $data['add_time'] = NOW_TIME;
         $data['has_word'] = $_POST['zi'];
         $device_id = intval($_POST['device_id']);
         if ($device_id == 1) {
             $data['goods_device'] = '手机';
         } elseif ($device_id == 2) {
             $data['goods_device'] = '电脑';
         }
         //保存模板
         if (intval($_POST['save_temp'])) {
             $data['temp_name'] = str_rp(trim($_POST['temp_name']));
         }
         $res = $this->model->add($data);
         if ($res) {
             //图片保存(上传)
             if (!empty($_POST['pic'])) {
                 foreach ($_POST['pic'] as $key => $val) {
                     $pic[$key]['goods_id'] = $res;
                     $pic[$key]['pic'] = $val;
                     $pic[$key]['p_sort'] = 0;
                 }
                 $gpr = M('GoodsPic')->addAll($pic);
             }
             //计划任务
             if (intval($_POST['plan']) && intval($_POST['plan_days']) && intval($_POST['plan_publish_num']) && intval($_POST['interval_time'])) {
                 $plan_data['goods_id'] = $res;
                 $plan_data['plan_days'] = intval($_POST['plan_days']);
                 $plan_data['plan_publish_num'] = intval($_POST['plan_publish_num']);
                 $plan_data['plan_interval'] = intval($_POST['interval_time']) * 60;
                 $plan_data['plan_days_start'] = intval($_POST['hours']) * 60 * 60 + intval($_POST['minute']) * 60;
                 $rpd = M('PublishPlan')->add($plan_data);
             }
             //vip
             if (!empty($option)) {
                 if (is_array($option)) {
                     foreach ($option as $key => $val) {
                         $option_data['goods_id'] = $res;
                         $option_data['option_id'] = $val;
                         M('GoodsOption')->add($option_data);
                     }
                 }
             }
             $predeposit = M('Seller')->where(array('seller_id' => $this->mid))->getField('predeposit');
             if ($predeposit < $amount) {
                 $this->error('预存款不足,请进行充值', U('Member/recharge', array('price' => $amount - $predeposit)));
             } else {
                 $pay['predeposit'] = $predeposit - $amount;
                 $frozen = M('Seller')->where(array('seller_id' => $this->mid))->getField('frozen');
                 $pay['frozen'] = $frozen + $amount;
                 $result = M('Seller')->where(array('seller' => $this->mid))->save($pay);
                 $this->model->where(array('goods_id' => $res, 'seller_id' => $this->mid))->setInc('frozen_amount', $amount);
                 if ($result) {
                     $crs = $this->model->where(array('goods_id' => $res, 'seller_id' => $this->mid))->setField('pay_result', 20);
                     //生成账单日志
                     $data['order_sn'] = 'S2_' . order_sn();
                     $data['seller_id'] = $this->mid;
                     $data['buyer_name'] = get_seller_nickname($data['seller_id']);
                     $data['order_type'] = 2;
                     $data['payment_id'] = 0;
                     $data['payment_name'] = '预存款转入冻结款';
                     $data['payment_time'] = NOW_TIME;
                     $data['shipping_express_id'] = 0;
                     $data['goods_amount'] = price_format($amount);
                     $data['order_title'] = '任务id:' . $res . '冻结' . $data['goods_amount'] . '金币';
                     $data['discount'] = 0;
                     $data['order_amount'] = $data['goods_amount'] - $data['discount'];
                     $data['order_state'] = 10;
                     $data['add_time'] = NOW_TIME;
                     $rc = $this->orderModel->add($data);
                     if ($crs) {
                         $bill_data['seller_id'] = $this->mid;
                         $bill_data['bill_log'] = '发布浏览收藏任务,任务号:' . $res . '冻结' . $amount;
                         $bill_data['amount'] = $amount;
                         $bill_data['balance'] = $pay['predeposit'];
                         $bill_data['addtime'] = NOW_TIME;
                         $bill_data['bill_type'] = -2;
                         //冻结
                         M('SellerBill')->add($bill_data);
                     }
                 }
                 $this->success('发布任务成功');
             }
         } else {
             $this->error('发布任务失败');
         }
     } elseif (IS_GET) {
         $where['select_status'] = 1;
         $vip_option = $this->vipOptionModel->relation(true)->where($where)->order($this->order)->select();
         $platform = M('Platform')->order('pf_sort desc')->select();
         $map['temp_name'] = array('neq', '');
         $map['seller_id'] = $this->mid;
         $template = $this->model->where($map)->order('add_time desc')->select();
         $this->assign('template', $template);
         $this->assign('platform', $platform);
         $this->assign('vip_option', $vip_option);
         $this->h3_title = '浏览收藏任务';
         $this->display('publish');
     }
 }
Exemplo n.º 11
0
 /**
  * 生成订单
  */
 public function creatOrder()
 {
     $addr_id = intval($_POST['addr_id']);
     $addr_info = M('MemberAddrs')->where(array('addr_id' => $addr_id))->find();
     $goods_list = M('OrderGoods')->where(array('order_id' => 0, 'member_id' => $this->mid))->select();
     if (!empty($addr_info)) {
         $data['order_sn'] = order_sn();
         $data['member_id'] = $this->mid;
         $data['buyer_name'] = get_member_nickname($this->mid);
         switch (trim($_POST['pay_type'])) {
             case 1:
                 $data['payment_name'] = 'alipay';
                 break;
             case 2:
                 $data['payment_name'] = 'bdpay';
                 break;
         }
         $data['shipping_fee'] = 0;
         $data['goods_amount'] = 0;
         $data['discount'] = 0;
         $data['order_amount'] = 0;
         if (empty($goods_list)) {
             $this->error('您还没有选择好商品哦.', U('Cart/index'));
         }
         foreach ($goods_list as $key => $val) {
             //计算价格同时清除购物车里的商品
             $Cart = new Cart();
             $Cart->delItem($val['goods_id']);
             $goods_price = M('Goods')->where(array('goods_id' => $val['goods_id']))->getField('goods_price');
             if (get_distributor($this->mid)) {
                 $goods_price = $goods_price * MSC('distributor_discount');
             }
             $data['goods_amount'] += $goods_price * $val['goods_num'];
             $data['discount'] += $data['goods_amount'] * (1 - get_discount($val['goods_num']));
             //冻结库存
             M('Goods')->where(array('goods_id' => $val['goods_id']))->setDec('goods_storage', $val['goods_num']);
             M('Goods')->where(array('goods_id' => $val['goods_id']))->setInc('goods_freez', $val['goods_num']);
         }
         $data['order_amount'] = $data['goods_amount'] - $data['discount'];
         $data['order_message'] = str_rp($_POST['order_message'], 1);
         $member = M('Member')->where(array('member_id' => $this->mid))->field('mobile,email')->find();
         $data['mobile'] = $member['mobile'];
         $data['email'] = $member['email'];
         $data['order_state'] = 10;
         $data['add_time'] = NOW_TIME;
         $order_id = M('Order')->add($data);
         if ($order_id) {
             //认领订单商品 已从购物车页面写入
             M('OrderGoods')->where(array('order_id' => 0, 'member_id' => $this->mid))->setField('order_id', $order_id);
             //生成物流地址
             $address_data['order_id'] = $order_id;
             $address_data['buyer_id'] = $this->mid;
             $address_data['true_name'] = $addr_info['name'];
             $address_data['prov_id'] = $addr_info['province_id'];
             $address_data['city_id'] = $addr_info['city_id'];
             $address_data['area_id'] = $addr_info['area_id'];
             $address_data['address'] = $addr_info['addr'];
             $address_data['zip_code'] = $addr_info['zip'];
             $address_data['mob_phone'] = $addr_info['mobile'];
             $address_data['add_time'] = NOW_TIME;
             M('OrderAddress')->add($address_data);
             //订单日志
             $log_data['order_id'] = $order_id;
             $log_data['order_state'] = get_order_state_name(10);
             $log_data['change_state'] = get_order_state_name(20);
             $log_data['state_info'] = '会员确认订单';
             $log_data['log_time'] = NOW_TIME;
             $log_data['operator'] = '会员';
             M('OrderLog')->add($log_data);
             //进行支付跳转
             switch (trim($_POST['pay_type'])) {
                 case 1:
                     $this->success('订单生成成功', U('Pay/alipay', array('order_sn' => $data['order_sn'])));
                     break;
                 case 2:
                     $this->success('订单生成成功', U('Pay/bdpay', array('order_sn' => $data['order_sn'])));
                     break;
             }
         }
     } else {
         $this->error('请选择收货地址');
     }
 }