package com.xiaozhi.blog.service;
import java.util.List;
import com.google.code.ssm.api.InvalidateSingleCache;
import com.google.code.ssm.api.ParameterValueKeyProvider;
import com.google.code.ssm.api.ReadThroughSingleCache;
import com.xiaozhi.blog.formbean.UserForm;
import com.xiaozhi.blog.mongo.MongoUserDao;
import com.xiaozhi.blog.redis.UserIndexDao;
import com.xiaozhi.blog.utils.ListPage;
import com.xiaozhi.blog.vo.Range;
import com.xiaozhi.blog.vo.User;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import solr.index.UserIndexData;
@Service
public class UserService {
private static Log logger = LogFactory.getLog(UserService.class);
@Autowired
private MongoUserDao mongoUserDao;
@Autowired
private UserIndexDao userIndexDao;
public boolean addUser(User user) {
return this.mongoUserDao.addUser(user);
}
/**
* 编辑用户信息
* @param user
* @param company
* @param school
* @return
*/
// @InvalidateSingleCache(namespace = "_user_test_")
// public boolean editUser(@ParameterValueKeyProvider final String uid,final UserForm userForm) {
//
// return this.retwisRepository.editUser(uid, userForm);
// }
/**
* 编辑用户信息
* @param user
* @param company
* @param school
* @return
*/
public boolean editUser(final String uid,final UserForm userForm) {
return this.mongoUserDao.editUser(uid, userForm);
}
/**
* 保存weibo头像
* @param url
* @param uid
* @return
*/
public boolean editPortrait(String url,String uid){
return this.mongoUserDao.editPortrait(url, uid);
}
/**
* 获取用户
* @param user
* @return
*/
// @ReadThroughSingleCache(namespace="_user_test_",expiration=3600)
// public User getUserById(@ParameterValueKeyProvider String uid) {
// if(logger.isDebugEnabled()){
// logger.debug("==================================getUserById excute!!");
// }
// return this.retwisRepository.getUserById(uid);
// }
/**
* 获取用户
* @param user
* @return
*/
public User getUserById(String uid) {
return this.mongoUserDao.getUserById(uid);
}
/**
* 获取系统所有用户列表
* @return
*/
public ListPage<UserIndexData> getGlobalUsers(Integer page,Integer pagesize){
int firstResult = (page-1)*pagesize;
int lastResult = firstResult+pagesize-1;
int allResults = this.userIndexDao.getGlobalUsersNum();
List<UserIndexData> blogs=this.userIndexDao.getGlobalUsers(new Range(firstResult,lastResult));
return new ListPage<UserIndexData>(blogs, firstResult, lastResult, allResults);
}
/**
* 用户名是否重复
* @param name
* @return
*/
public boolean isNameDuplicate(String name){
return this.mongoUserDao.isNameDuplicate(name);
}
/**
* 用户昵称是否重复
* @param nickname
* @return
*/
public boolean isNickNameDuplicate(String nickname){
return this.mongoUserDao.isNickNameDuplicate(nickname);
}
}