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 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.AdminService; 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.AdminLocation; 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 AdminServiceImpl extends BaseMybatisDao implements AdminService { @Autowired private AdminMapper adminMapper; @Autowired private UserRoleMapper userRoleMapper; @Autowired private AdminLocationMapper adminLocationMapper; @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); } @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 (TokenManager.hasRole(AFTConstants.SUPERADMIN)) { return (Pagination) findPage("findAdminListByPage", "findAdminCount", params, pageNo, pageSize); } else if (TokenManager.hasRole(AFTConstants.AREAADMIN)) { List provinceList = adminLocationMapper .selectProvinceWhereCityIsNullByAdminId(TokenManager.getAdminId()); List cityList = adminLocationMapper.selectCityByAdminId(TokenManager.getAdminId()); provinceList.addAll(cityList); if (null != provinceList && provinceList.size() > 0){ params.put("provinceList", provinceList); } if (null != cityList && cityList.size() > 0){ params.put("cityList", cityList); } return (Pagination) findPage("findAreaAdminListByPage", "findAreaAdminCount", params, pageNo, pageSize); } return null; } @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, List adminLocationList) { adminLocationMapper.insertBatch(adminLocationList); 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() + " " + (StringUtils.isBlank(o.getPosition()) ? "" : o.getPosition())); } return map; } public static void main(String[] args) { List list1 = new ArrayList<>(); List list2 = new ArrayList<>(); list1.addAll(list2); for (Integer i : list1) { System.out.println(i); } System.out.println(list1.size()); } }