Commit b356d7ca authored by 王亮's avatar 王亮

temp commit(wechat_userinfo)

parent 5702f70c
...@@ -26,7 +26,7 @@ CREATE TABLE `xyqb_user`.`user_info` ( ...@@ -26,7 +26,7 @@ CREATE TABLE `xyqb_user`.`user_info` (
INDEX `idx_user_phone` (`phone_no` ASC) INDEX `idx_user_phone` (`phone_no` ASC)
); );
---微信用户登录表 ---微信用户登录表,app_id可能需要跟app_name进行洗
ALTER TABLE `xyqb_user`.`wechat_userinfo` ALTER TABLE `xyqb_user`.`wechat_userinfo`
ADD COLUMN `session_key` VARCHAR(255) NULL COMMENT '第三方sessionkey' AFTER `encrypted_phone_no`, ADD COLUMN `session_key` VARCHAR(255) NULL COMMENT '第三方sessionkey' AFTER `encrypted_phone_no`,
ADD COLUMN `tenant_id` INT NULL COMMENT '租户id' AFTER `session_key`, ADD COLUMN `tenant_id` INT NULL COMMENT '租户id' AFTER `session_key`,
......
...@@ -7,6 +7,8 @@ public class UserConstant { ...@@ -7,6 +7,8 @@ public class UserConstant {
public static final String USER_FREEZE_ERROR = "账号异常,已冻结。"; public static final String USER_FREEZE_ERROR = "账号异常,已冻结。";
public static final Integer defaultTenantId = 1028; public static final Integer defaultTenantId = 560761;
public static final String defaultTenantIdString = "1028"; public static final String defaultTenantIdString = "560761";
public static final String defaultAppId = "560761";
} }
package cn.quantgroup.xyqb.controller.internal.user; package cn.quantgroup.xyqb.controller.internal.user;
import cn.quantgroup.xyqb.constant.UserConstant;
import cn.quantgroup.xyqb.constant.enums.LoginType; import cn.quantgroup.xyqb.constant.enums.LoginType;
import cn.quantgroup.xyqb.aspect.accessable.IpValidator; import cn.quantgroup.xyqb.aspect.accessable.IpValidator;
import cn.quantgroup.xyqb.controller.IBaseController; import cn.quantgroup.xyqb.controller.IBaseController;
...@@ -71,7 +72,7 @@ public class AppController implements IBaseController { ...@@ -71,7 +72,7 @@ public class AppController implements IBaseController {
@RequestParam(required = false) Long registerFrom, @RequestParam(required = false) Long registerFrom,
@RequestParam(required = true) Long channelId, @RequestParam(required = true) Long channelId,
@RequestParam(required = true) String appChannel, @RequestParam(required = true) String appChannel,
@RequestParam(required = false) Integer tenantId, @RequestParam(value = "tenantId",defaultValue = UserConstant.defaultTenantIdString) Integer tenantId,
HttpServletRequest request) { HttpServletRequest request) {
if (TenantUtil.validationTenantIdIsNullOrZero(tenantId)) { if (TenantUtil.validationTenantIdIsNullOrZero(tenantId)) {
...@@ -84,7 +85,7 @@ public class AppController implements IBaseController { ...@@ -84,7 +85,7 @@ public class AppController implements IBaseController {
if (!ValidationUtil.validatePhoneNo(phoneNumber)) { if (!ValidationUtil.validatePhoneNo(phoneNumber)) {
result = JsonResult.buildErrorStateResult(USER_ERROR_OR_PASSWORD_ERROR, null); result = JsonResult.buildErrorStateResult(USER_ERROR_OR_PASSWORD_ERROR, null);
}else{ }else{
User user = userService.findByPhoneInDb(phoneNumber); User user = userService.findByPhoneInDb(phoneNumber,tenantId);
// 默认为已注册 // 默认为已注册
Boolean isRegister = false; Boolean isRegister = false;
if (user == null) { if (user == null) {
...@@ -104,7 +105,7 @@ public class AppController implements IBaseController { ...@@ -104,7 +105,7 @@ public class AppController implements IBaseController {
result = JsonResult.buildErrorStateResult("无效的商户", null); result = JsonResult.buildErrorStateResult("无效的商户", null);
}else{ }else{
LoginProperties loginProperties = new LoginProperties("", 4, channelId, registerFrom, appChannel, merchant.getId(), merchant.getName(), null); LoginProperties loginProperties = new LoginProperties("", 4, channelId, registerFrom, appChannel, merchant.getId(), merchant.getName(), null);
AuthBean bean = sessionService.createSession(user, loginProperties, LoginType.AUTHLOGIN.ordinal()); AuthBean bean = sessionService.createSession(user, loginProperties, LoginType.AUTHLOGIN.ordinal(),tenantId);
LoginInfo.LoginContext context = new LoginInfo.LoginContext(); LoginInfo.LoginContext context = new LoginInfo.LoginContext();
context.setChannelId(channelId); context.setChannelId(channelId);
context.setCreatedFrom(registerFrom); context.setCreatedFrom(registerFrom);
...@@ -152,12 +153,13 @@ public class AppController implements IBaseController { ...@@ -152,12 +153,13 @@ public class AppController implements IBaseController {
@RequestParam(required = false, defaultValue = "1") Long registerFrom, @RequestParam(required = false, defaultValue = "1") Long registerFrom,
@RequestParam(required = false, defaultValue = "1") Long channelId, @RequestParam(required = false, defaultValue = "1") Long channelId,
@RequestParam(required = false, defaultValue = "") String appChannel, @RequestParam(required = false, defaultValue = "") String appChannel,
@RequestParam(value = "tenantId",defaultValue = UserConstant.defaultTenantIdString) Integer tenantId,
HttpServletRequest request) { HttpServletRequest request) {
if (!ValidationUtil.validatePhoneNo(phoneNo)) { if (!ValidationUtil.validatePhoneNo(phoneNo)) {
return JsonResult.buildErrorStateResult(USER_ERROR_OR_PASSWORD_ERROR, null); return JsonResult.buildErrorStateResult(USER_ERROR_OR_PASSWORD_ERROR, null);
} }
log.info("第三方用户登录 [AppController] login --> loginFrom:{},channelId:{},btRegisterChannelId:{} requestIp:{},idNo:{},name:{}", registerFrom, channelId, btRegisterChannelId, IpUtil.getRemoteIP(request), idNo, name); log.info("第三方用户登录 [AppController] login --> loginFrom:{},channelId:{},btRegisterChannelId:{} requestIp:{},idNo:{},name:{}", registerFrom, channelId, btRegisterChannelId, IpUtil.getRemoteIP(request), idNo, name);
User user = userService.findByPhoneInDb(phoneNo); User user = userService.findByPhoneInDb(phoneNo,tenantId);
if (user == null) { if (user == null) {
user = userRegisterService.register(registerFrom, phoneNo, name, channelId, btRegisterChannelId); user = userRegisterService.register(registerFrom, phoneNo, name, channelId, btRegisterChannelId);
} }
...@@ -173,7 +175,7 @@ public class AppController implements IBaseController { ...@@ -173,7 +175,7 @@ public class AppController implements IBaseController {
} }
LoginProperties loginProperties = new LoginProperties("", 4, channelId, registerFrom, appChannel, merchant.getId(), merchant.getName(), null); LoginProperties loginProperties = new LoginProperties("", 4, channelId, registerFrom, appChannel, merchant.getId(), merchant.getName(), null);
AuthBean bean = sessionService.createSession(user, loginProperties, LoginType.SUPERLOGIN.ordinal()); AuthBean bean = sessionService.createSession(user, loginProperties, LoginType.SUPERLOGIN.ordinal(),tenantId);
log.info("第三方用户登录成功 [AppController] login --> loginFrom:{}, phoneNo:{},appChannel:{}", registerFrom, phoneNo, appChannel); log.info("第三方用户登录成功 [AppController] login --> loginFrom:{}, phoneNo:{},appChannel:{}", registerFrom, phoneNo, appChannel);
return JsonResult.buildSuccessResult("登录成功", bean); return JsonResult.buildSuccessResult("登录成功", bean);
} }
...@@ -206,7 +208,8 @@ public class AppController implements IBaseController { ...@@ -206,7 +208,8 @@ public class AppController implements IBaseController {
@RequestParam(required = false, defaultValue = "1") Long registerFrom, @RequestParam(required = false, defaultValue = "1") Long registerFrom,
@RequestParam(required = false, defaultValue = "1") Long channelId, @RequestParam(required = false, defaultValue = "1") Long channelId,
@RequestParam(required = false, defaultValue = "") String appChannel, @RequestParam(required = false, defaultValue = "") String appChannel,
@RequestParam(required = false) Integer tenantId, @RequestParam(value = "tenantId",defaultValue = UserConstant.defaultTenantIdString) Integer tenantId,
HttpServletRequest request) { HttpServletRequest request) {
if (TenantUtil.validationTenantIdIsNullOrZero(tenantId)) { if (TenantUtil.validationTenantIdIsNullOrZero(tenantId)) {
tenantId = TenantUtil.TENANT_DEFAULT; tenantId = TenantUtil.TENANT_DEFAULT;
...@@ -215,14 +218,14 @@ public class AppController implements IBaseController { ...@@ -215,14 +218,14 @@ public class AppController implements IBaseController {
return JsonResult.buildErrorStateResult(USER_ERROR_OR_PASSWORD_ERROR, null); return JsonResult.buildErrorStateResult(USER_ERROR_OR_PASSWORD_ERROR, null);
} }
log.info("第三方用户登录 [AppController] loginSuper --> loginFrom:{},phoneNo:{},appChannel:{},channelId:{},btRegisterChannelId:{} requestIp:{},idNo:{},name:{}", registerFrom, phoneNo, appChannel, channelId, btRegisterChannelId, IpUtil.getRemoteIP(request), idNo, name); log.info("第三方用户登录 [AppController] loginSuper --> loginFrom:{},phoneNo:{},appChannel:{},channelId:{},btRegisterChannelId:{} requestIp:{},idNo:{},name:{}", registerFrom, phoneNo, appChannel, channelId, btRegisterChannelId, IpUtil.getRemoteIP(request), idNo, name);
User user = userService.findByPhoneInDb(phoneNo); User user = userService.findByPhoneInDb(phoneNo,tenantId);
boolean isRegister=false; boolean isRegister=false;
if (user == null) { if (user == null) {
try { try {
user = userRegisterService.register(registerFrom, phoneNo, name, channelId, btRegisterChannelId); user = userRegisterService.register(registerFrom, phoneNo, name, channelId, btRegisterChannelId);
isRegister=true; isRegister=true;
} catch (PersistenceException e) { } catch (PersistenceException e) {
user = userService.findByPhoneInDb(phoneNo); user = userService.findByPhoneInDb(phoneNo,tenantId);
} }
} }
if (user == null) { if (user == null) {
...@@ -238,7 +241,7 @@ public class AppController implements IBaseController { ...@@ -238,7 +241,7 @@ public class AppController implements IBaseController {
log.info("=addLoginInfo end"); log.info("=addLoginInfo end");
LoginProperties loginProperties = new LoginProperties("", 4, channelId, registerFrom, appChannel, merchant.getId(), merchant.getName(), tenantId); LoginProperties loginProperties = new LoginProperties("", 4, channelId, registerFrom, appChannel, merchant.getId(), merchant.getName(), tenantId);
AuthBean bean = sessionService.createSession(user, loginProperties, LoginType.SUPERLOGIN.ordinal()); AuthBean bean = sessionService.createSession(user, loginProperties, LoginType.SUPERLOGIN.ordinal(),tenantId);
log.info("=createSession end"); log.info("=createSession end");
LoginInfo loginInfo = new LoginInfo(); LoginInfo loginInfo = new LoginInfo();
loginInfo.setUser(new UserRet(user)); loginInfo.setUser(new UserRet(user));
...@@ -316,7 +319,7 @@ public class AppController implements IBaseController { ...@@ -316,7 +319,7 @@ public class AppController implements IBaseController {
@RequestParam(required = false, defaultValue = "1") Long registerFrom, @RequestParam(required = false, defaultValue = "1") Long registerFrom,
@RequestParam(required = false, defaultValue = "1") Long channelId, @RequestParam(required = false, defaultValue = "1") Long channelId,
@RequestParam(required = false, defaultValue = "") String appChannel, @RequestParam(required = false, defaultValue = "") String appChannel,
@RequestParam(required = false) Integer tenantId, @RequestParam(value = "tenantId",defaultValue = UserConstant.defaultTenantIdString) Integer tenantId,
HttpServletRequest request) { HttpServletRequest request) {
//默认羊小咩租户 //默认羊小咩租户
if (TenantUtil.validationTenantIdIsNullOrZero(tenantId)) { if (TenantUtil.validationTenantIdIsNullOrZero(tenantId)) {
...@@ -326,7 +329,7 @@ public class AppController implements IBaseController { ...@@ -326,7 +329,7 @@ public class AppController implements IBaseController {
return JsonResult.buildErrorStateResult(USER_ERROR_OR_PASSWORD_ERROR, null); return JsonResult.buildErrorStateResult(USER_ERROR_OR_PASSWORD_ERROR, null);
} }
log.info("第三方用户登录 [AppController] login2 --> loginFrom:{},channelId:{}, requestIp:{}", registerFrom, channelId, IpUtil.getRemoteIP(request)); log.info("第三方用户登录 [AppController] login2 --> loginFrom:{},channelId:{}, requestIp:{}", registerFrom, channelId, IpUtil.getRemoteIP(request));
User user = userService.findByPhoneInDb(phoneNo); User user = userService.findByPhoneInDb(phoneNo,tenantId);
if (user == null) { if (user == null) {
return JsonResult.buildErrorStateResult(USER_ERROR_OR_PASSWORD_ERROR, null); return JsonResult.buildErrorStateResult(USER_ERROR_OR_PASSWORD_ERROR, null);
} }
...@@ -335,9 +338,9 @@ public class AppController implements IBaseController { ...@@ -335,9 +338,9 @@ public class AppController implements IBaseController {
} }
LoginProperties loginProperties = new LoginProperties("", 4, channelId, registerFrom, appChannel, null, "", tenantId); LoginProperties loginProperties = new LoginProperties("", 4, channelId, registerFrom, appChannel, null, "", tenantId);
AuthBean bean = sessionService.createSession(user, loginProperties, LoginType.SUPERLOGINTWO.ordinal()); AuthBean bean = sessionService.createSession(user, loginProperties, LoginType.SUPERLOGINTWO.ordinal(),tenantId);
// 不同渠道用户补签不同模板合同 // 不同渠道用户补签不同模板合同
userService.channelUserSignContract(user, registerFrom); userService.channelUserSignContract(user, registerFrom,tenantId);
log.info("第三方用户登录成功 [AppController] login2 --> loginFrom:{}, phoneNo:{},appChannel:{}", registerFrom, phoneNo, appChannel); log.info("第三方用户登录成功 [AppController] login2 --> loginFrom:{}, phoneNo:{},appChannel:{}", registerFrom, phoneNo, appChannel);
return JsonResult.buildSuccessResult("登录成功", bean); return JsonResult.buildSuccessResult("登录成功", bean);
} }
......
...@@ -55,7 +55,7 @@ public class SyncUserController { ...@@ -55,7 +55,7 @@ public class SyncUserController {
return JsonResult.buildErrorStateResult("姓名错误", name); return JsonResult.buildErrorStateResult("姓名错误", name);
} }
User user = userService.findByPhoneWithCache(phoneNo); User user = userService.findByPhoneWithCache(phoneNo,tenantId);
if (Objects.isNull(user)) { if (Objects.isNull(user)) {
log.error("用户不存在,phoneNo:{}", phoneNo); log.error("用户不存在,phoneNo:{}", phoneNo);
return JsonResult.buildErrorStateResult("用户不存在", phoneNo); return JsonResult.buildErrorStateResult("用户不存在", phoneNo);
...@@ -95,7 +95,7 @@ public class SyncUserController { ...@@ -95,7 +95,7 @@ public class SyncUserController {
if (!Objects.equals(KEY, key) || !ValidationUtil.validatePhoneNo(phoneNo)) { if (!Objects.equals(KEY, key) || !ValidationUtil.validatePhoneNo(phoneNo)) {
return JsonResult.buildErrorStateResult(null, null); return JsonResult.buildErrorStateResult(null, null);
} }
User user = userService.findByPhoneInDb(phoneNo); User user = userService.findByPhoneInDb(phoneNo,tenantId);
if (Objects.isNull(user)) { if (Objects.isNull(user)) {
return JsonResult.buildErrorStateResult(null, null); return JsonResult.buildErrorStateResult(null, null);
} }
...@@ -112,7 +112,7 @@ public class SyncUserController { ...@@ -112,7 +112,7 @@ public class SyncUserController {
if (StringUtils.isEmpty(uuid)) { if (StringUtils.isEmpty(uuid)) {
return JsonResult.buildErrorStateResult(null, null); return JsonResult.buildErrorStateResult(null, null);
} }
User user = userService.findByUuidWithCache(uuid); User user = userService.findByUuidWithCache(uuid,tenantId);
if (null == user) { if (null == user) {
return JsonResult.buildErrorStateResult(null, null); return JsonResult.buildErrorStateResult(null, null);
} }
......
...@@ -2,6 +2,7 @@ package cn.quantgroup.xyqb.controller.internal.user; ...@@ -2,6 +2,7 @@ package cn.quantgroup.xyqb.controller.internal.user;
import cn.quantgroup.xyqb.Constants; import cn.quantgroup.xyqb.Constants;
import cn.quantgroup.xyqb.aspect.accessable.IpValidator; import cn.quantgroup.xyqb.aspect.accessable.IpValidator;
import cn.quantgroup.xyqb.constant.UserConstant;
import cn.quantgroup.xyqb.entity.User; import cn.quantgroup.xyqb.entity.User;
import cn.quantgroup.xyqb.exception.VerificationCodeErrorException; import cn.quantgroup.xyqb.exception.VerificationCodeErrorException;
import cn.quantgroup.xyqb.model.JsonResult; import cn.quantgroup.xyqb.model.JsonResult;
...@@ -39,11 +40,11 @@ public class UserApiController { ...@@ -39,11 +40,11 @@ public class UserApiController {
private ISmsService smsService; private ISmsService smsService;
@RequestMapping("/user/is_passwd_set") @RequestMapping("/user/is_passwd_set")
public JsonResult isPasswordSet(String phoneNo) { public JsonResult isPasswordSet(String phoneNo , @RequestParam(value = "tenantId",defaultValue = UserConstant.defaultTenantIdString) Integer tenantId) {
if (StringUtils.isEmpty(phoneNo)) { if (StringUtils.isEmpty(phoneNo)) {
return JsonResult.buildErrorStateResult(null, null); return JsonResult.buildErrorStateResult(null, null);
} }
User user = userService.findByPhoneWithCache(phoneNo); User user = userService.findByPhoneWithCache(phoneNo,tenantId);
if (null == user) { if (null == user) {
return JsonResult.buildErrorStateResult(null, null); return JsonResult.buildErrorStateResult(null, null);
} }
...@@ -66,7 +67,7 @@ public class UserApiController { ...@@ -66,7 +67,7 @@ public class UserApiController {
public JsonResult checkToken( public JsonResult checkToken(
@PathVariable("token") String token, @PathVariable("token") String token,
@RequestParam(name = "prolong", required = false, defaultValue = "false") Boolean prolong, @RequestParam(name = "prolong", required = false, defaultValue = "false") Boolean prolong,
@RequestParam(name = "prolongTime", required = false, defaultValue = "86400") Long prolongTime) { @RequestParam(name = "prolongTime", required = false, defaultValue = "86400") Long prolongTime , @RequestParam(value = "tenantId",defaultValue = UserConstant.defaultTenantIdString) Integer tenantId) {
if (Objects.isNull(token) || !ValidationUtil.validateToken(token)) { if (Objects.isNull(token) || !ValidationUtil.validateToken(token)) {
return JsonResult.buildErrorStateResult("token regular invalid ", token); return JsonResult.buildErrorStateResult("token regular invalid ", token);
} }
...@@ -86,7 +87,7 @@ public class UserApiController { ...@@ -86,7 +87,7 @@ public class UserApiController {
} else { } else {
/* 延续session生命期 */ /* 延续session生命期 */
try { try {
sessionService.persistSession(sessionStruct.getSid(), sessionStruct.getValues(), prolongTime); sessionService.persistSession(sessionStruct.getSid(), sessionStruct.getValues(), prolongTime,tenantId);
log.info("延续token:[{}]生命期,result:[{}]", token, true); log.info("延续token:[{}]生命期,result:[{}]", token, true);
} finally { } finally {
XyqbSessionContextHolder.releaseSession(); XyqbSessionContextHolder.releaseSession();
......
...@@ -82,12 +82,12 @@ public class UserCenterController { ...@@ -82,12 +82,12 @@ public class UserCenterController {
* @return * @return
*/ */
@RequestMapping("/queryNick") @RequestMapping("/queryNick")
public JsonResult queryUserNick(String phoneNo) { public JsonResult queryUserNick(String phoneNo , @RequestParam(value = "tenantId",defaultValue = UserConstant.defaultTenantIdString) Integer tenantId) {
if (StringUtils.isEmpty(phoneNo)) { if (StringUtils.isEmpty(phoneNo)) {
log.error("手机号为空,phoneNo:{}", phoneNo); log.error("手机号为空,phoneNo:{}", phoneNo);
return JsonResult.buildErrorStateResult("参数不合法", null); return JsonResult.buildErrorStateResult("参数不合法", null);
} }
Long userId = queryUserId(phoneNo); Long userId = queryUserId(phoneNo,tenantId);
if (null == userId || userId == 0L) { if (null == userId || userId == 0L) {
return JsonResult.buildErrorStateResult("该用户不存在", null); return JsonResult.buildErrorStateResult("该用户不存在", null);
} }
...@@ -107,12 +107,12 @@ public class UserCenterController { ...@@ -107,12 +107,12 @@ public class UserCenterController {
* @return * @return
*/ */
@RequestMapping("/saveNick") @RequestMapping("/saveNick")
public JsonResult saveUserNick(String phoneNo, String nick) { public JsonResult saveUserNick(String phoneNo, String nick , @RequestParam(value = "tenantId",defaultValue = UserConstant.defaultTenantIdString) Integer tenantId) {
if (StringUtils.isEmpty(phoneNo)) { if (StringUtils.isEmpty(phoneNo)) {
log.error("手机号为空,phoneNo:{}", phoneNo); log.error("手机号为空,phoneNo:{}", phoneNo);
return JsonResult.buildErrorStateResult("参数不合法", null); return JsonResult.buildErrorStateResult("参数不合法", null);
} }
Long userId = queryUserId(phoneNo); Long userId = queryUserId(phoneNo,tenantId);
if (null == userId || userId == 0L) { if (null == userId || userId == 0L) {
return JsonResult.buildErrorStateResult("该用户不存在", null); return JsonResult.buildErrorStateResult("该用户不存在", null);
} }
...@@ -154,12 +154,12 @@ public class UserCenterController { ...@@ -154,12 +154,12 @@ public class UserCenterController {
* @return * @return
*/ */
@RequestMapping("/save/avatar") @RequestMapping("/save/avatar")
public JsonResult SaveUserAvatarAddr(String phoneNo, String avatarUrl) { public JsonResult SaveUserAvatarAddr(String phoneNo, String avatarUrl , @RequestParam(value = "tenantId",defaultValue = UserConstant.defaultTenantIdString) Integer tenantId) {
if (StringUtils.isBlank(avatarUrl) || StringUtils.isBlank(phoneNo)) { if (StringUtils.isBlank(avatarUrl) || StringUtils.isBlank(phoneNo)) {
log.error("参数不合法:avatarUrl:{}, phoneNo:{}", avatarUrl, phoneNo); log.error("参数不合法:avatarUrl:{}, phoneNo:{}", avatarUrl, phoneNo);
return JsonResult.buildErrorStateResult("参数不合法", null); return JsonResult.buildErrorStateResult("参数不合法", null);
} }
Long userId = queryUserId(phoneNo); Long userId = queryUserId(phoneNo,tenantId);
if (null == userId || userId == 0L) { if (null == userId || userId == 0L) {
return JsonResult.buildErrorStateResult("该用户不存在", null); return JsonResult.buildErrorStateResult("该用户不存在", null);
} }
...@@ -186,7 +186,7 @@ public class UserCenterController { ...@@ -186,7 +186,7 @@ public class UserCenterController {
log.error("手机号为空,phoneNo:{}", phoneNo); log.error("手机号为空,phoneNo:{}", phoneNo);
return JsonResult.buildErrorStateResult("参数不合法", null); return JsonResult.buildErrorStateResult("参数不合法", null);
} }
Long userId = queryUserId(phoneNo); Long userId = queryUserId(phoneNo,tenantId);
if (null == userId || userId == 0L) { if (null == userId || userId == 0L) {
return JsonResult.buildErrorStateResult("该用户不存在", null); return JsonResult.buildErrorStateResult("该用户不存在", null);
} }
...@@ -207,12 +207,12 @@ public class UserCenterController { ...@@ -207,12 +207,12 @@ public class UserCenterController {
@AccessForbiddenValidator @AccessForbiddenValidator
@PasswordFreeAccessValidator @PasswordFreeAccessValidator
@RequestMapping("/personalData") @RequestMapping("/personalData")
public JsonResult personalData(String phoneNo) { public JsonResult personalData(String phoneNo , @RequestParam(value = "tenantId",defaultValue = UserConstant.defaultTenantIdString) Integer tenantId) {
if (StringUtils.isBlank(phoneNo)) { if (StringUtils.isBlank(phoneNo)) {
log.error("手机号为空,phoneNo:{}", phoneNo); log.error("手机号为空,phoneNo:{}", phoneNo);
return JsonResult.buildErrorStateResult("参数不合法", null); return JsonResult.buildErrorStateResult("参数不合法", null);
} }
Long userId = queryUserId(phoneNo); Long userId = queryUserId(phoneNo,tenantId);
if (null == userId || userId == 0L) { if (null == userId || userId == 0L) {
return JsonResult.buildErrorStateResult("该用户不存在", null); return JsonResult.buildErrorStateResult("该用户不存在", null);
} }
...@@ -229,8 +229,8 @@ public class UserCenterController { ...@@ -229,8 +229,8 @@ public class UserCenterController {
* @param phoneNo * @param phoneNo
* @return * @return
*/ */
private Long queryUserId(String phoneNo) { private Long queryUserId(String phoneNo,Integer tenantId) {
User user = userService.findByPhoneInDb(phoneNo); User user = userService.findByPhoneInDb(phoneNo,tenantId);
return null == user ? null : user.getId(); return null == user ? null : user.getId();
} }
......
package cn.quantgroup.xyqb.controller.middleoffice.applet; package cn.quantgroup.xyqb.controller.middleoffice.applet;
import cn.quantgroup.xyqb.constant.UserConstant;
import cn.quantgroup.xyqb.controller.middleoffice.login.ILoginModule; import cn.quantgroup.xyqb.controller.middleoffice.login.ILoginModule;
import cn.quantgroup.xyqb.controller.middleoffice.login.LoginVo; import cn.quantgroup.xyqb.controller.middleoffice.login.LoginVo;
import cn.quantgroup.xyqb.entity.middleoffice.AppletParamEntry; import cn.quantgroup.xyqb.entity.middleoffice.AppletParamEntry;
...@@ -64,12 +65,12 @@ public class AppletController { ...@@ -64,12 +65,12 @@ public class AppletController {
*/ */
@Validated @Validated
@PostMapping("/login") @PostMapping("/login")
public JsonResult login(@RequestParam String appName, @RequestParam String openId, @RequestParam(required = false) Integer tenantId, String utmSource, @RequestParam(required = false) Integer appNo, @RequestParam(required = false) String unionId) { public JsonResult login(@RequestParam String appName, @RequestParam String openId, @RequestParam(required = false) Integer tenantId, String utmSource, @RequestParam(required = false) Integer appNo, @RequestParam(required = false) String unionId, @RequestParam(value = "appId",defaultValue = UserConstant.defaultAppId) String appId) {
if (!containsAppName(appName)) { if (!containsAppName(appName)) {
throw new DataException("appName不合法"); throw new DataException("appName不合法");
} }
LoginVo login = iAppletService.login(appName, openId, tenantId, utmSource, unionId); LoginVo login = iAppletService.login(appName, openId, tenantId, utmSource, unionId,appId);
return JsonResult.buildSuccessResultGeneric(login); return JsonResult.buildSuccessResultGeneric(login);
} }
......
...@@ -7,9 +7,9 @@ public interface ILoginModule { ...@@ -7,9 +7,9 @@ public interface ILoginModule {
LoginVo login(VerifyTypeEnum type, Boolean reg, LoginVo login(VerifyTypeEnum type, Boolean reg,
Long channelId, String appChannel, Long channelId, String appChannel,
String wechatOpenId, String phoneNo, String wechatOpenId, String phoneNo,
String verify); String verify,Integer tenantId);
Boolean modifyPwd(VerifyTypeEnum type, String phoneNo, String password, String verify); Boolean modifyPwd(VerifyTypeEnum type, String phoneNo, String password, String verify,Integer tenantId);
LoginVo loginByUserId(Long channelId, String appChannel, Long userId, Integer tenantId); LoginVo loginByUserId(Long channelId, String appChannel, Long userId, Integer tenantId);
} }
package cn.quantgroup.xyqb.controller.middleoffice.login; package cn.quantgroup.xyqb.controller.middleoffice.login;
import cn.quantgroup.xyqb.constant.UserConstant;
import cn.quantgroup.xyqb.controller.middleoffice.common.VerifyTypeEnum; import cn.quantgroup.xyqb.controller.middleoffice.common.VerifyTypeEnum;
import cn.quantgroup.xyqb.model.JsonResult; import cn.quantgroup.xyqb.model.JsonResult;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
...@@ -26,21 +27,21 @@ public class LoginController { ...@@ -26,21 +27,21 @@ public class LoginController {
@RequestParam(required = false) String appChannel, @RequestParam(required = false) String appChannel,
@RequestParam(required = false) String wechatOpenId, @RequestParam(required = false) String wechatOpenId,
@RequestParam String phoneNo, @RequestParam String phoneNo,
@RequestParam(required = false) String verify @RequestParam(required = false) String verify,@RequestParam(value = "tenantId",defaultValue = UserConstant.defaultTenantIdString) Integer tenantId
) { ) {
LoginVo login = loginModule.login(type, autoReg, channelId, appChannel, wechatOpenId, phoneNo, verify); LoginVo login = loginModule.login(type, autoReg, channelId, appChannel, wechatOpenId, phoneNo, verify,tenantId);
return JsonResult.buildSuccessResultGeneric(login); return JsonResult.buildSuccessResultGeneric(login);
} }
@PatchMapping("/modify/pwd") @PatchMapping("/modify/pwd")
public JsonResult modifyByPwd(String phoneNo, String password, String passwordNew) { public JsonResult modifyByPwd(String phoneNo, String password, String passwordNew,@RequestParam(value = "tenantId",defaultValue = UserConstant.defaultTenantIdString) Integer tenantId) {
loginModule.modifyPwd(VerifyTypeEnum.pwd, phoneNo, password, passwordNew); loginModule.modifyPwd(VerifyTypeEnum.pwd, phoneNo, password, passwordNew,tenantId);
return JsonResult.buildSuccessResult(); return JsonResult.buildSuccessResult();
} }
@PatchMapping("/modify/sms") @PatchMapping("/modify/sms")
public JsonResult modifyBySms(String phoneNo, String password, String verificationCode) { public JsonResult modifyBySms(String phoneNo, String password, String verificationCode,@RequestParam(value = "tenantId",defaultValue = UserConstant.defaultTenantIdString) Integer tenantId) {
loginModule.modifyPwd(VerifyTypeEnum.sms, phoneNo, password, verificationCode); loginModule.modifyPwd(VerifyTypeEnum.sms, phoneNo, password, verificationCode,tenantId);
return JsonResult.buildSuccessResult(); return JsonResult.buildSuccessResult();
} }
......
...@@ -35,8 +35,8 @@ public class LoginModule implements ILoginModule { ...@@ -35,8 +35,8 @@ public class LoginModule implements ILoginModule {
private ISessionService sessionService; private ISessionService sessionService;
@Override @Override
public LoginVo login(VerifyTypeEnum type, Boolean reg, Long channelId, String appChannel, String wechatOpenId, String phoneNo, String verify) { public LoginVo login(VerifyTypeEnum type, Boolean reg, Long channelId, String appChannel, String wechatOpenId, String phoneNo, String verify,Integer tenantId) {
User user = userService.findByPhoneInDb(phoneNo); User user = userService.findByPhoneInDb(phoneNo,tenantId);
boolean autoReg = reg && type != VerifyTypeEnum.pwd; boolean autoReg = reg && type != VerifyTypeEnum.pwd;
//auto reg //auto reg
if (user == null) { if (user == null) {
...@@ -64,7 +64,7 @@ public class LoginModule implements ILoginModule { ...@@ -64,7 +64,7 @@ public class LoginModule implements ILoginModule {
.channelId(channelId) .channelId(channelId)
.merchantName("xyqb") .merchantName("xyqb")
.build(); .build();
AuthBean session = sessionService.createSession(user, loginProperties, LoginType.ACCOUNTPASSWORD.ordinal()); AuthBean session = sessionService.createSession(user, loginProperties, LoginType.ACCOUNTPASSWORD.ordinal(),tenantId);
return LoginVo.builder() return LoginVo.builder()
.hasPassword(user.getHasPassword()) .hasPassword(user.getHasPassword())
.phoneNo(phoneNo) .phoneNo(phoneNo)
...@@ -74,20 +74,20 @@ public class LoginModule implements ILoginModule { ...@@ -74,20 +74,20 @@ public class LoginModule implements ILoginModule {
} }
@Override @Override
public Boolean modifyPwd(VerifyTypeEnum type, String phoneNo, String password, String verify) { public Boolean modifyPwd(VerifyTypeEnum type, String phoneNo, String password, String verify,Integer tenantId) {
User user = userService.findByPhoneInDb(phoneNo); User user = userService.findByPhoneInDb(phoneNo,tenantId);
if (user == null) { if (user == null) {
//todo 自定义异常 //todo 自定义异常
throw new DataException("用户不存在"); throw new DataException("用户不存在");
} }
VerifyStrategyFactory.get(type).verify(user, verify); VerifyStrategyFactory.get(type).verify(user, verify);
userService.resetPassword(phoneNo, password); userService.resetPassword(phoneNo, password,tenantId);
return true; return true;
} }
@Override @Override
public LoginVo loginByUserId(Long channelId, String appChannel, Long userId, Integer tenantId) { public LoginVo loginByUserId(Long channelId, String appChannel, Long userId, Integer tenantId) {
User user = userService.findById(userId); User user = userService.findById(userId,tenantId);
if(null == user){ if(null == user){
throw new DataException("未找到此用户"); throw new DataException("未找到此用户");
} }
...@@ -97,7 +97,7 @@ public class LoginModule implements ILoginModule { ...@@ -97,7 +97,7 @@ public class LoginModule implements ILoginModule {
.channelId(channelId) .channelId(channelId)
.tenantId(tenantId) .tenantId(tenantId)
.build(); .build();
AuthBean session = sessionService.createSession(user, loginProperties, LoginType.APPLETLOGIN.ordinal()); AuthBean session = sessionService.createSession(user, loginProperties, LoginType.APPLETLOGIN.ordinal(),tenantId);
return LoginVo.builder() return LoginVo.builder()
.hasPassword(user.getHasPassword()) .hasPassword(user.getHasPassword())
.phoneNo(user.getPhoneNo()) .phoneNo(user.getPhoneNo())
......
package cn.quantgroup.xyqb.controller.middleoffice.user; package cn.quantgroup.xyqb.controller.middleoffice.user;
import cn.quantgroup.xyqb.constant.UserConstant;
import cn.quantgroup.xyqb.entity.User; import cn.quantgroup.xyqb.entity.User;
import cn.quantgroup.xyqb.event.DisableActiveEvent; import cn.quantgroup.xyqb.event.DisableActiveEvent;
import cn.quantgroup.xyqb.model.JsonResult; import cn.quantgroup.xyqb.model.JsonResult;
...@@ -34,8 +35,8 @@ public class UserController { ...@@ -34,8 +35,8 @@ public class UserController {
private ISessionService sessionService; private ISessionService sessionService;
@PutMapping("/enable/{userId}") @PutMapping("/enable/{userId}")
public JsonResult enable(@PathVariable Long userId) { public JsonResult enable(@PathVariable Long userId , @RequestParam(value = "tenantId",defaultValue = UserConstant.defaultTenantIdString) Integer tenantId) {
User user = userService.findById(userId); User user = userService.findById(userId,tenantId);
if (user == null) { if (user == null) {
//todo 用户不存在,怎么处理 //todo 用户不存在,怎么处理
return JsonResult.buildSuccessResult(); return JsonResult.buildSuccessResult();
...@@ -48,8 +49,8 @@ public class UserController { ...@@ -48,8 +49,8 @@ public class UserController {
} }
@PutMapping("/disable/{userId}") @PutMapping("/disable/{userId}")
public JsonResult disable(@PathVariable Long userId) { public JsonResult disable(@PathVariable Long userId , @RequestParam(value = "tenantId",defaultValue = UserConstant.defaultTenantIdString) Integer tenantId) {
User user = userService.findById(userId); User user = userService.findById(userId,tenantId);
if (user == null) { if (user == null) {
//todo 用户不存在,怎么处理 //todo 用户不存在,怎么处理
return JsonResult.buildSuccessResult(); return JsonResult.buildSuccessResult();
...@@ -59,7 +60,7 @@ public class UserController { ...@@ -59,7 +60,7 @@ public class UserController {
userService.saveUser(user); userService.saveUser(user);
// 清除token缓存 // 清除token缓存
/* 清空session */ /* 清空session */
sessionService.deleteByUserId(user.getId()); sessionService.deleteByUserId(user.getId(),tenantId);
//通知消息中心 //通知消息中心
applicationEventPublisher.publishEvent(new DisableActiveEvent(this, user)); applicationEventPublisher.publishEvent(new DisableActiveEvent(this, user));
...@@ -67,23 +68,23 @@ public class UserController { ...@@ -67,23 +68,23 @@ public class UserController {
} }
@GetMapping("/userId/{userId}") @GetMapping("/userId/{userId}")
public JsonResult user(@PathVariable Long userId) { public JsonResult user(@PathVariable Long userId , @RequestParam(value = "tenantId",defaultValue = UserConstant.defaultTenantIdString) Integer tenantId) {
User user = userService.findById(userId); User user = userService.findById(userId,tenantId);
//TODO convert to userVO //TODO convert to userVO
return JsonResult.buildSuccessResultGeneric(user); return JsonResult.buildSuccessResultGeneric(user);
} }
@GetMapping("/phoneNo/{phoneNo}") @GetMapping("/phoneNo/{phoneNo}")
public JsonResult user(@PathVariable String phoneNo) { public JsonResult user(@PathVariable String phoneNo , @RequestParam(value = "tenantId",defaultValue = UserConstant.defaultTenantIdString) Integer tenantId) {
User user = userService.findByPhoneInDb(phoneNo); User user = userService.findByPhoneInDb(phoneNo,tenantId);
//TODO convert to userVO //TODO convert to userVO
return JsonResult.buildSuccessResultGeneric(user); return JsonResult.buildSuccessResultGeneric(user);
} }
@GetMapping("/uuid/{uuid}") @GetMapping("/uuid/{uuid}")
public JsonResult uuid(@PathVariable String uuid) { public JsonResult uuid(@PathVariable String uuid , @RequestParam(value = "tenantId",defaultValue = UserConstant.defaultTenantIdString) Integer tenantId) {
User user = userService.findByUuidWithCache(uuid); User user = userService.findByUuidWithCache(uuid,tenantId);
//TODO convert to userVO //TODO convert to userVO
return JsonResult.buildSuccessResultGeneric(user); return JsonResult.buildSuccessResultGeneric(user);
} }
......
...@@ -63,7 +63,7 @@ public class UserDetailController { ...@@ -63,7 +63,7 @@ public class UserDetailController {
if (userDetail != null) { if (userDetail != null) {
return JsonResult.buildSuccessResultGeneric(userDetail); return JsonResult.buildSuccessResultGeneric(userDetail);
} }
User user = userService.findById(userId); User user = userService.findById(userId,tenantId);
userDetail = new UserInfoEntity(); userDetail = new UserInfoEntity();
userDetail.setUserId(userId); userDetail.setUserId(userId);
......
package cn.quantgroup.xyqb.controller.middleoffice.wx; package cn.quantgroup.xyqb.controller.middleoffice.wx;
import cn.quantgroup.xyqb.constant.UserConstant;
import cn.quantgroup.xyqb.entity.WechatUserInfo; import cn.quantgroup.xyqb.entity.WechatUserInfo;
import cn.quantgroup.xyqb.model.JsonResult; import cn.quantgroup.xyqb.model.JsonResult;
import cn.quantgroup.xyqb.service.user.IUserService; import cn.quantgroup.xyqb.service.user.IUserService;
...@@ -36,7 +37,7 @@ public class WxController { ...@@ -36,7 +37,7 @@ public class WxController {
@GetMapping("/userId/{userId}") @GetMapping("/userId/{userId}")
public JsonResult openId(@PathVariable Long userId, @RequestParam(required = false) Integer tenantId) { public JsonResult openId(@PathVariable Long userId, @RequestParam(required = false) Integer tenantId) {
String openId = null; String openId = null;
WechatUserInfo wechatUserInfo = wechatService.queryByUserId(userId); WechatUserInfo wechatUserInfo = wechatService.queryByUserId(userId,tenantId);
if (wechatUserInfo != null) { if (wechatUserInfo != null) {
openId = wechatUserInfo.getOpenId(); openId = wechatUserInfo.getOpenId();
} }
...@@ -52,7 +53,7 @@ public class WxController { ...@@ -52,7 +53,7 @@ public class WxController {
*/ */
@GetMapping("/userId/{userId}/{appName}") @GetMapping("/userId/{userId}/{appName}")
public JsonResult openId(@PathVariable Long userId, @PathVariable String appName, @RequestParam(required = false) Integer tenantId) { public JsonResult openId(@PathVariable Long userId, @PathVariable String appName, @RequestParam(required = false) Integer tenantId) {
WechatUserInfo wechatUserInfo = wechatService.queryByUserId(userId, appName); WechatUserInfo wechatUserInfo = wechatService.queryByUserId(userId, tenantId);
if (wechatUserInfo == null) { if (wechatUserInfo == null) {
return JsonResult.buildSuccessResult(); return JsonResult.buildSuccessResult();
} }
...@@ -67,7 +68,7 @@ public class WxController { ...@@ -67,7 +68,7 @@ public class WxController {
*/ */
@GetMapping("/phoneNo/{phoneNo}") @GetMapping("/phoneNo/{phoneNo}")
public JsonResult openId(@PathVariable String phoneNo, @RequestParam(required = false) Integer tenantId) { public JsonResult openId(@PathVariable String phoneNo, @RequestParam(required = false) Integer tenantId) {
WechatUserInfo wechatUserInfo = wechatService.findWechatUserInfoByPhoneNo(phoneNo); WechatUserInfo wechatUserInfo = wechatService.findWechatUserInfoByPhoneNo(phoneNo,tenantId);
if (wechatUserInfo == null) { if (wechatUserInfo == null) {
return JsonResult.buildSuccessResult(); return JsonResult.buildSuccessResult();
} }
...@@ -81,8 +82,8 @@ public class WxController { ...@@ -81,8 +82,8 @@ public class WxController {
} }
@PatchMapping("/forbidden/{userId}") @PatchMapping("/forbidden/{userId}")
public JsonResult forbidden(@PathVariable Long userId, String reason) { public JsonResult forbidden(@PathVariable Long userId, String reason,@RequestParam(value = "tenantId",defaultValue = UserConstant.defaultTenantIdString) Integer tenantId) {
int res = wechatService.forbiddenUserWeChat(userId); int res = wechatService.forbiddenUserWeChat(userId,tenantId);
log.info("取消微信关联 userId:{},reason:{},结果:{}", userId, reason, res); log.info("取消微信关联 userId:{},reason:{},结果:{}", userId, reason, res);
return JsonResult.buildSuccessResultGeneric(res); return JsonResult.buildSuccessResultGeneric(res);
} }
...@@ -91,7 +92,7 @@ public class WxController { ...@@ -91,7 +92,7 @@ public class WxController {
* *
*/ */
@PostMapping("/v1/getByOpenIdToUserIds") @PostMapping("/v1/getByOpenIdToUserIds")
public JsonResult getByOpenIdToUserIds(@RequestBody Map<String, Object> params, @RequestParam(required = false, defaultValue = "wuxi") String appName) { public JsonResult getByOpenIdToUserIds(@RequestBody Map<String, Object> params, @RequestParam(required = false, defaultValue = "wuxi") String appName,@RequestParam(value = "tenantId",defaultValue = UserConstant.defaultTenantIdString) Integer tenantId) {
log.info("根据userIds获取用户的openId {}, appName:{}", params, appName); log.info("根据userIds获取用户的openId {}, appName:{}", params, appName);
List<Integer> userIds = (List<Integer>) params.get("userIds"); List<Integer> userIds = (List<Integer>) params.get("userIds");
if (userIds.isEmpty()) { if (userIds.isEmpty()) {
...@@ -102,7 +103,7 @@ public class WxController { ...@@ -102,7 +103,7 @@ public class WxController {
} }
List<Long> userIdList = userIds.stream().map(userId -> Long.parseLong(userId.toString())).collect(Collectors.toList()); List<Long> userIdList = userIds.stream().map(userId -> Long.parseLong(userId.toString())).collect(Collectors.toList());
List<WechatUserInfo> wechatUserInfoList = wechatService.queryByUserIdsAndAppName(userIdList, appName); List<WechatUserInfo> wechatUserInfoList = wechatService.queryByUserIdsAndAppName(userIdList, appName,tenantId);
if (wechatUserInfoList.isEmpty()) { if (wechatUserInfoList.isEmpty()) {
return JsonResult.buildSuccessResult(); return JsonResult.buildSuccessResult();
} }
......
package cn.quantgroup.xyqb.controller.modifyphoneno; package cn.quantgroup.xyqb.controller.modifyphoneno;
import cn.quantgroup.xyqb.constant.UserConstant;
import cn.quantgroup.xyqb.controller.IBaseController; import cn.quantgroup.xyqb.controller.IBaseController;
import cn.quantgroup.xyqb.controller.modifyphoneno.req.*; import cn.quantgroup.xyqb.controller.modifyphoneno.req.*;
import cn.quantgroup.xyqb.controller.modifyphoneno.req.ModifyPhoneRecord.UserClient; import cn.quantgroup.xyqb.controller.modifyphoneno.req.ModifyPhoneRecord.UserClient;
...@@ -51,12 +52,12 @@ public class ModifyPhoneNoController implements IBaseController { ...@@ -51,12 +52,12 @@ public class ModifyPhoneNoController implements IBaseController {
* @return * @return
*/ */
@PostMapping("/step_1") @PostMapping("/step_1")
public JsonResult step1(@Valid @RequestBody Step1Req step1Req) { public JsonResult step1(@Valid @RequestBody Step1Req step1Req,@RequestParam(value = "tenantId",defaultValue = UserConstant.defaultTenantIdString) Integer tenantId) {
User user = getCurrentUserFromRedis(); User user = getCurrentUserFromRedis();
if (user == null) { if (user == null) {
return JsonResult.buildErrorStateResult("系统错误", null); return JsonResult.buildErrorStateResult("系统错误", null);
} }
return JsonResult.buildSuccessResultGeneric(modifyPhoneNoService.saveStep1(user.getId(), step1Req)); return JsonResult.buildSuccessResultGeneric(modifyPhoneNoService.saveStep1(user.getId(), step1Req,tenantId));
} }
/** /**
...@@ -91,8 +92,8 @@ public class ModifyPhoneNoController implements IBaseController { ...@@ -91,8 +92,8 @@ public class ModifyPhoneNoController implements IBaseController {
* 后台客服处理功能 - 人工审核 * 后台客服处理功能 - 人工审核
*/ */
@PostMapping("/audit") @PostMapping("/audit")
public JsonResult audit(@Valid @RequestBody AuditReq auditReq) { public JsonResult audit(@Valid @RequestBody AuditReq auditReq,@RequestParam(value = "tenantId",defaultValue = UserConstant.defaultTenantIdString) Integer tenantId) {
modifyPhoneNoService.audit(auditReq); modifyPhoneNoService.audit(auditReq,tenantId);
return JsonResult.buildSuccessResult(); return JsonResult.buildSuccessResult();
} }
...@@ -161,8 +162,8 @@ public class ModifyPhoneNoController implements IBaseController { ...@@ -161,8 +162,8 @@ public class ModifyPhoneNoController implements IBaseController {
} }
@PostMapping("/rejectReason/save") @PostMapping("/rejectReason/save")
public JsonResult saveRejectReason(@Valid @RequestBody ModifyRejectRecord modifyRejectRecord){ public JsonResult saveRejectReason(@Valid @RequestBody ModifyRejectRecord modifyRejectRecord,@RequestParam(value = "tenantId",defaultValue = UserConstant.defaultTenantIdString) Integer tenantId){
modifyPhoneNoService.saveRejectReason(modifyRejectRecord); modifyPhoneNoService.saveRejectReason(modifyRejectRecord,tenantId);
return JsonResult.buildSuccessResult("保存手机号修改失败原因成功"); return JsonResult.buildSuccessResult("保存手机号修改失败原因成功");
} }
......
...@@ -39,6 +39,8 @@ public class ModifyPhoneRecord implements Serializable { ...@@ -39,6 +39,8 @@ public class ModifyPhoneRecord implements Serializable {
*/ */
private ApplySource applySource; private ApplySource applySource;
private Integer tenantId;
public interface Background{} public interface Background{}
public interface UserClient{} public interface UserClient{}
public interface Finance{} public interface Finance{}
......
...@@ -5,6 +5,7 @@ import lombok.Getter; ...@@ -5,6 +5,7 @@ import lombok.Getter;
import lombok.Setter; import lombok.Setter;
import lombok.ToString; import lombok.ToString;
import org.apache.commons.lang.StringUtils; import org.apache.commons.lang.StringUtils;
import org.springframework.stereotype.Component;
import javax.persistence.*; import javax.persistence.*;
import java.io.Serializable; import java.io.Serializable;
...@@ -48,6 +49,10 @@ public class User extends BaseEntity implements Serializable { ...@@ -48,6 +49,10 @@ public class User extends BaseEntity implements Serializable {
@Column(name = "cipher_password") @Column(name = "cipher_password")
private String cipherPassword; private String cipherPassword;
@Column(name = "password_type")
private Integer passwordType;
@Column(name = "tenant_id") @Column(name = "tenant_id")
private Integer tenantId; private Integer tenantId;
......
...@@ -53,6 +53,19 @@ public class WechatUserInfo extends BaseEntity implements Serializable { ...@@ -53,6 +53,19 @@ public class WechatUserInfo extends BaseEntity implements Serializable {
@Convert(converter = EncryptConverter.class) @Convert(converter = EncryptConverter.class)
private String encryptedPhoneNo; private String encryptedPhoneNo;
@Column(name = "session_key")
private String sessionKey;
@Column(name = "app_id")
private String appId;
@Column(name = "tenant_id")
private Integer tenantId;
//第一次用户来源 channel_id
@Column(name = "registered_from")
private Long registeredFrom;
public String getEncryptedPhoneNo() { public String getEncryptedPhoneNo() {
return StringUtils.isBlank(encryptedPhoneNo) ? phoneNo : encryptedPhoneNo; return StringUtils.isBlank(encryptedPhoneNo) ? phoneNo : encryptedPhoneNo;
} }
......
...@@ -76,6 +76,8 @@ public class AppletParamEntry { ...@@ -76,6 +76,8 @@ public class AppletParamEntry {
*/ */
private String utmSource; private String utmSource;
private String appId;
/** /**
* 租户ID * 租户ID
*/ */
......
...@@ -61,6 +61,6 @@ public class BlackHoleRegisteredEventListener implements ApplicationListener<Reg ...@@ -61,6 +61,6 @@ public class BlackHoleRegisteredEventListener implements ApplicationListener<Reg
array.toString()); array.toString());
}); });
// 不同渠道签署不同的合同模板 // 不同渠道签署不同的合同模板
userService.channelUserSignContract(user, null); userService.channelUserSignContract(user, null, user.getTenantId());
} }
} }
...@@ -30,9 +30,9 @@ public class CacheEvictPhoneNoUpdateEventListener implements ApplicationListener ...@@ -30,9 +30,9 @@ public class CacheEvictPhoneNoUpdateEventListener implements ApplicationListener
String oldPhoneNo = event.getOldPhoneNo(); String oldPhoneNo = event.getOldPhoneNo();
User user = event.getUser(); User user = event.getUser();
userService.userCacheEvict(user.getUuid(), oldPhoneNo); userService.userCacheEvict(user.getUuid(), oldPhoneNo,user.getTenantId());
List<SessionStruct> sessionStructList = sessionService.findByUserId(user.getId()); List<SessionStruct> sessionStructList = sessionService.findByUserId(user.getId(),user.getTenantId());
sessionStructList = sessionStructList.stream().filter(Objects::nonNull).collect(Collectors.toList()); sessionStructList = sessionStructList.stream().filter(Objects::nonNull).collect(Collectors.toList());
...@@ -50,7 +50,7 @@ public class CacheEvictPhoneNoUpdateEventListener implements ApplicationListener ...@@ -50,7 +50,7 @@ public class CacheEvictPhoneNoUpdateEventListener implements ApplicationListener
} }
values.setUser(sessionUser); values.setUser(sessionUser);
} }
sessionService.persistSession(sessionStructList); sessionService.persistSession(sessionStructList,user.getTenantId());
} }
} }
...@@ -30,7 +30,7 @@ public class NotifyWechatBindEventListener implements ApplicationListener<Wechat ...@@ -30,7 +30,7 @@ public class NotifyWechatBindEventListener implements ApplicationListener<Wechat
log.info("微信绑定数据,没有用户 ID 信息,openId:{}", wechatEventMsg.getOpenId()); log.info("微信绑定数据,没有用户 ID 信息,openId:{}", wechatEventMsg.getOpenId());
return; return;
} }
User user = userRepository.findById(wechatEventMsg.getUserId()); User user = userRepository.findByIdAndTenantId(wechatEventMsg.getUserId(),wechatEventMsg.getTenantId());
if (user == null) { if (user == null) {
log.info("微信绑定数据,没有用户信息,openId:{},userId:{}", wechatEventMsg.getOpenId(), wechatEventMsg.getUserId()); log.info("微信绑定数据,没有用户信息,openId:{},userId:{}", wechatEventMsg.getOpenId(), wechatEventMsg.getUserId());
return; return;
......
...@@ -21,7 +21,7 @@ public class WechatPhoneNoUpdateEventListener implements ApplicationListener<Pho ...@@ -21,7 +21,7 @@ public class WechatPhoneNoUpdateEventListener implements ApplicationListener<Pho
public void onApplicationEvent(PhoneNoUpdateEvent event) { public void onApplicationEvent(PhoneNoUpdateEvent event) {
String oldPhoneNo = event.getOldPhoneNo(); String oldPhoneNo = event.getOldPhoneNo();
User user = event.getUser(); User user = event.getUser();
WechatUserInfo userInfo = wechatService.findWechatUserInfoByPhoneNo(oldPhoneNo); WechatUserInfo userInfo = wechatService.findWechatUserInfoByPhoneNo(oldPhoneNo, user.getTenantId());
if (Objects.isNull(userInfo)) { if (Objects.isNull(userInfo)) {
return; return;
} }
......
...@@ -59,7 +59,7 @@ public class RequestFilter implements Filter { ...@@ -59,7 +59,7 @@ public class RequestFilter implements Filter {
} else { } else {
/* 延续session生命期 */ /* 延续session生命期 */
try { try {
sessionService.persistSession(sessionStruct.getSid(), sessionStruct.getValues()); sessionService.persistSession(sessionStruct.getSid(), sessionStruct.getValues(),sessionStruct.getTenantId());
} finally { } finally {
XyqbSessionContextHolder.releaseSession(); XyqbSessionContextHolder.releaseSession();
} }
......
...@@ -17,6 +17,7 @@ public class SessionStruct implements Serializable { ...@@ -17,6 +17,7 @@ public class SessionStruct implements Serializable {
private String sid; private String sid;
private SessionValue values; private SessionValue values;
private long expire; private long expire;
private Integer tenantId;
public void setAttribute(String key, String value) { public void setAttribute(String key, String value) {
if (value == null) { if (value == null) {
......
...@@ -3,9 +3,12 @@ package cn.quantgroup.xyqb.model.webchat; ...@@ -3,9 +3,12 @@ package cn.quantgroup.xyqb.model.webchat;
import lombok.Builder; import lombok.Builder;
import lombok.Data; import lombok.Data;
import javax.persistence.criteria.CriteriaBuilder;
@Data @Data
@Builder @Builder
public class WechatEventMsg { public class WechatEventMsg {
private Long userId; private Long userId;
private String openId; private String openId;
private Integer tenantId;
} }
...@@ -15,11 +15,11 @@ import java.util.List; ...@@ -15,11 +15,11 @@ import java.util.List;
*/ */
public interface IUserRepository extends JpaRepository<User, Long>, JpaSpecificationExecutor<User> { public interface IUserRepository extends JpaRepository<User, Long>, JpaSpecificationExecutor<User> {
User findByPhoneNo(String phoneNo); User findByPhoneNoAndTenantId(String phoneNo,Integer tenantId);
User findByEncryptedPhoneNo(String phoneNo); User findByEncryptedPhoneNoAndTenantId(String phoneNo,Integer tenantId);
User findByUuid(String uuid); User findByUuidAndTenantId(String uuid,Integer tenantId);
/** /**
* 根据手机号查询用户UUID * 根据手机号查询用户UUID
...@@ -27,39 +27,31 @@ public interface IUserRepository extends JpaRepository<User, Long>, JpaSpecifica ...@@ -27,39 +27,31 @@ public interface IUserRepository extends JpaRepository<User, Long>, JpaSpecifica
* @param phoneNo - 手机号 * @param phoneNo - 手机号
* @return user表的uuid * @return user表的uuid
*/ */
@Query(value = "select uuid from user where phone_no=?1", nativeQuery = true) @Query(value = "select uuid from user where phone_no=?1 and tenant_id=?2", nativeQuery = true)
String findUuidByPhoneNo(String phoneNo); String findUuidByPhoneNoAndTenantId(String phoneNo,Integer tenantId);
/**
* 根据身份证号查询用户UUID
*
* @param idNo - 身份证号
* @return user表的uuid
*/
@Query(value = "select uuid from user where id=(select user_id from user_detail where id_no=?1) ", nativeQuery = true)
String findUuidByIdNo(String idNo);
List<User> findByIdIn(List<Long> ids); List<User> findByIdInAndTenantId(List<Long> ids,Integer tenantId);
User findById(Long id); User findByIdAndTenantId(Long id,Integer tenantId);
@Query(value = "select * from user where created_at>=?1 and created_at<?2 ", nativeQuery = true) @Query(value = "select * from user where created_at>=?1 and created_at<?2 and tenant_id=?3 ", nativeQuery = true)
List<User> findRegisterUserByTime(String beginTime, String endTime); List<User> findRegisterUserByTimeAndTenantId(String beginTime, String endTime,Integer tenantId);
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
@Modifying @Modifying
@Query(value = "update user set enable=?1 where phone_no=?2", nativeQuery = true) @Query(value = "update user set enable=?1 where phone_no=?2 and tenant_id=?3", nativeQuery = true)
int forbiddenUser(Boolean enable, String phoneNo); int forbiddenUserAndTenantId(Boolean enable, String phoneNo,Integer tenantId);
List<User> findByIdBetween(Long id, Long endId); List<User> findByIdBetweenAndTenantId(Long id, Long endId,Integer tenantId);
List<User> findByUuidIn(List<String> uuids); List<User> findByUuidInAndTenantId(List<String> uuids,Integer tenantId);
/** /**
* 根据userId删除用户 * 根据userId删除用户
* *
* @param userId 用户id * @param userId 用户id
*/ */
void deleteById(Long userId); void deleteByIdAndTenantId(Long userId,Integer tenantId);
} }
...@@ -16,17 +16,17 @@ import static org.springframework.transaction.annotation.Propagation.MANDATORY; ...@@ -16,17 +16,17 @@ import static org.springframework.transaction.annotation.Propagation.MANDATORY;
* modify by djh 20200527 http://confluence.quantgroup.cn/pages/viewpage.action?pageId=30657427 * modify by djh 20200527 http://confluence.quantgroup.cn/pages/viewpage.action?pageId=30657427
*/ */
public interface IWeChatUserRepository extends JpaRepository<WechatUserInfo, Long> { public interface IWeChatUserRepository extends JpaRepository<WechatUserInfo, Long> {
WechatUserInfo findByOpenIdAndAppName(String openId, String appName); WechatUserInfo findByOpenIdAndAppNameAndAppIdAndTenantId(String openId, String appName,String appId,Integer tenantId);
WechatUserInfo findByPhoneNoAndAppName(String phoneNo, String appName); WechatUserInfo findByPhoneNoAndAppNameAndTenantId(String phoneNo, String appName, Integer tenantId);
WechatUserInfo findByEncryptedPhoneNoAndAppName(String phoneNo, String appName); WechatUserInfo findByEncryptedPhoneNoAndAppNameAndTenantId(String phoneNo, String appName, Integer tenantId);
WechatUserInfo findByUserIdAndAppName(Long userId, String appName); WechatUserInfo findByUserIdAndAppNameAndAppIdAndTenantId(Long userId, String appName,String appId,Integer tenantId);
WechatUserInfo findFirstByUserIdAndAppNameOrderByCreatedAtDesc(Long userId, String appName); WechatUserInfo findFirstByUserIdAndAppNameAndTenantIdOrderByCreatedAtDesc(Long userId, String appName, Integer tenantId);
long countByOpenIdAndAppName(String openId, String appName); long countByOpenIdAndAppNameAndAppIdAndTenantId(String openId, String appName,String appId,Integer tenantId);
/** /**
* 解除关联关系 -- 当前用户的已关联微信 * 解除关联关系 -- 当前用户的已关联微信
...@@ -37,8 +37,8 @@ public interface IWeChatUserRepository extends JpaRepository<WechatUserInfo, Lon ...@@ -37,8 +37,8 @@ public interface IWeChatUserRepository extends JpaRepository<WechatUserInfo, Lon
*/ */
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
@Modifying @Modifying
@Query(value = "update wechat_userinfo set user_id=null,phone_no='*' where user_id=?1 and app_name=?2", nativeQuery = true) @Query(value = "update wechat_userinfo set user_id=null,phone_no='*' where user_id=?1 and app_name=?2 and tenant_id=?3", nativeQuery = true)
int dissociateByUserIdAndAppName(Long userId, String appName); int dissociateByUserIdAndAppNameAndTenantId(Long userId, String appName, Integer tenantId);
/** /**
* 解除商城用户与小程序和公众号关联关系 * 解除商城用户与小程序和公众号关联关系
...@@ -48,8 +48,8 @@ public interface IWeChatUserRepository extends JpaRepository<WechatUserInfo, Lon ...@@ -48,8 +48,8 @@ public interface IWeChatUserRepository extends JpaRepository<WechatUserInfo, Lon
*/ */
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
@Modifying @Modifying
@Query(value = "update wechat_userinfo set user_id=null,phone_no='*' where user_id=?1 and app_name in ('xyqb', 'wuxi')", nativeQuery = true) @Query(value = "update wechat_userinfo set user_id=null,phone_no='*' where user_id=?1 and app_name in ('xyqb', 'wuxi') and tenant_id=?2", nativeQuery = true)
int forbiddenXyqbAndWuxiUserByUserId(Long userId); int forbiddenXyqbAndWuxiUserByUserIdAndAppIdAndTenantId(Long userId, Integer tenantId);
/** /**
* 关联用户 * 关联用户
...@@ -61,8 +61,8 @@ public interface IWeChatUserRepository extends JpaRepository<WechatUserInfo, Lon ...@@ -61,8 +61,8 @@ public interface IWeChatUserRepository extends JpaRepository<WechatUserInfo, Lon
*/ */
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
@Modifying @Modifying
@Query(value = "update wechat_userinfo set user_id=?1,phone_no=?2 where open_id=?3 and user_id is null and app_name=?4", nativeQuery = true) @Query(value = "update wechat_userinfo set user_id=?1,phone_no=?2 where open_id=?3 and user_id is null and app_name=?4 and app_id=?5 and tenant_id=?6", nativeQuery = true)
int relateUser(Long userId, String phoneNo, String openId, String appName); int relateUser(Long userId, String phoneNo, String openId, String appName,String appId,Integer tenantId);
/** /**
* 解除关联关系 -- 包括:1、当前微信旧的关联用户;2、当前用户旧的关联微信 * 解除关联关系 -- 包括:1、当前微信旧的关联用户;2、当前用户旧的关联微信
...@@ -74,8 +74,8 @@ public interface IWeChatUserRepository extends JpaRepository<WechatUserInfo, Lon ...@@ -74,8 +74,8 @@ public interface IWeChatUserRepository extends JpaRepository<WechatUserInfo, Lon
*/ */
@Transactional(propagation = MANDATORY, rollbackFor = Exception.class) @Transactional(propagation = MANDATORY, rollbackFor = Exception.class)
@Modifying @Modifying
@Query(value = "update wechat_userinfo set user_id=null,phone_no='*' where (open_id=?1 or user_id=?2) and app_name=?3", nativeQuery = true) @Query(value = "update wechat_userinfo set user_id=null,phone_no='*' where (open_id=?1 or user_id=?2) and app_name=?3 and app_id=?4 and tenant_id=?5", nativeQuery = true)
int dissociateUser(String openId, Long userId, String appName); int dissociateUser(String openId, Long userId, String appName,String appId,Integer tenantId);
/** /**
...@@ -87,23 +87,23 @@ public interface IWeChatUserRepository extends JpaRepository<WechatUserInfo, Lon ...@@ -87,23 +87,23 @@ public interface IWeChatUserRepository extends JpaRepository<WechatUserInfo, Lon
*/ */
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
@Modifying @Modifying
@Query(value = "update wechat_userinfo set union_id=?3 where user_id=?1 and app_name=?2", nativeQuery = true) @Query(value = "update wechat_userinfo set union_id=?3 where user_id=?1 and app_name=?2 and app_id=?3 and tenant_id=?4", nativeQuery = true)
int updateUserUnionId(Long userId, String appName, String unionId); int updateUserUnionId(Long userId, String appName, String unionId,String appId,Integer tenantId);
@Transactional @Transactional
void deleteByUserId(Long userId); void deleteByUserIdAndAppIdAndTenantId(Long userId,Integer tenantId);
/** /**
* 通过userId查询相关绑定微信记录 * 通过userId查询相关绑定微信记录
*/ */
List<WechatUserInfo> findByUserId(Long userId); List<WechatUserInfo> findByUserIdAndTenantId(Long userId,Integer tenantId);
/** /**
* 通过unionId查询相关绑定微信记录 * 通过unionId查询相关绑定微信记录
*/ */
List<WechatUserInfo> findByUnionId(String unionId); List<WechatUserInfo> findByUnionIdAndAppIdAndTenantId(String unionId, Integer tenantId);
List<WechatUserInfo> findByUnionIdIn(List<String> unionIds); List<WechatUserInfo> findByUnionIdInAndTenantId(List<String> unionIds, Integer tenantId);
List<WechatUserInfo> findByUserIdInAndAppName(List<Long> userIds, String appName); List<WechatUserInfo> findByUserIdInAndAppNameAndTenantId(List<Long> userIds, String appName, Integer tenantId);
} }
...@@ -15,7 +15,7 @@ public interface IUserApiService { ...@@ -15,7 +15,7 @@ public interface IUserApiService {
* @param uuid * @param uuid
* @return * @return
*/ */
Optional<UserFullInfo> getUserFullInfoByUuid(String uuid); Optional<UserFullInfo> getUserFullInfoByUuid(String uuid,Integer tenantId);
/** /**
* 根据phone查询完整信息 * 根据phone查询完整信息
...@@ -23,5 +23,5 @@ public interface IUserApiService { ...@@ -23,5 +23,5 @@ public interface IUserApiService {
* @param phoneNo * @param phoneNo
* @return * @return
*/ */
Optional<UserFullInfo> getUserFullInfoByPhone(String phoneNo); Optional<UserFullInfo> getUserFullInfoByPhone(String phoneNo,Integer tenantId);
} }
...@@ -24,8 +24,8 @@ public class UserApiServiceImpl implements IUserApiService { ...@@ -24,8 +24,8 @@ public class UserApiServiceImpl implements IUserApiService {
private IUserInfoRepository userInfoRepository; private IUserInfoRepository userInfoRepository;
@Override @Override
public Optional<UserFullInfo> getUserFullInfoByUuid(String uuid) { public Optional<UserFullInfo> getUserFullInfoByUuid(String uuid,Integer tenantId) {
User user = userService.findByUuidWithCache(uuid); User user = userService.findByUuidWithCache(uuid,tenantId);
if (null == user) { if (null == user) {
return Optional.empty(); return Optional.empty();
} }
...@@ -35,8 +35,8 @@ public class UserApiServiceImpl implements IUserApiService { ...@@ -35,8 +35,8 @@ public class UserApiServiceImpl implements IUserApiService {
} }
@Override @Override
public Optional<UserFullInfo> getUserFullInfoByPhone(String phoneNo) { public Optional<UserFullInfo> getUserFullInfoByPhone(String phoneNo,Integer tenantId) {
User user = userService.findByPhoneInDb(phoneNo); User user = userService.findByPhoneInDb(phoneNo,tenantId);
if (null == user) { if (null == user) {
return Optional.empty(); return Optional.empty();
} }
......
...@@ -12,5 +12,5 @@ import cn.quantgroup.xyqb.entity.middleoffice.AppletParamEntry; ...@@ -12,5 +12,5 @@ import cn.quantgroup.xyqb.entity.middleoffice.AppletParamEntry;
*/ */
public interface IAppletService { public interface IAppletService {
Long relevance(AppletParamEntry appletParamEntry); Long relevance(AppletParamEntry appletParamEntry);
LoginVo login(String appName, String openId, Integer tenantId, String utmSource, String unionId); LoginVo login(String appName, String openId, Integer tenantId, String utmSource, String unionId,String appId);
} }
...@@ -51,7 +51,7 @@ public class AppletServiceImpl implements IAppletService { ...@@ -51,7 +51,7 @@ public class AppletServiceImpl implements IAppletService {
@Override @Override
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public Long relevance(AppletParamEntry appletParamEntry) { public Long relevance(AppletParamEntry appletParamEntry) {
WechatUserInfo wechatUserInfo = iWeChatUserRepository.findByOpenIdAndAppName(appletParamEntry.getOpenId(), appletParamEntry.getAppName()); WechatUserInfo wechatUserInfo = iWeChatUserRepository.findByOpenIdAndAppNameAndAppIdAndTenantId(appletParamEntry.getOpenId(), appletParamEntry.getAppName(),appletParamEntry.getAppId(),appletParamEntry.getTenantId());
//这个接口先不考虑更换手机号的情况 //这个接口先不考虑更换手机号的情况
wechatUserInfo = (wechatUserInfo == null ? new WechatUserInfo() : wechatUserInfo); wechatUserInfo = (wechatUserInfo == null ? new WechatUserInfo() : wechatUserInfo);
...@@ -69,7 +69,7 @@ public class AppletServiceImpl implements IAppletService { ...@@ -69,7 +69,7 @@ public class AppletServiceImpl implements IAppletService {
wechatUserInfo.setEncryptedPhoneNo(appletParamEntry.getMobile()); wechatUserInfo.setEncryptedPhoneNo(appletParamEntry.getMobile());
wechatUserInfo.setUtmSource(appletParamEntry.getUtmSource()); wechatUserInfo.setUtmSource(appletParamEntry.getUtmSource());
if (null == wechatUserInfo.getUserId()) {//只要存在userid 就说明已经在用户表里了 不考虑小程序这边换手机号了 if (null == wechatUserInfo.getUserId()) {//只要存在userid 就说明已经在用户表里了 不考虑小程序这边换手机号了
User user = userService.findByPhoneInDb(appletParamEntry.getMobile()); User user = userService.findByPhoneInDb(appletParamEntry.getMobile(), appletParamEntry.getTenantId());
//如果不存在就去注册一下 //如果不存在就去注册一下
if (null == user) { if (null == user) {
user = iUserRegisterService.register(appletParamEntry.getChannelId(), appletParamEntry.getMobile()); user = iUserRegisterService.register(appletParamEntry.getChannelId(), appletParamEntry.getMobile());
...@@ -88,9 +88,9 @@ public class AppletServiceImpl implements IAppletService { ...@@ -88,9 +88,9 @@ public class AppletServiceImpl implements IAppletService {
@Override @Override
public LoginVo login(String appName, String openId, Integer tenantId, String utmSource, String unionId) { public LoginVo login(String appName, String openId, Integer tenantId, String utmSource, String unionId,String appId) {
WechatUserInfo wechatUserInfo = iWeChatUserRepository.findByOpenIdAndAppName(openId, appName); WechatUserInfo wechatUserInfo = iWeChatUserRepository.findByOpenIdAndAppNameAndAppIdAndTenantId(openId, appName,appId,tenantId);
if (null == wechatUserInfo) { if (null == wechatUserInfo) {
log.warn("未找到此用户,appName:{} ,openId:{}", appName, openId); log.warn("未找到此用户,appName:{} ,openId:{}", appName, openId);
throw new AppletException("未找到此用户", "0401"); throw new AppletException("未找到此用户", "0401");
...@@ -99,7 +99,7 @@ public class AppletServiceImpl implements IAppletService { ...@@ -99,7 +99,7 @@ public class AppletServiceImpl implements IAppletService {
log.warn("用户未绑定到xyqb,appName:{} ,openId:{}", appName, openId); log.warn("用户未绑定到xyqb,appName:{} ,openId:{}", appName, openId);
throw new AppletException("未找到此用户绑定信息", "0401"); throw new AppletException("未找到此用户绑定信息", "0401");
} }
User user = userService.findById(wechatUserInfo.getUserId()); User user = userService.findById(wechatUserInfo.getUserId(), wechatUserInfo.getTenantId());
if (null == user) { if (null == user) {
log.warn("未找到此用户,appName:{} ,openId:{}", appName, openId); log.warn("未找到此用户,appName:{} ,openId:{}", appName, openId);
throw new AppletException("未找到此用户", "0401"); throw new AppletException("未找到此用户", "0401");
...@@ -111,7 +111,7 @@ public class AppletServiceImpl implements IAppletService { ...@@ -111,7 +111,7 @@ public class AppletServiceImpl implements IAppletService {
} }
if (unionId != null && !unionId.equals(wechatUserInfo.getUnionId())) { if (unionId != null && !unionId.equals(wechatUserInfo.getUnionId())) {
iWeChatUserRepository.updateUserUnionId(wechatUserInfo.getUserId(), appName, unionId); iWeChatUserRepository.updateUserUnionId(wechatUserInfo.getUserId(), appName, unionId,appId,tenantId);
} }
return loginModule.loginByUserId(user.getRegisteredFrom(), return loginModule.loginByUserId(user.getRegisteredFrom(),
......
...@@ -14,27 +14,27 @@ import java.util.List; ...@@ -14,27 +14,27 @@ import java.util.List;
public interface ISessionService { public interface ISessionService {
SessionStruct createSessionAndPersist(User user, LoginProperties loginProperties); SessionStruct createSessionAndPersist(User user, LoginProperties loginProperties,Integer tenantId);
void persistSession(String token, SessionValue sessionValue); void persistSession(String token, SessionValue sessionValue,Integer tenantId);
void persistSession(String token, SessionValue sessionValue,Long time); void persistSession(String token, SessionValue sessionValue,Long time,Integer tenantId);
void deleteByUserId(long userId); void deleteByUserId(long userId,Integer tenantId);
void deleteUserCatch(User user); void deleteUserCatch(User user,Integer tenantId);
List<SessionStruct> findByUserId(long userId); List<SessionStruct> findByUserId(long userId,Integer tenantId);
void persistSession(List<SessionStruct> sessionStructList); void persistSession(List<SessionStruct> sessionStructList,Integer tenantId);
/** /**
* 删除会话 * 删除会话
*/ */
void deleteSession(String token); void deleteSession(String token,Integer tenantId);
void persistSessionExchange(String token, SessionValue sessionValue, long expire); void persistSessionExchange(String token, SessionValue sessionValue, long expire,Integer tenantId);
void kdspDeleteSession(Long userId, LoginProperties loginProperties); void kdspDeleteSession(Long userId, LoginProperties loginProperties,Integer tenantId);
/** /**
* 更新session * 更新session
...@@ -46,5 +46,5 @@ public interface ISessionService { ...@@ -46,5 +46,5 @@ public interface ISessionService {
* @param ordinal - 登录方式 * @param ordinal - 登录方式
* @return * @return
*/ */
AuthBean createSession(User user, LoginProperties loginProperties, int ordinal); AuthBean createSession(User user, LoginProperties loginProperties, int ordinal,Integer tenantId);
} }
...@@ -18,7 +18,7 @@ public interface IModifyPhoneNoService { ...@@ -18,7 +18,7 @@ public interface IModifyPhoneNoService {
/** /**
* *
*/ */
Long saveStep1(Long id, Step1Req step1Req); Long saveStep1(Long id, Step1Req step1Req,Integer tenantId);
/** /**
* *
...@@ -31,7 +31,7 @@ public interface IModifyPhoneNoService { ...@@ -31,7 +31,7 @@ public interface IModifyPhoneNoService {
void feedback(Long id); void feedback(Long id);
void audit(AuditReq auditReq); void audit(AuditReq auditReq,Integer tenantId);
void submitModify(ModifyPhoneRecord modifyPhoneRecord); void submitModify(ModifyPhoneRecord modifyPhoneRecord);
...@@ -43,7 +43,7 @@ public interface IModifyPhoneNoService { ...@@ -43,7 +43,7 @@ public interface IModifyPhoneNoService {
UserModifyPhoneRecordResp getLastRecord(Long userId); UserModifyPhoneRecordResp getLastRecord(Long userId);
void saveRejectReason(ModifyRejectRecord modifyRejectRecord); void saveRejectReason(ModifyRejectRecord modifyRejectRecord,Integer tenantId);
UserModifyPhoneRecordResp modifyRecord(String prevPhoneNo); UserModifyPhoneRecordResp modifyRecord(String prevPhoneNo);
} }
...@@ -16,45 +16,44 @@ import java.util.Map; ...@@ -16,45 +16,44 @@ import java.util.Map;
*/ */
public interface IUserService { public interface IUserService {
User findByPhoneWithCache(String phone); User findByPhoneWithCache(String phone,Integer tenantId);
User findByUuidWithCache(String uuid); User findByUuidWithCache(String uuid,Integer tenantId);
boolean exist(String phoneNo); boolean exist(String phoneNo,Integer tenantId);
boolean resetPassword(String phoneNo, String password); boolean resetPassword(String phoneNo, String password,Integer tenantId);
User findByPhoneInDb(String phone); User findByPhoneInDb(String phone,Integer tenantId);
User findSlaveByPhoneInDb(String phone); User findSlaveByPhoneInDb(String phone,Integer tenantId);
User findByUuidInDb(String uuid); User findByUuidInDb(String uuid,Integer tenantId);
/** /**
* 根据手机号或身份证号查询用户UUID * 根据手机号或身份证号查询用户UUID
* *
* @param phoneNo - 手机号 * @param phoneNo - 手机号
* @param idNo - 身份证号
* @return user表的uuid * @return user表的uuid
*/ */
String findUuid(String phoneNo, String idNo); String findUuid(String phoneNo,Integer tenantId);
Map<Long, String> findPhoneByIdsInDb(List<Long> userIds, Integer tenantId); Map<Long, String> findPhoneByIdsInDb(List<Long> userIds, Integer tenantId);
User saveUser(User user); User saveUser(User user);
User findById(Long userId); User findById(Long userId,Integer tenantId);
List<User> findByPhones(List<String> phones); List<User> findByPhones(List<String> phones,Integer tenantId);
List<User> findRegisterUserByTime(String beginTime, String endTime); List<User> findRegisterUserByTime(String beginTime, String endTime,Integer tenantId);
/** /**
* 禁用用户 * 禁用用户
* *
* @param phoneNo 电话号码 * @param phoneNo 电话号码
*/ */
int forbiddenUser(Boolean enable, String phoneNo); int forbiddenUser(Boolean enable, String phoneNo,Integer tenantId);
List<UserInfo> findUserInfosByPhones(List<String> phones, Integer tenantId); List<UserInfo> findUserInfosByPhones(List<String> phones, Integer tenantId);
...@@ -73,11 +72,11 @@ public interface IUserService { ...@@ -73,11 +72,11 @@ public interface IUserService {
* @param uuid 根据 uuid * @param uuid 根据 uuid
* @param phoneNo 根据手机号 * @param phoneNo 根据手机号
*/ */
void userCacheEvict(String uuid, String phoneNo); void userCacheEvict(String uuid, String phoneNo,Integer tenantId);
JsonResult loginFast(Long channelId, String appChannel, Long createdFrom, Long btRegisterChannelId, JsonResult loginFast(Long channelId, String appChannel, Long createdFrom, Long btRegisterChannelId,
String dimension, String clickId, HttpServletRequest request, Merchant merchant, String dimension, String clickId, HttpServletRequest request, Merchant merchant,
String phoneNo, Integer tenantId, Long geetestLogId); String phoneNo, Integer tenantId, Long geetestLogId,String appId);
/** /**
* 查询用户全量信息 * 查询用户全量信息
...@@ -99,23 +98,21 @@ public interface IUserService { ...@@ -99,23 +98,21 @@ public interface IUserService {
/** /**
* 登出 * 登出
*/ */
void logout(String token); void logout(String token,Integer tenantId);
void kdspLogout(Long userId, LoginProperties loginProperties); void kdspLogout(Long userId, LoginProperties loginProperties,Integer tenantId);
List<User> findAll();
/** /**
* 通过userId销户 * 通过userId销户
* *
* @param userId 用户id * @param userId 用户id
*/ */
void deregister(Long userId); void deregister(Long userId,Integer tenantId);
User submitModifyPhone(String prevPhoneNo, String curPhoneNo); User submitModifyPhone(String prevPhoneNo, String curPhoneNo,Integer tenantId);
/** /**
* 渠道用户签署合同 * 渠道用户签署合同
*/ */
void channelUserSignContract(User user, Long loginFrom); void channelUserSignContract(User user, Long loginFrom,Integer tenantId);
} }
...@@ -9,13 +9,13 @@ import java.util.List; ...@@ -9,13 +9,13 @@ import java.util.List;
* Created by Miraculous on 2017/1/19. * Created by Miraculous on 2017/1/19.
*/ */
public interface IWechatService { public interface IWechatService {
AccessTokenResponse getToken(String code); AccessTokenResponse getToken(String code,String appId,Integer tenantId);
WechatUserInfo getWechatUserInfoFromWechatServer(String token, String openId); WechatUserInfo getWechatUserInfoFromWechatServer(String token, String openId,String appId,Integer tenantId);
WechatUserInfo findWechatUserInfoFromDb(String openId); WechatUserInfo findWechatUserInfoFromDb(String openId,String appId,Integer tenantId);
WechatUserInfo findWechatUserInfoByPhoneNo(String phoneNo); WechatUserInfo findWechatUserInfoByPhoneNo(String phoneNo, Integer tenantId);
WechatUserInfo saveWechatUserInfo(WechatUserInfo userInfo); WechatUserInfo saveWechatUserInfo(WechatUserInfo userInfo);
...@@ -27,7 +27,7 @@ public interface IWechatService { ...@@ -27,7 +27,7 @@ public interface IWechatService {
* @param openId - 微信标识 * @param openId - 微信标识
* @return * @return
*/ */
int relateUser(Long userId, String phoneNo, String openId); int relateUser(Long userId, String phoneNo, String openId,String appId,Integer tenantId);
/** /**
* 按userId查微信信息 * 按userId查微信信息
...@@ -36,25 +36,18 @@ public interface IWechatService { ...@@ -36,25 +36,18 @@ public interface IWechatService {
* @param userId - 用户标识 * @param userId - 用户标识
* @return * @return
*/ */
WechatUserInfo queryByUserId(Long userId); WechatUserInfo queryByUserId(Long userId,Integer tenantId);
WechatUserInfo queryByUserId(Long userId, String appName); WechatUserInfo queryByUserId(Long userId, String appName,String appId,Integer tenantId);
int forbiddenUserWeChat(Long userId); int forbiddenUserWeChat(Long userId, Integer tenantId);
/**
* 通过userId解除商城用户与小程序和公众号关联关系
*
* @param userId 用户id
* @return 禁用结果
*/
int forbiddenXyqbAndWuxiUserByUserId(Long userId);
List<WechatUserInfo> queryListByUserId(Long userId); List<WechatUserInfo> queryListByUserId(Long userId,Integer tenantId);
List<WechatUserInfo> queryListByUnionId(String unionId); List<WechatUserInfo> queryListByUnionId(String unionId,Integer tenantId);
List<WechatUserInfo> queryListByUnionIds(List<String> unionIds); List<WechatUserInfo> queryListByUnionIds(List<String> unionIds,Integer tenantId);
List<WechatUserInfo> queryByUserIdsAndAppName(List<Long> userIds, String appName); List<WechatUserInfo> queryByUserIdsAndAppName(List<Long> userIds, String appName,Integer tenantId);
} }
...@@ -56,7 +56,7 @@ public class WechatServiceImpl implements IWechatService { ...@@ -56,7 +56,7 @@ public class WechatServiceImpl implements IWechatService {
} }
@Override @Override
public AccessTokenResponse getToken(String code) { public AccessTokenResponse getToken(String code,String appId,Integer tenantId) {
if (StringUtils.isEmpty(code)) { if (StringUtils.isEmpty(code)) {
return null; return null;
} }
...@@ -101,7 +101,7 @@ public class WechatServiceImpl implements IWechatService { ...@@ -101,7 +101,7 @@ public class WechatServiceImpl implements IWechatService {
} }
@Override @Override
public WechatUserInfo getWechatUserInfoFromWechatServer(String token, String openId) { public WechatUserInfo getWechatUserInfoFromWechatServer(String token, String openId,String appId,Integer tenantId) {
if (StringUtils.isEmpty(token) || StringUtils.isEmpty(openId)) { if (StringUtils.isEmpty(token) || StringUtils.isEmpty(openId)) {
return null; return null;
} }
...@@ -112,8 +112,8 @@ public class WechatServiceImpl implements IWechatService { ...@@ -112,8 +112,8 @@ public class WechatServiceImpl implements IWechatService {
} }
@Override @Override
public WechatUserInfo findWechatUserInfoFromDb(String openId) { public WechatUserInfo findWechatUserInfoFromDb(String openId,String appId,Integer tenantId) {
return weChatUserRepository.findByOpenIdAndAppName(openId, "xyqb"); return weChatUserRepository.findByOpenIdAndAppNameAndAppIdAndTenantId(openId, "xyqb",appId,tenantId);
} }
@Override @Override
...@@ -123,10 +123,10 @@ public class WechatServiceImpl implements IWechatService { ...@@ -123,10 +123,10 @@ public class WechatServiceImpl implements IWechatService {
if (Objects.isNull(userInfo) || Objects.isNull(userInfo.getOpenId())) { if (Objects.isNull(userInfo) || Objects.isNull(userInfo.getOpenId())) {
return null; return null;
} }
long count = weChatUserRepository.countByOpenIdAndAppName(userInfo.getOpenId(), "xyqb"); long count = weChatUserRepository.countByOpenIdAndAppNameAndAppIdAndTenantId(userInfo.getOpenId(), "xyqb",userInfo.getAppId(),userInfo.getTenantId());
if (count > 0) { if (count > 0) {
//注意,这里会抛异常(5000/total),WeChatController中已捕获处理 //注意,这里会抛异常(5000/total),WeChatController中已捕获处理
return weChatUserRepository.findByOpenIdAndAppName(userInfo.getOpenId(), "xyqb"); return weChatUserRepository.findByOpenIdAndAppNameAndAppIdAndTenantId(userInfo.getOpenId(), "xyqb",userInfo.getAppId(),userInfo.getTenantId());
} }
if (null == userInfo.getPhoneNo()) { if (null == userInfo.getPhoneNo()) {
userInfo.setPhoneNo(""); userInfo.setPhoneNo("");
...@@ -156,24 +156,24 @@ public class WechatServiceImpl implements IWechatService { ...@@ -156,24 +156,24 @@ public class WechatServiceImpl implements IWechatService {
@Override @Override
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public int relateUser(Long userId, String phoneNo, String openId) { public int relateUser(Long userId, String phoneNo, String openId,String appId,Integer tenantId) {
if (Objects.isNull(userId) || Objects.isNull(openId) || StringUtils.isBlank(openId)) { if (Objects.isNull(userId) || Objects.isNull(openId) || StringUtils.isBlank(openId)) {
log.error("微信关联失败:非法入参:[service]:userId:{},phoneNo:{},openId:{}", userId, phoneNo, openId); log.error("微信关联失败:非法入参:[service]:userId:{},phoneNo:{},openId:{}", userId, phoneNo, openId);
return 0; return 0;
} }
// Old - 当前openId的WechatUserInfo // Old - 当前openId的WechatUserInfo
WechatUserInfo wechatUserInfo = weChatUserRepository.findByOpenIdAndAppName(openId, "xyqb"); WechatUserInfo wechatUserInfo = weChatUserRepository.findByOpenIdAndAppNameAndAppIdAndTenantId(openId, "xyqb",appId,tenantId);
if (Objects.nonNull(wechatUserInfo) && Objects.equals(userId, wechatUserInfo.getUserId()) && Objects.equals(openId, wechatUserInfo.getOpenId())) { if (Objects.nonNull(wechatUserInfo) && Objects.equals(userId, wechatUserInfo.getUserId()) && Objects.equals(openId, wechatUserInfo.getOpenId())) {
log.info("微信关联成功:重复关联:跳过:[service]:userId:{},phoneNo:{},openId:{}", userId, phoneNo, openId); log.info("微信关联成功:重复关联:跳过:[service]:userId:{},phoneNo:{},openId:{}", userId, phoneNo, openId);
return 1; return 1;
} }
// 强制解除关联 // 强制解除关联
int dissociate = weChatUserRepository.dissociateUser(openId, userId, "xyqb"); int dissociate = weChatUserRepository.dissociateUser(openId, userId, "xyqb",appId,tenantId);
if (dissociate < 1) { if (dissociate < 1) {
log.error("微信关联失败:解绑条数<1:[service]:userId:{},phoneNo:{},openId:{}", userId, phoneNo, openId); log.error("微信关联失败:解绑条数<1:[service]:userId:{},phoneNo:{},openId:{}", userId, phoneNo, openId);
throw new WechatRelateUserException("微信关联失败"); throw new WechatRelateUserException("微信关联失败");
} }
int relate = weChatUserRepository.relateUser(userId, Optional.ofNullable(phoneNo).orElse(""), openId, "xyqb"); int relate = weChatUserRepository.relateUser(userId, Optional.ofNullable(phoneNo).orElse(""), openId, "xyqb",appId,tenantId);
if (relate < 1) { if (relate < 1) {
log.error("微信关联失败:绑定条数<1:[service]:userId:{},phoneNo:{},openId:{}", userId, phoneNo, openId); log.error("微信关联失败:绑定条数<1:[service]:userId:{},phoneNo:{},openId:{}", userId, phoneNo, openId);
throw new WechatRelateUserException("微信关联失败"); throw new WechatRelateUserException("微信关联失败");
...@@ -189,13 +189,13 @@ public class WechatServiceImpl implements IWechatService { ...@@ -189,13 +189,13 @@ public class WechatServiceImpl implements IWechatService {
} }
@Override @Override
public WechatUserInfo findWechatUserInfoByPhoneNo(String phoneNo) { public WechatUserInfo findWechatUserInfoByPhoneNo(String phoneNo, Integer tenantId) {
if (!ValidationUtil.validatePhoneNo(phoneNo)) { if (!ValidationUtil.validatePhoneNo(phoneNo)) {
return null; return null;
} }
WechatUserInfo userInfo = weChatUserRepository.findByEncryptedPhoneNoAndAppName(phoneNo, "xyqb"); WechatUserInfo userInfo = weChatUserRepository.findByEncryptedPhoneNoAndAppNameAndTenantId(phoneNo, "xyqb", tenantId);
if (userInfo == null) { if (userInfo == null) {
userInfo = weChatUserRepository.findByPhoneNoAndAppName(phoneNo, "xyqb"); userInfo = weChatUserRepository.findByPhoneNoAndAppNameAndTenantId(phoneNo, "xyqb", tenantId);
} }
return userInfo; return userInfo;
} }
...@@ -224,8 +224,8 @@ public class WechatServiceImpl implements IWechatService { ...@@ -224,8 +224,8 @@ public class WechatServiceImpl implements IWechatService {
* @TODO 2021-10-14 修改 findByUserIdAndAppName 为 findFirstByUserIdAndAppNameOrderByCreatedAtDesc, 原因是存在有多个数据情况 * @TODO 2021-10-14 修改 findByUserIdAndAppName 为 findFirstByUserIdAndAppNameOrderByCreatedAtDesc, 原因是存在有多个数据情况
*/ */
@Override @Override
public WechatUserInfo queryByUserId(Long userId) { public WechatUserInfo queryByUserId(Long userId,Integer tenantId) {
return weChatUserRepository.findFirstByUserIdAndAppNameOrderByCreatedAtDesc(userId, "xyqb"); return weChatUserRepository.findFirstByUserIdAndAppNameAndTenantIdOrderByCreatedAtDesc(userId, "xyqb",tenantId);
} }
/** /**
...@@ -234,41 +234,37 @@ public class WechatServiceImpl implements IWechatService { ...@@ -234,41 +234,37 @@ public class WechatServiceImpl implements IWechatService {
* @return * @return
* @TODO 2021-10-14 修改 findByUserIdAndAppName 为 findFirstByUserIdAndAppNameOrderByCreatedAtDesc, 原因是存在有多个数据情况 * @TODO 2021-10-14 修改 findByUserIdAndAppName 为 findFirstByUserIdAndAppNameOrderByCreatedAtDesc, 原因是存在有多个数据情况
*/ */
public WechatUserInfo queryByUserId(Long userId, String appName) { public WechatUserInfo queryByUserId(Long userId, String appName,String appId,Integer tenantId) {
if (appName == null || "".equals(appName.trim())) { if (appName == null || "".equals(appName.trim())) {
appName = "xyqb"; appName = "xyqb";
} }
return weChatUserRepository.findFirstByUserIdAndAppNameOrderByCreatedAtDesc(userId, appName); return weChatUserRepository.findFirstByUserIdAndAppNameAndTenantIdOrderByCreatedAtDesc(userId, appName, tenantId);
} }
@Override @Override
public int forbiddenUserWeChat(Long userId) { public int forbiddenUserWeChat(Long userId, Integer tenantId) {
return weChatUserRepository.dissociateByUserIdAndAppName(userId, "xyqb"); return weChatUserRepository.dissociateByUserIdAndAppNameAndTenantId(userId, "xyqb",tenantId);
} }
@Override
public int forbiddenXyqbAndWuxiUserByUserId(Long userId) {
return weChatUserRepository.forbiddenXyqbAndWuxiUserByUserId(userId);
}
@Override @Override
public List<WechatUserInfo> queryListByUserId(Long userId) { public List<WechatUserInfo> queryListByUserId(Long userId,Integer tenantId) {
return weChatUserRepository.findByUserId(userId); return weChatUserRepository.findByUserIdAndTenantId(userId,tenantId);
} }
@Override @Override
public List<WechatUserInfo> queryListByUnionId(String unionId) { public List<WechatUserInfo> queryListByUnionId(String unionId,Integer tenantId) {
return weChatUserRepository.findByUnionId(unionId); return weChatUserRepository.findByUnionIdAndAppIdAndTenantId(unionId,tenantId);
} }
@Override @Override
public List<WechatUserInfo> queryListByUnionIds(List<String> unionIds) { public List<WechatUserInfo> queryListByUnionIds(List<String> unionIds,Integer tenantId) {
return weChatUserRepository.findByUnionIdIn(unionIds); return weChatUserRepository.findByUnionIdInAndTenantId(unionIds,tenantId);
} }
@Override @Override
public List<WechatUserInfo> queryByUserIdsAndAppName(List<Long> userIds, String appName) { public List<WechatUserInfo> queryByUserIdsAndAppName(List<Long> userIds, String appName,Integer tenantId) {
return weChatUserRepository.findByUserIdInAndAppName(userIds, appName); return weChatUserRepository.findByUserIdInAndAppNameAndTenantId(userIds, appName,tenantId);
} }
} }
...@@ -3,6 +3,7 @@ package demo; ...@@ -3,6 +3,7 @@ package demo;
import cn.quantgroup.xyqb.Constants; import cn.quantgroup.xyqb.Constants;
import cn.quantgroup.xyqb.config.data.JpaConfig; import cn.quantgroup.xyqb.config.data.JpaConfig;
import cn.quantgroup.xyqb.config.data.RedisConfig; import cn.quantgroup.xyqb.config.data.RedisConfig;
import cn.quantgroup.xyqb.constant.UserConstant;
import cn.quantgroup.xyqb.controller.external.UserController; import cn.quantgroup.xyqb.controller.external.UserController;
import cn.quantgroup.xyqb.entity.User; import cn.quantgroup.xyqb.entity.User;
import cn.quantgroup.xyqb.service.user.IUserService; import cn.quantgroup.xyqb.service.user.IUserService;
...@@ -68,7 +69,7 @@ public class MockMvcTest { ...@@ -68,7 +69,7 @@ public class MockMvcTest {
String phone = "13461067662"; String phone = "13461067662";
User user = new User(); User user = new User();
user.setPhoneNo(phone); user.setPhoneNo(phone);
given(userService.findByPhoneInDb(phone)).willReturn(user); given(userService.findByPhoneInDb(phone, UserConstant.defaultTenantId)).willReturn(user);
mvc.perform(get("/log/list").accept(MediaType.TEXT_PLAIN)) mvc.perform(get("/log/list").accept(MediaType.TEXT_PLAIN))
.andExpect(status().isOk()).andExpect(content().string("Honda Civic")); .andExpect(status().isOk()).andExpect(content().string("Honda Civic"));
} }
......
...@@ -2,6 +2,7 @@ package demo; ...@@ -2,6 +2,7 @@ package demo;
import cn.quantgroup.xyqb.config.data.JpaConfig; import cn.quantgroup.xyqb.config.data.JpaConfig;
import cn.quantgroup.xyqb.config.data.RedisConfig; import cn.quantgroup.xyqb.config.data.RedisConfig;
import cn.quantgroup.xyqb.constant.UserConstant;
import cn.quantgroup.xyqb.entity.User; import cn.quantgroup.xyqb.entity.User;
import cn.quantgroup.xyqb.repository.IUserRepository; import cn.quantgroup.xyqb.repository.IUserRepository;
import com.ctrip.framework.apollo.spring.config.ApolloPropertySourceInitializer; import com.ctrip.framework.apollo.spring.config.ApolloPropertySourceInitializer;
...@@ -43,7 +44,7 @@ public class RepsitoryJpaTest { ...@@ -43,7 +44,7 @@ public class RepsitoryJpaTest {
String phone = "13461067662"; String phone = "13461067662";
User user = new User(); User user = new User();
user = userRepository.save(user); user = userRepository.save(user);
User userRep = userRepository.findByPhoneNo(phone); User userRep = userRepository.findByPhoneNoAndTenantId(phone, UserConstant.defaultTenantId);
Assert.assertEquals(user, userRep); Assert.assertEquals(user, userRep);
} }
...@@ -57,7 +58,7 @@ public class RepsitoryJpaTest { ...@@ -57,7 +58,7 @@ public class RepsitoryJpaTest {
user.setCreatedAt(LocalDateTime.now()); user.setCreatedAt(LocalDateTime.now());
user.setUpdatedAt(user.getCreatedAt()); user.setUpdatedAt(user.getCreatedAt());
user = userRepository.save(user); user = userRepository.save(user);
User userRep = userRepository.findByPhoneNo(phone); User userRep = userRepository.findByPhoneNoAndTenantId(phone, UserConstant.defaultTenantId);
Assert.assertEquals(user, userRep); Assert.assertEquals(user, userRep);
} }
......
package demo; package demo;
import cn.quantgroup.xyqb.Bootstrap; import cn.quantgroup.xyqb.Bootstrap;
import cn.quantgroup.xyqb.constant.UserConstant;
import cn.quantgroup.xyqb.entity.User; import cn.quantgroup.xyqb.entity.User;
import cn.quantgroup.xyqb.repository.IUserRepository; import cn.quantgroup.xyqb.repository.IUserRepository;
import com.ctrip.framework.apollo.spring.config.ApolloPropertySourceInitializer; import com.ctrip.framework.apollo.spring.config.ApolloPropertySourceInitializer;
...@@ -38,7 +39,7 @@ public class RepsitoryTest extends AbstractTransactionalJUnit4SpringContextTests ...@@ -38,7 +39,7 @@ public class RepsitoryTest extends AbstractTransactionalJUnit4SpringContextTests
String phone = "13461067662"; String phone = "13461067662";
User user = new User(); User user = new User();
user = userRepository.save(user); user = userRepository.save(user);
User userRep = userRepository.findByPhoneNo(phone); User userRep = userRepository.findByPhoneNoAndTenantId(phone,UserConstant.defaultTenantId);
Assert.assertEquals(user, userRep); Assert.assertEquals(user, userRep);
} }
...@@ -52,7 +53,7 @@ public class RepsitoryTest extends AbstractTransactionalJUnit4SpringContextTests ...@@ -52,7 +53,7 @@ public class RepsitoryTest extends AbstractTransactionalJUnit4SpringContextTests
user.setCreatedAt(LocalDateTime.now()); user.setCreatedAt(LocalDateTime.now());
user.setUpdatedAt(LocalDateTime.now()); user.setUpdatedAt(LocalDateTime.now());
user = userRepository.save(user); user = userRepository.save(user);
User userRep = userRepository.findByPhoneNo(phone); User userRep = userRepository.findByPhoneNoAndTenantId(phone,UserConstant.defaultTenantId);
Assert.assertEquals(user, userRep); Assert.assertEquals(user, userRep);
} }
......
package demo; package demo;
import cn.quantgroup.xyqb.Bootstrap; import cn.quantgroup.xyqb.Bootstrap;
import cn.quantgroup.xyqb.constant.UserConstant;
import cn.quantgroup.xyqb.entity.User; import cn.quantgroup.xyqb.entity.User;
import cn.quantgroup.xyqb.service.user.IUserService; import cn.quantgroup.xyqb.service.user.IUserService;
import com.ctrip.framework.apollo.spring.config.ApolloPropertySourceInitializer; import com.ctrip.framework.apollo.spring.config.ApolloPropertySourceInitializer;
...@@ -37,7 +38,7 @@ public class ServiceTest extends AbstractTransactionalJUnit4SpringContextTests { ...@@ -37,7 +38,7 @@ public class ServiceTest extends AbstractTransactionalJUnit4SpringContextTests {
String phone = "13461067662"; String phone = "13461067662";
User user = new User(); User user = new User();
user = userService.saveUser(user); user = userService.saveUser(user);
User userRep = userService.findByPhoneInDb(phone); User userRep = userService.findByPhoneInDb(phone, UserConstant.defaultTenantId);
Assert.assertEquals(user, userRep); Assert.assertEquals(user, userRep);
} }
...@@ -51,7 +52,7 @@ public class ServiceTest extends AbstractTransactionalJUnit4SpringContextTests { ...@@ -51,7 +52,7 @@ public class ServiceTest extends AbstractTransactionalJUnit4SpringContextTests {
user.setCreatedAt(LocalDateTime.now()); user.setCreatedAt(LocalDateTime.now());
user.setUpdatedAt(user.getCreatedAt()); user.setUpdatedAt(user.getCreatedAt());
user = userService.saveUser(user); user = userService.saveUser(user);
User userRep = userService.findByPhoneInDb(phone); User userRep = userService.findByPhoneInDb(phone, UserConstant.defaultTenantId);
Assert.assertEquals(user, userRep); Assert.assertEquals(user, userRep);
} }
......
...@@ -3,6 +3,7 @@ package login; ...@@ -3,6 +3,7 @@ package login;
import cn.quantgroup.tool.monitor.metric.api.TechHttpClient; import cn.quantgroup.tool.monitor.metric.api.TechHttpClient;
import cn.quantgroup.xyqb.Bootstrap; import cn.quantgroup.xyqb.Bootstrap;
import cn.quantgroup.xyqb.Constants; import cn.quantgroup.xyqb.Constants;
import cn.quantgroup.xyqb.constant.UserConstant;
import cn.quantgroup.xyqb.controller.external.UserController; import cn.quantgroup.xyqb.controller.external.UserController;
import cn.quantgroup.xyqb.controller.internal.user.InnerController; import cn.quantgroup.xyqb.controller.internal.user.InnerController;
import cn.quantgroup.xyqb.model.AuthBean; import cn.quantgroup.xyqb.model.AuthBean;
...@@ -74,7 +75,7 @@ public class UserLoginTest { ...@@ -74,7 +75,7 @@ public class UserLoginTest {
String ip = "172.16.0.1"; String ip = "172.16.0.1";
request.addHeader("x-original-client-ip", ip); request.addHeader("x-original-client-ip", ip);
request.addHeader("authorization", "Basic MTg1MTMzNDE4MDg6MTIzNDU2"); request.addHeader("authorization", "Basic MTg1MTMzNDE4MDg6MTIzNDU2");
JsonResult jsonResult = userController.login(channelId, appChannel, createFrom, userId, "xyqb", "xyqb", null, request); JsonResult jsonResult = userController.login(channelId, appChannel, createFrom, userId, "xyqb", "xyqb", null, request, "",UserConstant.defaultTenantId);
AuthBean authBean = (AuthBean) jsonResult.getData(); AuthBean authBean = (AuthBean) jsonResult.getData();
String token = authBean.getToken(); String token = authBean.getToken();
System.out.println("user token:" + token); System.out.println("user token:" + token);
......
...@@ -31,19 +31,6 @@ public class WechatTest { ...@@ -31,19 +31,6 @@ public class WechatTest {
@Test @Test
public void test(){ public void test(){
WechatUserInfo xyqb = weChatUserRepository.findByOpenIdAndAppName("ou5l71eY3oO0oM88I-fp3pfC9sQg", "xyqb");
log.info("xyqb:{} ",xyqb);
WechatUserInfo xyqb1 = weChatUserRepository.findByUserIdAndAppName(58847276L, "xyqb");
log.info("xyqb1:{} ",xyqb1);
WechatUserInfo xyqb2 = weChatUserRepository.findByPhoneNoAndAppName("13718195234", "xyqb");
log.info("xyqb2:{} ",xyqb2);
long xyqb3 = weChatUserRepository.countByOpenIdAndAppName("ou5l71eY3oO0oM88I-fp3pfC9sQg", "xyqb");
log.info("xyqb3:{} ",xyqb3);
// int xyqb4 = weChatUserRepository.dissociateByUserIdAndAppName(58847276L, "xyqb");
// log.info("xyqb4:{} ",xyqb4);
int i = weChatUserRepository.dissociateUser("ou5l71UOXLkIXNz0dtW1znJSTwR0", 58847276L, "xyqb");
log.info("xyqb5:{} ",i);
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment