|
|
@@ -1,32 +1,30 @@
|
|
|
package com.yyjc.fbs.controller.biz;
|
|
|
|
|
|
+import java.time.LocalDateTime;
|
|
|
+import java.time.format.DateTimeFormatter;
|
|
|
import java.util.ArrayList;
|
|
|
import java.util.List;
|
|
|
import java.util.Random;
|
|
|
import java.util.concurrent.TimeUnit;
|
|
|
|
|
|
-import com.yyjc.fbs.vo.Result;
|
|
|
+import com.alibaba.fastjson.JSONObject;
|
|
|
+import com.yyjc.fbs.bean.UserExt;
|
|
|
+import com.yyjc.fbs.config.WechatAppConfig;
|
|
|
+import com.yyjc.fbs.service.biz.UserToolService;
|
|
|
+import com.yyjc.fbs.util.MyHttpUtils;
|
|
|
+import com.yyjc.fbs.vo.*;
|
|
|
import org.apache.commons.lang.StringUtils;
|
|
|
import org.slf4j.Logger;
|
|
|
import org.slf4j.LoggerFactory;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
+import org.springframework.beans.factory.annotation.Value;
|
|
|
import org.springframework.data.redis.core.RedisTemplate;
|
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
-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.RequestMethod;
|
|
|
-import org.springframework.web.bind.annotation.RestController;
|
|
|
+import org.springframework.web.bind.annotation.*;
|
|
|
import com.yyjc.fbs.bean.User;
|
|
|
import com.yyjc.fbs.constant.ErrorCodeMsgEnum;
|
|
|
import com.yyjc.fbs.exception.UsernameIsExitedException;
|
|
|
import com.yyjc.fbs.service.IMailBiz;
|
|
|
-import com.yyjc.fbs.vo.CommonResponse;
|
|
|
-import com.yyjc.fbs.vo.EditPassWord;
|
|
|
-import com.yyjc.fbs.vo.EditPassWordByPhoneVO;
|
|
|
-import com.yyjc.fbs.vo.LoginUser;
|
|
|
-import com.yyjc.fbs.vo.ResponseVO;
|
|
|
-import com.yyjc.fbs.vo.UserCondition;
|
|
|
import com.fasterxml.jackson.core.JsonProcessingException;
|
|
|
import com.github.pagehelper.PageInfo;
|
|
|
import io.swagger.annotations.Api;
|
|
|
@@ -42,10 +40,45 @@ public class UserController extends BaseController {
|
|
|
@Autowired
|
|
|
private IMailBiz iMailBiz;
|
|
|
|
|
|
+ @Autowired
|
|
|
+ private WechatAppConfig wechatAppConfig;
|
|
|
+ @Autowired
|
|
|
+ private UserToolService userToolService;
|
|
|
+
|
|
|
private static String dictionary_prefix = "epp-auth:sms:phone";
|
|
|
private static long exists_time = 120 * 1000;
|
|
|
private static final Logger log = LoggerFactory.getLogger(UserController.class);
|
|
|
|
|
|
+
|
|
|
+ @PostMapping("/wxlogin")
|
|
|
+ @ApiOperation(value = "微信code登录", notes = "")
|
|
|
+ @Transactional
|
|
|
+ public Result<?> wechat(@RequestBody WxLoginInfo input) throws Exception {
|
|
|
+ String wxCode = input.getWxcode();
|
|
|
+ if (StringUtils.isBlank(wxCode)) {
|
|
|
+ return Result.instance(ErrorCodeMsgEnum.PARAMS_ERROR.getCode(), ErrorCodeMsgEnum.PARAMS_ERROR.getMsg());
|
|
|
+ }
|
|
|
+ String openid = userToolService.getWxOpenId(wxCode);
|
|
|
+ if (StringUtils.isBlank(openid)) {//获取openid失败
|
|
|
+ return Result.instance(ErrorCodeMsgEnum.PARAMS_ERROR.getCode(), "获取openId失败!");
|
|
|
+ }
|
|
|
+ User user = userService.findUserExtByWxOpenId(openid);
|
|
|
+ if (null != user) {//通过wx openid 查询到用户
|
|
|
+ UserExt userExt = new UserExt();
|
|
|
+ userExt.setWx_open_id(openid);
|
|
|
+ userExt.setUserid(user.getId());
|
|
|
+ LocalDateTime now = LocalDateTime.now();
|
|
|
+ DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyyMMddHHmmss");
|
|
|
+ userExt.setUpdate_time(Long.parseLong(dtf.format(now)));
|
|
|
+ userService.AddOrUpdateUserExt(userExt);
|
|
|
+ WxLoginInfo wxLoginInfo = new WxLoginInfo(wxCode,openid);
|
|
|
+ LoginResult loginResult = userService.LoginByWxCode(user,wxLoginInfo);//直接登录
|
|
|
+ return new Result<LoginResult>(0, "登陆成功", loginResult);
|
|
|
+ }else{//没有查到,前端直接通过登录界面登录
|
|
|
+ return Result.instance(ErrorCodeMsgEnum.ERROR_NO_HASE.getCode(), ErrorCodeMsgEnum.ERROR_NO_HASE.getMsg());
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
@PostMapping("/register")
|
|
|
@ApiOperation(value = "用户注册", notes = "")
|
|
|
@Transactional
|