package cn.itcast.web.action;
import java.util.List;
import org.apache.commons.lang3.StringUtils;
import org.apache.struts2.convention.annotation.Action;
import org.apache.struts2.convention.annotation.Namespace;
import org.apache.struts2.convention.annotation.ParentPackage;
import org.apache.struts2.convention.annotation.Result;
import org.apache.struts2.convention.annotation.Results;
import org.hibernate.criterion.DetachedCriteria;
import org.hibernate.criterion.Restrictions;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Controller;
import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport;
import com.opensymphony.xwork2.ModelDriven;
import cn.itcast.entity.Customer;
import cn.itcast.entity.LinkMan;
import cn.itcast.service.ICustomerService;
import cn.itcast.service.ILinkManService;
import cn.itcast.web.com.Page;
/*
* 联系人动作类
*/
@Controller("linkmanAction")
@Scope(value="prototype")
@ParentPackage("struts-default")
@Namespace("/linkman")
//全局视图
@Results({
@Result(name="success" ,type="redirect",location="/jsp/success.jsp")
})
public class LinkManAction extends ActionSupport implements ModelDriven<LinkMan> {
//当前页数
private String num;
public String getNum() {
return num;
}
public void setNum(String num) {
this.num = num;
}
@Action(value="findAllLinkman",results= {
@Result(name="findAllLinkman",type="dispatcher",location="/jsp/linkman/list.jsp")
})
public String findAllLinkman() {
//离线查询
DetachedCriteria dc = DetachedCriteria.forClass(LinkMan.class);
//封装页面的查询条件:数据都在模型中
/*if(linkman.getLkmName()!=null && linkman.getLkmName().length()>0) {
}*/
//判断名称
if(StringUtils.isNotBlank(linkMan.getLkmName())) {
dc.add(Restrictions.like("lkmName", "%"+linkMan.getLkmName()+"%"));
}
//备注
if(StringUtils.isNotBlank(linkMan.getLkmMemo())) {
dc.add(Restrictions.like("lkmMemo", "%"+linkMan.getLkmMemo()+"%"));
}
//性别
if(StringUtils.isNotBlank(linkMan.getLkmGender())) {
dc.add(Restrictions.eq("lkmGender", linkMan.getLkmGender()));
}
//所属客户
if(linkMan.getCustomer()!=null && linkMan.getCustomer().getCustId()!=null) {
dc.add(Restrictions.eq("customer.custId", linkMan.getCustomer().getCustId()));
}
//调用service查询
Page page = linkmanService.findAllLinkman(dc,num);
//压栈
ActionContext.getContext().getValueStack().push(page);
//跳转页面
//查询出客户列表
customers = customerService.findAllCustomer();
return "findAllLinkman";
}
//===============================================================
/*
* 修改
*/
@Action(value="editLinkMan")
public String editLinkMan() {
linkmanService.updateLinkman(linkMan);
return SUCCESS;
}
//===============================================================
/*
* 跳转修改页面
*/
@Action(value="editLinkManUI",results= {
@Result(name="editLinkManUI",type="dispatcher",location="/jsp/linkman/edit.jsp")
})
public String editLinkManUI() {
//根据页面传过来的lkmId获取联系人
LinkMan dbLinkman = linkmanService.findLinkmanById(linkMan.getLkmId());
//获取值栈对象,压栈
ActionContext.getContext().getValueStack().push(dbLinkman);
//跳转到页面
//查询出客户列表
customers = customerService.findAllCustomer();
return "editLinkManUI";
}
//===================================================================
/*
* 删除联系人
*/
@Action(value="removeLinkman",results= {
@Result(name="removeLinkman",type="redirectAction",location="listLinkMan")
})
public String removeLinkman() {
linkmanService.removeLinkman(linkMan);
return "removeLinkman";
}
//==============================================================================
private List<LinkMan> linkmans;
public List<LinkMan> getLinkmans() {
return linkmans;
}
public void setLinkmans(List<LinkMan> linkmans) {
this.linkmans = linkmans;
}
/*
* 联系人列表
*/
@Action(value="listLinkMan",results= {
@Result(name="listLinkMan",type="dispatcher",location="/jsp/linkman/list.jsp")
})
public String listLinkMan() {
//离线查询
DetachedCriteria dc=DetachedCriteria.forClass(LinkMan.class);//相当于HQL:from LinkMan
linkmans=linkmanService.listLinkMan(dc);
return "listLinkMan";
}
//==============================================================================
/*
* 添加联系人
*/
@Action(value="addLinkMan")
public String addLinkMan() {
linkmanService.addLinkMan(linkMan);
//System.out.println(linkMan);
return SUCCESS;
}
//===============================================================================
/**
* 跳转到新增联系人的页面
* @return
*/
private List<Customer> customers;
@Action(value="addLinkManUI",results= {
@Result(name="addLinkManUI",type="dispatcher",location="/jsp/linkman/add.jsp")
})
public String addLinkManUI() {
//查询出客户列表
customers = customerService.findAllCustomer();
//跳转页面
return "addLinkManUI";
}
public List<Customer> getCustomers() {
return customers;
}
public void setCustomers(List<Customer> customers) {
this.customers = customers;
}
//===============================================================================
/*
* 封装请求参数
*/
private LinkMan linkMan=new LinkMan();
@Override
public LinkMan getModel() {
return linkMan;
}
//注入ILinkManService
@Autowired
private ILinkManService linkmanService;
@Autowired
private ICustomerService customerService;
}