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")); } } }
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; } }
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); }