Java-单机版的书店管理系统(练习设计模块和思想_系列 六 (2))

简介: Java-单机版的书店管理系统(练习设计模块和思想_系列 六 (2))

进货模块的数据层:

进货管理数据层接口:InMainDaopackage cn.hncu.bookStore.in.dao.dao;



import java.util.List;
import cn.hncu.bookStore.in.vo.InMainModel;
import cn.hncu.bookStore.in.vo.InMainQueryModel;
/**
 * 进货管理数据层接口
 * 
 * @author 陈浩翔
 * 
 * @version 1.0
 */
public interface InMainDao {
    /**
     * 创建一个进货数据对象
     * @param inMain---需要创建的进货数据对象
     * @return---true 表示创建成功,false 表示创建失败
     */
    public boolean create(InMainModel inMain);
    /**
     * 删除一个进货数据对象
     * @param uuid---进货单的编号-唯一的
     * @return---true表示删除成功, false表示删除失败
     */
    public boolean delete(String uuid);
    /**
     * 修改一个进货数据的对象
     * @param inMain---需要修改的进货管理对象
     * @return---true表示修改成功,false表示修改失败
     */
    public boolean update(InMainModel inMain);
    /**
     * 根据进货单编号,得到进货对象的其他信息资料
     * @param uuid---进货单编号
     * @return---该对象的其他其他信息资料
     */
    public InMainModel getSingle(String uuid);
    /**
     * 
     * @return---所有的进货管理对象信息
     */
    public List<InMainModel> getAll();
    /**
     * 查找进货管理对象
     * @param imqm---查找条件!
     * @return---满足查找条件的所有INMainModel对象
     */
    public List<InMainModel> getbyCondition(InMainQueryModel imqm);
}

进货明细管理数据层接口:InDetailDao

package cn.hncu.bookStore.in.dao.dao;
import java.util.List;
import cn.hncu.bookStore.in.vo.InDetailModel;
import cn.hncu.bookStore.in.vo.InDetailQueryModel;
/**
 * 进货明细管理数据层接口
 * @author 陈浩翔
 *
 * @version 1.0
 */
public interface InDetailDao {
    /**
     * 创建一个进货明细数据对象
     * @param inMain---需要创建的进货明细数据对象
     * @return---true 表示创建成功,false 表示创建失败
     */
    public boolean create(InDetailModel inDetail);
    /**
     * 删除一个进货明细数据对象
     * @param uuid---进货明细单的编号-唯一的
     * @return---true表示删除成功, false表示删除失败
     */
    public boolean delete(String uuid);
    /**
     * 修改一个进货明细数据的对象
     * @param inMain---需要修改的进货管理明细对象
     * @return---true表示修改成功,false表示修改失败
     */
    public boolean update(InDetailModel inDetail);
    /**
     * 根据进货明细单编号,得到进货明细对象的其他信息资料
     * @param uuid---进货明细单编号
     * @return---该对象的其他其他信息资料
     */
    public InDetailModel getSingle(String uuid);
    /**
     * 
     * @return---所有的进货明细管理对象信息
     */
    public List<InDetailModel> getAll();
    /**
     * 查找进货明细管理对象
     * @param imqm---查找条件!
     * @return---满足查找条件的所有InDetailModel对象
     */
    public List<InDetailModel> getbyCondition(InDetailQueryModel idqm);
}

进货明细的实现类:InDetailDaoSerImpl

package cn.hncu.bookStore.in.dao.impl;
import java.util.ArrayList;
import java.util.List;
import cn.hncu.bookStore.in.dao.dao.InDetailDao;
import cn.hncu.bookStore.in.dao.factory.InDetailDaoFactory;
import cn.hncu.bookStore.in.vo.InDetailModel;
import cn.hncu.bookStore.in.vo.InDetailQueryModel;
import cn.hncu.bookStore.util.FileIoUtil;
import cn.hncu.bookStore.util.StringComparison;
/**
 * 进货明细的实现类
 * @author 陈浩翔
 *
 * @version 1.0
 */
