【7.1.2】【app】应用管理增加图标字段

pull/22/head
fengshuonan 2021-08-24 20:16:14 +08:00
parent bc8a6e57b8
commit c4e4ee266f
6 changed files with 137 additions and 15 deletions

View File

@ -25,6 +25,7 @@
package cn.stylefeng.roses.kernel.system.api;
import cn.stylefeng.roses.kernel.rule.pojo.dict.SimpleDict;
import cn.stylefeng.roses.kernel.system.api.pojo.app.SysAppResult;
import java.util.Set;
@ -65,4 +66,12 @@ public interface AppServiceApi {
*/
String getActiveAppCode();
/**
*
*
* @author fengshuonan
* @date 2021/8/24 20:12
*/
SysAppResult getAppInfoByAppCode(String appCode);
}

View File

@ -76,9 +76,16 @@ public class SysAppRequest extends BaseRequest {
columnName = "app_code",
idFieldName = "app_id",
excludeLogicDeleteItems = true)
@ChineseDescription("编码不能为空")
@ChineseDescription("应用编码")
private String appCode;
/**
*
*/
@NotBlank(message = "应用图标不能为空", groups = {add.class, edit.class})
@ChineseDescription("应用图标")
private String appIcon;
/**
* Y-N-
*/

View File

@ -0,0 +1,84 @@
/*
* Copyright [2020-2030] [https://www.stylefeng.cn]
*
* 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.
*
* GunsAPACHE LICENSE 2.0使
*
* 1.LICENSE
* 2.Guns
* 3.
* 4. https://gitee.com/stylefeng/guns
* 5. https://gitee.com/stylefeng/guns
* 6.
*/
package cn.stylefeng.roses.kernel.system.api.pojo.app;
import cn.stylefeng.roses.kernel.db.api.pojo.entity.BaseEntity;
import cn.stylefeng.roses.kernel.scanner.api.annotation.field.ChineseDescription;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
*
*
* @author fengshuonan
* @date 2020/11/24 21:05
*/
@Data
@EqualsAndHashCode(callSuper = true)
public class SysAppResult extends BaseEntity {
/**
* id
*/
@ChineseDescription("主键id")
private Long appId;
/**
*
*/
@ChineseDescription("应用名称")
private String appName;
/**
*
*/
@ChineseDescription("编码")
private String appCode;
/**
*
*/
@ChineseDescription("应用图标")
private String appIcon;
/**
* Y-N-
*/
@ChineseDescription("是否默认激活Y-是N-否,激活的应用下的菜单会在首页默认展开")
private String activeFlag;
/**
* 1-2-
*/
@ChineseDescription("状态1-启用2-禁用")
private Integer statusFlag;
/**
* Y-N-
*/
@ChineseDescription("是否删除Y-已删除N-未删除")
private String delFlag;
}

View File

@ -65,6 +65,13 @@ public class SysApp extends BaseEntity {
@ChineseDescription("编码")
private String appCode;
/**
*
*/
@TableField("app_icon")
@ChineseDescription("应用图标")
private String appIcon;
/**
* Y-N-
*/

View File

@ -38,6 +38,7 @@ import cn.stylefeng.roses.kernel.system.api.MenuServiceApi;
import cn.stylefeng.roses.kernel.system.api.exception.SystemModularException;
import cn.stylefeng.roses.kernel.system.api.exception.enums.app.AppExceptionEnum;
import cn.stylefeng.roses.kernel.system.api.pojo.app.SysAppRequest;
import cn.stylefeng.roses.kernel.system.api.pojo.app.SysAppResult;
import cn.stylefeng.roses.kernel.system.modular.app.entity.SysApp;
import cn.stylefeng.roses.kernel.system.modular.app.mapper.SysAppMapper;
import cn.stylefeng.roses.kernel.system.modular.app.service.SysAppService;
@ -73,6 +74,7 @@ public class SysAppServiceImpl extends ServiceImpl<SysAppMapper, SysApp> impleme
// 设置名称和编码
sysApp.setAppName(sysAppRequest.getAppName());
sysApp.setAppCode(sysAppRequest.getAppCode());
sysApp.setAppIcon(sysAppRequest.getAppIcon());
// 默认不激活
sysApp.setActiveFlag(YesOrNotEnum.N.getCode());
@ -246,6 +248,21 @@ public class SysAppServiceImpl extends ServiceImpl<SysAppMapper, SysApp> impleme
}
}
@Override
public SysAppResult getAppInfoByAppCode(String appCode) {
LambdaQueryWrapper<SysApp> lambdaQueryWrapper = new LambdaQueryWrapper<>();
lambdaQueryWrapper.eq(SysApp::getAppCode, appCode);
SysApp sysApp = this.getOne(lambdaQueryWrapper, false);
if (sysApp != null) {
SysAppResult sysAppResult = new SysAppResult();
BeanUtil.copyProperties(sysApp, sysAppResult);
return sysAppResult;
} else {
return new SysAppResult();
}
}
/**
*
*

View File

@ -25,14 +25,13 @@
package cn.stylefeng.roses.kernel.system.modular.menu.factory;
import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.extra.spring.SpringUtil;
import cn.stylefeng.roses.kernel.rule.constants.TreeConstants;
import cn.stylefeng.roses.kernel.rule.enums.YesOrNotEnum;
import cn.stylefeng.roses.kernel.rule.pojo.dict.SimpleDict;
import cn.stylefeng.roses.kernel.rule.tree.factory.DefaultTreeBuildFactory;
import cn.stylefeng.roses.kernel.system.api.AppServiceApi;
import cn.stylefeng.roses.kernel.system.api.pojo.app.SysAppResult;
import cn.stylefeng.roses.kernel.system.api.pojo.menu.MenuAndButtonTreeResponse;
import cn.stylefeng.roses.kernel.system.api.pojo.menu.antd.AntdMenuSelectTreeNode;
import cn.stylefeng.roses.kernel.system.api.pojo.menu.antd.AntdSysMenuDTO;
@ -42,7 +41,10 @@ import cn.stylefeng.roses.kernel.system.modular.menu.entity.SysMenu;
import cn.stylefeng.roses.kernel.system.modular.menu.entity.SysMenuButton;
import java.math.BigDecimal;
import java.util.*;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* antd vue
@ -289,17 +291,13 @@ public class AntdMenusFactory {
// 获取应用的详细信息
AppServiceApi appServiceApi = SpringUtil.getBean(AppServiceApi.class);
Set<SimpleDict> appsByAppCodes = appServiceApi.getAppsByAppCodes(CollectionUtil.set(false, appCode));
if (appsByAppCodes.size() > 0) {
SimpleDict appInfo = appsByAppCodes.iterator().next();
antdSysMenuDTO.setTitle(appInfo.getName());
antdSysMenuDTO.setIcon("PieChartTwoTone");
antdSysMenuDTO.setPath("/" + appCode);
antdSysMenuDTO.setComponent(null);
antdSysMenuDTO.setHide(false);
antdSysMenuDTO.setUid(null);
}
SysAppResult appInfoByAppCode = appServiceApi.getAppInfoByAppCode(appCode);
antdSysMenuDTO.setTitle(appInfoByAppCode.getAppName());
antdSysMenuDTO.setIcon(appInfoByAppCode.getAppIcon());
antdSysMenuDTO.setPath("/" + appCode);
antdSysMenuDTO.setComponent(null);
antdSysMenuDTO.setHide(false);
antdSysMenuDTO.setUid(null);
return antdSysMenuDTO;
}