/** * Copyright 2018-2020 stylefeng & fengshuonan (https://gitee.com/stylefeng) *
* Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at *
* http://www.apache.org/licenses/LICENSE-2.0 *
* Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package cn.stylefeng.guns.sys.core.constant.factory; import cn.hutool.core.convert.Convert; import cn.hutool.core.util.StrUtil; import cn.stylefeng.guns.sys.core.constant.cache.Cache; import cn.stylefeng.guns.sys.core.constant.cache.CacheKey; import cn.stylefeng.guns.sys.core.constant.state.ManagerStatus; import cn.stylefeng.guns.sys.core.constant.state.MenuStatus; import cn.stylefeng.guns.sys.core.log.LogObjectHolder; import cn.stylefeng.guns.sys.modular.system.entity.*; import cn.stylefeng.guns.sys.modular.system.mapper.*; import cn.stylefeng.guns.sys.modular.system.service.PositionService; import cn.stylefeng.guns.sys.modular.system.service.UserPosService; import cn.stylefeng.roses.core.util.SpringContextHolder; import cn.stylefeng.roses.core.util.ToolUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import org.springframework.cache.annotation.Cacheable; import org.springframework.context.annotation.DependsOn; import org.springframework.stereotype.Component; import java.util.ArrayList; import java.util.List; /** * 快捷查询方法 * * @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 DictTypeMapper dictTypeMapper = SpringContextHolder.getBean(DictTypeMapper.class); private UserMapper userMapper = SpringContextHolder.getBean(UserMapper.class); private MenuMapper menuMapper = SpringContextHolder.getBean(MenuMapper.class); private NoticeMapper noticeMapper = SpringContextHolder.getBean(NoticeMapper.class); private UserPosService userPosService = SpringContextHolder.getBean(UserPosService.class); private PositionService positionService = SpringContextHolder.getBean(PositionService.class); public static IConstantFactory me() { return SpringContextHolder.getBean("constantFactory"); } @Override public String getUserNameById(Long userId) { User user = userMapper.selectById(userId); if (user != null) { return user.getName(); } else { return "--"; } } @Override public String getUserAccountById(Long userId) { User user = userMapper.selectById(userId); if (user != null) { return user.getAccount(); } else { return "--"; } } @Override @Cacheable(value = Cache.CONSTANT, key = "'" + CacheKey.ROLES_NAME + "'+#roleIds") public String getRoleName(String roleIds) { if (ToolUtil.isEmpty(roleIds)) { return ""; } Long[] roles = Convert.toLongArray(roleIds); StringBuilder sb = new StringBuilder(); for (Long role : roles) { Role roleObj = roleMapper.selectById(role); if (ToolUtil.isNotEmpty(roleObj) && ToolUtil.isNotEmpty(roleObj.getName())) { sb.append(roleObj.getName()).append(","); } } return StrUtil.removeSuffix(sb.toString(), ","); } @Override @Cacheable(value = Cache.CONSTANT, key = "'" + CacheKey.SINGLE_ROLE_NAME + "'+#roleId") public String getSingleRoleName(Long roleId) { if (0 == roleId) { return "--"; } Role roleObj = roleMapper.selectById(roleId); if (ToolUtil.isNotEmpty(roleObj) && ToolUtil.isNotEmpty(roleObj.getName())) { return roleObj.getName(); } return ""; } @Override @Cacheable(value = Cache.CONSTANT, key = "'" + CacheKey.SINGLE_ROLE_TIP + "'+#roleId") public String getSingleRoleTip(Long roleId) { if (0 == roleId) { return "--"; } Role roleObj = roleMapper.selectById(roleId); if (ToolUtil.isNotEmpty(roleObj) && ToolUtil.isNotEmpty(roleObj.getName())) { return roleObj.getDescription(); } return ""; } @Override @Cacheable(value = Cache.CONSTANT, key = "'" + CacheKey.DEPT_NAME + "'+#deptId") public String getDeptName(Long deptId) { if (deptId == null) { return ""; } else if (deptId == 0L) { return "顶级"; } else { Dept dept = deptMapper.selectById(deptId); if (ToolUtil.isNotEmpty(dept) && ToolUtil.isNotEmpty(dept.getFullName())) { return dept.getFullName(); } return ""; } } @Override public String getMenuNames(String menuIds) { Long[] menus = Convert.toLongArray(menuIds); StringBuilder sb = new StringBuilder(); for (Long menu : menus) { Menu menuObj = menuMapper.selectById(menu); if (ToolUtil.isNotEmpty(menuObj) && ToolUtil.isNotEmpty(menuObj.getName())) { sb.append(menuObj.getName()).append(","); } } return StrUtil.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 Menu getMenuByCode(String code) { if (ToolUtil.isEmpty(code)) { return new Menu(); } else if (code.equals("0")) { return new Menu(); } else { Menu param = new Menu(); param.setCode(code); QueryWrapper