diff --git a/common-ruoyi/ruoyi-common/src/main/java/com/ruoyi/common/utils/MathUtils.java b/common-ruoyi/ruoyi-common/src/main/java/com/ruoyi/common/utils/MathUtils.java
index edfb60c..c58a214 100644
--- a/common-ruoyi/ruoyi-common/src/main/java/com/ruoyi/common/utils/MathUtils.java
+++ b/common-ruoyi/ruoyi-common/src/main/java/com/ruoyi/common/utils/MathUtils.java
@@ -144,4 +144,14 @@ public class MathUtils {
}
return min;
}
+
+ public static boolean equals(Integer a, Integer b) {
+ if (a == null) {
+ a = 0;
+ }
+ if (b == null) {
+ b = 0;
+ }
+ return a.equals(b);
+ }
}
diff --git a/ruoyi-service/src/main/java/com/ruoyi/bst/areaJoin/service/impl/AreaJoinServiceImpl.java b/ruoyi-service/src/main/java/com/ruoyi/bst/areaJoin/service/impl/AreaJoinServiceImpl.java
index 3495cdc..2f1ee53 100644
--- a/ruoyi-service/src/main/java/com/ruoyi/bst/areaJoin/service/impl/AreaJoinServiceImpl.java
+++ b/ruoyi-service/src/main/java/com/ruoyi/bst/areaJoin/service/impl/AreaJoinServiceImpl.java
@@ -14,9 +14,13 @@ import com.ruoyi.bst.areaJoin.domain.AreaJoinVO;
import com.ruoyi.bst.areaJoin.mapper.AreaJoinMapper;
import com.ruoyi.bst.areaJoin.service.AreaJoinService;
import com.ruoyi.bst.areaJoin.service.AreaJoinValidator;
+import com.ruoyi.common.constant.RoleConstants;
import com.ruoyi.common.utils.DateUtils;
import com.ruoyi.common.utils.StringUtils;
import com.ruoyi.common.utils.collection.CollectionUtils;
+import com.ruoyi.system.role.service.RoleService;
+
+import lombok.extern.slf4j.Slf4j;
/**
* 运营加盟Service业务层处理
@@ -25,6 +29,7 @@ import com.ruoyi.common.utils.collection.CollectionUtils;
* @date 2025-03-25
*/
@Service
+@Slf4j
public class AreaJoinServiceImpl implements AreaJoinService
{
@Autowired
@@ -36,6 +41,9 @@ public class AreaJoinServiceImpl implements AreaJoinService
@Autowired
private TransactionTemplate transactionTemplate;
+ @Autowired
+ private RoleService roleService;
+
/**
* 查询运营加盟
*
@@ -110,6 +118,9 @@ public class AreaJoinServiceImpl implements AreaJoinService
int rows = areaJoinMapper.insertAreaJoin(areaJoin);
if (rows > 0) {
+ // 尝试修改用户角色
+ this.tryUpdateUserRole(areaJoin);
+
// 后校验
areaJoinValidator.afterCheck(areaJoin.getId());
}
@@ -133,6 +144,9 @@ public class AreaJoinServiceImpl implements AreaJoinService
int rows = areaJoinMapper.updateAreaJoin(areaJoin);
if (rows > 0) {
+ // 尝试修改用户角色
+ this.tryUpdateUserRole(areaJoin);
+
// 后校验
areaJoinValidator.afterCheck(areaJoin.getId());
}
@@ -143,6 +157,18 @@ public class AreaJoinServiceImpl implements AreaJoinService
return result == null ? 0 : result;
}
+ /**
+ * 尝试修改用户角色
+ *
+ * @param areaJoin
+ */
+ private void tryUpdateUserRole(AreaJoin areaJoin) {
+ try {
+ roleService.insertAuthUsers(RoleConstants.JOIN, Collections.singletonList(areaJoin.getUserId()));
+ } catch (Exception e) {
+ log.warn("尝试修改ID为{}的用户角色失败:{}", areaJoin.getUserId(), e);
+ }
+ }
/**
* 批量删除运营加盟
*
diff --git a/ruoyi-service/src/main/java/com/ruoyi/bst/suit/service/impl/SuitValidatorImpl.java b/ruoyi-service/src/main/java/com/ruoyi/bst/suit/service/impl/SuitValidatorImpl.java
index 1a2f522..4d2ea2e 100644
--- a/ruoyi-service/src/main/java/com/ruoyi/bst/suit/service/impl/SuitValidatorImpl.java
+++ b/ruoyi-service/src/main/java/com/ruoyi/bst/suit/service/impl/SuitValidatorImpl.java
@@ -5,6 +5,7 @@ import java.util.Arrays;
import java.util.HashSet;
import java.util.List;
+import com.ruoyi.common.utils.MathUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@@ -92,7 +93,7 @@ public class SuitValidatorImpl implements SuitValidator {
SuitIntervalFeeRule nextRule = intervalRules.get(i + 1);
ServiceUtil.assertion(rule.getEnd() == null, "区间结束时间不能为空");
ServiceUtil.assertion(rule.getStart() > rule.getEnd(), "区间的结束时间不允许小于开始时间");
- ServiceUtil.assertion(rule.getEnd() != nextRule.getStart(), "区间的结束时间必须等于下一个区间的开始时间");
+ ServiceUtil.assertion(!MathUtils.equals(rule.getEnd(), nextRule.getStart()), "区间的结束时间必须等于下一个区间的开始时间");
int eachUnit = rule.getEachUnit();
int duration = rule.getEnd() - rule.getStart();
ServiceUtil.assertion(duration % eachUnit != 0, "区间间隔必须能够被区间整除");
diff --git a/ruoyi-service/src/main/java/com/ruoyi/iot/service/impl/IotConverterImpl.java b/ruoyi-service/src/main/java/com/ruoyi/iot/service/impl/IotConverterImpl.java
index 950e7a6..7dee7f0 100644
--- a/ruoyi-service/src/main/java/com/ruoyi/iot/service/impl/IotConverterImpl.java
+++ b/ruoyi-service/src/main/java/com/ruoyi/iot/service/impl/IotConverterImpl.java
@@ -1,5 +1,6 @@
package com.ruoyi.iot.service.impl;
+import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.List;
@@ -69,10 +70,10 @@ public class IotConverterImpl implements IotConverter {
if (sys == null) {
return;
}
- // TODO 部分硬件版本,电压除以10
- // if (sys.getBat() != null) {
- // sys.setBat(sys.getBat().divide(new BigDecimal(10), 2, BigDecimal.ROUND_HALF_UP));
- // }
+ // 旧版硬件BUG,电压超过100V的需要除以10
+ if (sys.getBat() != null && sys.getBat().compareTo(BigDecimal.valueOf(100)) >= 0) {
+ sys.setBat(sys.getBat().divide(BigDecimal.valueOf(10), 2, BigDecimal.ROUND_HALF_UP));
+ }
device.setSys(sys);
}
diff --git a/ruoyi-service/src/main/java/com/ruoyi/system/role/mapper/RoleMapper.java b/ruoyi-service/src/main/java/com/ruoyi/system/role/mapper/RoleMapper.java
index 3e23926..d2242b5 100644
--- a/ruoyi-service/src/main/java/com/ruoyi/system/role/mapper/RoleMapper.java
+++ b/ruoyi-service/src/main/java/com/ruoyi/system/role/mapper/RoleMapper.java
@@ -1,6 +1,9 @@
package com.ruoyi.system.role.mapper;
import java.util.List;
+
+import org.apache.ibatis.annotations.Param;
+
import com.ruoyi.common.core.domain.entity.Role;
/**
@@ -104,4 +107,11 @@ public interface RoleMapper
* @return 结果
*/
public int deleteRoleByIds(Long[] roleIds);
+
+ /**
+ * 根据角色编码查询角色
+ * @param roleKey
+ * @return
+ */
+ public Role selectRoleByKey(@Param("roleKey") String roleKey);
}
diff --git a/ruoyi-service/src/main/java/com/ruoyi/system/role/mapper/RoleMapper.xml b/ruoyi-service/src/main/java/com/ruoyi/system/role/mapper/RoleMapper.xml
index ec39b21..095e84e 100644
--- a/ruoyi-service/src/main/java/com/ruoyi/system/role/mapper/RoleMapper.xml
+++ b/ruoyi-service/src/main/java/com/ruoyi/system/role/mapper/RoleMapper.xml
@@ -61,6 +61,14 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
WHERE r.del_flag = '0' and ur.user_id = #{userId}
+
+
+
+
+
diff --git a/ruoyi-service/src/main/java/com/ruoyi/system/role/service/RoleService.java b/ruoyi-service/src/main/java/com/ruoyi/system/role/service/RoleService.java
index 4c3f5aa..6caca2e 100644
--- a/ruoyi-service/src/main/java/com/ruoyi/system/role/service/RoleService.java
+++ b/ruoyi-service/src/main/java/com/ruoyi/system/role/service/RoleService.java
@@ -1,11 +1,11 @@
package com.ruoyi.system.role.service;
-import com.ruoyi.common.core.domain.entity.Role;
-import com.ruoyi.system.userRole.domain.UserRole;
-
import java.util.List;
import java.util.Set;
+import com.ruoyi.common.core.domain.entity.Role;
+import com.ruoyi.system.userRole.domain.UserRole;
+
/**
* 角色业务层
*
@@ -170,5 +170,13 @@ public interface RoleService
* @param userIds 需要删除的用户数据ID
* @return 结果
*/
- public int insertAuthUsers(Long roleId, Long[] userIds);
+ public int insertAuthUsers(Long roleId, List userIds);
+
+ /**
+ * 批量选择授权用户角色(根据角色编码)
+ * @param code
+ * @param userIds
+ * @return
+ */
+ int insertAuthUsers(String code, List userIds);
}
diff --git a/ruoyi-service/src/main/java/com/ruoyi/system/role/service/impl/RoleServiceImpl.java b/ruoyi-service/src/main/java/com/ruoyi/system/role/service/impl/RoleServiceImpl.java
index 5277c1a..b3a90cc 100644
--- a/ruoyi-service/src/main/java/com/ruoyi/system/role/service/impl/RoleServiceImpl.java
+++ b/ruoyi-service/src/main/java/com/ruoyi/system/role/service/impl/RoleServiceImpl.java
@@ -16,14 +16,14 @@ import com.ruoyi.common.core.domain.entity.User;
import com.ruoyi.common.exception.ServiceException;
import com.ruoyi.common.utils.SecurityUtils;
import com.ruoyi.common.utils.StringUtils;
-import com.ruoyi.system.roleDept.domain.RoleDept;
-import com.ruoyi.system.roleMenu.domain.RoleMenu;
-import com.ruoyi.system.userRole.domain.UserRole;
-import com.ruoyi.system.roleDept.mapper.RoleDeptMapper;
import com.ruoyi.system.role.mapper.RoleMapper;
-import com.ruoyi.system.roleMenu.mapper.RoleMenuMapper;
-import com.ruoyi.system.userRole.mapper.UserRoleMapper;
import com.ruoyi.system.role.service.RoleService;
+import com.ruoyi.system.roleDept.domain.RoleDept;
+import com.ruoyi.system.roleDept.mapper.RoleDeptMapper;
+import com.ruoyi.system.roleMenu.domain.RoleMenu;
+import com.ruoyi.system.roleMenu.mapper.RoleMenuMapper;
+import com.ruoyi.system.userRole.domain.UserRole;
+import com.ruoyi.system.userRole.mapper.UserRoleMapper;
/**
* 角色 业务层处理
@@ -410,7 +410,7 @@ public class RoleServiceImpl implements RoleService
* @return 结果
*/
@Override
- public int insertAuthUsers(Long roleId, Long[] userIds)
+ public int insertAuthUsers(Long roleId, List userIds)
{
// 新增用户与角色管理
List list = new ArrayList();
@@ -423,4 +423,22 @@ public class RoleServiceImpl implements RoleService
}
return userRoleMapper.batchUserRole(list);
}
+
+ @Override
+ public int insertAuthUsers(String key, List userIds) {
+ Role role = this.selectRoleByKey(key);
+ if (role == null) {
+ return 0;
+ }
+ return this.insertAuthUsers(role.getRoleId(), userIds);
+ }
+
+ /**
+ * 根据角色编码查询角色
+ * @param key
+ * @return
+ */
+ public Role selectRoleByKey(String key) {
+ return roleMapper.selectRoleByKey(key);
+ }
}
diff --git a/ruoyi-service/src/main/java/com/ruoyi/system/user/domain/UserQuery.java b/ruoyi-service/src/main/java/com/ruoyi/system/user/domain/UserQuery.java
index b1e04af..25dbc77 100644
--- a/ruoyi-service/src/main/java/com/ruoyi/system/user/domain/UserQuery.java
+++ b/ruoyi-service/src/main/java/com/ruoyi/system/user/domain/UserQuery.java
@@ -56,4 +56,7 @@ public class UserQuery extends UserVO {
@ApiModelProperty("创建日期范围")
@DateTimeFormat(pattern = "yyyy-MM-dd")
private List createDateRange;
+
+ @ApiModelProperty("角色ID")
+ private Long roleId;
}
diff --git a/ruoyi-service/src/main/java/com/ruoyi/system/user/mapper/UserMapper.xml b/ruoyi-service/src/main/java/com/ruoyi/system/user/mapper/UserMapper.xml
index 0dded07..90ab50a 100644
--- a/ruoyi-service/src/main/java/com/ruoyi/system/user/mapper/UserMapper.xml
+++ b/ruoyi-service/src/main/java/com/ruoyi/system/user/mapper/UserMapper.xml
@@ -177,6 +177,14 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
#{item}
+
+ and u.nick_name like concat('%', #{nickName}, '%')
+
+
+ and u.user_id in (
+ select sur.user_id from sys_user_role sur where sur.role_id = #{roleId}
+ )
+
AND u.dept_id IN
diff --git a/ruoyi-web/src/main/java/com/ruoyi/web/app/AppDeviceController.java b/ruoyi-web/src/main/java/com/ruoyi/web/app/AppDeviceController.java
index 393ffef..488741a 100644
--- a/ruoyi-web/src/main/java/com/ruoyi/web/app/AppDeviceController.java
+++ b/ruoyi-web/src/main/java/com/ruoyi/web/app/AppDeviceController.java
@@ -24,8 +24,6 @@ public class AppDeviceController extends BaseController {
@Autowired
private DeviceService deviceService;
-
-
@ApiOperation("获取附近可用车辆列表")
@GetMapping("/listNearBy")
@Anonymous
diff --git a/ruoyi-web/src/main/java/com/ruoyi/web/system/SysRoleController.java b/ruoyi-web/src/main/java/com/ruoyi/web/system/SysRoleController.java
index c142653..4d054bb 100644
--- a/ruoyi-web/src/main/java/com/ruoyi/web/system/SysRoleController.java
+++ b/ruoyi-web/src/main/java/com/ruoyi/web/system/SysRoleController.java
@@ -4,7 +4,6 @@ import java.util.List;
import javax.servlet.http.HttpServletResponse;
-import com.ruoyi.common.core.domain.vo.UserVO;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.validation.annotation.Validated;
@@ -23,6 +22,7 @@ import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.core.domain.entity.Role;
import com.ruoyi.common.core.domain.entity.User;
import com.ruoyi.common.core.domain.model.LoginUser;
+import com.ruoyi.common.core.domain.vo.UserVO;
import com.ruoyi.common.core.page.TableDataInfo;
import com.ruoyi.common.enums.BusinessType;
import com.ruoyi.common.utils.StringUtils;
@@ -31,9 +31,9 @@ import com.ruoyi.framework.web.service.SysPermissionService;
import com.ruoyi.framework.web.service.TokenService;
import com.ruoyi.system.dept.domain.DeptQuery;
import com.ruoyi.system.dept.service.DeptService;
-import com.ruoyi.system.userRole.domain.UserRole;
import com.ruoyi.system.role.service.RoleService;
import com.ruoyi.system.user.service.UserService;
+import com.ruoyi.system.userRole.domain.UserRole;
/**
* 角色信息
@@ -245,7 +245,7 @@ public class SysRoleController extends BaseController
@PreAuthorize("@ss.hasPermi('system:role:edit')")
@Log(title = "角色管理", businessType = BusinessType.GRANT)
@PutMapping("/authUser/selectAll")
- public AjaxResult selectAuthUserAll(Long roleId, Long[] userIds)
+ public AjaxResult selectAuthUserAll(Long roleId, List userIds)
{
roleService.checkRoleDataScope(roleId);
return toAjax(roleService.insertAuthUsers(roleId, userIds));