功能说明

客户管理功能

  1. 新增客户

新增客户
html和JS

<!--         模态框 -->
<div class="modal fade" id="myModal" >
  <div class="modal-dialog">
    <div class="modal-content">
      <div class="modal-header">
        <button type="button" class="close" data-dismiss="modal"><span aria-hidden="true">&times;</span><span class="sr-only">Close</span></button>
        <h4 class="modal-title">客户资料</h4>
      </div>
      <div class="modal-body">
                <form id="clientForm" name="clientForm">
                    <table style="width: 100%">
                        <tr class="formTr">                 
                        <input type="hidden" id="pk"  name="pk" value="0">                  
                            <td style="width: 30%; text-align: right"><label
                                class="col-lg-2 control-label">姓名</label></td>
                            <td style="width: 70%">
                                <div class="col-lg-2">
                                    <input type="text" id="name" name="name" class="form-control" placeholder="姓名">
                                </div>
                            </td>
                        </tr>
                    <tr class="formTr"> 
                            <td style="width: 30%; text-align: right"><label
                                class="col-lg-2 control-label">性别</label></td>
                            <td style="width: 70%;padding-top: 10px" >
                              <div class="square-red single-row" >
                                <div class="radio ">
                                    <input tabindex="3" type="radio" id="sex" value="男" name="sex" checked="checked">
                                    <div style= " position: relative; left: 50px; top: -20px;"> <label></label></div>                                
                                </div>
                            </div>
                            <div class="square-green single-row" >
                                <div class="radio ">
                                    <input tabindex="3" type="radio"  id="sex" value="女"  name="sex">
                                  <div style= " position: relative; left: 50px; top: -20px;"> <label></label></div> 
                                </div>
                            </div>
                            </td>
                                </tr>
                                <tr class="formTr">
                            <td style="width: 30%; text-align: right"><label
                                class="col-lg-2 control-label">出生日期</label></td>
                            <td style="width: 70%">                             
                                    <div class="col-sm-10">
                                        <input type="text" id="birthday" name="birthday" placeholder="" data-mask="9999-99-99" class="form-control" value="2016-12-12">
                                        <span class="help-inline">yyyy-dd-mm</span>
                                    </div>                      
                            </td>
                                </tr>
                                    <tr class="formTr">
                            <td style="width: 30%; text-align: right"><label
                                class="col-lg-2 control-label">婚姻状况</label></td>
                            <td style="width: 70%;padding-top: 20px" >      
                            <select class="form-control m-bot15" id="maritalStatus" name="maritalStatus">
                                <option value="未婚">未婚</option>
                                <option value="已婚">已婚</option>
                            </select>
                            </td>
                                </tr>
                        <tr>
                            <td style="width: 30%; text-align: right"><label
                                class="col-lg-2 control-label">文化程度</label></td>
                            <td style="width: 70%">
                                <select class="form-control m-bot15" id="education" name="education">
                                <option value="初中及以下">初中及以下</option>
                                <option value="高中或中专">高中或中专</option>
                                <option value="大专">大专</option>
                                <option value="本科">本科</option>
                                <option value="硕士及以上">硕士及以上</option>
                            </select>
                            </td>
                        </tr>
                        <tr>
                            <td style="width: 30%; text-align: right"><label
                                class="col-lg-2 control-label">月收入</label></td>
                            <td style="width: 70%">
                                <div class="col-lg-2">
                                    <input type="number" id="income" name="income" class="form-control" placeholder="月收入">
                                </div>
                            </td>
                        </tr>
                        <tr>
                            <td style="width: 30%; text-align: right"><label
                                class="col-lg-2 control-label">手机号码</label></td>
                            <td style="width: 70%;padding-top: 10px">
                                <div class="col-lg-2">
                                    <input type="tel" id="phone" name="phone" class="form-control" placeholder="联系方式">
                                </div>
                            </td>
                        </tr>
                        <tr>
                            <td style="width: 30%; text-align: right"><label
                                class="col-lg-2 control-label">地址</label></td>
                            <td style="width: 70%;padding-top: 10px">
                                <div class="col-lg-2">
                                    <input type="text" id="address" name="address" class="form-control" placeholder="地址">
                                </div>
                            </td>
                        </tr>
                        <tr>
                            <td style="width: 30%; text-align: right"><label
                                class="col-lg-2 control-label">职业</label></td>
                            <td style="width: 70%;padding-top: 10px">
                                <div class="col-lg-2">
                                    <input  id="profession" name="profession" type="text" class="form-control" placeholder="职业">
                                </div>
                            </td>
                        </tr>
                        <tr>
                            <td style="width: 30%; text-align: right"><label
                                class="col-lg-2 control-label">信用级别</label></td>
                            <td style="width: 70%;padding-top: 10px">
                                <div id="spinner3">
                                                    <div class="input-group" style="width:150px;">
                                                        <input type="text" id="level" name="level" class="spinner-input form-control" maxlength="5" readonly>
                                                        <div class="spinner-buttons input-group-btn">
                                                            <button type="button" class="btn btn-default spinner-up">
                                                                <i class="fa fa-angle-up"></i>
                                                            </button>
                                                            <button type="button" class="btn btn-default spinner-down">
                                                                <i class="fa fa-angle-down"></i>
                                                            </button>
                                                        </div>
                                                    </div>
                            </td>
                        </tr>
                    </table>
                </form>
                </div>
      <div class="modal-footer">
        <button type="button" class="btn btn-default" data-dismiss="modal">取消</button>
        <button type="button" class="btn btn-primary" onclick="updClient()">保存</button>
      </div>
    </div><!-- /.modal-content -->
  </div><!-- /.modal-dialog -->
