From ff8edc9c28ad4f2b98b2cba014af267fd6ba41da Mon Sep 17 00:00:00 2001
From: Pu Zhibing <393733352@qq.com>
Date: 星期三, 15 一月 2025 10:43:35 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'
---
ruoyi-auth/src/main/java/com/ruoyi/auth/controller/TokenController.java | 21 +++++
ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysUserController.java | 2
ruoyi-service/ruoyi-account/src/main/resources/mapper/account/AgentApplicationMapper.xml | 2
ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/RemoteUserFallbackFactory.java | 5 +
ruoyi-auth/src/main/java/com/ruoyi/auth/service/SysLoginService.java | 54 +++++++++++++
ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysUserMapper.java | 1
ruoyi-modules/ruoyi-system/src/main/resources/mapping/system/SysUserMapper.xml | 6 +
ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/AppUserController.java | 55 +++++++++++--
ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TechnicianController.java | 28 ++++--
ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysUserService.java | 1
ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java | 4 +
ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/RemoteUserService.java | 2
12 files changed, 162 insertions(+), 19 deletions(-)
diff --git a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/RemoteUserService.java b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/RemoteUserService.java
index 012d8b9..edd38a6 100644
--- a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/RemoteUserService.java
+++ b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/RemoteUserService.java
@@ -26,6 +26,8 @@
*/
@GetMapping("/user/info/{username}")
public R<LoginUser> getUserInfo(@PathVariable("username") String username, @RequestHeader(SecurityConstants.FROM_SOURCE) String source);
+ @GetMapping("/user/infoShop/{username}")
+ public R<LoginUser> infoShop(@PathVariable("username") String username, @RequestHeader(SecurityConstants.FROM_SOURCE) String source);
/**
* 注册用户信息
diff --git a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/RemoteUserFallbackFactory.java b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/RemoteUserFallbackFactory.java
index 7d7f7e8..c7fee51 100644
--- a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/RemoteUserFallbackFactory.java
+++ b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/RemoteUserFallbackFactory.java
@@ -30,6 +30,11 @@
{
return R.fail("获取用户失败:" + throwable.getMessage());
}
+ @Override
+ public R<LoginUser> infoShop(String username, String source)
+ {
+ return R.fail("门店登录获取用户失败:" + throwable.getMessage());
+ }
@Override
public R<Boolean> registerUserInfo(SysUser sysUser, String source)
diff --git a/ruoyi-auth/src/main/java/com/ruoyi/auth/controller/TokenController.java b/ruoyi-auth/src/main/java/com/ruoyi/auth/controller/TokenController.java
index 6b128cc..6b53013 100644
--- a/ruoyi-auth/src/main/java/com/ruoyi/auth/controller/TokenController.java
+++ b/ruoyi-auth/src/main/java/com/ruoyi/auth/controller/TokenController.java
@@ -64,6 +64,27 @@
userClient.updateSysUser(sysUser);
return R.ok(map);
}
+ @PostMapping("loginShop")
+ public R<?> loginShop(@RequestBody LoginBody form, HttpServletRequest request) {
+ // 用户登录
+ LoginUser userInfo = sysLoginService.loginShop(form.getUsername(), form.getPassword(), request);
+ HashMap<String, Object> map = new HashMap<>();
+ map.put("token", tokenService.createToken(userInfo));
+ List<SysRole> roles = userInfo.getSysUser().getRoles();
+ if(CollectionUtils.isEmpty(roles)){
+ return R.fail("请关联角色!");
+ }
+
+ map.put("roleName",roles.get(0).getRoleName());
+ map.put("info", userInfo);
+ // 修改用户最后登录时间
+ SysUser sysUser = new SysUser();
+ sysUser.setUserId(userInfo.getSysUser().getUserId());
+ sysUser.setLoginDate(new Date());
+ System.out.println("修改用户登录时间" + sysUser);
+ userClient.updateSysUser(sysUser);
+ return R.ok(map);
+ }
@DeleteMapping("logout")
public R<?> logout(HttpServletRequest request) {
diff --git a/ruoyi-auth/src/main/java/com/ruoyi/auth/service/SysLoginService.java b/ruoyi-auth/src/main/java/com/ruoyi/auth/service/SysLoginService.java
index 3b82526..ed689ec 100644
--- a/ruoyi-auth/src/main/java/com/ruoyi/auth/service/SysLoginService.java
+++ b/ruoyi-auth/src/main/java/com/ruoyi/auth/service/SysLoginService.java
@@ -91,6 +91,60 @@
if (UserStatus.DISABLE.getCode().equals(user.getStatus())) {
recordLogService.recordLogininfor(request, user.getUserId().intValue(), username, Constants.LOGIN_FAIL_STATUS, "用户已停用,请联系管理员");
// throw new ServiceException("对不起,您的账号:" + username + " 已停用");
+ throw new ServiceException("您所属门店已被冻结,请联系平台");
+ }
+ passwordService.validate(user, password, request);
+ recordLogService.recordLogininfor(request, user.getUserId().intValue(), username, Constants.LOGIN_SUCCESS_STATUS, "登录成功");
+ return userInfo;
+ }
+ public LoginUser loginShop(String username, String password, HttpServletRequest request) {
+ username = username.trim();
+ // 查询用户信息
+ R<LoginUser> userResult = remoteUserService.infoShop(username, SecurityConstants.INNER);
+
+ if (StringUtils.isNull(userResult) || StringUtils.isNull(userResult.getData())) {
+ recordLogService.recordLogininfor(request, null, username, Constants.LOGIN_FAIL_STATUS, "登录用户不存在");
+ throw new ServiceException("登录用户:" + username + " 不存在");
+ }
+ LoginUser userInfo = userResult.getData();
+ SysUser user = userResult.getData().getSysUser();
+
+ // 用户名或密码为空 错误
+ if (StringUtils.isAnyBlank(username, password)) {
+ recordLogService.recordLogininfor(request, user.getUserId().intValue(), username, Constants.LOGIN_FAIL_STATUS, "用户/密码必须填写");
+ throw new ServiceException("用户/密码必须填写");
+ }
+ // 密码如果不在指定范围内 错误
+ if (password.length() < UserConstants.PASSWORD_MIN_LENGTH
+ || password.length() > UserConstants.PASSWORD_MAX_LENGTH) {
+ recordLogService.recordLogininfor(request, user.getUserId().intValue(), username, Constants.LOGIN_FAIL_STATUS, "用户密码不在指定范围");
+ throw new ServiceException("用户密码不在指定范围");
+ }
+ // 用户名不在指定范围内 错误
+ if (username.length() < UserConstants.USERNAME_MIN_LENGTH
+ || username.length() > UserConstants.USERNAME_MAX_LENGTH) {
+ recordLogService.recordLogininfor(request, user.getUserId().intValue(), username, Constants.LOGIN_FAIL_STATUS, "用户名不在指定范围");
+ throw new ServiceException("用户名不在指定范围");
+ }
+ // IP黑名单校验
+ String blackStr = Convert.toStr(redisService.getCacheObject(CacheConstants.SYS_LOGIN_BLACKIPLIST));
+ if (IpUtils.isMatchedIp(blackStr, IpUtils.getIpAddr())) {
+ recordLogService.recordLogininfor(request, user.getUserId().intValue(), username, Constants.LOGIN_FAIL_STATUS, "很遗憾,访问IP已被列入系统黑名单");
+ throw new ServiceException("很遗憾,访问IP已被列入系统黑名单");
+ }
+
+ if (R.FAIL == userResult.getCode()) {
+ throw new ServiceException(userResult.getMsg());
+ }
+
+
+ if (UserStatus.DELETED.getCode().equals(user.getDelFlag())) {
+ recordLogService.recordLogininfor(request, user.getUserId().intValue(), username, Constants.LOGIN_FAIL_STATUS, "对不起,您的账号已被删除");
+ throw new ServiceException("对不起,您的账号:" + username + " 已被删除");
+ }
+ if (UserStatus.DISABLE.getCode().equals(user.getStatus())) {
+ recordLogService.recordLogininfor(request, user.getUserId().intValue(), username, Constants.LOGIN_FAIL_STATUS, "用户已停用,请联系管理员");
+// throw new ServiceException("对不起,您的账号:" + username + " 已停用");
throw new ServiceException("您的账号已被禁用,请联系平台");
}
passwordService.validate(user, password, request);
diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysUserController.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysUserController.java
index 2259d4d..9a8431d 100644
--- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysUserController.java
+++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysUserController.java
@@ -425,7 +425,7 @@
@InnerAuth
@GetMapping("/infoShop/{username}")
public R<LoginUser> infoShop(@PathVariable("username") String username) {
- SysUser sysUser = userService.selectUserByUserName(username);
+ SysUser sysUser = userService.selectUserShopByUserName(username);
if (StringUtils.isNull(sysUser)) {
return R.fail("用户名或密码错误");
}
diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysUserMapper.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysUserMapper.java
index 072eb64..1e31dc7 100644
--- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysUserMapper.java
+++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysUserMapper.java
@@ -48,6 +48,7 @@
* @return 用户对象信息
*/
SysUser selectUserByUserName(String userName);
+ SysUser selectUserShopByUserName(String userName);
/**
* 通过用户ID查询用户
diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysUserService.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysUserService.java
index d6a88df..776f124 100644
--- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysUserService.java
+++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysUserService.java
@@ -47,6 +47,7 @@
* @return 用户对象信息
*/
SysUser selectUserByUserName(String userName);
+ SysUser selectUserShopByUserName(String userName);
/**
* 通过用户ID查询用户
diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java
index 5098818..1e08638 100644
--- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java
+++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java
@@ -137,6 +137,10 @@
public SysUser selectUserByUserName(String userName) {
return userMapper.selectUserByUserName(userName);
}
+ @Override
+ public SysUser selectUserShopByUserName(String userName) {
+ return userMapper.selectUserShopByUserName(userName);
+ }
/**
* 通过用户ID查询用户
diff --git a/ruoyi-modules/ruoyi-system/src/main/resources/mapping/system/SysUserMapper.xml b/ruoyi-modules/ruoyi-system/src/main/resources/mapping/system/SysUserMapper.xml
index d1cd882..ac04b1d 100644
--- a/ruoyi-modules/ruoyi-system/src/main/resources/mapping/system/SysUserMapper.xml
+++ b/ruoyi-modules/ruoyi-system/src/main/resources/mapping/system/SysUserMapper.xml
@@ -105,6 +105,12 @@
<select id="selectUserByUserName" parameterType="String" resultMap="SysUserResult">
<include refid="selectUserVo"/>
where u.user_name = #{userName} and u.del_flag = '0'
+ and u.role_type = 1
+ </select>
+ <select id="selectUserShopByUserName" parameterType="String" resultMap="SysUserResult">
+ <include refid="selectUserVo"/>
+ where u.user_name = #{userName} and u.del_flag = '0'
+ and u.role_type = 2
</select>
<select id="selectUserById" parameterType="Long" resultMap="SysUserResult">
diff --git a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/AppUserController.java b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/AppUserController.java
index d7472d4..c27d467 100644
--- a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/AppUserController.java
+++ b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/AppUserController.java
@@ -272,15 +272,54 @@
user.setTopUser(byId);
}
//获取绑定下级列表
- List<AppUser> list = appUserService.lambdaQuery().eq(AppUser::getInviteUserId, user.getId()).list();
+ List<AppUser> list = appUserService.lambdaQuery()
+ .eq(AppUser::getInviteUserId, user.getId())
+ .eq(AppUser::getDelFlag, 0)
+ .ne(AppUser::getStatus, 3)
+ .list();
for (AppUser appUser : list) {
- Long count1 = appUserService.lambdaQuery().eq(AppUser::getVipId, 1).eq(AppUser::getInviteUserId, appUser.getId()).count();
- Long count2 = appUserService.lambdaQuery().eq(AppUser::getVipId, 2).eq(AppUser::getInviteUserId, appUser.getId()).count();
- Long count3 = appUserService.lambdaQuery().eq(AppUser::getVipId, 3).eq(AppUser::getInviteUserId, appUser.getId()).count();
- Long count4 = appUserService.lambdaQuery().eq(AppUser::getVipId, 4).eq(AppUser::getInviteUserId, appUser.getId()).count();
- Long count5 = appUserService.lambdaQuery().eq(AppUser::getVipId, 5).eq(AppUser::getInviteUserId, appUser.getId()).count();
- Long count6 = appUserService.lambdaQuery().eq(AppUser::getVipId, 6).eq(AppUser::getInviteUserId, appUser.getId()).count();
- Long count7 = appUserService.lambdaQuery().eq(AppUser::getVipId, 7).eq(AppUser::getInviteUserId, appUser.getId()).count();
+ Long count1 = appUserService.lambdaQuery()
+ .eq(AppUser::getVipId, 1)
+ .eq(AppUser::getInviteUserId, appUser.getId())
+ .eq(AppUser::getDelFlag, 0)
+ .ne(AppUser::getStatus, 3)
+ .count();
+ Long count2 = appUserService.lambdaQuery()
+ .eq(AppUser::getVipId, 2)
+ .eq(AppUser::getInviteUserId, appUser.getId())
+ .eq(AppUser::getDelFlag, 0)
+ .ne(AppUser::getStatus, 3)
+ .count();
+ Long count3 = appUserService.lambdaQuery()
+ .eq(AppUser::getVipId, 3)
+ .eq(AppUser::getInviteUserId, appUser.getId())
+ .eq(AppUser::getDelFlag, 0)
+ .ne(AppUser::getStatus, 3)
+ .count();
+ Long count4 = appUserService.lambdaQuery()
+ .eq(AppUser::getVipId, 4)
+ .eq(AppUser::getInviteUserId, appUser.getId())
+ .eq(AppUser::getDelFlag, 0)
+ .ne(AppUser::getStatus, 3)
+ .count();
+ Long count5 = appUserService.lambdaQuery()
+ .eq(AppUser::getVipId, 5)
+ .eq(AppUser::getInviteUserId, appUser.getId())
+ .eq(AppUser::getDelFlag, 0)
+ .ne(AppUser::getStatus, 3)
+ .count();
+ Long count6 = appUserService.lambdaQuery()
+ .eq(AppUser::getVipId, 6)
+ .eq(AppUser::getInviteUserId, appUser.getId())
+ .eq(AppUser::getDelFlag, 0)
+ .ne(AppUser::getStatus, 3)
+ .count();
+ Long count7 = appUserService.lambdaQuery()
+ .eq(AppUser::getVipId, 7)
+ .eq(AppUser::getInviteUserId, appUser.getId())
+ .eq(AppUser::getDelFlag, 0)
+ .ne(AppUser::getStatus, 3)
+ .count();
appUser.setCount1(count1);
appUser.setCount2(count2);
appUser.setCount3(count3);
diff --git a/ruoyi-service/ruoyi-account/src/main/resources/mapper/account/AgentApplicationMapper.xml b/ruoyi-service/ruoyi-account/src/main/resources/mapper/account/AgentApplicationMapper.xml
index a681db5..9c925bc 100644
--- a/ruoyi-service/ruoyi-account/src/main/resources/mapper/account/AgentApplicationMapper.xml
+++ b/ruoyi-service/ruoyi-account/src/main/resources/mapper/account/AgentApplicationMapper.xml
@@ -39,7 +39,7 @@
and t2.phone like concat('%',#{agentQuery.phone},'%')
</if>
<if test="agentQuery.vipId !=null">
- and t1.applicationVipId = #{agentQuery.vipId}
+ and t1.application_vip_id = #{agentQuery.vipId}
</if>
<if test="agentQuery.status !=null">
and t1.status = #{agentQuery.status}
diff --git a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TechnicianController.java b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TechnicianController.java
index d5d560c..3691afe 100644
--- a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TechnicianController.java
+++ b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TechnicianController.java
@@ -77,6 +77,7 @@
Page<Technician> page = technicianService.lambdaQuery().like(name != null, Technician::getName, name)
.like(phone != null, Technician::getPhone, phone)
.eq(Technician::getShopId, sysUser.getObjectId())
+ .eq(Technician::getDelFlag, 0)
.page(Page.of(pageNum, pageSize));
return R.ok(page);
}
@@ -89,7 +90,10 @@
SysUser sysUser = sysUserClient.getSysUser(userid).getData();
if (technician.getId()==null) {
technician.setSubscribeStatus(2);
- List<Technician> list = technicianService.lambdaQuery().eq(Technician::getPhone, technician.getPhone()).eq(Technician::getShopId, sysUser.getObjectId()).list();
+ List<Technician> list = technicianService.lambdaQuery()
+ .eq(Technician::getPhone, technician.getPhone())
+ .eq(Technician::getShopId, sysUser.getObjectId())
+ .eq(Technician::getDelFlag, 0).list();
if (!list.isEmpty()) {
return R.fail("当前号码已经添加");
}
@@ -107,14 +111,20 @@
appUserShopClient.saveAppUserShop(appUserShop);
}else {
- List<Technician> list = technicianService.lambdaQuery().eq(Technician::getPhone, technician.getPhone()).eq(Technician::getShopId, sysUser.getObjectId())
- .ne(Technician::getId, technician.getId()).list();
- if(list.size() > 0){
- return R.fail("当前号码已经添加");
- }
- R<AppUser> appUserByPhone1 = appUserClient.getAppUserByPhone1(technician.getPhone());
- if (appUserByPhone1.getData()==null){
- return R.fail("当前号码暂无注册用户");
+ Technician byId = technicianService.getById(technician.getId());
+ if (byId.getPhone()!=technician.getPhone()){
+ List<Technician> list = technicianService.lambdaQuery()
+ .eq(Technician::getPhone, technician.getPhone())
+ .eq(Technician::getShopId, sysUser.getObjectId())
+ .ne(Technician::getId, byId.getId())
+ .eq(Technician::getDelFlag, 0).list();
+ if (!list.isEmpty()) {
+ return R.fail("当前号码已经添加");
+ }
+ R<AppUser> appUserByPhone1 = appUserClient.getAppUserByPhone1(technician.getPhone());
+ if (appUserByPhone1.getData()==null){
+ return R.fail("当前号码暂无注册用户");
+ }
}
}
technician.setShopId(sysUser.getObjectId());
--
Gitblit v1.7.1