public function do_op_status()
 {
     $id = intval($_REQUEST['id']);
     $deal_repay = $GLOBALS['db']->getRow("SELECT dr.*,dr.l_key + 1 as l_key_index,d.name FROM  " . DB_PREFIX . "deal_repay dr LEFT JOIN " . DB_PREFIX . "deal d ON d.id=dr.deal_id WHERE  dr.id=" . $id);
     if (!$deal_repay) {
         $this->error("账单不存在");
     }
     if (intval($_REQUEST['is_site_bad']) == 0) {
         $this->success("操作完成");
         die;
     }
     $adm_session = es_session::get(md5(conf("AUTH_KEY")));
     $msg = strim($_REQUEST['desc']);
     $GLOBALS['db']->query("UPDATE " . DB_PREFIX . "deal_repay SET is_site_bad=" . (intval($_REQUEST['is_site_bad']) - 1) . " WHERE id=" . $id);
     if ($GLOBALS['db']->affected_rows()) {
         save_log($deal_repay['name'] . " 第 " . ($deal_repay['l_key_index'] + 1) . "期,坏账操作", 1);
         repay_log($id, $msg, 0, $adm_session['adm_id']);
         $this->success("操作成功");
     } else {
         save_log($deal_repay['name'] . " 第 " . ($deal_repay['l_key_index'] + 1) . "期,坏账操作", 0);
         $this->error("操作失败");
     }
 }