public class InDetailDaoSerImpl implements InDetailDao{
    //进货明细数据的存储的文件名
    private final String FILE_NAME = "InDetail.txt";
    @Override
    public boolean create(InDetailModel inDetail) {
        List<InDetailModel> lists = FileIoUtil.readFormFile(FILE_NAME);
        for(InDetailModel model: lists){
            //已经存在这个Uuid,不能添加
            if(model.getUuid().equals(inDetail.getUuid())){
                return false;
            }
        }
        lists.add(inDetail);
        FileIoUtil.write2file(lists, FILE_NAME);
        return true;
    }
    @Override
    public boolean delete(String uuid) {
        List<InDetailModel> list = FileIoUtil.readFormFile(FILE_NAME);
        for(InDetailModel model: list){
            //存在,就删除
            if(model.getUuid().equals(uuid)){
                list.remove(model);
                FileIoUtil.write2file(list, FILE_NAME);
                return true;
            }
        }
        return false;
    }
    @Override
    public boolean update(InDetailModel inDetail) {
        List<InDetailModel> list  = FileIoUtil.readFormFile(FILE_NAME);
        for(int i=0;i<list.size();i++){
            //找到了,就修改
            if(list.get(i).getUuid().equals(inDetail.getUuid())){
                list.set(i, inDetail);
                FileIoUtil.write2file(list, FILE_NAME);
                return true;
            }
        }
        return false;
    }
    @Override
    public InDetailModel getSingle(String uuid) {
        List<InDetailModel> list = FileIoUtil.readFormFile(FILE_NAME);
        for(InDetailModel model : list){
            //找到了,就返回
            if(model.getUuid().equals(uuid)){
                return model;
            }
        }
        return null;
    }
    @Override
    public List<InDetailModel> getAll() {
        return FileIoUtil.readFormFile(FILE_NAME);
    }
    @Override
    public List<InDetailModel> getbyCondition(InDetailQueryModel idqm) {
        List<InDetailModel> lists = getAll();
        List<InDetailModel> resulits = new ArrayList<InDetailModel>();
        for(InDetailModel model:lists){
            if(StringComparison.stringComp(idqm.getUuid(), model.getUuid())==-1){
                continue;
            }
            if(StringComparison.stringComp(idqm.getInId(), model.getInId())==-1){
                continue;
            }
            if(StringComparison.stringComp(idqm.getBookId(), model.getBookId())==-1){
                continue;
            }
            if(idqm.getSumNum()>0){
                if(model.getSumNum()<idqm.getSumNum()){
                    continue;
                }
            }
            if(idqm.getSumNum2()>0){
                if(model.getSumNum()>idqm.getSumNum2()){
                    continue;
                }
            }
            if(idqm.getSumMoney()>0){
                if(model.getSumMoney()<idqm.getSumMoney()){
                    continue;
                }
            }
            if(idqm.getSumMoney2()>0){
                if(model.getSumMoney()>idqm.getSumMoney2()){
                    continue;
                }
            }
            resulits.add(model);
        }
        return resulits;
    }
}

进货管理的实现类:InMainDaoSerImpl

package cn.hncu.bookStore.in.dao.impl;
import java.util.ArrayList;
import java.util.List;
import cn.hncu.bookStore.in.dao.dao.InMainDao;
import cn.hncu.bookStore.in.vo.InMainModel;
import cn.hncu.bookStore.in.vo.InMainQueryModel;
import cn.hncu.bookStore.util.FileIoUtil;
import cn.hncu.bookStore.util.StringComparison;
/**
 * 进货管理的实现类
 * @author 陈浩翔
 *
 * @version 1.0
 */
public class InMainDaoSerImpl implements InMainDao {
    private final String FILE_NAME = "InMain.txt";
    @Override
    public boolean create(InMainModel inMain) {
        List<InMainModel> list = FileIoUtil.readFormFile(FILE_NAME);
        for(InMainModel model:list){
            if(model.getUuid().equals(inMain.getUuid())){//存在,则不能添加
                return false;
            }
        }
        list.add(inMain);
        FileIoUtil.write2file(list, FILE_NAME);
        return true;
    }
    @Override
    public boolean delete(String uuid) {
        List<InMainModel> list = FileIoUtil.readFormFile(FILE_NAME);
        for(InMainModel model:list){
            if(model.getUuid().equals(uuid)){//存在,则删除
                list.remove(model);
                FileIoUtil.write2file(list, FILE_NAME);
                return true;
            }
        }
        return false;
    }
    @Override
    public boolean update(InMainModel inMain) {
        List<InMainModel> list = FileIoUtil.readFormFile(FILE_NAME);
        for(int i=0;i<list.size();i++){
            InMainModel model = list.get(i);
            if(model.getUuid().equals(inMain.getUuid())){//存在,则修改
                list.set(i, inMain);
                FileIoUtil.write2file(list, FILE_NAME);
                return true;
            }
        }
        return false;
    }
    @Override
    public InMainModel getSingle(String uuid) {
        List<InMainModel> list = FileIoUtil.readFormFile(FILE_NAME);
        for(InMainModel model:list){
            if(model.getUuid().equals(uuid)){//存在,则返回
                return model;
            }
        }
        return null;
    }
    @Override
    public List<InMainModel> getAll() {
        return FileIoUtil.readFormFile(FILE_NAME);
    }
    @Override
    public List<InMainModel> getbyCondition(InMainQueryModel imqm) {
        List<InMainModel> lists = FileIoUtil.readFormFile(FILE_NAME);
        List<InMainModel> results = new ArrayList<InMainModel>();
        for(InMainModel model : lists){
            if(StringComparison.stringComp(imqm.getUuid(), model.getUuid())==-1){
                continue;
            }
            if(StringComparison.stringComp(imqm.getInUserId(), model.getInUserId())==-1){
                continue;
            }
            if(imqm.getInDate()>0){
                if(model.getInDate()<imqm.getInDate()){
                    continue;
                }
            }
            if(imqm.getInDate2()>0){
                if(model.getInDate()>imqm.getInDate2()){
                    continue;
                }
            }
            results.add(model);
        }
        return results;
    }
}

