public function export_q_csv($page = 1)
 {
     $pagesize = 10;
     set_time_limit(0);
     $limit = ($page - 1) * intval($pagesize) . "," . intval($pagesize);
     $id = intval($_REQUEST["id"]);
     $condition = " and lcr.type = 0 and lcr.status in (0,1,2) ";
     if (strim($_REQUEST["p_name"]) != "") {
         $condition .= " and lc.name like '%" . strim($_REQUEST["p_name"]) . "%'";
     }
     if (strim($_REQUEST["user_name"]) != "") {
         $condition .= " and lco.user_name like '%" . strim($_REQUEST["user_name"]) . "%'";
     }
     $start_time = strim($_REQUEST['start_time']);
     $end_time = strim($_REQUEST['end_time']);
     $d = explode('-', $start_time);
     if (isset($_REQUEST['start_time']) && $start_time != "" && checkdate($d[1], $d[2], $d[0]) == false) {
         $this->error("开始时间不是有效的时间格式:{$start_time}(yyyy-mm-dd)");
         exit;
     }
     $d = explode('-', $end_time);
     if (isset($_REQUEST['end_time']) && strim($end_time) != "" && checkdate($d[1], $d[2], $d[0]) == false) {
         $this->error("结束时间不是有效的时间格式:{$end_time}(yyyy-mm-dd)");
         exit;
     }
     if ($start_time != "" && strim($end_time) != "" && to_timespan($start_time) > to_timespan($end_time)) {
         $this->error('开始时间不能大于结束时间:' . $start_time . '至' . $end_time);
         exit;
     }
     if (strim($start_time) != "") {
         $condition .= " and lcr.create_date >= '" . strim($start_time) . "'";
         $this->assign("start_time", $start_time);
     }
     if (strim($end_time) != "") {
         $condition .= " and lcr.create_date <= '" . strim($end_time) . "'";
         $this->assign("end_time", $end_time);
     }
     $result['count'] = $GLOBALS['db']->getOne("select count(*) from " . DB_PREFIX . "licai_redempte lcr \n\t\tleft join " . DB_PREFIX . "licai_order lco on lcr.order_id = lco.id \n\t\tleft join " . DB_PREFIX . "licai lc on lco.licai_id = lc.id where 1=1 " . $condition);
     if ($result['count'] > 0) {
         $result['list'] = $GLOBALS['db']->getAll("SELECT lcr.*,lco.user_name,lco.licai_id,lco.money as order_money, lc.type as licai_type, lc.name ,lco.site_buy_fee,lco.before_interest_date,lco.redempte_money \n\t\t\tFROM " . DB_PREFIX . "licai_redempte lcr \n\t\t\tleft join " . DB_PREFIX . "licai_order lco on lcr.order_id = lco.id \n\t\t\tleft join " . DB_PREFIX . "licai lc on lco.licai_id = lc.id where 1=1 " . $condition . " order by lcr.id desc limit " . $limit);
     }
     foreach ($result['list'] as $k => $v) {
         switch ($v["licai_type"]) {
             //case 0: $result["list"][$k]["type_format"] = "余额宝";
             //	break;
             case 1:
                 $result["list"][$k]["type_format"] = "固定定存";
                 break;
             case 2:
                 $result["list"][$k]["type_format"] = "浮动定存";
                 break;
                 //case 3: $result["list"][$k]["type_format"] = "票据";
                 //	break;
                 //case 4: $result["list"][$k]["type_format"] = "基金";
                 //	break;
         }
         //0表示未赎回 1表示已赎回 2表示拒绝
         if ($v["status"] == 0) {
             $result["list"][$k]["status_format"] = "未赎回";
         } elseif ($v["status"] == 1) {
             $result["list"][$k]["status_format"] = "已赎回";
         } elseif ($v["status"] == 2) {
             $result["list"][$k]["status_format"] = "已拒绝";
         }
         //持有金额
         $result["list"][$k]["have_money"] = $v["have_money"] = $v["order_money"] - $v["site_buy_fee"] - $v["redempte_money"];
         $result["list"][$k]["have_money_format"] = format_money_wan($v["have_money"]);
         $licai_interest = get_licai_interest($v["licai_id"], $v["money"]);
         $v["show_rate"] = $licai_interest["before_breach_rate"];
         $result["list"][$k]["show_rate_format"] = $v["show_rate"] . "%";
         $days = (to_timespan($v["create_date"]) - to_timespan($v["before_interest_date"])) / 24 / 3600;
         if ($days < 0) {
             $days = 0;
         }
         $v['before_reach_money'] = $v["show_rate"] / 100 / 365 * $v["money"] * $days;
         $result["list"][$k]["breach_money"] = $v["breach_money"] = $v['before_reach_money'];
         $result["list"][$k]["breach_money_format"] = format_price($v["breach_money"]);
         //手续费
         $result["list"][$k]["fee_money"] = $v["fee_money"] = $licai_interest["redemption_fee_rate"] / 100 / 365 * $v["money"] * $days;
         $result["list"][$k]["fee_money_format"] = format_price($v["fee_money"]);
         //赎回金额
         $result["list"][$k]["money_format"] = format_money_wan($v["money"]);
     }
     $list = $result["list"];
     if ($list) {
         register_shutdown_function(array(&$this, 'export_csv'), $page + 1);
         $order_value = array('id' => '""', 'name' => '""', 'type_format' => '""', 'user_name' => '""', 'have_money_format' => '""', 'show_rate_format' => '""', 'breach_money_format' => '""', 'money_format' => '""', 'fee_money_format' => '""', 'create_date' => '""', 'status_format' => '""');
         if ($page == 1) {
             $content = iconv("utf-8", "gbk", "编号,产品名称,理财类型,购买用户,持有本金,收益率,收益金额,赎回资金,手续费,申请时间,状态");
             $content = $content . "\n";
         }
         foreach ($list as $k => $v) {
             $order_value['id'] = '"' . iconv('utf-8', 'gbk', $v['id']) . '"';
             $order_value['name'] = '"' . iconv('utf-8', 'gbk', $v['name']) . '"';
             $order_value['type_format'] = '"' . iconv('utf-8', 'gbk', $v['type_format']) . '"';
             $order_value['user_name'] = '"' . iconv('utf-8', 'gbk', $v['user_name']) . '"';
             $order_value['have_money_format'] = '"' . iconv('utf-8', 'gbk', $v['have_money_format']) . '"';
             $order_value['money_format'] = '"' . iconv('utf-8', 'gbk', $v['money_format']) . '"';
             $order_value['show_rate_format'] = '"' . iconv('utf-8', 'gbk', $v['show_rate_format']) . '"';
             $order_value['fee_money_format'] = '"' . iconv('utf-8', 'gbk', $v['fee_money']) . '"';
             $order_value['breach_money_format'] = '"' . iconv('utf-8', 'gbk', $v['breach_money']) . '"';
             $order_value['create_date'] = '"' . iconv('utf-8', 'gbk', $v['create_date']) . '"';
             $order_value['status_format'] = '"' . iconv('utf-8', 'gbk', $v['status_format']) . '"';
             $content .= implode(",", $order_value) . "\n";
         }
         //
         header("Content-Disposition: attachment; filename=order_list.csv");
         echo $content;
     } else {
         if ($page == 1) {
             $this->error(L("NO_RESULT"));
         }
     }
 }
