com.us.bo.UserBo.java Source code

Java tutorial

Introduction

Here is the source code for com.us.bo.UserBo.java

Source

/*
 * @(#)UserBo.java 2011-10-16
 * ?us??  2008-2011, Inc. All rights reserved.
 * s.server. Use is subject to license terms.
 */

package com.us.bo;

import java.util.List;
import java.util.Map;

import lombok.Setter;

import org.apache.commons.io.FileUtils;
import org.hibernate.criterion.DetachedCriteria;
import org.springframework.stereotype.Repository;
import org.springframework.util.ResourceUtils;

import com.us.action.app.AddProfile;
import com.us.dao.UserDao;
import com.us.model.Email;
import com.us.model.Page;
import com.us.model.PageArgs;
import com.us.util.FtlUtil;
import com.us.util.HashUtil;
import com.us.util.MapHelper;
import com.us.util.SecurityUtil;
import com.us.util.StringUtil;
import com.us.vo.User;

/**
 * Bo
 * 
 * @author <a href="mailto:monlyu.hong@gmail.com">monlyu</a>
 * @version --0.0.0--, 2011-10-16
 * @since JDK6.0
 */
@Repository("userBo")
public class UserBo extends Bo {

    @Setter
    private MailBo mailBo;
    @Setter
    private UserDao userDao;

    public void sendMail(User user) {
        try {
            Map<String, Object> data = MapHelper.hashMap();
            data.put("userName", user.getLoginID());
            data.put("usermail", user.getMail());
            String path = "http://127.0.0.1:10000/img/app/AddProfile.do?name=%s&mail=%s&active=%s";
            data.put("url", String.format(path, user.getLoginID(), user.getMail(),
                    HashUtil.hashAll(user.getLoginID(), user.getMail())));
            String reader = FileUtils.readFileToString(ResourceUtils.getFile("classpath:/ftls/mails/newUser.html"));
            String mailContent = FtlUtil.render2Str(data, reader);
            Email email = Email.newMail(user.getMail(), "chongqinghxh@163.com", "?", mailContent);
            mailBo.send(email);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    // ?
    public Page<User> findUsers(PageArgs args) {
        DetachedCriteria criteria = create(User.class);
        return getPage(criteria, args);
    }

    // ?
    public void saveUser(Object sessionKey, String password) {
        List<String> infos = StringUtil.splitKillNull4List(sessionKey.toString(), AddProfile.SPLITOR);

        // 
        User user = new User();
        user.setName(infos.get(1));
        user.setMail(infos.get(2));
        user.setPasswd(password);
        userDao.inserOrUpdata(user);
        // +??
    }

    /**
     *  ?
     * 
     * @param mail ?
     */
    public boolean hasExistMail(String mail) {
        return !find(User.class, "mail", mail).isEmpty();
    }

    // ?
    public User updateUserPassword(Long logonUserId, String passwd) {
        User u = get(User.class, logonUserId);
        u.setPasswd(SecurityUtil.defaults(passwd));
        userDao.inserOrUpdata(u);
        return u;
    }

    public User updateUserMail(Long logonUserId, String mail) {
        User u = get(User.class, logonUserId);
        u.setMail(mail);
        userDao.inserOrUpdata(u);
        return u;
    }
}