new 一个进货明细的实现类:InDetailDaoFactory

package cn.hncu.bookStore.in.dao.factory;
import cn.hncu.bookStore.in.dao.dao.InDetailDao;
import cn.hncu.bookStore.in.dao.impl.InDetailDaoSerImpl;
/**
 * 工厂方法----new 一个进货明细的实现类
 * @author 陈浩翔
 *
 * @version 1.0
 */
public class InDetailDaoFactory {
    public static InDetailDao getInDetailDao(){
        return new InDetailDaoSerImpl();
    }
}

new 一个进货实现类:InMainDaoFactory

package cn.hncu.bookStore.in.dao.factory;
import cn.hncu.bookStore.in.dao.dao.InMainDao;
import cn.hncu.bookStore.in.dao.impl.InMainDaoSerImpl;
/**
 * 工厂方法---new 一个进货实现类
 * @author 陈浩翔
 * @version 1.0
 */
public class InMainDaoFactory {
    public static InMainDao getInMainDao(){
        return new InMainDaoSerImpl();
    }
}

进货模块的逻辑层:

逻辑层的接口:InMainEbi

package cn.hncu.bookStore.in.business.ebi;
import java.util.List;
import java.util.Map;
import cn.hncu.bookStore.in.vo.InDetailModel;
import cn.hncu.bookStore.in.vo.InDetailQueryModel;
import cn.hncu.bookStore.in.vo.InMainModel;
import cn.hncu.bookStore.in.vo.InMainQueryModel;
/**
 * 
 * @author 陈浩翔
 * @version 1.0
 */
public interface InMainEbi {
    /**
     * 创建一个进货模块数据-
     * @param inMain---进货数据
     * @param inDetails---进货明细数据
     * @return---返回true表示创建成功,false表示创建失败
     */
    public abstract boolean create(InMainModel inMain,List<InDetailModel> inDetails);
    /**
     * 
     * @return---返回所有的进货模块(包括进货明细)的集合
     */
    public abstract Map<InMainModel, List<InDetailModel>> getAll();
    /**
     * 
     * @param imqm---进货管理需要查找的条件
     * @param idqm---进货明细需要查找的条件
     * @return---满足条件的所有进货数据的Map集合
     */
    public abstract Map<InMainModel, List<InDetailModel>> getByCondition(InMainQueryModel imqm,InDetailQueryModel idqm);
}
目录
相关文章
|
17天前
|
Java
学校教师管理系统【JSP+Servlet+JavaBean】(Java课设)
学校教师管理系统【JSP+Servlet+JavaBean】(Java课设)
19 1
|
17天前
|
Java
人事管理系统【JSP+Servlet+JavaBean】(Java课设)
人事管理系统【JSP+Servlet+JavaBean】(Java课设)
16 0
|
17天前
|
存储 Java 关系型数据库
实验室设备管理系统【GUI/Swing+MySQL】(Java课设)
实验室设备管理系统【GUI/Swing+MySQL】(Java课设)
16 0
|
17天前
|
存储 Java 关系型数据库
冬奥会传统文化管理系统【GUI/Swing+MySQL】(Java课设)
冬奥会传统文化管理系统【GUI/Swing+MySQL】(Java课设)
8 0
|
17天前
|
存储 Java 关系型数据库
学生宿舍管理系统【GUI/Swing+MySQL】(Java课设)
学生宿舍管理系统【GUI/Swing+MySQL】(Java课设)
18 0
|
17天前
|
存储 Java 关系型数据库
学生管理系统【GUI/Swing+MySQL】(Java课设)
学生管理系统【GUI/Swing+MySQL】(Java课设)
16 0
|
17天前
|
存储 Java 关系型数据库
洗浴中心管理系统【GUI/Swing+MySQL】(Java课设)
洗浴中心管理系统【GUI/Swing+MySQL】(Java课设)
13 0
|
3天前
|
JavaScript Java 测试技术
基于Java的物流配送人员车辆调度管理系统的设计与实现(源码+lw+部署文档+讲解等)
基于Java的物流配送人员车辆调度管理系统的设计与实现(源码+lw+部署文档+讲解等)
9 0
|
3天前
|
人工智能 小程序 Java
java中小学校智慧校园电子班牌管理系统源码
使用springboot框架Java+vue2 B/S架构
22 3
|
7天前
|
JavaScript Java 测试技术
基于Java的智能社区管理系统的设计与实现(源码+lw+部署文档+讲解等)
基于Java的智能社区管理系统的设计与实现(源码+lw+部署文档+讲解等)
8 0