package com.baidu.disconf.web.service.user.service.impl; import java.util.List; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Propagation; import org.springframework.transaction.annotation.Transactional; import com.baidu.disconf.web.service.sign.utils.SignUtils; import com.baidu.disconf.web.service.user.bo.User; import com.baidu.disconf.web.service.user.dao.UserDao; import com.baidu.disconf.web.service.user.dto.Visitor; import com.baidu.disconf.web.service.user.service.UserInnerMgr; import com.baidu.disconf.web.service.user.service.UserMgr; import com.baidu.disconf.web.service.user.vo.VisitorVo; import com.baidu.ub.common.commons.ThreadContext; /** * @author liaoqiqi * @version 2013-12-5 */ @Service @Transactional(propagation = Propagation.SUPPORTS, readOnly = true) public class UserMgrImpl implements UserMgr { protected static final Logger LOG = LoggerFactory.getLogger(UserMgrImpl.class); @Autowired private UserInnerMgr userInnerMgr; @Autowired private UserDao userDao; @Override public Visitor getVisitor(Long userId) { return userInnerMgr.getVisitor(userId); } @Override public VisitorVo getCurVisitor() { Visitor visitor = ThreadContext.getSessionVisitor(); if (visitor == null) { return null; } VisitorVo visitorVo = new VisitorVo(); visitorVo.setId(visitor.getId()); visitorVo.setName(visitor.getLoginUserName()); return visitorVo; } /** * 创建 */ @Override @Transactional(propagation = Propagation.REQUIRED, readOnly = false) public Long create(User user) { user = userDao.create(user); return user.getId(); } /** * */ @Override @Transactional(propagation = Propagation.REQUIRED, readOnly = false) public void create(List<User> users) { userDao.create(users); } @Override public List<User> getAll() { return userDao.findAll(); } /** * @param userId */ @Override @Transactional(propagation = Propagation.REQUIRED, readOnly = false) public String addOneAppForUser(Long userId, int appId) { User user = getUser(userId); String ownAppIds = user.getOwnApps(); if (ownAppIds.contains(",")) { ownAppIds = ownAppIds + "," + appId; } else { ownAppIds = String.valueOf(appId); } user.setOwnApps(ownAppIds); userDao.update(user); return ownAppIds; } /** * @param newPassword */ @Override public void modifyPassword(Long userId, String newPassword) { String passwordWithSalt = SignUtils.createPassword(newPassword); User user = userDao.get(userId); user.setPassword(passwordWithSalt); userDao.update(user); } /** * @param userId * * @return */ @Override public User getUser(Long userId) { return userDao.get(userId); } }