package com.sky.controller.user; import com.sky.constant.JwtClaimsConstant; import com.sky.dto.UserLoginDTO; import com.sky.entity.User; import com.sky.mapper.UserMapper; import com.sky.properties.JwtProperties; import com.sky.result.Result; import com.sky.service.UserService; import com.sky.utils.JwtUtil; import com.sky.vo.UserLoginVO; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; 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 javax.annotation.Resource; import java.util.HashMap; @RestController @RequestMapping("/user/user") @Api(tags = "C端用户相关接口") @Slf4j public class UserController { @Resource private UserService userService; @Resource private JwtProperties jwtProperties; /** * 微信登录 * * @param userLoginDTO 用户传过来的数据 * @return 结果 */ @ApiOperation("微信登录") @PostMapping("/login") public Result login(@RequestBody UserLoginDTO userLoginDTO) { log.info("微信登录:{}", userLoginDTO.getCode()); // 微信登录 User user = userService.wxLogin(userLoginDTO); // 为用户生成jwt令牌 HashMap claims = new HashMap<>(); claims.put(JwtClaimsConstant.USER_ID, user.getId()); String token = JwtUtil.createJWT(jwtProperties.getUserSecretKey(), jwtProperties.getUserTtl(), claims); // 封装返回对象 UserLoginVO userLoginVO = UserLoginVO.builder() .id(user.getId()) .openid(user.getOpenid()) .token(token).build(); return Result.success(userLoginVO); } }