This is an automated email from the ASF dual-hosted git repository.

zhangxiaowei pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/ozhera.git


The following commit(s) were added to refs/heads/master by this push:
     new d349bb6e feat: member limit for Hera app permissions (#629)
d349bb6e is described below

commit d349bb6e91f9584ca79863e4db68961e1bc3488b
Author: gaoxh <[email protected]>
AuthorDate: Tue Jan 20 14:42:47 2026 +0800

    feat: member limit for Hera app permissions (#629)
    
    * refactor: extend the id column in the hera_app_role table to the bigint 
type
    
    * feat: allow configuring platform codes to prohibit MQ messages from 
accessing the database
    
    * feat: member limit for Hera app permissions
    
    * fix: member limit for Hera app permissions
    
    ---------
    
    Co-authored-by: gaoxihui <[email protected]>
---
 .../app/service/mq/RocketMqHeraAppConsumer.java    | 14 +++++++++
 .../apache/ozhera/monitor/dao/HeraAppRoleDao.java  |  2 +-
 .../monitor/dao/mapper/HeraAppRoleMapper.java      |  4 +--
 .../ozhera/monitor/dao/model/HeraAppRole.java      |  8 ++---
 .../monitor/dao/model/HeraAppRoleExample.java      | 20 ++++++------
 .../monitor/dao/mapper/HeraAppRoleMapper.xml       | 36 +++++++++++-----------
 6 files changed, 49 insertions(+), 35 deletions(-)

diff --git 
a/ozhera-app/app-service/src/main/java/org/apache/ozhera/app/service/mq/RocketMqHeraAppConsumer.java
 
b/ozhera-app/app-service/src/main/java/org/apache/ozhera/app/service/mq/RocketMqHeraAppConsumer.java
index 20319273..cdf51adc 100644
--- 
a/ozhera-app/app-service/src/main/java/org/apache/ozhera/app/service/mq/RocketMqHeraAppConsumer.java
+++ 
b/ozhera-app/app-service/src/main/java/org/apache/ozhera/app/service/mq/RocketMqHeraAppConsumer.java
@@ -252,6 +252,14 @@ public class RocketMqHeraAppConsumer {
 
         List<String> members = 
membersP.stream().distinct().collect(Collectors.toList());
 
+        log.info("check members size === " + members.size());
+
+        if(members.size() > 100){
+            log.info("more than 100 members found from mq info by appId : {} 
and platform_type : {}, update members stop! ", appId, platFormType);
+            return;
+        }
+
+
         HeraAppRole role = new HeraAppRole();
         role.setRole(0);
         role.setAppId(appId);
@@ -259,6 +267,12 @@ public class RocketMqHeraAppConsumer {
         role.setStatus(0);
 //        role.setUser(member);
 
+        Long count = heraAppRoleDao.count(role);
+        if(count != null && count.intValue() > 100){
+            log.info("more than 100 members has existed in db found by appId : 
{} and platform_type : {}, update members stop! ", appId, platFormType);
+            return;
+        }
+
         List<HeraAppRole> query = heraAppRoleDao.query(role, null, 2000);
 
         if (CollectionUtils.isEmpty(query)) {
diff --git 
a/ozhera-monitor/ozhera-monitor-service/src/main/java/org/apache/ozhera/monitor/dao/HeraAppRoleDao.java
 
b/ozhera-monitor/ozhera-monitor-service/src/main/java/org/apache/ozhera/monitor/dao/HeraAppRoleDao.java
index 875c6f18..054a20bf 100644
--- 
a/ozhera-monitor/ozhera-monitor-service/src/main/java/org/apache/ozhera/monitor/dao/HeraAppRoleDao.java
+++ 
b/ozhera-monitor/ozhera-monitor-service/src/main/java/org/apache/ozhera/monitor/dao/HeraAppRoleDao.java
@@ -38,7 +38,7 @@ public class HeraAppRoleDao {
     @Resource
     private HeraAppRoleMapper heraAppRoleMapper;
 
-    public Integer delById(Integer id) {
+    public Integer delById(Long id) {
         if (id == null) {
             log.error("HeraAppRoleDao.delById invalid param,id is null");
         }
diff --git 
a/ozhera-monitor/ozhera-monitor-service/src/main/java/org/apache/ozhera/monitor/dao/mapper/HeraAppRoleMapper.java
 
b/ozhera-monitor/ozhera-monitor-service/src/main/java/org/apache/ozhera/monitor/dao/mapper/HeraAppRoleMapper.java
index 0aa47f12..f7bba6c1 100644
--- 
a/ozhera-monitor/ozhera-monitor-service/src/main/java/org/apache/ozhera/monitor/dao/mapper/HeraAppRoleMapper.java
+++ 
b/ozhera-monitor/ozhera-monitor-service/src/main/java/org/apache/ozhera/monitor/dao/mapper/HeraAppRoleMapper.java
@@ -29,7 +29,7 @@ public interface HeraAppRoleMapper {
 
     int deleteByExample(HeraAppRoleExample example);
 
-    int deleteByPrimaryKey(Integer id);
+    int deleteByPrimaryKey(Long id);
 
     int insert(HeraAppRole record);
 
@@ -37,7 +37,7 @@ public interface HeraAppRoleMapper {
 
     List<HeraAppRole> selectByExample(HeraAppRoleExample example);
 
-    HeraAppRole selectByPrimaryKey(Integer id);
+    HeraAppRole selectByPrimaryKey(Long id);
 
     int updateByExampleSelective(@Param("record") HeraAppRole record, 
@Param("example") HeraAppRoleExample example);
 
diff --git 
a/ozhera-monitor/ozhera-monitor-service/src/main/java/org/apache/ozhera/monitor/dao/model/HeraAppRole.java
 
b/ozhera-monitor/ozhera-monitor-service/src/main/java/org/apache/ozhera/monitor/dao/model/HeraAppRole.java
index b9629ac0..2562ba72 100644
--- 
a/ozhera-monitor/ozhera-monitor-service/src/main/java/org/apache/ozhera/monitor/dao/model/HeraAppRole.java
+++ 
b/ozhera-monitor/ozhera-monitor-service/src/main/java/org/apache/ozhera/monitor/dao/model/HeraAppRole.java
@@ -26,7 +26,7 @@ import java.util.Date;
 
 @Data
 public class HeraAppRole {
-    private Integer id;
+    private Long id;
 
     private String appId;
 
@@ -42,11 +42,11 @@ public class HeraAppRole {
 
     private Date updateTime;
 
-    public Integer getId() {
+    public Long getId() {
         return id;
     }
 
-    public void setId(Integer id) {
+    public void setId(Long id) {
         this.id = id;
     }
 
@@ -107,7 +107,7 @@ public class HeraAppRole {
     }
 
     public enum Column {
-        id("id", "id", "INTEGER", false),
+        id("id", "id", "LONG", false),
         appId("app_id", "appId", "VARCHAR", false),
         appPlatform("app_platform", "appPlatform", "INTEGER", false),
         user("user", "user", "VARCHAR", false),
diff --git 
a/ozhera-monitor/ozhera-monitor-service/src/main/java/org/apache/ozhera/monitor/dao/model/HeraAppRoleExample.java
 
b/ozhera-monitor/ozhera-monitor-service/src/main/java/org/apache/ozhera/monitor/dao/model/HeraAppRoleExample.java
index 430aa5c7..a3df7f22 100644
--- 
a/ozhera-monitor/ozhera-monitor-service/src/main/java/org/apache/ozhera/monitor/dao/model/HeraAppRoleExample.java
+++ 
b/ozhera-monitor/ozhera-monitor-service/src/main/java/org/apache/ozhera/monitor/dao/model/HeraAppRoleExample.java
@@ -153,52 +153,52 @@ public class HeraAppRoleExample {
             return (Criteria) this;
         }
 
-        public Criteria andIdEqualTo(Integer value) {
+        public Criteria andIdEqualTo(Long value) {
             addCriterion("id =", value, "id");
             return (Criteria) this;
         }
 
-        public Criteria andIdNotEqualTo(Integer value) {
+        public Criteria andIdNotEqualTo(Long value) {
             addCriterion("id <>", value, "id");
             return (Criteria) this;
         }
 
-        public Criteria andIdGreaterThan(Integer value) {
+        public Criteria andIdGreaterThan(Long value) {
             addCriterion("id >", value, "id");
             return (Criteria) this;
         }
 
-        public Criteria andIdGreaterThanOrEqualTo(Integer value) {
+        public Criteria andIdGreaterThanOrEqualTo(Long value) {
             addCriterion("id >=", value, "id");
             return (Criteria) this;
         }
 
-        public Criteria andIdLessThan(Integer value) {
+        public Criteria andIdLessThan(Long value) {
             addCriterion("id <", value, "id");
             return (Criteria) this;
         }
 
-        public Criteria andIdLessThanOrEqualTo(Integer value) {
+        public Criteria andIdLessThanOrEqualTo(Long value) {
             addCriterion("id <=", value, "id");
             return (Criteria) this;
         }
 
-        public Criteria andIdIn(List<Integer> values) {
+        public Criteria andIdIn(List<Long> values) {
             addCriterion("id in", values, "id");
             return (Criteria) this;
         }
 
-        public Criteria andIdNotIn(List<Integer> values) {
+        public Criteria andIdNotIn(List<Long> values) {
             addCriterion("id not in", values, "id");
             return (Criteria) this;
         }
 
-        public Criteria andIdBetween(Integer value1, Integer value2) {
+        public Criteria andIdBetween(Long value1, Long value2) {
             addCriterion("id between", value1, value2, "id");
             return (Criteria) this;
         }
 
-        public Criteria andIdNotBetween(Integer value1, Integer value2) {
+        public Criteria andIdNotBetween(Long value1, Long value2) {
             addCriterion("id not between", value1, value2, "id");
             return (Criteria) this;
         }
diff --git 
a/ozhera-monitor/ozhera-monitor-service/src/main/resources/org/apache/ozhera/monitor/dao/mapper/HeraAppRoleMapper.xml
 
b/ozhera-monitor/ozhera-monitor-service/src/main/resources/org/apache/ozhera/monitor/dao/mapper/HeraAppRoleMapper.xml
index 336a4d95..9ef31c85 100644
--- 
a/ozhera-monitor/ozhera-monitor-service/src/main/resources/org/apache/ozhera/monitor/dao/mapper/HeraAppRoleMapper.xml
+++ 
b/ozhera-monitor/ozhera-monitor-service/src/main/resources/org/apache/ozhera/monitor/dao/mapper/HeraAppRoleMapper.xml
@@ -22,7 +22,7 @@
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" 
"http://mybatis.org/dtd/mybatis-3-mapper.dtd";>
 <mapper namespace="org.apache.ozhera.monitor.dao.mapper.HeraAppRoleMapper">
   <resultMap id="BaseResultMap" 
type="org.apache.ozhera.monitor.dao.model.HeraAppRole">
-    <id column="id" jdbcType="INTEGER" property="id" />
+    <id column="id" jdbcType="BIGINT" property="id" />
     <result column="app_id" jdbcType="VARCHAR" property="appId" />
     <result column="app_platform" jdbcType="INTEGER" property="appPlatform" />
     <result column="user" jdbcType="VARCHAR" property="user" />
@@ -109,15 +109,15 @@
       limit #{offset} , #{limit}
     </if>
   </select>
-  <select id="selectByPrimaryKey" parameterType="java.lang.Integer" 
resultMap="BaseResultMap">
-    select 
+  <select id="selectByPrimaryKey" parameterType="java.lang.Long" 
resultMap="BaseResultMap">
+    select
     <include refid="Base_Column_List" />
     from hera_app_role
-    where id = #{id,jdbcType=INTEGER}
+    where id = #{id,jdbcType=BIGINT}
   </select>
-  <delete id="deleteByPrimaryKey" parameterType="java.lang.Integer">
+  <delete id="deleteByPrimaryKey" parameterType="java.lang.Long">
     delete from hera_app_role
-    where id = #{id,jdbcType=INTEGER}
+    where id = #{BIGINT}
   </delete>
   <delete id="deleteByExample" 
parameterType="org.apache.ozhera.monitor.dao.model.HeraAppRoleExample">
     delete from hera_app_role
@@ -126,18 +126,18 @@
     </if>
   </delete>
   <insert id="insert" 
parameterType="org.apache.ozhera.monitor.dao.model.HeraAppRole">
-    <selectKey keyProperty="id" order="AFTER" resultType="java.lang.Integer">
+    <selectKey keyProperty="id" order="AFTER" resultType="java.lang.Long">
       SELECT LAST_INSERT_ID()
     </selectKey>
-    insert into hera_app_role (app_id, app_platform, user, 
-      role, status, create_time, 
+    insert into hera_app_role (app_id, app_platform, user,
+      role, status, create_time,
       update_time)
-    values (#{appId,jdbcType=VARCHAR}, #{appPlatform,jdbcType=INTEGER}, 
#{user,jdbcType=VARCHAR}, 
-      #{role,jdbcType=INTEGER}, #{status,jdbcType=INTEGER}, 
#{createTime,jdbcType=TIMESTAMP}, 
+    values (#{appId,jdbcType=VARCHAR}, #{appPlatform,jdbcType=INTEGER}, 
#{user,jdbcType=VARCHAR},
+      #{role,jdbcType=INTEGER}, #{status,jdbcType=INTEGER}, 
#{createTime,jdbcType=TIMESTAMP},
       #{updateTime,jdbcType=TIMESTAMP})
   </insert>
   <insert id="insertSelective" 
parameterType="org.apache.ozhera.monitor.dao.model.HeraAppRole">
-    <selectKey keyProperty="id" order="AFTER" resultType="java.lang.Integer">
+    <selectKey keyProperty="id" order="AFTER" resultType="java.lang.Long">
       SELECT LAST_INSERT_ID()
     </selectKey>
     insert into hera_app_role
@@ -198,7 +198,7 @@
     update hera_app_role
     <set>
       <if test="record.id != null">
-        id = #{record.id,jdbcType=INTEGER},
+        id = #{record.id,jdbcType=BIGINT},
       </if>
       <if test="record.appId != null">
         app_id = #{record.appId,jdbcType=VARCHAR},
@@ -228,7 +228,7 @@
   </update>
   <update id="updateByExample" parameterType="map">
     update hera_app_role
-    set id = #{record.id,jdbcType=INTEGER},
+    set id = #{record.id,jdbcType=BIGINT},
       app_id = #{record.appId,jdbcType=VARCHAR},
       app_platform = #{record.appPlatform,jdbcType=INTEGER},
       user = #{record.user,jdbcType=VARCHAR},
@@ -265,7 +265,7 @@
         update_time = #{updateTime,jdbcType=TIMESTAMP},
       </if>
     </set>
-    where id = #{id,jdbcType=INTEGER}
+    where id = #{id,jdbcType=BIGINT}
   </update>
   <update id="updateByPrimaryKey" 
parameterType="org.apache.ozhera.monitor.dao.model.HeraAppRole">
     update hera_app_role
@@ -276,15 +276,15 @@
       status = #{status,jdbcType=INTEGER},
       create_time = #{createTime,jdbcType=TIMESTAMP},
       update_time = #{updateTime,jdbcType=TIMESTAMP}
-    where id = #{id,jdbcType=INTEGER}
+    where id = #{id,jdbcType=BIGINT}
   </update>
   <insert id="batchInsert" keyColumn="id" keyProperty="id" parameterType="map" 
useGeneratedKeys="true">
     insert into hera_app_role
     (app_id, app_platform, user, role, status, create_time, update_time)
     values
     <foreach collection="list" item="item" separator=",">
-      (#{item.appId,jdbcType=VARCHAR}, #{item.appPlatform,jdbcType=INTEGER}, 
#{item.user,jdbcType=VARCHAR}, 
-        #{item.role,jdbcType=INTEGER}, #{item.status,jdbcType=INTEGER}, 
#{item.createTime,jdbcType=TIMESTAMP}, 
+      (#{item.appId,jdbcType=VARCHAR}, #{item.appPlatform,jdbcType=INTEGER}, 
#{item.user,jdbcType=VARCHAR},
+        #{item.role,jdbcType=INTEGER}, #{item.status,jdbcType=INTEGER}, 
#{item.createTime,jdbcType=TIMESTAMP},
         #{item.updateTime,jdbcType=TIMESTAMP})
     </foreach>
   </insert>


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to