</div><!-- /.modal -->


 function updClient(){
       $.ajax({
            url : "saveClient.do",
            dataType : "json",
            contentType : "application/x-www-form-urlencoded; charset=utf-8",
            type : "post",
            data : $('#clientForm').serialize(),
            success : function(data) {              
                alert("操作"+data.result);
                $('#myModal').modal('hide');
                 table.ajax.reload( null, false ); // 刷新表格数据,分页信息不会重置
            }
        });
   }

点击新增或者修改按钮,弹出新增客户模态框,填写表单完成后,点击保存。触发JS函数,利用ajax技术,异步提交表单到后台。

后台java代码

@ResponseBody
    @RequestMapping(value = "/saveClient.do")
    public Map<String,String> saveClient(Client c){
        List<Map<String, Object>> list = clientService.getIncomeLevel();
        String incomeStr = c.getIncome();
        double income=Double.parseDouble(incomeStr);
        if(list!=null){
            for(int i = 0;i<list.size();i++){
                //判断工资属于用户等级
                Map<String, Object> map = list.get(i);
                int  LEVEL = (int) map.get("LEVEL");
                Double  min = (Double) map.get("min");
                Double  max = (Double) map.get("LEVEL");            
                if(income>=min&&income<max){
                c.setLevel(LEVEL);  
                break;
                }
            }
        }   
        clientService.savaClient(c);
        Map<String,String> map=new HashMap<String,String>();
        map.put("result", "成功");
        return map;
    }

修改成功后,会提示成功。

客户列表

客户列表展示,通过表格方式展示客户信息。
这里写图片描述
用户列表,展示用户数据,可进行修改或删除操作。修改操作仿照新增功能客户功能。
HTML和JS代码

var table=$('#editable-sample').DataTable( {
      language: {
            "sProcessing": "处理中...",
            "sLengthMenu": "显示 _MENU_ 项结果",
            "sZeroRecords": "没有匹配结果",
            "sInfo": "显示第 _START_ 至 _END_ 项结果,共 _TOTAL_ 项",
            "sInfoEmpty": "显示第 0 至 0 项结果,共 0 项",
            "sInfoFiltered": "(由 _MAX_ 项结果过滤)",
            "sInfoPostFix": "",
            "sSearch": "搜索:",
            "sUrl": "",
            "sEmptyTable": "表中数据为空",
            "sLoadingRecords": "载入中...",
            "sInfoThousands": ",",
            "oPaginate": {
                "sFirst": "首页",
                "sPrevious": "上页",
                "sNext": "下页",
                "sLast": "末页"
            },
            "oAria": {
                "sSortAscending": ": 以升序排列此列",
                "sSortDescending": ": 以降序排列此列"
            }
        },
        searching: false,
        ordering:  false,
        columns: [
                  { data: 'name',"title": "客户姓名","targets": 0 },//data :数据名,title 别名
                  { data: 'address',"title": "家庭地址","targets": 3 },
                  { data: 'birthday',"title":"出生日期"     },
                  { data: 'education',"title":"文化程度" },
                  { data: 'income',"title":"月收入" },
                  { data: 'level',"title":"信用级别" },
                  { data: 'maritalStatus',"title":"婚姻状况" },
                  { data: 'phone',"title":"联系方式" },
                  { data: 'profession',"title":"职业" },
                  { data: 'sex',"title":"性别" },
                  { data: 'pk',"title":"操作","render": function ( data, type, row, meta ) {
                      var html= " <button class='btn btn-info'"+
                      "onclick='editClient(\""+row.name+"\",\""+row.address+"\",\""+row.birthday+"\",\""+row.education+"\",\""+row.income+"\",\""+row.level+"\",\""+row.maritalStatus+"\",\""+row.phone+"\",\""+row.profession+"\",\""+row.sex+"\",\""+row.pk+"\")' "+
                      "type='button'>修改</button>&nbsp;<button onclick='delClient(\""+row.pk+"\")' class='btn btn-danger' type='button'>删除</button>";
                      return html;
                  }}
              ],
//     autoWidth: false,   //禁用自动调整列宽
//     STRIPECLASSES: ["ODD", "EVEN"],//为奇偶行加上样式,兼容不支持CSS伪类的场合
//     order: [],          //取消默认排序查询,否则复选框一列会出现小箭头
//     processing: false,  //隐藏加载提示,自行处理
//     serverSide: true,   //启用服务器端分页
        serverSide: true,
        ajax: {
        url: 'getClientList.do',
        type: 'POST',
        dataType:'json',
        contentType : "application/x-www-form-urlencoded; charset=UTF-8",
    }
//     searching: false    //禁用原生搜索
   } );

