localizer
parent
8000a4bd3e
commit
44e0c71ce5
|
|
@ -23,7 +23,11 @@
|
||||||
<artifactId>njzscloud-common-core</artifactId>
|
<artifactId>njzscloud-common-core</artifactId>
|
||||||
<scope>provided</scope>
|
<scope>provided</scope>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>com.njzscloud</groupId>
|
||||||
|
<artifactId>njzscloud-common-wechat</artifactId>
|
||||||
|
<scope>provided</scope>
|
||||||
|
</dependency>
|
||||||
<!-- <dependency>
|
<!-- <dependency>
|
||||||
<groupId>com.njzscloud</groupId>
|
<groupId>com.njzscloud</groupId>
|
||||||
<artifactId>njzscloud-common-redis</artifactId>
|
<artifactId>njzscloud-common-redis</artifactId>
|
||||||
|
|
|
||||||
|
|
@ -9,6 +9,8 @@ import com.njzscloud.common.security.module.code.CodeAuthenticationProvider;
|
||||||
import com.njzscloud.common.security.module.code.CodeLoginPreparer;
|
import com.njzscloud.common.security.module.code.CodeLoginPreparer;
|
||||||
import com.njzscloud.common.security.module.password.PasswordAuthenticationProvider;
|
import com.njzscloud.common.security.module.password.PasswordAuthenticationProvider;
|
||||||
import com.njzscloud.common.security.module.password.PasswordLoginPreparer;
|
import com.njzscloud.common.security.module.password.PasswordLoginPreparer;
|
||||||
|
import com.njzscloud.common.security.module.wechat.mini.WechatMiniAuthenticationProvider;
|
||||||
|
import com.njzscloud.common.security.module.wechat.mini.WechatMiniLoginPreparer;
|
||||||
import com.njzscloud.common.security.permission.DefaultPermissionManager;
|
import com.njzscloud.common.security.permission.DefaultPermissionManager;
|
||||||
import com.njzscloud.common.security.permission.PermissionManager;
|
import com.njzscloud.common.security.permission.PermissionManager;
|
||||||
import com.njzscloud.common.security.permission.PermissionSecurityMetaDataSource;
|
import com.njzscloud.common.security.permission.PermissionSecurityMetaDataSource;
|
||||||
|
|
@ -58,32 +60,44 @@ public class WebSecurityAutoConfiguration {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Bean
|
@Bean
|
||||||
@ConditionalOnMissingBean({IUserService.class, IRoleService.class, IResourceService.class})
|
@ConditionalOnMissingBean({IUserService.class, IRoleService.class})
|
||||||
public DefaultAuthenticationProvider defaultAuthenticationProvider() {
|
public DefaultAuthenticationProvider defaultAuthenticationProvider() {
|
||||||
return new DefaultAuthenticationProvider();
|
return new DefaultAuthenticationProvider();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Bean
|
@Bean
|
||||||
@ConditionalOnBean({IUserService.class, IRoleService.class, IResourceService.class})
|
@ConditionalOnBean({IUserService.class, IRoleService.class})
|
||||||
public PasswordAuthenticationProvider passwordAuthenticationProvider(IUserService iUserService, IRoleService iRoleService, IResourceService iResourceService) {
|
public PasswordAuthenticationProvider passwordAuthenticationProvider(IUserService iUserService, IRoleService iRoleService) {
|
||||||
return new PasswordAuthenticationProvider(iUserService, iRoleService, iResourceService);
|
return new PasswordAuthenticationProvider(iUserService, iRoleService);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Bean
|
@Bean
|
||||||
@ConditionalOnBean({IUserService.class, IRoleService.class, IResourceService.class})
|
@ConditionalOnBean({IUserService.class, IRoleService.class})
|
||||||
public PasswordLoginPreparer passwordLoginPreparer() {
|
public PasswordLoginPreparer passwordLoginPreparer() {
|
||||||
return new PasswordLoginPreparer();
|
return new PasswordLoginPreparer();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Bean
|
||||||
|
@ConditionalOnBean({IUserService.class, IRoleService.class})
|
||||||
|
public WechatMiniAuthenticationProvider wechatMiniAuthenticationProvider(IUserService iUserService, IRoleService iRoleService) {
|
||||||
|
return new WechatMiniAuthenticationProvider(iUserService, iRoleService);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Bean
|
||||||
|
@ConditionalOnBean({IUserService.class, IRoleService.class})
|
||||||
|
public WechatMiniLoginPreparer wechatMiniLoginPreparer() {
|
||||||
|
return new WechatMiniLoginPreparer();
|
||||||
|
}
|
||||||
|
|
||||||
@Bean
|
@Bean
|
||||||
public VerificationCodeService verificationCodeService() {
|
public VerificationCodeService verificationCodeService() {
|
||||||
return new VerificationCodeService(true);
|
return new VerificationCodeService(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Bean
|
@Bean
|
||||||
@ConditionalOnBean({IUserService.class, IRoleService.class, IResourceService.class, VerificationCodeService.class})
|
@ConditionalOnBean({IUserService.class, IRoleService.class, VerificationCodeService.class})
|
||||||
public CodeAuthenticationProvider codeAuthenticationProvider(IUserService iUserService, IRoleService iRoleService, IResourceService iResourceService, VerificationCodeService verificationCodeService) {
|
public CodeAuthenticationProvider codeAuthenticationProvider(IUserService iUserService, IRoleService iRoleService, VerificationCodeService verificationCodeService) {
|
||||||
return new CodeAuthenticationProvider(iUserService, iRoleService, iResourceService, verificationCodeService);
|
return new CodeAuthenticationProvider(iUserService, iRoleService, verificationCodeService);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Bean
|
@Bean
|
||||||
|
|
|
||||||
|
|
@ -17,7 +17,6 @@ import java.util.Set;
|
||||||
public class CodeAuthenticationProvider extends AbstractAuthenticationProvider {
|
public class CodeAuthenticationProvider extends AbstractAuthenticationProvider {
|
||||||
private final IUserService iUserService;
|
private final IUserService iUserService;
|
||||||
private final IRoleService iRoleService;
|
private final IRoleService iRoleService;
|
||||||
private final IResourceService iResourceService;
|
|
||||||
private final VerificationCodeService verificationCodeService;
|
private final VerificationCodeService verificationCodeService;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -30,15 +29,13 @@ public class CodeAuthenticationProvider extends AbstractAuthenticationProvider {
|
||||||
protected UserDetail retrieveUser(LoginForm loginForm) throws UserLoginException {
|
protected UserDetail retrieveUser(LoginForm loginForm) throws UserLoginException {
|
||||||
CodeLoginForm codeLoginForm = (CodeLoginForm) loginForm;
|
CodeLoginForm codeLoginForm = (CodeLoginForm) loginForm;
|
||||||
String phone = codeLoginForm.getPhone();
|
String phone = codeLoginForm.getPhone();
|
||||||
UserDetail userDetail = iUserService.selectUser(phone, codeLoginForm.getAuthWay());
|
UserDetail userDetail = iUserService.selectUser(codeLoginForm);
|
||||||
if (userDetail == null) throw new UserLoginException(ExceptionMsg.CLI_ERR_MSG, "账号不存在");
|
if (userDetail == null) throw new UserLoginException(ExceptionMsg.CLI_ERR_MSG, "账号不存在");
|
||||||
Long userId = userDetail.getUserId();
|
Long userId = userDetail.getUserId();
|
||||||
Set<String> roles = iRoleService.selectRoleByUserId(userId);
|
Set<String> roles = iRoleService.selectRoleByUserId(userId);
|
||||||
Resource resource = iResourceService.selectResourceByUserId(userId);
|
|
||||||
return userDetail
|
return userDetail
|
||||||
.setAuthWay(AuthWay.PASSWORD)
|
.setAuthWay(AuthWay.PASSWORD)
|
||||||
.setRoles(roles)
|
.setRoles(roles)
|
||||||
.setResource(resource)
|
|
||||||
;
|
;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -2,6 +2,7 @@ package com.njzscloud.common.security.module.password;
|
||||||
|
|
||||||
import cn.hutool.core.lang.Assert;
|
import cn.hutool.core.lang.Assert;
|
||||||
import com.njzscloud.common.core.ex.ExceptionMsg;
|
import com.njzscloud.common.core.ex.ExceptionMsg;
|
||||||
|
import com.njzscloud.common.core.ex.SysThrowable;
|
||||||
import com.njzscloud.common.security.contant.AuthWay;
|
import com.njzscloud.common.security.contant.AuthWay;
|
||||||
import com.njzscloud.common.security.ex.UserLoginException;
|
import com.njzscloud.common.security.ex.UserLoginException;
|
||||||
import com.njzscloud.common.security.support.*;
|
import com.njzscloud.common.security.support.*;
|
||||||
|
|
@ -17,7 +18,6 @@ import java.util.Set;
|
||||||
public class PasswordAuthenticationProvider extends AbstractAuthenticationProvider {
|
public class PasswordAuthenticationProvider extends AbstractAuthenticationProvider {
|
||||||
private final IUserService iUserService;
|
private final IUserService iUserService;
|
||||||
private final IRoleService iRoleService;
|
private final IRoleService iRoleService;
|
||||||
private final IResourceService iResourceService;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 读取用户信息
|
* 读取用户信息
|
||||||
|
|
@ -28,16 +28,18 @@ public class PasswordAuthenticationProvider extends AbstractAuthenticationProvid
|
||||||
@Override
|
@Override
|
||||||
protected UserDetail retrieveUser(LoginForm loginForm) throws UserLoginException {
|
protected UserDetail retrieveUser(LoginForm loginForm) throws UserLoginException {
|
||||||
PasswordLoginForm passwordLoginForm = (PasswordLoginForm) loginForm;
|
PasswordLoginForm passwordLoginForm = (PasswordLoginForm) loginForm;
|
||||||
String account = passwordLoginForm.getAccount();
|
UserDetail userDetail;
|
||||||
UserDetail userDetail = iUserService.selectUser(account, passwordLoginForm.getAuthWay());
|
try {
|
||||||
|
userDetail = iUserService.selectUser(passwordLoginForm);
|
||||||
|
} catch (SysThrowable e) {
|
||||||
|
throw new UserLoginException(e.msg, e.message.toString());
|
||||||
|
}
|
||||||
if (userDetail == null) throw new UserLoginException(ExceptionMsg.CLI_ERR_MSG, "账号或密码错误");
|
if (userDetail == null) throw new UserLoginException(ExceptionMsg.CLI_ERR_MSG, "账号或密码错误");
|
||||||
Long userId = userDetail.getUserId();
|
Long userId = userDetail.getUserId();
|
||||||
Set<String> roles = iRoleService.selectRoleByUserId(userId);
|
Set<String> roles = iRoleService.selectRoleByUserId(userId);
|
||||||
Resource resource = iResourceService.selectResourceByUserId(userId);
|
|
||||||
return userDetail
|
return userDetail
|
||||||
.setAuthWay(AuthWay.PASSWORD)
|
.setAuthWay(AuthWay.PASSWORD)
|
||||||
.setRoles(roles)
|
.setRoles(roles)
|
||||||
.setResource(resource)
|
|
||||||
;
|
;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -5,6 +5,7 @@ import com.njzscloud.common.core.jackson.Jackson;
|
||||||
import com.njzscloud.common.security.ex.UserLoginException;
|
import com.njzscloud.common.security.ex.UserLoginException;
|
||||||
import com.njzscloud.common.security.support.LoginForm;
|
import com.njzscloud.common.security.support.LoginForm;
|
||||||
import com.njzscloud.common.security.support.LoginPreparer;
|
import com.njzscloud.common.security.support.LoginPreparer;
|
||||||
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.springframework.security.web.util.matcher.AntPathRequestMatcher;
|
import org.springframework.security.web.util.matcher.AntPathRequestMatcher;
|
||||||
|
|
||||||
import javax.servlet.ServletInputStream;
|
import javax.servlet.ServletInputStream;
|
||||||
|
|
@ -15,6 +16,7 @@ import static com.njzscloud.common.security.contant.Constants.LOGIN_URL;
|
||||||
/**
|
/**
|
||||||
* 账号密码登录,登录参数处理器
|
* 账号密码登录,登录参数处理器
|
||||||
*/
|
*/
|
||||||
|
@Slf4j
|
||||||
public class PasswordLoginPreparer implements LoginPreparer {
|
public class PasswordLoginPreparer implements LoginPreparer {
|
||||||
private static final AntPathRequestMatcher matcher = new AntPathRequestMatcher(LOGIN_URL, "POST");
|
private static final AntPathRequestMatcher matcher = new AntPathRequestMatcher(LOGIN_URL, "POST");
|
||||||
|
|
||||||
|
|
@ -27,7 +29,9 @@ public class PasswordLoginPreparer implements LoginPreparer {
|
||||||
@Override
|
@Override
|
||||||
public LoginForm createLoginForm(HttpServletRequest request) {
|
public LoginForm createLoginForm(HttpServletRequest request) {
|
||||||
try (ServletInputStream inputStream = request.getInputStream()) {
|
try (ServletInputStream inputStream = request.getInputStream()) {
|
||||||
return Jackson.toBean(inputStream, PasswordLoginForm.class);
|
LoginForm loginForm = Jackson.toBean(inputStream, PasswordLoginForm.class);
|
||||||
|
log.info("账号密码登录表单:{}", Jackson.toJsonStr(loginForm));
|
||||||
|
return loginForm;
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
throw new UserLoginException(e, ExceptionMsg.SYS_ERR_MSG, "登录表单解析失败");
|
throw new UserLoginException(e, ExceptionMsg.SYS_ERR_MSG, "登录表单解析失败");
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,9 +1,9 @@
|
||||||
package com.njzscloud.common.security.module.wechat.mini;
|
package com.njzscloud.common.security.module.wechat.mini;
|
||||||
|
|
||||||
import com.njzscloud.common.core.ex.ExceptionMsg;
|
import com.njzscloud.common.core.ex.ExceptionMsg;
|
||||||
|
import com.njzscloud.common.core.ex.SysThrowable;
|
||||||
import com.njzscloud.common.security.contant.AuthWay;
|
import com.njzscloud.common.security.contant.AuthWay;
|
||||||
import com.njzscloud.common.security.ex.UserLoginException;
|
import com.njzscloud.common.security.ex.UserLoginException;
|
||||||
import com.njzscloud.common.security.module.code.CodeLoginForm;
|
|
||||||
import com.njzscloud.common.security.module.password.PasswordLoginForm;
|
import com.njzscloud.common.security.module.password.PasswordLoginForm;
|
||||||
import com.njzscloud.common.security.support.*;
|
import com.njzscloud.common.security.support.*;
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
|
|
@ -17,7 +17,6 @@ import java.util.Set;
|
||||||
public class WechatMiniAuthenticationProvider extends AbstractAuthenticationProvider {
|
public class WechatMiniAuthenticationProvider extends AbstractAuthenticationProvider {
|
||||||
private final IUserService iUserService;
|
private final IUserService iUserService;
|
||||||
private final IRoleService iRoleService;
|
private final IRoleService iRoleService;
|
||||||
private final IResourceService iResourceService;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 读取用户信息
|
* 读取用户信息
|
||||||
|
|
@ -28,17 +27,18 @@ public class WechatMiniAuthenticationProvider extends AbstractAuthenticationProv
|
||||||
@Override
|
@Override
|
||||||
protected UserDetail retrieveUser(LoginForm loginForm) throws UserLoginException {
|
protected UserDetail retrieveUser(LoginForm loginForm) throws UserLoginException {
|
||||||
WechatMiniLoginForm wechatMiniLoginForm = (WechatMiniLoginForm) loginForm;
|
WechatMiniLoginForm wechatMiniLoginForm = (WechatMiniLoginForm) loginForm;
|
||||||
String code = wechatMiniLoginForm.getCode();
|
UserDetail userDetail;
|
||||||
AuthWay authWay = wechatMiniLoginForm.getAuthWay();
|
try {
|
||||||
UserDetail userDetail = iUserService.selectUser(code, authWay);
|
userDetail = iUserService.selectUser(wechatMiniLoginForm);
|
||||||
if (userDetail == null) throw new UserLoginException(ExceptionMsg.CLI_ERR_MSG, "账号不存在");
|
} catch (SysThrowable e) {
|
||||||
|
throw new UserLoginException(e.msg, e.message.toString());
|
||||||
|
}
|
||||||
|
if (userDetail == null) throw new UserLoginException(ExceptionMsg.CLI_ERR_MSG, "微信登录失败");
|
||||||
Long userId = userDetail.getUserId();
|
Long userId = userDetail.getUserId();
|
||||||
Set<String> roles = iRoleService.selectRoleByUserId(userId);
|
Set<String> roles = iRoleService.selectRoleByUserId(userId);
|
||||||
Resource resource = iResourceService.selectResourceByUserId(userId);
|
|
||||||
return userDetail
|
return userDetail
|
||||||
.setAuthWay(authWay)
|
.setAuthWay(AuthWay.WECHAT_MINI)
|
||||||
.setRoles(roles)
|
.setRoles(roles)
|
||||||
.setResource(resource)
|
|
||||||
;
|
;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -50,6 +50,6 @@ public class WechatMiniAuthenticationProvider extends AbstractAuthenticationProv
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
protected Class<?> getLoginFormClazz() {
|
protected Class<?> getLoginFormClazz() {
|
||||||
return CodeLoginForm.class;
|
return WechatMiniLoginForm.class;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -4,12 +4,13 @@ import com.njzscloud.common.security.contant.AuthWay;
|
||||||
import com.njzscloud.common.security.support.LoginForm;
|
import com.njzscloud.common.security.support.LoginForm;
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
import lombok.Setter;
|
import lombok.Setter;
|
||||||
|
import lombok.ToString;
|
||||||
|
import lombok.experimental.Accessors;
|
||||||
|
|
||||||
/**
|
|
||||||
* 登录参数
|
|
||||||
*/
|
|
||||||
@Getter
|
@Getter
|
||||||
@Setter
|
@Setter
|
||||||
|
@ToString
|
||||||
|
@Accessors(chain = true)
|
||||||
public class WechatMiniLoginForm extends LoginForm {
|
public class WechatMiniLoginForm extends LoginForm {
|
||||||
/**
|
/**
|
||||||
* 验证码
|
* 验证码
|
||||||
|
|
|
||||||
|
|
@ -1,11 +1,16 @@
|
||||||
package com.njzscloud.common.security.module.wechat.mini;
|
package com.njzscloud.common.security.module.wechat.mini;
|
||||||
|
|
||||||
|
import cn.hutool.core.util.StrUtil;
|
||||||
import com.njzscloud.common.core.ex.ExceptionMsg;
|
import com.njzscloud.common.core.ex.ExceptionMsg;
|
||||||
import com.njzscloud.common.core.jackson.Jackson;
|
import com.njzscloud.common.core.jackson.Jackson;
|
||||||
import com.njzscloud.common.security.ex.UserLoginException;
|
import com.njzscloud.common.security.ex.UserLoginException;
|
||||||
import com.njzscloud.common.security.module.password.PasswordLoginForm;
|
import com.njzscloud.common.security.module.password.PasswordLoginForm;
|
||||||
import com.njzscloud.common.security.support.LoginForm;
|
import com.njzscloud.common.security.support.LoginForm;
|
||||||
import com.njzscloud.common.security.support.LoginPreparer;
|
import com.njzscloud.common.security.support.LoginPreparer;
|
||||||
|
import com.njzscloud.common.wechat.WechatUtil;
|
||||||
|
import com.njzscloud.common.wechat.param.Code2SessionParam;
|
||||||
|
import com.njzscloud.common.wechat.result.Code2SessionResult;
|
||||||
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.springframework.security.web.util.matcher.AntPathRequestMatcher;
|
import org.springframework.security.web.util.matcher.AntPathRequestMatcher;
|
||||||
|
|
||||||
import javax.servlet.ServletInputStream;
|
import javax.servlet.ServletInputStream;
|
||||||
|
|
@ -16,6 +21,7 @@ import static com.njzscloud.common.security.contant.Constants.LOGIN_WECHAT_URL;
|
||||||
/**
|
/**
|
||||||
* 验证码登录,登录参数处理器
|
* 验证码登录,登录参数处理器
|
||||||
*/
|
*/
|
||||||
|
@Slf4j
|
||||||
public class WechatMiniLoginPreparer implements LoginPreparer {
|
public class WechatMiniLoginPreparer implements LoginPreparer {
|
||||||
private static final AntPathRequestMatcher matcher = new AntPathRequestMatcher(LOGIN_WECHAT_URL, "POST");
|
private static final AntPathRequestMatcher matcher = new AntPathRequestMatcher(LOGIN_WECHAT_URL, "POST");
|
||||||
|
|
||||||
|
|
@ -28,7 +34,22 @@ public class WechatMiniLoginPreparer implements LoginPreparer {
|
||||||
@Override
|
@Override
|
||||||
public LoginForm createLoginForm(HttpServletRequest request) {
|
public LoginForm createLoginForm(HttpServletRequest request) {
|
||||||
try (ServletInputStream inputStream = request.getInputStream()) {
|
try (ServletInputStream inputStream = request.getInputStream()) {
|
||||||
return Jackson.toBean(inputStream, WechatMiniLoginForm.class);
|
WechatMiniLoginForm loginForm = Jackson.toBean(inputStream, WechatMiniLoginForm.class);
|
||||||
|
log.info("微信小程序登录表单:{}", Jackson.toJsonStr(loginForm));
|
||||||
|
String code = loginForm.getCode();
|
||||||
|
if (StrUtil.isBlank(code)) {
|
||||||
|
throw new UserLoginException(ExceptionMsg.CLI_ERR_MSG, "微信验证码不能为空");
|
||||||
|
}
|
||||||
|
Code2SessionResult code2SessionResult = WechatUtil.code2Session(new Code2SessionParam().setJs_code(code));
|
||||||
|
Integer errcode = code2SessionResult.getErrcode();
|
||||||
|
if (errcode != null && errcode != 0) {
|
||||||
|
log.error("微信登录失败, errcode: {}, errmsg: {}", errcode, code2SessionResult.getErrmsg());
|
||||||
|
throw new UserLoginException(ExceptionMsg.CLI_ERR_MSG, "微信登录失败");
|
||||||
|
}
|
||||||
|
String openid = code2SessionResult.getOpenid();
|
||||||
|
String unionid = code2SessionResult.getUnionid();
|
||||||
|
return loginForm.setOpenid(openid)
|
||||||
|
.setUnionid(unionid);
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
throw new UserLoginException(e, ExceptionMsg.SYS_ERR_MSG, "登录表单解析失败");
|
throw new UserLoginException(e, ExceptionMsg.SYS_ERR_MSG, "登录表单解析失败");
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,11 +1,13 @@
|
||||||
package com.njzscloud.common.security.support;
|
package com.njzscloud.common.security.support;
|
||||||
|
|
||||||
import com.njzscloud.common.security.contant.AuthWay;
|
import com.njzscloud.common.security.module.code.CodeLoginForm;
|
||||||
import com.njzscloud.common.security.module.password.PasswordLoginForm;
|
import com.njzscloud.common.security.module.password.PasswordLoginForm;
|
||||||
import com.njzscloud.common.security.module.wechat.mini.WechatMiniLoginForm;
|
import com.njzscloud.common.security.module.wechat.mini.WechatMiniLoginForm;
|
||||||
|
|
||||||
public interface IUserService {
|
public interface IUserService {
|
||||||
UserDetail selectUser(String phone, AuthWay authWay);
|
default UserDetail selectUser(CodeLoginForm form) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
default UserDetail selectUser(PasswordLoginForm form) {
|
default UserDetail selectUser(PasswordLoginForm form) {
|
||||||
return null;
|
return null;
|
||||||
|
|
@ -15,7 +17,7 @@ public interface IUserService {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
default UserDetail my(WechatMiniLoginForm form) {
|
default UserDetail my() {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,13 +1,13 @@
|
||||||
package com.njzscloud.common.security.support;
|
package com.njzscloud.common.security.support;
|
||||||
|
|
||||||
|
|
||||||
|
import com.alibaba.fastjson2.JSONObject;
|
||||||
import com.njzscloud.common.security.contant.AuthWay;
|
import com.njzscloud.common.security.contant.AuthWay;
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
import lombok.Setter;
|
import lombok.Setter;
|
||||||
|
|
||||||
import java.security.Principal;
|
import java.security.Principal;
|
||||||
import java.util.Map;
|
|
||||||
|
|
||||||
@Getter
|
@Getter
|
||||||
@Setter
|
@Setter
|
||||||
|
|
@ -19,7 +19,7 @@ public abstract class LoginForm implements Principal {
|
||||||
private final AuthWay authWay;
|
private final AuthWay authWay;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 扩展参数
|
* 注册数据
|
||||||
*/
|
*/
|
||||||
private Map<String, Object> extra;
|
private JSONObject registerData;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1,8 @@
|
||||||
package com.njzscloud.common.security.support;
|
package com.njzscloud.common.security.support;
|
||||||
|
|
||||||
import com.alibaba.fastjson2.annotation.JSONField;
|
import com.alibaba.fastjson2.annotation.JSONField;
|
||||||
|
import com.fasterxml.jackson.annotation.JsonIgnore;
|
||||||
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
|
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
|
||||||
import com.njzscloud.common.core.fastjson.Fastjson;
|
|
||||||
import com.njzscloud.common.core.fastjson.serializer.DictObjectDeserializer;
|
import com.njzscloud.common.core.fastjson.serializer.DictObjectDeserializer;
|
||||||
import com.njzscloud.common.core.fastjson.serializer.DictObjectSerializer;
|
import com.njzscloud.common.core.fastjson.serializer.DictObjectSerializer;
|
||||||
import com.njzscloud.common.security.contant.AuthWay;
|
import com.njzscloud.common.security.contant.AuthWay;
|
||||||
|
|
@ -35,6 +35,7 @@ public class UserDetail implements CredentialsContainer, Principal {
|
||||||
/**
|
/**
|
||||||
* 密码
|
* 密码
|
||||||
*/
|
*/
|
||||||
|
@JsonIgnore
|
||||||
private String secret;
|
private String secret;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -57,11 +58,6 @@ public class UserDetail implements CredentialsContainer, Principal {
|
||||||
*/
|
*/
|
||||||
private Set<String> roles;
|
private Set<String> roles;
|
||||||
|
|
||||||
/**
|
|
||||||
* 资源
|
|
||||||
*/
|
|
||||||
private Resource resource;
|
|
||||||
|
|
||||||
@JsonSerialize(using = TokenSerializer.class)
|
@JsonSerialize(using = TokenSerializer.class)
|
||||||
private Token token;
|
private Token token;
|
||||||
|
|
||||||
|
|
@ -70,8 +66,6 @@ public class UserDetail implements CredentialsContainer, Principal {
|
||||||
*/
|
*/
|
||||||
private Boolean disabled;
|
private Boolean disabled;
|
||||||
|
|
||||||
private String bizObj;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 账号是否过期
|
* 账号是否过期
|
||||||
*/
|
*/
|
||||||
|
|
@ -91,12 +85,9 @@ public class UserDetail implements CredentialsContainer, Principal {
|
||||||
* 是否启用
|
* 是否启用
|
||||||
*/
|
*/
|
||||||
// private boolean disable = false;
|
// private boolean disable = false;
|
||||||
@Override
|
|
||||||
public String toString() {
|
|
||||||
return Fastjson.toJsonStr(this);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@JsonIgnore
|
||||||
public String getName() {
|
public String getName() {
|
||||||
return userId.toString();
|
return userId.toString();
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,15 +1,13 @@
|
||||||
package com.njzscloud.common.security.util;
|
package com.njzscloud.common.security.util;
|
||||||
|
|
||||||
import cn.hutool.core.collection.CollUtil;
|
|
||||||
import cn.hutool.extra.spring.SpringUtil;
|
import cn.hutool.extra.spring.SpringUtil;
|
||||||
import com.njzscloud.common.security.contant.AuthWay;
|
|
||||||
import com.njzscloud.common.security.contant.Constants;
|
import com.njzscloud.common.security.contant.Constants;
|
||||||
import com.njzscloud.common.security.support.*;
|
import com.njzscloud.common.security.support.ITokenService;
|
||||||
|
import com.njzscloud.common.security.support.Token;
|
||||||
|
import com.njzscloud.common.security.support.UserDetail;
|
||||||
import org.springframework.security.core.Authentication;
|
import org.springframework.security.core.Authentication;
|
||||||
import org.springframework.security.core.context.SecurityContextHolder;
|
import org.springframework.security.core.context.SecurityContextHolder;
|
||||||
|
|
||||||
import java.util.Set;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 获取认证信息工具
|
* 获取认证信息工具
|
||||||
*/
|
*/
|
||||||
|
|
@ -19,11 +17,12 @@ public class SecurityUtil {
|
||||||
*
|
*
|
||||||
* @return UserAuthPrincipal
|
* @return UserAuthPrincipal
|
||||||
*/
|
*/
|
||||||
public static UserDetail loginUser() {
|
@SuppressWarnings("unchecked")
|
||||||
|
public static <T extends UserDetail> T loginUser() {
|
||||||
Authentication authentication = SecurityContextHolder.getContext().getAuthentication();
|
Authentication authentication = SecurityContextHolder.getContext().getAuthentication();
|
||||||
UserDetail userDetail = null;
|
T userDetail = null;
|
||||||
if (authentication != null) userDetail = (UserDetail) authentication.getPrincipal();
|
if (authentication != null) userDetail = (T) authentication.getPrincipal();
|
||||||
return userDetail == null ? Constants.ANONYMOUS_USER : userDetail;
|
return userDetail == null ? (T) Constants.ANONYMOUS_USER : userDetail;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -80,24 +79,4 @@ public class SecurityUtil {
|
||||||
public static void removeToken(Long userId) {
|
public static void removeToken(Long userId) {
|
||||||
SpringUtil.getBean(ITokenService.class).removeToken(userId);
|
SpringUtil.getBean(ITokenService.class).removeToken(userId);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static String registrationToken(String account, AuthWay authWay) {
|
|
||||||
IUserService userService = SpringUtil.getBean(IUserService.class);
|
|
||||||
UserDetail userDetail = userService.selectUser(account, authWay);
|
|
||||||
Long userId = userDetail.getUserId();
|
|
||||||
Set<String> roles = SpringUtil.getBean(IRoleService.class).selectRoleByUserId(userId);
|
|
||||||
if (CollUtil.isEmpty(roles)) {
|
|
||||||
roles.add(Constants.ROLE_ANONYMOUS);
|
|
||||||
roles.add(Constants.ROLE_AUTHENTICATED);
|
|
||||||
}
|
|
||||||
|
|
||||||
Resource resource = SpringUtil.getBean(IResourceService.class).selectResourceByUserId(userId);
|
|
||||||
Token token = Token.create(userDetail.getUserId(), userDetail.getAccountId(), authWay);
|
|
||||||
userDetail.setAuthWay(authWay)
|
|
||||||
.setRoles(roles)
|
|
||||||
.setResource(resource)
|
|
||||||
.setToken(token);
|
|
||||||
SecurityUtil.registrationToken(userDetail);
|
|
||||||
return token.toString();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -12,16 +12,19 @@ import lombok.RequiredArgsConstructor;
|
||||||
@Getter
|
@Getter
|
||||||
@RequiredArgsConstructor
|
@RequiredArgsConstructor
|
||||||
public enum BizObj implements DictStr {
|
public enum BizObj implements DictStr {
|
||||||
|
// 产废方
|
||||||
GeRen("GeRen", "个人"),
|
GeRen("GeRen", "个人"),
|
||||||
WuYe("WuYe", "物业"),
|
WuYe("WuYe", "物业"),
|
||||||
ShiGongDanWei("ShiGongDanWei", "施工单位"),
|
ShiGongDanWei("ShiGongDanWei", "施工单位"),
|
||||||
ChaiQian("ChaiQian", "拆迁公司"),
|
ChaiQian("ChaiQian", "拆迁公司"),
|
||||||
SheQu("SheQu", "社区/村/街道"),
|
SheQu("SheQu", "社区/村/街道"),
|
||||||
|
|
||||||
|
// 清运方
|
||||||
QiYe("QiYe", "企业"),
|
QiYe("QiYe", "企业"),
|
||||||
GeTi("GeTi", "个体工商户"),
|
GeTi("GeTi", "个体工商户"),
|
||||||
|
|
||||||
SiJi("SiJi", "司机"),
|
SiJi("SiJi", "司机"),
|
||||||
|
|
||||||
JianGuan("JianGuan", "监管"),
|
JianGuan("JianGuan", "监管"),
|
||||||
SiBang("SiBang", "司磅"),
|
SiBang("SiBang", "司磅"),
|
||||||
|
|
||||||
|
|
@ -35,32 +38,28 @@ public enum BizObj implements DictStr {
|
||||||
/**
|
/**
|
||||||
* 判断是否为清运公司
|
* 判断是否为清运公司
|
||||||
*/
|
*/
|
||||||
public static boolean isTrans(String bizObjStr) {
|
public static boolean isTrans(BizObj bizObj) {
|
||||||
BizObj bizObj = Dict.parse(bizObjStr, BizObj.values());
|
|
||||||
return bizObj != null && bizObj.isTrans();
|
return bizObj != null && bizObj.isTrans();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 判断是否为司机
|
* 判断是否为司机
|
||||||
*/
|
*/
|
||||||
public static boolean isDriver(String bizObjStr) {
|
public static boolean isDriver(BizObj bizObj) {
|
||||||
BizObj bizObj = Dict.parse(bizObjStr, BizObj.values());
|
|
||||||
return bizObj != null && bizObj.isDriver();
|
return bizObj != null && bizObj.isDriver();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 判断是否为产废单位或个人
|
* 判断是否为产废单位或个人
|
||||||
*/
|
*/
|
||||||
public static boolean isWaste(String bizObjStr) {
|
public static boolean isWaste(BizObj bizObj) {
|
||||||
BizObj bizObj = Dict.parse(bizObjStr, BizObj.values());
|
|
||||||
return bizObj != null && (bizObj.isWastePersonal() || bizObj.isWasteCompany());
|
return bizObj != null && (bizObj.isWastePersonal() || bizObj.isWasteCompany());
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 判断是否为个人
|
* 判断是否为个人
|
||||||
*/
|
*/
|
||||||
public static boolean isWastePersonal(String bizObjStr) {
|
public static boolean isWastePersonal(BizObj bizObj) {
|
||||||
BizObj bizObj = Dict.parse(bizObjStr, BizObj.values());
|
|
||||||
return bizObj != null && bizObj.isWastePersonal();
|
return bizObj != null && bizObj.isWastePersonal();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -75,8 +74,7 @@ public enum BizObj implements DictStr {
|
||||||
/**
|
/**
|
||||||
* 判断是否为司磅
|
* 判断是否为司磅
|
||||||
*/
|
*/
|
||||||
public static boolean isSiBang(String bizObjStr) {
|
public static boolean isSiBang(BizObj bizObj) {
|
||||||
BizObj bizObj = Dict.parse(bizObjStr, BizObj.values());
|
|
||||||
return bizObj != null && bizObj.isSiBang();
|
return bizObj != null && bizObj.isSiBang();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -6,11 +6,9 @@ import cn.hutool.core.lang.Assert;
|
||||||
import cn.hutool.core.util.StrUtil;
|
import cn.hutool.core.util.StrUtil;
|
||||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||||
import com.google.common.base.Strings;
|
|
||||||
import com.njzscloud.common.core.ex.Exceptions;
|
import com.njzscloud.common.core.ex.Exceptions;
|
||||||
import com.njzscloud.common.mp.support.PageParam;
|
import com.njzscloud.common.mp.support.PageParam;
|
||||||
import com.njzscloud.common.mp.support.PageResult;
|
import com.njzscloud.common.mp.support.PageResult;
|
||||||
import com.njzscloud.common.security.support.UserDetail;
|
|
||||||
import com.njzscloud.common.security.util.SecurityUtil;
|
import com.njzscloud.common.security.util.SecurityUtil;
|
||||||
import com.njzscloud.supervisory.biz.constant.AuditStatus;
|
import com.njzscloud.supervisory.biz.constant.AuditStatus;
|
||||||
import com.njzscloud.supervisory.biz.constant.BizObj;
|
import com.njzscloud.supervisory.biz.constant.BizObj;
|
||||||
|
|
@ -22,6 +20,7 @@ import com.njzscloud.supervisory.biz.pojo.param.SearchCompanyParam;
|
||||||
import com.njzscloud.supervisory.biz.pojo.result.SearchCompanyResult;
|
import com.njzscloud.supervisory.biz.pojo.result.SearchCompanyResult;
|
||||||
import com.njzscloud.supervisory.biz.pojo.result.StationResult;
|
import com.njzscloud.supervisory.biz.pojo.result.StationResult;
|
||||||
import com.njzscloud.supervisory.config.AppProperties;
|
import com.njzscloud.supervisory.config.AppProperties;
|
||||||
|
import com.njzscloud.supervisory.sys.auth.pojo.result.MyResult;
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
@ -120,11 +119,11 @@ public class BizCompanyService extends ServiceImpl<BizCompanyMapper, BizCompanyE
|
||||||
* @return SearchCompanyResult 结果
|
* @return SearchCompanyResult 结果
|
||||||
*/
|
*/
|
||||||
public SearchCompanyResult detail(Long id) {
|
public SearchCompanyResult detail(Long id) {
|
||||||
UserDetail userDetail = SecurityUtil.loginUser();
|
MyResult userDetail = SecurityUtil.loginUser();
|
||||||
Long userId = userDetail.getUserId();
|
Long userId = userDetail.getUserId();
|
||||||
String bizObjValue = userDetail.getBizObj();
|
BizObj bizObj = userDetail.getBizObj();
|
||||||
BizCompanyEntity bizCompanyEntity;
|
BizCompanyEntity bizCompanyEntity;
|
||||||
if (Strings.isNullOrEmpty(bizObjValue)) {
|
if (bizObj == null) {
|
||||||
// 使用联表查询获取企业信息和用户的bizObj
|
// 使用联表查询获取企业信息和用户的bizObj
|
||||||
bizCompanyEntity = baseMapper.selectDetailWithBizObj(id);
|
bizCompanyEntity = baseMapper.selectDetailWithBizObj(id);
|
||||||
if (bizCompanyEntity == null) {
|
if (bizCompanyEntity == null) {
|
||||||
|
|
@ -132,7 +131,6 @@ public class BizCompanyService extends ServiceImpl<BizCompanyMapper, BizCompanyE
|
||||||
}
|
}
|
||||||
return BeanUtil.copyProperties(bizCompanyEntity, SearchCompanyResult.class);
|
return BeanUtil.copyProperties(bizCompanyEntity, SearchCompanyResult.class);
|
||||||
}
|
}
|
||||||
BizObj bizObj = BizObj.valueOf(bizObjValue);
|
|
||||||
switch (bizObj) {
|
switch (bizObj) {
|
||||||
case ShiGongDanWei:
|
case ShiGongDanWei:
|
||||||
case QingYunGongSi:
|
case QingYunGongSi:
|
||||||
|
|
|
||||||
|
|
@ -8,7 +8,6 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||||
import com.njzscloud.common.core.ex.Exceptions;
|
import com.njzscloud.common.core.ex.Exceptions;
|
||||||
import com.njzscloud.common.core.ienum.Dict;
|
|
||||||
import com.njzscloud.common.mp.support.PageParam;
|
import com.njzscloud.common.mp.support.PageParam;
|
||||||
import com.njzscloud.common.mp.support.PageResult;
|
import com.njzscloud.common.mp.support.PageResult;
|
||||||
import com.njzscloud.common.security.support.UserDetail;
|
import com.njzscloud.common.security.support.UserDetail;
|
||||||
|
|
@ -20,6 +19,9 @@ import com.njzscloud.supervisory.biz.pojo.entity.BizDriverEntity;
|
||||||
import com.njzscloud.supervisory.biz.pojo.param.AddDriverParam;
|
import com.njzscloud.supervisory.biz.pojo.param.AddDriverParam;
|
||||||
import com.njzscloud.supervisory.biz.pojo.param.AuditDriverParam;
|
import com.njzscloud.supervisory.biz.pojo.param.AuditDriverParam;
|
||||||
import com.njzscloud.supervisory.biz.pojo.result.SearchCompanyResult;
|
import com.njzscloud.supervisory.biz.pojo.result.SearchCompanyResult;
|
||||||
|
import com.njzscloud.supervisory.sys.auth.pojo.result.MyResult;
|
||||||
|
import com.njzscloud.supervisory.sys.user.pojo.param.AddUserAccountParam;
|
||||||
|
import com.njzscloud.supervisory.sys.user.pojo.param.AddUserParam;
|
||||||
import com.njzscloud.supervisory.sys.user.service.UserService;
|
import com.njzscloud.supervisory.sys.user.service.UserService;
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
|
@ -47,9 +49,13 @@ public class BizDriverService extends ServiceImpl<BizDriverMapper, BizDriverEnti
|
||||||
UserDetail userDetail = SecurityUtil.loginUser();
|
UserDetail userDetail = SecurityUtil.loginUser();
|
||||||
SearchCompanyResult searchCompanyResult = baseMapper.selectCompanyByUserId(userDetail.getUserId());
|
SearchCompanyResult searchCompanyResult = baseMapper.selectCompanyByUserId(userDetail.getUserId());
|
||||||
|
|
||||||
Long driverUserId = sysUserService.add(addDriverParam.getUser()
|
AddUserParam user = addDriverParam.getUser();
|
||||||
.setBizObj(BizObj.SiJi)
|
AddUserAccountParam account = user.getAccount();
|
||||||
);
|
user.setPhone(account.getPhone())
|
||||||
|
.setBizObj(BizObj.SiJi);
|
||||||
|
account.setPhone(null);
|
||||||
|
|
||||||
|
Long driverUserId = sysUserService.add(user);
|
||||||
BizDriverEntity bizDriverEntity = BeanUtil.copyProperties(addDriverParam, BizDriverEntity.class)
|
BizDriverEntity bizDriverEntity = BeanUtil.copyProperties(addDriverParam, BizDriverEntity.class)
|
||||||
.setAuditStatus(AuditStatus.DaiShenHe)
|
.setAuditStatus(AuditStatus.DaiShenHe)
|
||||||
.setUserId(driverUserId)
|
.setUserId(driverUserId)
|
||||||
|
|
@ -114,8 +120,8 @@ public class BizDriverService extends ServiceImpl<BizDriverMapper, BizDriverEnti
|
||||||
.like(StrUtil.isNotBlank(phone), "d.phone", phone)
|
.like(StrUtil.isNotBlank(phone), "d.phone", phone)
|
||||||
.eq(StrUtil.isNotBlank(aStatus), "d.audit_status", aStatus);
|
.eq(StrUtil.isNotBlank(aStatus), "d.audit_status", aStatus);
|
||||||
|
|
||||||
UserDetail userDetail = SecurityUtil.loginUser();
|
MyResult userDetail = SecurityUtil.loginUser();
|
||||||
BizObj parse = Dict.parse(userDetail.getBizObj(), BizObj.values());
|
BizObj parse = userDetail.getBizObj();
|
||||||
if (parse == BizObj.QiYe
|
if (parse == BizObj.QiYe
|
||||||
|| parse == BizObj.GeTi
|
|| parse == BizObj.GeTi
|
||||||
) {
|
) {
|
||||||
|
|
|
||||||
|
|
@ -7,16 +7,15 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||||
import com.baomidou.mybatisplus.extension.service.IService;
|
import com.baomidou.mybatisplus.extension.service.IService;
|
||||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||||
import com.njzscloud.common.core.ex.Exceptions;
|
import com.njzscloud.common.core.ex.Exceptions;
|
||||||
import com.njzscloud.common.core.ienum.Dict;
|
|
||||||
import com.njzscloud.common.mp.support.PageParam;
|
import com.njzscloud.common.mp.support.PageParam;
|
||||||
import com.njzscloud.common.mp.support.PageResult;
|
import com.njzscloud.common.mp.support.PageResult;
|
||||||
import com.njzscloud.common.security.support.UserDetail;
|
|
||||||
import com.njzscloud.common.security.util.SecurityUtil;
|
import com.njzscloud.common.security.util.SecurityUtil;
|
||||||
import com.njzscloud.supervisory.biz.constant.AuditStatus;
|
import com.njzscloud.supervisory.biz.constant.AuditStatus;
|
||||||
import com.njzscloud.supervisory.biz.constant.BizObj;
|
import com.njzscloud.supervisory.biz.constant.BizObj;
|
||||||
import com.njzscloud.supervisory.biz.mapper.BizProjectMapper;
|
import com.njzscloud.supervisory.biz.mapper.BizProjectMapper;
|
||||||
import com.njzscloud.supervisory.biz.pojo.entity.BizProjectEntity;
|
import com.njzscloud.supervisory.biz.pojo.entity.BizProjectEntity;
|
||||||
import com.njzscloud.supervisory.biz.pojo.result.SearchBizProjectResult;
|
import com.njzscloud.supervisory.biz.pojo.result.SearchBizProjectResult;
|
||||||
|
import com.njzscloud.supervisory.sys.auth.pojo.result.MyResult;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
|
@ -68,8 +67,8 @@ public class BizProjectService extends ServiceImpl<BizProjectMapper, BizProjectE
|
||||||
if (null != auditStatus) {
|
if (null != auditStatus) {
|
||||||
aStatus = auditStatus.getVal();
|
aStatus = auditStatus.getVal();
|
||||||
}
|
}
|
||||||
UserDetail userDetail = SecurityUtil.loginUser();
|
MyResult userDetail = SecurityUtil.loginUser();
|
||||||
BizObj bizObj = Dict.parse(userDetail.getBizObj(), BizObj.values());
|
BizObj bizObj = userDetail.getBizObj();
|
||||||
QueryWrapper<BizProjectEntity> ew = Wrappers.<BizProjectEntity>query()
|
QueryWrapper<BizProjectEntity> ew = Wrappers.<BizProjectEntity>query()
|
||||||
.like(StrUtil.isNotBlank(bizProjectEntity.getProjectName()), "a.project_name", bizProjectEntity.getProjectName())
|
.like(StrUtil.isNotBlank(bizProjectEntity.getProjectName()), "a.project_name", bizProjectEntity.getProjectName())
|
||||||
.eq(StrUtil.isNotBlank(aStatus), "a.audit_status", aStatus).eq("a.deleted", 0);
|
.eq(StrUtil.isNotBlank(aStatus), "a.audit_status", aStatus).eq("a.deleted", 0);
|
||||||
|
|
@ -105,8 +104,8 @@ public class BizProjectService extends ServiceImpl<BizProjectMapper, BizProjectE
|
||||||
}
|
}
|
||||||
|
|
||||||
public PageResult<SearchBizProjectResult> pagingTrans(PageParam pageParam, BizProjectEntity bizProjectEntity) {
|
public PageResult<SearchBizProjectResult> pagingTrans(PageParam pageParam, BizProjectEntity bizProjectEntity) {
|
||||||
UserDetail userDetail = SecurityUtil.loginUser();
|
MyResult userDetail = SecurityUtil.loginUser();
|
||||||
BizObj bizObj = Dict.parse(userDetail.getBizObj(), BizObj.values());
|
BizObj bizObj = userDetail.getBizObj();
|
||||||
Assert.isTrue(bizObj != null && bizObj.isWaste(), () -> Exceptions.exception("非产废单位或个人,不能查询合作的清运公司"));
|
Assert.isTrue(bizObj != null && bizObj.isWaste(), () -> Exceptions.exception("非产废单位或个人,不能查询合作的清运公司"));
|
||||||
|
|
||||||
Long userId = userDetail.getUserId();
|
Long userId = userDetail.getUserId();
|
||||||
|
|
|
||||||
|
|
@ -8,7 +8,6 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||||
import com.baomidou.mybatisplus.extension.service.IService;
|
import com.baomidou.mybatisplus.extension.service.IService;
|
||||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||||
import com.njzscloud.common.core.ex.Exceptions;
|
import com.njzscloud.common.core.ex.Exceptions;
|
||||||
import com.njzscloud.common.core.ienum.Dict;
|
|
||||||
import com.njzscloud.common.mp.support.PageParam;
|
import com.njzscloud.common.mp.support.PageParam;
|
||||||
import com.njzscloud.common.mp.support.PageResult;
|
import com.njzscloud.common.mp.support.PageResult;
|
||||||
import com.njzscloud.common.security.support.UserDetail;
|
import com.njzscloud.common.security.support.UserDetail;
|
||||||
|
|
@ -20,6 +19,7 @@ import com.njzscloud.supervisory.biz.pojo.entity.BizTruckEntity;
|
||||||
import com.njzscloud.supervisory.biz.pojo.param.SearchTruckParam;
|
import com.njzscloud.supervisory.biz.pojo.param.SearchTruckParam;
|
||||||
import com.njzscloud.supervisory.biz.pojo.result.SearchCompanyResult;
|
import com.njzscloud.supervisory.biz.pojo.result.SearchCompanyResult;
|
||||||
import com.njzscloud.supervisory.biz.pojo.result.SearchTruckResult;
|
import com.njzscloud.supervisory.biz.pojo.result.SearchTruckResult;
|
||||||
|
import com.njzscloud.supervisory.sys.auth.pojo.result.MyResult;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
|
@ -94,10 +94,10 @@ public class BizTruckService extends ServiceImpl<BizTruckMapper, BizTruckEntity>
|
||||||
.eq(StrUtil.isNotBlank(aStatus), "a.audit_status", aStatus)
|
.eq(StrUtil.isNotBlank(aStatus), "a.audit_status", aStatus)
|
||||||
.like(StrUtil.isNotBlank(companyName), "b.company_name", companyName)
|
.like(StrUtil.isNotBlank(companyName), "b.company_name", companyName)
|
||||||
.like(StrUtil.isNotBlank(licensePlate), "a.license_plate", licensePlate);
|
.like(StrUtil.isNotBlank(licensePlate), "a.license_plate", licensePlate);
|
||||||
UserDetail userDetail = SecurityUtil.loginUser();
|
MyResult userDetail = SecurityUtil.loginUser();
|
||||||
BizObj parse = Dict.parse(userDetail.getBizObj(), BizObj.values());
|
BizObj bizObj = userDetail.getBizObj();
|
||||||
if (parse == BizObj.QiYe
|
if (bizObj == BizObj.QiYe
|
||||||
|| parse == BizObj.GeTi
|
|| bizObj == BizObj.GeTi
|
||||||
) {
|
) {
|
||||||
ew.eq("b.user_id", userDetail.getUserId());
|
ew.eq("b.user_id", userDetail.getUserId());
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,21 @@
|
||||||
|
package com.njzscloud.supervisory.expense.contant;
|
||||||
|
|
||||||
|
import com.njzscloud.common.core.ienum.DictStr;
|
||||||
|
import lombok.Getter;
|
||||||
|
import lombok.RequiredArgsConstructor;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 字典代码:expense_item_category
|
||||||
|
* 字典名称:付费项类型
|
||||||
|
*/
|
||||||
|
@Getter
|
||||||
|
@RequiredArgsConstructor
|
||||||
|
public enum ExpenseItemCategory implements DictStr {
|
||||||
|
QiTa("QiTa", "其他"),
|
||||||
|
ChanPin("ChanPin", "产品"),
|
||||||
|
QingYunFuWuFei("QingYunFuWuFei", "清运服务费"),
|
||||||
|
YunFei("YunFei", "运费"),
|
||||||
|
;
|
||||||
|
private final String val;
|
||||||
|
private final String txt;
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,68 @@
|
||||||
|
package com.njzscloud.supervisory.expense.controller;
|
||||||
|
|
||||||
|
import com.njzscloud.common.core.utils.R;
|
||||||
|
import com.njzscloud.common.mp.support.PageParam;
|
||||||
|
import com.njzscloud.common.mp.support.PageResult;
|
||||||
|
import com.njzscloud.supervisory.expense.pojo.entity.ExpenseItemsConfigEntity;
|
||||||
|
import com.njzscloud.supervisory.expense.service.ExpenseItemsConfigService;
|
||||||
|
import lombok.RequiredArgsConstructor;
|
||||||
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
import org.springframework.web.bind.annotation.*;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 付费项配置
|
||||||
|
*/
|
||||||
|
@Slf4j
|
||||||
|
@RestController
|
||||||
|
@RequestMapping("/expense_items_config")
|
||||||
|
@RequiredArgsConstructor
|
||||||
|
public class ExpenseItemsConfigController {
|
||||||
|
|
||||||
|
private final ExpenseItemsConfigService expenseItemsConfigService;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 新增
|
||||||
|
*/
|
||||||
|
@PostMapping("/add")
|
||||||
|
public R<?> add(@RequestBody ExpenseItemsConfigEntity expenseItemsConfigEntity) {
|
||||||
|
expenseItemsConfigService.add(expenseItemsConfigEntity);
|
||||||
|
return R.success();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 修改
|
||||||
|
*/
|
||||||
|
@PostMapping("/modify")
|
||||||
|
public R<?> modify(@RequestBody ExpenseItemsConfigEntity expenseItemsConfigEntity) {
|
||||||
|
expenseItemsConfigService.modify(expenseItemsConfigEntity);
|
||||||
|
return R.success();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 删除
|
||||||
|
*/
|
||||||
|
@PostMapping("/del")
|
||||||
|
public R<?> del(@RequestBody List<Long> ids) {
|
||||||
|
expenseItemsConfigService.del(ids);
|
||||||
|
return R.success();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 详情
|
||||||
|
*/
|
||||||
|
@GetMapping("/detail")
|
||||||
|
public R<ExpenseItemsConfigEntity> detail(@RequestParam Long id) {
|
||||||
|
return R.success(expenseItemsConfigService.detail(id));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 分页查询
|
||||||
|
*/
|
||||||
|
@GetMapping("/paging")
|
||||||
|
public R<PageResult<ExpenseItemsConfigEntity>> paging(PageParam pageParam, ExpenseItemsConfigEntity expenseItemsConfigEntity) {
|
||||||
|
return R.success(expenseItemsConfigService.paging(pageParam, expenseItemsConfigEntity));
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,13 @@
|
||||||
|
package com.njzscloud.supervisory.expense.mapper;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||||
|
import com.njzscloud.supervisory.expense.pojo.entity.ExpenseItemsConfigEntity;
|
||||||
|
import org.apache.ibatis.annotations.Mapper;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 付费项配置
|
||||||
|
*/
|
||||||
|
@Mapper
|
||||||
|
public interface ExpenseItemsConfigMapper extends BaseMapper<ExpenseItemsConfigEntity> {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,103 @@
|
||||||
|
package com.njzscloud.supervisory.expense.pojo.entity;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.annotation.*;
|
||||||
|
import lombok.Getter;
|
||||||
|
import lombok.Setter;
|
||||||
|
import lombok.ToString;
|
||||||
|
import lombok.experimental.Accessors;
|
||||||
|
|
||||||
|
import java.math.BigDecimal;
|
||||||
|
import java.time.LocalDateTime;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 付费项配置
|
||||||
|
*/
|
||||||
|
@Getter
|
||||||
|
@Setter
|
||||||
|
@ToString
|
||||||
|
@Accessors(chain = true)
|
||||||
|
@TableName("expense_items_config")
|
||||||
|
public class ExpenseItemsConfigEntity {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Id
|
||||||
|
*/
|
||||||
|
@TableId(type = IdType.ASSIGN_ID)
|
||||||
|
private Long id;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 付费项类型; 字典代码:expense_item_category
|
||||||
|
*/
|
||||||
|
private String expenseItemCategory;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 付费项名称; expense_item_category
|
||||||
|
*/
|
||||||
|
private String expenseItemName;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 单价; 单位:元
|
||||||
|
*/
|
||||||
|
private BigDecimal unitPrice;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 单位; 字典代码:unit
|
||||||
|
*/
|
||||||
|
private String unit;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 计费策略; 字典代码:money_strategy
|
||||||
|
*/
|
||||||
|
private String moneyStrategy;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 计费配置 Id
|
||||||
|
*/
|
||||||
|
private Long moneyConfigId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 是否可用; 0-->否、1-->是
|
||||||
|
*/
|
||||||
|
private Boolean canuse;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 适用范围; json
|
||||||
|
*/
|
||||||
|
private String scope;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 税率
|
||||||
|
*/
|
||||||
|
private BigDecimal taxRate;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 创建人 Id; sys_user.id
|
||||||
|
*/
|
||||||
|
@TableField(fill = FieldFill.INSERT)
|
||||||
|
private Long creatorId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 修改人 Id; sys_user.id
|
||||||
|
*/
|
||||||
|
@TableField(fill = FieldFill.INSERT_UPDATE)
|
||||||
|
private Long modifierId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 创建时间
|
||||||
|
*/
|
||||||
|
@TableField(fill = FieldFill.INSERT)
|
||||||
|
private LocalDateTime createTime;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 修改时间
|
||||||
|
*/
|
||||||
|
@TableField(fill = FieldFill.INSERT_UPDATE)
|
||||||
|
private LocalDateTime modifyTime;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 是否删除; 0-->未删除、1-->已删除
|
||||||
|
*/
|
||||||
|
@TableLogic
|
||||||
|
private Boolean deleted;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,59 @@
|
||||||
|
package com.njzscloud.supervisory.expense.service;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||||
|
import com.baomidou.mybatisplus.extension.service.IService;
|
||||||
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||||
|
import com.njzscloud.common.mp.support.PageParam;
|
||||||
|
import com.njzscloud.common.mp.support.PageResult;
|
||||||
|
import com.njzscloud.supervisory.expense.mapper.ExpenseItemsConfigMapper;
|
||||||
|
import com.njzscloud.supervisory.expense.pojo.entity.ExpenseItemsConfigEntity;
|
||||||
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 付费项配置
|
||||||
|
*/
|
||||||
|
@Slf4j
|
||||||
|
@Service
|
||||||
|
public class ExpenseItemsConfigService extends ServiceImpl<ExpenseItemsConfigMapper, ExpenseItemsConfigEntity> implements IService<ExpenseItemsConfigEntity> {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 新增
|
||||||
|
*/
|
||||||
|
public void add(ExpenseItemsConfigEntity expenseItemsConfigEntity) {
|
||||||
|
this.save(expenseItemsConfigEntity);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 修改
|
||||||
|
*/
|
||||||
|
public void modify(ExpenseItemsConfigEntity expenseItemsConfigEntity) {
|
||||||
|
this.updateById(expenseItemsConfigEntity);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 删除
|
||||||
|
*/
|
||||||
|
@Transactional(rollbackFor = Exception.class)
|
||||||
|
public void del(List<Long> ids) {
|
||||||
|
this.removeBatchByIds(ids);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 详情
|
||||||
|
*/
|
||||||
|
public ExpenseItemsConfigEntity detail(Long id) {
|
||||||
|
return this.getById(id);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 分页查询
|
||||||
|
*/
|
||||||
|
public PageResult<ExpenseItemsConfigEntity> paging(PageParam pageParam, ExpenseItemsConfigEntity expenseItemsConfigEntity) {
|
||||||
|
return PageResult.of(this.page(pageParam.toPage(), Wrappers.<ExpenseItemsConfigEntity>query(expenseItemsConfigEntity)));
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
@ -18,7 +18,7 @@ import java.math.BigDecimal;
|
||||||
@Setter
|
@Setter
|
||||||
@ToString
|
@ToString
|
||||||
@Accessors(chain = true)
|
@Accessors(chain = true)
|
||||||
@TableName("order_goods")
|
@TableName(value = "order_goods", autoResultMap = true)
|
||||||
public class OrderGoodsEntity {
|
public class OrderGoodsEntity {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -72,14 +72,4 @@ public class OrderGoodsEntity {
|
||||||
*/
|
*/
|
||||||
private BigDecimal taxRate;
|
private BigDecimal taxRate;
|
||||||
|
|
||||||
/**
|
|
||||||
* 数量
|
|
||||||
*/
|
|
||||||
private Integer quantity;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 总金额; 单位:元
|
|
||||||
*/
|
|
||||||
private BigDecimal totalMoney;
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,10 @@ package com.njzscloud.supervisory.order.pojo.entity;
|
||||||
import com.baomidou.mybatisplus.annotation.*;
|
import com.baomidou.mybatisplus.annotation.*;
|
||||||
import com.njzscloud.common.mp.support.handler.j.JsonTypeHandler;
|
import com.njzscloud.common.mp.support.handler.j.JsonTypeHandler;
|
||||||
import com.njzscloud.supervisory.biz.constant.AuditStatus;
|
import com.njzscloud.supervisory.biz.constant.AuditStatus;
|
||||||
import com.njzscloud.supervisory.order.contant.*;
|
import com.njzscloud.supervisory.order.contant.CheckStatus;
|
||||||
|
import com.njzscloud.supervisory.order.contant.OrderCategory;
|
||||||
|
import com.njzscloud.supervisory.order.contant.OrderStatus;
|
||||||
|
import com.njzscloud.supervisory.order.contant.PaymentStatus;
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
import lombok.Setter;
|
import lombok.Setter;
|
||||||
import lombok.ToString;
|
import lombok.ToString;
|
||||||
|
|
@ -28,18 +31,6 @@ public class OrderInfoEntity {
|
||||||
*/
|
*/
|
||||||
@TableId(type = IdType.ASSIGN_ID)
|
@TableId(type = IdType.ASSIGN_ID)
|
||||||
private Long id;
|
private Long id;
|
||||||
/**
|
|
||||||
* 联系人
|
|
||||||
*/
|
|
||||||
private String contacts;
|
|
||||||
/**
|
|
||||||
* 自动标识; 0-->全手动、1-->进自动、2-->出自动、3-->全自动
|
|
||||||
*/
|
|
||||||
private Integer autoOrder;
|
|
||||||
/**
|
|
||||||
* 联系方式
|
|
||||||
*/
|
|
||||||
private String phone;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 订单编号
|
* 订单编号
|
||||||
|
|
@ -50,6 +41,27 @@ public class OrderInfoEntity {
|
||||||
* 准运证编号
|
* 准运证编号
|
||||||
*/
|
*/
|
||||||
private String certificateSn;
|
private String certificateSn;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 自动标识; 0-->全手动、1-->进自动、2-->出自动、3-->全自动
|
||||||
|
*/
|
||||||
|
private Integer autoOrder;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 站点 Id
|
||||||
|
*/
|
||||||
|
private Long stationId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 车道
|
||||||
|
*/
|
||||||
|
private String lane;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 项目 Id
|
||||||
|
*/
|
||||||
|
private Long projectId;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 装货地址 Id
|
* 装货地址 Id
|
||||||
*/
|
*/
|
||||||
|
|
@ -64,33 +76,37 @@ public class OrderInfoEntity {
|
||||||
* 开始清运时间
|
* 开始清运时间
|
||||||
*/
|
*/
|
||||||
private LocalDateTime transTime;
|
private LocalDateTime transTime;
|
||||||
/**
|
|
||||||
* 站点 Id
|
|
||||||
*/
|
|
||||||
private Long stationId;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 车道
|
|
||||||
*/
|
|
||||||
private String lane;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 下单人 Id; sys_user.id
|
* 下单人 Id; sys_user.id
|
||||||
*/
|
*/
|
||||||
private Long userId;
|
private Long userId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 联系人
|
||||||
|
*/
|
||||||
|
private String contacts;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 联系方式
|
||||||
|
*/
|
||||||
|
private String phone;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 审核状态; 字典代码:audit_status
|
* 审核状态; 字典代码:audit_status
|
||||||
*/
|
*/
|
||||||
private AuditStatus auditStatus;
|
private AuditStatus auditStatus;
|
||||||
/**
|
|
||||||
* 审核时间
|
|
||||||
*/
|
|
||||||
private LocalDateTime auditTime;
|
|
||||||
/**
|
/**
|
||||||
* 审核备注
|
* 审核备注
|
||||||
*/
|
*/
|
||||||
private String auditMemo;
|
private String auditMemo;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 审核时间
|
||||||
|
*/
|
||||||
|
private LocalDateTime auditTime;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 区审核人
|
* 区审核人
|
||||||
*/
|
*/
|
||||||
|
|
@ -100,15 +116,17 @@ public class OrderInfoEntity {
|
||||||
* 市审核人
|
* 市审核人
|
||||||
*/
|
*/
|
||||||
private Long shiAuditUserId;
|
private Long shiAuditUserId;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 目标站点 Id
|
* 对方站点 Id; 短驳单有值
|
||||||
*/
|
*/
|
||||||
private Long targetStationId;
|
private Long targetStationId;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 短驳入订单 Id
|
* 对方订单 Id; 短驳单有值
|
||||||
*/
|
*/
|
||||||
private Long targetOrderId;
|
private Long targetOrderId;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 订单类型; 字典代码:order_category
|
* 订单类型; 字典代码:order_category
|
||||||
*/
|
*/
|
||||||
|
|
@ -160,14 +178,9 @@ public class OrderInfoEntity {
|
||||||
private BigDecimal settleMoney;
|
private BigDecimal settleMoney;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 付款方资金账户 Id
|
* 总金额; 单位:元
|
||||||
*/
|
*/
|
||||||
private Long payer;
|
private BigDecimal totalMoney;
|
||||||
|
|
||||||
/**
|
|
||||||
* 支付方类型; 字典代码:payer_category
|
|
||||||
*/
|
|
||||||
private PayerCategory payerCategory;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 支付状态; 字典代码:payment_status
|
* 支付状态; 字典代码:payment_status
|
||||||
|
|
@ -175,9 +188,9 @@ public class OrderInfoEntity {
|
||||||
private PaymentStatus paymentStatus;
|
private PaymentStatus paymentStatus;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 支付时间
|
* 完结时间
|
||||||
*/
|
*/
|
||||||
private LocalDateTime paymentTime;
|
private LocalDateTime finishTime;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 客户备注
|
* 客户备注
|
||||||
|
|
@ -200,15 +213,18 @@ public class OrderInfoEntity {
|
||||||
*/
|
*/
|
||||||
@TableField(typeHandler = JsonTypeHandler.class)
|
@TableField(typeHandler = JsonTypeHandler.class)
|
||||||
private List<String> checkPhoto;
|
private List<String> checkPhoto;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 进出场信息
|
||||||
|
*/
|
||||||
|
private Long carInOutId;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 现场照片
|
* 现场照片
|
||||||
*/
|
*/
|
||||||
@TableField(typeHandler = JsonTypeHandler.class)
|
@TableField(typeHandler = JsonTypeHandler.class)
|
||||||
private List<String> sitePhotos;
|
private List<String> sitePhotos;
|
||||||
/**
|
|
||||||
* 进出场信息
|
|
||||||
*/
|
|
||||||
private Long carInOutId;
|
|
||||||
/**
|
/**
|
||||||
* 期望运输时间
|
* 期望运输时间
|
||||||
*/
|
*/
|
||||||
|
|
@ -218,6 +234,7 @@ public class OrderInfoEntity {
|
||||||
* 预估量
|
* 预估量
|
||||||
*/
|
*/
|
||||||
private String estimatedQuantity;
|
private String estimatedQuantity;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 创建人 Id; sys_user.id
|
* 创建人 Id; sys_user.id
|
||||||
*/
|
*/
|
||||||
|
|
@ -248,10 +265,4 @@ public class OrderInfoEntity {
|
||||||
@TableLogic
|
@TableLogic
|
||||||
private Boolean deleted;
|
private Boolean deleted;
|
||||||
|
|
||||||
/**
|
|
||||||
* 项目 Id
|
|
||||||
*/
|
|
||||||
private Long projectId;
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -14,7 +14,6 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
import com.baomidou.mybatisplus.extension.service.IService;
|
import com.baomidou.mybatisplus.extension.service.IService;
|
||||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||||
import com.njzscloud.common.core.ex.Exceptions;
|
import com.njzscloud.common.core.ex.Exceptions;
|
||||||
import com.njzscloud.common.core.ienum.Dict;
|
|
||||||
import com.njzscloud.common.mp.support.PageParam;
|
import com.njzscloud.common.mp.support.PageParam;
|
||||||
import com.njzscloud.common.mp.support.PageResult;
|
import com.njzscloud.common.mp.support.PageResult;
|
||||||
import com.njzscloud.common.security.support.UserDetail;
|
import com.njzscloud.common.security.support.UserDetail;
|
||||||
|
|
@ -37,6 +36,7 @@ import com.njzscloud.supervisory.order.pojo.param.*;
|
||||||
import com.njzscloud.supervisory.order.pojo.result.OrderCertificateResult;
|
import com.njzscloud.supervisory.order.pojo.result.OrderCertificateResult;
|
||||||
import com.njzscloud.supervisory.order.pojo.result.OrderPagingResult;
|
import com.njzscloud.supervisory.order.pojo.result.OrderPagingResult;
|
||||||
import com.njzscloud.supervisory.order.pojo.result.TrainBillResult;
|
import com.njzscloud.supervisory.order.pojo.result.TrainBillResult;
|
||||||
|
import com.njzscloud.supervisory.sys.auth.pojo.result.MyResult;
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
@ -174,16 +174,16 @@ public class OrderInfoService extends ServiceImpl<OrderInfoMapper, OrderInfoEnti
|
||||||
}
|
}
|
||||||
|
|
||||||
private void dispatchEW(OrderPagingSearchParam orderPagingSearchParam, QueryWrapper<OrderPagingResult> ew) {
|
private void dispatchEW(OrderPagingSearchParam orderPagingSearchParam, QueryWrapper<OrderPagingResult> ew) {
|
||||||
UserDetail userDetail = SecurityUtil.loginUser();
|
MyResult userDetail = SecurityUtil.loginUser();
|
||||||
Long userId = SecurityUtil.currentUserId();
|
Long userId = SecurityUtil.currentUserId();
|
||||||
String bizObjStr = userDetail.getBizObj();
|
BizObj bizObj = userDetail.getBizObj();
|
||||||
if (BizObj.isTrans(bizObjStr)) {
|
if (BizObj.isTrans(bizObj)) {
|
||||||
ew
|
ew
|
||||||
.in("a.order_status", OrderStatus.DaiPaiDan, OrderStatus.DaiJieDan)
|
.in("a.order_status", OrderStatus.DaiPaiDan, OrderStatus.DaiJieDan)
|
||||||
.eq("g.user_id", userId);
|
.eq("g.user_id", userId);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (BizObj.isDriver(bizObjStr)) {
|
if (BizObj.isDriver(bizObj)) {
|
||||||
ew
|
ew
|
||||||
.eq("a.order_status", OrderStatus.DaiJieDan)
|
.eq("a.order_status", OrderStatus.DaiJieDan)
|
||||||
.eq("f.user_id", userId);
|
.eq("f.user_id", userId);
|
||||||
|
|
@ -203,11 +203,11 @@ public class OrderInfoService extends ServiceImpl<OrderInfoMapper, OrderInfoEnti
|
||||||
}
|
}
|
||||||
|
|
||||||
private void bookingEW(OrderPagingSearchParam orderPagingSearchParam, QueryWrapper<OrderPagingResult> ew) {
|
private void bookingEW(OrderPagingSearchParam orderPagingSearchParam, QueryWrapper<OrderPagingResult> ew) {
|
||||||
UserDetail userDetail = SecurityUtil.loginUser();
|
MyResult userDetail = SecurityUtil.loginUser();
|
||||||
Long userId = SecurityUtil.currentUserId();
|
Long userId = SecurityUtil.currentUserId();
|
||||||
String bizObjStr = userDetail.getBizObj();
|
BizObj bizObj = userDetail.getBizObj();
|
||||||
|
|
||||||
if (BizObj.isWaste(bizObjStr)) {
|
if (BizObj.isWaste(bizObj)) {
|
||||||
ew
|
ew
|
||||||
.in("a.order_status", OrderStatus.YiYuYue, OrderStatus.DaiPaiDan, OrderStatus.DaiJieDan, OrderStatus.YiJieDan)
|
.in("a.order_status", OrderStatus.YiYuYue, OrderStatus.DaiPaiDan, OrderStatus.DaiJieDan, OrderStatus.YiJieDan)
|
||||||
.eq("a.user_id", userId)
|
.eq("a.user_id", userId)
|
||||||
|
|
@ -228,25 +228,25 @@ public class OrderInfoService extends ServiceImpl<OrderInfoMapper, OrderInfoEnti
|
||||||
}
|
}
|
||||||
|
|
||||||
private void realtimeEW(OrderPagingSearchParam orderPagingSearchParam, QueryWrapper<OrderPagingResult> ew) {
|
private void realtimeEW(OrderPagingSearchParam orderPagingSearchParam, QueryWrapper<OrderPagingResult> ew) {
|
||||||
UserDetail userDetail = SecurityUtil.loginUser();
|
MyResult userDetail = SecurityUtil.loginUser();
|
||||||
Long userId = SecurityUtil.currentUserId();
|
Long userId = SecurityUtil.currentUserId();
|
||||||
String bizObjStr = userDetail.getBizObj();
|
BizObj bizObj = userDetail.getBizObj();
|
||||||
|
|
||||||
if (BizObj.isWaste(bizObjStr)) {
|
if (BizObj.isWaste(bizObj)) {
|
||||||
ew
|
ew
|
||||||
.in("a.order_status", OrderStatus.QingYunZhong, OrderStatus.YiJinChang, OrderStatus.YiChuChang)
|
.in("a.order_status", OrderStatus.QingYunZhong, OrderStatus.YiJinChang, OrderStatus.YiChuChang)
|
||||||
.eq("a.user_id", userId)
|
.eq("a.user_id", userId)
|
||||||
;
|
;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (BizObj.isTrans(bizObjStr)) {
|
if (BizObj.isTrans(bizObj)) {
|
||||||
ew
|
ew
|
||||||
.in("a.order_status", OrderStatus.YiJieDan, OrderStatus.QingYunZhong, OrderStatus.YiJinChang, OrderStatus.YiChuChang)
|
.in("a.order_status", OrderStatus.YiJieDan, OrderStatus.QingYunZhong, OrderStatus.YiJinChang, OrderStatus.YiChuChang)
|
||||||
.eq("g.user_id", userId)
|
.eq("g.user_id", userId)
|
||||||
;
|
;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (BizObj.isDriver(bizObjStr)) {
|
if (BizObj.isDriver(bizObj)) {
|
||||||
ew
|
ew
|
||||||
.eq("f.user_id", userId)
|
.eq("f.user_id", userId)
|
||||||
.in("a.order_status", OrderStatus.YiJieDan, OrderStatus.QingYunZhong, OrderStatus.YiJinChang, OrderStatus.YiChuChang)
|
.in("a.order_status", OrderStatus.YiJieDan, OrderStatus.QingYunZhong, OrderStatus.YiJinChang, OrderStatus.YiChuChang)
|
||||||
|
|
@ -267,18 +267,18 @@ public class OrderInfoService extends ServiceImpl<OrderInfoMapper, OrderInfoEnti
|
||||||
}
|
}
|
||||||
|
|
||||||
private void historyEW(OrderPagingSearchParam orderPagingSearchParam, QueryWrapper<OrderPagingResult> ew) {
|
private void historyEW(OrderPagingSearchParam orderPagingSearchParam, QueryWrapper<OrderPagingResult> ew) {
|
||||||
UserDetail userDetail = SecurityUtil.loginUser();
|
MyResult userDetail = SecurityUtil.loginUser();
|
||||||
Long userId = SecurityUtil.currentUserId();
|
Long userId = SecurityUtil.currentUserId();
|
||||||
String bizObjStr = userDetail.getBizObj();
|
BizObj bizObj = userDetail.getBizObj();
|
||||||
|
|
||||||
if (BizObj.isWaste(bizObjStr)) {
|
if (BizObj.isWaste(bizObj)) {
|
||||||
ew
|
ew
|
||||||
.eq("a.order_status", OrderStatus.YiWanCheng)
|
.eq("a.order_status", OrderStatus.YiWanCheng)
|
||||||
.eq("a.user_id", userId)
|
.eq("a.user_id", userId)
|
||||||
;
|
;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (BizObj.isTrans(bizObjStr)) {
|
if (BizObj.isTrans(bizObj)) {
|
||||||
ew
|
ew
|
||||||
.eq("a.order_status", OrderStatus.YiWanCheng)
|
.eq("a.order_status", OrderStatus.YiWanCheng)
|
||||||
.eq("g.user_id", userId)
|
.eq("g.user_id", userId)
|
||||||
|
|
@ -286,7 +286,7 @@ public class OrderInfoService extends ServiceImpl<OrderInfoMapper, OrderInfoEnti
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (BizObj.isDriver(bizObjStr)) {
|
if (BizObj.isDriver(bizObj)) {
|
||||||
ew
|
ew
|
||||||
.eq("a.order_status", OrderStatus.YiWanCheng)
|
.eq("a.order_status", OrderStatus.YiWanCheng)
|
||||||
.eq("f.user_id", userId)
|
.eq("f.user_id", userId)
|
||||||
|
|
@ -307,11 +307,11 @@ public class OrderInfoService extends ServiceImpl<OrderInfoMapper, OrderInfoEnti
|
||||||
}
|
}
|
||||||
|
|
||||||
private void cancelEW(OrderPagingSearchParam orderPagingSearchParam, QueryWrapper<OrderPagingResult> ew) {
|
private void cancelEW(OrderPagingSearchParam orderPagingSearchParam, QueryWrapper<OrderPagingResult> ew) {
|
||||||
UserDetail userDetail = SecurityUtil.loginUser();
|
MyResult userDetail = SecurityUtil.loginUser();
|
||||||
Long userId = SecurityUtil.currentUserId();
|
Long userId = SecurityUtil.currentUserId();
|
||||||
String bizObjStr = userDetail.getBizObj();
|
BizObj bizObj = userDetail.getBizObj();
|
||||||
|
|
||||||
if (BizObj.isWaste(bizObjStr)) {
|
if (BizObj.isWaste(bizObj)) {
|
||||||
ew
|
ew
|
||||||
.eq("a.order_status", OrderStatus.YiQuXiao)
|
.eq("a.order_status", OrderStatus.YiQuXiao)
|
||||||
.eq("a.user_id", userId)
|
.eq("a.user_id", userId)
|
||||||
|
|
@ -346,9 +346,9 @@ public class OrderInfoService extends ServiceImpl<OrderInfoMapper, OrderInfoEnti
|
||||||
}
|
}
|
||||||
|
|
||||||
private void checkEW(OrderPagingSearchParam orderPagingSearchParam, QueryWrapper<OrderPagingResult> ew) {
|
private void checkEW(OrderPagingSearchParam orderPagingSearchParam, QueryWrapper<OrderPagingResult> ew) {
|
||||||
UserDetail userDetail = SecurityUtil.loginUser();
|
MyResult userDetail = SecurityUtil.loginUser();
|
||||||
String bizObjStr = userDetail.getBizObj();
|
BizObj bizObj = userDetail.getBizObj();
|
||||||
if (BizObj.isSiBang(bizObjStr)) {
|
if (BizObj.isSiBang(bizObj)) {
|
||||||
CheckStatus checkStatus = orderPagingSearchParam.getCheckStatus();
|
CheckStatus checkStatus = orderPagingSearchParam.getCheckStatus();
|
||||||
if (checkStatus == CheckStatus.YiKanLiao) {
|
if (checkStatus == CheckStatus.YiKanLiao) {
|
||||||
ew
|
ew
|
||||||
|
|
@ -679,14 +679,14 @@ public class OrderInfoService extends ServiceImpl<OrderInfoMapper, OrderInfoEnti
|
||||||
this.updateById(new OrderInfoEntity()
|
this.updateById(new OrderInfoEntity()
|
||||||
.setAutoOrder(3 ^ (i << 1))
|
.setAutoOrder(3 ^ (i << 1))
|
||||||
.setId(orderInfoEntity.getId())
|
.setId(orderInfoEntity.getId())
|
||||||
.setOrderStatus(OrderStatus.YiWanCheng)
|
.setOrderStatus(OrderStatus.YiChuChang)
|
||||||
);
|
);
|
||||||
OrderCategory orderCategory = orderInfoEntity.getOrderCategory();
|
OrderCategory orderCategory = orderInfoEntity.getOrderCategory();
|
||||||
Long truckId = orderInfoEntity.getTruckId();
|
Long truckId = orderInfoEntity.getTruckId();
|
||||||
Integer settleWeight = orderCarInOutService.truckOut(orderInfoEntity.getCarInOutId(), truckLeavingOrderParam, orderCategory, truckId);
|
Integer settleWeight = orderCarInOutService.truckOut(orderInfoEntity.getCarInOutId(), truckLeavingOrderParam, orderCategory, truckId);
|
||||||
orderGoodsService.updateById(new OrderGoodsEntity()
|
|
||||||
.setId(orderInfoEntity.getGoodsId())
|
// TODO 结算
|
||||||
.setQuantity(settleWeight));
|
// settleWeight 重量
|
||||||
// TODO 关闭 GPS
|
// TODO 关闭 GPS
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
@ -727,8 +727,8 @@ public class OrderInfoService extends ServiceImpl<OrderInfoMapper, OrderInfoEnti
|
||||||
.eq(checkStatus != null, "a.check_status", checkStatus)
|
.eq(checkStatus != null, "a.check_status", checkStatus)
|
||||||
.ge(startTime != null, "a.create_time", startTime)
|
.ge(startTime != null, "a.create_time", startTime)
|
||||||
.le(endTime != null, "a.create_time", endTime);
|
.le(endTime != null, "a.create_time", endTime);
|
||||||
UserDetail userDetail = SecurityUtil.loginUser();
|
MyResult userDetail = SecurityUtil.loginUser();
|
||||||
BizObj bizObj = Dict.parse(userDetail.getBizObj(), BizObj.values());
|
BizObj bizObj = userDetail.getBizObj();
|
||||||
if (bizObj != null) {
|
if (bizObj != null) {
|
||||||
if (bizObj.isTrans()) {
|
if (bizObj.isTrans()) {
|
||||||
ew.eq("a.order_status", OrderStatus.DaiPaiDan)
|
ew.eq("a.order_status", OrderStatus.DaiPaiDan)
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
package com.njzscloud.supervisory.sys.auth.controller;
|
package com.njzscloud.supervisory.sys.auth.controller;
|
||||||
|
|
||||||
import com.njzscloud.common.core.utils.R;
|
import com.njzscloud.common.core.utils.R;
|
||||||
import com.njzscloud.supervisory.sys.auth.pojo.result.MyResult;
|
import com.njzscloud.common.security.support.UserDetail;
|
||||||
import com.njzscloud.supervisory.sys.auth.service.AuthService;
|
import com.njzscloud.supervisory.sys.auth.service.AuthService;
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
|
@ -23,7 +23,7 @@ public class AuthController {
|
||||||
* 获取当前登录人信息
|
* 获取当前登录人信息
|
||||||
*/
|
*/
|
||||||
@GetMapping("/my")
|
@GetMapping("/my")
|
||||||
public R<MyResult> my() {
|
public R<UserDetail> my() {
|
||||||
return R.success(authService.my());
|
return R.success(authService.my());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -3,8 +3,8 @@ package com.njzscloud.supervisory.sys.auth.mapper;
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||||
import com.njzscloud.common.security.support.EndpointResource;
|
import com.njzscloud.common.security.support.EndpointResource;
|
||||||
import com.njzscloud.common.security.support.MenuResource;
|
import com.njzscloud.common.security.support.MenuResource;
|
||||||
import com.njzscloud.common.security.support.UserDetail;
|
|
||||||
import com.njzscloud.supervisory.biz.pojo.result.SearchCompanyResult;
|
import com.njzscloud.supervisory.biz.pojo.result.SearchCompanyResult;
|
||||||
|
import com.njzscloud.supervisory.sys.auth.pojo.result.MyResult;
|
||||||
import org.apache.ibatis.annotations.Mapper;
|
import org.apache.ibatis.annotations.Mapper;
|
||||||
import org.apache.ibatis.annotations.Param;
|
import org.apache.ibatis.annotations.Param;
|
||||||
|
|
||||||
|
|
@ -19,7 +19,7 @@ public interface AuthMapper {
|
||||||
|
|
||||||
Set<String> selectRoleByUserId(@Param("userId") Long userId);
|
Set<String> selectRoleByUserId(@Param("userId") Long userId);
|
||||||
|
|
||||||
UserDetail selectUser(@Param("ew") QueryWrapper<Object> ew);
|
MyResult selectUser(@Param("ew") QueryWrapper<Object> ew);
|
||||||
|
|
||||||
SearchCompanyResult selectCompanyInfo(@Param("userId") Long userId);
|
SearchCompanyResult selectCompanyInfo(@Param("userId") Long userId);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -2,12 +2,11 @@ package com.njzscloud.supervisory.sys.auth.pojo.result;
|
||||||
|
|
||||||
import com.njzscloud.common.security.support.EndpointResource;
|
import com.njzscloud.common.security.support.EndpointResource;
|
||||||
import com.njzscloud.common.security.support.MenuResource;
|
import com.njzscloud.common.security.support.MenuResource;
|
||||||
|
import com.njzscloud.common.security.support.UserDetail;
|
||||||
import com.njzscloud.supervisory.biz.constant.BizObj;
|
import com.njzscloud.supervisory.biz.constant.BizObj;
|
||||||
import com.njzscloud.supervisory.biz.pojo.result.SearchCompanyResult;
|
import com.njzscloud.supervisory.biz.pojo.result.SearchCompanyResult;
|
||||||
import com.njzscloud.supervisory.sys.user.contant.Gender;
|
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
import lombok.Setter;
|
import lombok.Setter;
|
||||||
import lombok.ToString;
|
|
||||||
import lombok.experimental.Accessors;
|
import lombok.experimental.Accessors;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
@ -16,9 +15,8 @@ import java.util.Set;
|
||||||
|
|
||||||
@Getter
|
@Getter
|
||||||
@Setter
|
@Setter
|
||||||
@ToString
|
|
||||||
@Accessors(chain = true)
|
@Accessors(chain = true)
|
||||||
public class MyResult {
|
public class MyResult extends UserDetail {
|
||||||
private List<MenuResource> menus;
|
private List<MenuResource> menus;
|
||||||
private Set<String> roles;
|
private Set<String> roles;
|
||||||
|
|
||||||
|
|
@ -32,22 +30,10 @@ public class MyResult {
|
||||||
* Id
|
* Id
|
||||||
*/
|
*/
|
||||||
private Long id;
|
private Long id;
|
||||||
/**
|
|
||||||
* 昵称
|
|
||||||
*/
|
|
||||||
private String nickname;
|
|
||||||
/**
|
/**
|
||||||
* 头像
|
* 头像
|
||||||
*/
|
*/
|
||||||
private String avatar;
|
private String avatar;
|
||||||
/**
|
|
||||||
* 性别; 字典代码:gender
|
|
||||||
*/
|
|
||||||
private Gender gender;
|
|
||||||
/**
|
|
||||||
* 邮箱
|
|
||||||
*/
|
|
||||||
private String email;
|
|
||||||
/**
|
/**
|
||||||
* 手机号
|
* 手机号
|
||||||
*/
|
*/
|
||||||
|
|
|
||||||
|
|
@ -2,8 +2,8 @@ package com.njzscloud.supervisory.sys.auth.service;
|
||||||
|
|
||||||
import cn.hutool.core.bean.BeanUtil;
|
import cn.hutool.core.bean.BeanUtil;
|
||||||
import cn.hutool.core.util.StrUtil;
|
import cn.hutool.core.util.StrUtil;
|
||||||
|
import com.alibaba.fastjson2.JSONObject;
|
||||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||||
import com.njzscloud.common.security.contant.AuthWay;
|
|
||||||
import com.njzscloud.common.security.module.password.PasswordLoginForm;
|
import com.njzscloud.common.security.module.password.PasswordLoginForm;
|
||||||
import com.njzscloud.common.security.module.wechat.mini.WechatMiniLoginForm;
|
import com.njzscloud.common.security.module.wechat.mini.WechatMiniLoginForm;
|
||||||
import com.njzscloud.common.security.support.*;
|
import com.njzscloud.common.security.support.*;
|
||||||
|
|
@ -12,10 +12,12 @@ import com.njzscloud.supervisory.biz.pojo.result.SearchCompanyResult;
|
||||||
import com.njzscloud.supervisory.sys.auth.mapper.AuthMapper;
|
import com.njzscloud.supervisory.sys.auth.mapper.AuthMapper;
|
||||||
import com.njzscloud.supervisory.sys.auth.pojo.result.MyResult;
|
import com.njzscloud.supervisory.sys.auth.pojo.result.MyResult;
|
||||||
import com.njzscloud.supervisory.sys.user.pojo.entity.UserEntity;
|
import com.njzscloud.supervisory.sys.user.pojo.entity.UserEntity;
|
||||||
|
import com.njzscloud.supervisory.sys.user.pojo.param.UserRegisterParam;
|
||||||
import com.njzscloud.supervisory.sys.user.service.UserService;
|
import com.njzscloud.supervisory.sys.user.service.UserService;
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
|
|
@ -23,50 +25,49 @@ import java.util.Set;
|
||||||
@Slf4j
|
@Slf4j
|
||||||
@Service
|
@Service
|
||||||
@RequiredArgsConstructor
|
@RequiredArgsConstructor
|
||||||
public class AuthService implements IUserService, IResourceService, IRoleService {
|
public class AuthService implements IUserService, IRoleService {
|
||||||
private final AuthMapper authMapper;
|
private final AuthMapper authMapper;
|
||||||
|
|
||||||
private final UserService userService;
|
private final UserService userService;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public UserDetail selectUser(String account, AuthWay authWay) {
|
@Transactional(rollbackFor = Exception.class)
|
||||||
switch (authWay) {
|
|
||||||
case PASSWORD:
|
|
||||||
return authMapper.selectUser(Wrappers.query().eq("a.username", account).eq("a.deleted", 0));
|
|
||||||
case PHONE:
|
|
||||||
return authMapper.selectUser(Wrappers.query().eq("a.phone", account).eq("a.deleted", 0));
|
|
||||||
case WECHAT_MINI:
|
|
||||||
return authMapper.selectUser(Wrappers.query().eq("a.wechat_openid", account).eq("a.deleted", 0));
|
|
||||||
case WECHAT:
|
|
||||||
default:
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public UserDetail selectUser(PasswordLoginForm form) {
|
public UserDetail selectUser(PasswordLoginForm form) {
|
||||||
String account = form.getAccount();
|
JSONObject registerData = form.getRegisterData();
|
||||||
return authMapper.selectUser(Wrappers.query().eq("a.username", account).eq("a.deleted", 0));
|
if (registerData != null) {
|
||||||
|
UserRegisterParam userRegisterParam = registerData.toJavaObject(UserRegisterParam.class);
|
||||||
|
UserRegisterParam.Account account = userRegisterParam.getAccount();
|
||||||
|
if (StrUtil.isBlank(userRegisterParam.getPhone())) {
|
||||||
|
userRegisterParam.setPhone(account.getPhone());
|
||||||
|
account.setPhone(null);
|
||||||
|
}
|
||||||
|
userService.register(userRegisterParam);
|
||||||
|
}
|
||||||
|
|
||||||
|
return authMapper.selectUser(Wrappers.query().eq("a.username", form.getAccount()).eq("a.deleted", 0));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@Transactional(rollbackFor = Exception.class)
|
||||||
public UserDetail selectUser(WechatMiniLoginForm form) {
|
public UserDetail selectUser(WechatMiniLoginForm form) {
|
||||||
String openid = form.getOpenid();
|
String openid = form.getOpenid();
|
||||||
String unionid = form.getUnionid();
|
String unionid = form.getUnionid();
|
||||||
|
JSONObject registerData = form.getRegisterData();
|
||||||
|
if (registerData != null) {
|
||||||
|
UserRegisterParam userRegisterParam = registerData.toJavaObject(UserRegisterParam.class);
|
||||||
|
UserRegisterParam.Account account = userRegisterParam.getAccount();
|
||||||
|
account.setWechatOpenid(openid)
|
||||||
|
.setWechatUnionid(unionid);
|
||||||
|
if (StrUtil.isBlank(userRegisterParam.getPhone())) {
|
||||||
|
userRegisterParam.setPhone(account.getPhone());
|
||||||
|
}
|
||||||
|
userService.register(userRegisterParam);
|
||||||
|
}
|
||||||
return authMapper.selectUser(Wrappers.query().eq("a.wechat_openid", openid)
|
return authMapper.selectUser(Wrappers.query().eq("a.wechat_openid", openid)
|
||||||
.eq(StrUtil.isNotBlank(unionid), "a.wechat_unionid", unionid)
|
.eq(StrUtil.isNotBlank(unionid), "a.wechat_unionid", unionid)
|
||||||
.eq("a.deleted", 0));
|
.eq("a.deleted", 0));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public Resource selectResourceByUserId(Long userId) {
|
|
||||||
List<MenuResource> menuResources = authMapper.selectUserMenu(userId);
|
|
||||||
List<EndpointResource> endpointResource = authMapper.selectUserEndpoint(userId);
|
|
||||||
return new Resource()
|
|
||||||
.setMenu(menuResources)
|
|
||||||
.setEndpoint(endpointResource);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Set<String> selectRoleByUserId(Long userId) {
|
public Set<String> selectRoleByUserId(Long userId) {
|
||||||
return authMapper.selectRoleByUserId(userId);
|
return authMapper.selectRoleByUserId(userId);
|
||||||
|
|
@ -75,7 +76,7 @@ public class AuthService implements IUserService, IResourceService, IRoleService
|
||||||
/**
|
/**
|
||||||
* 获取当前登录人信息
|
* 获取当前登录人信息
|
||||||
*/
|
*/
|
||||||
public MyResult my() {
|
public UserDetail my() {
|
||||||
Long userId = SecurityUtil.currentUserId();
|
Long userId = SecurityUtil.currentUserId();
|
||||||
UserEntity userEntity = userService.getById(userId);
|
UserEntity userEntity = userService.getById(userId);
|
||||||
List<MenuResource> menuResources = authMapper.selectUserMenu(userId);
|
List<MenuResource> menuResources = authMapper.selectUserMenu(userId);
|
||||||
|
|
|
||||||
|
|
@ -43,7 +43,7 @@ public class TokenService implements ITokenService {
|
||||||
.setTid(tid)
|
.setTid(tid)
|
||||||
.setTkey(key)
|
.setTkey(key)
|
||||||
.setTval(token.toString())
|
.setTval(token.toString())
|
||||||
.setUserDetail(userDetail.toString())
|
.setUserDetail(Fastjson.toJsonStr(userDetail))
|
||||||
);
|
);
|
||||||
TOKEN_CACHE.put(key, userDetail);
|
TOKEN_CACHE.put(key, userDetail);
|
||||||
} finally {
|
} finally {
|
||||||
|
|
|
||||||
|
|
@ -7,7 +7,10 @@ import com.njzscloud.common.mp.support.PageParam;
|
||||||
import com.njzscloud.common.mp.support.PageResult;
|
import com.njzscloud.common.mp.support.PageResult;
|
||||||
import com.njzscloud.common.security.util.SecurityUtil;
|
import com.njzscloud.common.security.util.SecurityUtil;
|
||||||
import com.njzscloud.supervisory.sys.user.pojo.entity.UserEntity;
|
import com.njzscloud.supervisory.sys.user.pojo.entity.UserEntity;
|
||||||
import com.njzscloud.supervisory.sys.user.pojo.param.*;
|
import com.njzscloud.supervisory.sys.user.pojo.param.AddUserParam;
|
||||||
|
import com.njzscloud.supervisory.sys.user.pojo.param.ModifyPasswdParam;
|
||||||
|
import com.njzscloud.supervisory.sys.user.pojo.param.UserModifyParam;
|
||||||
|
import com.njzscloud.supervisory.sys.user.pojo.param.UserQueryParam;
|
||||||
import com.njzscloud.supervisory.sys.user.pojo.result.UserDetailResult;
|
import com.njzscloud.supervisory.sys.user.pojo.result.UserDetailResult;
|
||||||
import com.njzscloud.supervisory.sys.user.service.UserService;
|
import com.njzscloud.supervisory.sys.user.service.UserService;
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
|
|
@ -88,11 +91,11 @@ public class UserController {
|
||||||
*
|
*
|
||||||
* @param userRegisterParam 参数
|
* @param userRegisterParam 参数
|
||||||
*/
|
*/
|
||||||
@PostMapping("/register")
|
/* @PostMapping("/register")
|
||||||
public R<?> register(@RequestBody @Validated UserRegisterParam userRegisterParam) {
|
public R<?> register(@RequestBody @Validated UserRegisterParam userRegisterParam) {
|
||||||
String token = userService.register(userRegisterParam);
|
String token = userService.register(userRegisterParam);
|
||||||
return R.success(token);
|
return R.success(token);
|
||||||
}
|
} */
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 修改密码
|
* 修改密码
|
||||||
|
|
|
||||||
|
|
@ -27,7 +27,10 @@ public class AddUserParam implements Constrained {
|
||||||
* 昵称
|
* 昵称
|
||||||
*/
|
*/
|
||||||
private String nickname;
|
private String nickname;
|
||||||
|
/**
|
||||||
|
* 手机号
|
||||||
|
*/
|
||||||
|
private String phone;
|
||||||
/**
|
/**
|
||||||
* 头像
|
* 头像
|
||||||
*/
|
*/
|
||||||
|
|
|
||||||
|
|
@ -1,10 +1,6 @@
|
||||||
package com.njzscloud.supervisory.sys.user.pojo.param;
|
package com.njzscloud.supervisory.sys.user.pojo.param;
|
||||||
|
|
||||||
import cn.hutool.core.util.StrUtil;
|
|
||||||
import com.njzscloud.common.mvc.validator.Constrained;
|
|
||||||
import com.njzscloud.common.mvc.validator.ValidRule;
|
|
||||||
import com.njzscloud.supervisory.biz.constant.BizObj;
|
import com.njzscloud.supervisory.biz.constant.BizObj;
|
||||||
import com.njzscloud.supervisory.sys.user.contant.Gender;
|
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
import lombok.Setter;
|
import lombok.Setter;
|
||||||
import lombok.ToString;
|
import lombok.ToString;
|
||||||
|
|
@ -16,7 +12,7 @@ import java.time.LocalDate;
|
||||||
@Setter
|
@Setter
|
||||||
@ToString
|
@ToString
|
||||||
@Accessors(chain = true)
|
@Accessors(chain = true)
|
||||||
public class UserRegisterParam implements Constrained {
|
public class UserRegisterParam {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 业务对象; 字典代码:biz_obj
|
* 业务对象; 字典代码:biz_obj
|
||||||
|
|
@ -29,15 +25,9 @@ public class UserRegisterParam implements Constrained {
|
||||||
private String nickname;
|
private String nickname;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 头像
|
* 手机号
|
||||||
*/
|
*/
|
||||||
private String avatar;
|
private String phone;
|
||||||
|
|
||||||
/**
|
|
||||||
* 性别; 字典代码:gender
|
|
||||||
*/
|
|
||||||
private Gender gender;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 账号信息
|
* 账号信息
|
||||||
*/
|
*/
|
||||||
|
|
@ -48,42 +38,11 @@ public class UserRegisterParam implements Constrained {
|
||||||
*/
|
*/
|
||||||
private Company company;
|
private Company company;
|
||||||
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public ValidRule[] rules() {
|
|
||||||
return new ValidRule[]{
|
|
||||||
ValidRule.of(() -> StrUtil.isNotBlank(nickname), "用户昵称不能为空"),
|
|
||||||
ValidRule.of(() -> account != null, "账号信息不能为空"),
|
|
||||||
ValidRule.of(() -> {
|
|
||||||
switch (bizObj) {
|
|
||||||
case GeRen:
|
|
||||||
return StrUtil.isNotBlank(account.getPhone()) && StrUtil.isNotBlank(account.getCode()) && StrUtil.isNotBlank(account.getCodeId());
|
|
||||||
case QingYunGongSi:
|
|
||||||
case WuYe:
|
|
||||||
return StrUtil.isNotBlank(account.getUsername()) && StrUtil.isNotBlank(account.getSecret());
|
|
||||||
default:
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
}, "账号信息错误"),
|
|
||||||
ValidRule.of(() -> {
|
|
||||||
switch (bizObj) {
|
|
||||||
case GeRen:
|
|
||||||
return true;
|
|
||||||
case QingYunGongSi:
|
|
||||||
case WuYe:
|
|
||||||
return company != null;
|
|
||||||
default:
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
}, "公司信息不能为空"),
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
@Getter
|
@Getter
|
||||||
@Setter
|
@Setter
|
||||||
@ToString
|
@ToString
|
||||||
@Accessors(chain = true)
|
@Accessors(chain = true)
|
||||||
public static class Account implements Constrained {
|
public static class Account {
|
||||||
/**
|
/**
|
||||||
* 邮箱
|
* 邮箱
|
||||||
*/
|
*/
|
||||||
|
|
@ -104,6 +63,15 @@ public class UserRegisterParam implements Constrained {
|
||||||
*/
|
*/
|
||||||
private String secret;
|
private String secret;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 微信openid
|
||||||
|
*/
|
||||||
|
private String wechatOpenid;
|
||||||
|
/**
|
||||||
|
* 微信unionid
|
||||||
|
*/
|
||||||
|
private String wechatUnionid;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 验证码
|
* 验证码
|
||||||
*/
|
*/
|
||||||
|
|
@ -113,18 +81,13 @@ public class UserRegisterParam implements Constrained {
|
||||||
* 获取验证码时使用的 uid
|
* 获取验证码时使用的 uid
|
||||||
*/
|
*/
|
||||||
private String codeId;
|
private String codeId;
|
||||||
|
|
||||||
@Override
|
|
||||||
public ValidRule[] rules() {
|
|
||||||
return new ValidRule[]{};
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Getter
|
@Getter
|
||||||
@Setter
|
@Setter
|
||||||
@ToString
|
@ToString
|
||||||
@Accessors(chain = true)
|
@Accessors(chain = true)
|
||||||
public static class Company implements Constrained {
|
public static class Company {
|
||||||
/**
|
/**
|
||||||
* 企业名称
|
* 企业名称
|
||||||
*/
|
*/
|
||||||
|
|
@ -144,6 +107,7 @@ public class UserRegisterParam implements Constrained {
|
||||||
* 营业执照有效期; [开始日期,结束日期]
|
* 营业执照有效期; [开始日期,结束日期]
|
||||||
*/
|
*/
|
||||||
private LocalDate licenseStartTime;
|
private LocalDate licenseStartTime;
|
||||||
|
|
||||||
private LocalDate licenseEndTime;
|
private LocalDate licenseEndTime;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -215,11 +179,5 @@ public class UserRegisterParam implements Constrained {
|
||||||
* 联系电话
|
* 联系电话
|
||||||
*/
|
*/
|
||||||
private String phone;
|
private String phone;
|
||||||
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public ValidRule[] rules() {
|
|
||||||
return new ValidRule[]{};
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -34,17 +34,38 @@ public class UserAccountService extends ServiceImpl<UserAccountMapper, UserAccou
|
||||||
String email = addUserAccountParam.getEmail();
|
String email = addUserAccountParam.getEmail();
|
||||||
String phone = addUserAccountParam.getPhone();
|
String phone = addUserAccountParam.getPhone();
|
||||||
String wechatOpenid = addUserAccountParam.getWechatOpenid();
|
String wechatOpenid = addUserAccountParam.getWechatOpenid();
|
||||||
// String wechatUnionid = addUserAccountParam.getWechatUnionid();
|
String wechatUnionid = addUserAccountParam.getWechatUnionid();
|
||||||
|
|
||||||
|
Assert.isTrue(StrUtil.isNotBlank(username)
|
||||||
|
|| StrUtil.isNotBlank(email)
|
||||||
|
|| StrUtil.isNotBlank(phone)
|
||||||
|
|| StrUtil.isNotBlank(wechatOpenid), () -> Exceptions.exception("用户名、邮箱、手机号、微信账号不能全部为空"));
|
||||||
|
|
||||||
List<UserAccountEntity> oldSysUserList = this.list(Wrappers.<UserAccountEntity>lambdaQuery()
|
List<UserAccountEntity> oldSysUserList = this.list(Wrappers.<UserAccountEntity>lambdaQuery()
|
||||||
.eq(StrUtil.isNotBlank(username), UserAccountEntity::getUsername, username)
|
.eq(StrUtil.isNotBlank(username), UserAccountEntity::getUsername, username)
|
||||||
// .or().eq(StrUtil.isNotBlank(email), UserAccountEntity::getEmail, email)
|
.or().eq(StrUtil.isNotBlank(email), UserAccountEntity::getEmail, email)
|
||||||
// .or().eq(StrUtil.isNotBlank(phone), UserAccountEntity::getPhone, phone)
|
.or().eq(StrUtil.isNotBlank(phone), UserAccountEntity::getPhone, phone)
|
||||||
.or(StrUtil.isNotBlank(wechatOpenid) /* && StrUtil.isNotBlank(wechatUnionid) */, it -> it.eq(UserAccountEntity::getWechatOpenid, wechatOpenid))
|
.or(StrUtil.isNotBlank(wechatOpenid), it -> it
|
||||||
|
.eq(UserAccountEntity::getWechatOpenid, wechatOpenid)
|
||||||
|
.eq(StrUtil.isNotBlank(wechatUnionid), UserAccountEntity::getWechatUnionid, wechatUnionid)
|
||||||
|
)
|
||||||
);
|
);
|
||||||
Assert.isTrue(oldSysUserList.stream().noneMatch(it -> username.equals(it.getUsername())), () -> Exceptions.exception("用户名【{}】已被使用", username));
|
|
||||||
Assert.isTrue(StrUtil.isBlank(email) || oldSysUserList.stream().noneMatch(it -> email.equals(it.getEmail())), () -> Exceptions.exception("邮箱【{}】已被使用", email));
|
if (StrUtil.isNotBlank(username)) {
|
||||||
Assert.isTrue(StrUtil.isBlank(phone) || oldSysUserList.stream().noneMatch(it -> phone.equals(it.getPhone())), () -> Exceptions.exception("手机号【{}】已被使用", phone));
|
Assert.isTrue(oldSysUserList.stream().noneMatch(it -> username.equals(it.getUsername())), () -> Exceptions.exception("用户名【{}】已被使用", username));
|
||||||
Assert.isTrue(StrUtil.isBlank(wechatOpenid) /* || StrUtil.isBlank(wechatUnionid) */ || oldSysUserList.stream().noneMatch(it -> wechatOpenid.equals(it.getWechatOpenid())), () -> Exceptions.exception("该微信账号已被使用"));
|
}
|
||||||
|
if (StrUtil.isNotBlank(email)) {
|
||||||
|
Assert.isTrue(oldSysUserList.stream().noneMatch(it -> email.equals(it.getEmail())), () -> Exceptions.exception("邮箱【{}】已被使用", email));
|
||||||
|
}
|
||||||
|
if (StrUtil.isNotBlank(phone)) {
|
||||||
|
Assert.isTrue(oldSysUserList.stream().noneMatch(it -> phone.equals(it.getPhone())), () -> Exceptions.exception("手机号【{}】已被使用", phone));
|
||||||
|
}
|
||||||
|
if (StrUtil.isNotBlank(wechatOpenid)) {
|
||||||
|
Assert.isTrue(oldSysUserList.stream().noneMatch(it -> {
|
||||||
|
String unionid = it.getWechatUnionid();
|
||||||
|
return wechatOpenid.equals(it.getWechatOpenid()) && (StrUtil.isBlank(wechatUnionid) || wechatUnionid.equals(unionid));
|
||||||
|
}), () -> Exceptions.exception("该微信账号已被使用"));
|
||||||
|
}
|
||||||
|
|
||||||
UserAccountEntity userAccountEntity = BeanUtil.copyProperties(addUserAccountParam, UserAccountEntity.class)
|
UserAccountEntity userAccountEntity = BeanUtil.copyProperties(addUserAccountParam, UserAccountEntity.class)
|
||||||
.setSecret(EncryptUtil.encrypt(addUserAccountParam.getSecret()))
|
.setSecret(EncryptUtil.encrypt(addUserAccountParam.getSecret()))
|
||||||
|
|
|
||||||
|
|
@ -11,11 +11,7 @@ import com.baomidou.mybatisplus.extension.service.IService;
|
||||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||||
import com.njzscloud.common.core.ex.Exceptions;
|
import com.njzscloud.common.core.ex.Exceptions;
|
||||||
import com.njzscloud.common.mp.support.PageResult;
|
import com.njzscloud.common.mp.support.PageResult;
|
||||||
import com.njzscloud.common.security.contant.AuthWay;
|
|
||||||
import com.njzscloud.common.security.util.SecurityUtil;
|
import com.njzscloud.common.security.util.SecurityUtil;
|
||||||
import com.njzscloud.common.wechat.WechatUtil;
|
|
||||||
import com.njzscloud.common.wechat.param.Code2SessionParam;
|
|
||||||
import com.njzscloud.common.wechat.result.Code2SessionResult;
|
|
||||||
import com.njzscloud.supervisory.biz.constant.BizObj;
|
import com.njzscloud.supervisory.biz.constant.BizObj;
|
||||||
import com.njzscloud.supervisory.biz.pojo.param.AddBizCompanyParam;
|
import com.njzscloud.supervisory.biz.pojo.param.AddBizCompanyParam;
|
||||||
import com.njzscloud.supervisory.biz.service.BizCompanyService;
|
import com.njzscloud.supervisory.biz.service.BizCompanyService;
|
||||||
|
|
@ -53,13 +49,13 @@ public class UserService extends ServiceImpl<UserMapper, UserEntity> implements
|
||||||
*/
|
*/
|
||||||
@Transactional(rollbackFor = Exception.class)
|
@Transactional(rollbackFor = Exception.class)
|
||||||
public Long add(AddUserParam addUserParam) {
|
public Long add(AddUserParam addUserParam) {
|
||||||
|
String phone = addUserParam.getPhone();
|
||||||
|
String nickname = addUserParam.getNickname();
|
||||||
|
Assert.notBlank(phone, () -> Exceptions.clierr("手机号不能为空"));
|
||||||
|
Assert.notBlank(nickname, () -> Exceptions.clierr("用户姓名不能为空"));
|
||||||
AddUserAccountParam addUserAccountParam = addUserParam.getAccount();
|
AddUserAccountParam addUserAccountParam = addUserParam.getAccount();
|
||||||
String email = addUserAccountParam.getEmail();
|
|
||||||
String phone = addUserAccountParam.getPhone();
|
|
||||||
|
|
||||||
UserEntity userEntity = BeanUtil.copyProperties(addUserParam, UserEntity.class);
|
UserEntity userEntity = BeanUtil.copyProperties(addUserParam, UserEntity.class);
|
||||||
if (StrUtil.isNotBlank(email)) userEntity.setEmail(email);
|
|
||||||
if (StrUtil.isNotBlank(phone)) userEntity.setPhone(phone);
|
|
||||||
this.save(userEntity);
|
this.save(userEntity);
|
||||||
|
|
||||||
Long userEntityId = userEntity.getId();
|
Long userEntityId = userEntity.getId();
|
||||||
|
|
@ -148,41 +144,46 @@ public class UserService extends ServiceImpl<UserMapper, UserEntity> implements
|
||||||
* @param userRegisterParam 参数
|
* @param userRegisterParam 参数
|
||||||
*/
|
*/
|
||||||
@Transactional(rollbackFor = Exception.class)
|
@Transactional(rollbackFor = Exception.class)
|
||||||
public String register(UserRegisterParam userRegisterParam) {
|
public void register(UserRegisterParam userRegisterParam) {
|
||||||
BizObj bizObj = userRegisterParam.getBizObj();
|
UserRegisterParam.Account account = userRegisterParam.getAccount();
|
||||||
|
Assert.notNull(account, () -> Exceptions.clierr("账号信息不能为空"));
|
||||||
|
|
||||||
|
BizObj bizObj = userRegisterParam.getBizObj();
|
||||||
if (bizObj == BizObj.GeRen) {
|
if (bizObj == BizObj.GeRen) {
|
||||||
String code = userRegisterParam.getAccount().getCode();
|
Assert.notBlank(account.getPhone(), () -> Exceptions.clierr("手机号不能为空"));
|
||||||
String phone = userRegisterParam.getAccount().getPhone();
|
Assert.notBlank(account.getWechatOpenid(), () -> Exceptions.clierr("微信号不能为空"));
|
||||||
Code2SessionResult code2SessionResult = WechatUtil.code2Session(new Code2SessionParam().setJs_code(code));
|
} else if (bizObj == BizObj.ShiGongDanWei
|
||||||
String openid = code2SessionResult.getOpenid();
|
|| bizObj == BizObj.WuYe
|
||||||
Assert.notBlank(openid, () -> Exceptions.error("微信登录失败"));
|
|| bizObj == BizObj.ChaiQian
|
||||||
// String unionid = code2SessionResult.getUnionid();
|
|| bizObj == BizObj.SheQu
|
||||||
UserAccountEntity one = userAccountService.getOne(Wrappers.<UserAccountEntity>lambdaQuery()
|
|| bizObj == BizObj.QiYe
|
||||||
// .eq(UserAccountEntity::getPhone, phone)
|
|| bizObj == BizObj.GeTi
|
||||||
// .eq(UserAccountEntity::getWechatUnionid, unionid)
|
) {
|
||||||
.eq(UserAccountEntity::getWechatOpenid, openid)
|
Assert.notBlank(account.getUsername(), () -> Exceptions.clierr("用户名不能为空"));
|
||||||
);
|
Assert.notBlank(account.getSecret(), () -> Exceptions.clierr("密码不能为空"));
|
||||||
if (one != null) {
|
} else {
|
||||||
String phone1 = one.getPhone();
|
throw Exceptions.clierr("业务对象错误");
|
||||||
if (phone.equals(phone1)) {
|
}
|
||||||
return SecurityUtil.registrationToken(openid, AuthWay.WECHAT_MINI);
|
|
||||||
} else {
|
String nickname = userRegisterParam.getNickname();
|
||||||
throw Exceptions.clierr("手机号错误");
|
Assert.notBlank(nickname, () -> Exceptions.clierr("用户姓名不能为空"));
|
||||||
}
|
|
||||||
} else {
|
if (bizObj.isWastePersonal()) {
|
||||||
AddUserParam addUserParam = BeanUtil.copyProperties(userRegisterParam, AddUserParam.class);
|
String wechatOpenid = account.getWechatOpenid();
|
||||||
addUserParam.setAccount(BeanUtil.copyProperties(userRegisterParam.getAccount(), AddUserAccountParam.class)
|
String wechatUnionid = account.getWechatUnionid();
|
||||||
.setWechatOpenid(openid)
|
UserAccountEntity oldAccount = userAccountService.getOne(Wrappers.<UserAccountEntity>lambdaQuery()
|
||||||
// .setWechatUnionid(unionid)
|
.eq(StrUtil.isNotBlank(wechatUnionid), UserAccountEntity::getWechatUnionid, wechatUnionid)
|
||||||
);
|
.eq(UserAccountEntity::getWechatOpenid, wechatOpenid));
|
||||||
this.add(addUserParam);
|
|
||||||
return SecurityUtil.registrationToken(openid, AuthWay.WECHAT_MINI);
|
if (oldAccount != null) {
|
||||||
|
String oldUserPhone = oldAccount.getPhone();
|
||||||
|
Assert.isTrue(oldUserPhone.equals(account.getPhone()), () -> Exceptions.clierr("手机号错误"));
|
||||||
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
AddUserParam addUserParam = BeanUtil.copyProperties(userRegisterParam, AddUserParam.class);
|
AddUserParam addUserParam = BeanUtil.copyProperties(userRegisterParam, AddUserParam.class);
|
||||||
addUserParam.setAccount(BeanUtil.copyProperties(userRegisterParam.getAccount(), AddUserAccountParam.class));
|
addUserParam.setAccount(BeanUtil.copyProperties(account, AddUserAccountParam.class));
|
||||||
Long userId = this.add(addUserParam);
|
Long userId = this.add(addUserParam);
|
||||||
|
|
||||||
UserRegisterParam.Company company = userRegisterParam.getCompany();
|
UserRegisterParam.Company company = userRegisterParam.getCompany();
|
||||||
|
|
@ -192,7 +193,6 @@ public class UserService extends ServiceImpl<UserMapper, UserEntity> implements
|
||||||
.copyProperties(company, AddBizCompanyParam.class)
|
.copyProperties(company, AddBizCompanyParam.class)
|
||||||
.setUserId(userId);
|
.setUserId(userId);
|
||||||
bizCompanyService.add(addBizCompanyParam);
|
bizCompanyService.add(addBizCompanyParam);
|
||||||
return SecurityUtil.registrationToken(userRegisterParam.getAccount().getUsername(), AuthWay.PASSWORD);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
||||||
|
|
@ -2,11 +2,24 @@
|
||||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||||
|
|
||||||
<mapper namespace="com.njzscloud.supervisory.sys.auth.mapper.AuthMapper">
|
<mapper namespace="com.njzscloud.supervisory.sys.auth.mapper.AuthMapper">
|
||||||
<select id="selectUser" resultType="com.njzscloud.common.security.support.UserDetail">
|
<resultMap id="selectUserMap" autoMapping="true" type="com.njzscloud.supervisory.sys.auth.pojo.result.MyResult">
|
||||||
|
<result property="accountId" column="account_id"/>
|
||||||
|
<result property="userId" column="user_id"/>
|
||||||
|
<result property="secret" column="secret"/>
|
||||||
|
<result property="nickname" column="nickname"/>
|
||||||
|
<result property="tenantId" column="tenant_id"/>
|
||||||
|
<result property="bizObj" column="biz_obj" typeHandler="com.njzscloud.common.mp.support.handler.e.EnumTypeHandlerDealer"/>
|
||||||
|
<result property="tenantName" column="tenant_name"/>
|
||||||
|
<result property="disabled" column="disabled"/>
|
||||||
|
</resultMap>
|
||||||
|
<select id="selectUser" resultMap="selectUserMap">
|
||||||
SELECT a.id account_id,
|
SELECT a.id account_id,
|
||||||
a.user_id,
|
a.user_id,
|
||||||
|
a.user_id id,
|
||||||
a.secret,
|
a.secret,
|
||||||
b.nickname,
|
b.nickname,
|
||||||
|
b.avatar,
|
||||||
|
b.phone,
|
||||||
b.tenant_id,
|
b.tenant_id,
|
||||||
b.biz_obj,
|
b.biz_obj,
|
||||||
c.tenant_name,
|
c.tenant_name,
|
||||||
|
|
|
||||||
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue