Merge branch 'develop' of https://gitee.com/likeadmin/likeadmin_java into develop
This commit is contained in:
commit
869c444fa5
|
|
@ -2,8 +2,12 @@ package com.mdd.front.controller;
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.core.toolkit.Assert;
|
import com.baomidou.mybatisplus.core.toolkit.Assert;
|
||||||
import com.mdd.common.core.AjaxResult;
|
import com.mdd.common.core.AjaxResult;
|
||||||
|
import com.mdd.common.enums.ClientEnum;
|
||||||
|
import com.mdd.common.util.StringUtils;
|
||||||
import com.mdd.front.service.ILoginService;
|
import com.mdd.front.service.ILoginService;
|
||||||
import com.mdd.front.validate.UserRegisterValidate;
|
import com.mdd.front.validate.login.RegisterValidate;
|
||||||
|
import com.mdd.front.validate.login.ForgetPwdValidate;
|
||||||
|
import com.mdd.front.validate.login.OaLoginValidate;
|
||||||
import com.mdd.front.vo.LoginCodesVo;
|
import com.mdd.front.vo.LoginCodesVo;
|
||||||
import com.mdd.front.vo.LoginTokenVo;
|
import com.mdd.front.vo.LoginTokenVo;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
|
@ -12,8 +16,6 @@ import org.springframework.web.bind.annotation.*;
|
||||||
|
|
||||||
import javax.annotation.Resource;
|
import javax.annotation.Resource;
|
||||||
import javax.servlet.http.HttpSession;
|
import javax.servlet.http.HttpSession;
|
||||||
import java.io.UnsupportedEncodingException;
|
|
||||||
import java.net.URLEncoder;
|
|
||||||
import java.util.LinkedHashMap;
|
import java.util.LinkedHashMap;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
|
|
@ -32,12 +34,12 @@ public class LoginController {
|
||||||
* 注册账号
|
* 注册账号
|
||||||
*
|
*
|
||||||
* @author fzr
|
* @author fzr
|
||||||
* @param userRegisterValidate 参数
|
* @param registerValidate 参数
|
||||||
* @return AjaxResult<Object>
|
* @return AjaxResult<Object>
|
||||||
*/
|
*/
|
||||||
@PostMapping("/register")
|
@PostMapping("/register")
|
||||||
public AjaxResult<Object> register(@Validated @RequestBody UserRegisterValidate userRegisterValidate) {
|
public AjaxResult<Object> register(@Validated @RequestBody RegisterValidate registerValidate) {
|
||||||
iLoginService.register(userRegisterValidate);
|
iLoginService.register(registerValidate);
|
||||||
return AjaxResult.success();
|
return AjaxResult.success();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -52,9 +54,14 @@ public class LoginController {
|
||||||
public AjaxResult<LoginTokenVo> check(@RequestBody Map<String, String> params) {
|
public AjaxResult<LoginTokenVo> check(@RequestBody Map<String, String> params) {
|
||||||
Assert.notNull(params.get("scene"), "scene参数缺失!");
|
Assert.notNull(params.get("scene"), "scene参数缺失!");
|
||||||
LoginTokenVo vo = new LoginTokenVo();
|
LoginTokenVo vo = new LoginTokenVo();
|
||||||
|
|
||||||
switch (params.get("scene")) {
|
switch (params.get("scene")) {
|
||||||
case "mnp":
|
case "mnp":
|
||||||
vo = iLoginService.mnpLogin(params);
|
Assert.notNull(params.get("code"), "code参数缺失!");
|
||||||
|
Assert.notNull(params.get("client"), "client参数缺失!");
|
||||||
|
String code = params.get("code");
|
||||||
|
Integer client = Integer.parseInt(params.get("client"));
|
||||||
|
vo = iLoginService.mnpLogin(code, client);
|
||||||
break;
|
break;
|
||||||
case "mobile":
|
case "mobile":
|
||||||
vo = iLoginService.mobileLogin(params);
|
vo = iLoginService.mobileLogin(params);
|
||||||
|
|
@ -63,6 +70,7 @@ public class LoginController {
|
||||||
vo = iLoginService.accountLogin(params);
|
vo = iLoginService.accountLogin(params);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
return AjaxResult.success(vo);
|
return AjaxResult.success(vo);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -70,12 +78,16 @@ public class LoginController {
|
||||||
* 公众号登录
|
* 公众号登录
|
||||||
*
|
*
|
||||||
* @author fzr
|
* @author fzr
|
||||||
* @param params 参数
|
* @param oaLoginValidate 参数
|
||||||
* @return AjaxResult<LoginTokenVo>
|
* @return AjaxResult<LoginTokenVo>
|
||||||
*/
|
*/
|
||||||
@GetMapping("/oaLogin")
|
@PostMapping("/oaLogin")
|
||||||
public AjaxResult<LoginTokenVo> oaLogin(@RequestParam Map<String, String> params) {
|
public AjaxResult<LoginTokenVo> oaLogin(@Validated @RequestBody OaLoginValidate oaLoginValidate) {
|
||||||
LoginTokenVo vo = iLoginService.officeLogin(params);
|
String code = oaLoginValidate.getCode();
|
||||||
|
Integer client = oaLoginValidate.getClient();
|
||||||
|
client = StringUtils.isNotNull(client) ? client : ClientEnum.OA.getCode();
|
||||||
|
|
||||||
|
LoginTokenVo vo = iLoginService.officeLogin(code, client);
|
||||||
return AjaxResult.success(vo);
|
return AjaxResult.success(vo);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -99,15 +111,22 @@ public class LoginController {
|
||||||
* 忘记密码
|
* 忘记密码
|
||||||
*
|
*
|
||||||
* @author fzr
|
* @author fzr
|
||||||
* @param params 参数
|
* @param forgetPwdValidate 参数
|
||||||
* @return AjaxResult<Object>
|
* @return AjaxResult<Object>
|
||||||
*/
|
*/
|
||||||
@PostMapping("/forgotPassword")
|
@PostMapping("/forgotPassword")
|
||||||
public AjaxResult<Object> forgotPassword(@RequestBody Map<String, String> params) {
|
public AjaxResult<Object> forgotPassword(@Validated @RequestBody ForgetPwdValidate forgetPwdValidate) {
|
||||||
iLoginService.forgotPassword(params);
|
iLoginService.forgotPassword(forgetPwdValidate);
|
||||||
return AjaxResult.success();
|
return AjaxResult.success();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 扫码链接
|
||||||
|
*
|
||||||
|
* @author fzr
|
||||||
|
* @param session session
|
||||||
|
* @return AjaxResult<Map<String, String>>
|
||||||
|
*/
|
||||||
@GetMapping("/getScanCode")
|
@GetMapping("/getScanCode")
|
||||||
public AjaxResult<Map<String, String>> getScanCode(HttpSession session) {
|
public AjaxResult<Map<String, String>> getScanCode(HttpSession session) {
|
||||||
String qrcodeUrl = iLoginService.getScanCode(session);
|
String qrcodeUrl = iLoginService.getScanCode(session);
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,7 @@
|
||||||
package com.mdd.front.service;
|
package com.mdd.front.service;
|
||||||
|
|
||||||
import com.mdd.front.validate.UserRegisterValidate;
|
import com.mdd.front.validate.login.RegisterValidate;
|
||||||
|
import com.mdd.front.validate.login.ForgetPwdValidate;
|
||||||
import com.mdd.front.vo.LoginTokenVo;
|
import com.mdd.front.vo.LoginTokenVo;
|
||||||
|
|
||||||
import javax.servlet.http.HttpSession;
|
import javax.servlet.http.HttpSession;
|
||||||
|
|
@ -15,9 +16,9 @@ public interface ILoginService {
|
||||||
* 账号注册
|
* 账号注册
|
||||||
*
|
*
|
||||||
* @author fzr
|
* @author fzr
|
||||||
* @param userRegisterValidate 参数
|
* @param registerValidate 参数
|
||||||
*/
|
*/
|
||||||
void register(UserRegisterValidate userRegisterValidate);
|
void register(RegisterValidate registerValidate);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 账号登录
|
* 账号登录
|
||||||
|
|
@ -41,19 +42,21 @@ public interface ILoginService {
|
||||||
* 微信登录
|
* 微信登录
|
||||||
*
|
*
|
||||||
* @author fzr
|
* @author fzr
|
||||||
* @param params 参数
|
* @param code 微信code
|
||||||
|
* @param client 来源客户端
|
||||||
* @return LoginTokenVo
|
* @return LoginTokenVo
|
||||||
*/
|
*/
|
||||||
LoginTokenVo mnpLogin(Map<String, String> params);
|
LoginTokenVo mnpLogin(String code, Integer client);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 公众号登录
|
* 公众号登录
|
||||||
*
|
*
|
||||||
* @author fzr
|
* @author fzr
|
||||||
* @param params 参数
|
* @param code 参数
|
||||||
|
* @param client 参数
|
||||||
* @return LoginTokenVo
|
* @return LoginTokenVo
|
||||||
*/
|
*/
|
||||||
LoginTokenVo officeLogin(Map<String, String> params);
|
LoginTokenVo officeLogin(String code, Integer client);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 公众号跳转url
|
* 公众号跳转url
|
||||||
|
|
@ -68,9 +71,9 @@ public interface ILoginService {
|
||||||
* 忘记密码
|
* 忘记密码
|
||||||
*
|
*
|
||||||
* @author fzr
|
* @author fzr
|
||||||
* @param params 参数
|
* @param forgetPwdValidate 参数
|
||||||
*/
|
*/
|
||||||
void forgotPassword(Map<String, String> params);
|
void forgotPassword(ForgetPwdValidate forgetPwdValidate);
|
||||||
|
|
||||||
String getScanCode(HttpSession session);
|
String getScanCode(HttpSession session);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -15,7 +15,8 @@ import com.mdd.common.mapper.user.UserMapper;
|
||||||
import com.mdd.common.util.*;
|
import com.mdd.common.util.*;
|
||||||
import com.mdd.front.config.FrontConfig;
|
import com.mdd.front.config.FrontConfig;
|
||||||
import com.mdd.front.service.ILoginService;
|
import com.mdd.front.service.ILoginService;
|
||||||
import com.mdd.front.validate.UserRegisterValidate;
|
import com.mdd.front.validate.login.RegisterValidate;
|
||||||
|
import com.mdd.front.validate.login.ForgetPwdValidate;
|
||||||
import com.mdd.front.vo.LoginTokenVo;
|
import com.mdd.front.vo.LoginTokenVo;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import me.chanjar.weixin.common.api.WxConsts;
|
import me.chanjar.weixin.common.api.WxConsts;
|
||||||
|
|
@ -49,13 +50,13 @@ public class LoginServiceImpl implements ILoginService {
|
||||||
* 注册账号
|
* 注册账号
|
||||||
*
|
*
|
||||||
* @author fzr
|
* @author fzr
|
||||||
* @param userRegisterValidate 参数
|
* @param registerValidate 参数
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public void register(UserRegisterValidate userRegisterValidate) {
|
public void register(RegisterValidate registerValidate) {
|
||||||
User model = userMapper.selectOne(new QueryWrapper<User>()
|
User model = userMapper.selectOne(new QueryWrapper<User>()
|
||||||
.select("id,sn,username")
|
.select("id,sn,username")
|
||||||
.eq("username", userRegisterValidate.getUsername())
|
.eq("username", registerValidate.getUsername())
|
||||||
.eq("is_delete", 0)
|
.eq("is_delete", 0)
|
||||||
.last("limit 1"));
|
.last("limit 1"));
|
||||||
|
|
||||||
|
|
@ -63,16 +64,16 @@ public class LoginServiceImpl implements ILoginService {
|
||||||
|
|
||||||
Integer sn = this.randMakeSn();
|
Integer sn = this.randMakeSn();
|
||||||
String salt = ToolsUtils.randomString(5);
|
String salt = ToolsUtils.randomString(5);
|
||||||
String pwd = ToolsUtils.makeMd5(userRegisterValidate.getPassword()+salt);
|
String pwd = ToolsUtils.makeMd5(registerValidate.getPassword()+salt);
|
||||||
|
|
||||||
User user = new User();
|
User user = new User();
|
||||||
user.setSn(sn);
|
user.setSn(sn);
|
||||||
user.setNickname("用户"+sn);
|
user.setNickname("用户"+sn);
|
||||||
user.setUsername(userRegisterValidate.getUsername());
|
user.setUsername(registerValidate.getUsername());
|
||||||
user.setPassword(pwd);
|
user.setPassword(pwd);
|
||||||
user.setSalt(salt);
|
user.setSalt(salt);
|
||||||
user.setAvatar("/api/static/default_avatar.png");
|
user.setAvatar("/api/static/default_avatar.png");
|
||||||
user.setChannel(userRegisterValidate.getClient());
|
user.setChannel(registerValidate.getClient());
|
||||||
user.setCreateTime(System.currentTimeMillis() / 1000);
|
user.setCreateTime(System.currentTimeMillis() / 1000);
|
||||||
user.setUpdateTime(System.currentTimeMillis() / 1000);
|
user.setUpdateTime(System.currentTimeMillis() / 1000);
|
||||||
userMapper.insert(user);
|
userMapper.insert(user);
|
||||||
|
|
@ -157,19 +158,13 @@ public class LoginServiceImpl implements ILoginService {
|
||||||
* 微信小程序登录
|
* 微信小程序登录
|
||||||
*
|
*
|
||||||
* @author fzr
|
* @author fzr
|
||||||
* @param params 参数
|
* @param code 微信code
|
||||||
|
* @param client 来源客户端
|
||||||
* @return LoginTokenVo
|
* @return LoginTokenVo
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
@Transactional
|
@Transactional
|
||||||
public LoginTokenVo mnpLogin(Map<String, String> params) {
|
public LoginTokenVo mnpLogin(String code, Integer client) {
|
||||||
Assert.notNull(params.get("code"), "code参数缺失!");
|
|
||||||
String code = params.get("code");
|
|
||||||
String avatarUrl = params.getOrDefault("avatarUrl", "/api/static/default_avatar.png");
|
|
||||||
String nickName = params.getOrDefault("nickName", "微信用户");
|
|
||||||
String gender = params.getOrDefault("gender", "0");
|
|
||||||
Integer client = Integer.parseInt(params.getOrDefault("client", "1"));
|
|
||||||
|
|
||||||
try {
|
try {
|
||||||
WxMaService wxMaService = WeChatUtils.mnp();
|
WxMaService wxMaService = WeChatUtils.mnp();
|
||||||
WxMaJscode2SessionResult sessionResult = wxMaService.getUserService().getSessionInfo(code);
|
WxMaJscode2SessionResult sessionResult = wxMaService.getUserService().getSessionInfo(code);
|
||||||
|
|
@ -196,10 +191,10 @@ public class LoginServiceImpl implements ILoginService {
|
||||||
Integer sn = this.randMakeSn();
|
Integer sn = this.randMakeSn();
|
||||||
User model = new User();
|
User model = new User();
|
||||||
model.setSn(sn);
|
model.setSn(sn);
|
||||||
model.setAvatar(avatarUrl);
|
model.setAvatar("/api/static/default_avatar.png");
|
||||||
model.setNickname(nickName.equals("") ? "用户"+sn : nickName);
|
model.setNickname("用户"+sn);
|
||||||
model.setUsername("u"+sn);
|
model.setUsername("u"+sn);
|
||||||
model.setSex(Integer.parseInt(gender));
|
model.setSex(0);
|
||||||
model.setChannel(client);
|
model.setChannel(client);
|
||||||
model.setLastLoginIp(IpUtils.getHostIp());
|
model.setLastLoginIp(IpUtils.getHostIp());
|
||||||
model.setLastLoginTime(System.currentTimeMillis() / 1000);
|
model.setLastLoginTime(System.currentTimeMillis() / 1000);
|
||||||
|
|
@ -227,13 +222,6 @@ public class LoginServiceImpl implements ILoginService {
|
||||||
userAuthMapper.updateById(userAuth);
|
userAuthMapper.updateById(userAuth);
|
||||||
}
|
}
|
||||||
|
|
||||||
// 更新用户信息
|
|
||||||
if (StringUtils.isEmpty(user.getAvatar()) && StringUtils.isNotEmpty(avatarUrl)) {
|
|
||||||
user.setAvatar(avatarUrl);
|
|
||||||
user.setNickname(nickName);
|
|
||||||
user.setSex(Integer.parseInt(gender));
|
|
||||||
}
|
|
||||||
|
|
||||||
// 更新登录信息
|
// 更新登录信息
|
||||||
user.setLastLoginIp(IpUtils.getHostIp());
|
user.setLastLoginIp(IpUtils.getHostIp());
|
||||||
user.setLastLoginTime(System.currentTimeMillis() / 1000);
|
user.setLastLoginTime(System.currentTimeMillis() / 1000);
|
||||||
|
|
@ -254,10 +242,7 @@ public class LoginServiceImpl implements ILoginService {
|
||||||
* @return LoginTokenVo
|
* @return LoginTokenVo
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public LoginTokenVo officeLogin(Map<String, String> params) {
|
public LoginTokenVo officeLogin(String code, Integer client) {
|
||||||
Assert.notNull(params.get("code"), "code参数缺失!");
|
|
||||||
String code = params.get("code");
|
|
||||||
|
|
||||||
try {
|
try {
|
||||||
WxMpService wxMpService = WeChatUtils.official();
|
WxMpService wxMpService = WeChatUtils.official();
|
||||||
WxOAuth2AccessToken wxOAuth2AccessToken = wxMpService.getOAuth2Service().getAccessToken(code);
|
WxOAuth2AccessToken wxOAuth2AccessToken = wxMpService.getOAuth2Service().getAccessToken(code);
|
||||||
|
|
@ -286,8 +271,8 @@ public class LoginServiceImpl implements ILoginService {
|
||||||
model.setSn(sn);
|
model.setSn(sn);
|
||||||
model.setAvatar("/api/static/default_avatar.png");
|
model.setAvatar("/api/static/default_avatar.png");
|
||||||
model.setNickname("用户" + sn);
|
model.setNickname("用户" + sn);
|
||||||
model.setUsername("u"+sn);
|
model.setUsername("u" + sn);
|
||||||
model.setChannel(ClientEnum.OA.getCode());
|
model.setChannel(client);
|
||||||
model.setSex(0);
|
model.setSex(0);
|
||||||
model.setLastLoginIp(IpUtils.getHostIp());
|
model.setLastLoginIp(IpUtils.getHostIp());
|
||||||
model.setLastLoginTime(System.currentTimeMillis() / 1000);
|
model.setLastLoginTime(System.currentTimeMillis() / 1000);
|
||||||
|
|
@ -345,16 +330,13 @@ public class LoginServiceImpl implements ILoginService {
|
||||||
* 忘记密码
|
* 忘记密码
|
||||||
*
|
*
|
||||||
* @author fzr
|
* @author fzr
|
||||||
* @param params 参数
|
* @param forgetPwdValidate 参数
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public void forgotPassword(Map<String, String> params) {
|
public void forgotPassword(ForgetPwdValidate forgetPwdValidate) {
|
||||||
Assert.notNull(params.get("mobile"), "mobile参数缺失!");
|
String mobile = forgetPwdValidate.getMobile();
|
||||||
Assert.notNull(params.get("code"), "code参数缺失!");
|
String code = forgetPwdValidate.getCode();
|
||||||
Assert.notNull(params.get("password"), "password参数缺失!");
|
String password = forgetPwdValidate.getPassword();
|
||||||
String mobile = params.get("mobile");
|
|
||||||
String code = params.get("code");
|
|
||||||
String password = params.get("password");
|
|
||||||
|
|
||||||
// 校验验证码
|
// 校验验证码
|
||||||
int typeCode = NoticeEnum.SMS_FORGOT_PASSWORD_CODE.getCode();
|
int typeCode = NoticeEnum.SMS_FORGOT_PASSWORD_CODE.getCode();
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,25 @@
|
||||||
|
package com.mdd.front.validate.login;
|
||||||
|
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
import javax.validation.constraints.NotNull;
|
||||||
|
import java.io.Serializable;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 忘记密码参数
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
public class ForgetPwdValidate implements Serializable {
|
||||||
|
|
||||||
|
private static final long serialVersionUID = 1L;
|
||||||
|
|
||||||
|
@NotNull(message = "mobile参数缺失")
|
||||||
|
private String mobile;
|
||||||
|
|
||||||
|
@NotNull(message = "code参数缺失")
|
||||||
|
private String code;
|
||||||
|
|
||||||
|
@NotNull(message = "password参数缺失")
|
||||||
|
private String password;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,23 @@
|
||||||
|
package com.mdd.front.validate.login;
|
||||||
|
|
||||||
|
import com.mdd.common.validator.annotation.IntegerContains;
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
import javax.validation.constraints.NotNull;
|
||||||
|
import java.io.Serializable;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 公众号登录参数
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
public class OaLoginValidate implements Serializable {
|
||||||
|
|
||||||
|
private static final long serialVersionUID = 1L;
|
||||||
|
|
||||||
|
@NotNull(message = "code参数缺失")
|
||||||
|
private String code;
|
||||||
|
|
||||||
|
@IntegerContains(values = {1, 2, 3, 4, 5, 6}, message = "client参数值不符合")
|
||||||
|
private Integer client;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
package com.mdd.front.validate;
|
package com.mdd.front.validate.login;
|
||||||
|
|
||||||
import com.mdd.common.validator.annotation.IntegerContains;
|
import com.mdd.common.validator.annotation.IntegerContains;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
|
@ -13,7 +13,7 @@ import java.io.Serializable;
|
||||||
* 注册参数类
|
* 注册参数类
|
||||||
*/
|
*/
|
||||||
@Data
|
@Data
|
||||||
public class UserRegisterValidate implements Serializable {
|
public class RegisterValidate implements Serializable {
|
||||||
|
|
||||||
private static final long serialVersionUID = 1L;
|
private static final long serialVersionUID = 1L;
|
||||||
|
|
||||||
Loading…
Reference in New Issue