package com.goafanti.permission.service.impl; import java.util.Date; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.Set; import java.util.UUID; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import com.goafanti.common.dao.PermissionMapper; import com.goafanti.common.dao.RolePermissionMapper; import com.goafanti.common.dao.UserMapper; import com.goafanti.common.dao.UserRoleMapper; import com.goafanti.common.model.Permission; import com.goafanti.core.mybatis.BaseMybatisDao; import com.goafanti.core.shiro.token.TokenManager; import com.goafanti.permission.service.PermissionService; import com.goafanti.permission.bo.PermissionBo; @Service public class PermissionServiceImpl extends BaseMybatisDao implements PermissionService { @Autowired PermissionMapper permissionMapper; @Autowired UserMapper userMapper; @Autowired RolePermissionMapper rolePermissionMapper; @Autowired UserRoleMapper userRoleMapper; @Override public int insert(List records) { return permissionMapper.insertBatch(records); } @Override public Set findPermissionByUserId(String userId) { return permissionMapper.findPermissionByUserId(userId); } @Override public List findPermissions() { return permissionMapper.findAll(); } @Override public int deleteByPrimaryKeys(List ids) { rolePermissionMapper.deleteByPermissionId(ids); return permissionMapper.deleteByPrimaryKeys(ids); } @Override public int insertn(Permission record) { String id = UUID.randomUUID().toString(); Date now = new Date(); record.setId(id); record.setUrl(record.getUrl()); record.setName(record.getName()); String createId=permissionMapper.selectAdminNameById(TokenManager.getAdminId()); record.setCreateId(createId); record.setCreateTime(now); record.setUpdateTime(now); record.setDeletedSign("0"); int Count=permissionMapper.selectAutNoCount("PM"); if(Count<10){ String aut="PM0"+Count; String sid=permissionMapper.selectIdByAutNo(aut); while(sid!=null){ Count=Count+1; if(Count>=10){ aut="PM"+Count; }else{ aut="PM0"+Count; } sid=permissionMapper.selectIdByAutNo(aut); } record.setAutNo(aut); } if(Count>=10){ String aut="PM"+Count; String sid=permissionMapper.selectIdByAutNo(aut); while(sid!=null){ Count=Count+1; aut="PM"+Count; sid=permissionMapper.selectIdByAutNo(aut); } record.setAutNo(aut); } record.setHierarchies("1");//1第一层 record.setStatus("0");//0正常 1解除 record.setShowOrder("0");//0 record.setSuperId("PM");//顶级为PM permissionMapper.insertn(record); return 1; } @Override public Permission selectSuperIdById(String id) { return permissionMapper.selectSuperIdById(id); } @Override public int insertSubordinate(Permission record) { String id = UUID.randomUUID().toString(); Date now = new Date(); record.setId(id); record.setUrl(record.getUrl()); record.setName(record.getName()); String createId=permissionMapper.selectAdminNameById(TokenManager.getAdminId()); record.setCreateId(createId); record.setCreateTime(now); record.setUpdateTime(now); record.setDeletedSign("0"); String autNo=permissionMapper.selectAutNoByName(record.getSuperId()); int Count=permissionMapper.selectAutNoCount(record.getSuperId()); if(Count<10){ String aut=autNo+"0"+Count; String sid=permissionMapper.selectIdByAutNo(aut); while(sid!=null){ Count=Count+1; if(Count>=10){ aut=autNo+Count; }else{ aut=autNo+"0"+Count; } sid=permissionMapper.selectIdByAutNo(aut); } record.setAutNo(aut); } if(Count>=10){ String aut=autNo+Count; String sid=permissionMapper.selectIdByAutNo(aut); while(sid!=null){ Count=Count+1; aut=autNo+Count; sid=permissionMapper.selectIdByAutNo(aut); } record.setAutNo(aut); } record.setHierarchies("0");//0下层 record.setStatus("0");//0正常 1解除 record.setShowOrder("0");//正常 record.setSuperId(record.getSuperId());//上级名称 permissionMapper.insertn(record); return 1; } @Override public int deleteById(String id) { permissionMapper.deleteById(id); return 1; } @Override public Permission selectAllById(String id) { return permissionMapper.selectAllById(id); } @Override public List selectName(String name) { return permissionMapper.selectName(name); } @Override public int updateById(Permission record) { Date now=new Date(); record.setUpdateTime(now); String autNo=permissionMapper.selectAutNoByName(record.getSuperId()); int Count=permissionMapper.selectAutNoCount(record.getSuperId()); if(Count<10){ String aut=autNo+"0"+Count; String sid=permissionMapper.selectIdByAutNo(aut); while(sid!=null){ Count=Count+1; if(Count>=10){ aut=autNo+Count; }else{ aut=autNo+"0"+Count; } sid=permissionMapper.selectIdByAutNo(aut); } record.setAutNo(aut); } if(Count>=10){ String aut=autNo+Count; String sid=permissionMapper.selectIdByAutNo(aut); while(sid!=null){ Count=Count+1; aut=autNo+Count; sid=permissionMapper.selectIdByAutNo(aut); } record.setAutNo(aut); } if(record.getSuperId().equals("平台超级模块")){ record.setHierarchies("1"); }else{ record.setHierarchies("0"); } System.out.println("name修改:"+record.getName()); permissionMapper.updateById(record); //*******下级编号修改 int n=0; List Nos =permissionMapper.selectIDNBySuperId(record.getName()); for(Permission i:Nos){ autNo=permissionMapper.selectAutNoByName(i.getSuperId()); if(n<10){ String aut=autNo+"0"+n; if(n>=10){ aut=autNo+n; }else{ aut=autNo+"0"+n; } i.setAutNo(aut); } if(n>=10){ String aut=autNo+n; aut=autNo+n; i.setAutNo(aut); } permissionMapper.updateByNumber(i); n++; //*******下下级编号修改 int m=0; List Noss =permissionMapper.selectIDNBySuperId(i.getName()); for(Permission o:Noss){ autNo=permissionMapper.selectAutNoByName(o.getSuperId()); if(m<10){ String aut=autNo+"0"+m; if(m>=10){ aut=autNo+m; }else{ aut=autNo+"0"+m; } o.setAutNo(aut); } if(m>=10){ String aut=autNo+m; aut=autNo+m; o.setAutNo(aut); } permissionMapper.updateByNumber(o); m++; //*******下下级编号修改 int z=0; List Nosss =permissionMapper.selectIDNBySuperId(o.getName()); for(Permission p:Nosss){ autNo=permissionMapper.selectAutNoByName(p.getSuperId()); if(z<10){ String aut=autNo+"0"+z; if(z>=10){ aut=autNo+z; }else{ aut=autNo+"0"+z; } p.setAutNo(aut); } if(z>=10){ String aut=autNo+z; aut=autNo+z; p.setAutNo(aut); } permissionMapper.updateByNumber(p); z++; } } } return permissionMapper.updateById(record); } @Override public Map findPermissionsAll() { Map params = new HashMap(); List one=permissionMapper.selectOneAll(); for (PermissionBo i:one){ String name=permissionMapper.selectNameById(i.getId()); i.setKey(i.getId()); List two=permissionMapper.selectAllBySuperId(name); for(PermissionBo o:two){ String name2=permissionMapper.selectNameById(o.getId()); o.setChildren(permissionMapper.selectAllBySuperId(name2)); o.setKey(o.getId()); List three=permissionMapper.selectAllBySuperId(name2); for(PermissionBo p:three){ String name3=permissionMapper.selectNameById(p.getId()); p.setChildren(permissionMapper.selectAllBySuperId(name3)); p.setKey(p.getId()); } o.setChildren(three); } i.setChildren(two); } params.put("one", one); return params; } }