1.项目说明
名称:智能销售(商贸)系统 (aisell) (yxb) pss(进销存系统)
架构:==springmvc+spring+springdatajpa==
shiro(权限框架)+ poi导入导出 +报表 highchart 等(辅助框架)
2.项目搭建
昨天 spring+springdatajpa 完成respository springmvc+spring+springdatajpa
今天:
(1)service写了
(2)Controller添加进来
(3)管理界面
(4)查询功能
3. service层结构
抽取IBaseService -- >写crud方法 以及 分页 还有高级查询方法
public interface IBaseService<T,ID extends Serializable> {
//新增 或修改
public void save(T t);
//Long implements Serializable
//删除
public void delete(ID id);
//查询
public T findOne(ID id);
//查询所有
public List<T> findAll();
//根据Query拿到分页对象(分页)
Page findPageByQuery(BaseQuery baseQuery);
//根据Query拿到对应的所有数据(不分页)
List<T> findByQuery(BaseQuery baseQuery);
//根据jpql与对应的参数拿到数据
List findByJpql(String jpql,Object... values);
}
抽取BaseServiceImpl-->实现IBaseService -->实现方法(调用repository层)
@Transactional(propagation = Propagation.SUPPORTS,readOnly = true)
public class BaseServiceImpl<T,ID extends Serializable> implements IBaseService<T,ID> {
@Autowired
private BaseRepository<T,ID> baseRepository;
@Transactional
public void save(T t) {
baseRepository.save(t);
}
@Transactional
public void delete(ID id) {
baseRepository.delete(id);
}
public T findOne(ID id) {
return baseRepository.findOne(id);
}
public List<T> findAll() {
return baseRepository.findAll();
}
public Page findPageByQuery(BaseQuery baseQuery) {
return baseRepository.findPageByQuery(baseQuery);
}
public List<T> findByQuery(BaseQuery baseQuery) {
return baseRepository.findByQuery(baseQuery);
}
public List findByJpql(String jpql, Object... values) {
return null;
}
}
4. Controller层结构--和以前一模一样
搭建springmvc环境 -- 配置文件 导包
applicationContext-mvc.xml
web.xml 配置 核心控制器 监听器 过滤器
5 引入easyui(拷贝组件)
(1)easyui 拷贝到项目里去
(2)把公共easyui的配置写到head.jsp这个文件
(3)完善 后台管理页面 的主页 main.jsp
主页 (布局 tabs 菜单)
6 高级查询和分页
@RequestMapping("/page")
@ResponseBody
public PageUi<Employee> page(EmployeeQuery employeeQuery){
//查询数据 分页查询方法
// List<Employee> employees = employeeService.findAll();
Page page = employeeService.findPageByQuery(employeeQuery);
//封装返回对象 必须要 total rows
PageUi pageUi = new PageUi(page);
return pageUi;
}
(1)employeeQuery 接收前台传递过来 参数(查询参数 以及分页的参数)
(2) 调用findPageByQuery(employeeQuery)完成高级查询和分页
Page page = employeeService.findPageByQuery(employeeQuery);
(3)封装easyui需要分页的返回对象
PageUi pageUi = new PageUi(page);
7 完成员工的数据查询(思路)
employee.jsp
添加一个datagrid
完善分页
(1)传递参数 page和 rows --后台通过BaseQuery对象
(2)返回一个PageUi这个对象,这个对象封装返回参数 total:总的条数
rows:每页的数据
8. 员工删除(思路)
删除流程:
(1) 判断是否选中表格里面的一行数据
a) 如果没有选中 提示选中一条数据
b) 如果选中
b1)提示您是否要确认删除数据,如果点击确认
取到id ,根据id 发送ajax请求,删除数据
删除完之后,重新加载表格
b2) 没有点击确认
delete:function(){
//判断是表格否选中数据
var row = employeeGrid.datagrid('getSelected');
if(row){
//选中之后,在提示是否要确认删除
$.messager.confirm('温馨提示:','亲,您忍心删除',function(result){
if(result){
//确定删除数据
//获取id
//发送ajax请求
$.get('/employee/delete',{id:row.id},function(result){
//{success:false,msg:'成功'}
if(result.success){
//重新加载数据表格
$.messager.alert('温馨提示:','操作成功','info');
employeeGrid.datagrid('reload');
}else{
$.messager.alert('温馨提示:',result.msg,'error');
}
})
}
})
}else{
$.messager.alert('温馨提示:','亲,请选中一条数据进行删除!','info');
}
}