package com.dsh.guns.core.common.constant.factory; import java.util.ArrayList; import java.util.List; import java.util.Objects; import org.springframework.cache.annotation.Cacheable; import org.springframework.context.annotation.DependsOn; import org.springframework.stereotype.Component; import com.dsh.guns.core.util.SpringContextHolder; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.dsh.course.mapper.*; import com.dsh.guns.modular.system.controller.util.Convert; import org.apache.commons.lang3.StringUtils; import com.dsh.guns.core.common.constant.cache.Cache; import com.dsh.guns.core.common.constant.cache.CacheKey; import com.dsh.guns.core.common.constant.state.ManagerStatus; import com.dsh.guns.core.common.constant.state.MenuStatus; import com.dsh.guns.core.log.LogObjectHolder; import com.dsh.guns.core.support.StrKit; import com.dsh.guns.core.util.ToolUtil; import com.dsh.guns.modular.system.model.Dept; import com.dsh.guns.modular.system.model.Dict; import com.dsh.guns.modular.system.model.Menu; import com.dsh.guns.modular.system.model.Notice; import com.dsh.guns.modular.system.model.Role; import com.dsh.guns.modular.system.model.User; /** * 常量的生产工厂 * * @author fengshuonan * @date 2017年2月13日 下午10:55:21 */ @Component @DependsOn("springContextHolder") public class ConstantFactory implements IConstantFactory { private RoleMapper roleMapper = SpringContextHolder.getBean(RoleMapper.class); private DeptMapper deptMapper = SpringContextHolder.getBean(DeptMapper.class); private DictMapper dictMapper = SpringContextHolder.getBean(DictMapper.class); private UserMapper userMapper = SpringContextHolder.getBean(UserMapper.class); private MenuMapper menuMapper = SpringContextHolder.getBean(MenuMapper.class); private NoticeMapper noticeMapper = SpringContextHolder.getBean(NoticeMapper.class); public static IConstantFactory me() { return SpringContextHolder.getBean("constantFactory"); } /** * 根据用户id获取用户名称 * * @author stylefeng * @Date 2017/5/9 23:41 */ @Override public String getUserNameById(Integer userId) { User user = userMapper.selectById(userId); if (user != null) { return user.getName(); } else { return "--"; } } /** * 根据用户id获取用户账号 * * @author stylefeng * @date 2017年5月16日21:55:371 */ @Override public String getUserAccountById(Integer userId) { User user = userMapper.selectById(userId); if (user != null) { return user.getAccount(); } else { return "--"; } } /** * 通过角色ids获取角色名称 */ @Override @Cacheable(value = Cache.CONSTANT, key = "'" + CacheKey.ROLES_NAME + "'+#roleIds") public String getRoleName(String roleIds) { Integer[] roles = Convert.toIntArray(roleIds); StringBuilder sb = new StringBuilder(); for (int role : roles) { Role roleObj = roleMapper.selectById(role); if (!Objects.isNull(roleObj) && !StringUtils.isEmpty(roleObj.getName())) { sb.append(roleObj.getName()).append(","); } } return StrKit.removeSuffix(sb.toString(), ","); } /** * 通过角色id获取角色名称 */ @Override @Cacheable(value = Cache.CONSTANT, key = "'" + CacheKey.SINGLE_ROLE_NAME + "'+#roleId") public String getSingleRoleName(Integer roleId) { if (0 == roleId) { return "--"; } Role roleObj = roleMapper.selectById(roleId); if (!Objects.isNull(roleObj) && !StringUtils.isEmpty(roleObj.getName())) { return roleObj.getName(); } return ""; } /** * 通过角色id获取角色英文名称 */ @Override @Cacheable(value = Cache.CONSTANT, key = "'" + CacheKey.SINGLE_ROLE_TIP + "'+#roleId") public String getSingleRoleTip(Integer roleId) { if (0 == roleId) { return "--"; } Role roleObj = roleMapper.selectById(roleId); if (!Objects.isNull(roleObj) && !StringUtils.isEmpty(roleObj.getName())) { return roleObj.getTips(); } return ""; } /** * 获取部门名称 */ @Override @Cacheable(value = Cache.CONSTANT, key = "'" + CacheKey.DEPT_NAME + "'+#deptId") public String getDeptName(Integer deptId) { Dept dept = deptMapper.selectById(deptId); if (!Objects.isNull(dept) && !StringUtils.isEmpty(dept.getFullname())) { return dept.getFullname(); } return ""; } /** * 获取菜单的名称们(多个) */ @Override public String getMenuNames(String menuIds) { Integer[] menus = Convert.toIntArray(menuIds); StringBuilder sb = new StringBuilder(); for (int menu : menus) { Menu menuObj = menuMapper.selectById(menu); if (!Objects.isNull(menuObj) && !StringUtils.isEmpty(menuObj.getName())) { sb.append(menuObj.getName()).append(","); } } return StrKit.removeSuffix(sb.toString(), ","); } /** * 获取菜单名称 */ @Override public String getMenuName(Long menuId) { if (ToolUtil.isEmpty(menuId)) { return ""; } else { Menu menu = menuMapper.selectById(menuId); if (menu == null) { return ""; } else { return menu.getName(); } } } /** * 获取菜单名称通过编号 */ @Override public String getMenuNameByCode(String code) { if (ToolUtil.isEmpty(code)) { return ""; } else { Menu param = new Menu(); param.setCode(code); Menu menu = menuMapper.selectOne(new QueryWrapper