package com.goafanti.admin.service.impl; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.TreeMap; import java.util.UUID; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import com.goafanti.admin.bo.AdminDetail; import com.goafanti.admin.bo.AdminListBo; import com.goafanti.admin.service.NewAdminService; import com.goafanti.common.constant.AFTConstants; import com.goafanti.common.dao.AdminLocationMapper; import com.goafanti.common.dao.AdminMapper; import com.goafanti.common.dao.UserRoleMapper; import com.goafanti.common.model.Admin; import com.goafanti.common.model.UserRole; 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; @Service public class NewAdminServiceImpl extends BaseMybatisDao implements NewAdminService { @Autowired private AdminMapper adminMapper; @Autowired private UserRoleMapper userRoleMapper; @Autowired private AdminLocationMapper adminLocationMapper; @Override public Pagination listAdmin(AdminListBo alb, String rid,String roleName,Integer pageNo, Integer pageSize) { Map params = new HashMap(); if(StringUtils.isNotBlank(alb.getName())) params.put("name", alb.getName()); if(StringUtils.isNotBlank(roleName)) params.put("roleName", roleName); if(StringUtils.isNotBlank(alb.getDepartmentId())) params.put("departmentId", alb.getDepartmentId()); if(StringUtils.isNotBlank(rid)) params.put("rid", rid); if(StringUtils.isNotBlank(alb.getDuty())) params.put("duty",alb.getDuty()); if(StringUtils.isNotBlank(alb.getPosition())) params.put("position", alb.getPosition()); if(StringUtils.isNotBlank(alb.getStatus())) params.put("status", alb.getStatus()); if(StringUtils.isNotBlank(alb.getMobile())) params.put("mobile", alb.getMobile()); if(StringUtils.isNotBlank(alb.getSuperiorId())) params.put("superiorId", alb.getSuperiorId()); @SuppressWarnings("unchecked") Pagination p=(Pagination)findPage("selectAdminListByPage","selectAdminCount",params,pageNo,pageSize); @SuppressWarnings("unchecked") List list=(List)p.getList(); for(AdminListBo i:list){ i.setRoles(adminMapper.selectRolesByUid(i.getId())); i.setRolesId(adminMapper.selectRolesIdByUid(i.getId())); } return p; } @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); } @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()); } int count=adminMapper.updateByPrimaryKeySelective(ad); //*******下第一级管理员用户修改 String autNo; int n=0; List Nos =adminMapper.selectIDNBySuperiorId(ad.getId()); /*for(Admin i:Nos){ autNo=adminMapper.selectUserNoById(i.getSuperiorId()); if(n<10){ String aut=autNo+"0"+n; if(n>=10){ aut=autNo+n; }else{ aut=autNo+"0"+n; } i.setUserNo(aut); } if(n>=10){ String aut=autNo+n; aut=autNo+n; i.setUserNo(aut); } adminMapper.updateByUserNo(i); n++; //*******下第二级管理员用户修改 int m=0; List Noss =adminMapper.selectIDNBySuperiorId(i.getId()); for(Admin o:Noss){ autNo=adminMapper.selectUserNoById(o.getSuperiorId()); if(m<10){ String aut=autNo+"0"+m; if(m>=10){ aut=autNo+m; }else{ aut=autNo+"0"+m; } o.setUserNo(aut); } if(m>=10){ String aut=autNo+m; aut=autNo+m; o.setUserNo(aut); } adminMapper.updateByUserNo(o); m++; //*******下第三级管理员用户修改 int z=0; List Nosss =adminMapper.selectIDNBySuperiorId(o.getId()); for(Admin p:Nosss){ autNo=adminMapper.selectUserNoById(p.getSuperiorId()); if(z<10){ String aut=autNo+"0"+z; if(z>=10){ aut=autNo+z; }else{ aut=autNo+"0"+z; } p.setUserNo(aut); } if(z>=10){ String aut=autNo+z; aut=autNo+z; p.setUserNo(aut); } adminMapper.updateByUserNo(p); z++; } } }*/ return count; } @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 ,List roleIds) { ad.setStatus("正常"); ad.setId(UUID.randomUUID().toString()); /*String sdepNo=adminMapper.selectUserNoBySuperiorId(ad.getSuperiorId()); int Count=adminMapper.selectCountBySuperiorId(ad.getSuperiorId()); if(Count<10){ String dep=sdepNo+"0"+Count; String sid=adminMapper.selectIdByUserNo(dep); while(sid!=null){ Count=Count+1; if(Count>=10){ dep=sdepNo+Count; }else{ dep=sdepNo+"0"+Count; } sid=adminMapper.selectIdByUserNo(dep); } ad.setUserNo(dep); } if(Count>=10){ String dep=sdepNo+Count; String sid=adminMapper.selectIdByUserNo(dep); while(sid!=null){ Count=Count+1; dep=sdepNo+Count; sid=adminMapper.selectIdByUserNo(dep); } ad.setUserNo(dep); } */ 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.insertn(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() + " " + (StringUtils.isBlank(o.getPosition()) ? "" : o.getPosition())); } return map; } @Override public List listAdminByName(String name) { return adminMapper.listAdminByName(name); } @Override public Admin selectAllByid(String id) { Admin admin=adminMapper.selectAllByid(id); admin.setSuperior(adminMapper.selectNameByid(admin.getSuperiorId())); if(admin.getDistrict()==null){ admin.setDistrict(" "); } if(admin.getHeadPortraitUrl()==null){ admin.setHeadPortraitUrl(""); } return admin; } @Override public int deleteById(String id) { adminMapper.deleteById(id); if(id!="1"){ userRoleMapper.deleteByUserId(id); } return 1; } @Override public List selectAdminByOrg() { return adminMapper.selectSubList(TokenManager.getAdminId()); } @Override public boolean checkAdminRole(List roles, Admin admin) { List list=userRoleMapper. selectAdminRole(AFTConstants.CONSULTANT_MANAGER); if (!roles.isEmpty()) { for (String s : roles) { if (list.size()>0) { if (null==admin) { if (list.get(0).getRid().equals(s)) { return true; } }else { if (list.get(0).getRid().equals(s)&&!list.get(0).getUid().equals((admin.getId()))) { return true; } } } } } return false; } }