/**
|
* Copyright 2018-2020 stylefeng & fengshuonan (https://gitee.com/stylefeng)
|
* <p>
|
* 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
|
* <p>
|
* http://www.apache.org/licenses/LICENSE-2.0
|
* <p>
|
* 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<Menu> 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<Menu> 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<Menu> 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<DictType> queryWrapper = new QueryWrapper<>(temp);
|
DictType dictType = dictTypeMapper.selectOne(queryWrapper);
|
if (dictType == null) {
|
return "";
|
} else {
|
QueryWrapper<Dict> wrapper = new QueryWrapper<>();
|
wrapper = wrapper.eq("dict_type_id", dictType.getDictTypeId());
|
List<Dict> 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<Dict> 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<Dict> findInDict(Long id) {
|
if (ToolUtil.isEmpty(id)) {
|
return null;
|
} else {
|
QueryWrapper<Dict> wrapper = new QueryWrapper<>();
|
List<Dict> 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<Long> getSubDeptId(Long deptId) {
|
ArrayList<Long> deptIds = new ArrayList<>();
|
|
if (deptId == null) {
|
return deptIds;
|
} else {
|
List<Dept> depts = this.deptMapper.likePids(deptId);
|
if (depts != null && depts.size() > 0) {
|
for (Dept dept : depts) {
|
deptIds.add(dept.getDeptId());
|
}
|
}
|
|
return deptIds;
|
}
|
}
|
|
@Override
|
public List<Long> getParentDeptIds(Long deptId) {
|
Dept dept = deptMapper.selectById(deptId);
|
String pids = dept.getPids();
|
String[] split = pids.split(",");
|
ArrayList<Long> 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<UserPos> userPosList = this.userPosService.list(
|
new QueryWrapper<UserPos>().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<UserPos> userPosList = this.userPosService.list(
|
new QueryWrapper<UserPos>().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(), ",");
|
}
|
|
}
|