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
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;
|
|
}
|
|
}
|
|
|