Пример #1
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;
    }
}
Пример #2
0
 public function uc_buyed_lc()
 {
     if (!$GLOBALS['user_info']) {
         app_redirect(url("user#login"));
     }
     //$vo["interest_rate_money"] = $GLOBALS["db"]->getOne("select sum(earn_money-fee) from ".DB_PREFIX."licai_redempte where user_id = '".$GLOBALS["user_info"]["id"]."' and status = 1");
     $vo["interest_rate_money"] = $GLOBALS["db"]->getOne("select sum(gross) from " . DB_PREFIX . "licai_order where user_id = '" . $GLOBALS["user_info"]["id"] . "' ");
     $vo["interest_rate_money_format"] = format_money_wan($vo["interest_rate_money"]);
     $order_info = $GLOBALS["db"]->getRow("select \n\t\tsum(money-site_buy_fee-redempte_money) as have_money,\n\t\tcount(*) as licai_order_count \n\t\tfrom " . DB_PREFIX . "licai_order lco where user_id = '" . $GLOBALS["user_info"]["id"] . "' and status in (1,2)");
     $vo["licai_order_count"] = intval($order_info["licai_order_count"]);
     $vo["have_money_format"] = format_money_wan($order_info["have_money"]);
     $vo["total_money_format"] = format_money_wan($vo["interest_rate_money"] + $order_info["have_money"]);
     $GLOBALS["tmpl"]->assign("vo", $vo);
     $condition = " ";
     $page_size = 10;
     $page = intval($_REQUEST['p']);
     if ($page == 0) {
         $page = 1;
     }
     $limit = ($page - 1) * $page_size . "," . $page_size;
     $search = array();
     if (strim($_REQUEST["deal_name"]) != "") {
         $condition .= " and lc.name like '%" . strim($_REQUEST["deal_name"]) . "%'";
         $search["deal_name"] = strim($_REQUEST["deal_name"]);
     }
     if (strim($_REQUEST["licai_type"]) !== "" && intval($_REQUEST["licai_type"]) != -1) {
         $condition .= " and lc.type = " . intval($_REQUEST["licai_type"]);
         $search["licai_type"] = intval($_REQUEST["licai_type"]);
     } else {
         $search["licai_type"] = -1;
     }
     //购买开始时间
     $buy_begin_time = strim($_REQUEST['buy_begin_time']);
     $buy_end_time = strim($_REQUEST['buy_end_time']);
     $d = explode('-', $buy_begin_time);
     if (isset($_REQUEST['buy_begin_time']) && $buy_begin_time != "" && checkdate($d[1], $d[2], $d[0]) == false) {
         showErr("开始时间不是有效的时间格式:{$start_time}(yyyy-mm-dd)");
         exit;
     }
     $d = explode('-', $buy_end_time);
     if (isset($_REQUEST['buy_end_time']) && strim($buy_end_time) != "" && checkdate($d[1], $d[2], $d[0]) == false) {
         showErr("结束时间不是有效的时间格式:{$end_time}(yyyy-mm-dd)");
         exit;
     }
     if ($buy_begin_time != "" && strim($buy_end_time) != "" && to_timespan($buy_begin_time) > to_timespan($buy_end_time)) {
         showErr('开始时间不能大于结束时间:' . $buy_begin_time . '至' . $buy_end_time);
         exit;
     }
     if (strim($buy_begin_time) != "") {
         $condition .= " and lco.create_date >= '" . strim($buy_begin_time) . "'";
         $search["buy_begin_time"] = strim($_REQUEST["buy_begin_time"]);
     }
     if (strim($buy_end_time) != "") {
         $condition .= " and lco.create_date <= '" . strim($buy_end_time) . "'";
         $search["buy_end_time"] = strim($_REQUEST["buy_end_time"]);
     }
     //项目结束时间
     $start_time = strim($_REQUEST['begin_time']);
     $end_time = strim($_REQUEST['end_time']);
     $d = explode('-', $start_time);
     if (isset($_REQUEST['begin_time']) && $start_time != "" && checkdate($d[1], $d[2], $d[0]) == false) {
         showErr("开始时间不是有效的时间格式:{$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) {
         showErr("结束时间不是有效的时间格式:{$end_time}(yyyy-mm-dd)");
         exit;
     }
     if ($start_time != "" && strim($end_time) != "" && to_timespan($start_time) > to_timespan($end_time)) {
         showErr('开始时间不能大于结束时间:' . $start_time . '至' . $end_time);
         exit;
     }
     if (strim($start_time) != "") {
         $condition .= " and lco.end_interest_date >= '" . $start_time . "'";
         $search["begin_time"] = $start_time;
     }
     if (strim($end_time) != "") {
         $condition .= " and lco.end_interest_date <= '" . $end_time . "'";
         $search["end_time"] = $end_time;
     }
     $count = $GLOBALS["db"]->getOne("select count(*) \n\t\tfrom " . DB_PREFIX . "licai_order lco \n\t\tleft join " . DB_PREFIX . "licai lc on lco.licai_id = lc.id \n\t\twhere lco.user_id ='" . $GLOBALS["user_info"]["id"] . "' " . $condition);
     $list = $GLOBALS["db"]->getAll("select lco.*,lc.name as licai_name,lc.time_limit,lc.investment_adviser,lc.begin_buy_date,lc.net_value    \n\t\tfrom " . DB_PREFIX . "licai_order lco \n\t\tleft join " . DB_PREFIX . "licai lc on lco.licai_id = lc.id \n\t\twhere lco.user_id ='" . $GLOBALS["user_info"]["id"] . "'  " . $condition . " order by lco.id desc limit " . $limit);
     foreach ($list as $k => $v) {
         $list[$k]["money_format"] = format_price($v["money"]);
         $list[$k]["have_money"] = $v["have_money"] = floatval($v["money"]) - floatval($v["site_buy_fee"]) - floatval($v["redempte_money"]);
         $list[$k]["have_money_format"] = format_price($v["have_money"]);
         if ($v["type"] > 0) {
             $list[$k]["before_rate_format"] = number_format($v["before_rate"], 2) . "%";
             $list[$k]["interest_rate_format"] = number_format($v["interest_rate"], 2) . "%";
         } else {
             $list[$k]["before_rate_format"] = "无";
             $licai_intereset = get_licai_interest_yeb($v["licai_id"], $v["begin_interest_date"], $v["end_interest_date"]);
             $list[$k]["interest_rate_format"] = number_format($licai_intereset["avg_interest_rate"], 2) . "%";
         }
         switch ($v["status"]) {
             case 0:
                 $list[$k]["status_format"] = "未支付";
                 break;
             case 1:
                 $list[$k]["status_format"] = "已支付";
                 break;
             case 2:
                 $list[$k]["status_format"] = "部分赎回";
                 break;
             case 3:
                 $list[$k]["status_format"] = "已完结";
                 break;
         }
         if (to_timespan($v["end_interest_date"]) > TIME_UTC) {
             $list[$k]["end_status"] = 0;
         } else {
             $list[$k]["end_status"] = 1;
         }
         if ($v["type"] == 0) {
             $list[$k]["type_format"] = "余额宝";
         } elseif ($v["type"] == 1) {
             $list[$k]["type_format"] = "固定定存";
         }
         $list[$k]["create_time"] = to_date(to_timespan($v["create_time"]), "Y-m-d");
         $redempte_money = $GLOBALS["db"]->getRow("select sum(money) from " . DB_PREFIX . " where licai_id = " . $v["licai_id"] . " and status = 0 and user_id =" . $GLOBALS["user_info"]["id"]);
         if ($v["have_money"] <= $redempte_money) {
             $list[$k]["money_over"] = 1;
         } else {
             $list[$k]["money_over"] = 0;
         }
         //$list[$k] = licai_item_format($v);
     }
     $page = new Page($count, $page_size);
     //初始化分页对象
     $p = $page->show();
     $GLOBALS['tmpl']->assign('pages', $p);
     $GLOBALS["tmpl"]->assign("list", $list);
     $GLOBALS["tmpl"]->assign("search", $search);
     $GLOBALS['tmpl']->assign("page_title", "购买的理财");
     $GLOBALS['tmpl']->display("licai/licai_uc_buyed_lc.html");
 }