后台代码

@ResponseBody
    @RequestMapping(value = "/getClientList.do")
    public Grid getClientList(Grid grid) {
        List list = clientService.list(grid);
        grid.setData(list);
        return grid;
    }

@Override
    public List list(Grid g) {
        String sql="SELECT * FROM client limit ?,?";
        List<Map<String, Object>> list = jdbcDao.queryForList(sql, g.getStart(),g.getStart()+g.getLength());
        int count = jdbcDao.queryForInt("SELECT count(pk) FROM client");
        g.setRecordsTotal(count);
        g.setRecordsFiltered(count);
//      String str = "";
//      for (Client u : li) {
//          str += u.toString();
//      }
        return list;
    }

删除客户数据

在客户列表,点击删除后,即删除客户数据。通过ajax技术,异步删除客户数据。
这里写图片描述
以下是HTML 和 JS代码

 function delClient(pk){
        $.ajax({
            url : "delClient.do",
            dataType : "json",
            contentType : "application/x-www-form-urlencoded; charset=utf-8",
            type : "post",
            data : {"pk":pk},
            success : function(data) {              
                alert("删除"+data.result);
                table.ajax.reload( null, false ); // 刷新表格数据,分页信息不会重置
            }
        });
    }

后台代码

@ResponseBody
    @RequestMapping(value = "/delClient.do")
    public Map<String,String> delClient(int pk){
        clientService.delClient(pk);
        Map<String,String> map=new HashMap<String,String>();
        map.put("result", "成功");
        return map;
    }

信用管理

有信用级别管理和贷款额度管理
这里写图片描述

信用级别管理

通过选择级别和填写收入范围,修改客户信用级别评定。
这里写图片描述
html和JS代码

  <div class="wrapper">
            <div class="row">
                <div class="col-sm-12">
                  <div class="panel">
                                <header class="panel-heading">
                                       信用级别管理
                                    <span class="tools pull-right">
                                        <a href="javascript:;" class="fa fa-chevron-down"></a>
                                        <a href="javascript:;" class="fa fa-times"></a>
                                     </span>
                                </header>
                                <div class="panel-body">
                                <table class="table">
                            <thead>
                            <tr>
                                <th>级别</th>
                                <th>月收入(小)</th>
                                <th>月收入(大)</th>                        
                            </tr>
                            </thead>
                            <tbody>
                              #foreach($incomeLevel in $list)

                                 <tr>

                                 #foreach( $item in $incomeLevel.entrySet())
                                <td> $item.value</td>
                                  #end 
                            </tr>            
                            #end  

                            </tbody>
                        </table>
                                 <table width="100%">
                                 <tr>
                                 <td width="40%">
                                 <select class="form-control m-bot15" id="incomeLevel">
                                <option value="1">级别1</option>
                                <option value="2">级别2</option>
                                <option value="3">级别3</option>
                                <option value="4">级别4</option>
                                <option value="5">级别5</option>
                                 </select>
                                 </td>
                                  <td><input type="text" class="form-control round-input" id="min">
                                       至
                                  <input type="text" class="form-control round-input" id="max"></td>
                                 </tr>
                                 <tr>
                                 <td colspan="2" style="text-align: center"><button type="button" onclick="updIncomeLevel()" class="btn btn-primary btn-lg btn-block">确定保存</button></td>                             
                                 </tr>
                                 </table>
                                </div>
                            </div>

 function updIncomeLevel(){
        var result=confirm("确定修改收入等级?将修改客户等级评定!");
        if(result!=true)return false;
        var incomeLevel=$("#incomeLevel").val();
        var min=$("#min").val();
        var max=$("#max").val();

        $.ajax({
            url : "updIncomeLevel.do",
            dataType : "json",
            contentType : "application/x-www-form-urlencoded; charset=utf-8",
            type : "post",
            data : {"incomeLevel":incomeLevel,"min":min,"max":max},
            success : function(data) {              
                alert("更新"+data.result);
                 location.reload();
            }
        });
    }

