Struts 基金交易平台项目总结(三完结)

原创 2007年09月17日 22:12:00

2007/06--2007/07:2007年6月开发 “开放式上市基金交易平台”

软件环境:JDK1.5,Tomcat 5.5

硬件环境:Windows2000/XP

开发工具:MyEclipse5.5(英文版)+SQLServer2000+Struts

编程语言:Java

系统结构:Struts架构实现MVC设计模式

项目描述:

系统描述:为基金操作管理员提供办公自动化快速办公。

系统功能:基金销售人员管理模块,基金产品管理模块,客户信息管理模块,客户资金帐户管理模块,

                   基金交易管理模块。

团队角色:实现基金产品管理模块,基金交易模块,客户信息管理模块,客户资金帐户管理模块。

项目总结:

              1:首先对系统整个结构进行分析,分类出具体的包,用于存放各个模块的实体类和对应业务层。

              2:系统最底层由com.weiyan.db包下的DBAccess类实现对系统数据访问层的封装,其封装了所有对

                    数据库的操作。做为系统核心数据访问层.进一步使用代理模式DBAccessManager类,代理了数据

                    访问层DBAccess,实现数据访问层与业务层的松散耦合。

             3:创建继承于RequestProcessor的myRequestPorcess类,实现中文转码问题并在Struts中注册

                    定制的处理类。

             4:创建操作员实体,及操作员业务层.实现对操作员的登陆,注册等功能..系统中各层使用实体传递数据。

             5:创建基金实体,及基金业务层,实现对基金的添加,查询,及修改功能。

             6:创建客户实体,及客户业务层,实现对客户的注册,查询基本信息,修改信息,及查询客户详细信息

                   包括基金帐户和资金帐户信息.在页面实现javascript进行局部打印和预览.

             7:创建资金帐户实体,及其业务层,实现开立资金帐户,查询资金帐户,追加资金帐户,取钱,冻结

                   资金帐户,和解除限制,本层特点,验证严格,如没有客户编号不允许开户等等..

             8:创建基金帐户实体,及业务层,实现购买基金,查询基金帐户,赎回基金。

             9:在本此项目中,对Struts框架进行了更深入的了解,和更熟练的应用。对javascript也有进步。

 

项目部分业务类:

                 

客户业务层:

 

package com.weiyan.Child;

import java.sql.*;
import java.util.ArrayList;

import com.weiyan.FINANCIAL_ACCOUNT.financial_accBean;
import com.weiyan.FINANCIAL_ACCOUNT.financil_accManager;
import com.weiyan.db.DBAccessManager;
import com.weiyan.fund_account.fund_accountBean;
import com.weiyan.fund_account.fund_accountManager;

