package com.han.service;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import javax.annotation.Resource;
import org.springframework.stereotype.Component;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils;
import com.googlecode.ehcache.annotations.Cacheable;
import com.googlecode.ehcache.annotations.TriggersRemove;
import com.han.common.CommonConstant;
import com.han.common.PageBean;
import com.han.dao.LoginLogDao;
import com.han.dao.UserDao;
import com.han.model.LoginLog;
import com.han.model.User;
@Component("userManager")
public class UserManager{
@Resource
private UserDao userDao;
@Resource
private LoginLogDao loginLogDao;
/**
* 将查询的所有用户放入cacheMAP
*/
@Transactional(propagation = Propagation.REQUIRED, readOnly = true)
@Cacheable(cacheName="userCache")
public int queryAllUsersMap() {
List<User> list = userDao.getAllUser();
int count = 0;
Map<Integer, User> userMap = null;
if (!CollectionUtils.isEmpty(list)) {
userMap = new HashMap<Integer, User>();
for (User user : list) {
userMap.put(user.getUserId(), user);
}
count = userMap.size();
}
return count;
}
/**
* 分页查询所有用户
* @param page 当前页
* @return 封装了分页信息的bean
*/
@Transactional(propagation = Propagation.REQUIRED, readOnly = true)
public PageBean queryAllUsers(int page) {
PageBean pageBean = new PageBean();
pageBean = userDao.getAllUserByPage(page);
return pageBean;
}
/**
* 查询用户是否存在
*/
@Transactional(propagation = Propagation.REQUIRED, readOnly = true)
public User exists(String username) throws Exception {
return userDao.getUserByName(username);
}
/**
* 新增用户
*/
@Transactional(propagation = Propagation.REQUIRED, readOnly = false)
@TriggersRemove(cacheName="userCache",removeAll=true)
public void add(User user) throws Exception {
userDao.saveUser(user);
// 记录登录日志
LoginLog loginLog = new LoginLog();
loginLog.setUserid(user.getUserId());
loginLog.setIp(user.getLastIp());
loginLog.setLoginDate(new Date());
loginLogDao.saveLoginLog(loginLog);
}
/**
* 登陆成功
*/
@Transactional(propagation = Propagation.REQUIRED, readOnly = false)
public void loginSuccess(User user) {
// 登录积分奖励
user.setCredit(CommonConstant.LOGIN_CREDIT + user.getCredit());
// 记录登录日志
LoginLog loginLog = new LoginLog();
loginLog.setUserid(user.getUserId());
loginLog.setIp(user.getLastIp());
loginLog.setLoginDate(new Date());
userDao.updateUser(user);
loginLogDao.saveLoginLog(loginLog);
}
/**
* 将用户锁定,锁定的用户不能够登录
*/
@Transactional(propagation = Propagation.REQUIRED, readOnly = false)
public void lockUser(String userName) {
User user = userDao.getUserByName(userName);
user.setLocked(CommonConstant.USER_LOCK);
userDao.updateUser(user);
}
/**
* 解除用户的锁定
*/
@Transactional(propagation = Propagation.REQUIRED, readOnly = false)
public void unlockUser(String userName) {
User user = userDao.getUserByName(userName);
user.setLocked(CommonConstant.USER_UNLOCK);
userDao.updateUser(user);
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
1)Demo 学习要点简介: 1.通过google ehcache-spring-annotatios.jar自动注解方式实现整合Spring+Ehcache。 2.Action里通过struts2-spring-plugin.jar插件自动根据名字注入。 3.Ajax无刷新异步调用Struts2,返回Json数据,以用户注册为例。 4.在服务端分页查询功能,优点:实时性:跳页才查询。数据量小:只加载当前页的记录进行显示。 5.单数据源配置(兼容Tomcat和Weblogic)。 6.Hibernate继承 HibernateDaoSupport。 7.Spring+Junit4单元测试,优点:不会破坏数据库现场,等等。 2)Demo 导入说明: 1.Eclipse Encoding:GBK 2.Eclipse 导入后可能需要在 Xml Catalog 手动添加:ehcache-spring-1.2.xsd(ehcache-spring-annotations-1.2.0-sources.jar里面有,自己找下)。 3.内附Oracle建表等可执行语句。
资源推荐
资源详情
资源评论





















收起资源包目录





































































































共 113 条
- 1
- 2
资源评论


迷之编码
- 粉丝: 1
- 资源: 14
上传资源 快速赚钱
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


安全验证
文档复制为VIP权益,开通VIP直接复制