后台代码

@ResponseBody
    @RequestMapping(value = "/updIncomeLevel.do")
    public Map<String,String> updIncomeLevel(String incomeLevel, String min, String max){
        clientService.updIncomeLevel(incomeLevel, min, max);
        Map<String,String> map=new HashMap<String,String>();
        map.put("result", "成功");
        return map;
    }

    @Override
    public void updIncomeLevel(String level, String min, String max) {
        String sql="UPDATE incomelevel SET  max=?, min=? WHERE level=?";
        String sql1="UPDATE client set level=? where income BETWEEN ? and ?";
        jdbcDao.update(sql, max, min, level);
        jdbcDao.update(sql1,level,min,max);         
    }

贷款额度管理

选择级别 修改贷款额度范围。点击确定后保存数据。
这里写图片描述
HTML和JS

  <section class="panel">
                        <header class="panel-heading">
                              贷款范围管理
                        <span class="tools pull-right">
                            <a href="javascript:;" class="fa fa-chevron-down"></a>
                            <a href="javascript:;" class="fa fa-times"></a>
                         </span>
                        </header>
                        <div class="panel-body">
                            <table class="table slider-table">
                            <tr><td colspan="2" style="text-align: center">信用级别的贷款范围</td></tr>
                            <tr><td colspan="2">
                             <div class="input-group m-bot15">
                                <div class="input-group-btn">
                                    <button type="button" class="btn btn-default dropdown-toggle" data-toggle="dropdown">级别 <span class="caret"></span></button>
                                    <ul class="dropdown-menu">
                                        <li><a onclick="updRange(1)" href="javascript:;">级别1</a></li>
                                        <li><a onclick="updRange(2)" href="javascript:;">级别2</a></li>
                                        <li><a onclick="updRange(3)" href="javascript:;">级别3</a></li>
                                        <li><a onclick="updRange(4)" href="javascript:;">级别4</a></li>
                                        <li><a onclick="updRange(5)" href="javascript:;">级别5</a></li>
                                    </ul>
                                </div>
                                <input type="number" id="min" step="1000" class="form-control"><p></p> <input id="max" type="number" step="1000" class="form-control" >
                            </div></td></tr>
                            <form id="levleForm" name=""levleForm"">
                                <tr><td style="width:10%">
                                     级别1
                               </td>
                                    <td>
                                        <input id="level1" type="text" name="level1" value="$!{level1}"  data-type="double" />
                                    </td>
                                </tr>
                                <tr><td style="width:10%">级别2</td>
                                    <td>
                                        <input id="level2" type="text" name="level2" value="$!{level2}" data-type="double" />
                                    </td>
                                </tr> 
                                   <tr><td style="width:10%">级别3</td>
                                    <td>
                                        <input id="level3" type="text" name="level3" value="$!{level3}" data-type="double" />
                                    </td>
                                </tr> 
                                 <tr><td style="width:10%">级别4</td>
                                    <td>
                                        <input id="level4" type="text" name="level4" value="$!{level4}" data-type="double" />
                                    </td>
                                </tr>
                                  <tr><td style="width:10%">级别5</td>
                                       <td>
                                        <input id="level5" type="text" name="level5" value="$!{level5}" data-type="double" />
                                    </td>
                                </tr>   
                                 <tr><td colspan="2" style="text-align: center"><button onclick="updLevle()" class="btn btn-success btn-lg btn-block" type="button">提交</button></td></tr>                             
                          </form>
                            </table>


                        </div>
                    </section>
    function updLevle(){
        var level1=$('#level1').val();
        var level2=$('#level2').val();
        var level3=$('#level3').val();
        var level4=$('#level4').val();
        var level5=$('#level5').val();
        $.ajax({
            url : "updLevel.do",
            dataType : "json",
            contentType : "application/x-www-form-urlencoded; charset=utf-8",
            type : "post",
            data : {"level1":level1,"level2":level2,"level3":level3,"level4":level4,"level5":level5,},
            success : function(data) {              
                alert("更新"+data.result);
                 location.reload();
            }
        });
    }

