package com.doumee.api.cloud; 
 | 
  
 | 
import com.doumee.api.BaseController; 
 | 
import com.doumee.biz.system.SystemMenuBiz; 
 | 
import com.doumee.config.annotation.CloudRequiredPermission; 
 | 
import com.doumee.core.annotation.pr.PreventRepeat; 
 | 
import com.doumee.core.constants.OperaType; 
 | 
import com.doumee.core.model.ApiResponse; 
 | 
import com.doumee.core.utils.Constants; 
 | 
import com.doumee.dao.system.dto.UpdateSystemMenuSortDTO; 
 | 
import com.doumee.dao.system.model.SystemMenu; 
 | 
import com.doumee.dao.system.vo.SystemMenuListVO; 
 | 
import com.doumee.dao.system.vo.SystemMenuNodeVO; 
 | 
import io.swagger.annotations.Api; 
 | 
import io.swagger.annotations.ApiOperation; 
 | 
import org.springframework.beans.factory.annotation.Autowired; 
 | 
import org.springframework.validation.annotation.Validated; 
 | 
import org.springframework.web.bind.annotation.*; 
 | 
  
 | 
import java.util.ArrayList; 
 | 
import java.util.List; 
 | 
  
 | 
/** 
 | 
 * @author Eva.Caesar Liu 
 | 
 * @date 2023/03/21 14:49 
 | 
 */ 
 | 
@Api(tags = "系统菜单") 
 | 
@RestController 
 | 
@RequestMapping(Constants.CLOUD_SERVICE_URL_INDEX+"/system/menu") 
 | 
public class SystemMenuCloudController extends BaseController { 
 | 
  
 | 
    @Autowired 
 | 
    private SystemMenuBiz systemMenuBiz; 
 | 
  
 | 
    @ApiOperation("菜单排序") 
 | 
    @PostMapping("/updateSort") 
 | 
    @CloudRequiredPermission("system:menu:sort") 
 | 
    public ApiResponse updateSort (@RequestHeader(Constants.HEADER_USER_TOKEN) String token, @Validated @RequestBody UpdateSystemMenuSortDTO dto) { 
 | 
        dto.setUpdateUser(this.getLoginUser(token).getId()); 
 | 
        systemMenuBiz.updateSort(dto); 
 | 
        return ApiResponse.success(null); 
 | 
    } 
 | 
  
 | 
    @ApiOperation("查询菜单树") 
 | 
    @GetMapping("/treeNodes") 
 | 
    public ApiResponse<List<SystemMenuNodeVO>> getTreeMenu (@RequestHeader(Constants.HEADER_USER_TOKEN) String token) { 
 | 
        return ApiResponse.success(systemMenuBiz.findTree(this.getLoginUser(token).getId())); 
 | 
    } 
 | 
  
 | 
    @ApiOperation("查询列表树") 
 | 
    @PostMapping("/treeList") 
 | 
    @CloudRequiredPermission("system:menu:query") 
 | 
    public ApiResponse<List<SystemMenuListVO>> findTree (@RequestHeader(Constants.HEADER_USER_TOKEN) String token) { 
 | 
        return ApiResponse.success(systemMenuBiz.findTree()); 
 | 
    } 
 | 
  
 | 
    @PreventRepeat 
 | 
    @ApiOperation("新建") 
 | 
    @PostMapping("/create") 
 | 
    @CloudRequiredPermission("system:menu:create") 
 | 
    public ApiResponse create(@RequestHeader(Constants.HEADER_USER_TOKEN) String token,@Validated(OperaType.Create.class) @RequestBody SystemMenu systemMenu) { 
 | 
        systemMenu.setCreateUser(this.getLoginUser(token).getId()); 
 | 
        return ApiResponse.success(systemMenuBiz.create(systemMenu)); 
 | 
    } 
 | 
  
 | 
    @ApiOperation("删除") 
 | 
    @GetMapping("/delete/{id}") 
 | 
    @CloudRequiredPermission("system:menu:delete") 
 | 
    public ApiResponse deleteById(@RequestHeader(Constants.HEADER_USER_TOKEN) String token,@PathVariable Integer id) { 
 | 
        systemMenuBiz.deleteById(id); 
 | 
        return ApiResponse.success(null); 
 | 
    } 
 | 
  
 | 
    @ApiOperation("批量删除") 
 | 
    @GetMapping("/delete/batch") 
 | 
    @CloudRequiredPermission("system:menu:delete") 
 | 
    public ApiResponse deleteByIdInBatch(@RequestHeader(Constants.HEADER_USER_TOKEN) String token,@RequestParam String ids) { 
 | 
        String [] idArray = ids.split(","); 
 | 
        List<Integer> idList = new ArrayList<>(); 
 | 
        for (String id : idArray) { 
 | 
            idList.add(Integer.valueOf(id)); 
 | 
        } 
 | 
        systemMenuBiz.deleteByIdInBatch(idList); 
 | 
        return ApiResponse.success(null); 
 | 
    } 
 | 
  
 | 
    @ApiOperation("修改") 
 | 
    @PostMapping("/updateById") 
 | 
    @CloudRequiredPermission("system:menu:update") 
 | 
    public ApiResponse updateById(@RequestHeader(Constants.HEADER_USER_TOKEN) String token,@Validated(OperaType.Update.class) @RequestBody SystemMenu systemMenu) { 
 | 
        systemMenu.setUpdateUser(this.getLoginUser(token).getId()); 
 | 
        systemMenuBiz.updateById(systemMenu); 
 | 
        return ApiResponse.success(null); 
 | 
    } 
 | 
  
 | 
    @ApiOperation("修改菜单状态") 
 | 
    @PostMapping("/updateStatus") 
 | 
    @CloudRequiredPermission("system:menu:update") 
 | 
    public ApiResponse updateStatus(@RequestHeader(Constants.HEADER_USER_TOKEN) String token,@Validated(OperaType.UpdateStatus.class) @RequestBody SystemMenu systemMenu) { 
 | 
        systemMenu.setUpdateUser(this.getLoginUser(token).getId()); 
 | 
        systemMenuBiz.updateById(systemMenu); 
 | 
        return ApiResponse.success(null); 
 | 
    } 
 | 
  
 | 
} 
 |