package com.withiter.models.admin;
import japidviews._javatags.I18nKeys;
import java.util.List;
import play.data.validation.Validation;
import play.i18n.Messages;
import play.libs.Codec;
import play.modules.morphia.Model.MorphiaQuery;
import play.modules.morphia.Model.NoAutoTimestamp;
import com.google.code.morphia.annotations.Entity;
import com.withiter.models.account.Account;
@Entity
@NoAutoTimestamp
public class MerchantAccount extends MerchantAccountEntityDef {
/**
* Find Account object by email.
*
* @param email
* @return
*/
public static MerchantAccount findByEmail(String email) {
MerchantAccount account = MerchantAccount.q().filter("email", email).first();
if (account == null) {
return null;
}
return account;
}
/**
* 分页查询,每页十条数据。
* @param page 第page页
* @param countPerPage 每页的记录数
* @return
*/
public static List<MerchantAccount> findNext(int page, int countPerPage) {
MorphiaQuery q = MerchantAccount.q();
q.offset((page-1)*countPerPage).limit(countPerPage);
return q.asList();
}
/**
* validate user name and password for login function
*
* @param userName
* @param userPwd
* @return if return null, means pass validation. otherwise, the returned
* value is the error content.
*/
public static String validate(String email, String password) {
Validation.required("Email不能为空", email);
Validation.range("Email长度在6-20", email.length(),
6, 20);
Validation.required("密码不能为空", password);
Validation.range("密码长度在6-20", password.length(),
6, 20);
Validation.email("Email格式不正确", email);
if (Validation.hasErrors()) {
return Validation.errors().get(0).toString();
}
String passwordHexed = Codec.hexSHA1(password);
MorphiaQuery q = MerchantAccount.q();
q.filter("email", email);
if(q.first() == null){
return "此账号不存在";
}
q.filter("password", passwordHexed);
if (q.first() != null) {
MerchantAccount a = q.first();
if (a.enable) {
return null;
} else {
return "账号还未激活,请进入邮箱进行激活";
}
} else {
return "账号密码错误!";
}
}
/**
* Validate the password
*
* @param password
* @return true if the password is right
*/
public boolean validatePassword(String password) {
boolean flag = false;
String hexedPwd = Codec.hexSHA1(password);
if (this.password.equals(hexedPwd)) {
flag = true;
}
return flag;
}
/**
* @author Cross
* @param account
* @param newpassword
*/
public static void updatePassword(MerchantAccount account, String newpassword) {
account.password = Codec.hexSHA1(newpassword);
account.save();
}
public static int totalSize() {
MorphiaQuery q = MerchantAccount.q();
return (int)q.count();
}
}