//package com.fdkanfang.web.backend;
//
//import com.fdkanfang.common.model.PageDto;
//import com.fdkanfang.domain.dto.RoleDto;
//import com.fdkanfang.common.util.R;
//import com.fdkanfang.domain.backend.Role;
//import com.fdkanfang.service.backend.RoleService;
//import io.swagger.annotations.Api;
//import io.swagger.annotations.ApiOperation;
//import org.apache.shiro.authz.annotation.Logical;
//import org.apache.shiro.authz.annotation.RequiresPermissions;
//import org.apache.shiro.authz.annotation.RequiresRoles;
//import org.springframework.beans.BeanUtils;
//import org.springframework.beans.factory.annotation.Autowired;
//import org.springframework.data.domain.Page;
//import org.springframework.data.domain.Sort;
//import org.springframework.transaction.annotation.Transactional;
//import org.springframework.web.bind.annotation.*;
//import springfox.documentation.annotations.ApiIgnore;
//
//import java.util.Date;
//import java.util.List;
//
//
///**
// * Created by owen on 2020/2/18 0018 12:17
// */
//@ApiIgnore // swagger 忽略
//@Api(tags = "RoleController", description = "后台角色管理")
//@RestController
//@RequestMapping("manage/role")
//@Transactional
//@RequiresRoles("admin") //需要admin角色才可以访问此controller
//public class RoleController extends BaseController {
//
//    @Autowired
//    private RoleService roleService;
//
//    @ApiOperation("分页获取角色列表")
//    @PostMapping("list")
//    public R list(@RequestBody PageDto pageDto){
//        Page<Role> page = roleService.findAll(pageDto.getPageNum(), pageDto.getPageSize());
//        return new R(2000, page);
//    }
//
////    @RequiresRoles("admin")
//    @ApiOperation("获取角色")
//    @GetMapping("find")
//    public R find(){
//        List<Role> result = roleService.findList(Sort.by("sort").ascending());
//        return new R(2000, result);
//    }
//
//    @ApiOperation("新增或修改角色信息")
//    @PostMapping("save")
//    public R save(@RequestBody RoleDto param){
//        Role role = null;
//        if (param.getId() != null) {
//            role = roleService.findById(param.getId());
//            // 每次修改，删除角色资源表信息，重新添加
//            roleService.deleteRoleResource(param.getId());
//        }
//
//        if (role == null){
//            role = new Role();
//        }
//
//        BeanUtils.copyProperties(param, role);
//        role.setUpdateTime(new Date());
//
////        role.setCreateBy(getTokenUserName());
//
//        role = roleService.save(role);
//
//        if (role != null){
//            if (param.getResources() != null){
//                for (long i : param.getResources()) {
//                    roleService.saveRoleResource(role.getId(), i);
//                }
//                return new R(2000, "success");
//            }
//        }
//
//        return new R(2000, "error");
//    }
//
//    //测试权限
//
//    @ApiOperation("查询角色信息")
//    @GetMapping("detail/{id}")
//    public R detail(@PathVariable Long id){
//        Role role = roleService.findById(id);
//        return new R(2000, role);
//    }
//
//    @ApiOperation("删除角色")
//    @GetMapping("delete/{id}")
//    public R delete(@PathVariable Long id){
//        roleService.deleteById(id);
////        roleService.deleteRoleResource(id);
//        return new R(2000, "success");
//    }
//
//    /**
//     * 测试权限用
//     * @return
//     */
//    @ApiIgnore
//    @ApiOperation("adminPer")
//    @GetMapping("adminPer")
////    @RequiresPermissions(value="admin:role:list")
//    @RequiresPermissions(logical = Logical.AND, value = {"admin:role:list"})
//    public R adminPer(){
//        return new R(2000, new Date());
//    }
//
//
//    /**
//     * 测试权限用
//     * @return
//     */
//    @ApiIgnore
//    @ApiOperation("rootPer")
//    @GetMapping("rootPer")
////    @RequiresPermissions(value="admin:role:list0000")
//    @RequiresPermissions(logical = Logical.AND, value = {"admin:role:list0000"})
//    public R rootPer(){
//        return new R(2000, new Date());
//    }
//
//
//
//
//
//}
