You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

77 lines
2.8 KiB

package com.community.pocket.repository;
import com.community.pocket.entity.po.Manager;
import com.community.pocket.entity.vo.web.ManagerLogin;
import com.community.pocket.entity.vo.web.ManagerResetPwd;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.data.mongodb.core.query.Criteria;
import org.springframework.data.mongodb.core.query.Query;
import org.springframework.data.mongodb.core.query.Update;
import org.springframework.stereotype.Repository;
import org.springframework.util.DigestUtils;
/**
* 管理员接口
*/
@Repository
public class ManagerDao extends BaseDao<Manager>{
private static final Logger LOG = LoggerFactory.getLogger(ManagerDao.class);
// 登陆
public boolean login(ManagerLogin managerLogin){
// 构造查询管理员条件
Criteria criteria=Criteria.where("managerName").is(managerLogin.getManagerName());
try {
// 查询管理员
Manager manager= mongoTemplate.findOne(new Query(criteria), entityClass());
//查询出来的管理员非空,并且管理员名和MD5(密码)匹配返回true
return manager!=null&&manager.getManagerName().equals(managerLogin.getManagerName())&&manager.getPassword().equals(DigestUtils.md5DigestAsHex(managerLogin.getPassword().getBytes()));
} catch (Exception e) {
return false;
}
}
//查询管理员名字是否已经注册
public boolean hasUser(String name){
try {
Manager manager=mongoTemplate.findOne(new Query(Criteria.where("managerName").is(name)),entityClass());
//非空返回true
return manager!=null;
} catch (Exception e) {
return false;
}
}
// 保存管理员注册信息
@Override
public Manager save(Manager manager) {
try {
return mongoTemplate.save(manager);
} catch (Exception e) {
e.printStackTrace();
LOG.error(e.toString());
}
return null;
}
//检查账号邮箱是否匹配
public boolean checkUserWithEmail(ManagerResetPwd managerResetPwd) {
return mongoTemplate.exists(new Query(Criteria.where("managerName").is(managerResetPwd.getManagerName()).and("email").is(managerResetPwd.getEmail())), entityClass());
}
//重置密码
public boolean resetpwd(ManagerResetPwd managerResetPwd) {
String md5password = DigestUtils.md5DigestAsHex(managerResetPwd.getPassword().getBytes());
return mongoTemplate.updateFirst(new Query(Criteria.where("managerName").is(managerResetPwd.getManagerName())), Update.update("password", md5password), entityClass()).wasAcknowledged();
}
@Override
public Class<Manager> entityClass() {
return Manager.class;
}
}