Example #2
0
function create_redempte($user_id, $order_id, $money)
{
    $info = array('status' => 1, 'info' => '');
    if ($money <= 0) {
        $info['status'] = 0;
        $info['info'] = '请输入有效金额';
        return $info;
    }
    if (!$GLOBALS['user_info']) {
        $info['status'] = 0;
        $info['info'] = '请先登录';
        return $info;
    }
    if ($GLOBALS['user_info']['id'] != $user_id) {
        $info['status'] = 0;
        $info['info'] = '您没有权限';
        return $info;
    }
    $order = $GLOBALS['db']->getRow("select dorder.before_interest_date,dorder.before_interest_enddate,dorder.begin_interest_date as begin_order,dorder.end_interest_date, dorder.user_id as consumer_id,d.user_id as organiser_id,d.name as licai_name,d.id as licai_id,d.service_fee_rate,d.begin_buy_date,d.begin_interest_date,d.end_buy_date,d.end_date,d.time_limit,d.type from " . DB_PREFIX . "licai_order as dorder left join " . DB_PREFIX . "licai as d on dorder.licai_id=d.id  where dorder.id=" . $order_id . " and dorder.user_id=" . $user_id);
    if ($order) {
        if ($order["type"] > 0) {
            $licai_interest = get_licai_interest($order['licai_id'], $money);
        } else {
            if (to_timespan($order["end_interest_date"]) > NOW_TIME) {
                $licai_interest = get_licai_interest_yeb($order['licai_id'], $order['begin_order'], to_date(NOW_TIME, 'Y-m-d'));
            } else {
                $licai_interest = get_licai_interest_yeb($order['licai_id'], $order['begin_order'], $order['end_interest_date']);
            }
        }
        $redempte['order_id'] = $order_id;
        $redempte['user_id'] = $user_id;
        $redempte['user_name'] = $GLOBALS['user_info']['user_name'];
        $redempte['money'] = $money;
        //		$redempte['earn_money']=$earn_money;
        //		$redempte['fee']=$fee;
        //		$redempte['organiser_fee']=$organiser_fee;
        $now = get_gmtime();
        $limit_time = $order['time_limit'] * 30 * 24 * 3600;
        $order['before_interest_date'] = to_timespan($order['before_interest_date']);
        $order['before_interest_enddate'] = to_timespan($order['before_interest_enddate']);
        $order['begin_interest_date'] = $order['begin_order'];
        $order['begin_interest_date'] = to_timespan($order['begin_interest_date']);
        $order['end_interest_date'] = to_timespan($order['end_interest_date']);
        if ($order["type"] > 0) {
            if ($order['before_interest_date'] < $now && $order['before_interest_enddate'] > $now) {
                //小于起息时间,就是预热期就赎回
                $redempte['type'] = 0;
                $day = intval(($now - $order['before_interest_date']) / 24 / 3600) + 1;
                if ($day <= 0) {
                    $day = 0;
                }
                $redempte['earn_money'] = $money * $day * $licai_interest['before_breach_rate'] * 0.01 / 365;
                $redempte['fee'] = $money * $day * $licai_interest['redemption_fee_rate'] * 0.01 / 365;
                $redempte['organiser_fee'] = $money * $day * $licai_interest['platform_breach_rate'] * 0.01 / 365;
            } elseif ($order['before_interest_enddate'] <= $now && $order['begin_interest_date'] > $now) {
                //完成预期期间,未进入正式起息时间
                $redempte['type'] = 1;
                $day = intval(($order['before_interest_enddate'] - $order['before_interest_date']) / 24 / 3600) + 1;
                if ($day <= 0) {
                    $day = 0;
                }
                $redempte['earn_money'] = $money * $day * $licai_interest['before_rate'] * 0.01 / 365;
                $redempte['fee'] = $money * $day * $licai_interest['redemption_fee_rate'] * 0.01 / 365;
                $redempte['organiser_fee'] = $money * $day * $licai_interest['platform_breach_rate'] * 0.01 / 365;
            } elseif ($order['begin_interest_date'] <= $now && $order['end_interest_date'] > $now) {
                //进入正式起息时间,违约
                $redempte['type'] = 1;
                $day_before = intval(($order['before_interest_enddate'] - $order['before_interest_date']) / 24 / 3600);
                if ($day_before <= 0) {
                    $day_before = 0;
                }
                $before_earn_money = $money * $day_before * $licai_interest['before_rate'] * 0.01 / 365;
                $day_begin = intval(($now - $order['begin_interest_date']) / 24 / 3600) + 1;
                if ($day_begin <= 0) {
                    $day_begin = 0;
                }
                $begin_earn_money = $money * $day_begin * $licai_interest['breach_rate'] * 0.01 / 365;
                $redempte['earn_money'] = $before_earn_money + $begin_earn_money;
                $redempte['fee'] = $money * ($day_before + $day_begin) * $licai_interest['redemption_fee_rate'] * 0.01 / 365;
                $redempte['organiser_fee'] = $money * ($day_before + $day_begin) * $licai_interest['platform_breach_rate'] * 0.01 / 365;
            } elseif ($order['end_interest_date'] <= $now) {
                $redempte['type'] = 2;
                $day_before = intval(($order['before_interest_enddate'] - $order['before_interest_date']) / 24 / 3600);
                $before_earn_money = $money * $day_before * $licai_interest['before_rate'] * 0.01 / 365;
                $day_begin = intval(($order['end_interest_date'] - $order['begin_interest_date']) / 24 / 3600) + 1;
                $begin_earn_money = $money * $day_begin * $licai_interest['interest_rate'] * 0.01 / 365;
                $redempte['earn_money'] = $before_earn_money + $begin_earn_money;
                $redempte['fee'] = $money * ($day_before + $day_begin) * $licai_interest['redemption_fee_rate'] * 0.01 / 365;
                $redempte['organiser_fee'] = $money * ($day_before + $day_begin) * $licai_interest['platform_rate'] * 0.01 / 365;
            }
        } else {
            $order_data['platform_rate'] = $licai_interest['platform_rate'];
            $order_data['service_fee_rate'] = $licai_interest['service_fee_rate'];
            $order_data['redemption_fee_rate'] = $licai_interest['redemption_fee_rate'];
            if ($order['end_interest_date'] < NOW_TIME) {
                $redempte['type'] = 2;
                $days = intval(($order['end_interest_date'] - $order['begin_interest_date']) / 24 / 3600) + 1;
            } else {
                $redempte['type'] = 1;
                $days = intval((NOW_TIME - $order['begin_interest_date']) / 24 / 3600) + 1;
            }
            if ($days < 0) {
                $days = 0;
            }
            $redempte['earn_money'] = $money * $licai_interest["interest_rate"] / 365 / 100;
            $redempte['fee'] = $money * $days * $order_data['redemption_fee_rate'] * 0.01 / 365;
            $redempte['organiser_fee'] = $money * $days * $order_data['platform_rate'] * 0.01 / 365;
        }
        $redempte['status'] = 0;
        $redempte['create_date'] = to_date(NOW_TIME);
        $redempte['update_date'] = to_date(NOW_TIME);
        $re = $GLOBALS['db']->autoExecute(DB_PREFIX . "licai_redempte", $redempte);
        if ($re) {
            $info['info'] = '申请成功';
            return $info;
        } else {
            $info['status'] = 0;
            $info['info'] = '操作失败,请重新提交';
            return $info;
        }
    } else {
        $info['status'] = 0;
        $info['info'] = '您的订单不存在';
        return $info;
    }
}
Example #3
0
 public function set_status()
 {
     if (!$GLOBALS['user_info']) {
         app_redirect(url("user#login"));
     }
     $result["jump"] = url("licai#uc_expire_lc");
     $id = intval($_REQUEST["id"]);
     $status = 1;
     $earn_money = strim($_REQUEST["earn_money"]);
     $fee = strim($_REQUEST["fee"]);
     $pay_type = 0;
     //0不允许垫付
     $web_type = 2;
     //0前台
     $licai_order = $GLOBALS["db"]->getRow("select lco.*,u.user_name from " . DB_PREFIX . "licai_order lco \n\t\tleft join " . DB_PREFIX . "licai lc on lco.licai_id = lc.id \n\t\tleft join " . DB_PREFIX . "user u on u.id = lco.user_id \n\t\twhere lco.id=" . $id . " and lc.user_id = " . $GLOBALS["user_info"]["id"]);
     if (!$licai_order) {
         $result["status"] = 0;
         $result["info"] = "操作失败,请重试";
         ajax_return($result);
     }
     $redempte = $GLOBALS['db']->getRow("select * from " . DB_PREFIX . "licai_redempte \n\t\twhere status = 0 and order_id =" . $id . " and type = 2");
     $redempte_id = $redempte["id"];
     if (!$redempte) {
         $licai_redempte_data = array();
         $licai_order['before_interest_enddate'] = to_timespan($licai_order['before_interest_enddate']);
         $licai_order['before_interest_date'] = to_timespan($licai_order['before_interest_date']);
         $licai_order['begin_interest_date'] = to_timespan($licai_order['begin_interest_date']);
         $licai_order['end_interest_date'] = to_timespan($licai_order['end_interest_date']);
         $money = $licai_redempte_data["money"] = $licai_order["money"] - $licai_order["redempte_money"] - $licai_order["site_buy_fee"];
         $licai_redempte_data["create_date"] = to_date(TIME_UTC);
         $licai_redempte_data["order_id"] = $licai_order["id"];
         $licai_redempte_data["user_id"] = $licai_order["user_id"];
         $licai_redempte_data["user_name"] = $licai_order["user_name"];
         $licai_redempte_data["status"] = 0;
         $licai_redempte_data["type"] = 2;
         $licai_interest = get_licai_interest($licai_order["licai_id"], $money);
         $day_before = intval(($licai_order['before_interest_enddate'] - $licai_order['before_interest_date']) / 24 / 3600);
         if ($day_before < 0) {
             $day_before = 0;
         }
         $before_earn_money = $licai_order["money"] * $day_before * $licai_interest['before_rate'] * 0.01 / 365;
         $day_begin = intval(($licai_order['end_interest_date'] - $licai_order['begin_interest_date']) / 24 / 3600);
         if ($day_begin < 0) {
             $day_begin = 0;
         }
         $begin_earn_money = $licai_order["money"] * $day_begin * $licai_interest['interest_rate'] * 0.01 / 365;
         $licai_redempte_data["organiser_fee"] = $licai_interest["platform_rate"] * $money * ($day_before + $day_begin) / 100 / 365;
         $GLOBALS['db']->autoExecute(DB_PREFIX . "licai_redempte", $licai_redempte_data, "INSERT");
         $redempte_id = $GLOBALS['db']->insert_id();
         $result = deal_redempte($redempte_id, $status, $earn_money, $fee, $licai_redempte_data["organiser_fee"], $pay_type, $web_type);
     } else {
         $result = deal_redempte($redempte_id, $status, $earn_money, $fee, $redempte["organiser_fee"], $pay_type, $web_type);
     }
     $result["jump"] = url("licai#uc_expire_lc");
     //修改状态
     if ($result["status"] != 1) {
         ajax_return($result);
     }
     $result["info"] = "操作成功!";
     ajax_return($result);
 }