package com.cloud.application.controller;
|
|
import com.alibaba.fastjson.JSONArray;
|
import com.alibaba.fastjson.JSONObject;
|
import com.cloud.common.utils.JsonUtil;
|
import com.cloud.common.utils.RestTemplateUtil;
|
import com.cloud.model.common.Result;
|
import com.cloud.model.sys.SysMenu;
|
import io.swagger.annotations.Api;
|
import io.swagger.annotations.ApiImplicitParam;
|
import io.swagger.annotations.ApiImplicitParams;
|
import io.swagger.annotations.ApiOperation;
|
import lombok.extern.slf4j.Slf4j;
|
import org.springframework.beans.factory.annotation.Value;
|
import org.springframework.http.MediaType;
|
import org.springframework.util.LinkedMultiValueMap;
|
import org.springframework.util.MultiValueMap;
|
import org.springframework.util.StringUtils;
|
import org.springframework.web.bind.annotation.GetMapping;
|
import org.springframework.web.bind.annotation.RequestMapping;
|
import org.springframework.web.bind.annotation.RequestParam;
|
import org.springframework.web.bind.annotation.RestController;
|
|
import java.util.ArrayList;
|
import java.util.Iterator;
|
import java.util.List;
|
import java.util.Map;
|
|
@Slf4j
|
@RestController
|
@RequestMapping("/data/api-u/sysmenus")
|
@Api(value = "SysMenuController", description = "菜单控制层")
|
public class SysMenuController {
|
@Value("${loginData.redUrl}")
|
String reurl;
|
@Value("${loginData.redPort}")
|
String port;
|
/**
|
* 当前登录用户的菜单
|
*/
|
@GetMapping("/me")
|
@ApiOperation(value = "查询用户菜单", notes = "当前登录用户的菜单", httpMethod = "GET", produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
|
@ApiImplicitParam(name = "module", value = "module", required = true, dataType = "String", paramType = "query")
|
public Result findMyMenu(@RequestParam Map<String,Object> params) {
|
try {
|
String url = "http://"+ reurl+":"+port+"/data/api-u/sysmenus/me";
|
JSONObject jsonObject = JsonUtil.mapToJson(params);
|
String result = RestTemplateUtil.get(url, jsonObject, true);
|
if(!StringUtils.isEmpty(result)){
|
return JSONObject.parseObject(result, Result.class);
|
}
|
} catch (Exception e) {
|
log.info(e.getMessage());
|
}
|
|
return Result.custom("查询失败", 500, false, "查询失败");
|
}
|
|
@GetMapping("/findAllMenuByUser")
|
@ApiOperation(value = "查询所有模块名称",notes = "查询所有模块名称", httpMethod = "GET", produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
|
@ApiImplicitParams({
|
@ApiImplicitParam(name = "orgId", value = "机构id", required = true, dataType = "Long", paramType = "query"),
|
@ApiImplicitParam(name = "userId", value = "当前登录人id", required = true, dataType = "Long", paramType = "query"),
|
@ApiImplicitParam(name = "tags", value = "查询的模块device or map", required = true, dataType = "Long", paramType = "query"),
|
})
|
public List<Map<String, Object>> findAllMenuByUser(@RequestParam Map<String, Object> map) {
|
List resultList = new ArrayList<>();
|
|
try {
|
String url = "http://"+reurl+":"+port+"/data/api-u/sysmenus/findAllMenuByUser";
|
JSONObject jsonObject = JsonUtil.mapToJson(map);
|
// MultiValueMap<String, Object> multiValueMap = createMultiValueMapObject(jsonObject);
|
String result = RestTemplateUtil.get(url, jsonObject, true);
|
|
if(!StringUtils.isEmpty(result)){
|
resultList = JSONArray.parseArray(result);
|
}
|
//List list = RestTemplateUtil.getHeaderForEntity(url,multiValueMap,List.class,true);
|
} catch (Exception e) {
|
e.printStackTrace();
|
}
|
return resultList;
|
}
|
|
private static MultiValueMap<String, Object> createMultiValueMapObject(JSONObject params) {
|
MultiValueMap<String, Object> map = new LinkedMultiValueMap<>();
|
if(params !=null) {
|
for (String key : params.keySet()) {
|
if (params.get(key) instanceof List) {
|
for (Iterator<Object> it = ((List<Object>) params.get(key)).iterator(); it.hasNext(); ) {
|
Object value = it.next();
|
map.add(key, value);
|
}
|
} else {
|
map.add(key, params.getString(key));
|
}
|
}
|
}
|
return map;
|
}
|
}
|