📄 memberserviceimpl.java
字号:
package com.briup.run.service;import java.sql.Date;import java.util.Calendar;import java.util.List;import com.briup.run.common.exception.DataAccessException;import com.briup.run.common.exception.MemberServiceException;import com.briup.run.common.transaction.HibernateTransaction;import com.briup.run.common.util.BeanFactory;import com.briup.run.common.util.MD5;import com.briup.run.dao.IMemberDao;import com.briup.run.pojos.Graderecord;import com.briup.run.pojos.Memberinfo;import com.briup.run.pojos.Memberspace;import com.briup.run.pojos.Pointaction;import com.briup.run.pojos.Pointrecord;public class MemberServiceImpl implements IMemberService { IMemberDao memberDao = (IMemberDao) BeanFactory.getBean(BeanFactory.MEMBERDAO); public Memberinfo findMemberinfoByName(String nickname) throws MemberServiceException { Memberinfo memberinfo = null; try { memberinfo = memberDao.findMemberinfoByName(nickname); } catch (DataAccessException e) { e.printStackTrace(); throw new MemberServiceException("数据查找失败"); } return memberinfo; } public List<Memberinfo> findMemberinfoByNum(int number) throws MemberServiceException { HibernateTransaction ht = new HibernateTransaction(); ht.beginTransaction(); try { List<Memberinfo> list = memberDao.findMemberinfoByNum(number); return list; } catch (DataAccessException e) { // TODO Auto-generated catch block e.printStackTrace(); } return null; } public Graderecord findMemberinfoLevel(Long point) throws MemberServiceException { HibernateTransaction ht = new HibernateTransaction(); ht.beginTransaction(); Graderecord grader = null; try { grader = memberDao.findMemberinfoLevel(point); ht.commit(); } catch (DataAccessException e) { e.printStackTrace(); ht.rollback(); throw new MemberServiceException("等级查找失败!"); } return grader; } public int findMemberinfoOnline() throws MemberServiceException { HibernateTransaction ht = new HibernateTransaction(); ht.beginTransaction(); try { Integer integer = memberDao.findMemberinfoOnline(); ht.commit(); return integer; } catch (DataAccessException e) { e.printStackTrace(); ht.rollback(); } return 0; } public Memberinfo login(String username, String passwd) throws MemberServiceException { HibernateTransaction ht = new HibernateTransaction(); ht.beginTransaction(); //查看登陆的用户名是否存在 Memberinfo member = null; try { member = memberDao.findMemberinfoByName(username); //判断用户是否存在 if(member == null){ throw new MemberServiceException("用户名不存在"); } String newpasswd = MD5.getInstance().getMD5ofStr(passwd); //判断密码是否正确 if(!member.getPassword().equals(newpasswd)){ throw new MemberServiceException("密码不正确"); } //查看登陆的用户是否是注销状态。// if(member.getStatus()== 1L){// throw new MemberServiceException(username+"用户已经注销");// } //查看登陆的用户是否现在已经是在线状态 // if(member.getIsonline()==1L){// throw new MemberServiceException(username+"用户已经在线"); // } //判断是否同一天登录 if(member.getLatestdate() == null || !isSameDate(member.getLatestdate())){ Pointaction pointaction = memberDao.findPointactionByPointAction("LOGIN"); member.setPoint(member.getPoint()+pointaction.getPoint()); Pointrecord record = new Pointrecord(); record.setNickname(member.getNickname()); record.setPointaction(pointaction); record.setReceivedate(new Date(System.currentTimeMillis())); memberDao.saveOrUpdatePointrecord(record); Graderecord graderecord= memberDao.findMemberinfoLevel(member.getPoint()); member.setGraderecord(graderecord); } //保存memberinfo信息 java.util.Date oldDate = member.getLatestdate(); member.setLatestdate(new Date(System.currentTimeMillis())); member.setIsonline(1L); memberDao.saveOrUpdateMemberinfo(member); ht.commit(); member.setLatestdate(oldDate); } catch (DataAccessException e) { e.printStackTrace(); ht.rollback(); throw new MemberServiceException("数据访问异常"); } return member; } public void registerMemberinfo(Memberinfo memberinfo) throws MemberServiceException { HibernateTransaction ht = new HibernateTransaction(); ht.beginTransaction(); try { //判断用户名是否存在 Memberinfo info = memberDao.findMemberinfoByName(memberinfo.getNickname()); if(info!=null){ throw new MemberServiceException("用户已经存在"); } //取到注册可以获取的积米数 Pointaction pointaction = memberDao.findPointactionByPointAction("REGISTER"); memberinfo.setPoint(pointaction.getPoint()); //通过MD5加密密码 String newpasswd = MD5.getInstance().getMD5ofStr(memberinfo.getPassword()); memberinfo.setPassword(newpasswd); //获取会员的初始等级 Graderecord recode = memberDao.findMemberinfoLevel(memberinfo.getPoint()); memberinfo.setGraderecord(recode); //将获取积米的信息记录下来 Pointrecord precord = new Pointrecord(); precord.setNickname(memberinfo.getNickname()); precord.setPointaction(pointaction); precord.setReceivedate(new Date(System.currentTimeMillis())); memberDao.saveOrUpdatePointrecord(precord); //判断注册的用户有无推荐人 if(!memberinfo.getRecommender().equals("")){ Memberinfo member = memberDao.findMemberinfoByName(memberinfo.getRecommender()); if(member == null){ throw new MemberServiceException("推荐人不存在"); } pointaction = memberDao.findPointactionByPointAction("RECOMMEND"); member.setPoint(member.getPoint()+pointaction.getPoint()); recode = memberDao.findMemberinfoLevel(member.getPoint()); member.setGraderecord(recode); precord = new Pointrecord(); precord.setNickname(member.getNickname()); precord.setPointaction(pointaction); precord.setReceivedate(new Date(System.currentTimeMillis())); memberDao.saveOrUpdatePointrecord(precord); //添加 memberDao.saveOrUpdateMemberinfo(member); } //最后将注册信息保存到数据库 memberinfo.setRegisterdate(new Date(System.currentTimeMillis())); memberinfo.setStatus(0L); memberinfo.setIsonline(0L); memberDao.saveOrUpdateMemberinfo(memberinfo); ht.commit(); } catch (DataAccessException e) { e.printStackTrace(); ht.rollback(); throw new MemberServiceException("数据访问异常"); } } public void saveOrUpDate(Memberinfo memberinfo) throws MemberServiceException { HibernateTransaction ht = new HibernateTransaction(); ht.beginTransaction(); try { memberDao.saveOrUpdateMemberinfo(memberinfo); ht.commit(); } catch (DataAccessException e) { // TODO Auto-generated catch block e.printStackTrace(); ht.rollback(); throw new MemberServiceException("memberinfo保存失败"); } } private boolean isSameDate(java.util.Date latestdate) { Calendar calendar = Calendar.getInstance(); int today = calendar.get(Calendar.DAY_OF_YEAR); calendar.setTime(latestdate); int lastDate = calendar.get(Calendar.DAY_OF_YEAR); return today == lastDate; } public void saveModify(Memberinfo member,String oldPassword) throws MemberServiceException { HibernateTransaction ht = new HibernateTransaction(); ht.beginTransaction(); try { Memberinfo memberinfo = memberDao.findMemberinfoByName(member.getNickname()); String newOldPasswd = MD5.getInstance().getMD5ofStr(oldPassword); if(!memberinfo.getPassword().equals(newOldPasswd)){ throw new MemberServiceException("旧密码不正确!"); } String newPassword = MD5.getInstance().getMD5ofStr(member.getPassword()); memberinfo.setAddress(member.getAddress()); memberinfo.setAge(member.getAge()); memberinfo.setEmail(member.getEmail()); memberinfo.setGender(member.getGender()); memberinfo.setPassword(newPassword); memberinfo.setPasswordanswer(member.getPasswordanswer()); memberinfo.setPasswordquestion(member.getPasswordquestion()); memberinfo.setPhone(member.getPhone()); memberinfo.setProvincecity(member.getProvincecity()); memberDao.saveOrUpdateMemberinfo(memberinfo); ht.commit(); } catch (DataAccessException e) { // TODO Auto-generated catch block e.printStackTrace(); ht.rollback(); throw new MemberServiceException("数据访问异常"); } } public String getNewPasswd(String userName, String question, String answer) throws MemberServiceException { HibernateTransaction ht = new HibernateTransaction(); ht.beginTransaction(); try { Memberinfo memberinfo = memberDao.findMemberinfoByName(userName); if(!memberinfo.getPasswordquestion().equals(question)){ throw new MemberServiceException("密码提示问题不正确!"); } if(!memberinfo.getPasswordanswer().equals(answer)){ throw new MemberServiceException("密码提示答案不正确!"); } String newPasswd = "briup"+(int)(Math.random()*100+1); String passwd = MD5.getInstance().getMD5ofStr(newPasswd); memberinfo.setPassword(passwd); memberDao.saveOrUpdateMemberinfo(memberinfo); ht.commit(); return newPasswd; } catch (DataAccessException e) { e.printStackTrace(); ht.rollback(); throw new MemberServiceException("数据访问异常"); } } public boolean isSpace(String name) throws MemberServiceException { HibernateTransaction ht = new HibernateTransaction(); ht.beginTransaction(); try { Memberinfo member = memberDao.findMemberinfoByName(name); if(member != null&&member.getMemberspace()!=null){ return true; } ht.commit(); } catch (DataAccessException e) { // TODO Auto-generated catch block e.printStackTrace(); ht.rollback(); throw new MemberServiceException("数据访问异常"); } return false; } public void logout(Memberinfo member) throws MemberServiceException { HibernateTransaction ht = new HibernateTransaction(); ht.beginTransaction(); member.setIsonline(0L); try { memberDao.saveOrUpdateMemberinfo(member); ht.commit(); } catch (DataAccessException e) { // TODO Auto-generated catch block e.printStackTrace(); ht.rollback(); throw new MemberServiceException("数据访问异常"); } }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -