package com.goafanti.admin.service.impl; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.TreeMap; import java.util.UUID; import javax.annotation.Resource; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import com.goafanti.admin.bo.AdminContacts; import com.goafanti.admin.bo.AdminDetail; import com.goafanti.admin.bo.AdminListBo; import com.goafanti.admin.service.AdminService; import com.goafanti.common.constant.AFTConstants; import com.goafanti.common.dao.AdminLocationMapper; import com.goafanti.common.dao.AdminMapper; import com.goafanti.common.dao.UserMapper; import com.goafanti.common.dao.UserRoleMapper; import com.goafanti.common.model.Admin; import com.goafanti.common.utils.LoggerUtils; import com.goafanti.common.utils.PasswordUtil; import com.goafanti.common.utils.StringUtils; import com.goafanti.core.mybatis.BaseMybatisDao; import com.goafanti.core.mybatis.page.Pagination; import com.goafanti.core.shiro.token.TokenManager; import com.goafanti.customer.bo.LockingReleaseBo; import com.goafanti.order.bo.TOrderNewBo; @Service public class AdminServiceImpl extends BaseMybatisDao implements AdminService { @Autowired private AdminMapper adminMapper; @Autowired private UserRoleMapper userRoleMapper; @Autowired private AdminLocationMapper adminLocationMapper; @Resource(name = "passwordUtil") private PasswordUtil passwordUtil; @Override public List selectAllAdmin() { return adminMapper.selectAllAdmin(null); } @Override public Admin selectByMobile(String mobile) { return adminMapper.selectByMobile(mobile); } @Override public Admin selectByPrimaryKey(String key) { return adminMapper.selectByPrimaryKey(key); } @SuppressWarnings("unchecked") @Override public Pagination listAdmin(Integer province, Integer number, String mobile, String name, Integer pageNo, Integer pageSize) { Map params = new HashMap<>(); if (StringUtils.isNotBlank(mobile)) { params.put("mobile", mobile); } if (StringUtils.isNotBlank(name)) { params.put("name", name); } if (null != number) { params.put("number", number); } if (pageNo == null || pageNo < 0) { pageNo = 1; } if (pageSize == null || pageSize < 0 || pageSize > 10) { pageSize = 10; } if (province != null) { params.put("province", province); } return (Pagination) findPage("findAdminListByPage", "findAdminCount", params, pageNo, pageSize); } @Override public int insert(Admin ad) { return adminMapper.insert(ad); } @Override public int updateByPrimaryKeySelective(Admin ad, List roleIds) { Map params = new HashMap<>(); params.put("uid", ad.getId()); params.put("roles", roleIds); if (ad.getId() != "1") { userRoleMapper.deleteByUserId(ad.getId()); if (!roleIds.isEmpty()) { userRoleMapper.insertBatch(params); } TokenManager.clearUserAuthByUserId(ad.getId()); } return adminMapper.updateByPrimaryKeySelective(ad); } @Override public int updateByPrimaryKey(Admin a) { return adminMapper.updateByPrimaryKeySelective(a); } @Override public AdminDetail selectAdminDetail(String id) { Admin a = adminMapper.selectByPrimaryKey(id); if (null == a) { return null; } AdminDetail ad = new AdminDetail(); BeanUtils.copyProperties(a, ad); ad.setRoles(adminMapper.selectRolesByPrimaryKey(id)); return null; } @Override public List selectCognizanceConsultant() { return adminMapper.selectCognizanceConsultant(); } @Override public List selectPatentAuthor() { return adminMapper.selectPatentAuthor(); } @Override public List selectPatentPrincipal() { return adminMapper.selectPatentPrincipal(); } @Override public List selectCopyrightConsultant() { return adminMapper.selectCopyrightConsultant(); } @Override public List selectCognizancePrincipal() { return adminMapper.selectCognizancePrincipal(); } @Override public List selectCopyrightPrincipal() { return adminMapper.selectCopyrightPrincipal(); } @Override public List selectTechprojectConsultant() { return adminMapper.selectTechprojectConsultant(); } @Override public List selectTechprojectPrincipal() { return adminMapper.selectTechprojectPrincipal(); } @Override public List selectRoleByPrimaryKey(String uid) { return adminMapper.selectRoleByPrimaryKey(uid); } @Override public List listAuditor() { return userRoleMapper.listAuditor(); } @Override public Map selectAccoutManager() { return disposeAdminList(adminMapper.selectAccoutManager()); } @Override public Map selectTechnician() { return disposeAdminList(adminMapper.selectTechnician()); } @Override public Map selectSalesman() { return disposeAdminList(adminMapper.selectSalesman()); } @Override public Map selectContractManager() { return disposeAdminList(adminMapper.selectContractManager()); } @Override public Map selectTechBroder() { return disposeAdminList(adminMapper.selectTechBroder()); } @Override public int insertNewAdmin(Admin ad) { return adminMapper.insert(ad); } @Override public Map listAdminSelect() { if (TokenManager.hasRole(AFTConstants.SUPERADMIN)) { return disposeAdminList(adminMapper.listAdminSelectBySuperAdmin()); } else if (TokenManager.hasRole(AFTConstants.AREAADMIN)) { List provinceList = adminLocationMapper .selectProvinceWhereCityIsNullByAdminId(TokenManager.getAdminId()); List cityList = adminLocationMapper.selectCityByAdminId(TokenManager.getAdminId()); provinceList.addAll(cityList); return disposeAdminList(adminMapper.listAdminSelectByAreaAdmin(provinceList, cityList)); } return null; } private Map disposeAdminList(List list) { Map map = new TreeMap(); for (Admin o : list) { map.put(o.getId(), o.getName()); } return map; } @Override public List listAdminByName(String name) { return adminMapper.listAdminByName(name); } @Override public List selectDepartmentStaff(String departmentId, String name) { return adminMapper.selectDepartmentStaff( departmentId, name); } @Override public int updateLockAdmin() { int count=0; List list=adminMapper.selectAllAdmin(null);//获取所有用户 List>aList=groupList(list);//拆分成多个 String lockIds = ""; for(List al:aList){ for (Admin a : al) { String pwd=a.getPassword(); a.setPassword("123456"); String pwd2=passwordUtil.getEncryptPwd(a); if (pwd.equals(pwd2)) { lockIds += a.getId() + ","; } } if(lockIds.length()>0){ try { lockIds = "'" + lockIds.substring(0,lockIds.length()-1).replace(",", "','") + "'"; count+= adminMapper.updateLockIds(lockIds); lockIds = ""; Thread.sleep(1000); } catch (InterruptedException e) { LoggerUtils.error(getClass(), "未修改管理员锁定失败", e); } } } return count; } /* * List分割 */ public List> groupList(List list) { List> listGroup = new ArrayList>(); int listSize = list.size(); //子集合的长度 int toIndex = 100; for (int i = 0; i < list.size(); i += toIndex) { if (i + toIndex > listSize) { toIndex = listSize - i; } List newList = list.subList(i, i + toIndex); listGroup.add(newList); } return listGroup; } /* public static void main(String[] args) { List list=new ArrayList<>(); for (int i = 1; i < 888; i++) { list.add(String.valueOf(i)); } List> listGroup = new ArrayList>(); int listSize = list.size(); //子集合的长度 int toIndex = 100; for (int i = 0; i < list.size(); i += 100) { if (i + 100 > listSize) { toIndex = listSize - i; } List newList = list.subList(i, i + toIndex); listGroup.add(newList); } System.out.println(listGroup); }*/ @Override public List getListDefaultPassword(String depId) { List list=adminMapper.selectAllAdmin(depId); List list2=new ArrayList<>(); for (Admin a : list) { String pwd=a.getPassword(); a.setPassword("123456"); String pwd2=passwordUtil.getEncryptPwd(a); if (pwd.equals(pwd2)) { list2.add(a); } } return list2; } @Override public List getAdminRoleList(String roleName) { return adminMapper.getAdminRoleList(roleName); } @Override public int addFrequentContacts(String id) { String []ss=id.split(","); List list=adminMapper.getaidFrequentContacts(TokenManager.getAdminId()==null?"1":TokenManager.getAdminId()); for (String s : ss) { boolean flag=true; for (String s2 : list) { if (s.equals(s2)) { flag=false; } } if (flag) { AdminContacts a=new AdminContacts(); a.setId(UUID.randomUUID().toString()); a.setAid(TokenManager.getAdminId()==null?"1":TokenManager.getAdminId()); a.setContactsId(s); adminMapper.addAdminContacts(a); } } return 1; } @SuppressWarnings("unchecked") @Override public Pagination frequentContactsList(String depId, String name, Integer pageSize, Integer pageNo) { Map params = new HashMap(); if(pageSize==null||pageSize<0)pageSize=10; if(pageNo==null||pageNo<0)pageNo=1; if (StringUtils.isNotBlank(depId)) params.put("depId", depId); if (StringUtils.isNotBlank(name)) params.put("name", name); params.put("aid", TokenManager.getAdminId()==null?"1":TokenManager.getAdminId()); Pagination p = (Pagination)findPage("frequentContactsList", "frequentContactsCount", params, pageNo, pageSize); return p; } @Override public int deleteFrequentContacts(String id) { return adminMapper.deleteFrequentContacts(id); } }