/*
 * Author: wangjian
 * 生成controller
 */
package com.tofly.base.controller;

import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.tofly.base.entity.BaseSysmenu;
import com.tofly.base.entity.MySysMenu;
import com.tofly.base.service.BaseSysmenuService;
import com.tofly.common.core.entity.ResultRespone;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.AllArgsConstructor;
import org.springframework.web.bind.annotation.*;

import java.util.Comparator;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;

/**
 * @author wangjian
 * @date Mon Jul 06 00:00:00 CST 2020
 */
@RestController
@AllArgsConstructor
@RequestMapping("/basesysmenu")
@Api(tags = "系统菜单接口")
public class BaseSysmenuController {

    private final BaseSysmenuService baseSysmenuService;

//    @PostMapping("/updateSysmenu")
//    @ApiOperation(value = "系统菜单更新")
//    public ResultRespone updateSysmenu(@RequestBody Map map) {
//        return ResultRespone.success(baseSysmenuService.updateSysmenu(map));
//    }
//
//
//    @GetMapping("/getChirenMenuNew")
//    @ApiOperation(value = "获取本地子系统列表新")
//    public ResultRespone getChirenMenuNew() {
//        List<BaseSysmenu> list = baseSysmenuService.list(Wrappers.<BaseSysmenu>lambdaQuery()
//                        .isNull(BaseSysmenu::getParentPathid)
//                        .isNotNull(BaseSysmenu::getSysid)
////                .inSql(BaseSysmenu::getSysid, "select sysId from TF_BASE_SYS where type = 'tofly-master'")
//        );
//        List list1 = list.stream().sorted(Comparator.comparing(BaseSysmenu::getSysid).thenComparing(BaseSysmenu::getId)).collect(Collectors.toList());
//        return ResultRespone.success(list1);
//    }
//
//    @GetMapping("/getOneChirenMenuNew")
//    @ApiOperation(value = "获取本地单个子系统功能列表新")
//    public ResultRespone getOneChirenMenuNew(String sysId,String pathId) {
//        List<BaseSysmenu> list = baseSysmenuService.list(Wrappers.<BaseSysmenu>lambdaQuery()
////                .inSql(BaseSysmenu::getSysid, "select sysId from TF_BASE_SYS where type = 'tofly-master'")
//                        .eq(BaseSysmenu::getSysid, sysId)
//        );
//        List<MySysMenu> treeSys = baseSysmenuService.getTreeSys(list);
//        List<MySysMenu> collect = treeSys.stream().filter(sys -> sys.getPathId().equals(pathId)).collect(Collectors.toList());
//        return ResultRespone.success(collect.get(0).getChildren());
//    }
//
//
//    @GetMapping("/getChirenMenu")
//    @ApiOperation(value = "获取本地子系统列表")
//    public ResultRespone getChirenMenu() {
//        List<BaseSysmenu> list = baseSysmenuService.list(Wrappers.<BaseSysmenu>lambdaQuery()
//                .isNull(BaseSysmenu::getParentPathid)
//                .inSql(BaseSysmenu::getSysid, "select sysId from TF_BASE_SYS where type = 'tofly-master'")
//        );
//        return ResultRespone.success(list);
//    }
//
//    @GetMapping("/getOneChirenMenu")
//    @ApiOperation(value = "获取本地单个子系统功能列表")
//    public ResultRespone getOneChirenMenu(String pathId) {
//        List<BaseSysmenu> list = baseSysmenuService.list(Wrappers.<BaseSysmenu>lambdaQuery()
//                .inSql(BaseSysmenu::getSysid, "select sysId from TF_BASE_SYS where type = 'tofly-master'"));
//        List<MySysMenu> treeSys = baseSysmenuService.getTreeSys(list);
//        List<MySysMenu> collect = treeSys.stream().filter(sys -> sys.getPathId().equals(pathId)).collect(Collectors.toList());
//        return ResultRespone.success(collect.get(0).getChildren());
//    }
//

//    /**
//    * 分页查询
//    * @param page 分页对象
//    * @param baseSysmenu
//    * @return
//    */
//    @GetMapping("/page" )
//    @ApiOperation(value = "分页查询")
//    public ResultRespone getBaseSysmenuPage(Page page, @ModelAttribute BaseSysmenu baseSysmenu) {
//      return ResultRespone.success(baseSysmenuService.page(page, Wrappers.query(baseSysmenu)));
//    }
//
//
//    /**
//     * 通过id查询
//     * @param id id
//     * @return ResultRespone
//     */
//    @GetMapping("/{id}" )
//    @ApiOperation(value = "通过ID查询")
//    @ApiImplicitParams({
//            @ApiImplicitParam(name = "id", value = "ID", required = true, dataType = "Long")
//    })
//    public ResultRespone getById(@PathVariable("id" ) Long id) {
//      return ResultRespone.success(baseSysmenuService.getById(id));
//    }
//
//    /**
//     * 新增
//     * @param baseSysmenu
//     * @return ResultRespone
//     */
//    @ToFlyAppLog(title="新增" )
//    @ApiOperation(value = "新增")
//    @PostMapping
//    public ResultRespone save(@RequestBody BaseSysmenu baseSysmenu) {
//      return ResultRespone.success(baseSysmenuService.save(baseSysmenu));
//    }
//
//    /**
//     * 修改
//     * @param baseSysmenu
//     * @return ResultRespone
//     */
//    @ToFlyAppLog(title="修改" )
//    @ApiOperation(value = "修改")
//    @PutMapping
//    public ResultRespone updateById(@RequestBody BaseSysmenu baseSysmenu) {
//      return ResultRespone.success(baseSysmenuService.updateById(baseSysmenu));
//    }
//
//    /**
//     * 通过id删除
//     * @param id id
//     * @return ResultRespone
//     */
//    @ToFlyAppLog(title="通过id删除" )
//    @ApiOperation(value = "通过ID删除")
//    @ApiImplicitParams({
//            @ApiImplicitParam(name = "id", value = "ID", required = true, dataType = "Long")
//    })
//    @DeleteMapping("/{id}" )
//    public ResultRespone removeById(@PathVariable Long id) {
//      return ResultRespone.success(baseSysmenuService.removeById(id));
//    }
//
//    /**
//     * 通过id批量删除
//     * @param ids id
//     * @return ResultRespone
//     */
//    @ToFlyAppLog(title="通过id批量删除" )
//    @ApiOperation(value = "通过ID批量删除")
//    @ApiImplicitParams({
//            @ApiImplicitParam(name = "ids", value = "批量删除，多个id以逗号隔开", required = true, dataType = "String")
//    })
//    @DeleteMapping("/deleteByIds" )
//    public ResultRespone removeById(String ids) {
//        return ResultRespone.success(baseSysmenuService.removeByIds(Arrays.asList(ids.split(","))));
//    }
}
