package com.sky.controller.admin; import com.sky.constant.JwtClaimsConstant; import com.sky.dto.EmployeeDTO; import com.sky.dto.EmployeeLoginDTO; import com.sky.dto.EmployeePageQueryDTO; import com.sky.entity.Employee; import com.sky.properties.JwtProperties; import com.sky.result.PageResult; import com.sky.result.Result; import com.sky.service.EmployeeService; import com.sky.utils.JwtUtil; import com.sky.vo.EmployeeLoginVO; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import java.util.HashMap; import java.util.Map; /** * 员工管理 */ @RestController @RequestMapping("/admin/employee") @Slf4j @Api(tags = "员工相关接口")//描述当前的作用 public class EmployeeController { @Autowired private EmployeeService employeeService; @Autowired private JwtProperties jwtProperties; /** * 登录 * * @param employeeLoginDTO * @return */ @PostMapping("/login") @ApiOperation("员工登录")//描述当前方法的作用 public Result login(@RequestBody EmployeeLoginDTO employeeLoginDTO) { log.info("员工登录:{}", employeeLoginDTO); Employee employee = employeeService.login(employeeLoginDTO); //登录成功后,生成jwt令牌 Map claims = new HashMap<>(); claims.put(JwtClaimsConstant.EMP_ID, employee.getId()); String token = JwtUtil.createJWT( jwtProperties.getAdminSecretKey(), jwtProperties.getAdminTtl(), claims); EmployeeLoginVO employeeLoginVO = EmployeeLoginVO.builder() .id(employee.getId()) .userName(employee.getUsername()) .name(employee.getName()) .token(token) .build(); return Result.success(employeeLoginVO); } /** * 退出 * * @return */ @ApiOperation("员工退出") @PostMapping("/logout") public Result logout() { return Result.success(); } @ApiOperation("新增员工") @PostMapping public Result save(@RequestBody EmployeeDTO employeeDTO) { log.info("新增员工:{}",employeeDTO); System.out.println("当前线程的id:"+Thread.currentThread().getId()); employeeService.save(employeeDTO); return Result.success(); } /** * 员工分页查询 * @param employeePageQueryDTO * @return */ @ApiOperation("员工分页查询") @GetMapping("/page") public Result page(EmployeePageQueryDTO employeePageQueryDTO) { log.info("员工分页查询:{}",employeePageQueryDTO); PageResult pageResult = employeeService.pageQuery(employeePageQueryDTO); return Result.success(pageResult); } @PostMapping("/status/{status}") @ApiOperation("启用禁用员工账号") public Result startOrStop(@PathVariable Integer status,Long id){ log.info("启用禁用员工账号:{},{}",status,id); employeeService.startOrStop(status,id); return Result.success(); } /** * 根据Id查询员工 * @param id * @return */ @GetMapping("/{id}") @ApiOperation("根据Id查询员工") public Result getById(@PathVariable Long id){ Employee employee = employeeService.getById(id); return Result.success(employee); } /** * 修改员工 * @param employeeDTO * @return */ @PutMapping @ApiOperation("编辑员工") public Result update(@RequestBody EmployeeDTO employeeDTO){ log.info("编辑员工信息:{}",employeeDTO); employeeService.update(employeeDTO); return Result.success(); } }