后台代码

@ResponseBody
    @RequestMapping(value = "/updLevel.do")
    public Map<String,String> updLevel(String level1, String level2, String level3,
            String level4, String level5){
        clientService.updLevel(level1, level2, level3, level4, level5);
        Map<String,String> map=new HashMap<String,String>();
        map.put("result", "成功");
        return map;
    }

@Override
    public void updLevel(String level1, String level2, String level3,
            String level4, String level5) {
        String sql="UPDATE creditlevel SET  level1=?, level2=?, level3=?, level4=?, level5=? WHERE (id=?)";
        jdbcDao.update(sql, level1, level2, level3, level4, level5,1);
    }

贷款管理模块

每一步骤都要按照贷款规则填写,填写完毕当前步骤后,点击下一步。
最后点击提交,将生成贷款订单。
这里写图片描述
后台代码

    @ResponseBody
    @RequestMapping(value = "/saveLoan.do")
    public Map<String,String> saveLoan(Loan l){
        l.setState("申请中");
        Date date=new Date();
        SimpleDateFormat dateFormater = new SimpleDateFormat("yyyy-MM-dd");
        l.setApplyTime(dateFormater.format(date));
        loanService.savaLoan(l);
        Map<String,String> map=new HashMap<String,String>();
        map.put("result", "成功");
        return map;
    }

贷款列表展示功能

新增的贷款可以在此页面查看,将所有贷款都在这个功能展示。
后台代码
这里写图片描述

    @ResponseBody
    @RequestMapping(value = "/getLoanList.do")
    public Grid getClientList(Grid grid) {
        List list = loanService.list(grid);
        grid.setData(list);
        return grid;
    }
@Override
    public List list(Grid g) {
        String sql="SELECT * FROM loan limit ?,?";
        List<Map<String, Object>> list = jdbcDao.queryForList(sql, g.getStart(),g.getStart()+g.getLength());
        int count = jdbcDao.queryForInt("SELECT count(id) FROM loan");
        g.setRecordsTotal(count);
        g.setRecordsFiltered(count);
        return list;
    }

修改贷款订单状态功能

通过在订单列表点击操作按钮,可以修改订单状态,如 审核,修改,通过,发款,归档等状态
这里写图片描述
后台代码

    @ResponseBody
    @RequestMapping(value = "/examineLoan.do")
    public Map<String,String> examineLoan(String id, String state, String examineRemark){
        loanService.examineLoan(id,state,examineRemark);
        Map<String,String> map=new HashMap<String,String>();
        map.put("result", "成功");
        return map;
    }
    @ResponseBody
    @RequestMapping(value = "/grant.do")
    public Map<String,String> grant(String id,String grantRemark){
        loanService.grant(id,grantRemark);
        Map<String,String> map=new HashMap<String,String>();
        map.put("result", "成功");
        return map;
    }
    @ResponseBody
    @RequestMapping(value = "/complete.do")
    public Map<String,String> complete(String id){
        loanService.complete(id);
        Map<String,String> map=new HashMap<String,String>();
        map.put("result", "成功");
        return map;
    }
    @ResponseBody
    @RequestMapping(value = "/updLoan.do")
    public Map<String, String> updLoan(String id, String applyTotal,
            String guarantee, String repaymentTime, String repaymentType,
            String remark){
        loanService.updLoan(id,applyTotal,guarantee,repaymentTime,repaymentType,remark);
        Map<String,String> map=new HashMap<String,String>();
        map.put("result", "成功");
        return map;
    }

    @Override
    public void examineLoan(String id, String state, String examineRemark) {
        String sql="UPDATE loan set state=? ,examineRemark=? where id=?";
        jdbcDao.update(sql, state,examineRemark,id);        
    }
    @Override
    public void grant(String id, String grantRemark) {
        String sql="UPDATE loan set state='确认发款' ,grantRemark=? where id=?";
        jdbcDao.update(sql,grantRemark,id);     
    }
    @Override
    public void complete(String id) {
        String sql="UPDATE loan set state='确认归档'  where id=?";
        jdbcDao.update(sql,id);     
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值