|
@@ -1,6 +1,8 @@
|
|
package cn.iselab.mooctest.user.web.ctrl;
|
|
package cn.iselab.mooctest.user.web.ctrl;
|
|
|
|
|
|
import cn.iselab.mooctest.rpc.user.data.UserDTO;
|
|
import cn.iselab.mooctest.rpc.user.data.UserDTO;
|
|
|
|
+import cn.iselab.mooctest.rpc.user.data.UserWechatDTO;
|
|
|
|
+import cn.iselab.mooctest.rpc.user.data.WechatUserInfoDTO;
|
|
import cn.iselab.mooctest.user.constants.ResponseStatus;
|
|
import cn.iselab.mooctest.user.constants.ResponseStatus;
|
|
import cn.iselab.mooctest.user.constants.UrlConstants;
|
|
import cn.iselab.mooctest.user.constants.UrlConstants;
|
|
import cn.iselab.mooctest.user.data.Callback;
|
|
import cn.iselab.mooctest.user.data.Callback;
|
|
@@ -13,6 +15,7 @@ import cn.iselab.mooctest.user.util.EncryptionUtil;
|
|
import cn.iselab.mooctest.user.web.data.UserVO;
|
|
import cn.iselab.mooctest.user.web.data.UserVO;
|
|
import cn.iselab.mooctest.user.web.logic.ThirdPartyLogic;
|
|
import cn.iselab.mooctest.user.web.logic.ThirdPartyLogic;
|
|
import cn.iselab.mooctest.user.web.logic.UserLogic;
|
|
import cn.iselab.mooctest.user.web.logic.UserLogic;
|
|
|
|
+import cn.iselab.mooctest.user.web.logic.WechatLogic;
|
|
import com.sun.org.apache.xpath.internal.operations.Mod;
|
|
import com.sun.org.apache.xpath.internal.operations.Mod;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.stereotype.Controller;
|
|
import org.springframework.stereotype.Controller;
|
|
@@ -41,6 +44,9 @@ public class PageController extends BaseController{
|
|
@Autowired
|
|
@Autowired
|
|
ThirdPartyAuthService thirdPartyAuthService;
|
|
ThirdPartyAuthService thirdPartyAuthService;
|
|
|
|
|
|
|
|
+ @Autowired
|
|
|
|
+ WechatLogic wechatLogic;
|
|
|
|
+
|
|
@RequestMapping(value = UrlConstants.PAGE + "login", method = RequestMethod.GET)
|
|
@RequestMapping(value = UrlConstants.PAGE + "login", method = RequestMethod.GET)
|
|
public String login(@RequestParam(value = "redirect", required = false)String redirect, HttpServletRequest request){
|
|
public String login(@RequestParam(value = "redirect", required = false)String redirect, HttpServletRequest request){
|
|
// System.out.println(System.currentTimeMillis());
|
|
// System.out.println(System.currentTimeMillis());
|
|
@@ -158,14 +164,38 @@ public class PageController extends BaseController{
|
|
return "third_party_bind";
|
|
return "third_party_bind";
|
|
}
|
|
}
|
|
HttpSession session = request.getSession();
|
|
HttpSession session = request.getSession();
|
|
- session.setAttribute("userId", ((UserDTO)result.getData()).getId());
|
|
|
|
- session.setAttribute("userName", ((UserDTO)result.getData()).getEmail());
|
|
|
|
|
|
+ UserDTO user = userLogic.getUserById(((UserThirdParty)result.getData()).getId());
|
|
|
|
+ session.setAttribute("userId", user.getId());
|
|
|
|
+ session.setAttribute("userName", user.getEmail());
|
|
String redirectUrl = (String)request.getSession().getAttribute("redirectURL");
|
|
String redirectUrl = (String)request.getSession().getAttribute("redirectURL");
|
|
if (redirectUrl==null || redirectUrl.isEmpty())
|
|
if (redirectUrl==null || redirectUrl.isEmpty())
|
|
redirectUrl = UrlConstants.DFAULT_GOTO;
|
|
redirectUrl = UrlConstants.DFAULT_GOTO;
|
|
return "redirect:"+redirectUrl;
|
|
return "redirect:"+redirectUrl;
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ @RequestMapping(value = UrlConstants.PAGE + "login/wechat", method = RequestMethod.GET)
|
|
|
|
+ public String loginByWechat(@RequestParam("code")String code, Model model, HttpServletRequest request){
|
|
|
|
+ System.out.println("wechat_code: " + code);
|
|
|
|
+ UserWechatDTO userWechatDTO = wechatLogic.getUserByCode(code);
|
|
|
|
+ if(userWechatDTO.getType()==UserWechatDTO.NEW){
|
|
|
|
+ model.addAttribute("headImg",userWechatDTO.getUserInfo().getHeadimgurl());
|
|
|
|
+ model.addAttribute("thirdPartyName",userWechatDTO.getUserInfo().getNickname());
|
|
|
|
+ model.addAttribute("unionid",userWechatDTO.getUserInfo().getUnionid());
|
|
|
|
+ model.addAttribute("openid",userWechatDTO.getUserInfo().getOpenid());
|
|
|
|
+ model.addAttribute("from","wechat");
|
|
|
|
+ return "third_party_bind";
|
|
|
|
+ }
|
|
|
|
+ HttpSession session = request.getSession();
|
|
|
|
+ session.setAttribute("userId", userWechatDTO.getUser().getId());
|
|
|
|
+ session.setAttribute("userName", userWechatDTO.getUser().getEmail());
|
|
|
|
+ String redirectUrl = (String) session.getAttribute("redirectURL");
|
|
|
|
+ if (redirectUrl==null || redirectUrl.isEmpty())
|
|
|
|
+ redirectUrl = UrlConstants.DFAULT_GOTO;
|
|
|
|
+ return "redirect:"+redirectUrl;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
@RequestMapping(value = UrlConstants.PAGE + "thirdParty/bind", method = RequestMethod.POST)
|
|
@RequestMapping(value = UrlConstants.PAGE + "thirdParty/bind", method = RequestMethod.POST)
|
|
public String thirdPartyBind(UserVO userVO, Model model, HttpServletRequest request){
|
|
public String thirdPartyBind(UserVO userVO, Model model, HttpServletRequest request){
|
|
UserVO user = userVO;
|
|
UserVO user = userVO;
|
|
@@ -178,16 +208,28 @@ public class PageController extends BaseController{
|
|
model.addAttribute("thirdPartyId", userVO.getThirdPartyId());
|
|
model.addAttribute("thirdPartyId", userVO.getThirdPartyId());
|
|
model.addAttribute("headImg", userVO.getHeadImgUrl());
|
|
model.addAttribute("headImg", userVO.getHeadImgUrl());
|
|
model.addAttribute("from", userVO.getFrom());
|
|
model.addAttribute("from", userVO.getFrom());
|
|
|
|
+ model.addAttribute("openid", userVO.getOpenid());
|
|
|
|
+ model.addAttribute("unionid", userVO.getUnionid());
|
|
return "third_party_bind";
|
|
return "third_party_bind";
|
|
}
|
|
}
|
|
UserDTO userToBind = (UserDTO) result.getData();
|
|
UserDTO userToBind = (UserDTO) result.getData();
|
|
- UserThirdParty userThirdParty = new UserThirdParty();
|
|
|
|
- userThirdParty.setThirdPartyIdentity(userVO.getThirdPartyId());
|
|
|
|
- userThirdParty.setUserId(userToBind.getId());
|
|
|
|
- userThirdParty.setType(userVO.getFrom());
|
|
|
|
- userThirdParty.setIsDelete(0);
|
|
|
|
- System.out.println(userThirdParty.getUserId()+"--"+userThirdParty.getThirdPartyIdentity()+"---"+userThirdParty.getType());
|
|
|
|
- thirdPartyAuthService.save(userThirdParty);
|
|
|
|
|
|
+ if(userVO.getFrom()=="wechat"){
|
|
|
|
+ UserWechatDTO userWechatDTO = new UserWechatDTO();
|
|
|
|
+ userWechatDTO.setUser(userToBind);
|
|
|
|
+ WechatUserInfoDTO wechatUserInfoDTO = new WechatUserInfoDTO();
|
|
|
|
+ wechatUserInfoDTO.setUnionid(userVO.getUnionid());
|
|
|
|
+ wechatUserInfoDTO.setOpenid(userVO.getOpenid());
|
|
|
|
+ userWechatDTO.setUserInfo(wechatUserInfoDTO);
|
|
|
|
+ wechatLogic.setUserWechat(userWechatDTO);
|
|
|
|
+ }else {
|
|
|
|
+ UserThirdParty userThirdParty = new UserThirdParty();
|
|
|
|
+ userThirdParty.setThirdPartyIdentity(userVO.getThirdPartyId());
|
|
|
|
+ userThirdParty.setUserId(userToBind.getId());
|
|
|
|
+ userThirdParty.setType(userVO.getFrom());
|
|
|
|
+ userThirdParty.setIsDelete(0);
|
|
|
|
+ System.out.println(userThirdParty.getUserId()+"--"+userThirdParty.getThirdPartyIdentity()+"---"+userThirdParty.getType());
|
|
|
|
+ thirdPartyAuthService.save(userThirdParty);
|
|
|
|
+ }
|
|
HttpSession session = request.getSession();
|
|
HttpSession session = request.getSession();
|
|
session.setAttribute("userId", ((UserDTO)result.getData()).getId());
|
|
session.setAttribute("userId", ((UserDTO)result.getData()).getId());
|
|
session.setAttribute("userName", ((UserDTO)result.getData()).getEmail());
|
|
session.setAttribute("userName", ((UserDTO)result.getData()).getEmail());
|