647 lines
16 KiB
Plaintext
647 lines
16 KiB
Plaintext
package com.bonus.sys.service;
|
||
|
||
import java.util.ArrayList;
|
||
import java.util.Date;
|
||
import java.util.List;
|
||
|
||
import org.apache.commons.lang3.StringUtils;
|
||
import org.slf4j.Logger;
|
||
import org.slf4j.LoggerFactory;
|
||
import org.springframework.beans.factory.annotation.Autowired;
|
||
import org.springframework.stereotype.Service;
|
||
import org.springframework.transaction.annotation.Transactional;
|
||
|
||
import com.bonus.core.exception.ZeroAffectRowsException;
|
||
import com.bonus.sys.AjaxRes;
|
||
import com.bonus.sys.BaseServiceImp;
|
||
import com.bonus.sys.CipherHelper;
|
||
import com.bonus.sys.Page;
|
||
import com.bonus.sys.UserShiroHelper;
|
||
import com.bonus.sys.beans.NewRoleBean;
|
||
import com.bonus.sys.beans.UserBean;
|
||
import com.bonus.sys.beans.ZNode;
|
||
import com.bonus.sys.dao.NewRoleDao;
|
||
import com.bonus.sys.dao.UserDao;
|
||
|
||
@Service("UserService")
|
||
public class UserServiceImp extends BaseServiceImp<UserBean> implements UserService {
|
||
|
||
protected Logger logger = LoggerFactory.getLogger(UserServiceImp.class);
|
||
|
||
@Autowired
|
||
private UserDao userDao;
|
||
|
||
@Autowired
|
||
private NewRoleDao newRoleDao;
|
||
|
||
@Override
|
||
public UserBean findUserBeanByLoginName(String loginName) {
|
||
try {
|
||
UserBean u = userDao.findUserBeanByLoginName(loginName);
|
||
return u;
|
||
} catch (Exception e) {
|
||
logger.error("根据登录名查找用户信息时,发生异常", e);
|
||
}
|
||
return null;
|
||
}
|
||
|
||
@Override
|
||
public void setPerData(UserBean o) {
|
||
UserBean cu = UserShiroHelper.getRealCurrentUser();
|
||
o.setId(cu.getId());
|
||
o.setUpdateTime((new Date()));
|
||
userDao.updateByPrimaryKeySelective(o);
|
||
cu.setName(o.getName());
|
||
cu.setMail(o.getMail());
|
||
cu.setTelphone(o.getTelphone());
|
||
}
|
||
|
||
@Override
|
||
public void setSetting(String skin) {
|
||
UserBean cu = UserShiroHelper.getCurrentUser();
|
||
cu.setSkin(skin);
|
||
userDao.setSetting(cu);
|
||
UserShiroHelper.getRealCurrentUser().setSkin(skin);
|
||
}
|
||
|
||
@Override
|
||
public int preResetPwd(String opwd, String npwd, String qpwd) {
|
||
int res = 0;
|
||
int accountId = UserShiroHelper.getRealCurrentUser().getId();
|
||
String loginName = UserShiroHelper.getRealCurrentUser().getLoginName();
|
||
if (StringUtils.isNotBlank(opwd) && StringUtils.isNotBlank(npwd)) {
|
||
if (StringUtils.equals(npwd, qpwd)) {
|
||
UserBean o = new UserBean();
|
||
o.setId(accountId);
|
||
UserBean odata = userDao.findUserBeanByLoginName(loginName);
|
||
String oPwdEncrypt = CipherHelper.createPwdEncrypt(loginName, opwd.toUpperCase(), odata.getSalt());
|
||
String odataPwdEncrypt = odata.getPasswd();
|
||
if (StringUtils.equals(oPwdEncrypt, odataPwdEncrypt)) {
|
||
String salt = CipherHelper.createSalt();
|
||
String pwrsMD5 = npwd.toUpperCase();
|
||
o.setPasswd(CipherHelper.createPwdEncrypt(loginName, pwrsMD5, salt));
|
||
o.setSalt(salt);
|
||
userDao.resetPwd(o);
|
||
res = 1;
|
||
} else {
|
||
res = 2;// 密码不正确
|
||
}
|
||
} else {
|
||
res = 3;// 两次密码不一致
|
||
}
|
||
}
|
||
return res;
|
||
}
|
||
|
||
@Override
|
||
public UserBean findByidcard(String idCard) {
|
||
return userDao.findByidcard(idCard);
|
||
}
|
||
|
||
@Override
|
||
public int sysResetPwd(UserBean o) {
|
||
int res = 0;
|
||
String pwd = o.getPasswd();
|
||
o.setUpdateTime(new Date());
|
||
int userId = o.getId();
|
||
if (userId >= 0) {
|
||
UserBean odata = userDao.selectByPrimaryKey(userId);
|
||
String loginName = odata.getLoginName();
|
||
// 随机密码,以后发邮箱
|
||
String salt = CipherHelper.createSalt();
|
||
String pwrsMD5 = CipherHelper.generatePassword(pwd);
|
||
String newPwd = CipherHelper.createPwdEncrypt(loginName, pwrsMD5, salt);
|
||
o.setPasswd(newPwd);
|
||
o.setSalt(salt);
|
||
userDao.resetPwd(o);
|
||
res = 1;
|
||
} else {
|
||
res = 2;
|
||
}
|
||
return res;
|
||
|
||
}
|
||
|
||
@Override
|
||
public List<ZNode> getOrgBeans() {
|
||
return userDao.getOrgBeans();
|
||
}
|
||
|
||
@Override
|
||
public List<ZNode> getOrgBeansList() {
|
||
return userDao.getOrgBeans();
|
||
}
|
||
|
||
@Override
|
||
public int insertUser(UserBean o) {
|
||
int res = 0;
|
||
String loginName = o.getLoginName();
|
||
// 查询数据库是否已经存在用户名
|
||
if (StringUtils.isNotBlank(loginName) && (userDao.findCountByLoginName(loginName) == 0)) {
|
||
String pwrs = "12345678";// 随机密码,以后发邮箱
|
||
String pwrsMD5 = CipherHelper.generatePassword(pwrs);// 第一次加密md5,
|
||
String salt = CipherHelper.createSalt();
|
||
o.setPasswd(CipherHelper.createPwdEncrypt(loginName, pwrsMD5, salt));
|
||
o.setSalt(salt);
|
||
o.setCreateTime(new Date());
|
||
userDao.insertSelective(o);
|
||
res = o.getId();
|
||
}
|
||
|
||
/*
|
||
* Connection conn = null; CallableStatement cs = null; try { conn =
|
||
* DBUtils.getConn(); String sql = "{CALL update_app_menu(?,?)}"; cs =
|
||
* conn.prepareCall(sql); cs.setInt(1,o.getPostId()); cs.setInt(2,res);
|
||
* cs.execute(); } catch (SQLException e) { e.printStackTrace();
|
||
* }finally { DBUtils.close(conn, cs, null); }
|
||
*/
|
||
return res;
|
||
}
|
||
|
||
@Override
|
||
public void deleteBatch(String chks) {
|
||
// 事务删除
|
||
if (StringUtils.isNotBlank(chks)) {
|
||
String[] chk = chks.split(",");
|
||
List<UserBean> list = new ArrayList<UserBean>();
|
||
for (String s : chk) {
|
||
try {
|
||
int id = Integer.parseInt(s);
|
||
UserBean sd = new UserBean();
|
||
sd.setId(id);
|
||
list.add(sd);
|
||
} catch (Exception e) {
|
||
}
|
||
}
|
||
userDao.deleteBatch(list);
|
||
}
|
||
}
|
||
|
||
@Override
|
||
public List<UserBean> findAllByRole(UserBean o) {
|
||
return userDao.findAllByRole(o);
|
||
}
|
||
|
||
@Override
|
||
public List<UserBean> findAllByNewRole(UserBean o) {
|
||
return userDao.findAllByNewRole(o);
|
||
}
|
||
|
||
@Override
|
||
public void updateUsers(int roleId, String chks) {
|
||
// 事务删除
|
||
userDao.deleteUserRole(roleId);
|
||
|
||
if (StringUtils.isNotBlank(chks)) {
|
||
String[] chk = chks.split(",");
|
||
for (String s : chk) {
|
||
try {
|
||
UserBean ub = new UserBean();
|
||
int id = Integer.parseInt(s);
|
||
ub.setId(id);
|
||
ub.setRoleId(roleId);
|
||
userDao.insertUserRole(ub);
|
||
} catch (Exception e) {
|
||
logger.error("插入用户角色表失败!", e);
|
||
return;
|
||
}
|
||
}
|
||
|
||
}
|
||
}
|
||
|
||
@Override
|
||
public UserBean findAll(UserBean o) {
|
||
UserBean userList = userDao.findAll(o);
|
||
return userList;
|
||
}
|
||
|
||
@Override
|
||
public List<UserBean> findAllUser() {
|
||
return userDao.findAllUser();
|
||
}
|
||
|
||
@Override
|
||
public List<UserBean> findByOrg(UserBean o) {
|
||
List<UserBean> list = userDao.findByOrg(o);
|
||
return list;
|
||
}
|
||
|
||
@Override
|
||
public List<UserBean> findByRepair() {
|
||
return userDao.findByRepair();
|
||
}
|
||
|
||
@Override
|
||
public String findCompanyName(UserBean o) {
|
||
return userDao.findCompanyName(o);
|
||
}
|
||
|
||
@Override
|
||
public List<UserBean> getUnit(UserBean o) {
|
||
return userDao.getUnit(o);
|
||
}
|
||
|
||
@Override
|
||
public List<ZNode> findPerson(UserBean o) {
|
||
return userDao.findPerson(o);
|
||
}
|
||
|
||
@Override
|
||
public UserBean findByUserId(String userId, int flag) {
|
||
return userDao.findByUserId(userId, flag);
|
||
}
|
||
|
||
@Override
|
||
public UserBean findUserBeanById(String userId) {
|
||
return userDao.findUserBeanById(userId);
|
||
}
|
||
|
||
@Override
|
||
public List<UserBean> findPersonByOrgId(String orgId) {
|
||
return userDao.findPersonByOrgId(orgId);
|
||
}
|
||
|
||
@Override
|
||
public List<UserBean> findCIdByOrgId(String orgId, String postId) {
|
||
return userDao.findCIdByOrgId(orgId, postId);
|
||
}
|
||
|
||
@Override
|
||
public List<UserBean> findAllPerson() {
|
||
return userDao.findAllPerson();
|
||
}
|
||
|
||
@Override
|
||
public void insertUserRole(UserBean o) {
|
||
userDao.insertUserRole(o);
|
||
}
|
||
|
||
@Override
|
||
public Integer insertBean(UserBean o) {
|
||
Date time = new Date(System.currentTimeMillis());
|
||
// SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
|
||
o.setCreateTime(time);
|
||
// o.setPostId(13);
|
||
|
||
String loginName = o.getLoginName();
|
||
// o.setName(loginName);
|
||
// 查询数据库是否已经存在用户名
|
||
if (StringUtils.isNotBlank(loginName) && (userDao.findCountByLoginName(loginName) == 0)) {
|
||
String pwrs = o.getPasswd();
|
||
String pwrsMD5 = CipherHelper.generatePassword(pwrs);// 第一次加密md5;
|
||
String salt = CipherHelper.createSalt();
|
||
o.setPasswd(CipherHelper.createPwd(pwrsMD5, salt));
|
||
o.setSalt(salt);
|
||
}
|
||
return userDao.insertBean(o);
|
||
}
|
||
|
||
@Override
|
||
public UserBean selectUser(String loginName) {
|
||
// TODO Auto-generated method stub
|
||
return userDao.selectUser(loginName);
|
||
}
|
||
|
||
@Override
|
||
public UserBean getnum(String phonenum) {
|
||
UserBean user = null;
|
||
try {
|
||
user = userDao.getnum(phonenum);
|
||
} catch (Exception e) {
|
||
e.printStackTrace();
|
||
}
|
||
return user;
|
||
}
|
||
|
||
@Override
|
||
public List<ZNode> findAllInternalEmp() {
|
||
return userDao.findAllInternalEmp();
|
||
}
|
||
|
||
@Override
|
||
public List<UserBean> getUserList() {
|
||
// TODO Auto-generated method stub
|
||
return userDao.getUserList();
|
||
}
|
||
|
||
@Override
|
||
public List<UserBean> getDeptEmpByDeptId(UserBean o) {
|
||
return userDao.getDeptEmpByDeptId(o);
|
||
}
|
||
|
||
@Override
|
||
public Page<UserBean> findByPageOfWebUser(UserBean o, Page<UserBean> page) {
|
||
try {
|
||
page.setResults(userDao.findByPageOfWebUser(o, page));
|
||
} catch (Exception e) {
|
||
e.printStackTrace();
|
||
}
|
||
return page;
|
||
}
|
||
|
||
@Override
|
||
public Integer webInsertBean(UserBean o) {
|
||
Integer result = 0;
|
||
try {
|
||
Date time = new Date(System.currentTimeMillis());
|
||
o.setCreateTime(time);
|
||
String salt = CipherHelper.createSalt();
|
||
o.setPasswd(CipherHelper.createPwdEncrypt(o.getLoginName(), o.getPasswd().toUpperCase(), salt));
|
||
o.setSalt(salt);
|
||
result = userDao.insertBean(o);
|
||
} catch (Exception e) {
|
||
e.printStackTrace();
|
||
}
|
||
return result;
|
||
}
|
||
|
||
@Override
|
||
public int findCountByLoginName(String loginName) {
|
||
int result = 0;
|
||
try {
|
||
result = userDao.findCountByLoginName(loginName);
|
||
} catch (Exception e) {
|
||
e.printStackTrace();
|
||
}
|
||
return result;
|
||
}
|
||
|
||
@Override
|
||
public List<UserBean> findListByPhone(String phone) {
|
||
List<UserBean> users = null;
|
||
try {
|
||
users = userDao.findListByPhone(phone);
|
||
} catch (Exception e) {
|
||
e.printStackTrace();
|
||
}
|
||
return users;
|
||
}
|
||
|
||
@Override
|
||
public int webResetPwd(UserBean o) {
|
||
int res = 0;
|
||
try {
|
||
String pwd = o.getPasswd();
|
||
o.setUpdateTime(new Date());
|
||
String loginName = o.getLoginName();
|
||
// 随机密码,以后发邮箱
|
||
String salt = CipherHelper.createSalt();
|
||
// String pwrsMD5 = CipherHelper.generatePassword(pwd);
|
||
String newPwd = CipherHelper.createPwdEncrypt(loginName, pwd.toUpperCase(), salt);
|
||
o.setPasswd(newPwd);
|
||
o.setSalt(salt);
|
||
userDao.resetPwd(o);
|
||
res = 1;
|
||
} catch (Exception e) {
|
||
e.printStackTrace();
|
||
}
|
||
return res;
|
||
}
|
||
|
||
@Override
|
||
public List<ZNode> clientUnitTree(UserBean o) {
|
||
return userDao.clientUnitTree(o);
|
||
}
|
||
|
||
@Override
|
||
public List<ZNode> findNewRole(UserBean o) {
|
||
return userDao.findNewRole(o);
|
||
}
|
||
|
||
@Override
|
||
public List<UserBean> findAllClient(UserBean o) {
|
||
return userDao.findAllClient(o);
|
||
}
|
||
|
||
@Override
|
||
public Page<UserBean> findByPageOfBrotherUser(UserBean o, Page<UserBean> page) {
|
||
try {
|
||
page.setResults(userDao.findByPageOfBrotherUser(o, page));
|
||
} catch (Exception e) {
|
||
e.printStackTrace();
|
||
}
|
||
return page;
|
||
}
|
||
|
||
@Override
|
||
public List<ZNode> getRepairEmpList(Integer id) {
|
||
|
||
return userDao.getRepairEmpList(id);
|
||
}
|
||
|
||
@Override
|
||
public List<ZNode> getTecEmp(Integer id) {
|
||
|
||
return userDao.getTecEmp(id);
|
||
}
|
||
|
||
@Override
|
||
public List<UserBean> findAllKeeper() {
|
||
return userDao.findAllKeeper();
|
||
}
|
||
|
||
@Override
|
||
public List<UserBean> getRepairOrg() {
|
||
return userDao.getRepairOrg();
|
||
}
|
||
|
||
@Override
|
||
public List<ZNode> findRepairTeam(UserBean o) {
|
||
return userDao.findRepairTeam(o);
|
||
}
|
||
|
||
@Override
|
||
public Page<UserBean> findByPageOfNew(UserBean o, Page<UserBean> page) {
|
||
|
||
page.setResults(userDao.findByPageOfNew(o, page));
|
||
|
||
return page;
|
||
}
|
||
|
||
@Override
|
||
public List<UserBean> findBuyersList() {
|
||
return userDao.findBuyersList();
|
||
}
|
||
|
||
@Override
|
||
public List<UserBean> findCompanyList() {
|
||
return userDao.findCompanyList(null);
|
||
}
|
||
|
||
int charuTrue = 0;
|
||
|
||
@Override
|
||
@Transactional
|
||
public AjaxRes addUser(UserBean o) {
|
||
AjaxRes ar = getAjaxRes();
|
||
|
||
Integer result = 0;
|
||
|
||
try {
|
||
NewRoleBean[] roles = o.getRoleArr();
|
||
boolean flag = false;
|
||
for (int i = 0; i < roles.length; i++) {
|
||
if (roles[i].getId() == 1 || roles[i].getId() == 2) { // 具有管理员角色
|
||
flag = true;
|
||
break;
|
||
}
|
||
}
|
||
if (flag) {
|
||
o.setIfPermiss("1");
|
||
} else {
|
||
o.setIfPermiss("0");
|
||
}
|
||
String loginName = o.getLoginName();
|
||
|
||
// 查询数据库是否已经存在用户名
|
||
if (StringUtils.isNotBlank(loginName) && (userDao.findCountByLoginName(loginName) == 0)) {
|
||
charuTrue++;
|
||
String pwrs = "12345678";// 随机密码,以后发邮箱
|
||
String pwrsMD5 = CipherHelper.generatePassword(pwrs);// 第一次加密md5,
|
||
String salt = CipherHelper.createSalt();
|
||
o.setPasswd(CipherHelper.createPwdEncrypt(loginName, pwrsMD5, salt));
|
||
o.setSalt(salt);
|
||
o.setCreateTime(new Date());
|
||
result = userDao.insertSelective(o);
|
||
|
||
if (result == 0) {
|
||
ar.setFailMsg("新增人员失败,用户表插入操作错误!");
|
||
return ar;
|
||
}
|
||
|
||
for (NewRoleBean bean : roles) {
|
||
bean.setUserId(o.getId());
|
||
result = newRoleDao.insertRole(bean);
|
||
if (result == 0) {
|
||
ar.setFailMsg("新增员工失败,用户与角色关联表插入操作错误!");
|
||
return ar;
|
||
}
|
||
}
|
||
|
||
} else {
|
||
ar.setFailMsg("新增人员失败,用户" + loginName + "已存在!");
|
||
System.out.println(charuTrue);
|
||
return ar;
|
||
}
|
||
|
||
ar.setSucceedMsg("员工账号新增成功!");
|
||
} catch (Exception e) {
|
||
e.printStackTrace();
|
||
ar.setFailMsg(e.getMessage());
|
||
throw e;
|
||
}
|
||
return ar;
|
||
}
|
||
|
||
@Override
|
||
public UserBean findOrgId(Integer orgId) {
|
||
return userDao.findOrgId(orgId);
|
||
}
|
||
|
||
@Override
|
||
public UserBean findUserInfoById(UserBean o) {
|
||
return userDao.findUserInfoById(o);
|
||
}
|
||
|
||
@Override
|
||
@Transactional
|
||
public AjaxRes updateUser(UserBean o) {
|
||
AjaxRes ar = getAjaxRes();
|
||
Integer result = 0;
|
||
try {
|
||
NewRoleBean[] roles = o.getRoleArr();
|
||
o.setUpdateTime(new Date());
|
||
if (roles != null && roles.length > 0) {
|
||
for (NewRoleBean bean : roles) {
|
||
|
||
if ("delete".equals(bean.getOpt())) {
|
||
result = newRoleDao.deleteRole(bean);
|
||
if (result == 0) {
|
||
throw new ZeroAffectRowsException("员工信息更细失败,用户与角色关联表删除操作错误!");
|
||
}
|
||
} else if ("insert".equals(bean.getOpt())) {
|
||
result = newRoleDao.insertRole(bean);
|
||
if (result == 0) {
|
||
throw new ZeroAffectRowsException("员工信息更细失败,用户与角色关联表插入操作错误!");
|
||
}
|
||
}
|
||
}
|
||
}
|
||
NewRoleBean nrbean = new NewRoleBean();
|
||
nrbean.setUserId(o.getId());
|
||
List<NewRoleBean> list = newRoleDao.findRoleByUserId(nrbean);
|
||
boolean flag = false;
|
||
if (list != null && list.size() != 0) {
|
||
for (int i = 0; i < list.size(); i++) {
|
||
if (list.get(i).getId() == 1 || list.get(i).getId() == 2) {
|
||
flag = true;
|
||
break;
|
||
}
|
||
}
|
||
}
|
||
if (flag) {
|
||
o.setIfPermiss("1");
|
||
} else {
|
||
o.setIfPermiss("0");
|
||
}
|
||
result = userDao.updateByPrimaryKeySelective(o);
|
||
if (result == 0) {
|
||
throw new ZeroAffectRowsException("员工信息更新失败,用户表更新操作错误!");
|
||
}
|
||
ar.setSucceedMsg("员工账号更新成功!");
|
||
} catch (Exception e) {
|
||
e.printStackTrace();
|
||
ar.setFailMsg(e.getMessage());
|
||
throw e;
|
||
}
|
||
return ar;
|
||
}
|
||
|
||
@Override
|
||
public List<UserBean> findInternalEmp() {
|
||
return userDao.findInternalEmp();
|
||
}
|
||
|
||
@Override
|
||
public List<UserBean> findAllBuyer(int postId) {
|
||
UserBean o = new UserBean();
|
||
o.setPostId(postId);
|
||
return userDao.findAllBuyer(o);
|
||
}
|
||
|
||
@Override
|
||
public List<UserBean> getUserByEmp() {
|
||
|
||
return userDao.getUserByEmp();
|
||
}
|
||
|
||
@Override
|
||
public List<UserBean> findAllKeeperForOrgId(int orgId) {
|
||
UserBean o = new UserBean();
|
||
o.setOrgId(orgId);
|
||
return userDao.findAllKeeperForOrgId(o);
|
||
}
|
||
|
||
@Override
|
||
public List<UserBean> getListByPost() {
|
||
return userDao.getListByPost();
|
||
}
|
||
|
||
@Override
|
||
public UserBean getUserInfo(UserBean user) {
|
||
return userDao.getUserInfo(user);
|
||
}
|
||
|
||
@Override
|
||
public List<UserBean> findUserBySelect(UserBean o) {
|
||
return userDao.findUserBySelect(o);
|
||
}
|
||
|
||
@Override
|
||
public List<ZNode> getOrgTreeList(UserBean o) {
|
||
return userDao.getOrgTreeList(o);
|
||
}
|
||
|
||
}
|