/**
* 顾客分页列表
*
*/
@Controller("/control/user/list")
public class BuyerListAction extends Action {
@Resource(name="buyerServiceBean") BuyerService buyerService;
@Override @Permission(module="buyer",privilege="view")
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws Exception {
BuyerForm formbean = (BuyerForm)form;
PageView<Buyer> pageView = new PageView<Buyer>(10, formbean.getPage());
LinkedHashMap<String, String> orderby = new LinkedHashMap<String, String>();
orderby.put("regTime", "desc");
StringBuffer jpql = new StringBuffer("");
List<Object> params = new ArrayList<Object>();
if("true".equals(formbean.getQuery())){
if(formbean.getUsername()!=null && !"".equals(formbean.getUsername().trim())){
if(params.size()>0) jpql.append(" and ");
jpql.append("o.username=?").append(params.size()+1);
params.add(formbean.getUsername().trim());
}
if(formbean.getEmail()!=null && !"".equals(formbean.getEmail().trim())){
if(params.size()>0) jpql.append(" and ");
jpql.append(" o.email like ?").append(params.size()+1);
params.add("%"+ formbean.getEmail().trim()+ "%");
}
if(formbean.getRealname()!=null && !"".equals(formbean.getRealname().trim())){
if(params.size()>0) jpql.append(" and ");
jpql.append(" o.realname like ?").append(params.size()+1);
params.add("%"+ formbean.getRealname().trim()+ "%");
}
}
pageView.setQueryResult(
buyerService.getScrollData(pageView.getFirstResult(), pageView.getMaxresult()
, jpql.toString(), params.toArray(), orderby)
);
request.setAttribute("pageView", pageView);
return mapping.findForward("list");
}
}
-----------------------------------------------------------------------
/**
* 用户退出登录状态
*
*/
@Controller("/user/logout")
public class BuyerLogoutAction extends Action {
@Override
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws Exception {
request.getSession().removeAttribute("user");
return mapping.findForward("logon");
}
}
---------------------------------------------------------------------
/**
* 顾客管理
*
*/
@Controller("/control/user/manage")
public class BuyerManageAction extends DispatchAction {
@Resource(name="buyerServiceBean") BuyerService buyerService;
/**
* 启用
*/
@Permission(module="buyer",privilege="enable")
public ActionForward enable(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws Exception {
BuyerForm formbean = (BuyerForm) form;
buyerService.enable((Serializable[])formbean.getUsernames());
request.setAttribute("message", "启用成功");
request.setAttribute("urladdress", SiteUrl.readUrl("control.user.list"));
return mapping.findForward("message");
}
/**
* 禁用
*/
@Permission(module="buyer",privilege="delete")
public ActionForward delete(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws Exception {
BuyerForm formbean = (BuyerForm) form;
buyerService.delete((Serializable[])formbean.getUsernames());
request.setAttribute("message", "禁用成功");
request.setAttribute("urladdress", SiteUrl.readUrl("control.user.list"));
return mapping.findForward("message");
}
}
--------------------------------------------------------------------------------
@Controller("/user/logon")
public class LogonAction extends Action {
@Resource(name="buyerServiceBean") BuyerService buyerService;
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws Exception {
BuyerForm formbean = (BuyerForm) form;
if(formbean.getUsername()!=null && !"".equals(formbean.getUsername().trim())
&& formbean.getPassword()!=null && !"".equals(formbean.getPassword().trim())){
if(buyerService.checkUser(formbean.getUsername().trim(), formbean.getPassword().trim())){
request.getSession().setAttribute("user", buyerService.find(formbean.getUsername().trim()));
String url = "/customer/shopping/deliver.do";
if(formbean.getDirectUrl()!=null){
url = formbean.getDirectUrl();
}
request.setAttribute("directUrl", url);
return mapping.findForward("directUrl");
}
request.setAttribute("message", "用户名或密码有误");
}
return mapping.findForward("logon");
}
}
---------------------------------------------------------------------------------
@Controller("/user/reg")
public class RegActon extends DispatchAction {
@Resource(name="buyerServiceBean") BuyerService buyerService;
public ActionForward regUI(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws Exception {
return mapping.findForward("reg");
}
public ActionForward reg(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws Exception {
BuyerForm formbean = (BuyerForm) form;
if(!buyerService.exsit(formbean.getUsername())){
Buyer buyer = new Buyer(formbean.getUsername(),formbean.getPassword(), formbean.getEmail());
buyerService.save(buyer);
request.getSession().setAttribute("user", buyer);
request.setAttribute("message", "用户注册成功");
String url = "/customer/shopping/deliver.do";
if(formbean.getDirectUrl()!=null){
url = formbean.getDirectUrl();
}
request.setAttribute("urladdress", url);
return mapping.findForward("message");
}else{
request.setAttribute("message", "用户已经存在");
return mapping.findForward("reg");
}
}
public ActionForward isUserExsit(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws Exception {
BuyerForm formbean = (BuyerForm) form;
if(buyerService.exsit(formbean.getUsername())){
request.setAttribute("message", "用户已经存在");
}else{
request.setAttribute("message", "用户可以使用");
}
return mapping.findForward("checkuser");
}
}
--------------------------------------------------------------------------------------
@Controller("/user/post")
public class UpdatePasswordAction extends DispatchAction {
@Resource BuyerService buyerService;
/**
* 发送密码修改邮件
*/
public ActionForward getpassword(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws Exception {
BuyerForm formbean = (BuyerForm)form;
if(formbean.getUsername()!=null){
Buyer buyer = buyerService.find(formbean.getUsername().trim());
if(buyer!=null){
try{
String validateCode = MD5.MD5Encode(buyer.getUsername()+ buyer.getPassword());
VelocityContext context = new VelocityContext();
context.put("username", buyer.getUsername());
context.put("validateCode", validateCode);
Template template = Velocity.getTemplate("mailContent.vm");
StringWriter sw = new StringWriter();
template.merge(context, sw);
sw.flush();
String mail = sw.toString();//邮件内容
EmailSender.send(buyer.getEmail(), "巴巴运动网--找回密码", mail, "text/html");
return mapping.findForward("info");
}catch( Exception e ){
e.printStackTrace();
}
}
}
request.setAttribute("message", "用户名不存在");
return mapping.findForward("inputusername");
}
/**
* 显示密码修改界面
*/
public ActionForward update(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws Exception {
BuyerForm formbean = (BuyerForm)form;
if(formbean.getUsername()!=null){
Buyer buyer = buyerService.find(formbean.getUsername().trim());
if(buyer!=null){
String validateCode = MD5.MD5Encode(buyer.getUsername()+ buyer.getPassword());
if(validateCode.equals(formbean.getValidateCode())){
return mapping.findForward("inputpassword");
}
}
}
return mapping.findForward("errorresult");//来源不合法
}
/**
* 修改密码
*/
public ActionForward changepassword(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws Exception {
BuyerForm formbean = (BuyerForm)form;
if(formbean.getUsername()!=null){
Buyer buyer = buyerService.find(formbean.getUsername().trim());
if(buyer!=null){
String validateCode = MD5.MD5Encode(buyer.getUsername()+ buyer.getPassword());
if(validateCode.equals(formbean.getValidateCode())){
buyerService.updatePassword(buyer.getUsername(), formbean.getPassword());
request.setAttribute("message", "密码修改成功");
request.setAttribute("urladdress", "/user/logon.do");
return mapping.findForward("message");
}
}
}
return mapping.findForward("errorresult");//来源不合法
}
}
------------------------------------------------------------------------------
public class EmailSender {
private static final String charset = "GBK";
private static final String defaultMimetype = "text/plain";
public static void main(String[] args) throws Exception {
EmailSender.send(new String[]{"lhm@itcast.cn"}, "邮件测试xx", "<b>传智播客</b>",null , "text/html");
}
/**
* 发送邮件
* @param receiver 收件人
* @param subject 标题
* @param mailContent 邮件内容
* @param mimetype 内容类型 默认为text/plain,如果要发送HTML内容,应设置为text/html
*/
public static void send(String receiver, String subject, String mailContent, String mimetype) {
send(new String[]{receiver}, subject, mailContent, mimetype);
}
/**
* 发送邮件
* @param receivers 收件人
* @param subject 标题
* @param mailContent 邮件内容
* @param mimetype 内容类型 默认为text/plain,如果要发送HTML内容,应设置为text/html
*/
public static void send(String[] receivers, String subject, String mailContent, String mimetype) {
send(receivers, subject, mailContent, null, mimetype);
}
/**
* 发送邮件
* @param receivers 收件人
* @param subject 标题
* @param mailContent 邮件内容
* @param attachements 附件
* @param mimetype 内容类型 默认为text/plain,如果要发送HTML内容,应设置为text/html
*/
public static void send(String[] receivers, String subject, String mailContent, File[] attachements, String mimetype) {
Properties props = new Properties();
props.put("mail.smtp.host", "mail.itcast.cn");//smtp服务器地址,sohu smtp
props.put("mail.smtp.auth", "true");//需要校验
Session session = Session.getDefaultInstance(props, new Authenticator() {
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication("job@itcast.cn","lihuoming");//登录用户名/密码
}
});
session.setDebug(true);
try {
MimeMessage mimeMessage = new MimeMessage(session);
mimeMessage.setFrom(new InternetAddress("job@itcast.cn"));//发件人邮件
InternetAddress[] toAddress = new InternetAddress[receivers.length];
for (int i=0; i<receivers.length; i++) {
toAddress[i] = new InternetAddress(receivers[i]);
}
mimeMessage.setRecipients(Message.RecipientType.TO, toAddress);//收件人邮件
mimeMessage.setSubject(subject, charset);
Multipart multipart = new MimeMultipart();
//正文
MimeBodyPart body = new MimeBodyPart();
// body.setText(message, charset);不支持html
body.setContent(mailContent, (mimetype!=null && !"".equals(mimetype) ? mimetype : defaultMimetype)+ ";charset="+ charset);
multipart.addBodyPart(body);//发件内容
//附件
if(attachements!=null){
for (File attachement : attachements) {
MimeBodyPart attache = new MimeBodyPart();
//ByteArrayDataSource bads = new ByteArrayDataSource(byte[],"application/x-any");
attache.setDataHandler(new DataHandler(new FileDataSource(attachement)));
String fileName = getLastName(attachement.getName());
attache.setFileName(MimeUtility.encodeText(fileName, charset, null));
multipart.addBodyPart(attache);
}
}
mimeMessage.setContent(multipart);
SimpleDateFormat formcat = new SimpleDateFormat("yyyy-MM-dd");
mimeMessage.setSentDate(formcat.parse("2010-7-23"));//
Transport.send(mimeMessage);
} catch (Exception e) {
e.printStackTrace();
}
}
private static String getLastName(String fileName) {
int pos = fileName.lastIndexOf("//");
if (pos > -1) {
fileName = fileName.substring(pos + 1);
}
pos = fileName.lastIndexOf("/");
if (pos > -1) {
fileName = fileName.substring(pos + 1);
}
return fileName;
}
}