您好,欢迎访问三七文档
供应链项目安排搭建框架一天基础数据模块和权限管理4天左右应收应付和销售管理5天左右涉及到的框架的知识点dao的重用service层的重用js的继承机制的应用jquery的插件开发弹出div框概念一个供应链系统是一个公司通过供应商采购商品,把商品放入到仓库中,该公司在销售该商品的时候,再把商品从仓库中提取出来,卖给客户的过程其中有三个订单:采购订单销售订单调拨订单(公司内部仓库之间的商品的调拨)关于供应链的大数据方面的内容数据挖掘ETL:数据抽取BI:商业智能dao的技术实现gyl的maven的环境搭建创建一个web工程添加maven支持编辑pom.xml文件写持久化类和映射文件写spring的配置文件该系统要创建的映射文件的包为:com.itheima11.gyl.domain.basedatacom.itheima11.gyl.domain.privilegecom.itheima11.gyl.domain.xsgl创建一个测试类,生成表框架的搭建dao封装的需求1、供应链的所有的模块都用到了查询该查询是分页的该查询还是按照条件该查询是按照数据来查询的2、删除的操作1、有可能一次性删除很多行记录2、有可能删除一行记录3、根据id查询持久化对象4、增加操作5、修改操作dao的封装查询的实现PageResultBaseQueryBaseDaoBaseDaoImplT1、在构造器中publicBaseDaoImpl(){/***this代表子类*this.getClass().getGenericSuperclass()就是父类:BaseDaoImplT泛型*如果不带T,this.getClass().getGenericSuperclass()返回的是class类型,而不是ParameterizedType*spring(2.x和3.x)容器不支持带泛型的创建对象*/ParameterizedTypetype=(ParameterizedType)this.getClass().getGenericSuperclass();//得到t的实现类型this.classt=(Class)type.getActualTypeArguments()[0];}得到了T的class形式2、在init方法中@PostConstructpublicvoidinit(){//初始化方法this.classMetadata=this.hibernateTemplate.getSessionFactory().getClassMetadata(this.classt);}得到了元数据的形式3、getCount方法方法的参数为BaseQuery,在该BaseQuery中有一个方法buildWhere,利用该方法可以得到查询条件的map形式拼接hql语句的where条件语句动态的传入参数的值4、findPageResult方法同上增加的实现删除多个数据根据ids---字符串,利用hibernateTemplate的find方法得到一个list,再利用hibernateTemplate的deleteAll方法删除list即可。删除一个数据service的封装需求把service层的crud的方法就可以封装在BaseService中service的封装BaseServiceTBaseServiceImplT1、publicabstractBaseDaogetBaseDao();这是一个抽象方法,谁继承,谁实现因为在该类中没有办法实现2、在spring的配置文件中,添加事务的注解解析器3、其中的一个方法action的封装的需求把模型驱动进行封装把得到session进行封装把一些字符串封装action的封装BaseActionT泛型概念就是java语言中的一种类型ParameterizedType就是泛型ParameterizedType例如:publicclassBaseDaoT{}BaseDao----rawTypeT---actualTypeArguments第一种传递参数的方式:publicclassSubBaseDaoTextendsBaseDaoTpublicclassDepartmentDaoextendsSubBaseDaoDepartment或者publicclassDepartmentDaoTextendsSubBaseDaoTDeparmentDaoDepartmentdepartmentDao=newDepartmentDaoDepartment();第二种传递的方式:BaseDaoDepartmentbaseDao=newBaseDaoDepartment();项目开发基础数据department模块创建action1、创建一个包com.itheima11.gyl.basedata.action2、创建一个DepartmentAction类测试action准备department关于struts2的配置文件准备css文件和images文件准备jsp结构在web-inf/jsp/gyl/basedata/department下创建一个jsp页面准备web.xml文件list.jsp显示department的列表s:iteratorvalue=#departments.rowstralign=centertdinputtype=checkboxname=didsvalue=${did}//tdtds:propertyvalue=name//tdtds:propertyvalue=description//tdtdclass=btnalign=centerinputtype=buttonvalue=修改/inputtype=buttonvalue=删除//td/tr/s:iterator把分页的组件加入到页面中说明:1、每一个input元素中有一个param属性,根据该属性的值可以知道操作以后要显示的页面是第几页2、flag属性是用来标示哪个按钮写一个通用的分页的处理jsGylUtils.jsvarGylUitls={//基本数据模块basedata:{//分页的处理dispage:{linkNextPage:function(){/***this为当前的按钮*/varcurrentPage=$(this).attr(param);varurl=$(body).data(url);window.location.href=url+?currentPage=+currentPage;注意的事项:baseQuery.currentPage这种形式传递参数不行}}//基本数据模块初始化事假initEvent:function(){//初始化了分页的事件}}};动态的加载checkbox删除buttoninputtype=submitvalue=删除或者是一个inputtype=buttonvalue=删除jquery-plugin-delete.js该插件描述了三个功能:1、删除功能如果没有选择checkbox,则提示选择window.confirm的提示2、绿色的表示对数据中的checkbox的控制3、蓝色的表示对控制的checkbox的状态的控制BaseAction获取被选中的复选框的值,并且把值变成字符串的形式DepartmentAction删除submitjquery-plugin-delete.jsBaseActionDepartmentAction增加list.jspDepartmentActionadd.jsp修改jquery-plugin-update.js用户模块持久化和映射文件UserDaoUserDaoImplUserServiceUserServiceImplUserQuery增加注意事项:跳转到增加的页面:action中的代码:add.jspuserAction:修改注意事项:页面上的值的回显一般情况下是根据页面上的name属性,在后台的action中必须把值放入到对象栈中。注意事项权限概念1、认证(authentication)登录用户名和密码的登录2、授权给用户权限权限:权限和资源是对应的资源:url菜单控制功能:页面上能够点击的元素action中的方法控制注解的形式springAopstruts2的拦截器数据权限框架1、SpringSecurity通过过滤器链的方式,内部通过aop的技术把这些过滤器联系在一起的主要控制url该权限必须建立在spring容器基础之上该权限和web容器有关联2、shiro与任何框架都没有关系与web容器也没有关系3、自己公司开发的权限框架步骤权限菜单、功能、url这些元素,如果系统做完了,这些内容就确定了。角色相当于权限的集合,要以树的形式进行维护给角色分配权限给用户分配角色控制访问权限zTree是jquery的一个树的插件创建zTree的步骤1、准备一个样式文件和两个js文件2、在页面上准备树的容器3、写js代码创建树zNodes描述的是树上的节点setting为整个树的特性权限实现的详细步骤权限的实现1、准备持久化类和映射文件(Menuitem)2、准备一个测试类MenuitemTest.java3、把准备的数据存放在数据库表menuitem中4、加载zTree:1、准备js文件和样式文件2、准备menuitem.jsp页面3、准备menuitem的dao,service和action4、准备struts2的配置文件包的名称为:json-default自定义的结果集:json3、准备一个js文件menuitem.js角色1、写持久化类和映射文件体现用户和角色之间的关系2、创建一个角色树的根节点:CEO创建根节点:dao,service,action配置文件写RoleTest创建根节点3、对于角色树:1、创建角色树2、右键菜单3、增加角色、修改角色、删除角色注意:要创建角色树,必须访问role.jsp所以必须转发才能访问到role.jsp,所以要建立ForwardAction创建树右键菜单在jsp页面上role.js中添加右键事件通过上述的代码添加右键事件当鼠标移除div区域的时候,自动隐藏div给添加角色、修改角色、删除角色添加事件添加角色思路:打开一个对话框,添加一个角色的名称,后台校验角色的名称是否可用(ajax来写)如果可用1、发出ajax请求,在后台的数据库中添加相应的数据2、在前台角色树中增加一个节点如果不可用,提示修改角色删除角色权限配置需求:当点击权限配置的时候当点击设置权限的时候点击上面的保存按钮步骤创建一个jsp页面role_privilege.jsp在RoleAction中添加一个方法在struts-role.xml文件中准备privilege的持久化类和映射文件role_privilege.js框架结构varrole_privilege={data:{role:{rid:'',name:''}zTreePlugin:''},opt:{roleOpt:{}divOpt:{},roleTree:{}},init:{initData:function(){},initEvent:function(){}}};填充事件在initEvent方法中填充事件设置权限的事件:显示隐藏的div给role_privilege.data中role赋值动态的显示角色的名称设置全选复选框的默认状态为不可选加载权限树角色配置权限的控制不同的用户访问不同的菜单登录界面login.jsp写LoginDao,LoginDaoImpl,LoginService,LoginServiceImpl,LoginActionstruts2的配置文件struts-login.xmlstruts-forward.xmlPrivilegeDaoImpl不要
本文标题:供应链管理系统
链接地址:https://www.777doc.com/doc-4962089 .html