Commit 43838967983a520f214c514165025b6eefb4c112
Exists in
master
and in
1 other branch
Merge remote-tracking branch 'origin/master'
Showing 7 changed files
- talkonlineweb/src/main/java/com/lyms/talkonlineweb/config/DataScopeInterceptor.java
- talkonlineweb/src/main/java/com/lyms/talkonlineweb/config/MyBatisConfigs.java
- talkonlineweb/src/main/java/com/lyms/talkonlineweb/domain/LymsLogsCrud.java
- talkonlineweb/src/main/java/com/lyms/talkonlineweb/mapper/LymsLogsCrudMapper.java
- talkonlineweb/src/main/java/com/lyms/talkonlineweb/service/LymsLogsCrudService.java
- talkonlineweb/src/main/java/com/lyms/talkonlineweb/service/impl/LymsLogsCrudServiceImpl.java
- talkonlineweb/src/main/resources/mapper/LymsLogsCrudMapper.xml
talkonlineweb/src/main/java/com/lyms/talkonlineweb/config/DataScopeInterceptor.java
View file @
4383896
| 1 | +package com.lyms.talkonlineweb.config; | |
| 2 | + | |
| 3 | +import com.baomidou.mybatisplus.core.toolkit.PluginUtils; | |
| 4 | +import com.baomidou.mybatisplus.extension.handlers.AbstractSqlParserHandler; | |
| 5 | +import lombok.AllArgsConstructor; | |
| 6 | +import lombok.extern.slf4j.Slf4j; | |
| 7 | +import org.apache.ibatis.executor.statement.StatementHandler; | |
| 8 | +import org.apache.ibatis.mapping.BoundSql; | |
| 9 | +import org.apache.ibatis.mapping.MappedStatement; | |
| 10 | +import org.apache.ibatis.mapping.SqlCommandType; | |
| 11 | +import org.apache.ibatis.plugin.*; | |
| 12 | +import org.apache.ibatis.reflection.MetaObject; | |
| 13 | +import org.apache.ibatis.reflection.SystemMetaObject; | |
| 14 | +import org.springframework.stereotype.Component; | |
| 15 | + | |
| 16 | +import javax.sql.DataSource; | |
| 17 | +import java.sql.Connection; | |
| 18 | +import java.util.Properties; | |
| 19 | + | |
| 20 | +//mybatis 自定义拦截器 | |
| 21 | +@Slf4j | |
| 22 | +@AllArgsConstructor | |
| 23 | +@Intercepts({@Signature(type = StatementHandler.class, method = "prepare", args = {Connection.class, Integer.class})}) | |
| 24 | +@Component | |
| 25 | +public class DataScopeInterceptor extends AbstractSqlParserHandler implements Interceptor { | |
| 26 | + private DataSource dataSource; | |
| 27 | + | |
| 28 | + @Override | |
| 29 | + public Object intercept(Invocation invocation) throws Throwable { | |
| 30 | + StatementHandler statementHandler = PluginUtils.realTarget(invocation.getTarget()); | |
| 31 | + MetaObject metaObject = SystemMetaObject.forObject(statementHandler); | |
| 32 | + this.sqlParser(metaObject); | |
| 33 | + // 先判断是不是SELECT操作 不是直接过滤 | |
| 34 | + MappedStatement mappedStatement = (MappedStatement) metaObject.getValue("delegate.mappedStatement"); | |
| 35 | + if (!SqlCommandType.SELECT.equals(mappedStatement.getSqlCommandType())) { | |
| 36 | + return invocation.proceed(); | |
| 37 | + } | |
| 38 | + if (!SqlCommandType.INSERT.equals(mappedStatement.getSqlCommandType())) { | |
| 39 | + System.out.println("新增。。。。。。。。。。。。。。。。。。。。。。。。"); | |
| 40 | + return invocation.proceed(); | |
| 41 | + } | |
| 42 | + if (!SqlCommandType.UPDATE.equals(mappedStatement.getSqlCommandType())) { | |
| 43 | + System.out.println("修改。。。。。。。。。。。。。。。。。。。。。。。。"); | |
| 44 | + return invocation.proceed(); | |
| 45 | + } | |
| 46 | + if (!SqlCommandType.DELETE.equals(mappedStatement.getSqlCommandType())) { | |
| 47 | + System.out.println("删除。。。。。。。。。。。。。。。。。。。。。。。。"); | |
| 48 | + return invocation.proceed(); | |
| 49 | + } | |
| 50 | +// BoundSql boundSql = (BoundSql) metaObject.getValue("delegate.boundSql"); | |
| 51 | +// // 执行的SQL语句 | |
| 52 | +// String originalSql = boundSql.getSql(); | |
| 53 | +// // SQL语句的参数 | |
| 54 | +// Object parameterObject = boundSql.getParameterObject(); | |
| 55 | +// | |
| 56 | +// originalSql = "select * from (" + originalSql + ") temp_data_scope where temp_data_scope." + 1 + " in (" + 2 + ")"; | |
| 57 | +// metaObject.setValue("delegate.boundSql.sql", originalSql); | |
| 58 | + return invocation.proceed(); | |
| 59 | + } | |
| 60 | + | |
| 61 | + /** | |
| 62 | + * 生成拦截对象的代理 | |
| 63 | + * | |
| 64 | + * @param target 目标对象 | |
| 65 | + * @return 代理对象 | |
| 66 | + */ | |
| 67 | + @Override | |
| 68 | + public Object plugin(Object target) { | |
| 69 | + if (target instanceof StatementHandler) { | |
| 70 | + return Plugin.wrap(target, this); | |
| 71 | + } | |
| 72 | + return target; | |
| 73 | + } | |
| 74 | + | |
| 75 | + /** | |
| 76 | + * mybatis配置的属性 | |
| 77 | + * | |
| 78 | + * @param properties mybatis配置的属性 | |
| 79 | + */ | |
| 80 | + @Override | |
| 81 | + public void setProperties(Properties properties) { | |
| 82 | + | |
| 83 | + } | |
| 84 | +} |
talkonlineweb/src/main/java/com/lyms/talkonlineweb/config/MyBatisConfigs.java
View file @
4383896
| ... | ... | @@ -3,9 +3,12 @@ |
| 3 | 3 | import com.baomidou.mybatisplus.annotation.DbType; |
| 4 | 4 | import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor; |
| 5 | 5 | import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor; |
| 6 | +import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; | |
| 6 | 7 | import org.springframework.context.annotation.Bean; |
| 7 | 8 | import org.springframework.context.annotation.Configuration; |
| 8 | 9 | |
| 10 | +import javax.sql.DataSource; | |
| 11 | + | |
| 9 | 12 | @Configuration |
| 10 | 13 | public class MyBatisConfigs { |
| 11 | 14 | |
| ... | ... | @@ -14,6 +17,17 @@ |
| 14 | 17 | MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor(); |
| 15 | 18 | interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL)); |
| 16 | 19 | return interceptor; |
| 20 | + } | |
| 21 | + | |
| 22 | + /** | |
| 23 | + * 数据权限插件 | |
| 24 | + *用于mybatis自定义拦截器 | |
| 25 | + * @return DataScopeInterceptor | |
| 26 | + */ | |
| 27 | + @Bean | |
| 28 | + @ConditionalOnMissingBean | |
| 29 | + public DataScopeInterceptor dataScopeInterceptor(DataSource dataSource) { | |
| 30 | + return new DataScopeInterceptor(dataSource); | |
| 17 | 31 | } |
| 18 | 32 | } |
talkonlineweb/src/main/java/com/lyms/talkonlineweb/domain/LymsLogsCrud.java
View file @
4383896
| 1 | +package com.lyms.talkonlineweb.domain; | |
| 2 | + | |
| 3 | +import com.baomidou.mybatisplus.annotation.IdType; | |
| 4 | +import com.baomidou.mybatisplus.annotation.TableField; | |
| 5 | +import com.baomidou.mybatisplus.annotation.TableId; | |
| 6 | +import com.baomidou.mybatisplus.annotation.TableName; | |
| 7 | +import java.io.Serializable; | |
| 8 | +import java.util.Date; | |
| 9 | +import lombok.Data; | |
| 10 | + | |
| 11 | +/** | |
| 12 | + * | |
| 13 | + * @TableName lyms_logs_crud | |
| 14 | + */ | |
| 15 | +@TableName(value ="lyms_logs_crud") | |
| 16 | +@Data | |
| 17 | +public class LymsLogsCrud implements Serializable { | |
| 18 | + /** | |
| 19 | + * | |
| 20 | + */ | |
| 21 | + @TableId(value = "id", type = IdType.AUTO) | |
| 22 | + private Integer id; | |
| 23 | + | |
| 24 | + /** | |
| 25 | + * 操作用户id | |
| 26 | + */ | |
| 27 | + @TableField(value = "uid") | |
| 28 | + private Integer uid; | |
| 29 | + | |
| 30 | + /** | |
| 31 | + * 1:增,2:删,3:改 | |
| 32 | + */ | |
| 33 | + @TableField(value = "crud") | |
| 34 | + private Integer crud; | |
| 35 | + | |
| 36 | + /** | |
| 37 | + * 医院id | |
| 38 | + */ | |
| 39 | + @TableField(value = "hoid") | |
| 40 | + private Integer hoid; | |
| 41 | + | |
| 42 | + /** | |
| 43 | + * 科室id | |
| 44 | + */ | |
| 45 | + @TableField(value = "hdid") | |
| 46 | + private Integer hdid; | |
| 47 | + | |
| 48 | + /** | |
| 49 | + * 操作时间 | |
| 50 | + */ | |
| 51 | + @TableField(value = "creatdata") | |
| 52 | + private Date creatdata; | |
| 53 | + | |
| 54 | + @TableField(exist = false) | |
| 55 | + private static final long serialVersionUID = 1L; | |
| 56 | + | |
| 57 | + @Override | |
| 58 | + public boolean equals(Object that) { | |
| 59 | + if (this == that) { | |
| 60 | + return true; | |
| 61 | + } | |
| 62 | + if (that == null) { | |
| 63 | + return false; | |
| 64 | + } | |
| 65 | + if (getClass() != that.getClass()) { | |
| 66 | + return false; | |
| 67 | + } | |
| 68 | + LymsLogsCrud other = (LymsLogsCrud) that; | |
| 69 | + return (this.getId() == null ? other.getId() == null : this.getId().equals(other.getId())) | |
| 70 | + && (this.getUid() == null ? other.getUid() == null : this.getUid().equals(other.getUid())) | |
| 71 | + && (this.getCrud() == null ? other.getCrud() == null : this.getCrud().equals(other.getCrud())) | |
| 72 | + && (this.getHoid() == null ? other.getHoid() == null : this.getHoid().equals(other.getHoid())) | |
| 73 | + && (this.getHdid() == null ? other.getHdid() == null : this.getHdid().equals(other.getHdid())) | |
| 74 | + && (this.getCreatdata() == null ? other.getCreatdata() == null : this.getCreatdata().equals(other.getCreatdata())); | |
| 75 | + } | |
| 76 | + | |
| 77 | + @Override | |
| 78 | + public int hashCode() { | |
| 79 | + final int prime = 31; | |
| 80 | + int result = 1; | |
| 81 | + result = prime * result + ((getId() == null) ? 0 : getId().hashCode()); | |
| 82 | + result = prime * result + ((getUid() == null) ? 0 : getUid().hashCode()); | |
| 83 | + result = prime * result + ((getCrud() == null) ? 0 : getCrud().hashCode()); | |
| 84 | + result = prime * result + ((getHoid() == null) ? 0 : getHoid().hashCode()); | |
| 85 | + result = prime * result + ((getHdid() == null) ? 0 : getHdid().hashCode()); | |
| 86 | + result = prime * result + ((getCreatdata() == null) ? 0 : getCreatdata().hashCode()); | |
| 87 | + return result; | |
| 88 | + } | |
| 89 | + | |
| 90 | + @Override | |
| 91 | + public String toString() { | |
| 92 | + StringBuilder sb = new StringBuilder(); | |
| 93 | + sb.append(getClass().getSimpleName()); | |
| 94 | + sb.append(" ["); | |
| 95 | + sb.append("Hash = ").append(hashCode()); | |
| 96 | + sb.append(", id=").append(id); | |
| 97 | + sb.append(", uid=").append(uid); | |
| 98 | + sb.append(", crud=").append(crud); | |
| 99 | + sb.append(", hoid=").append(hoid); | |
| 100 | + sb.append(", hdid=").append(hdid); | |
| 101 | + sb.append(", creatdata=").append(creatdata); | |
| 102 | + sb.append(", serialVersionUID=").append(serialVersionUID); | |
| 103 | + sb.append("]"); | |
| 104 | + return sb.toString(); | |
| 105 | + } | |
| 106 | +} |
talkonlineweb/src/main/java/com/lyms/talkonlineweb/mapper/LymsLogsCrudMapper.java
View file @
4383896
| 1 | +package com.lyms.talkonlineweb.mapper; | |
| 2 | + | |
| 3 | +import com.lyms.talkonlineweb.domain.LymsLogsCrud; | |
| 4 | +import com.baomidou.mybatisplus.core.mapper.BaseMapper; | |
| 5 | + | |
| 6 | +/** | |
| 7 | + * @Entity com.lyms.talkonlineweb.domain.LymsLogsCrud | |
| 8 | + */ | |
| 9 | +public interface LymsLogsCrudMapper extends BaseMapper<LymsLogsCrud> { | |
| 10 | + | |
| 11 | +} |
talkonlineweb/src/main/java/com/lyms/talkonlineweb/service/LymsLogsCrudService.java
View file @
4383896
talkonlineweb/src/main/java/com/lyms/talkonlineweb/service/impl/LymsLogsCrudServiceImpl.java
View file @
4383896
| 1 | +package com.lyms.talkonlineweb.service.impl; | |
| 2 | + | |
| 3 | +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; | |
| 4 | +import com.lyms.talkonlineweb.domain.LymsLogsCrud; | |
| 5 | +import com.lyms.talkonlineweb.service.LymsLogsCrudService; | |
| 6 | +import com.lyms.talkonlineweb.mapper.LymsLogsCrudMapper; | |
| 7 | +import org.springframework.stereotype.Service; | |
| 8 | + | |
| 9 | +/** | |
| 10 | + * | |
| 11 | + */ | |
| 12 | +@Service | |
| 13 | +public class LymsLogsCrudServiceImpl extends ServiceImpl<LymsLogsCrudMapper, LymsLogsCrud> | |
| 14 | + implements LymsLogsCrudService{ | |
| 15 | + | |
| 16 | +} |
talkonlineweb/src/main/resources/mapper/LymsLogsCrudMapper.xml
View file @
4383896
| 1 | +<?xml version="1.0" encoding="UTF-8"?> | |
| 2 | +<!DOCTYPE mapper | |
| 3 | + PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" | |
| 4 | + "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> | |
| 5 | +<mapper namespace="com.lyms.talkonlineweb.mapper.LymsLogsCrudMapper"> | |
| 6 | + | |
| 7 | + <resultMap id="BaseResultMap" type="com.lyms.talkonlineweb.domain.LymsLogsCrud"> | |
| 8 | + <id property="id" column="id" jdbcType="INTEGER"/> | |
| 9 | + <result property="uid" column="uid" jdbcType="INTEGER"/> | |
| 10 | + <result property="crud" column="crud" jdbcType="INTEGER"/> | |
| 11 | + <result property="hoid" column="hoid" jdbcType="INTEGER"/> | |
| 12 | + <result property="hdid" column="hdid" jdbcType="INTEGER"/> | |
| 13 | + <result property="creatdata" column="creatdata" jdbcType="TIMESTAMP"/> | |
| 14 | + </resultMap> | |
| 15 | + | |
| 16 | + <sql id="Base_Column_List"> | |
| 17 | + id,uid,crud, | |
| 18 | + hoid,hdid,creatdata | |
| 19 | + </sql> | |
| 20 | +</mapper> |