?? memberserviceimpl.java
字號:
package com.briup.run.service.impl;
import java.sql.Timestamp;
import java.util.Calendar;
import java.util.Date;
import java.util.List;
import com.briup.run.common.exception.MemberServiceException;
import com.briup.run.common.transaction.HibernateTransaction;
import com.briup.run.common.transaction.Transaction;
import com.briup.run.common.util.BeanFactory;
import com.briup.run.common.util.MD5;
import com.briup.run.common.util.RandomChar;
import com.briup.run.dao.IMemberDao;
import com.briup.run.dao.bean.GradeRecord;
import com.briup.run.dao.bean.MemberInfo;
import com.briup.run.dao.bean.PointAction;
import com.briup.run.dao.bean.PointRecord;
import com.briup.run.dao.bean.Province;
import com.briup.run.service.IMemberService;
public class MemberServiceImpl implements IMemberService {
@SuppressWarnings("unchecked")
public List findMembersBynum(int num) throws MemberServiceException {
IMemberDao memberDao = (IMemberDao) BeanFactory.getBean("memberDao");
try {
return memberDao.findMembersByNum(num);
} catch (Exception e) {
e.printStackTrace();
// throw new MemberServiceException(e.getMessage());
throw new MemberServiceException(e.getMessage(), e.getCause());
}
}
public String findNewPassword(String loginname, String question,
String answer) throws MemberServiceException {
String newPassword = null;
IMemberDao memberDao = (IMemberDao) BeanFactory.getBean("memberDao");
HibernateTransaction tran = new HibernateTransaction();
tran.beginTransaction();
try {
MemberInfo info = memberDao.findMemberByNickName(loginname);
if (info != null) {
if (question.endsWith(info.getPasswdQuestion())) {
if (answer.endsWith(info.getPasswdAnswer())) {
newPassword = RandomChar.getChars(4, 6);
info.setPassword(MD5.getMD5Str(newPassword));
tran.commit();
return newPassword;
}
throw new MemberServiceException("錕揭伙拷錕斤拷錕斤拷錕斤拷示錕斤拷錕斤拷鳶覆錕斤拷錕餃?");
}
throw new MemberServiceException("錕揭伙拷錕斤拷錕斤拷錕斤拷示錕斤拷錕解不錕斤拷確");
}
throw new MemberServiceException("錕矯伙拷錕斤拷錕斤拷錕?");
} catch (Exception e) {
tran.rollback();
throw new MemberServiceException(e.getMessage());
}
}
public Integer findOnlineMemberinfo() throws MemberServiceException {
IMemberDao memberDao = (IMemberDao) BeanFactory.getBean("memberDao");
try {
Integer num = memberDao.findOnlineMemberInfo();
return num;
} catch (Exception e) {
e.printStackTrace();
throw new MemberServiceException(e.getMessage());
}
}
public void logout(String loginname) throws MemberServiceException {
IMemberDao memberDao = (IMemberDao) BeanFactory.getBean("memberDao");
HibernateTransaction tran = new HibernateTransaction();
tran.beginTransaction();
try {
MemberInfo info = memberDao.findMemberByNickName(loginname);
info.setIsOnline(0l);
tran.commit();
} catch (Exception e) {
e.printStackTrace();
tran.rollback();
}
}
@SuppressWarnings("unchecked")
public List matchFriends(String age, String gender, String provincecity,
int start, int end) throws MemberServiceException {
IMemberDao memberDao = (IMemberDao) BeanFactory.getBean("memberDao");
Long minAge = null;
Long maxAge = null;
List friends = null;
if (!age.equals("unlimited")) {
minAge = Long.parseLong(age) * 10;
maxAge = minAge + 9;
}
if (gender.equals("unlimited")) {
gender = null;
}
if (provincecity.equals("unlimited")) {
provincecity = null;
}
Transaction transaction = new HibernateTransaction();
transaction.beginTransaction();
try {
friends = memberDao.getMembersByConditions(minAge, maxAge, gender,
provincecity, start, end);
} catch (Exception e) {
e.printStackTrace();
throw new MemberServiceException(e.getMessage(), e);
}
return friends;
}
public void updateOnlineStatus() throws MemberServiceException {
IMemberDao memberDao = (IMemberDao) BeanFactory.getBean("memberDao");
HibernateTransaction tran = new HibernateTransaction();
tran.beginTransaction();
try {
memberDao.updateOnlineStatus();
tran.commit();
} catch (Exception e) {
e.printStackTrace();
tran.rollback();
}
}
public MemberInfo findMemberinfoBynickname(String nickname)
throws MemberServiceException {
IMemberDao memberDao = (IMemberDao) BeanFactory.getBean("memberDao");
try {
MemberInfo info = memberDao.findMemberByNickName(nickname);
return info;
} catch (Exception e) {
e.printStackTrace();
throw new MemberServiceException(e.getMessage());
}
}
public MemberInfo login(String loginname, String password)
throws MemberServiceException {
MemberInfo info = null;
PointAction action = null;
Transaction tran = new HibernateTransaction();
tran.beginTransaction();
IMemberDao memberDao = (IMemberDao) BeanFactory.getBean("memberDao");
try {
info = memberDao.findMemberByNickName(loginname);
if (info == null) {
throw new MemberServiceException("the use is not exist");
}
if (info.getIsOnline() != null && info.getIsOnline() == 1) {
throw new MemberServiceException("The user have been online");
}
if (info.getStatus() != null && info.getStatus() == 1) {
throw new MemberServiceException("The user have been ticked out");
}
if (!info.getPassword().equals(MD5.getMD5Str(password))) {
throw new MemberServiceException("The password is not right");
}
info.setLastLoginDate(info.getLatestDate());
if (info.getLatestDate() == null
|| !isSameDate(info.getLatestDate())) {
try {
action = memberDao.findPointActionByName("LOGIN");
} catch (Exception e) {
throw new MemberServiceException("Can not get the pointaction by the name");
}
info.setPoint(info.getPoint() + action.getPoint());
PointRecord record = new PointRecord();
record.setNickName(info.getNickName());
record.setPointAction(action);
record
.setReceiveDate(new Timestamp(System
.currentTimeMillis()));
memberDao.savePointRecord(record);
GradeRecord gradeRecord = memberDao.findGradeRecordByPoint(info
.getPoint());
info.setGradeRecord(gradeRecord);
}
info.setLatestDate(new Timestamp(System.currentTimeMillis()));
info.setIsOnline(1l);
tran.commit();
return info;
} catch (Exception e) {
tran.rollback();
throw new MemberServiceException(e.getMessage());
}
}
private boolean isSameDate(Date date) {
Calendar calendar = Calendar.getInstance();
int today = calendar.get(Calendar.DAY_OF_YEAR);
calendar.setTime(date);
int lastDate = calendar.get(Calendar.DAY_OF_YEAR);
return today == lastDate;
}
public MemberInfo matchFriend() throws MemberServiceException {
MemberInfo member = null;
Transaction transaction = new HibernateTransaction();
transaction.beginTransaction();
IMemberDao memberDao = (IMemberDao) BeanFactory.getBean("memberDao");
try {
int num = memberDao.findNumMemberInfo();
int randomNum = (int) (Math.random() * num);
member = memberDao.getRandomMember(randomNum);
} catch (Exception e) {
e.printStackTrace();
transaction.rollback();
throw new MemberServiceException(e.getMessage(), e);
}
transaction.commit();
return member;
}
public void modifyMemberinfo(MemberInfo info) throws MemberServiceException {
IMemberDao memberDao = (IMemberDao) BeanFactory.getBean("memberDao");
Transaction tran = new HibernateTransaction();
tran.beginTransaction();
try {
memberDao.saveOrUpdateMemberInfo(info);
tran.commit();
} catch (Exception e) {
e.printStackTrace();
tran.rollback();
throw new MemberServiceException(e.getMessage());
}
}
public void register(MemberInfo info) throws MemberServiceException {
MemberInfo member = null;
PointAction action = null;
GradeRecord grade = null;
Transaction tran = new HibernateTransaction();
tran.beginTransaction();
IMemberDao memberDao = (IMemberDao) BeanFactory.getBean("memberDao");
try {
member = memberDao.findMemberByNickName(info.getNickName());
if (member != null) {
throw new MemberServiceException("錕矯伙拷錕斤拷錕窖達拷錕斤拷");
}
action = memberDao.findPointActionByName("REGISTER");
info.setPassword(MD5.getMD5Str(info.getPassword()));
info.setPoint(action.getPoint());
grade = memberDao.findGradeRecordByPoint(info.getPoint());
info.setGradeRecord(grade);
PointRecord record = new PointRecord();
record.setNickName(info.getNickName());
record.setReceiveDate(new Timestamp(System.currentTimeMillis()));
record.setPointAction(action);
memberDao.savePointRecord(record);
if (info.getRecommender() != null
&& info.getRecommender().trim().length() > 0) {
PointAction pointAction = memberDao
.findPointActionByName("RECOMMEND");
MemberInfo recommender = memberDao.findMemberByNickName(info
.getRecommender());
if (recommender == null) {
throw new MemberServiceException("錕狡鹼拷錕剿詫拷錕斤拷錕斤拷!");
}
recommender.setPoint(recommender.getPoint()
+ pointAction.getPoint());
PointRecord pointRecord = new PointRecord();
pointRecord.setNickName(recommender.getNickName());
pointRecord.setPointAction(pointAction);
pointRecord.setReceiveDate(new Timestamp(System
.currentTimeMillis()));
memberDao.savePointRecord(pointRecord);
}
info.setIsOnline(0l);
info.setStatus(0l);
info.setRegisterDate(new Timestamp(System.currentTimeMillis()));
memberDao.saveOrUpdateMemberInfo(info);
tran.commit();
} catch (Exception e) {
tran.rollback();
throw new MemberServiceException(e.getMessage());
}
}
public Integer findNumMemberInfo() throws MemberServiceException {
IMemberDao memberDao = (IMemberDao) BeanFactory.getBean("memberDao");
try {
return memberDao.findNumMemberInfo();
} catch (Exception e) {
e.printStackTrace();
throw new MemberServiceException(e.getMessage());
}
}
@SuppressWarnings("unchecked")
public List findProvince() throws MemberServiceException {
IMemberDao memberDao = (IMemberDao) BeanFactory.getBean("memberDao");
try {
return memberDao.findProvince();
} catch (Exception e) {
e.printStackTrace();
throw new MemberServiceException(e.getMessage());
}
}
public Province findProvinceByCode(String code)
throws MemberServiceException {
IMemberDao memberDao = (IMemberDao) BeanFactory.getBean("memberDao");
try {
return memberDao.findProvinceByCode(code);
} catch (Exception e) {
e.printStackTrace();
throw new MemberServiceException(e.getMessage());
}
}
public Integer getTotalNum(String age, String gender, String provincecity)
throws MemberServiceException {
IMemberDao memberDao = (IMemberDao) BeanFactory.getBean("memberDao");
Long minAge = null;
Long maxAge = null;
Integer num = null;
if (!age.equals("unlimited")) {
minAge = Long.parseLong(age) * 10;
maxAge = minAge + 9;
}
if (gender.equals("unlimited")) {
gender = null;
}
if (provincecity.equals("unlimited")) {
provincecity = null;
}
Transaction transaction = new HibernateTransaction();
transaction.beginTransaction();
try {
num = memberDao.getTotalNumByConditions(minAge, maxAge, gender,
provincecity);
} catch (Exception e) {
e.printStackTrace();
throw new MemberServiceException(e.getMessage(), e);
}
return num;
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -