CRM客户关系管理系统开发第十二讲——实现联系人管理模块中删除联系人的功能

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/yerenyuan_pku/article/details/102085622

修改联系人列表页面上的链接地址

在这里插入图片描述

编写web层

首先,我们要在LinkManAction类中编写一个删除联系人的方法。删除联系人时,我们一定得先查询再删除。
在这里插入图片描述
然后,我们还得在Struts2配置文件中(即struts.xml)对LinkManAction进行如下的配置,即删除联系人成功后,直接重定向到联系人列表展示页面中。
在这里插入图片描述

编写service层

首先,在LinkManService接口中添加一个根据联系人ID查询联系人的方法声明和一个删除联系人的方法声明,如下:

package com.meimeixia.crm.service;

import org.hibernate.criterion.DetachedCriteria;

import com.meimeixia.crm.domain.LinkMan;
import com.meimeixia.crm.domain.PageBean;

/**
 * 联系人的业务层的接口
 * @author liayun
 *
 */
public interface LinkManService {

	PageBean<LinkMan> findAll(DetachedCriteria detachedCriteria, Integer currentPage, Integer pageSize);

	void save(LinkMan linkMan);

	LinkMan findById(Long lkm_id);

	void delete(LinkMan linkMan);

}

然后,在以上接口的一个实现类(LinkManServiceImpl.java)中去实现上面两个方法。

package com.meimeixia.crm.service.impl;

import java.util.List;

import org.hibernate.criterion.DetachedCriteria;
import org.springframework.transaction.annotation.Transactional;

import com.meimeixia.crm.dao.LinkManDao;
import com.meimeixia.crm.domain.LinkMan;
import com.meimeixia.crm.domain.PageBean;
import com.meimeixia.crm.service.LinkManService;

/**
 * 联系人的业务层的实现类
 * @author liayun
 *
 */
@Transactional
public class LinkManServiceImpl implements LinkManService {
	
	//注入dao
	private LinkManDao linkManDao;

	public void setLinkManDao(LinkManDao linkManDao) {
		this.linkManDao = linkManDao;
	}

	//业务层来分页查询联系人的方法
	@Override
	public PageBean<LinkMan> findAll(DetachedCriteria detachedCriteria, Integer currentPage, Integer pageSize) {
		PageBean<LinkMan> pageBean = new PageBean<LinkMan>();
		//设置当前页数
		pageBean.setCurrentPage(currentPage);
		//设置每页显示的记录数
		pageBean.setPageSize(pageSize);
		//设置总记录数
		Integer totalCount = linkManDao.findCount(detachedCriteria);
		pageBean.setTotalCount(totalCount);
		//设置总页数
		double tc = totalCount;
		Double num = Math.ceil(tc / pageSize);
		pageBean.setTotalPage(num.intValue());
		//设置每页显示数据的集合
		Integer begin = (currentPage - 1) * pageSize;
		List<LinkMan> list = linkManDao.findByPage(detachedCriteria, begin, pageSize);
		pageBean.setList(list);
		return pageBean;
	}

	//业务层保存联系人的方法
	@Override
	public void save(LinkMan linkMan) {
		linkManDao.save(linkMan);
	}

	//业务层根据id去查询联系人的方法
	@Override
	public LinkMan findById(Long lkm_id) {
		return linkManDao.findById(lkm_id);
	}

	//业务层删除联系人的方法
	@Override
	public void delete(LinkMan linkMan) {
		linkManDao.delete(linkMan);
	}

}

编写dao层

首先,在LinkManDao接口中添加一个根据联系人ID查询联系人的方法声明和一个删除联系人的方法声明,如下:

package com.meimeixia.crm.dao;

import java.util.List;

import org.hibernate.criterion.DetachedCriteria;

import com.meimeixia.crm.domain.LinkMan;

/**
 * 联系人的dao的接口
 * @author liayun
 *
 */
public interface LinkManDao {

	Integer findCount(DetachedCriteria detachedCriteria);

	List<LinkMan> findByPage(DetachedCriteria detachedCriteria, Integer begin, Integer pageSize);

	void save(LinkMan linkMan);

	LinkMan findById(Long lkm_id);

	void delete(LinkMan linkMan);

}

然后,在以上接口的一个实现类(LinkManDaoImpl.java)中去实现上面的两个方法。

package com.meimeixia.crm.dao.impl;

import java.util.List;

import org.hibernate.criterion.DetachedCriteria;
import org.hibernate.criterion.Projections;
import org.springframework.orm.hibernate5.support.HibernateDaoSupport;

import com.meimeixia.crm.dao.LinkManDao;
import com.meimeixia.crm.domain.LinkMan;

/**
 * 联系人的dao的实现类
 * @author liayun
 *
 */
public class LinkManDaoImpl extends HibernateDaoSupport implements LinkManDao {

	//dao中统计个数的方法
	@Override
	public Integer findCount(DetachedCriteria detachedCriteria) {
		detachedCriteria.setProjection(Projections.rowCount());
		List<Long> list = (List<Long>) this.getHibernateTemplate().findByCriteria(detachedCriteria);
		if (list.size() > 0) {
			return list.get(0).intValue();
		}
		return null;
	}

	//dao中分页查询联系人的方法
	@Override
	public List<LinkMan> findByPage(DetachedCriteria detachedCriteria, Integer begin, Integer pageSize) {
		//首先要把count(*)语句给清空掉
		detachedCriteria.setProjection(null);
		List<LinkMan> list = (List<LinkMan>) this.getHibernateTemplate().findByCriteria(detachedCriteria, begin, pageSize);
		return list;
	}

	//dao中保存联系人的方法
	@Override
	public void save(LinkMan linkMan) {
		this.getHibernateTemplate().save(linkMan);
	}

	//dao中根据id去查询联系人的方法
	@Override
	public LinkMan findById(Long lkm_id) {
		return this.getHibernateTemplate().get(LinkMan.class, lkm_id);
	}
	
	//dao中删除联系人的方法
	@Override
	public void delete(LinkMan linkMan) {
		this.getHibernateTemplate().delete(linkMan);
	}

}

至此,联系人管理模块中删除联系人的功能,我们就已经实现了,至于测试的话,我就不再这里测试了(偷懒了),反正是好使的!

猜你喜欢

转载自blog.csdn.net/yerenyuan_pku/article/details/102085622
今日推荐