package com.mandi.system.service.impl; import java.util.Date; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.UUID; import javax.annotation.Resource; import javax.transaction.Transactional; import org.apache.commons.lang3.StringUtils; import org.springframework.stereotype.Service; import com.mandi.common.BasicMethod; import com.mandi.dao.common.Daomethod; import com.mandi.dao.common.ObjectResult; import com.mandi.dao.common.PageRequest; import com.mandi.dao.common.PageResult; import com.mandi.fendan.mapper.Fd_CompanyMapper; import com.mandi.fendan.persist.Fd_Company; import com.mandi.system.mapper.FduserMapper; import com.mandi.system.mapper.LoginMapper; import com.mandi.system.persist.Login; import com.mandi.system.persist.LoginSide; import com.mandi.system.persist.User; import com.mandi.system.persist.UserType; import com.mandi.system.service.IFdUserService; @Service public class FdUserService implements IFdUserService{ @Resource private FduserMapper uper; @Resource private LoginMapper lper; @Resource private Fd_CompanyMapper fdcper; @Override @Transactional(rollbackOn=Exception.class) public ObjectResult loginUser(String username, String password,String ipadd)throws Exception { ObjectResult orr=new ObjectResult(); User u=uper.getbyUname(username); if(u==null){ orr.setCode(1); orr.setErrmsg("用户名不存在,请重新登录!"); return orr; } if(!u.isState()){ orr.setCode(1); orr.setErrmsg("该账号已禁止登录!"); return orr; } if(!BasicMethod.encryptSHA(password).equals(u.getPassword())){ orr.setCode(1); orr.setErrmsg("密码不正确请重新登录!"); return orr; } Fd_Company fd=fdcper.getByCompanyNo(u.getCompanyNo()); Login lg=new Login(); lg.setDepart(0); if(fd!=null){ lg.setDepartname(fd.getName()); lg.setDepartno(fd.getCompanyNo()); } lg.setId(0); lg.setIpaddr(ipadd); lg.setLoginside(LoginSide.back); lg.setLogintime(new Date()); lg.setPhone(u.getPhone()); lg.setUserid(u.getId()); lg.setUsername(u.getUsername()); lg.setWorkername(u.getName()); lg.setWorkerno(u.getUtype()+""); lper.insert(lg); orr.setCode(0); orr.setItem(lg); return orr; } @Override public ObjectResult logout(Login login) { ObjectResult or=new ObjectResult(); if(login==null){ or.setCode(1); or.setErrmsg("不存在登录信息!"); return or; } int i=lper.logout(login.getId()); if(i>0){ or.setCode(0); }else{ or.setCode(2); or.setErrmsg("不能保存登录退出信息!"); } return or; } @Override public ObjectResult saveState(String id, boolean state,Login lg) { ObjectResult orr=new ObjectResult(); if(lg==null){ orr.setCode(1); orr.setErrmsg("账号已退出,请重新登录账号!"); return orr; } if(!UserType.admin.toString().equals(lg.getWorkerno())){ orr.setCode(1); orr.setErrmsg("登录账号不是管理员不能操作!"); return orr; } User u=uper.getbyId(id); if(u==null){ orr.setCode(1); orr.setErrmsg("该用户不存在,不能操作!"); return orr; } u.setState(state); uper.updatebyId(u); orr.setCode(0); orr.setItem(state); return orr; } @Override @Transactional(rollbackOn=Exception.class) public ObjectResult saveUser(User u,Login lg) throws Exception { ObjectResult orr=new ObjectResult(); if(lg==null){ orr.setCode(1); orr.setErrmsg("账号已退出,请重新登录账号!"); return orr; } if(!UserType.admin.toString().equals(lg.getWorkerno())){ orr.setCode(1); orr.setErrmsg("登录账号不是管理员不能操作!"); return orr; } if(u==null){ orr.setCode(1); orr.setErrmsg("用户对象为空,不能保存!"); return orr; } if(StringUtils.isEmpty(u.getUsername())){ orr.setCode(1); orr.setErrmsg("用户名为空,不能保存!"); return orr; } if(StringUtils.isEmpty(u.getName())){ orr.setCode(1); orr.setErrmsg("用户姓名为空,不能保存!"); return orr; } // Fd_Company fdc=fdcper.getByCompanyNo(u.getCompanyNo()); // if(fdc==null){ // orr.setCode(1); // orr.setErrmsg("物流公司不存在,请选择正确的物流公司!"); // return orr; // } String id=u.getId(); User us1=uper.getbyId(id); User us2=uper.getbyUname(u.getUsername()); if(us2!=null){ if(us1!=null){ if(!us2.getId().equals(us1.getId())){ orr.setCode(1); orr.setErrmsg("该用户名已存在!"); return orr; } }else{ orr.setCode(1); orr.setErrmsg("该用户名已存在!"); return orr; } } if(us1!=null){ if(!StringUtils.isEmpty(u.getPassword())){ String encpwd=BasicMethod.encryptSHA(u.getPassword()); u.setPassword(encpwd); }else{ u.setPassword(us1.getPassword()); } uper.updatebyId(u); }else{ if(StringUtils.isEmpty(u.getPassword())){ orr.setCode(1); orr.setErrmsg("用户密码为空,不能保存!"); return orr; } String encpwd=BasicMethod.encryptSHA(u.getPassword()); u.setPassword(encpwd); u.setId(UUID.randomUUID()+""); uper.insert(u); } orr.setCode(0); orr.setItem(u); return orr; } @Override public PageResult> getUserMlist(String searchword, String companyNo, PageRequest pr) { PageResult> prr=new PageResult>(); Map mp=new HashMap(); mp.put("pagesize",pr.getPageSize() ); mp.put("page",pr.getStart()); mp.put("keyword", searchword); mp.put("companyNo", companyNo); if(pr.isNeedPages()){ int cc=uper.getcount(mp); int pages=Daomethod.countpages(cc, pr.getPageSize()); prr.setPages(pages); } List> ll=uper.getMList(mp); prr.setCode(0); prr.setList(ll); return prr; } @Override @Transactional(rollbackOn=Exception.class) public ObjectResult delUser(String id,Login lg) throws Exception { ObjectResult orr=new ObjectResult(); if(lg==null){ orr.setCode(1); orr.setErrmsg("账号已退出,请重新登录账号!"); return orr; } if(!UserType.admin.toString().equals(lg.getWorkerno())){ orr.setCode(1); orr.setErrmsg("登录账号不是管理员不能操作!"); return orr; } User u=uper.getbyId(id); if(u==null){ orr.setCode(1); orr.setErrmsg("用户不存在,不能删除!"); return orr; } uper.delbyId(id); orr.setCode(0); orr.setItem(true); return orr; } @Override public ObjectResult getUser(String id) { ObjectResult orr=new ObjectResult(); User u=uper.getbyId(id); orr.setCode(0); orr.setItem(u); return orr; } @Override @Transactional(rollbackOn=Exception.class) public ObjectResult updateUserPwd(String oldpwd, String newpwd,Login lg) throws Exception { ObjectResult orr=new ObjectResult(); if(lg==null){ orr.setCode(1); orr.setErrmsg("账号已退出,请重新登录账号!"); return orr; } User u=uper.getbyId(lg.getUserid()); if(u==null){ orr.setCode(1); orr.setErrmsg("用户不存在,不能修改密码!"); return orr; } oldpwd=BasicMethod.encryptSHA(oldpwd); newpwd=BasicMethod.encryptSHA(newpwd); if(!u.getPassword().equals(oldpwd)){ orr.setCode(1); orr.setErrmsg("密码错误不能修改!"); return orr; } u.setPassword(newpwd); uper.updatebyId(u); orr.setCode(0); orr.setItem(true); return orr; } }