package com.goafanti.admin.service.impl; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.TreeMap; 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.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, Integer pageNo, Integer pageSize) { Map params = new HashMap(); if(StringUtils.isNotBlank(alb.getName())) params.put("name", alb.getName()); 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())); } return p; } @Override public List selectAllAdmin() { return adminMapper.selectAllAdmin(); } @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()); } 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); } int count=adminMapper.updateByPrimaryKeySelective(ad); 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("正常"); 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; } }