Commit de3de82d authored by dingzhiwei's avatar dingzhiwei
Browse files

初始化Jeepay项目

parent 40dcaf4a
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.jeequan.jeepay.service.mapper.PayOrderMapper">
<!-- 通用查询映射结果 -->
<resultMap id="BaseResultMap" type="com.jeequan.jeepay.core.entity.PayOrder">
<id column="pay_order_id" property="payOrderId" />
<result column="mch_no" property="mchNo" />
<result column="isv_no" property="isvNo" />
<result column="mch_name" property="mchName" />
<result column="mch_type" property="mchType" />
<result column="mch_order_no" property="mchOrderNo" />
<result column="if_code" property="ifCode" />
<result column="way_code" property="wayCode" />
<result column="amount" property="amount" />
<result column="currency" property="currency" />
<result column="state" property="state" />
<result column="notify_state" property="notifyState" />
<result column="client_ip" property="clientIp" />
<result column="subject" property="subject" />
<result column="body" property="body" />
<result column="channel_extra" property="channelExtra" />
<result column="channel_user" property="channelUser" />
<result column="channel_order_no" property="channelOrderNo" />
<result column="refund_times" property="refundTimes" />
<result column="refund_amount" property="refundAmount" />
<result column="division_flag" property="divisionFlag" />
<result column="division_time" property="divisionTime" />
<result column="err_code" property="errCode" />
<result column="err_msg" property="errMsg" />
<result column="ext_param" property="extParam" />
<result column="notify_url" property="notifyUrl" />
<result column="return_url" property="returnUrl" />
<result column="expired_time" property="expiredTime" />
<result column="success_time" property="successTime" />
<result column="created_at" property="createdAt" />
<result column="updated_at" property="updatedAt" />
</resultMap>
<!--交易统计-->
<select id="payCount" resultType="java.util.Map" parameterType="java.util.Map" >
SELECT ROUND(IFNULL(SUM(amount), 0)/100, 2) AS payAmount, IFNULL(COUNT(1), 0) AS payCount
FROM t_pay_order
WHERE 1=1
<if test="state != null"> AND state = #{state} </if>
<if test="mchNo != null"> AND mch_no = #{mchNo} </if>
<if test="createTimeStart != null"> AND created_at &gt;= #{createTimeStart} </if>
<if test="createTimeEnd != null"> AND created_at &lt;= #{createTimeEnd} </if>
;
</select>
<!--总交易统计-->
<select id="selectTotalCount" resultType="java.util.Map" parameterType="java.util.Map" >
SELECT ROUND(IFNULL(SUM(amount), 0)/100, 2) AS totalAmount, IFNULL(COUNT(1), 0) AS totalCount
FROM t_pay_order
WHERE 1=1
<if test="state != null"> AND state = #{state} </if>
<if test="mchNo != null"> AND mch_no = #{mchNo} </if>
<if test="createTimeStart != null"> AND created_at &gt;= #{createTimeStart} </if>
<if test="createTimeEnd != null"> AND created_at &lt;= #{createTimeEnd} </if>
;
</select>
<!--支付方式统计-->
<select id="payTypeCount" resultType="java.util.Map" parameterType="java.util.Map" >
SELECT COUNT(1) AS typeCount, ROUND(IFNULL(SUM(amount), 0)/100, 2) AS typeAmount, way_code as wayCode
FROM t_pay_order
WHERE 1=1
<if test="state != null"> AND state = #{state} </if>
<if test="mchNo != null"> AND mch_no = #{mchNo} </if>
<if test="createTimeStart != null"> AND created_at &gt;= #{createTimeStart} </if>
<if test="createTimeEnd != null"> AND created_at &lt;= #{createTimeEnd} </if>
GROUP BY way_code
</select>
<!--成功、退款订单统计-->
<select id="selectOrderCount" resultType="java.util.Map" parameterType="java.util.Map" >
SELECT DATE_FORMAT(FLOOR(created_at),'%m-%d') groupDate, ROUND(IFNULL(SUM(amount), 0)/100, 2) AS payAmount
FROM t_pay_order
WHERE 1=1
<if test="state != null"> AND state = #{state} </if>
<if test="mchNo != null"> AND mch_no = #{mchNo} </if>
<if test="createTimeStart != null"> AND created_at &gt;= #{createTimeStart} </if>
<if test="createTimeEnd != null"> AND created_at &lt;= #{createTimeEnd} </if>
GROUP BY groupDate
ORDER BY groupDate desc
</select>
</mapper>
/*
* Copyright (c) 2021-2031, 河北计全科技有限公司 (https://www.jeequan.com & jeequan@126.com).
* <p>
* Licensed under the GNU LESSER GENERAL PUBLIC LICENSE 3.0;
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
* <p>
* http://www.gnu.org/licenses/lgpl.html
* <p>
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.jeequan.jeepay.service.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.jeequan.jeepay.core.entity.PayWay;
/**
* <p>
* 支付方式表 Mapper 接口
* </p>
*
* @author [mybatis plus generator]
* @since 2021-04-27
*/
public interface PayWayMapper extends BaseMapper<PayWay> {
}
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.jeequan.jeepay.service.mapper.PayWayMapper">
<!-- 通用查询映射结果 -->
<resultMap id="BaseResultMap" type="com.jeequan.jeepay.core.entity.PayWay">
<id column="way_code" property="wayCode" />
<result column="way_name" property="wayName" />
<result column="created_at" property="createdAt" />
<result column="updated_at" property="updatedAt" />
</resultMap>
</mapper>
/*
* Copyright (c) 2021-2031, 河北计全科技有限公司 (https://www.jeequan.com & jeequan@126.com).
* <p>
* Licensed under the GNU LESSER GENERAL PUBLIC LICENSE 3.0;
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
* <p>
* http://www.gnu.org/licenses/lgpl.html
* <p>
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.jeequan.jeepay.service.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.jeequan.jeepay.core.entity.RefundOrder;
/**
* <p>
* 退款订单表 Mapper 接口
* </p>
*
* @author [mybatis plus generator]
* @since 2021-04-27
*/
public interface RefundOrderMapper extends BaseMapper<RefundOrder> {
}
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.jeequan.jeepay.service.mapper.RefundOrderMapper">
<!-- 通用查询映射结果 -->
<resultMap id="BaseResultMap" type="com.jeequan.jeepay.core.entity.RefundOrder">
<id column="refund_order_id" property="refundOrderId" />
<result column="pay_order_id" property="payOrderId" />
<result column="channel_pay_order_no" property="channelPayOrderNo" />
<result column="mch_no" property="mchNo" />
<result column="mch_type" property="mchType" />
<result column="mch_refund_no" property="mchRefundNo" />
<result column="isv_no" property="isvNo" />
<result column="way_code" property="wayCode" />
<result column="if_code" property="ifCode" />
<result column="pay_amount" property="payAmount" />
<result column="refund_amount" property="refundAmount" />
<result column="currency" property="currency" />
<result column="state" property="state" />
<result column="result" property="result" />
<result column="client_ip" property="clientIp" />
<result column="remark" property="remark" />
<result column="channel_order_no" property="channelOrderNo" />
<result column="channel_err_code" property="channelErrCode" />
<result column="channel_err_msg" property="channelErrMsg" />
<result column="channel_extra" property="channelExtra" />
<result column="notify_url" property="notifyUrl" />
<result column="ext_param" property="extParam" />
<result column="success_time" property="successTime" />
<result column="created_at" property="createdAt" />
<result column="updated_at" property="updatedAt" />
</resultMap>
</mapper>
/*
* Copyright (c) 2021-2031, 河北计全科技有限公司 (https://www.jeequan.com & jeequan@126.com).
* <p>
* Licensed under the GNU LESSER GENERAL PUBLIC LICENSE 3.0;
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
* <p>
* http://www.gnu.org/licenses/lgpl.html
* <p>
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.jeequan.jeepay.service.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.jeequan.jeepay.core.entity.SysConfig;
/**
* <p>
* 系统配置表 Mapper 接口
* </p>
*
* @author [mybatis plus generator]
* @since 2020-07-29
*/
public interface SysConfigMapper extends BaseMapper<SysConfig> {
}
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.jeequan.jeepay.service.mapper.SysConfigMapper">
<!-- 通用查询映射结果 -->
<resultMap id="BaseResultMap" type="com.jeequan.jeepay.core.entity.SysConfig">
<id column="config_key" property="configKey" />
<result column="config_name" property="configName" />
<result column="config_desc" property="configDesc" />
<result column="group_key" property="groupKey" />
<result column="group_name" property="groupName" />
<result column="config_val" property="configVal" />
<result column="type" property="type" />
<result column="sort_num" property="sortNum" />
<result column="updated_at" property="updatedAt" />
</resultMap>
</mapper>
/*
* Copyright (c) 2021-2031, 河北计全科技有限公司 (https://www.jeequan.com & jeequan@126.com).
* <p>
* Licensed under the GNU LESSER GENERAL PUBLIC LICENSE 3.0;
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
* <p>
* http://www.gnu.org/licenses/lgpl.html
* <p>
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.jeequan.jeepay.service.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.jeequan.jeepay.core.entity.SysEntitlement;
import org.apache.ibatis.annotations.Param;
/**
* <p>
* 系统权限表 Mapper 接口
* </p>
*
* @author [mybatis plus generator]
* @since 2020-06-13
*/
public interface SysEntitlementMapper extends BaseMapper<SysEntitlement> {
Integer userHasLeftMenu(@Param("userId") Long userId, @Param("system") String system);
}
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.jeequan.jeepay.service.mapper.SysEntitlementMapper">
<!-- 通用查询映射结果 -->
<resultMap id="BaseResultMap" type="com.jeequan.jeepay.core.entity.SysEntitlement">
<id column="ent_id" property="entId" />
<result column="ent_name" property="entName" />
<result column="menu_icon" property="menuIcon" />
<result column="menu_uri" property="menuUri" />
<result column="component_name" property="componentName" />
<result column="ent_type" property="entType" />
<result column="quick_jump" property="quickJump" />
<result column="state" property="state" />
<result column="pid" property="pid" />
<result column="ent_sort" property="entSort" />
<result column="system" property="system" />
<result column="created_at" property="createdAt" />
<result column="updated_at" property="updatedAt" />
</resultMap>
<!-- 查询当前用户是否存在左侧菜单 (仅普通操作员) -->
<select id="userHasLeftMenu" resultType="Integer">
select count(1) from t_sys_entitlement where ent_id in (
select DISTINCT ent_id from t_sys_role_ent_rela where role_id in (
select role_id from t_sys_user_role_rela where user_id = #{userId}
)
) and state = 1 and ent_type = 'ML' and system = #{system}
</select>
</mapper>
/*
* Copyright (c) 2021-2031, 河北计全科技有限公司 (https://www.jeequan.com & jeequan@126.com).
* <p>
* Licensed under the GNU LESSER GENERAL PUBLIC LICENSE 3.0;
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
* <p>
* http://www.gnu.org/licenses/lgpl.html
* <p>
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.jeequan.jeepay.service.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.jeequan.jeepay.core.entity.SysLog;
/**
* <p>
* 系统操作日志表 Mapper 接口
* </p>
*
* @author [mybatis plus generator]
* @since 2021-04-27
*/
public interface SysLogMapper extends BaseMapper<SysLog> {
}
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.jeequan.jeepay.service.mapper.SysLogMapper">
<!-- 通用查询映射结果 -->
<resultMap id="BaseResultMap" type="com.jeequan.jeepay.core.entity.SysLog">
<id column="sys_log_id" property="sysLogId" />
<result column="user_id" property="userId" />
<result column="user_name" property="userName" />
<result column="user_ip" property="userIp" />
<result column="system" property="system" />
<result column="method_name" property="methodName" />
<result column="method_remark" property="methodRemark" />
<result column="req_url" property="reqUrl" />
<result column="opt_req_param" property="optReqParam" />
<result column="opt_res_info" property="optResInfo" />
<result column="created_at" property="createdAt" />
</resultMap>
</mapper>
/*
* Copyright (c) 2021-2031, 河北计全科技有限公司 (https://www.jeequan.com & jeequan@126.com).
* <p>
* Licensed under the GNU LESSER GENERAL PUBLIC LICENSE 3.0;
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
* <p>
* http://www.gnu.org/licenses/lgpl.html
* <p>
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.jeequan.jeepay.service.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.jeequan.jeepay.core.entity.SysRoleEntRela;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* <p>
* 系统角色权限关联表 Mapper 接口
* </p>
*
* @author [mybatis plus generator]
* @since 2020-06-13
*/
public interface SysRoleEntRelaMapper extends BaseMapper<SysRoleEntRela> {
List<String> selectEntIdsByUserId(@Param("userId") Long userId, @Param("system") String system);
}
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.jeequan.jeepay.service.mapper.SysRoleEntRelaMapper">
<!-- 通用查询映射结果 -->
<resultMap id="BaseResultMap" type="com.jeequan.jeepay.core.entity.SysRoleEntRela">
<id column="role_id" property="roleId" />
<result column="ent_id" property="entId" />
</resultMap>
<!-- 根据用户查询所有的entId集合 -->
<select id="selectEntIdsByUserId" resultType="String">
select distinct ent_id from t_sys_entitlement where ent_id in (
select distinct re.ent_id from t_sys_role_ent_rela re left join t_sys_user_role_rela ur on re.role_id = ur.role_id
where ur.user_id = #{userId}
) and `system` = #{system} and state = 1
</select>
</mapper>
/*
* Copyright (c) 2021-2031, 河北计全科技有限公司 (https://www.jeequan.com & jeequan@126.com).
* <p>
* Licensed under the GNU LESSER GENERAL PUBLIC LICENSE 3.0;
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
* <p>
* http://www.gnu.org/licenses/lgpl.html
* <p>
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.jeequan.jeepay.service.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.jeequan.jeepay.core.entity.SysRole;
/**
* <p>
* 系统角色表 Mapper 接口
* </p>
*
* @author [mybatis plus generator]
* @since 2020-06-13
*/
public interface SysRoleMapper extends BaseMapper<SysRole> {
}
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.jeequan.jeepay.service.mapper.SysRoleMapper">
<!-- 通用查询映射结果 -->
<resultMap id="BaseResultMap" type="com.jeequan.jeepay.core.entity.SysRole">
<id column="role_id" property="roleId" />
<result column="role_name" property="roleName" />
<result column="system" property="system" />
<result column="belong_info_id" property="belongInfoId" />
<result column="updated_at" property="updatedAt" />
</resultMap>
</mapper>
/*
* Copyright (c) 2021-2031, 河北计全科技有限公司 (https://www.jeequan.com & jeequan@126.com).
* <p>
* Licensed under the GNU LESSER GENERAL PUBLIC LICENSE 3.0;
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
* <p>
* http://www.gnu.org/licenses/lgpl.html
* <p>
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.jeequan.jeepay.service.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Param;
import com.jeequan.jeepay.core.entity.SysUserAuth;
/**
* <p>
* 操作员认证表 Mapper 接口
* </p>
*
* @author [mybatis plus generator]
* @since 2020-06-13
*/
public interface SysUserAuthMapper extends BaseMapper<SysUserAuth> {
SysUserAuth selectByLogin(@Param("identifier")String identifier,
@Param("identityType")Byte identityType, @Param("system")String system);
}
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.jeequan.jeepay.service.mapper.SysUserAuthMapper">
<!-- 通用查询映射结果 -->
<resultMap id="BaseResultMap" type="com.jeequan.jeepay.core.entity.SysUserAuth">
<id column="auth_id" property="authId" />
<result column="user_id" property="userId" />
<result column="identity_type" property="identityType" />
<result column="identifier" property="identifier" />
<result column="credential" property="credential" />
<result column="salt" property="salt" />
<result column="system" property="system" />
</resultMap>
<!-- 根据登录信息查询 -->
<select id="selectByLogin" resultMap="BaseResultMap">
select a.* from t_sys_user_auth a left join t_sys_user u on a.user_id = u.sys_user_id
where a.identity_type = #{identityType} and a.identifier = #{identifier} and a.system = #{system}
</select>
</mapper>
/*
* Copyright (c) 2021-2031, 河北计全科技有限公司 (https://www.jeequan.com & jeequan@126.com).
* <p>
* Licensed under the GNU LESSER GENERAL PUBLIC LICENSE 3.0;
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
* <p>
* http://www.gnu.org/licenses/lgpl.html
* <p>
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.jeequan.jeepay.service.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.jeequan.jeepay.core.entity.SysUser;
/**
* <p>
* 系统操作员表 Mapper 接口
* </p>
*
* @author [mybatis plus generator]
* @since 2020-06-13
*/
public interface SysUserMapper extends BaseMapper<SysUser> {
}
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.jeequan.jeepay.service.mapper.SysUserMapper">
<!-- 通用查询映射结果 -->
<resultMap id="BaseResultMap" type="com.jeequan.jeepay.core.entity.SysUser">
<id column="sys_user_id" property="sysUserId" />
<result column="realname" property="realname" />
<result column="telphone" property="telphone" />
<result column="sex" property="sex" />
<result column="avatar_url" property="avatarUrl" />
<result column="user_no" property="userNo" />
<result column="is_admin" property="isAdmin" />
<result column="state" property="state" />
<result column="system" property="system" />
<result column="belong_info_id" property="belongInfoId" />
<result column="created_at" property="createdAt" />
<result column="updated_at" property="updatedAt" />
</resultMap>
</mapper>
/*
* Copyright (c) 2021-2031, 河北计全科技有限公司 (https://www.jeequan.com & jeequan@126.com).
* <p>
* Licensed under the GNU LESSER GENERAL PUBLIC LICENSE 3.0;
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
* <p>
* http://www.gnu.org/licenses/lgpl.html
* <p>
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.jeequan.jeepay.service.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.jeequan.jeepay.core.entity.SysUserRoleRela;
/**
* <p>
* 操作员<->角色 关联表 Mapper 接口
* </p>
*
* @author [mybatis plus generator]
* @since 2020-06-13
*/
public interface SysUserRoleRelaMapper extends BaseMapper<SysUserRoleRela> {
}
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment