Commit ba46a271 authored by chenhao's avatar chenhao

Merge branch 'developer' of http://172.16.10.76/moa/amos-boot-biz into developer

parents 43b5268e bed2a8ee
package com.yeejoin.amos.boot.biz.common.dto;
import com.yeejoin.amos.feign.privilege.model.PermissionModel;
import lombok.Data;
/**
* @description:
* @author: tw
* @createDate: 2021/9/8
*/
@Data
public class PermissionModelDto {
private Double value;
private String permissionName;
private Long parentId;
private String permissionType;
private String frontComponent;
private String icon;
private String extraIcon;
private String path;
private String defaultRoute;
private Boolean isRoute;
private Boolean isBlank;
private String authCode;
private String authType;
private Integer sort;
private String menuAgent;
private String agencyCode;
private String appCode;
private String appName;
private Boolean hasPermission;
private Boolean isWarp;
private Boolean fixed;
private String warpProps;
private Long warpGroupSeq;
private java.util.Collection<PermissionModelDto> children;
private Long sequenceNbr;
}
package com.yeejoin.amos.boot.biz.common.enums;
import lombok.AllArgsConstructor;
/**
* @description:
* @author: tw
* @createDate: 2021/9/8
*/
@AllArgsConstructor
public enum HomePageEnum {
DISPATCHMAP("dispatchMap", "com.yeejoin.amos.boot.module.command.biz.service.impl.DispatchMapServiceImpl");
private String code;//对应菜单组件名称
private String url;//组件值对应实现类的包名
public String getCode() {
return code;
}
public void setCode(String code) {
this.code = code;
}
public String getUrl() {
return url;
}
public void setUrl(String url) {
this.url = url;
}
public static HomePageEnum statOf(String code) {
for (HomePageEnum state : values())
if (state.getCode().equals(code))
return state;
return null;
}
}
package com.yeejoin.amos.boot.biz.common.utils;
import com.yeejoin.amos.boot.biz.common.dto.PermissionModelDto;
import org.springframework.web.multipart.MultipartFile;
import java.util.List;
/***
*
*文件类
......@@ -10,4 +13,5 @@ import org.springframework.web.multipart.MultipartFile;
public interface FileService {
String uploadFile(MultipartFile file,String product,String appKey,String token );
List<PermissionModelDto> currentPermissionTree();
}
package com.yeejoin.amos.boot.module.command.api.service;
/**
*
* 首页实现类
* */
public interface IHomePageService {
/**
* 首页标签统一填充数据接口
*
* ***/
public Object getHomePageData();
}
package com.yeejoin.amos.boot.module.command.biz.controller;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.metadata.IPage;
......@@ -7,6 +8,8 @@ import com.baomidou.mybatisplus.core.metadata.OrderItem;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.google.common.collect.Lists;
import com.yeejoin.amos.boot.biz.common.controller.BaseController;
import com.yeejoin.amos.boot.biz.common.dto.PermissionModelDto;
import com.yeejoin.amos.boot.biz.common.enums.HomePageEnum;
import com.yeejoin.amos.boot.biz.common.service.IDataDictionaryService;
import com.yeejoin.amos.boot.biz.common.utils.WordConverterUtils;
import com.yeejoin.amos.boot.module.command.api.dao.SeismometeorologyDtoDao;
......@@ -58,6 +61,7 @@ import com.yeejoin.amos.boot.module.jcs.api.service.IAlertFormValueService;
import com.yeejoin.amos.boot.module.jcs.api.service.IAlertSubmittedService;
import com.yeejoin.amos.boot.module.jcs.api.service.IPowerTransferCompanyService;
import com.yeejoin.amos.boot.module.jcs.api.service.IPowerTransferService;
import com.yeejoin.amos.feign.privilege.model.PermissionModel;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
......@@ -82,6 +86,7 @@ import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.File;
import java.io.FileInputStream;
import java.lang.reflect.Method;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
......@@ -695,9 +700,71 @@ public class CommandController extends BaseController {
return ResponseHelper.buildResponse(powerTransferService.getPowerCompanyCountDtocount(id));
}
@TycloudOperation( needAuth = true, ApiLevel = UserType.AGENCY)
@GetMapping(value = "currentPermissionTree")
@ApiOperation(httpMethod = "GET", value = "用户菜单", notes = "用户菜单")
public ResponseModel<List<PermissionModelDto>> currentPermissionTree() {
//获取用户app 菜单
List<PermissionModelDto> list= remoteSecurityService.currentPermissionTree();
List<PermissionModelDto> listdate= getHomePermissionModel(list);
getPermissionModel(listdate);
return ResponseHelper.buildResponse(listdate);
}
public List<PermissionModelDto> getHomePermissionModel(List<PermissionModelDto> list) {
if(list!=null && !list.isEmpty()){
for (PermissionModelDto itme : list) {
if("Home".equals(itme.getFrontComponent())){
String userStr = JSON.toJSONString(itme.getChildren());
List<PermissionModelDto> userList = JSON.parseArray(userStr, PermissionModelDto.class);
return userList;
}
if(itme.getChildren()!=null&&!itme.getChildren().isEmpty()){
String userStr = JSON.toJSONString(itme.getChildren());
List<PermissionModelDto> userList = JSON.parseArray(userStr, PermissionModelDto.class);
return getHomePermissionModel(userList);
}
}
}
return null;
}
public void getPermissionModel(List<PermissionModelDto> list) {
if(list!=null && !list.isEmpty()){
list.forEach(itme->{
HomePageEnum homePageEnum= HomePageEnum.statOf(itme.getFrontComponent());
if(itme.getFrontComponent()!=null&&homePageEnum !=null){
try {
Class clz = Class.forName(homePageEnum.getUrl());
Object entity = clz.newInstance();
Method repay1 = clz.getDeclaredMethod("getHomePageData");
Object value = repay1.invoke(entity);
itme.setValue(value!=null?Double.valueOf(value.toString()):0);
if(itme.getChildren()!=null&&!itme.getChildren().isEmpty()){
String userStr = JSON.toJSONString(itme.getChildren());
List<PermissionModelDto> userList = JSON.parseArray(userStr, PermissionModelDto.class);
getPermissionModel(userList);
itme.setChildren(userList);
}
} catch (Exception e) {
e.printStackTrace();
}
}else{
if(itme.getChildren()!=null&&!itme.getChildren().isEmpty()){
String userStr = JSON.toJSONString(itme.getChildren());
List<PermissionModelDto> userList = JSON.parseArray(userStr, PermissionModelDto.class);
getPermissionModel(userList);
itme.setChildren(userList);
}
}
});
}
}
/**
*
*
......
package com.yeejoin.amos.boot.module.command.biz.service.impl;
import com.yeejoin.amos.boot.module.command.api.service.IHomePageService;
/**
* @description:
* @author: tw
* @createDate: 2021/9/8
*/
public class DispatchMapServiceImpl implements IHomePageService {
//实现首页dispatchMap
@Override
public Object getHomePageData() {
return 0;
}
}
package com.yeejoin.amos.boot.module.command.biz.service.impl;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.yeejoin.amos.boot.biz.common.dto.PermissionModelDto;
import com.yeejoin.amos.boot.biz.common.utils.FileService;
import com.yeejoin.amos.component.feign.config.InnerInvokException;
import com.yeejoin.amos.component.feign.model.FeignClientResult;
import com.yeejoin.amos.feign.privilege.Privilege;
import com.yeejoin.amos.feign.systemctl.Systemctl;
import org.bouncycastle.jcajce.provider.asymmetric.ec.SignatureSpi.ecCVCDSA;
import org.springframework.stereotype.Service;
import org.springframework.web.multipart.MultipartFile;
import org.typroject.tyboot.core.foundation.context.RequestContext;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
/***
......@@ -46,5 +49,22 @@ public class RemoteSecurityService implements FileService{
}
}
@Override
public List<PermissionModelDto> currentPermissionTree() {
List<Object> dictionarieModel = null;
FeignClientResult feignClientResult;
try {
feignClientResult = Privilege.permissionClient.currentPermissionTree( "APP",null,null,null );
dictionarieModel = (List<Object>) feignClientResult.getResult();
} catch (InnerInvokException e) {
e.printStackTrace();
}
String userStr = JSON.toJSONString(dictionarieModel);
List<PermissionModelDto> userList = JSON.parseArray(userStr, PermissionModelDto.class);
return userList;
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment