/** * 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

queryWrapper = new QueryWrapper<>(param); Menu menu = menuMapper.selectOne(queryWrapper); if (menu == null) { return new Menu(); } else { return menu; } } } @Override public String getMenuNameByCode(String code) { if (ToolUtil.isEmpty(code)) { return ""; } else if (code.equals("0")) { return "顶级"; } else { Menu param = new Menu(); param.setCode(code); QueryWrapper queryWrapper = new QueryWrapper<>(param); Menu menu = menuMapper.selectOne(queryWrapper); if (menu == null) { return ""; } else { return menu.getName(); } } } @Override public Long getMenuIdByCode(String code) { if (ToolUtil.isEmpty(code)) { return 0L; } else if (code.equals("0")) { return 0L; } else { Menu menu = new Menu(); menu.setCode(code); QueryWrapper queryWrapper = new QueryWrapper<>(menu); Menu tempMenu = this.menuMapper.selectOne(queryWrapper); return tempMenu.getMenuId(); } } @Override public String getDictName(Long dictId) { if (ToolUtil.isEmpty(dictId)) { return ""; } else { Dict dict = dictMapper.selectById(dictId); if (dict == null) { return ""; } else { return dict.getName(); } } } @Override public String getNoticeTitle(Long dictId) { if (ToolUtil.isEmpty(dictId)) { return ""; } else { Notice notice = noticeMapper.selectById(dictId); if (notice == null) { return ""; } else { return notice.getTitle(); } } } @Override public String getDictsByName(String name, String code) { DictType temp = new DictType(); temp.setName(name); QueryWrapper queryWrapper = new QueryWrapper<>(temp); DictType dictType = dictTypeMapper.selectOne(queryWrapper); if (dictType == null) { return ""; } else { QueryWrapper wrapper = new QueryWrapper<>(); wrapper = wrapper.eq("dict_type_id", dictType.getDictTypeId()); List dicts = dictMapper.selectList(wrapper); for (Dict item : dicts) { if (item.getCode() != null && item.getCode().equals(code)) { return item.getName(); } } return ""; } } @Override public String getDictNameByCode(String dictCode) { if (ToolUtil.isEmpty(dictCode)) { return ""; } else { QueryWrapper dictQueryWrapper = new QueryWrapper<>(); dictQueryWrapper.eq("code", dictCode); Dict dict = dictMapper.selectOne(dictQueryWrapper); if (dict == null) { return ""; } else { return dict.getName(); } } } @Override public String getSexName(String sexCode) { return getDictsByName("性别", sexCode); } @Override public String getStatusName(String status) { return ManagerStatus.getDescription(status); } @Override public String getMenuStatusName(String status) { return MenuStatus.getDescription(status); } @Override public List findInDict(Long id) { if (ToolUtil.isEmpty(id)) { return null; } else { QueryWrapper wrapper = new QueryWrapper<>(); List dicts = dictMapper.selectList(wrapper.eq("pid", id)); if (dicts == null || dicts.size() == 0) { return null; } else { return dicts; } } } @Override public String getCacheObject(String para) { return LogObjectHolder.me().get().toString(); } @Override public List getSubDeptId(Long deptId) { ArrayList deptIds = new ArrayList<>(); if (deptId == null) { return deptIds; } else { List depts = this.deptMapper.likePids(deptId); if (depts != null && depts.size() > 0) { for (Dept dept : depts) { deptIds.add(dept.getDeptId()); } } return deptIds; } } @Override public List getParentDeptIds(Long deptId) { Dept dept = deptMapper.selectById(deptId); String pids = dept.getPids(); String[] split = pids.split(","); ArrayList parentDeptIds = new ArrayList<>(); for (String s : split) { parentDeptIds.add(Long.valueOf(StrUtil.removeSuffix(StrUtil.removePrefix(s, "["), "]"))); } return parentDeptIds; } @Override public String getPositionName(Long userId) { StringBuilder positionNames = new StringBuilder(); List userPosList = this.userPosService.list( new QueryWrapper().eq("user_id", userId)); if (userPosList != null && userPosList.size() > 0) { for (UserPos userPos : userPosList) { Position position = positionService.getById(userPos.getPosId()); if (position != null) { positionNames.append(",").append(position.getName()); } } } return StrUtil.removePrefix(positionNames.toString(), ","); } @Override public String getPositionIds(Long userId) { StringBuilder positionIds = new StringBuilder(); List userPosList = this.userPosService.list( new QueryWrapper().eq("user_id", userId)); if (userPosList != null && userPosList.size() > 0) { for (UserPos userPos : userPosList) { Position position = positionService.getById(userPos.getPosId()); if (position != null) { positionIds.append(",").append(position.getPositionId()); } } } return StrUtil.removePrefix(positionIds.toString(), ","); } }