public class chientManager {
    
// 客户业务操作层
    private DBAccessManager db = null;

    
public chientManager() {
        db 
= new DBAccessManager();// 创建数据操作层
    }


    
/**
     * 检查身份证是否重复 返回true为可以添加
     * 
     * 
@param bean
     * 
@return
     
*/

    
private boolean Check_id(clientBean bean) {
        String id 
= bean.getId_card_no();// 获得身份证
        boolean check = true;
        String sql 
= "select * from CLIENT where ID_CARD_NO='" + id + "'";
        ResultSet rs 
= db.Select(sql);
        
try {
            
if (rs.next()) {
                check 
= false;
            }
 else {
                check 
= true;
            }

        }
 catch (SQLException e) {
            
// TODO Auto-generated catch block
            e.printStackTrace();
        }

        db.CloseConn();
// 关闭
        return check;

    }


    
/**
     * 添加客户,返回boolean类型,参数是一个客户实体
     * 
     * 
@param bean
     * 
@return
     
*/

    
public boolean AddClient(clientBean bean) {
        
boolean check = true;
        String client_name 
= bean.getClient_name();
        String id_card_no 
= bean.getId_card_no();
        String sex 
= bean.getSex();
        String phone 
= bean.getPhone();
        String address 
= bean.getAddress();
        String email 
= bean.getEmail();
        String hobby 
= bean.getHobby();
        
if (this.Check_id(bean)) {
            String sql 
= "insert into CLIENT (CLIENT_NAME,ID_CARD_NO,SEX,PHONE,ADDRESS,EMAIL,HOBBY) values('"
                    
+ client_name
                    
+ "','"
                    
+ id_card_no
                    
+ "','"
                    
+ sex
                    
+ "','"
                    
+ phone
                    
+ "','"
                    
+ address
                    
+ "','"
                    
+ email
                    
+ "','"
                    
+ hobby
                    
+ "')";
            
if (db.Insert(sql) > 0{
                check 
= true;// 如果影响行>0为添加成功返回真
            }
 else {
                check 
= false;
            }


        }
 else {
            check 
= false// 如果有此身份证不添加
        }

        
return check;
    }


    
/**
     * 查询客户信息,返回一个客户实体,参数为一个客户
     * 
     * 
@param bean
     * 
@return
     
*/

    
public clientBean Getclient(clientBean bean) {
        String client_name 
= bean.getClient_name();// 客户姓名
        String id_card_no = bean.getId_card_no();// 获得身份证
        String sql = "select * from CLIENT where CLIENT_NAME='" + client_name
                
+ "' and id_card_no='" + id_card_no + "'";
        ResultSet rs 
= db.Select(sql);
        clientBean chient 
= new clientBean();// 构建客户实体
        try {
            
if (rs.next()) // 如果有此客户
            {
                chient.setClient_no(rs.getInt(
"client_no"));
                System.out.println(
"------------------------------");
                chient.setClient_name(rs.getString(
"CLIENT_NAME"));//
                chient.setSex(rs.getString("SEX"));
                
// chient.setSex(rs.getString("id_card_no"));
                
// 完全不知道为什么这里会抛异常,这里十分郁闷...现在知道了是没按数据库顺序读数据
                chient.setId_card_no(id_card_no);
                chient.setPhone(rs.getString(
"phone"));
                chient.setAddress(rs.getString(
"ADDRESS"));
                chient.setEmail(rs.getString(
"EMAIL"));
                chient.setHobby(rs.getString(
"HOBBY"));

            }
 else {
                chient 
= null;
            }

        }
 catch (SQLException e) {
            
// TODO Auto-generated catch block
            e.printStackTrace();
        }

        db.CloseConn();
// 关闭
        return chient;
    }


    
/**
     * 更新客户信息,更新后返回新的客户实体
     * 
     * 
@param bean
     * 
@return
     
*/

    
public clientBean UpdateUser(clientBean bean) {
        
int client_no = bean.getClient_no();// 获得id
        String client_name = bean.getClient_name();
        String id_card_no 
= bean.getId_card_no();
        String sex 
= bean.getSex();
        String phone 
= bean.getPhone();
        String address 
= bean.getAddress();
        String email 
= bean.getEmail();
        String hobby 
= bean.getHobby();
        String sql 
= "update client set client_name='" + client_name
                
+ "',id_card_no='" + id_card_no + "',sex='" + sex + "',phone='"
                
+ phone + "',address='" + address + "',email='" + email
                
+ "',hobby='" + hobby + "' where client_no='" + client_no + "'";
        
int i = db.Update(sql);
        
return this.Getclient(bean);
    }


    
/**
     * 检查客户编号是否存在 参数客户,返回真假存在为真,可以添加
     * 
     * 
@param bean
     * 
@return
     
*/

    
public boolean CheckClient_no(clientBean bean) {
        
int client_no = bean.getClient_no();// 获得编号
        boolean check = true;
        String sql 
= "select * from client where client_no=" + client_no + "";
        ResultSet rs 
= db.Select(sql);
        
try {
            
if (rs.next())// 如果存在
            {
                check 
= true;
            }
 else {
                check 
= false;
            }

        }
 catch (SQLException e) {
            
// TODO Auto-generated catch block
            e.printStackTrace();
        }

        db.CloseConn();
        
return check;
    }

    
/**
     * 根据客户编号获得客户信息
     * 
@param bean
     * 
@return
     
*/

    
public clientBean GetClients(clientBean bean) {
        
int client_no = bean.getClient_no();
        String sql 
= "select * from CLIENT where client_no=" + client_no + "";
        ResultSet rs 
= db.Select(sql);
        clientBean chient 
= new clientBean();// 构建客户实体
        try {
            
if (rs.next()) // 如果有此客户
            {
                chient.setClient_no(rs.getInt(
"client_no"));
                System.out.println(
"------------------------------");
                chient.setClient_name(rs.getString(
"CLIENT_NAME"));//
                chient.setId_card_no(rs.getString("id_card_no"));
                chient.setSex(rs.getString(
"SEX"));
                chient.setPhone(rs.getString(
"phone"));
                chient.setAddress(rs.getString(
"ADDRESS"));
                chient.setEmail(rs.getString(
"EMAIL"));
                chient.setHobby(rs.getString(
"HOBBY"));

            }
 else {
                chient 
= null;
            }

        }
 catch (SQLException e) {
            
// TODO Auto-generated catch block
            e.printStackTrace();
        }

        db.CloseConn();
// 关闭
        return chient;
    }


    
/**
     * 获得客户综合信息,对应查询客户详细信息功能
     * 
     * 
@param bean
     * 
@return
     
*/

    
public clientBean GetClientBean(clientBean bean) {

        
int client_no = bean.getClient_no();// 获得客户编号
        clientBean clientbean = this.GetClients(bean);// 设置客户基本信息设置完毕
        /*-------------------------------------------------------------------------------------------------*/
        
// 开始设置客户资金帐户
        financil_accManager accum = new financil_accManager();// 构建资金帐户业务层
        financial_accBean accbean = new financial_accBean(); // 资金帐户实体
        accbean.setClient_no(client_no);
        financial_accBean accbeans 
= accum.GetAcc(accbean);// 调用资金帐户业务层的获得资金帐户方法.
//        System.out.println("*-*-*-*-*-*-*-*-*-*");
//        System.out.println(accbeans.getCreate_date());
        clientbean.setAccbean(accbeans);// 设置客户的资金帐户设置完毕
        /*-------------------------------------------------------------------------------------------------*/
        
// 开始设置客户基金帐户
        if(accbeans!=null)//判断如果资金帐户为空,就不可能有基金帐户
        {
        
int financilg_acc_no = accbeans.getAccount_no();// 获得资金帐户编号***
        fund_accountBean accountbean = new fund_accountBean();// 基金帐户实体
        accountbean.setFinancial_acc_no(financilg_acc_no);// 设置资金帐户编号
        fund_accountManager accountum = new fund_accountManager();// 基金帐户业务层
        ArrayList list = accountum.GetAcc_funds(accountbean);// 获得客户所有基金帐户返回一个集合
        clientbean.setXiang(list);// 设置客户基金帐户
        /*--------------------------------------------------------------------------------------------------*/
        }

        
return clientbean;

    }


}

 

基金业务层:

 

package com.weiyan.FUND;

import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.Random;

import com.weiyan.db.DBAccessManager;

//基金操作业务层
public class fundManager {
    
private DBAccessManager db = null;

    
public fundManager() {
        db 
= new DBAccessManager();
    }


    
/**
     * 此方法检测基金名称是否存在,参数基金实体真为可以添加
     * 
     * 
@param bean
     * 
@return
     
*/

    
public boolean CheckFundName(fundBean bean) {
        
boolean check = true;
        String fundName 
= bean.getFund_name();// 获得基金名称
        String sql = "select * from FUND where FUND_NAME='" + fundName + "'";
        ResultSet rs 
= db.Select(sql);// 查询
        try {
            
if (rs.next()) {
                check 
= false;
            }
 else {
                check 
= true;
            }

        }
 catch (SQLException e) {
            
// TODO Auto-generated catch block
            e.printStackTrace();
        }

        
return check;

    }


    
/**
     * 添加基金,参数为基金实体,添加成功true 如果名称重复,或数据更新行为0,返回false,
     * 
     * 
@param bean
     * 
@return
     
*/

    
public boolean AddFund(fundBean bean) {
        
boolean check = true;
        String fundName 
= bean.getFund_name();// 获得基金名称
        float price = bean.getPrice();// 基金价格
        String Desc = bean.getDescrpition();// 基金描述
        String sql = "insert into FUND (FUND_NAME,PRICE,DESCRIPTION) values('"
                
+ fundName + "'," + price + ",'" + Desc + "')";
        
if (this.CheckFundName(bean)) // 调用内部方法检测基金是否重复
        {
            
if (db.Insert(sql) > 0// 如果更新数量多于1
            {
                check 
= true;
            }
 else {
                check 
= false;
            }

        }
 else {
            
// 如果基金名称重复直接返回假
            check = false;
        }

        
return check;

    }


    
/**
     * 查询基金返回一个基金实体
     * 
     * 
@param bean
     * 
@return
     
*/

    
public fundBean GetFund(fundBean bean) {

        String fund_name 
= bean.getFund_name();// 获得基金名称.
        int fund_no = bean.getFund_no();// 获得基金编号
        String sql = "select * from fund where fund_no=" + fund_no
                
+ " and fund_name='" + fund_name + ""// 查询基金语句
        ResultSet rs = db.Select(sql);
        fundBean fundbean 
= new fundBean();// 构建一个基金实体
        try {
            
if (rs.next())// 如果有此基金设置基金属性
            {
                fundbean.setFund_no(rs.getInt(
"fund_no"));
                fundbean.setFund_name(rs.getString(
"fund_name"));
                fundbean.setPrice(rs.getFloat(
"price"));
                fundbean.setDescrpition(rs.getString(
"DESCRIPTION"));
            }
 else {// 无此基金返回Null
                fundbean = null;
            }

        }
 catch (SQLException e) {
            
// TODO Auto-generated catch block
            e.printStackTrace();
        }

        
return fundbean;

    }


    
/**
     * 修改基金参数,参数为基金实体
     * 
     * 
@return
     
*/

    
public int UpdateFund(fundBean bean) {
        
int fund_no = bean.getFund_no();// 获得编号
        String fund_name = bean.getFund_name();// 获得名称
        float price = bean.getPrice(); // 获得价格
        String desc = bean.getDescrpition();// 获得描述
        String status = bean.getStatus();// 获得状态
        String sql = "update fund set fund_name='" + fund_name + "',price="
                
+ price + ",description='" + desc + "',status='" + status
                
+ "' where fund_no=" + fund_no + "";
        
return db.Update(sql);

    }


    
/**
     * 获得所有基金
     * 
     * 
@return
     
*/

    
public ArrayList GetFund() {
        ArrayList list 
= new ArrayList();// 构建集合
        String sql = "select * from fund where status='上市'";
        ResultSet rs 
= db.Select(sql);
        
try {
            
while (rs.next()) {
                fundBean bean 
= new fundBean();// 基金实体
                bean.setFund_name(rs.getString("fund_name"));// 获得基金名称
                float price = rs.getFloat("price");// 获得基金价格
                
// 当前产品价格
                float price1 = this.GetRandom(price);
                bean.setPrice(price1);
// 基金价格
                list.add(bean);
            }

        }
 catch (SQLException e) {
            
// TODO Auto-generated catch block
            e.printStackTrace();
        }

        
return list;
    }


    
/**
     * 获得浮动算法
     * 
     * 
@param price
     * 
@return
     
*/

    
public float GetRandom(float price) {
        Random random 
= new Random();// 创建随即数对象
        int rdm = random.nextInt() % 10;// 随即数
        float price1 = price * (1 + (float) rdm / 100);// 基金浮动算法由于int随即数不存小数,转型

        
return price1;
    }


    
/**
     * 根据基金编号获得当前基金变化价格
     * 
     * 
@return
     
*/

    
public float GetDateFund(fundBean bean) {
        
float price = 0;
        
int id = bean.getFund_no();// 获得基金编号
        String sql = "select * from fund where fund_no=" + id + "";
        ResultSet rs 
= db.Select(sql);
        
try {
            rs.next();
            price 
= this.GetRandom(rs.getFloat("price"));
        }
 catch (SQLException e) {
            
// TODO Auto-generated catch block
            e.printStackTrace();
        }

        
return price;

    }


    
/**
     * 根据基金名称获得基金编号
     * 
     * 
@param bean
     * 
@return
     
*/

    
public int GetFund_no(fundBean bean) {
        String fund_name 
= bean.getFund_name();// 获得基金名称
        int fund_no = 0;
        String sql 
= "select * from fund where fund_name='" + fund_name + "'";
        ResultSet rs 
= db.Select(sql);
        
try {
            rs.next();
            fund_no 
= rs.getInt("fund_no");
        }
 catch (SQLException e) {
            
// TODO Auto-generated catch block
            e.printStackTrace();
        }

        
return fund_no;
    }


}

 

资金帐户业务层:

 

package com.weiyan.FINANCIAL_ACCOUNT;

//资金帐户业务层

import java.sql.ResultSet;
import java.sql.SQLException;

import com.weiyan.Child.chientManager;
import com.weiyan.Child.clientBean;
import com.weiyan.db.DBAccessManager;

public class financil_accManager {
    
private DBAccessManager db = null;

    
public financil_accManager() {
        db 
= new DBAccessManager();// 初始化
    }


    
/**
     * 检查资金帐户的客户编号是否重复,存在返回假,不存在返回真
     * 
     * 
@return
     
*/

    
public boolean Check_noBool(financial_accBean bean) {
        
boolean check = true;
        
int client_no = bean.getClient_no();// 获得客户编号
        String sql = "select * from FINANCIAL_ACCOUNT where client_no="
                
+ client_no + "";
        ResultSet rs 
= db.Select(sql);
        
try {
            
if (rs.next()) {// 有此客户
                check = false;
            }
 else {
                check 
= true;
            }

        }
 catch (SQLException e) {
            
// TODO Auto-generated catch block
            e.printStackTrace();
        }

        db.CloseConn();
// 关闭连接
        return check;

    }


    
/**
     * 检测状态
     * 
     * 
@param bean
     * 
@return
     
*/

    
public boolean Check_State(financial_accBean bean) {
        
boolean check = true;
        String sql 
= "select * from FINANCIAL_ACCOUNT where account_no="
                
+ bean.getAccount_no() + " ";
        ResultSet rs 
= db.Select(sql);
        
try {
            rs.next();
            String state 
= rs.getString("status");
            
if (state.equals("正常")) {
                check 
= true;
            }
 else {
                check 
= false;
            }

        }
 catch (SQLException e) {
            
// TODO Auto-generated catch block
            e.printStackTrace();
        }

        
return check;
    }


    
// public int Check_Fund(financial_accBean bean) {
    
// int check = 0; // 0代表都成功
    
// int id = bean.getAccount_no();
    
// String password = bean.getPassword();
    
// if (this.check_acc_no(bean)) // 检测资金帐户是否存在
    
// {
    
// // 存在0
    
// if (this.login(bean))// 检测资金帐户和密码是否匹配
    
// {
    
// // 正确
    
// if (this.Check_State(bean))// 检测状态
    
// {
    
// // ****
    
// } else {
    
// // 状态为冻结3
    
// }
    
//
    
// } else {
    
// // 密码不正确返回2
    
// }
    
//
    
// } else {
    
// // 资金帐户不存在返回1
    
// }
    
// }

    
/**
     * 资金帐户开户 参数bean 内部调用客户业务层的检测客户编号是否存在的业务方法。
     * 
     * 
@param bean
     * 
@return
     
*/

    
public boolean AddACCOUNT(financial_accBean bean) {
        
int client_no = bean.getClient_no();// 获得客户编号
        float financing_amount = bean.getFinancing_amount();// 获得钱
        String password = bean.getPassword();
        
boolean check = true;// 控制流
        clientBean clientbean = new clientBean();// 构建客户实体
        clientbean.setClient_no(client_no);
        chientManager manager 
= new chientManager();// 构建客户业务层

        
if (manager.CheckClient_no(clientbean)) {// 调用客户业务层的检测编号方法检测客户编号是否存在,客户必须存在
            
// 真表示存在可以添加,但资金帐户每人只有一个,客户编号不允许重复
            if (this.Check_noBool(bean))// 调用内部检测基金帐户客户编号是否重复
            {
                String sql 
= "insert into FINANCIAL_ACCOUNT (client_no,financing_amount,password) values("
                        
+ client_no
                        
+ ","
                        
+ financing_amount
                        
+ ",'"
                        
+ password
                        
+ "')";
                
if (db.Insert(sql) > 0// 如果大于0添加成功
                {
                    check 
= true;
                }
 else {
                    check 
= false;
                }

            }
 else {
                check 
= false;// 编号重复不允许
            }

        }
 else {
            
// 如果不存在,直接false;
            check = false;
        }


        
return check; // 返回
    }


    
/**
     * 获得某个资金帐户内的资金
     * 
     * 
@param bean
     * 
@return
     
*/

    
private float GetFinancing_amount(financial_accBean bean) {
        
int account_no = bean.getAccount_no();// 获得资金帐户编号
        String sql = "select * from FINANCIAL_ACCOUNT where account_no="
                
+ account_no + "";
        ResultSet rs 
= db.Select(sql);
        
float monay = 0;
        
try {
            rs.next();
            monay 
= rs.getFloat(3);
        }
 catch (SQLException e) {
            
// TODO Auto-generated catch block
            e.printStackTrace();
        }

        
return monay;
    }


    
/**
     * 检查资金帐户是否存在的方法 有返回真,没有返回假
     * 
     * 
@param bean
     * 
@return
     
*/

    
public boolean check_acc_no(financial_accBean bean) {
        
boolean check = true;
        
int account_no = bean.getAccount_no();// 获得资金帐户编号
        String sql = "select * from FINANCIAL_ACCOUNT where account_no="
                
+ account_no + "";
        ResultSet rs 
= db.Select(sql);// 查询
        try {
            
if (rs.next()) {
                check 
= true;
            }
 else {
                check 
= false;
            }

        }
 catch (SQLException e) {
            
// TODO Auto-generated catch block
            e.printStackTrace();
        }

        
return check;
    }


    
/**
     * 追加资金,参数资金实体,返回真假是否追加成功
     * 
     * 
@param bean
     * 
@return
     
*/

    
public boolean Addfinancil(financial_accBean bean) {
        
boolean check = true;
        
if (this.check_acc_no(bean))// 检查资金帐户是否存在
        {// 存在返回真
            int acc_no = bean.getAccount_no();// 获得基金帐户
            float monay = bean.getFinancing_amount();// 获得追加基金
            float monay0 = this.GetFinancing_amount(bean);// 获得原来的资金帐户
            float NewMonay = monay + monay0;// 追加的+原有的资金和
            String sql = "update FINANCIAL_ACCOUNT set financing_amount="
                    
+ NewMonay + " where account_no=" + acc_no + "";
            
int updaterow = db.Update(sql);
        }
 else {
            check 
= false;// 不存在返回假,追加失败,资金帐户不存在
        }

        
return check;
    }


    
/**
     * 取钱时候检测密码行为
     * 
     * 
@param bean
     * 
@return
     
*/

    
public boolean login(financial_accBean bean) {
        
boolean check = true;
        
int id = bean.getAccount_no();
        String password 
= bean.getPassword();
        String sql 
= "select * from FINANCIAL_ACCOUNT where account_no=" + id
                
+ " and password='" + password + "'";
        ResultSet rs 
= db.Select(sql);
        
try {
            
if (rs.next()) {
                check 
= true;
            }
 else {
                check 
= false;
            }

        }
 catch (SQLException e) {
            
// TODO Auto-generated catch block
            e.printStackTrace();
        }

        
return check;
    }


    
/**
     * 取钱方法,总钱-取的。0代表资金帐户不存在,1代表成功,2代表密码错误,3,没有足够资金 4冻结
     * 
     * 
@param bean
     * 
@return
     
*/

    
public int GetMoney(financial_accBean bean) {
        
int check = 1;// 1代表成功
        if (this.check_acc_no(bean)) // 检查资金帐户是否存在
        {
            
if (this.login(bean)) {// 检测资金帐户编号和密码
                if (this.Check_State(bean)) {// 状态检测
                    int account_on = bean.getAccount_no();// 获得资金帐户编号
                    String password = bean.getPassword();// 获得密码
                    float money = bean.getFinancing_amount();// 获得取出钱数
                    float money0 = this.GetFinancing_amount(bean);// 获得原来的资金帐户

                    
float NewMoney = money0 - money;
                    
if (NewMoney >= 0{
                        String sql 
= "update FINANCIAL_ACCOUNT set financing_amount="
                                
+ NewMoney
                                
+ " where account_no="
                                
+ account_on
                                
+ "";
                        
int updaterow = db.Update(sql);
                        check 
= 1;// 成功
                    }
 else {
                        check 
= 3;// 没有足够的资金
                    }

                }
 else {
                    check 
= 4;// 状态为冻结
                }

            }
 else {
                check 
= 2;// 用户名密码错误
            }


        }
 else {
            check 
= 0;// 资金帐户不存在
        }

        
return check;
    }


    
/**
     * 加钱方法,总钱+加的。0代表资金帐户不存在,1代表成功,2代表密码错误,3,没有足够资金 4冻结
     * 
     * 
@param bean
     * 
@return
     
*/

    
public int AddMoney(financial_accBean bean) {
        
int check = 1;// 1代表成功
        if (this.check_acc_no(bean)) // 检查资金帐户是否存在
        {
            
if (this.login(bean)) {// 检测资金帐户编号和密码
                if (this.Check_State(bean)) {// 状态检测
                    int account_on = bean.getAccount_no();// 获得资金帐户编号
                    String password = bean.getPassword();// 获得密码
                    float money = bean.getFinancing_amount();// 获得加钱数
                    float money0 = this.GetFinancing_amount(bean);// 获得原来的资金帐户

                    
float NewMoney = money0 + money;
                    
if (NewMoney >= 0{
                        String sql 
= "update FINANCIAL_ACCOUNT set financing_amount="
                                
+ NewMoney
                                
+ " where account_no="
                                
+ account_on
                                
+ "";
                        
int updaterow = db.Update(sql);
                        check 
= 1;// 成功
                    }
 else {
                        check 
= 3;// 没有足够的资金
                    }

                }
 else {
                    check 
= 4;// 状态为冻结
                }

            }
 else {
                check 
= 2;// 用户名密码错误
            }


        }
 else {
            check 
= 0;// 资金帐户不存在
        }

        
return check;
    }


    
/**
     * 查询资金帐户信息返回一个资金帐户
     * 
     * 
@param bean
     * 
@return
     
*/

    
public financial_accBean SelectMoney(financial_accBean bean) {
        
int acc_no = bean.getAccount_no();// 资金帐户
        int client_no = bean.getClient_no();// 客户编号
        String sql = "select * from view1 where account_no=" + acc_no
                
+ " and client_no=" + client_no + "";
        ResultSet rs 
= db.Select(sql);
        financial_accBean acc 
= new financial_accBean();// 资金帐户实体
        try {
            
if (rs.next()) {
                acc.setClient_no(client_no);
                acc.setFinancing_amount(rs.getFloat(
"financing_amount"));
                acc.setCreate_date(rs.getString(
"create_date"));
                acc.setStatus(rs.getString(
"client_name"));
                acc.setAccount_no(rs.getInt(
"account_no"));
                acc.setPassword(rs.getString(
"status"));

            }
 else {
                acc 
= null;
            }

        }
 catch (SQLException e) {
            
// TODO Auto-generated catch block
            e.printStackTrace();
        }

        
return acc;
    }


    
/**
     * 根据客户编号返回资金帐户 参数资金帐户实体,设置客户编号
     * 
     * 
@param bean
     * 
@return
     
*/

    
public financial_accBean GetAcc(financial_accBean bean) {
        
int Client_no = bean.getClient_no();// 获得客户编号
        String sql = "select * from financial_account where client_no="
                
+ Client_no + "";
        ResultSet rs 
= db.Select(sql);
        financial_accBean accbean 
= new financial_accBean();// 资金帐户
        
// 客户可以没有资金帐户
        try {
            
if (rs.next()) {
//                System.out.println("进入");
                accbean.setAccount_no(rs.getInt("account_no"));// 获得资金帐户编号
                accbean.setClient_no(rs.getInt("client_no"));// 客户编号
                accbean.setFinancing_amount(rs.getFloat("financing_amount"));
                accbean.setCreate_date(rs.getString(
"create_date"));
                accbean.setStatus(rs.getString(
"status"));
            }
 else {
                accbean 
= null;
            }

        }
 catch (SQLException e) {
            
// TODO Auto-generated catch block
            e.printStackTrace();
        }

//        System.out.println(accbean.getCreate_date());
        return accbean;
    }


    
/**
     * 冻结资金帐户
     * 
     * 
@param bean
     
*/

    
public void Congeal(financial_accBean bean) {
        
int id = bean.getAccount_no();// 获得要冻结的资金帐户
        String sql = "update financial_account set status='冻结'where account_no="
                
+ id + "";
        
int updaterow = db.Update(sql);
    }


    
/**
     * 解除资金帐户限制
     * 
     * 
@param bean
     
*/

    
public void Decontrol(financial_accBean bean) {
        
int id = bean.getAccount_no();// 获得要解除的资金帐户
        String sql = "update financial_account set status='正常'where account_no="
                
+ id + "";
        
int updaterow = db.Update(sql);
    }


}

 

基金帐户交易业务层:

 

package com.weiyan.fund_account;

import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;

import com.weiyan.FINANCIAL_ACCOUNT.financial_accBean;
import com.weiyan.FINANCIAL_ACCOUNT.financil_accManager;
import com.weiyan.FUND.fundBean;
import com.weiyan.FUND.fundManager;
import com.weiyan.db.DBAccessManager;

public class fund_accountManager {
    
// 基金交易帐户业务层
    private DBAccessManager db = null;

    
private financil_accManager financil = null;// 资金业务层

    
private fundManager fundmanager = null// 基金业务层

    
public fund_accountManager() {
        db 
= new DBAccessManager();// 构造初始化
        financil = new financil_accManager();// 构建资金帐户业务层由于购买基金要在资金帐户取钱
        fundmanager = new fundManager();
    }


    
/**
     * 购买基金方法,,内部调用资金帐户业务层的取钱方法,因为在购买的时候需要扣除资金帐户的钱 1成功,2密码错误,3资金不足,4,帐户冻结,0帐户不存在
     * 
     * 
@param bean
     * 
@param password
     * 
@return
     
*/

    
public int BuyFund(fund_accountBean bean, String password) {
        
int financial_acc_no = bean.getFinancial_acc_no();// 获得资金帐户
        int fund_no = bean.getFund_no();// 获得基金编号
        int quantitiy = bean.getQuantitiy();// 获得购买数量
        float price = bean.getPrice();// 获得单价
        float shouxu = quantitiy * price * ((float1 / 100);// 手续费为总价格的百分之一
        
// System.out.println("-------------------------------------------");
        
// System.out.println(shouxu);
        float NumPrice = quantitiy * price + shouxu;// 算出总价,也就是在资金帐户里取钱的数量+百分之一手续费
        
// System.out.println(NumPrice);
        financial_accBean financialbean = new financial_accBean();// 构建资金帐户实体
        financialbean.setAccount_no(financial_acc_no);
        financialbean.setPassword(password);
// 设置密码
        financialbean.setFinancing_amount(NumPrice);// 设置取出钱
        int State = financil.GetMoney(financialbean);
        
if (State == 1{// 成功取出钱,购买成功
            String sql = "insert into fund_account values(" + financial_acc_no
                    
+ "," + fund_no + "," + quantitiy + "," + price + ")";
            
int updaterow = db.Insert(sql); // 插入数据
            return 1;
        }
 else if (State == 0{
            
return 0;// 资金帐户不存在
        }
 else if (State == 2{
            
return 2;// 密码错误
        }
 else if (State == 3{
            
return 3// 资金不足
        }
 else {// 帐户冻结
            return 4;
        }

    }


    
/**
     * 赎回也就是卖,数量不足3,全部赎回删除基金帐户返回5,冻结 2,不是全部赎回 4, 密码错误1,基金帐户不存在0
     * 
     * 
@param bean
     * 
@return
     
*/

    
public int MaiFund(fund_accountBean bean, String password) {

        
int state = 0;
        
int fund_acc_no = bean.getFund_acc_no();// 获得基金帐户

        
int Count = bean.getQuantitiy();// 获得赎回数量

        financial_accBean finabean 
= new financial_accBean();// 资金帐户实体

        
if (this.check_fund_acc_no(bean))// 调用内部方法检测基金帐户是否存在1
        {
            fund_accountBean accbean 
= this.GetaccountBean(bean);// 获得此资金帐户的详细信息
            int quantitiy = accbean.getQuantitiy();// 获得原有数量
            int s = quantitiy - Count;// 现有数量
            int fund_no = accbean.getFund_no();// 获得基金编号
            int financial_acc_no = accbean.getFinancial_acc_no();// 获得资金帐户
            finabean.setPassword(password);// 获得资金帐户密码
            finabean.setAccount_no(financial_acc_no);// 获得资金帐户ID

            
if (financil.login(finabean))// 调用资金业务层检测资金帐户密码密码2
            {
                
if (financil.Check_State(finabean)) // 调用资金业务层检测资金状态3
                {
                    
if (s < 0{// 检测数量
                        
// 数量不足 3
                        state = 3;
                    }
 else if (s == 0// 如果全部赎回,删除
                        fundBean fu = new fundBean();// 基金实体
                        fu.setFund_no(fund_no);// 基金编号
                        float prices = this.fundmanager.GetDateFund(fu); // 获得当前基金的浮动价格
                        float shouxu = Count * prices * ((float1 / 100);// 手续费为总价格的百分之一
                        float pricess = Count * prices;// 总价格
                        float NumPeice = pricess - shouxu;// 总价格减手续费用
                        this.Delete(bean);// 删除基金帐户
                        financial_accBean accbeans = new financial_accBean();// 资金实体
                        finabean.setFinancing_amount(NumPeice);
                        
int is = this.financil.AddMoney(finabean);// 向资金帐户内加钱
                        if (is == 1{
                            state 
= 5;
                            
// 删除返回5
                        }


                    }
 else {
                        
// 足卖掉4
                        fundBean fu = new fundBean();// 基金实体
                        fu.setFund_no(fund_no);// 基金编号
                        float prices = this.fundmanager.GetDateFund(fu); // 获得当前基金的浮动价格
                        float shouxu = Count * prices * ((float1 / 100);// 手续费为总价格的百分之一
                        float pricess = Count * prices;// 总价格
                        float NumPeice = pricess - shouxu;// 总价格减手续费用
                        String sql = "update fund_account set quantitiy=" + s
                                
+ " where fund_acc_no=" + fund_acc_no + "";
                        
int i = db.Update(sql);// 更新基金帐户数量
                        financial_accBean accbeans = new financial_accBean();// 资金实体
                        finabean.setFinancing_amount(NumPeice);
                        
int is = this.financil.AddMoney(finabean);
                        
if (is == 1{
                            
// 返回4
                            state = 4;
                        }

                    }

                }
 else {
                    
// 状态为冻结2
                    state = 2;
                }


            }
 else {
                
// 资金帐户密码错误返回1
                state = 1;
            }

        }
 else {
            
// 基金帐户不存在返回0
            state = 0;
        }

        
return state;
    }


    
/**
     * 检测基金帐户是否存在
     * 
     * 
@param bean
     * 
@return
     
*/

    
public boolean check_fund_acc_no(fund_accountBean bean) {
        
boolean check = true;
        
int id = bean.getFund_acc_no();
        String sql 
= "select * from fund_account where fund_acc_no=" + id + "";
        ResultSet rs 
= db.Select(sql);
        
try {
            
if (rs.next()) {
                check 
= true;
            }
 else {
                check 
= false;
            }

        }
 catch (SQLException e) {
            
// TODO Auto-generated catch block
            e.printStackTrace();
        }

        
return check;

    }


    
/**
     * 获得基金帐户
     * 
     * 
@param bean
     * 
@return
     
*/

    
public fund_accountBean GetaccountBean(fund_accountBean bean) {
        
int id = bean.getFund_acc_no();// 获得基金帐户编号
        String sql = "select * from fund_account where fund_acc_no=" + id + "";
        ResultSet rs 
= db.Select(sql);
        fund_accountBean accbean 
= new fund_accountBean();// 创建基金帐户实体
        try {
            
if (rs.next()) {
                accbean.setFund_acc_no(id);
// 获得基金帐户ID
                accbean.setFinancial_acc_no(rs.getInt("financial_acc_no"));// 获得资金帐户
                accbean.setFund_no(rs.getInt("fund_no"));// 获得基金ID
                accbean.setQuantitiy(rs.getInt("quantitiy"));// 获得购买的数量
                accbean.setPrice(rs.getFloat("price"));
            }
 else {
                accbean 
= null;
            }

        }
 catch (SQLException e) {
            
// TODO Auto-generated catch block
            e.printStackTrace();
        }

        
return accbean;

    }


    
/**
     * 删除基金帐户,参数基金帐户
     * 
     
*/

    
public void Delete(fund_accountBean bean) {
        
int id = bean.getFund_acc_no();// 获得基金帐户编号
        String sql = "delete from fund_account where fund_acc_no=" + id + "";
        
int updaterow = db.Delete(sql);
    }


    
/**
     * 根据基金帐户编号.获得某个基金帐户详细信息
     * 
     * 
@param bean
     * 
@return
     
*/

    
public fund_account_Xiang GetX(fund_accountBean bean) {
        
int fund_acc_no = bean.getFund_acc_no();// 获得基金帐户编号
        fund_account_Xiang accbean = new fund_account_Xiang();// 基金帐户详细实体
        try {
            
if (this.check_fund_acc_no(bean))// 检测资金帐户是否存在
            {// 如果存在
                fund_accountBean account = this.GetaccountBean(bean);// 获得基本基金帐户信息
                int fund_no = account.getFund_no();// 获得基金编号
                fundBean fundbean = new fundBean();// 基金实体
                fundbean.setFund_no(fund_no);
                
float price = this.fundmanager.GetDateFund(fundbean);// 调用基金业务层获得当前价格

                String sql 
= "select * from view2 where fund_acc_no=" + fund_acc_no
                        
+ "";
                ResultSet rs 
= db.Select(sql);
                rs.next();
                accbean.setFund_acc_no(rs.getInt(
"fund_acc_no"));// 开始设置实体
                accbean.setQuantitiy(rs.getInt("quantitiy"));
                accbean.setPrice(rs.getFloat(
"price"));
                accbean.setFund_name(rs.getString(
"fund_name"));
                accbean.setStatus(rs.getString(
"status"));
                accbean.setCreate_date(rs.getString(
"create_date"));
                accbean.setAccount_no(rs.getInt(
"account_no"));
                accbean.setRmdpeice(price);
//浮动价格

            }
 else {
                accbean 
= null;
            }

        }
 catch (SQLException e) {
            
// TODO Auto-generated catch block
            e.printStackTrace();
        }

        
return accbean;
    }

    
/**
     * 根据资金帐户获得当前资金帐户所有基金信息
     * 
@param bean
     * 
@return
     
*/

    
public ArrayList GetAcc_funds(fund_accountBean bean)
    
{
        
int financial_acc_no=bean.getFinancial_acc_no();//获得资金帐户
        String sql="select * from view2 where account_no="+financial_acc_no+"";
        ResultSet rs
=db.Select(sql);
        ArrayList list
=new ArrayList();//创建集合
        try {
            
while (rs.next()) // 循环
            {
                fund_account_Xiang xiang 
= new fund_account_Xiang();
                
int fund_acc_no = rs.getInt("fund_acc_no");// 基金帐户编号
                xiang.setFund_acc_no(fund_acc_no);
                xiang.setQuantitiy(rs.getInt(
"quantitiy"));// 购买数量
                xiang.setPrice(rs.getFloat("price"));// 买进价格
                xiang.setFund_name(rs.getString("fund_name"));// 购买基金产品名称
                xiang.setStatus(rs.getString("statu"));// 帐户状态上市还是没
                fund_accountBean beans=new fund_accountBean(); //设置基金帐
                beans.setFund_acc_no(fund_acc_no);//基金帐户编号
                fund_accountBean account = this.GetaccountBean(beans);// 获得基本基金帐户信息
                int fund_no = account.getFund_no();// 获得基金编号
                fundBean fundbean = new fundBean();// 基金实体
                fundbean.setFund_no(fund_no);
                
float price = this.fundmanager.GetDateFund(fundbean);// 调用基金业务层获得当前浮动价格
                xiang.setRmdpeice(price);// 设置当前价格
                list.add(xiang);

            }

        }
 catch (SQLException e) {
            
// TODO Auto-generated catch block
            e.printStackTrace();
        }
    
        
        
return list;
        
    }

    
    

}

 

系统截图:

 

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

广东设大学生创业基金及股权交易平台

对于参加5月17日正式启动的广东省“挑战杯·创青春”大学生创业大赛的创新团队来说,今后他们可能离圆创业梦更近一步。经过半年多的资源整合运作,团广东省委联合广州股权交易中心与粤科金融集团,在大学生创业大...

基金交易平台

  • 2008-05-19 20:53
  • 3.68MB
  • 下载

校园二手交易平台与收获友谊(IT项目管理)

组长:萌萌哒 组员:恒宝、大脸妹、铁柱哥、小白、小灰灰 项目该来还是要来的,三级项目也是项目。只要认真面对生活中每一件事情,生活处处都是项目。也就在三四月份,无忧无虑的恒宝在享受着轻松的大学生活。...

jsp模拟基金交易平台

  • 2009-04-14 11:54
  • 2.37MB
  • 下载

j2ee模拟基金交易平台系统

  • 2009-09-22 10:43
  • 2.84MB
  • 下载

虚拟币交易平台开发

虚拟币交易平台开发如今中国市场当中的山寨币市场已经相当的广大,可是还依然有许多的用户对于这种投资感到十分的陌生。他们甚至是在怀疑这种投资方式究竟真的有用吗?其实制作山寨币有三的好处: 好处一:山寨币...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)