123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253 |
- package com.fuint.module.backendApi.controller;
- import com.fuint.common.domain.TreeNode;
- import com.fuint.common.domain.TreeSelect;
- import com.fuint.common.dto.AccountInfo;
- import com.fuint.common.dto.SourceDto;
- import com.fuint.common.service.SourceService;
- import com.fuint.common.util.CommonUtil;
- import com.fuint.common.util.TokenUtil;
- import com.fuint.framework.exception.BusinessCheckException;
- import com.fuint.framework.web.BaseController;
- import com.fuint.framework.web.ResponseObject;
- import com.fuint.repository.model.TSource;
- import com.fuint.utils.StringUtil;
- import io.swagger.annotations.Api;
- import io.swagger.annotations.ApiOperation;
- import lombok.AllArgsConstructor;
- import org.springframework.security.access.prepost.PreAuthorize;
- import org.springframework.web.bind.annotation.*;
- import javax.servlet.http.HttpServletRequest;
- import java.util.List;
- import java.util.Map;
- /**
- * 菜单管理控制类
- *
- * Created by FSQ
- * CopyRight https://www.fuint.cn
- */
- @Api(tags="管理端-后台菜单相关接口")
- @RestController
- @AllArgsConstructor
- @RequestMapping(value = "/backendApi/source")
- public class BackendSourceController extends BaseController {
- /**
- * 菜单服务接口
- * */
- private SourceService sourceService;
- /**
- * 获取菜单列表
- *
- * @return 账户信息列表展现页面
- */
- @ApiOperation(value = "获取菜单列表")
- @RequestMapping(value = "/list", method = RequestMethod.GET)
- @PreAuthorize("@pms.hasPermission('system:menu:index')")
- public ResponseObject list(HttpServletRequest request) {
- String token = request.getHeader("Access-Token");
- AccountInfo accountInfo = TokenUtil.getAccountInfoByToken(token);
- if (accountInfo == null) {
- return getFailureResult(1001, "请先登录");
- }
- List<TreeNode> sources = sourceService.getSourceTree(accountInfo.getMerchantId());
- return getSuccessResult(sources);
- }
- /**
- * 获取菜单详情
- *
- * @param sourceId 菜单ID
- * @return 菜单信息
- */
- @ApiOperation(value = "获取菜单详情")
- @RequestMapping(value = "/info/{sourceId}", method = RequestMethod.GET)
- public ResponseObject info( @PathVariable("sourceId") Long sourceId) {
- TSource tSource = sourceService.getById(sourceId);
- SourceDto sourceDto = new SourceDto();
- sourceDto.setId(tSource.getSourceId());
- sourceDto.setName(tSource.getSourceName());
- if (tSource.getParentId() != null) {
- sourceDto.setParentId(tSource.getParentId());
- }
- sourceDto.setMerchantId(tSource.getMerchantId());
- sourceDto.setPath(tSource.getPath());
- sourceDto.setIcon(tSource.getNewIcon());
- sourceDto.setNewIcon(tSource.getNewIcon());
- sourceDto.setSort(tSource.getSourceStyle());
- sourceDto.setEname(tSource.getEname());
- sourceDto.setStatus(tSource.getStatus());
- sourceDto.setIsMenu(tSource.getIsMenu());
- sourceDto.setPerms(tSource.getPath().replaceAll("/", ":"));
- sourceDto.setDescription(tSource.getDescription());
- return getSuccessResult(sourceDto);
- }
- /**
- * 新增菜单
- *
- * @return
- * @throws BusinessCheckException
- */
- @ApiOperation(value = "新增菜单")
- @RequestMapping(value = "/add", method = RequestMethod.POST)
- @PreAuthorize("@pms.hasPermission('system:menu:add')")
- public ResponseObject addSource(HttpServletRequest request, @RequestBody Map<String, Object> param) {
- String token = request.getHeader("Access-Token");
- AccountInfo accountInfo = TokenUtil.getAccountInfoByToken(token);
- if (accountInfo == null) {
- return getFailureResult(1001, "请先登录");
- }
- String name = param.get("name").toString();
- String status = param.get("status").toString();
- String parentId = param.get("parentId").toString();
- String icon = param.get("icon").toString();
- String path = param.get("path").toString();
- String sort = param.get("sort").toString();
- Integer isMenu = param.get("isMenu") == null ? 1 : Integer.parseInt(param.get("isMenu").toString());
- TSource addSource = new TSource();
- addSource.setSourceName(name);
- addSource.setMerchantId(accountInfo.getMerchantId());
- addSource.setStatus(status);
- addSource.setNewIcon(icon);
- addSource.setIsLog(1);
- addSource.setPath(path);
- addSource.setSourceStyle(sort);
- addSource.setIsMenu(isMenu);
- addSource.setSourceCode(path);
- String eName = "";
- String[] paths = path.split("/");
- for (int i = 0; i < paths.length; i++) {
- eName = eName + CommonUtil.firstLetterToUpperCase(paths[i]);
- }
- addSource.setEname(eName);
- if (StringUtil.isNotBlank(parentId)) {
- if (Integer.parseInt(parentId) > 0) {
- TSource parentSource = sourceService.getById(parentId);
- addSource.setParentId(parentSource.getSourceId());
- addSource.setSourceLevel(parentSource.getSourceLevel() + 1);
- } else {
- addSource.setSourceLevel(1);
- }
- } else {
- addSource.setSourceLevel(1);
- }
- sourceService.addSource(addSource);
- return getSuccessResult(true);
- }
- /**
- * 修改菜单
- *
- * @param param
- * @return
- */
- @ApiOperation(value = "修改菜单")
- @RequestMapping(value = "/update", method = RequestMethod.POST)
- @PreAuthorize("@pms.hasPermission('system:menu:edit')")
- public ResponseObject update(HttpServletRequest request, @RequestBody Map<String, Object> param) {
- String token = request.getHeader("Access-Token");
- AccountInfo accountInfo = TokenUtil.getAccountInfoByToken(token);
- if (accountInfo == null) {
- return getFailureResult(1001, "请先登录");
- }
- String name = param.get("name").toString();
- String status = param.get("status").toString();
- String parentId = param.get("parentId").toString();
- String icon = param.get("icon").toString();
- String path = param.get("path").toString();
- String sort = param.get("sort").toString();
- Integer isMenu = param.get("isMenu") == null ? 1 : Integer.parseInt(param.get("isMenu").toString());
- Long id = param.get("id") == null ? 0 : Long.parseLong(param.get("id").toString());
- TSource editSource = sourceService.getById(id);
- if (!editSource.getMerchantId().equals(accountInfo.getMerchantId()) && accountInfo.getMerchantId() > 0) {
- return getFailureResult(201, "抱歉,您没有修改的权限");
- }
- editSource.setSourceName(name);
- editSource.setStatus(status);
- editSource.setNewIcon(icon);
- editSource.setIsLog(1);
- editSource.setPath(path);
- editSource.setSourceStyle(sort);
- editSource.setIsMenu(isMenu);
- editSource.setSourceCode(editSource.getPath());
- String eName = "";
- String[] paths = path.split("/");
- for (int i = 0; i < paths.length; i++) {
- eName = eName + CommonUtil.firstLetterToUpperCase(paths[i]);
- }
- editSource.setEname(eName);
- if (StringUtil.isNotBlank(parentId)) {
- try {
- if (Integer.parseInt(parentId) > 0) {
- TSource parentSource = sourceService.getById(Long.parseLong(parentId));
- editSource.setParentId(parentSource.getSourceId());
- editSource.setSourceLevel(parentSource.getSourceLevel() + 1);
- } else {
- editSource.setSourceLevel(1);
- }
- } catch (Exception e) {
- return getFailureResult(201, "父菜单" + parentId + "不存在");
- }
- } else {
- editSource.setSourceLevel(1);
- }
- sourceService.editSource(editSource);
- return getSuccessResult(true);
- }
- /**
- * 删除菜单
- *
- * @return
- * @throws BusinessCheckException
- */
- @ApiOperation(value = "删除菜单")
- @RequestMapping(value = "/delete/{sourceId}", method = RequestMethod.GET)
- @PreAuthorize("@pms.hasPermission('system:menu:delete')")
- public ResponseObject delete(HttpServletRequest request, @PathVariable("sourceId") Long sourceId) throws BusinessCheckException {
- String token = request.getHeader("Access-Token");
- AccountInfo accountInfo = TokenUtil.getAccountInfoByToken(token);
- if (accountInfo == null) {
- return getFailureResult(1001, "请先登录");
- }
- TSource tSource = sourceService.getById(sourceId);
- if (!tSource.getMerchantId().equals(accountInfo.getMerchantId()) && accountInfo.getMerchantId() > 0) {
- return getFailureResult(201, "抱歉,您没有删除的权限");
- }
- sourceService.deleteSource(tSource);
- return getSuccessResult(true);
- }
- /**
- * 获取菜单下拉树列表
- * */
- @ApiOperation(value = "获取菜单下拉树列表")
- @RequestMapping(value = "/treeselect", method = RequestMethod.GET)
- public ResponseObject treeselect(HttpServletRequest request) {
- String token = request.getHeader("Access-Token");
- AccountInfo accountInfo = TokenUtil.getAccountInfoByToken(token);
- if (accountInfo == null) {
- return getFailureResult(1001, "请先登录");
- }
- List<TreeNode> sources = sourceService.getSourceTree(accountInfo.getMerchantId());
- List<TreeSelect> data = sourceService.buildMenuTreeSelect(sources);
- return getSuccessResult(data);
- }
- }
|