⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 memberserviceimpl.java

📁 针对网络跑步爱好者作为用户而开发的
💻 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 + -