package com.sky.controller.user; import com.sky.common.constant.JwtClaimsConstant; import com.sky.common.properties.RedisTokenProperties; import com.sky.common.result.Result; import com.sky.common.utils.JwtUtil; import com.sky.pojo.dto.UserLoginDTO; import com.sky.pojo.entity.User; import com.sky.pojo.vo.UserLoginVO; import com.sky.service.UserService; 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.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import java.util.HashMap; import java.util.Map; @RestController @RequestMapping("/user/user") @Api(tags = "C端用户相关接口") @Slf4j public class UserController { @Autowired private UserService userService; @Autowired private RedisTokenProperties redisTokenProperties; @PostMapping("/login") @ApiOperation("微信登录") public Result login(@RequestBody UserLoginDTO userLoginDTO) { log.info("微信用户登录:{}", userLoginDTO.getCode()); // 微信登录 User user = userService.wxLogin(userLoginDTO);// 后绪步骤实现 // 为微信用户生成jwt令牌 Map claims = new HashMap<>(); claims.put(JwtClaimsConstant.USER_ID, user.getId()); String token = JwtUtil.createJWT(redisTokenProperties.getUserSecretKey(), redisTokenProperties.getUserTtl(), claims); UserLoginVO userLoginVO = UserLoginVO.builder() .id(user.getId()) .openid(user.getOpenid()) .token(token) .build(); return Result.success(userLoginVO); } @PostMapping("logout") @ApiOperation("退出登录") public Result logout() { return Result.success(); } }