进货模块的数据层:
进货管理数据层接口: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); }