作者 钟来

添加管理员端的数据权限

正在显示 27 个修改的文件 包含 316 行增加15 行删除
package com.zhonglai.luhui.device.domain;
import com.ruoyi.common.annotation.PublicSQLConfig;
import com.ruoyi.common.tool.BaseEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
... ... @@ -13,7 +14,7 @@ import java.io.Serializable;
* @date 2022-08-26
*/
@ApiModel("主机/网关")
public class IotDevice implements Serializable
public class IotDevice extends BaseEntity implements Serializable
{
@PublicSQLConfig(isSelect=false)
private static final long serialVersionUID = 1L;
... ... @@ -132,7 +133,16 @@ public class IotDevice implements Serializable
@ApiModelProperty("产品标签")
private String label;
@ApiModelProperty("管理用户id")
private Long sys_user_id;
public Long getSys_user_id() {
return sys_user_id;
}
public void setSys_user_id(Long sys_user_id) {
this.sys_user_id = sys_user_id;
}
public String getLabel() {
return label;
}
... ...
package com.zhonglai.luhui.device.domain;
import com.ruoyi.common.annotation.PublicSQLConfig;
import com.ruoyi.common.tool.BaseEntity;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import io.swagger.annotations.ApiModel;
... ... @@ -15,7 +16,7 @@ import java.io.Serializable;
* @date 2022-08-26
*/
@ApiModel("产品")
public class IotProduct implements Serializable
public class IotProduct extends BaseEntity implements Serializable
{
@PublicSQLConfig(isSelect=false)
private static final long serialVersionUID = 1L;
... ... @@ -74,6 +75,8 @@ public class IotProduct implements Serializable
@ApiModelProperty("订阅服务器id")
private String subscribe_service_ip;
@ApiModelProperty("管理用户id")
private Long sys_user_id;
public String getSubscribe_service_ip() {
return subscribe_service_ip;
}
... ... @@ -82,6 +85,14 @@ public class IotProduct implements Serializable
this.subscribe_service_ip = subscribe_service_ip;
}
public Long getSys_user_id() {
return sys_user_id;
}
public void setSys_user_id(Long sys_user_id) {
this.sys_user_id = sys_user_id;
}
public Integer getPurification_clas() {
return purification_clas;
}
... ...
package com.zhonglai.luhui.device.domain;
import com.ruoyi.common.annotation.PublicSQLConfig;
import com.ruoyi.common.tool.BaseEntity;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import io.swagger.annotations.ApiModel;
... ... @@ -15,7 +16,7 @@ import java.io.Serializable;
* @date 2022-08-26
*/
@ApiModel("公司")
public class IotRole implements Serializable
public class IotRole extends BaseEntity implements Serializable
{
@PublicSQLConfig(isSelect=false)
private static final long serialVersionUID = 1L;
... ... @@ -39,6 +40,16 @@ public class IotRole implements Serializable
/** 是否使用(0否,1是) */
@ApiModelProperty("是否使用(0否,1是)")
private Integer used;
@ApiModelProperty("管理用户id")
private Long sys_user_id;
public Long getSys_user_id() {
return sys_user_id;
}
public void setSys_user_id(Long sys_user_id) {
this.sys_user_id = sys_user_id;
}
public void setCreate_time(Integer create_time)
{
... ...
package com.zhonglai.luhui.device.domain;
import com.ruoyi.common.tool.BaseEntity;
import com.ruoyi.system.domain.user.UserTerminalGroupRelation;
import com.ruoyi.common.annotation.PublicSQLConfig;
import org.apache.commons.lang3.builder.ToStringBuilder;
... ... @@ -16,7 +17,7 @@ import java.io.Serializable;
* @date 2022-08-26
*/
@ApiModel("终端")
public class IotTerminal implements Serializable
public class IotTerminal extends BaseEntity implements Serializable
{
@PublicSQLConfig(isSelect=false)
private static final long serialVersionUID = 1L;
... ... @@ -66,7 +67,16 @@ public class IotTerminal implements Serializable
@ApiModelProperty("操作令牌")
private String operation_token;
@ApiModelProperty("管理用户id")
private Long sys_user_id;
public Long getSys_user_id() {
return sys_user_id;
}
public void setSys_user_id(Long sys_user_id) {
this.sys_user_id = sys_user_id;
}
public String getOperation_token() {
return operation_token;
}
... ...
package com.zhonglai.luhui.device.domain;
import com.ruoyi.common.annotation.PublicSQLConfig;
import com.ruoyi.common.tool.BaseEntity;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import io.swagger.annotations.ApiModel;
... ... @@ -15,7 +16,7 @@ import java.io.Serializable;
* @date 2022-08-26
*/
@ApiModel("物模型模板")
public class IotThingsModel implements Serializable
public class IotThingsModel extends BaseEntity implements Serializable
{
@PublicSQLConfig(isSelect=false)
private static final long serialVersionUID = 1L;
... ... @@ -97,7 +98,16 @@ public class IotThingsModel implements Serializable
/** 数据定义 */
@ApiModelProperty("数据定义")
private String remark;
@ApiModelProperty("管理用户id")
private Long sys_user_id;
public Long getSys_user_id() {
return sys_user_id;
}
public void setSys_user_id(Long sys_user_id) {
this.sys_user_id = sys_user_id;
}
public String getAscription() {
return ascription;
}
... ...
... ... @@ -5,6 +5,7 @@ import java.util.List;
import java.util.Map;
import com.alibaba.fastjson.JSONObject;
import com.ruoyi.common.annotation.DataScope;
import com.ruoyi.common.core.domain.Message;
import com.ruoyi.common.exception.ServiceException;
import com.ruoyi.common.utils.DateUtils;
... ... @@ -53,6 +54,7 @@ public class IotDeviceServiceImpl implements IIotDeviceService
* @param iotDevice null
* @return null
*/
@DataScope(deptAlias = "u",userAlias = "u")
@Override
public List<IotDevice> selectIotDeviceList(IotDevice iotDevice)
{
... ...
package com.zhonglai.luhui.device.service.impl;
import java.util.List;
import com.ruoyi.common.annotation.DataScope;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.zhonglai.luhui.device.mapper.IotProductMapper;
... ... @@ -37,6 +39,7 @@ public class IotProductServiceImpl implements IIotProductService
* @param iotProduct null
* @return null
*/
@DataScope(deptAlias = "u",userAlias = "u")
@Override
public List<IotProduct> selectIotProductList(IotProduct iotProduct)
{
... ...
... ... @@ -2,6 +2,7 @@ package com.zhonglai.luhui.device.service.impl;
import java.util.List;
import com.ruoyi.common.annotation.DataScope;
import com.zhonglai.luhui.device.domain.IotRole;
import com.zhonglai.luhui.device.mapper.IotRoleMapper;
import com.zhonglai.luhui.device.service.IIotRoleService;
... ... @@ -38,6 +39,7 @@ public class IotRoleServiceImpl implements IIotRoleService
* @param iotRole null
* @return null
*/
@DataScope(deptAlias = "u",userAlias = "u")
@Override
public List<IotRole> selectIotRoleList(IotRole iotRole)
{
... ...
... ... @@ -5,6 +5,7 @@ import java.util.List;
import java.util.Map;
import com.alibaba.fastjson.JSONObject;
import com.ruoyi.common.annotation.DataScope;
import com.ruoyi.common.core.domain.Message;
import com.ruoyi.common.core.domain.ApiName;
import com.ruoyi.common.core.domain.DeviceCommandApi;
... ... @@ -64,6 +65,7 @@ public class IotTerminalServiceImpl implements IIotTerminalService
* @param iotTerminal null
* @return null
*/
@DataScope(deptAlias = "u",userAlias = "u")
@Override
public List<IotTerminal> selectIotTerminalList(IotTerminal iotTerminal)
{
... ...
... ... @@ -2,6 +2,7 @@ package com.zhonglai.luhui.device.service.impl;
import java.util.List;
import com.ruoyi.common.annotation.DataScope;
import com.zhonglai.luhui.device.domain.DistributionCurrencyModel;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
... ... @@ -39,6 +40,7 @@ public class IotThingsModelServiceImpl implements IIotThingsModelService
* @param iotThingsModel null
* @return null
*/
@DataScope(deptAlias = "u",userAlias = "u")
@Override
public List<IotThingsModel> selectIotThingsModelList(IotThingsModel iotThingsModel)
{
... ...
... ... @@ -36,6 +36,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<result property="data_update_time" column="data_update_time" />
<result property="operation_token" column="operation_token" />
<result property="label" column="label" />
<result property="sys_user_id" column="sys_user_id" />
</resultMap>
<sql id="selectIotDeviceVo">
... ... @@ -43,7 +44,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</sql>
<select id="selectIotDeviceList" parameterType="IotDevice" resultMap="IotDeviceResult">
<include refid="selectIotDeviceVo"/>
SELECT a.* FROM iot_device a
LEFT JOIN `sys_user` u ON u.user_id = a.sys_user_id
<where>
<if test="status !=null">
and `status` = #{status}
... ... @@ -57,7 +59,15 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="client_id != null and client_id != ''">
AND client_id like concat('%', #{client_id}, '%')
</if>
<if test="sys_user_id !=null">
and `sys_user_id` = #{sys_user_id}
</if>
<if test="params.dataScope !=null and params.dataScope!=''">
<!-- 数据范围过滤 -->
${params.dataScope}
</if>
</where>
</select>
<select id="selectIotDeviceByClient_id" parameterType="String" resultMap="IotDeviceResult">
... ... @@ -95,6 +105,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="things_model_config != null">things_model_config,</if>
<if test="device_life != null">device_life,</if>
<if test="data_update_time != null">data_update_time,</if>
<if test="sys_user_id != null">sys_user_id,</if>
create_time,
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
... ... @@ -125,6 +136,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="things_model_config != null">#{things_model_config},</if>
<if test="device_life != null">#{device_life},</if>
<if test="data_update_time != null">#{data_update_time},</if>
<if test="sys_user_id != null">#{sys_user_id},</if>
UNIX_TIMESTAMP(NOW()),
</trim>
</insert>
... ... @@ -159,6 +171,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="things_model_config != null">things_model_config = #{things_model_config},</if>
<if test="device_life != null">device_life = #{device_life},</if>
<if test="data_update_time != null">data_update_time = #{data_update_time},</if>
<if test="sys_user_id != null">sys_user_id = #{sys_user_id},</if>
</trim>
where client_id = #{client_id}
</update>
... ...
... ... @@ -21,14 +21,16 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<result property="analysis_clas" column="analysis_clas" />
<result property="purification_clas" column="purification_clas" />
<result property="subscribe_service_ip" column="subscribe_service_ip" />
<result property="sys_user_id" column="sys_user_id" />
</resultMap>
<sql id="selectIotProductVo">
select `id`,`mqtt_username`,`mqtt_password`,`product_name`,`mqtt_salt`,`create_time`,`encryption_type`,`open_encryption`,`used`,`role_id`,`is_sync_db`,`sync_db`,`analysis_clas`,`purification_clas`,`subscribe_service_ip` from iot_product
select a.* from iot_product a
</sql>
<select id="selectIotProductList" parameterType="IotProduct" resultMap="IotProductResult">
<include refid="selectIotProductVo"/>
LEFT JOIN `sys_user` u ON u.user_id = a.sys_user_id
<where>
<if test="product_name != null and product_name != ''">
AND `product_name` like concat('%', #{product_name}, '%')
... ... @@ -42,6 +44,13 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="subscribe_service_ip != null and subscribe_service_ip != ''">
AND `subscribe_service_ip` like concat('%', #{subscribe_service_ip}, '%')
</if>
<if test="sys_user_id !=null and sys_user_id != ''">
and sys_user_id = #{sys_user_id}
</if>
<if test="params.dataScope !=null and params.dataScope!=''">
<!-- 数据范围过滤 -->
${params.dataScope}
</if>
</where>
</select>
... ... @@ -65,6 +74,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="sync_db != null ">sync_db,</if>
<if test="analysis_clas != null">analysis_clas,</if>
<if test="purification_clas != null ">purification_clas,</if>
<if test="sys_user_id != null">sys_user_id,</if>
create_time,
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
... ... @@ -81,6 +91,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="sync_db != null">#{sync_db},</if>
<if test="analysis_clas != null">#{analysis_clas},</if>
<if test="purification_clas != null">#{purification_clas},</if>
<if test="sys_user_id != null">#{sys_user_id},</if>
UNIX_TIMESTAMP(NOW()),
</trim>
</insert>
... ... @@ -101,6 +112,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="sync_db != null">sync_db = #{sync_db},</if>
<if test="analysis_clas != null">analysis_clas = #{analysis_clas},</if>
<if test="purification_clas != null">purification_clas = #{purification_clas},</if>
<if test="sys_user_id != null">sys_user_id = #{sys_user_id},</if>
</trim>
where id = #{id}
</update>
... ...
... ... @@ -10,15 +10,21 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<result property="id" column="id" />
<result property="name" column="name" />
<result property="used" column="used" />
<result property="sys_user_id" column="sys_user_id" />
</resultMap>
<sql id="selectIotRoleVo">
select `create_time`, `describe`, `id`, `name`, `used` from iot_role
select a.* from iot_role a
</sql>
<select id="selectIotRoleList" parameterType="IotRole" resultMap="IotRoleResult">
<include refid="selectIotRoleVo"/>
LEFT JOIN `sys_user` u ON u.user_id = a.sys_user_id
<where>
<if test="params.dataScope !=null and params.dataScope!=''">
<!-- 数据范围过滤 -->
${params.dataScope}
</if>
</where>
</select>
... ... @@ -33,12 +39,14 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="describe != null">`describe`,</if>
<if test="name != null">`name`,</if>
<if test="used != null">used,</if>
<if test="sys_user_id != null">sys_user_id,</if>
create_time,
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="describe != null">#{describe},</if>
<if test="name != null">#{name},</if>
<if test="used != null">#{used},</if>
<if test="sys_user_id != null">#{sys_user_id},</if>
UNIX_TIMESTAMP(NOW()),
</trim>
</insert>
... ... @@ -50,6 +58,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="describe != null">`describe` = #{describe},</if>
<if test="name != null">`name` = #{name},</if>
<if test="used != null">used = #{used},</if>
<if test="sys_user_id != null">sys_user_id = #{sys_user_id},</if>
</trim>
where id = #{id}
</update>
... ...
... ... @@ -18,6 +18,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<result property="user_info_id" column="user_info_id" />
<result property="create_time" column="create_time" />
<result property="sensor_number" column="sensor_number" />
<result property="sys_user_id" column="sys_user_id" />
<association property="userTerminalGroupRelation" column="id" javaType="UserTerminalGroupRelation" resultMap="userTerminalGroupRelationResult" />
<association property="iotDevice" column="device_id" javaType="IotDevice" resultMap="iotDeviceResult" />
</resultMap>
... ... @@ -61,14 +62,16 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<result property="device_life" column="device_life" />
<result property="data_update_time" column="d_data_update_time" />
<result property="label" column="label" />
<result property="sys_user_id" column="sys_user_id" />
</resultMap>
<sql id="selectIotTerminalVo">
select * from iot_terminal
select a.* from iot_terminal a
</sql>
<select id="selectIotTerminalList" parameterType="IotTerminal" resultMap="IotTerminalResult">
<include refid="selectIotTerminalVo"/>
LEFT JOIN `sys_user` u ON u.user_id = a.sys_user_id
<where>
<if test="device_id !=null and device_id != ''">
and device_id = #{device_id}
... ... @@ -82,6 +85,13 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="mqtt_username != null and mqtt_username != ''">
AND `mqtt_username` like concat('%', #{mqtt_username}, '%')
</if>
<if test="sys_user_id !=null and sys_user_id != ''">
and sys_user_id = #{sys_user_id}
</if>
<if test="params.dataScope !=null and params.dataScope!=''">
<!-- 数据范围过滤 -->
${params.dataScope}
</if>
</where>
</select>
... ... @@ -124,6 +134,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="product_id != null">product_id,</if>
<if test="mqtt_username != null">mqtt_username,</if>
<if test="data_update_time != null">data_update_time,</if>
<if test="sys_user_id != null and sys_user_id != ''">sys_user_id,</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="device_id != null">#{device_id},</if>
... ... @@ -135,6 +146,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="product_id != null">#{product_id},</if>
<if test="mqtt_username != null">#{mqtt_username},</if>
<if test="data_update_time != null">#{data_update_time},</if>
<if test="sys_user_id != null">#{sys_user_id},</if>
</trim>
</insert>
... ... @@ -149,6 +161,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="product_id != null">product_id = #{product_id},</if>
<if test="mqtt_username != null">mqtt_username = #{mqtt_username},</if>
<if test="data_update_time != null">data_update_time = #{data_update_time},</if>
<if test="sys_user_id != null">sys_user_id = #{sys_user_id},</if>
</trim>
where id = #{id}
</update>
... ...
... ... @@ -26,14 +26,16 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<result property="config_names" column="config_names" />
<result property="view_type" column="view_type" />
<result property="ascription" column="ascription" />
<result property="sys_user_id" column="sys_user_id" />
</resultMap>
<sql id="selectIotThingsModelVo">
select create_by, create_time, data_type, del_flag, identifier, is_monitor, is_save_log, is_top, model_id, model_name, remark, specs, `type`, update_by, update_time, product_id,is_config,config_names,view_type,mqtt_username,ascription from iot_things_model
select a.* from iot_things_model a
</sql>
<select id="selectIotThingsModelList" parameterType="IotThingsModel" resultMap="IotThingsModelResult">
<include refid="selectIotThingsModelVo"/>
LEFT JOIN `sys_user` u ON u.user_id = a.sys_user_id
<where>
<if test="create_by !=null and create_by != ''">
and create_by = #{create_by}
... ... @@ -68,6 +70,13 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="ascription !=null and ascription != ''">
and ascription = #{ascription}
</if>
<if test="sys_user_id !=null and sys_user_id != ''">
and sys_user_id = #{sys_user_id}
</if>
<if test="params.dataScope !=null and params.dataScope!=''">
<!-- 数据范围过滤 -->
${params.dataScope}
</if>
</where>
</select>
... ... @@ -106,6 +115,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="view_type != null">view_type,</if>
<if test="mqtt_username != null">mqtt_username,</if>
<if test="ascription != null">ascription,</if>
<if test="sys_user_id != null">sys_user_id,</if>
create_time,
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
... ... @@ -128,6 +138,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="view_type != null">#{view_type},</if>
<if test="mqtt_username != null">#{mqtt_username},</if>
<if test="ascription != null">#{ascription},</if>
<if test="sys_user_id != null">#{sys_user_id},</if>
TIMESTAMP(NOW()),
</trim>
</insert>
... ... @@ -155,6 +166,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="view_type != null">view_type = #{view_type},</if>
<if test="mqtt_username != null">mqtt_username = #{mqtt_username},</if>
<if test="ascription != null">ascription = #{ascription},</if>
<if test="sys_user_id != null">sys_user_id = #{sys_user_id},</if>
</trim>
where model_id = #{model_id}
</update>
... ...
package com.zhonglai.luhui.admin.config;
import com.ruoyi.common.annotation.DataScope;
import com.ruoyi.common.core.text.Convert;
import com.ruoyi.common.tool.BaseEntity;
import com.ruoyi.common.utils.StringUtils;
import com.ruoyi.system.domain.entity.SysRole;
import com.ruoyi.system.domain.entity.SysUser;
import com.zhonglai.luhui.security.dto.BaseLoginUser;
import com.zhonglai.luhui.security.utils.SecurityUtils;
import org.aspectj.lang.JoinPoint;
import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.annotation.Before;
import org.springframework.stereotype.Component;
import java.util.ArrayList;
import java.util.List;
/**
* 数据过滤处理
*
* @author ruoyi
*/
@Aspect
@Component
public class DataScopeAspect {
/**
* 全部数据权限
*/
public static final String DATA_SCOPE_ALL = "1";
/**
* 自定数据权限
*/
public static final String DATA_SCOPE_CUSTOM = "2";
/**
* 部门数据权限
*/
public static final String DATA_SCOPE_DEPT = "3";
/**
* 部门及以下数据权限
*/
public static final String DATA_SCOPE_DEPT_AND_CHILD = "4";
/**
* 仅本人数据权限
*/
public static final String DATA_SCOPE_SELF = "5";
/**
* 数据权限过滤关键字
*/
public static final String DATA_SCOPE = "dataScope";
@Before("@annotation(controllerDataScope)")
public void doBefore(JoinPoint point, DataScope controllerDataScope) throws Throwable
{
clearDataScope(point);
handleDataScope(point, controllerDataScope);
}
protected void handleDataScope(final JoinPoint joinPoint, DataScope controllerDataScope)
{
// 获取当前的用户
BaseLoginUser loginUser = SecurityUtils.getLoginUser();
if (StringUtils.isNotNull(loginUser))
{
SysUser currentUser = (SysUser) loginUser.getUser();
// 如果是超级管理员,则不过滤数据
if (StringUtils.isNotNull(currentUser) && !currentUser.isAdmin())
{
dataScopeFilter(joinPoint, currentUser, controllerDataScope.deptAlias(),
controllerDataScope.userAlias());
}
}
}
/**
* 数据范围过滤
*
* @param joinPoint 切点
* @param user 用户
* @param deptAlias 部门别名
* @param userAlias 用户别名
*/
public static void dataScopeFilter(JoinPoint joinPoint, SysUser user, String deptAlias, String userAlias)
{
StringBuilder sqlString = new StringBuilder();
List<String> conditions = new ArrayList<String>();
for (SysRole role : user.getRoles())
{
String dataScope = role.getDataScope();
if (!DATA_SCOPE_CUSTOM.equals(dataScope) && conditions.contains(dataScope))
{
continue;
}
if (DATA_SCOPE_ALL.equals(dataScope))
{
sqlString = new StringBuilder();
conditions.add(dataScope);
break;
}
else if (DATA_SCOPE_CUSTOM.equals(dataScope))
{
sqlString.append(StringUtils.format(
" OR {}.dept_id IN ( SELECT dept_id FROM sys_role_dept WHERE role_id = {} ) ", deptAlias,
role.getRoleId()));
}
else if (DATA_SCOPE_DEPT.equals(dataScope))
{
sqlString.append(StringUtils.format(" OR {}.dept_id = {} ", deptAlias, user.getDeptId()));
}
else if (DATA_SCOPE_DEPT_AND_CHILD.equals(dataScope))
{
sqlString.append(StringUtils.format(
" OR {}.dept_id IN ( SELECT dept_id FROM sys_dept WHERE dept_id = {} or find_in_set( {} , ancestors ) )",
deptAlias, user.getDeptId(), user.getDeptId()));
}
else if (DATA_SCOPE_SELF.equals(dataScope))
{
if (StringUtils.isNotBlank(userAlias))
{
sqlString.append(StringUtils.format(" OR {}.user_id = {} ", userAlias, user.getUserId()));
}
else
{
// 数据权限为仅本人且没有userAlias别名不查询任何数据
sqlString.append(StringUtils.format(" OR {}.dept_id = 0 ", deptAlias));
}
}
conditions.add(dataScope);
}
// 多角色情况下,所有角色都不包含传递过来的权限字符,这个时候sqlString也会为空,所以要限制一下,不查询任何数据
if (StringUtils.isEmpty(conditions))
{
sqlString.append(StringUtils.format(" OR {}.dept_id = 0 ", deptAlias));
}
if (StringUtils.isNotBlank(sqlString.toString()))
{
Object params = joinPoint.getArgs()[0];
if (StringUtils.isNotNull(params) && params instanceof BaseEntity)
{
BaseEntity baseEntity = (BaseEntity) params;
baseEntity.getParams().put(DATA_SCOPE, " AND (" + sqlString.substring(4) + ")");
}
}
}
/**
* 拼接权限sql前先清空params.dataScope参数防止注入
*/
private void clearDataScope(final JoinPoint joinPoint)
{
Object params = joinPoint.getArgs()[0];
if (StringUtils.isNotNull(params) && params instanceof BaseEntity)
{
BaseEntity baseEntity = (BaseEntity) params;
baseEntity.getParams().put(DATA_SCOPE, "");
}
}
}
... ...
... ... @@ -3,6 +3,7 @@ package com.zhonglai.luhui.admin.controller.iot;
import java.util.List;
import javax.servlet.http.HttpServletResponse;
import com.ruoyi.common.annotation.DataScope;
import com.ruoyi.common.utils.DateUtils;
import com.zhonglai.luhui.action.BaseController;
import com.zhonglai.luhui.dao.service.PublicService;
... ... @@ -92,6 +93,7 @@ public class IotDeviceController extends BaseController
@PostMapping("add")
public AjaxResult add(@RequestBody IotDevice iotDevice)
{
iotDevice.setSys_user_id(SecurityUtils.getUserId());
iotDevice.setCreate_by(SecurityUtils.getUsername());
iotDevice.setUpdate_time(DateUtils.getNowTimeMilly());
return toAjax(iotDeviceService.insertIotDevice(iotDevice));
... ...
... ... @@ -4,6 +4,7 @@ import java.util.List;
import javax.servlet.http.HttpServletResponse;
import com.zhonglai.luhui.action.BaseController;
import com.zhonglai.luhui.security.utils.SecurityUtils;
import com.zhonglai.luhui.sys.utils.ExcelUtil;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
... ... @@ -85,6 +86,7 @@ public class IotProductController extends BaseController
@PostMapping
public AjaxResult add(@RequestBody IotProduct iotProduct)
{
iotProduct.setSys_user_id(SecurityUtils.getUserId());
return toAjax(IotProductService.insertIotProduct(iotProduct));
}
... ...
... ... @@ -4,6 +4,7 @@ import java.util.List;
import javax.servlet.http.HttpServletResponse;
import com.zhonglai.luhui.action.BaseController;
import com.zhonglai.luhui.security.utils.SecurityUtils;
import com.zhonglai.luhui.sys.utils.ExcelUtil;
import com.ruoyi.common.utils.DateUtils;
import io.swagger.annotations.Api;
... ... @@ -86,6 +87,7 @@ public class IotRoleController extends BaseController
@PostMapping
public AjaxResult add(@RequestBody IotRole iotRole)
{
iotRole.setSys_user_id(SecurityUtils.getUserId());
iotRole.setCreate_time(DateUtils.getNowTimeMilly());
return toAjax(iotRoleService.insertIotRole(iotRole));
}
... ...
... ... @@ -4,6 +4,7 @@ import java.util.List;
import javax.servlet.http.HttpServletResponse;
import com.zhonglai.luhui.action.BaseController;
import com.zhonglai.luhui.security.utils.SecurityUtils;
import com.zhonglai.luhui.sys.utils.ExcelUtil;
import com.ruoyi.common.utils.DateUtils;
import io.swagger.annotations.Api;
... ... @@ -86,6 +87,7 @@ public class IotTerminalController extends BaseController
@PostMapping
public AjaxResult add(@RequestBody IotTerminal iotTerminal)
{
iotTerminal.setSys_user_id(SecurityUtils.getUserId());
return toAjax(iotTerminalService.insertIotTerminal(iotTerminal));
}
... ...
... ... @@ -133,7 +133,7 @@ public class IotThingsModelController extends BaseController
return AjaxResult.error("请输入数模型");
}
iotThingsModel.setSpecs(JSONObject.toJSONString(thingsModelItemBase));
iotThingsModel.setSys_user_id(SecurityUtils.getUserId());
IotProduct iotProduct = iIotProductService.selectIotProductById(iotThingsModel.getProduct_id());
iotThingsModel.setMqtt_username(iotProduct.getMqtt_username());
int ri = iotThingsModelService.insertIotThingsModel(iotThingsModel);
... ...
... ... @@ -8,6 +8,7 @@ import com.zhonglai.luhui.device.analysis.comm.dto.DeviceSensorData;
import com.zhonglai.luhui.device.analysis.comm.dto.LogDeviceOperation;
import com.zhonglai.luhui.device.domain.*;
import com.zhonglai.luhui.device.protocol.factory.config.DeviceCach;
import com.zhonglai.luhui.device.protocol.factory.config.PluginsClassLoader;
import com.zhonglai.luhui.device.protocol.factory.dto.ParserDeviceHostDto;
import com.zhonglai.luhui.device.protocol.factory.dto.ParserDeviceInfoDto;
import com.zhonglai.luhui.device.protocol.factory.dto.ProtocolPurificationModel;
... ... @@ -62,7 +63,8 @@ public class PersistenceDBService {
ParserDeviceHostDto parserDeviceHostDto = protocolPurificationModel.getParserDeviceHostDto();
if (parserDeviceHostDto.getIotProduct().getIs_sync_db()==1 && null !=parserDeviceHostDto.getIotProduct().getSync_db() && 0!=parserDeviceHostDto.getIotProduct().getSync_db())
{
ProtocolSyncFactory protocolSyncFactory = getProtocolSyncService(persistenceDBService.getClassnameFromIotProtocolClassId(parserDeviceHostDto.getIotProduct().getSync_db()));
ProtocolSyncFactory protocolSyncFactory = PluginsClassLoader.getJarClass(ProtocolSyncFactory.class,persistenceDBService.getClassnameFromIotProtocolClassId(parserDeviceHostDto.getIotProduct().getSync_db()));
// ProtocolSyncFactory protocolSyncFactory = getProtocolSyncService(persistenceDBService.getClassnameFromIotProtocolClassId(parserDeviceHostDto.getIotProduct().getSync_db()));
if(null != protocolSyncFactory)
{
protocolSyncFactory.updateParserDeviceHostDto(parserDeviceHostDto);
... ...
... ... @@ -108,6 +108,7 @@ public class DefaultDbService {
}else {
iotTerminal.setName(oldparserDeviceHostDto.getIotProduct().getProduct_name()+getLastSixChars(iotTerminal.getDevice_id())+"设备的第"+iotTerminal.getSensor_number()+"号终端");
}
iotTerminal.setSys_user_id(oldparserDeviceHostDto.getIotProduct().getSys_user_id());
baseDao.insert(iotTerminal);
}
... ...
... ... @@ -17,6 +17,7 @@ import org.springframework.stereotype.Service;
import java.util.List;
@Service
public class LsyProtocolSyncFactoryImpl implements ProtocolSyncFactory {
private BaseDao lsy_baseDao = new BaseDao(new LsyDBFactoryImp());
... ...
... ... @@ -9,6 +9,7 @@ import org.springframework.context.annotation.ComponentScan;
"com.ruoyi.common",
"com.ruoyi.system",
"com.ruoyi.framework",
"com.zhonglai.luhui.config",
"com.zhonglai.luhui.datasource",
"com.zhonglai.luhui.dao",
"com.zhonglai.luhui.sys",
... ...
... ... @@ -123,7 +123,7 @@ public class LoginService {
sysUser.setUserId(userId);
sysUser.setLoginIp(IpUtils.getIpAddr(ServletUtils.getRequest()));
sysUser.setLoginDate(DateUtils.getNowDate());
sysUserService.updateUser(sysUser);
sysUserService.updateUserProfile(sysUser);
}
/**
... ...
... ... @@ -29,7 +29,7 @@ mqtt:
client:
#客户端操作时间
operationTime: 10
productids: 17
productids: 13
#rocketmq配置信息
rocketmq:
... ... @@ -37,4 +37,4 @@ rocketmq:
name-server: 47.115.144.179:9876
consumerGroup: ${random.uuid}
topic: deviceCommandListen
operationToken: 120.79.198.245lh-mqtt-service-listen
\ No newline at end of file
operationToken: local_lh-mqtt-service-listen
\ No newline at end of file
... ...