Esempio n. 2
0
function getUcRepayBorrowMoney($id, $ids)
{
    $id = intval($id);
    $root = array();
    $root["status"] = 0;
    //0:出错;1:正确;
    if ($id == 0) {
        $root["show_err"] = "操作失败!";
        return $root;
    }
    $deal = get_deal($id);
    if (!$deal) {
        $root["show_err"] = "借款不存在!";
        return $root;
    }
    if ($deal['ips_bill_no'] != "") {
        $root["status"] = 2;
        $root["jump"] = APP_ROOT . '/index.php?ctl=collocation&act=RepaymentNewTrade&deal_id=' . $deal['id'] . '&l_key=' . $ids . "&from=" . $GLOBALS['request']['from'];
        $root['jump'] = str_replace("/mapi", "", SITE_DOMAIN . $root['jump']);
        return $root;
    }
    if ($deal['user_id'] != $GLOBALS['user_info']['id']) {
        $root["show_err"] = "不属于你的借款!";
        return $root;
    }
    if ($deal['deal_status'] != 4) {
        $root["show_err"] = "借款不是还款状态!";
        return $root;
    }
    $ids = explode(",", $ids);
    //当前用户余额
    $user_total_money = (double) $GLOBALS['user_info']['money'];
    if ($user_total_money < 0) {
        $root["show_err"] = "余额不足";
        return $root;
    }
    $last_repay_key = -1;
    require APP_ROOT_PATH . 'system/libs/user.php';
    foreach ($ids as $lkey) {
        //还了多少人
        $repay_user_count = 0;
        //多少人未还
        $no_repay_user_count = 0;
        //还了多少本息
        $repay_money = 0;
        //还了多少逾期罚息
        $repay_impose_money = 0;
        //还了多少管理费
        $repay_manage_money = 0;
        //还了多少逾期管理费
        $repay_manage_impose_money = 0;
        //用户回款 get_deal_user_load_list($deal_info, $user_id = 0 ,$lkey = -1 , $ukey = -1,$true_time=0,$get_type = 0, $r_type = 0, $limit = "")
        $user_loan_list = get_deal_user_load_list($deal, 0, $lkey, -1, 0, 1);
        //===============还款================
        foreach ($user_loan_list as $lllk => $lllv) {
            foreach ($lllv as $kk => $vv) {
                if ($vv['has_repay'] == 0) {
                    //借入者已还款,但是没打款到借出用户中心
                    $user_load_data = array();
                    $user_load_data['true_repay_time'] = TIME_UTC;
                    $user_load_data['true_repay_date'] = to_date(TIME_UTC);
                    $user_load_data['is_site_repay'] = 0;
                    $user_load_data['status'] = 0;
                    $user_load_data['true_repay_money'] = (double) $vv['month_repay_money'];
                    $user_load_data['true_self_money'] = (double) $vv['self_money'];
                    $user_load_data['true_interest_money'] = (double) $vv['interest_money'];
                    $user_load_data['true_manage_money'] = (double) $vv['manage_money'];
                    $user_load_data['true_manage_interest_money'] = (double) $vv['manage_interest_money'];
                    $user_load_data['true_repay_manage_money'] = (double) $vv['repay_manage_money'];
                    $user_load_data['true_manage_interest_money_rebate'] = (double) $vv['manage_interest_money_rebate'];
                    $user_load_data['impose_money'] = (double) $vv['impose_money'];
                    $user_load_data['repay_manage_impose_money'] = (double) $vv['repay_manage_impose_money'];
                    $user_load_data['true_reward_money'] = (double) $vv['reward_money'];
                    $need_repay_money = 0;
                    $need_repay_money += $user_load_data['true_repay_money'] + $user_load_data['impose_money'] + $user_load_data['true_repay_manage_money'] + $user_load_data['repay_manage_impose_money'];
                    //=============余额足够才进行还款=================
                    if ((double) $need_repay_money <= $user_total_money) {
                        $last_repay_key = $lkey;
                        $repay_user_count += 1;
                        $repay_money += $user_load_data['true_repay_money'];
                        $repay_impose_money += $user_load_data['impose_money'];
                        $repay_manage_money += $user_load_data['true_repay_manage_money'];
                        $repay_manage_impose_money += $user_load_data['repay_manage_impose_money'];
                        $user_total_money = $user_total_money - $need_repay_money;
                        if ($vv['status'] > 0) {
                            $user_load_data['status'] = $vv['status'] - 1;
                        }
                        $user_load_data['has_repay'] = 1;
                        $GLOBALS['db']->autoExecute(DB_PREFIX . "deal_load_repay", $user_load_data, "UPDATE", "id=" . $vv['id'] . "  AND has_repay = 0  ", "SILENT");
                        if ($GLOBALS['db']->affected_rows() > 0) {
                            $unext_loan = $user_loan_list[$vv['u_key']][$kk + 1];
                            if ($unext_loan) {
                                $notices['content'] = "本笔投标的下个还款日为" . to_date($unext_loan['repay_day'], "Y年m月d日") . ",需还本息" . number_format($unext_loan['month_repay_money'], 2) . "元。";
                            } else {
                                $load_repay_rs = $GLOBALS['db']->getOne("SELECT (sum(true_interest_money) + sum(impose_money)) as shouyi,sum(impose_money) as total_impose_money FROM " . DB_PREFIX . "deal_load_repay WHERE deal_id=" . $deal['id'] . " AND user_id=" . $vv['user_id']);
                                $all_shouyi_money = number_format($load_repay_rs['shouyi'], 2);
                                $all_impose_money = number_format($load_repay_rs['total_impose_money'], 2);
                                $notices['content'] = "本次投标共获得收益:" . $all_shouyi_money . "元,其中违约金为:" . $all_impose_money . "元,本次投标已回款完毕!";
                            }
                            if ($user_load_data['impose_money'] != 0 || $user_load_data['true_manage_money'] != 0 || $user_load_data['true_repay_money'] != 0) {
                                $in_user_id = $vv['user_id'];
                                //如果是转让债权那么将回款打入转让者的账户
                                if ((int) $vv['t_user_id'] == 0) {
                                    $loan_user_info['user_name'] = $vv['user_name'];
                                    $loan_user_info['email'] = $vv['email'];
                                    $loan_user_info['mobile'] = $vv['mobile'];
                                } else {
                                    $in_user_id = $vv['t_user_id'];
                                    $loan_user_info['user_name'] = $vv['t_user_name'];
                                    $loan_user_info['email'] = $vv['t_email'];
                                    $loan_user_info['mobile'] = $vv['t_mobile'];
                                }
                                //更新用户账户资金记录
                                modify_account(array("money" => $user_load_data['true_repay_money']), $in_user_id, "[<a href='" . $deal['url'] . "' target='_blank'>" . $deal['name'] . "</a>],第" . ($kk + 1) . "期,回报本息", 5);
                                if ($user_load_data['true_manage_money'] > 0) {
                                    modify_account(array("money" => -$user_load_data['true_manage_money']), $in_user_id, "[<a href='" . $deal['url'] . "' target='_blank'>" . $deal['name'] . "</a>],第" . ($kk + 1) . "期,投标管理费", 20);
                                }
                                //利息管理费
                                modify_account(array("money" => -$user_load_data['true_manage_interest_money']), $in_user_id, "[<a href='" . $deal['url'] . "' target='_blank'>" . $deal['name'] . "</a>],第" . ($kk + 1) . "期,投标利息管理费", 20);
                                if ($user_load_data['impose_money'] != 0) {
                                    modify_account(array("money" => $user_load_data['impose_money']), $in_user_id, "[<a href='" . $deal['url'] . "' target='_blank'>" . $deal['name'] . "</a>],第" . ($kk + 1) . "期,逾期罚息", 21);
                                }
                                //投资者奖励
                                if ($user_load_data['true_reward_money'] != 0) {
                                    modify_account(array("money" => $user_load_data['true_reward_money']), $in_user_id, "[<a href='" . $deal['url'] . "' target='_blank'>" . $deal['name'] . "</a>],第" . ($kk + 1) . "期,奖励收益", 28);
                                }
                                //普通会员邀请返利
                                get_referrals($vv['id']);
                                //投资者返佣金
                                if ($user_load_data['true_manage_interest_money_rebate'] != 0) {
                                    /*ok*/
                                    $reback_memo = sprintf($GLOBALS['lang']["INVEST_REBATE_LOG"], $deal["url"], $deal["name"], $loan_user_info["user_name"], intval($vv["l_key"]) + 1);
                                    reback_rebate_money($in_user_id, $user_load_data['true_manage_interest_money_rebate'], "invest", $reback_memo);
                                }
                                $msg_conf = get_user_msg_conf($in_user_id);
                                //短信通知
                                if (app_conf("SMS_ON") == 1 && app_conf('SMS_REPAY_TOUSER_ON') == 1) {
                                    $tmpl = $GLOBALS['db']->getRow("select * from " . DB_PREFIX . "msg_template where name = 'TPL_DEAL_LOAD_REPAY_SMS'", false);
                                    $tmpl_content = $tmpl['content'];
                                    $notice['user_name'] = $loan_user_info['user_name'];
                                    $notice['deal_name'] = $deal['sub_name'];
                                    $notice['deal_url'] = $deal['url'];
                                    $notice['site_name'] = app_conf("SHOP_TITLE");
                                    $notice['repay_money'] = number_format($user_load_data['true_repay_money'] + $user_load_data['impose_money'], 2);
                                    if ($unext_loan) {
                                        $notice['need_next_repay'] = $unext_loan;
                                        $notice['next_repay_time'] = to_date($unext_loan['repay_day'], "Y年m月d日");
                                        $notice['next_repay_money'] = number_format($unext_loan['month_repay_money'], 2);
                                    } else {
                                        $notice['all_repay_money'] = $all_shouyi_money;
                                        $notice['impose_money'] = $all_impose_money;
                                    }
                                    $GLOBALS['tmpl']->assign("notice", $notice);
                                    $sms_content = $GLOBALS['tmpl']->fetch("str:" . $tmpl_content);
                                    $msg_data['dest'] = $loan_user_info['mobile'];
                                    $msg_data['send_type'] = 0;
                                    $msg_data['title'] = $msg_data['content'] = addslashes($sms_content);
                                    $msg_data['send_time'] = 0;
                                    $msg_data['is_send'] = 0;
                                    $msg_data['create_time'] = TIME_UTC;
                                    $msg_data['user_id'] = $in_user_id;
                                    $msg_data['is_html'] = 0;
                                    $GLOBALS['db']->autoExecute(DB_PREFIX . "deal_msg_list", $msg_data);
                                    //插入
                                }
                                //站内信
                                if ($msg_conf['sms_bidrepaid'] == 1) {
                                    $notices['shop_title'] = app_conf("SHOP_TITLE");
                                }
                                $notices['url'] = "“<a href=\"" . $deal['url'] . "\">" . $deal['name'] . "</a>”";
                                $notices['money'] = $user_load_data['true_repay_money'] + $user_load_data['impose_money'];
                                $tmpl_contents = $GLOBALS['db']->getRow("select * from " . DB_PREFIX . "msg_template where name = 'TPL_SITE_REPAY'", false);
                                $GLOBALS['tmpl']->assign("notice", $notices);
                                $content = $GLOBALS['tmpl']->fetch("str:" . $tmpl_contents['content']);
                                send_user_msg("", $content, 0, $in_user_id, TIME_UTC, 0, true, 9);
                                //邮件
                                if ($msg_conf['mail_bidrepaid'] == 1 && app_conf('MAIL_ON') == 1) {
                                    $tmpl = $GLOBALS['db']->getRow("select * from " . DB_PREFIX . "msg_template where name = 'TPL_DEAL_LOAD_REPAY_EMAIL'", false);
                                    $tmpl_content = $tmpl['content'];
                                    $notice['user_name'] = $loan_user_info['user_name'];
                                    $notice['deal_name'] = $deal['sub_name'];
                                    $notice['deal_url'] = $deal['url'];
                                    $notice['site_name'] = app_conf("SHOP_TITLE");
                                    $notice['site_url'] = SITE_DOMAIN . APP_ROOT;
                                    $notice['help_url'] = SITE_DOMAIN . url("index", "helpcenter");
                                    $notice['msg_cof_setting_url'] = SITE_DOMAIN . url("index", "uc_msg#setting");
                                    $notice['repay_money'] = number_format($user_load_data['true_repay_money'] + $user_load_data['impose_money'], 2);
                                    if ($unext_loan) {
                                        $notice['need_next_repay'] = $unext_loan;
                                        $notice['next_repay_time'] = to_date($unext_loan['repay_day'], "Y年m月d日");
                                        $notice['next_repay_money'] = number_format($unext_loan['month_repay_money'], 2);
                                    } else {
                                        $notice['all_repay_money'] = $all_shouyi_money;
                                        $notice['impose_money'] = $all_impose_money;
                                    }
                                    $GLOBALS['tmpl']->assign("notice", $notice);
                                    $msg = $GLOBALS['tmpl']->fetch("str:" . $tmpl_content);
                                    $msg_data['dest'] = $loan_user_info['email'];
                                    $msg_data['send_type'] = 1;
                                    $msg_data['title'] = "“" . $deal['name'] . "”回款通知";
                                    $msg_data['content'] = addslashes($msg);
                                    $msg_data['send_time'] = 0;
                                    $msg_data['is_send'] = 0;
                                    $msg_data['create_time'] = TIME_UTC;
                                    $msg_data['user_id'] = $in_user_id;
                                    $msg_data['is_html'] = $tmpl['is_html'];
                                    $GLOBALS['db']->autoExecute(DB_PREFIX . "deal_msg_list", $msg_data);
                                    //插入
                                }
                            }
                        }
                    }
                    //=============余额足够才进行还款=================
                }
            }
        }
        //===============还款================
        //如果已收取管理费
        $get_manage = $GLOBALS['db']->getOne("SELECT get_manage FROM " . DB_PREFIX . "deal_repay WHERE deal_id = " . $deal['id'] . " and l_key=" . $lkey . "  ");
        if ($repay_user_count > 0) {
            //判断当前期是否还款完毕
            $true_repay_count = $GLOBALS['db']->getOne("SELECT count(*)  FROM " . DB_PREFIX . "deal_load_repay WHERE deal_id = " . $deal['id'] . " and l_key=" . $lkey . " AND has_repay=1 ");
            $ext_str = "";
            if ($true_repay_count != $repay_user_count) {
                $ext_str = "[部分]";
            }
            //更新用户账户资金记录
            modify_account(array("money" => -$repay_money), $GLOBALS['user_info']['id'], "[<a href='" . $deal['url'] . "' target='_blank'>" . $deal['name'] . "</a>],第" . ($kk + 1) . "期,偿还本息{$ext_str}", 4);
            if ($repay_impose_money != 0) {
                modify_account(array("money" => -$repay_impose_money), $GLOBALS['user_info']['id'], "[<a href='" . $deal['url'] . "' target='_blank'>" . $deal['name'] . "</a>],第" . ($kk + 1) . "期,逾期罚息{$ext_str}", 11);
            }
            if ($repay_manage_money > 0) {
                modify_account(array("money" => -$repay_manage_money), $GLOBALS['user_info']['id'], "[<a href='" . $deal['url'] . "' target='_blank'>" . $deal['name'] . "</a>],第" . ($kk + 1) . "期,借款管理费{$ext_str}", 10);
            }
            if ($repay_manage_impose_money != 0) {
                modify_account(array("money" => -$repay_manage_impose_money), $GLOBALS['user_info']['id'], "[<a href='" . $deal['url'] . "' target='_blank'>" . $deal['name'] . "</a>],第" . ($kk + 1) . "期,逾期管理费{$ext_str}", 12);
            }
            $rebate_rs = get_rebate_fee($GLOBALS['user_info']['id'], "borrow");
            $true_manage_money_rebate = $repay_manage_money * floatval($rebate_rs['rebate']) / 100;
            //借款者返佣
            if ($true_manage_money_rebate != 0) {
                /*ok*/
                $reback_memo = sprintf($GLOBALS['lang']["BORROW_REBATE_LOG"], $deal["url"], $deal["name"], $deal["user"]["user_name"], intval($kk) + 1);
                reback_rebate_money($GLOBALS['user_info']['id'], $true_manage_money_rebate, "borrow", $reback_memo);
            }
        }
        $r_msg = "会员还款{$ext_str}";
        if ($repay_money > 0) {
            $r_msg .= ",本息:" . format_price($repay_money);
        }
        if ($repay_impose_money > 0) {
            $r_msg .= ",逾期费用:" . format_price($repay_impose_money);
        }
        if ($repay_manage_money > 0) {
            $r_msg .= ",管理费:" . format_price($repay_manage_money);
        }
        if ($repay_manage_impose_money > 0) {
            $r_msg .= ",逾期管理费:" . format_price($repay_manage_impose_money);
        }
        $repay_id = $GLOBALS['db']->getOne("SELECT id  FROM " . DB_PREFIX . "deal_repay WHERE deal_id = " . $deal['id'] . " and l_key=" . $lkey);
        repay_log($repay_id, $r_msg, $GLOBALS['user_info']['id'], 0);
        //$content = "您好,您在".app_conf("SHOP_TITLE")."的借款 “<a href=\"".$deal['url']."\">".$deal['name']."</a>”的借款第".($lkey+1)."期还款".number_format(($repay_money+$repay_impose_money+$repay_manage_money+$repay_manage_impose_money),2)."元,";
        //如果还款完毕
        $sms_ext_str = "成功";
        if ($left_user_count = $GLOBALS['db']->getOne("SELECT count(*)  FROM " . DB_PREFIX . "deal_load_repay WHERE deal_id = " . $deal['id'] . " and l_key=" . $lkey . " AND has_repay = 0 ") == 0) {
            //$content .="本期还款完毕。";
            $notices['content1'] = "本期还款完毕。";
            $impose_rs = $GLOBALS['db']->getRow("SELECT sum(true_self_money) as total_self_money,sum(true_interest_money) as total_interest_money,sum(true_repay_money) as total_repay_money,sum(impose_money) as total_impose_money,sum(true_repay_manage_money) as total_repay_manage_money,sum(repay_manage_impose_money) as total_repay_manage_impose_money  FROM " . DB_PREFIX . "deal_load_repay WHERE deal_id = " . $deal['id'] . " and l_key=" . $lkey . " AND has_repay = 1");
            //判断是否逾期
            $repay_update_data['has_repay'] = 1;
            $repay_update_data['true_repay_time'] = TIME_UTC;
            $repay_update_data['true_repay_date'] = to_date(TIME_UTC);
            $repay_update_data['true_repay_money'] = floatval($impose_rs['total_repay_money']);
            $repay_update_data['true_self_money'] = floatval($impose_rs['total_self_money']);
            $repay_update_data['true_interest_money'] = floatval($impose_rs['total_interest_money']);
            $repay_update_data['impose_money'] = floatval($impose_rs['total_impose_money']);
            $repay_update_data['true_manage_money'] = floatval($impose_rs['total_repay_manage_money']);
            //返佣金额
            $rebate_rs = get_rebate_fee($GLOBALS['user_info']['id'], "borrow");
            $repay_update_data['true_manage_money_rebate'] = floatval($repay_update_data['true_manage_money']) * floatval($rebate_rs['rebate']) / 100;
            $repay_update_data['manage_impose_money'] = floatval($impose_rs['total_repay_manage_impose_money']);
            if ($vv['impose_day'] > 0) {
                //VIP降级-逾期还款
                $type = 2;
                $type_info = 5;
                $resultdate = syn_user_vip($GLOBALS['user_info']['id'], $type, $type_info);
                if ($vv['impose_day'] < app_conf('YZ_IMPSE_DAY')) {
                    modify_account(array("point" => trim(app_conf('IMPOSE_POINT'))), $GLOBALS['user_info']['id'], "[<a href='" . $deal['url'] . "' target='_blank'>" . $deal['name'] . "</a>],第" . ($kk + 1) . "期,逾期还款", 11);
                    $repay_update_data['status'] = 2;
                } else {
                    modify_account(array("point" => trim(app_conf('YZ_IMPOSE_POINT'))), $GLOBALS['user_info']['id'], "[<a href='" . $deal['url'] . "' target='_blank'>" . $deal['name'] . "</a>],第" . ($kk + 1) . "期,严重逾期", 11);
                    $repay_update_data['status'] = 3;
                }
            } elseif (TIME_UTC <= (int) $vv['repay_day'] + 24 * 3600 - 1) {
                $repay_update_data['status'] = 1;
                //VIP升级 -正常还款
                $type = 1;
                $type_info = 3;
                $resultdate = syn_user_vip($GLOBALS['user_info']['id'], $type, $type_info);
            }
            $GLOBALS['db']->autoExecute(DB_PREFIX . "deal_repay", $repay_update_data, "UPDATE", "deal_id = " . $deal['id'] . " and l_key=" . $lkey);
            if ($next_loan = $GLOBALS['db']->getRow("SELECT * FROM " . DB_PREFIX . "deal_repay WHERE deal_id=" . $deal['id'] . " and l_key > " . $last_repay_key . " ORDER BY  l_key ASC")) {
                //$content .= "本笔借款的下个还款日为".to_date($next_loan['repay_day'],"Y年m月d日").",需要本息".number_format($next_loan['repay_money'],2)."元。";
                $notices['content2'] = "本笔借款的下个还款日为" . to_date($next_loan['repay_day'], "Y年m月d日") . ",需要本息" . number_format($next_loan['repay_money'], 2) . "元。";
            }
        } else {
            $notices['content1'] = "本期部分还款,还有" . $left_user_count . "个投资人待还。";
            //$content .="本期部分还款,还有".$left_user_count."个投资人待还。";
            $sms_ext_str = "部分";
            $GLOBALS['db']->query("UPDATE " . DB_PREFIX . "deal_repay SET has_repay = 2 WHERE deal_id = " . $deal['id'] . " and l_key=" . $lkey);
        }
        //您好,您在{$notice.shop_title}的借款{$notice.url}的借款第{$notice.key}期还款{$notice.money}元
        $notices['shop_title'] = app_conf("SHOP_TITLE");
        $notices['url'] = "“<a href=\"" . $deal['url'] . "\">" . $deal['name'] . "</a>”";
        $notices['key'] = $lkey + 1;
        $notices['money'] = number_format($repay_money + $repay_impose_money + $repay_manage_money + $repay_manage_impose_money, 2);
        $tmpl_contents = $GLOBALS['db']->getRow("select * from " . DB_PREFIX . "msg_template where name = 'TPL_REPAY_MONEY_MSG'", false);
        $GLOBALS['tmpl']->assign("notice", $notices);
        $content = $GLOBALS['tmpl']->fetch("str:" . $tmpl_contents['content']);
        send_user_msg("", $content, 0, $GLOBALS['user_info']['id'], TIME_UTC, 0, true, 8);
        //短信通知
        if (app_conf("SMS_ON") == 1 && app_conf('SMS_SEND_REPAY') == 1) {
            $tmpl = $GLOBALS['db']->getRow("select * from " . DB_PREFIX . "msg_template where name = 'TPL_SMS_REPAY_SUCCESS_MSG'", false);
            $tmpl_content = $tmpl['content'];
            //$sms_content = "尊敬的".app_conf("SHOP_TITLE")."用户".$GLOBALS['user_info']['user_name'].",您的借款“".$deal['name']."”第".($lkey+1)."期".$sms_ext_str."还款".number_format(($repay_money+$repay_impose_money+$repay_manage_money+$repay_manage_impose_money),2)."元,感谢您的关注和支持。";
            $notice['user_name'] = $GLOBALS['user_info']['user_name'];
            $notice['deal_name'] = $deal['sub_name'];
            $notice['site_name'] = app_conf("SHOP_TITLE");
            $notice['index'] = $lkey + 1;
            $notice['status'] = $sms_ext_str;
            $notice['all_money'] = number_format($repay_money + $repay_impose_money + $repay_manage_money + $repay_manage_impose_money, 2);
            $notice['repay_money'] = number_format($repay_money, 2);
            $notice['impose_money'] = number_format($repay_impose_money, 2);
            $notice['manage_money'] = number_format($repay_manage_money, 2);
            $notice['manage_impose_money'] = number_format($repay_manage_impose_money, 2);
            $GLOBALS['tmpl']->assign("notice", $notice);
            $msg = $GLOBALS['tmpl']->fetch("str:" . $tmpl_content);
            $msg_data['dest'] = $GLOBALS['user_info']['mobile'];
            $msg_data['send_type'] = 0;
            $msg_data['title'] = "还款短信通知";
            $msg_data['content'] = $msg;
            $msg_data['send_time'] = 0;
            $msg_data['is_send'] = 0;
            $msg_data['create_time'] = TIME_UTC;
            $msg_data['user_id'] = $GLOBALS['user_info']['id'];
            $msg_data['is_html'] = 0;
            $GLOBALS['db']->autoExecute(DB_PREFIX . "deal_msg_list", $msg_data);
            //插入
        }
    }
    //判断本借款是否还款完毕
    if ($GLOBALS['db']->getOne("SELECT count(*)  FROM " . DB_PREFIX . "deal_repay WHERE deal_id=" . $deal['id'] . " and l_key=" . $last_repay_key . " AND has_repay <> 1 ") == 0) {
        //全部还完
        if ($GLOBALS['db']->getRow("SELECT * FROM " . DB_PREFIX . "deal_repay WHERE deal_id=" . $deal['id'] . " and has_repay = 0 ") == 0) {
            //判断获取的信用是否超过限制
            if ($GLOBALS['db']->getOne("SELECT sum(point) FROM " . DB_PREFIX . "user_point_log WHERE  `type`=6 AND user_id=" . $GLOBALS['user_info']['id']) < (int) trim(app_conf('REPAY_SUCCESS_LIMIT'))) {
                //获取上一次还款时间
                $befor_repay_time = $GLOBALS['db']->getOne("SELECT MAX(create_time) FROM " . DB_PREFIX . "user_point_log WHERE  `type`=6 AND user_id=" . $GLOBALS['user_info']['id']);
                $day = ceil((TIME_UTC - $befor_repay_time) / 24 / 3600);
                //当天数大于等于间隔时间 获得信用
                if ($day >= (int) trim(app_conf('REPAY_SUCCESS_DAY'))) {
                    modify_account(array("point" => trim(app_conf('REPAY_SUCCESS_POINT'))), $GLOBALS['user_info']['id'], "[<a href='" . $deal['url'] . "' target='_blank'>" . $deal['name'] . "</a>],还清借款", 4);
                }
            }
            //用户获得额度
            modify_account(array("quota" => trim(app_conf('USER_REPAY_QUOTA'))), $GLOBALS['user_info']['id'], "[<a href='" . $deal['url'] . "' target='_blank'>" . $deal['name'] . "</a>],还清借款获得额度", 4);
        }
    }
    $GLOBALS['db']->query("UPDATE " . DB_PREFIX . "generation_repay_submit SET `memo`='因还款失效',`status`=2 WHERE deal_id=" . $deal['id']);
    sys_user_status($GLOBALS['user_info']['id'], false, true);
    syn_deal_status($id);
    syn_transfer_status(0, $id);
    $root["status"] = 1;
    //0:出错;1:正确;
    $root["show_err"] = "还款完毕,本次还款人数:{$repay_user_count}";
    return $root;
}
Esempio n. 3
0
 private function get_manage($id)
 {
     //是否直接收取管理费
     if (intval($_REQUEST['get_manage']) == 1) {
         require_once APP_ROOT_PATH . "system/libs/user.php";
         require_once APP_ROOT_PATH . "system/common.php";
         $deal_name = $GLOBALS['db']->getOne("select name from " . DB_PREFIX . "deal where id='{$id}' ");
         $deal_repay = $GLOBALS['db']->getAll("select * from " . DB_PREFIX . "deal_repay where deal_id='{$id}' AND has_repay=0 ");
         if ($deal_repay) {
             foreach ($deal_repay as $k => $v) {
                 if ($v['manage_money'] != 0 && $v['get_manage'] == 0) {
                     $GLOBALS['db']->query("UPDATE " . DB_PREFIX . "deal_repay SET true_manage_money = manage_money,get_manage=1 WHERE id=" . $v['id']);
                     if ($GLOBALS['db']->affected_rows() > 0) {
                         modify_account(array("money" => -$v['manage_money']), $v['user_id'], "[<a href='" . url("index", "deal#index", array("id" => $v['deal_id'])) . "' target='_blank'>" . $deal_name . "</a>],第" . ($v['l_key'] + 1) . "期,借款管理费", 10);
                         $GLOBALS['db']->query("UPDATE " . DB_PREFIX . "deal_load_repay SET true_repay_manage_money = repay_manage_money WHERE repay_id=" . $v['id']);
                         $r_msg = "管理员放款收取";
                         if ($v['manage_money'] > 0) {
                             $r_msg .= ",管理费:" . format_price($v['manage_money']);
                         }
                         repay_log($v['id'], $r_msg, $v['user_id'], 0);
                     }
                 }
             }
         }
     }
 }
 /**
  * 代还款
  */
 function do_site_repay($page = 1)
 {
     require_once APP_ROOT_PATH . "app/Lib/common.php";
     require_once APP_ROOT_PATH . "app/Lib/deal.php";
     $id = intval($_REQUEST['id']);
     $l_key = intval($_REQUEST['l_key']);
     $this->assign("jumpUrl", U("Deal/repay_plan", array("id" => $id)));
     if ($id == 0) {
         $this->success("数据错误");
     }
     $deal_info = get_deal($id);
     if (!$deal_info) {
         $this->success("借款不存在");
     }
     if ($deal_info['ips_bill_no'] != "") {
         $this->success("第三方同步暂无法代还款");
     }
     if ($page == 0) {
         $page = 1;
     }
     $page_size = 10;
     $limit = ($page - 1) * $page_size . "," . $page_size;
     $user_loan_list = get_deal_user_load_list($deal_info, 0, $l_key, -1, 0, 0, 1, $limit);
     $rs_count = $user_loan_list['count'];
     $page_all = ceil($rs_count / $page_size);
     require_once APP_ROOT_PATH . "system/libs/user.php";
     foreach ($user_loan_list['item'] as $kk => $vv) {
         if ($vv['has_repay'] == 0) {
             //借入者已还款,但是没打款到借出用户中心
             $user_load_data = array();
             $user_load_data['true_repay_time'] = TIME_UTC;
             $user_load_data['true_repay_date'] = to_date(TIME_UTC);
             $user_load_data['is_site_repay'] = 1;
             $user_load_data['status'] = 0;
             $user_load_data['true_self_money'] = (double) $vv['self_money'];
             $user_load_data['true_repay_money'] = (double) $vv['month_repay_money'];
             $user_load_data['true_interest_money'] = (double) $user_load_data['true_repay_money'] - (double) $user_load_data['true_self_money'];
             $user_load_data['true_manage_money'] = (double) $vv['month_manage_money'];
             $user_load_data['impose_money'] = (double) $vv['impose_money'];
             $user_load_data['repay_manage_impose_money'] = (double) $vv['repay_manage_impose_money'];
             if ($vv['status'] > 0) {
                 $user_load_data['status'] = $vv['status'] - 1;
             }
             $user_load_data['has_repay'] = 1;
             $GLOBALS['db']->autoExecute(DB_PREFIX . "deal_load_repay", $user_load_data, "UPDATE", "id=" . $vv['id'] . " AND has_repay = 0 ", "SILENT");
             if ($GLOBALS['db']->affected_rows() > 0) {
                 //$content = "您好,您在".app_conf("SHOP_TITLE")."的投标 “<a href=\"".$deal_info['url']."\">".$deal_info['name']."</a>”成功还款".($user_load_data['true_repay_money']+$user_load_data['impose_money'])."元";
                 $unext_loan = $user_loan_list[$vv['u_key']][$kk + 1];
                 if ($unext_loan) {
                     //$content .= ",本笔投标的下个还款日为".to_date($unext_loan['repay_day'],"Y年m月d日").",需还本息".number_format($unext_loan['month_repay_money'],2)."元。";
                     $notices['content'] = ",本笔投标的下个还款日为" . to_date($unext_loan['repay_day'], "Y年m月d日") . ",需还本息" . number_format($unext_loan['month_repay_money'], 2) . "元。";
                 } else {
                     $load_repay_rs = $GLOBALS['db']->getOne("SELECT (sum(true_interest_money) + sum(impose_money)) as shouyi,sum(impose_money) as total_impose_money FROM " . DB_PREFIX . "deal_load_repay WHERE deal_id=" . $deal_info['id'] . " AND user_id=" . $vv['user_id']);
                     $all_shouyi_money = number_format($load_repay_rs['shouyi'], 2);
                     $all_impose_money = number_format($load_repay_rs['total_impose_money'], 2);
                     //$content .= ",本次投标共获得收益:".$all_shouyi_money."元,其中违约金为:".$all_impose_money."元,本次投标已回款完毕!";
                     $notices['content'] = ",本次投标共获得收益:" . $all_shouyi_money . "元,其中违约金为:" . $all_impose_money . "元,本次投标已回款完毕!";
                 }
                 if ($user_load_data['impose_money'] != 0 || $user_load_data['true_manage_money'] != 0 || $user_load_data['true_repay_money'] != 0) {
                     $in_user_id = $vv['user_id'];
                     //如果是转让债权那么将回款打入转让者的账户
                     if ((int) $vv['t_user_id'] == 0) {
                         $loan_user_info['user_name'] = $vv['user_name'];
                         $loan_user_info['email'] = $vv['email'];
                         $loan_user_info['mobile'] = $vv['mobile'];
                     } else {
                         $in_user_id = $vv['t_user_id'];
                         $loan_user_info['user_name'] = $vv['t_user_name'];
                         $loan_user_info['email'] = $vv['t_email'];
                         $loan_user_info['mobile'] = $vv['t_mobile'];
                     }
                     //更新用户账户资金记录
                     modify_account(array("money" => $user_load_data['true_repay_money']), $in_user_id, "[<a href='" . $deal_info['url'] . "' target='_blank'>" . $deal_info['name'] . "</a>],第" . ($kk + 1) . "期,回报本息", 5);
                     modify_account(array("money" => -$user_load_data['true_manage_money']), $in_user_id, "[<a href='" . $deal_info['url'] . "' target='_blank'>" . $deal_info['name'] . "</a>],第" . ($kk + 1) . "期,投标管理费", 20);
                     if ($user_load_data['impose_money'] != 0) {
                         modify_account(array("money" => $user_load_data['impose_money']), $in_user_id, "[<a href='" . $deal_info['url'] . "' target='_blank'>" . $deal_info['name'] . "</a>],第" . ($kk + 1) . "期,逾期罚息", 21);
                     }
                     $msg_conf = get_user_msg_conf($in_user_id);
                     //短信通知
                     if (app_conf("SMS_ON") == 1 && app_conf('SMS_REPAY_TOUSER_ON') == 1) {
                         $tmpl = $GLOBALS['db']->getRow("select * from " . DB_PREFIX . "msg_template where name = 'TPL_DEAL_LOAD_REPAY_SMS'", false);
                         $tmpl_content = $tmpl['content'];
                         $notice['user_name'] = $loan_user_info['user_name'];
                         $notice['deal_name'] = $deal_info['sub_name'];
                         $notice['deal_url'] = $deal_info['url'];
                         $notice['site_name'] = app_conf("SHOP_TITLE");
                         $notice['repay_money'] = number_format($user_load_data['true_repay_money'] + $user_load_data['impose_money'], 2);
                         if ($unext_loan) {
                             $notice['need_next_repay'] = $unext_loan;
                             $notice['next_repay_time'] = to_date($unext_loan['repay_day'], "Y年m月d日");
                             $notice['next_repay_money'] = number_format($unext_loan['month_repay_money'], 2);
                         } else {
                             $notice['all_repay_money'] = $all_shouyi_money;
                             $notice['impose_money'] = $all_impose_money;
                         }
                         $GLOBALS['tmpl']->assign("notice", $notice);
                         $sms_content = $GLOBALS['tmpl']->fetch("str:" . $tmpl_content);
                         $msg_data['dest'] = $loan_user_info['mobile'];
                         $msg_data['send_type'] = 0;
                         $msg_data['title'] = $msg_data['content'] = addslashes($sms_content);
                         $msg_data['send_time'] = 0;
                         $msg_data['is_send'] = 0;
                         $msg_data['create_time'] = TIME_UTC;
                         $msg_data['user_id'] = $in_user_id;
                         $msg_data['is_html'] = 0;
                         $GLOBALS['db']->autoExecute(DB_PREFIX . "deal_msg_list", $msg_data);
                         //插入
                     }
                     //站内信
                     $notices['shop_title'] = app_conf("SHOP_TITLE");
                     $notices['url'] = "“<a href=\"" . $deal_info['url'] . "\">" . $deal_info['name'] . "</a>”";
                     $notices['money'] = $user_load_data['true_repay_money'] + $user_load_data['impose_money'];
                     $tmpl_content = $GLOBALS['db']->getRow("select * from " . DB_PREFIX . "msg_template where name = 'TPL_SITE_REPAY'", false);
                     $GLOBALS['tmpl']->assign("notice", $notices);
                     $content = $GLOBALS['tmpl']->fetch("str:" . $tmpl_content['content']);
                     if ($msg_conf['sms_bidrepaid'] == 1) {
                         send_user_msg("", $content, 0, $in_user_id, TIME_UTC, 0, true, 9);
                     }
                     //邮件
                     if ($msg_conf['mail_bidrepaid'] == 1 && app_conf('MAIL_ON') == 1) {
                         $tmpl = $GLOBALS['db']->getRow("select * from " . DB_PREFIX . "msg_template where name = 'TPL_DEAL_LOAD_REPAY_EMAIL'", false);
                         $tmpl_content = $tmpl['content'];
                         $notice['user_name'] = $loan_user_info['user_name'];
                         $notice['deal_name'] = $deal_info['sub_name'];
                         $notice['deal_url'] = $deal_info['url'];
                         $notice['site_name'] = app_conf("SHOP_TITLE");
                         $notice['site_url'] = SITE_DOMAIN . APP_ROOT;
                         $notice['help_url'] = SITE_DOMAIN . url("index", "helpcenter");
                         $notice['msg_cof_setting_url'] = SITE_DOMAIN . url("index", "uc_msg#setting");
                         $notice['repay_money'] = number_format($vv['month_repay_money'] + $vv['impose_money'], 2);
                         if ($unext_loan) {
                             $notice['need_next_repay'] = $unext_loan;
                             $notice['next_repay_time'] = to_date($unext_loan['repay_day'], "Y年m月d日");
                             $notice['next_repay_money'] = number_format($unext_loan['month_repay_money'], 2);
                         } else {
                             $notice['all_repay_money'] = $all_shouyi_money;
                             $notice['impose_money'] = $all_impose_money;
                         }
                         $GLOBALS['tmpl']->assign("notice", $notice);
                         $msg = $GLOBALS['tmpl']->fetch("str:" . $tmpl_content);
                         $msg_data['dest'] = $loan_user_info['email'];
                         $msg_data['send_type'] = 1;
                         $msg_data['title'] = "“" . $deal_info['name'] . "”回款通知";
                         $msg_data['content'] = addslashes($msg);
                         $msg_data['send_time'] = 0;
                         $msg_data['is_send'] = 0;
                         $msg_data['create_time'] = TIME_UTC;
                         $msg_data['user_id'] = $in_user_id;
                         $msg_data['is_html'] = $tmpl['is_html'];
                         $GLOBALS['db']->autoExecute(DB_PREFIX . "deal_msg_list", $msg_data);
                         //插入
                     }
                 }
             }
         }
     }
     if ($page >= $page_all) {
         $s_count = $GLOBALS['db']->getOne("SELECT count(*) FROM  " . DB_PREFIX . "deal_load_repay where deal_id=" . $id . " AND l_key=" . $l_key . " and has_repay = 0");
         $adm_session = es_session::get(md5(conf("AUTH_KEY")));
         if ($s_count == 0) {
             $rs_sum = $GLOBALS['db']->getRow("SELECT sum(true_repay_money) as total_repay_money,sum(true_self_money) as total_self_money,sum(true_interest_money) as total_interest_money,sum(true_manage_money) as total_manage_money,sum(impose_money) as total_impose_money,sum(repay_manage_impose_money) as total_repay_manage_impose_money FROM  " . DB_PREFIX . "deal_load_repay where deal_id=" . $id . " AND l_key=" . $l_key . "  and has_repay = 1");
             $deal_load_list = get_deal_load_list($deal_info);
             //统计网站代还款
             $rs_site_sum = $GLOBALS['db']->getRow("SELECT sum(true_repay_money) as total_repay_money,sum(true_self_money) as total_self_money,sum(true_repay_manage_money) as total_manage_money,sum(impose_money) as total_impose_money,sum(repay_manage_impose_money) as total_repay_manage_impose_money FROM  " . DB_PREFIX . "deal_load_repay where deal_id=" . $id . " AND l_key=" . $l_key . " and is_site_repay=1 and has_repay = 1");
             $repay_data['status'] = (int) $deal_load_list[$l_key]['status'] - 1;
             $repay_data['true_repay_time'] = TIME_UTC;
             $repay_data['true_repay_date'] = to_date(TIME_UTC);
             $repay_data['has_repay'] = 1;
             $repay_data['impose_money'] = floatval($rs_sum['total_impose_money']);
             $repay_data['true_self_money'] = floatval($rs_sum['total_self_money']);
             $repay_data['true_repay_money'] = floatval($rs_sum['total_repay_money']);
             $repay_data['true_manage_money'] = floatval($rs_sum['total_manage_money']);
             $repay_data['true_interest_money'] = floatval($rs_sum['total_interest_money']);
             $repay_data['manage_impose_money'] = floatval($rs_sum['total_repay_manage_impose_money']);
             $GLOBALS['db']->autoExecute("UPDATE " . DB_PREFIX . "deal_repay", $repay_data, "UPDATE", " deal_id=" . $id . " AND l_key=" . $l_key . " and has_repay = 0 ");
             if ($rs_site_sum) {
                 $r_msg = "网站代还款";
                 if ($rs_site_sum['total_repay_money'] > 0) {
                     $r_msg .= ",本息:" . format_price($rs_site_sum['total_repay_money']);
                 }
                 if ($rs_site_sum['total_impose_money'] > 0) {
                     $r_msg .= ",逾期费用:" . format_price($rs_site_sum['total_impose_money']);
                 }
                 if ($rs_site_sum['total_manage_money'] > 0) {
                     $r_msg .= ",管理费:" . format_price($rs_site_sum['total_manage_money']);
                 }
                 if ($rs_site_sum['total_repay_manage_impose_money'] > 0) {
                     $r_msg .= ",逾期管理费:" . format_price($rs_site_sum['total_repay_manage_impose_money']);
                 }
                 repay_log($deal_load_list[$l_key]['repay_id'], $r_msg, 0, $adm_session['adm_id']);
             }
             if ($GLOBALS['db']->getOne("SELECT count(*) FROM " . DB_PREFIX . "generation_repay WHERE deal_id=" . $id . " AND repay_id=" . $deal_load_list[$l_key]['repay_id'] . "") == 0) {
                 $generation_repay['deal_id'] = $id;
                 $generation_repay['repay_id'] = $deal_load_list[$l_key]['repay_id'];
                 $generation_repay['admin_id'] = $adm_session['adm_id'];
                 $generation_repay['agency_id'] = $deal_info['agency_id'];
                 $generation_repay['repay_money'] = $rs_site_sum['total_repay_money'];
                 $generation_repay['self_money'] = $rs_site_sum['total_self_money'];
                 $generation_repay['impose_money'] = $rs_site_sum['total_impose_money'];
                 $generation_repay['manage_money'] = $rs_site_sum['total_manage_money'];
                 $generation_repay['manage_impose_money'] = $rs_site_sum['total_repay_manage_impose_money'];
                 $generation_repay['create_time'] = TIME_UTC;
                 $GLOBALS['db']->autoExecute(DB_PREFIX . "generation_repay", $generation_repay);
             }
         }
         $this->success("代还款执行完毕!");
     } else {
         register_shutdown_function(array(&$this, 'do_site_repay'), $page + 1);
     }
 }