package com.hollywood.applet.controller;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.hollywood.applet.dto.*;
import com.hollywood.applet.service.TUserService;
import com.hollywood.applet.utils.*;
import com.hollywood.applet.wx.utils.WxAppletTools;
import com.hollywood.applet.security.SecurityUserDetails;
import com.hollywood.applet.wx.body.resp.Code2SessionRespBody;
import com.hollywood.applet.wx.body.resq.Code2SessionResqBody;
import com.hollywood.applet.wx.utils.WeixinProperties;
import com.hollywood.common.basic.ApiResult;
import com.hollywood.common.basic.Constant;
import com.hollywood.common.exception.ServiceException;
import com.hollywood.common.log.OperLoginLog;
import com.hollywood.common.model.TUser;
import com.hollywood.common.redis.RedisAutoTemplate;
import com.hollywood.common.security.SecurityUtils;
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.security.authentication.AuthenticationManager;
import org.springframework.util.Assert;
import org.springframework.util.StringUtils;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.client.RestTemplate;
import cn.hutool.json.JSONUtil;
import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.*;
/**
*
* 会员表 前端控制器
*
*
* @author xiaochen
* @since 2021-07-28
*/
@Slf4j
@Api(tags = "微信用户登录相关")
@RestController
@RequestMapping("/")
public class LoginController {
private final SecurityUtils securityUtils;
private final AuthenticationManager authenticationManager;
private final RedisAutoTemplate redisAutoTemplate;
private final RestTemplate wxRestTemplate;
private final WeixinProperties wxConfig;
private final MsgUtils msgUtils;
@Autowired
private ALiSendSms aLiSendSms;
@Autowired
private TUserService userService;
@Autowired
private LoginInfoUtil loginInfoUtil;
@Autowired
public LoginController(SecurityUtils securityUtils, AuthenticationManager authenticationManager, RedisAutoTemplate redisAutoTemplate, RestTemplate wxRestTemplate, WeixinProperties wxConfig, MsgUtils msgUtils) {
this.securityUtils = securityUtils;
this.authenticationManager = authenticationManager;
this.redisAutoTemplate = redisAutoTemplate;
this.wxRestTemplate = wxRestTemplate;
this.wxConfig = wxConfig;
this.msgUtils = msgUtils;
}
// @ApiOperation(value = "通过code获得openid")
// @GetMapping("openId-by-jscode2session/{code}")
// public ApiResult