|
@@ -1,178 +0,0 @@
|
|
-package com.jeesharp.modules.api.app.login;
|
|
|
|
-
|
|
|
|
-import cn.binarywang.wx.miniapp.api.WxMaService;
|
|
|
|
-import cn.binarywang.wx.miniapp.bean.WxMaJscode2SessionResult;
|
|
|
|
-import cn.binarywang.wx.miniapp.bean.WxMaUserInfo;
|
|
|
|
-import com.jeesharp.common.constant.ResponseCode;
|
|
|
|
-import com.jeesharp.common.json.AjaxResult;
|
|
|
|
-import com.jeesharp.common.utils.EmojiRecoveryUtils;
|
|
|
|
-import com.jeesharp.common.utils.PasswordUtils;
|
|
|
|
-import com.jeesharp.core.web.BaseController;
|
|
|
|
-import com.jeesharp.modules.member.utils.VerifyCodeUtils;
|
|
|
|
-import com.jeesharp.modules.member.constant.LoginType;
|
|
|
|
-import com.jeesharp.modules.member.utils.ApiUserUtils;
|
|
|
|
-import com.jeesharp.modules.member.entity.Member;
|
|
|
|
-import com.jeesharp.modules.member.service.MemberService;
|
|
|
|
-import com.jeesharp.modules.wechat.api.WeixinOpenService;
|
|
|
|
-import io.swagger.annotations.Api;
|
|
|
|
-import io.swagger.annotations.ApiOperation;
|
|
|
|
-import me.chanjar.weixin.common.error.WxErrorException;
|
|
|
|
-import org.apache.commons.lang3.StringUtils;
|
|
|
|
-import org.springframework.stereotype.Controller;
|
|
|
|
-import org.springframework.web.bind.annotation.*;
|
|
|
|
-
|
|
|
|
-import java.io.IOException;
|
|
|
|
-import java.util.Map;
|
|
|
|
-
|
|
|
|
-/**
|
|
|
|
- *
|
|
|
|
- * @author qiyuan
|
|
|
|
- */
|
|
|
|
-@Controller
|
|
|
|
-@Api(tags = "用户登录")
|
|
|
|
-@RequestMapping("/apiApp/{code}/wechat")
|
|
|
|
-public class LoginWeChatApiController extends BaseController {
|
|
|
|
-
|
|
|
|
- private final MemberService memberService;
|
|
|
|
- private final WeixinOpenService weixinOpenService;
|
|
|
|
-
|
|
|
|
- public LoginWeChatApiController(MemberService memberService , WeixinOpenService weixinOpenService){
|
|
|
|
- this.memberService = memberService;
|
|
|
|
- this.weixinOpenService = weixinOpenService;
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- /***
|
|
|
|
- * 小程序登录:类型值:3:没有关联开放平台的小程序登录 4:关联开放平台的小程序登录
|
|
|
|
- * @param code 账号
|
|
|
|
- * @param type 密码
|
|
|
|
- * @param encryptedData 小程序返回的
|
|
|
|
- * @param ivStr 小程序返回的
|
|
|
|
- * @return
|
|
|
|
- */
|
|
|
|
- @ResponseBody
|
|
|
|
- @ApiOperation("2.2 小程序登录")
|
|
|
|
- @PostMapping("login")
|
|
|
|
- public AjaxResult login(String code, String type, String encryptedData, String ivStr, String appid){
|
|
|
|
- Member member = null;
|
|
|
|
- if(LoginType.MINI_LOGIN_NOAUTO.getCode().equals(type)){
|
|
|
|
- WxMaService wxMaService = weixinOpenService.getMiniService(appid);
|
|
|
|
- try {
|
|
|
|
- WxMaJscode2SessionResult session = wxMaService.jsCode2SessionInfo(code);
|
|
|
|
- WxMaUserInfo wxMaUserInfo = wxMaService.getUserService().getUserInfo(session.getSessionKey(), encryptedData, ivStr);
|
|
|
|
- member = memberService.getByMiniOpenid(wxMaUserInfo.getOpenId());
|
|
|
|
- if (member == null) {
|
|
|
|
- member = new Member();
|
|
|
|
- member.setName(EmojiRecoveryUtils.emojiConvert(wxMaUserInfo.getNickName()));
|
|
|
|
- member.setSex(wxMaUserInfo.getGender());
|
|
|
|
- member.setMiniOpenid(wxMaUserInfo.getOpenId());
|
|
|
|
- memberService.saveApiMember(member);
|
|
|
|
- }
|
|
|
|
- } catch (WxErrorException e){
|
|
|
|
-
|
|
|
|
- }
|
|
|
|
- } else if(LoginType.MINI_LOGIN_AUTH.getCode().equals(type)){
|
|
|
|
- WxMaService wxMaService = weixinOpenService.getMiniService(appid);
|
|
|
|
- try {
|
|
|
|
- WxMaJscode2SessionResult session = wxMaService.jsCode2SessionInfo(code);
|
|
|
|
- WxMaUserInfo wxMaUserInfo = wxMaService.getUserService().getUserInfo(session.getSessionKey(), encryptedData, ivStr);
|
|
|
|
- member = memberService.getByUnionid(wxMaUserInfo.getOpenId());
|
|
|
|
- if (member == null) {
|
|
|
|
- member = new Member();
|
|
|
|
- member.setUnionid(wxMaUserInfo.getUnionId());
|
|
|
|
- member.setName(EmojiRecoveryUtils.emojiConvert(wxMaUserInfo.getNickName()));
|
|
|
|
- member.setSex(wxMaUserInfo.getGender());
|
|
|
|
- member.setMiniOpenid(wxMaUserInfo.getOpenId());
|
|
|
|
- memberService.saveApiMember(member);
|
|
|
|
- }
|
|
|
|
- } catch (WxErrorException e){
|
|
|
|
-
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
- return AjaxResult.createBySuccess(ApiUserUtils.createLoginResponse(member));
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- /***
|
|
|
|
- * 小程序登录隐形登录,有则返回用户信息,没的话就不要处理
|
|
|
|
- * @param code
|
|
|
|
- * @return
|
|
|
|
- */
|
|
|
|
- @ResponseBody
|
|
|
|
- @ApiOperation("2.4 小程序登录隐形登录")
|
|
|
|
- @PostMapping("miniLogin")
|
|
|
|
- public AjaxResult miniLogin(@RequestBody Map<String,String> param) throws WxErrorException{
|
|
|
|
- /** code登录 */
|
|
|
|
- if (StringUtils.isBlank(param.get("code"))) {
|
|
|
|
- return AjaxResult.createByErrorMessge("empty jscode");
|
|
|
|
- }
|
|
|
|
- WxMaService wxMaService = weixinOpenService.getMiniService(param.get("appId"));
|
|
|
|
- WxMaJscode2SessionResult result = wxMaService.jsCode2SessionInfo(param.get("code"));
|
|
|
|
- Member member = memberService.getByUnionid(result.getUnionid());
|
|
|
|
- /**说明没有关注公众号 或者 用户直接进入小程序的*/
|
|
|
|
- if (member == null) {
|
|
|
|
- member = memberService.getByMiniOpenid(result.getOpenid());
|
|
|
|
- }
|
|
|
|
- if (member == null) {
|
|
|
|
- return AjaxResult.createByErrorCodeMessage(ResponseCode.OTHER.getCode()
|
|
|
|
- ,ResponseCode.OTHER.getName());
|
|
|
|
- }
|
|
|
|
- return AjaxResult.createBySuccess(ApiUserUtils.createLoginResponse(member));
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
-
|
|
|
|
- @ResponseBody
|
|
|
|
- @PostMapping("getOpenid")
|
|
|
|
- public AjaxResult getOpenid(@RequestBody Map<String,String> param) throws WxErrorException{
|
|
|
|
- /** code登录 */
|
|
|
|
- if (StringUtils.isBlank(param.get("code"))) {
|
|
|
|
- return AjaxResult.failMsg("empty jscode");
|
|
|
|
- }
|
|
|
|
- WxMaService wxMaService = weixinOpenService.getMiniService(param.get("appId"));
|
|
|
|
- WxMaJscode2SessionResult result = wxMaService.jsCode2SessionInfo(param.get("code"));
|
|
|
|
- return AjaxResult.okData(result);
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
-
|
|
|
|
- /***
|
|
|
|
- * 退出
|
|
|
|
- * @return
|
|
|
|
- * @throws IOException
|
|
|
|
- */
|
|
|
|
- @ApiOperation(notes = "logout", httpMethod = "POST", value = "2.3 用户退出")
|
|
|
|
- @GetMapping(value = "logout")
|
|
|
|
- public AjaxResult logout(){
|
|
|
|
- ApiUserUtils.apiUserLogout();
|
|
|
|
- return AjaxResult.createBySuccess();
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
-
|
|
|
|
- /***
|
|
|
|
- * 忘记密码
|
|
|
|
- * @param phone
|
|
|
|
- * @param code
|
|
|
|
- * @param newPwd
|
|
|
|
- * @return
|
|
|
|
- */
|
|
|
|
- @ApiOperation("2.1 忘记密码")
|
|
|
|
- @PostMapping(value = "forgetPwd")
|
|
|
|
- public AjaxResult forgetPwd(String phone, String code , String newPwd) throws Exception{
|
|
|
|
- if (StringUtils.isBlank(phone)) {
|
|
|
|
- return AjaxResult.failMsg("手机号码不能为空");
|
|
|
|
- }
|
|
|
|
- if (StringUtils.isBlank(code)) {
|
|
|
|
- return AjaxResult.failMsg("验证码不能为空");
|
|
|
|
- }
|
|
|
|
- if (StringUtils.isBlank(newPwd)) {
|
|
|
|
- return AjaxResult.failMsg("密码不能为空");
|
|
|
|
- }
|
|
|
|
- if (!code.equals(VerifyCodeUtils.getSmsCode(phone))) {
|
|
|
|
- return AjaxResult.failMsg("验证码不正确");
|
|
|
|
- }
|
|
|
|
- Member member = memberService.getByMobile(phone);
|
|
|
|
- if (member != null) {
|
|
|
|
- member.setPassword(PasswordUtils.encryptPassword(newPwd));
|
|
|
|
- memberService.saveApiMember(member);
|
|
|
|
- return AjaxResult.failMsg("修改成功");
|
|
|
|
- }
|
|
|
|
- return AjaxResult.failMsg("用户不存在");
|
|
|
|
- }
|
|
|
|
-}
|
|
|