puzhibing
2024-08-16 ab46a451cf1c94b01e8718e2aa6be6c7fc1886c1
合并代码
9个文件已修改
65 ■■■■ 已修改文件
ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/factory/ChargingOrderAccountingStrategyFallbackFactory.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/factory/ChargingOrderFallbackFactory.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-auth/src/main/java/com/ruoyi/auth/controller/TokenController.java 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/constant/TokenConstants.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-gateway/src/main/java/com/ruoyi/gateway/config/RouterFunctionConfiguration.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-gateway/src/main/java/com/ruoyi/gateway/filter/SignFilter.java 26 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysRoleController.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysRoleMapper.xml 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/factory/ChargingOrderAccountingStrategyFallbackFactory.java
@@ -11,6 +11,7 @@
import java.util.List;
import java.util.Map;
import java.util.Set;
/**
 * 充电订单服务降级处理
@@ -29,12 +30,12 @@
    
    
            @Override
            public R<List<List<Map<String, Object>>>> getTotalElectricQuantity(Integer days) {
            public R<List<List<Map<String, Object>>>> getTotalElectricQuantity(Integer days, Set<Integer> siteIds) {
                return R.fail("获取给定天数每天的充电量统计数据失败:" + throwable.getMessage());
            }
    
            @Override
            public R<List<Double>> getDailyChargingDegree(Integer days) {
            public R<List<Double>> getDailyChargingDegree(Integer days, Set<Integer> siteIds) {
                return R.fail("获取给定天数每天的充电度数失败:" + throwable.getMessage());
            }
        };
ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/factory/ChargingOrderFallbackFactory.java
@@ -39,6 +39,11 @@
            public R<Integer> getChargingCount(TChargingCountQuery req) {
                return R.fail("根据会员id和有效期查询有效期内享受充电折扣次数:" + throwable.getMessage());
            }
            @Override
            public R<TChargingOrder> getOrderDetailByGunId(Integer chargingGunId) {
                return R.fail("根据充电枪获取正在充电的订单:" + throwable.getMessage());
            }
        };
    }
}
ruoyi-auth/src/main/java/com/ruoyi/auth/controller/TokenController.java
@@ -53,11 +53,11 @@
        HashMap<String, Object> map = new HashMap<>();
        map.put("token",tokenService.createToken(userInfo));
        List<SysRole> roles = userInfo.getSysUser().getRoles();
        if(CollectionUtils.isEmpty(roles)){
            return R.fail("请关联角色!");
        }
//        if(CollectionUtils.isEmpty(roles)){
//            return R.fail("请关联角色!");
//        }
        map.put("roleName",roles.get(0).getRoleName());
//        map.put("roleName",roles.get(0).getRoleName());
        map.put("info",userInfo);
        // 修改用户最后登录时间
        SysUser sysUser = new SysUser();
ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/constant/TokenConstants.java
@@ -25,7 +25,7 @@
    /**
     * 参数签名
     */
    public static final String SING = "sing";
    public static final String SIGN = "sign";
    
    /**
     * 参数随机字符串
ruoyi-gateway/src/main/java/com/ruoyi/gateway/config/RouterFunctionConfiguration.java
@@ -31,7 +31,7 @@
    /**
     * 这里为支持的请求头,如果有自定义的header字段请自己添加
     */
    private static final String ALLOWED_HEADERS = "X-Requested-With, Content-Type, Authorization, credential, X-XSRF-TOKEN, token, username, client, request-origion";
    private static final String ALLOWED_HEADERS = "X-Requested-With, Content-Type, Authorization, credential, X-XSRF-TOKEN, token, username, client, request-origion, sign, nonce_str";
    private static final String ALLOWED_METHODS = "GET,POST,PUT,DELETE,OPTIONS,HEAD";
    private static final String ALLOWED_ORIGIN = "*";
    private static final String ALLOWED_EXPOSE = "*";
ruoyi-gateway/src/main/java/com/ruoyi/gateway/filter/SignFilter.java
@@ -67,16 +67,16 @@
        if(method != HttpMethod.POST){
            return chain.filter(exchange.mutate().request(mutate.build()).build());
        }
        String sing = request.getHeaders().getFirst(TokenConstants.SING);
        String sign = request.getHeaders().getFirst(TokenConstants.SIGN);
        String nonce_str = request.getHeaders().getFirst(TokenConstants.NONCE_STR);
//        if (parameter_signature && StringUtils.isEmpty(sing)) {
//            return unauthorizedResponse(exchange, "签名不能为空!");
//        }
//        if (parameter_signature && StringUtils.isEmpty(nonce_str)) {
//            return unauthorizedResponse(exchange, "签名不能为空!");
//        }
        if (parameter_signature && StringUtils.isEmpty(sign)) {
            return unauthorizedResponse(exchange, "签名不能为空!");
        }
        if (parameter_signature && StringUtils.isEmpty(nonce_str)) {
            return unauthorizedResponse(exchange, "签名不能为空!");
        }
        if(parameter_signature){
            return authSign(exchange, chain, sing, nonce_str);
            return authSign(exchange, chain, sign, nonce_str);
        }
        return chain.filter(exchange.mutate().request(mutate.build()).build());
    }
@@ -93,14 +93,14 @@
     * 校验签名
     * @return
     */
    private Mono<Void> authSign(ServerWebExchange exchange, GatewayFilterChain chain, String sing, String nonce_str){
    private Mono<Void> authSign(ServerWebExchange exchange, GatewayFilterChain chain, String sign, String nonce_str){
        return DataBufferUtils.join(exchange.getRequest().getBody())
                .flatMap(dataBuffer -> {
                    byte[] bytes = new byte[dataBuffer.readableByteCount()];
                    dataBuffer.read(bytes);
                    String bodyString = new String(bytes, StandardCharsets.UTF_8);
                    log.info("请求参数:{}", bodyString);
                    if(!authSign(JSON.parseObject(bodyString), sing, nonce_str)){
                    if(!authSign(JSON.parseObject(bodyString), sign, nonce_str)){
                        return unauthorizedResponse(exchange, "签名验证失败!");
                    }
                    DataBufferUtils.release(dataBuffer);
@@ -129,11 +129,12 @@
    private boolean authSign(JSONObject jsonStr, String sign, String nonce_str) {
        String signUrlEncode = localSignUrl(jsonStr, nonce_str);
        signUrlEncode = signUrlEncode.replaceAll("& #40;", "\\(")
                .replaceAll("& #41;", "\\)")
                .replaceAll("\\+", " ");
                .replaceAll("& #41;", "\\)");
        if(sign.equals(signUrlEncode)){
            return true;
        }
        System.err.println("签名值:" + signUrlEncode);
        return false;
    }
    
@@ -161,6 +162,7 @@
            }
        }
        String signUrl = sb.substring(0, sb.length() - 1);
        System.err.println("签名串:" + signUrl);
        return signUrlEncode(signUrl, key);
    }
    
ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysRoleController.java
@@ -314,7 +314,7 @@
     * @return
     */
    @ResponseBody
    @GetMapping(value = "/getSysRoleByIds")
    @PostMapping(value = "/getSysRoleByIds")
    public R<List<SysRole>> getSysRoleByIds(@RequestBody GetSysRoleByIds ids){
        List<SysRole> sysRoleByIds = roleService.getSysRoleByIds(ids.getIds());
        return R.ok(sysRoleByIds);
ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysRoleMapper.xml
@@ -8,10 +8,7 @@
        <id     property="roleId"             column="role_id"               />
        <result property="roleName"           column="role_name"             />
        <result property="roleKey"            column="role_key"              />
        <result property="roleSort"           column="role_sort"             />
        <result property="dataScope"          column="data_scope"            />
        <result property="menuCheckStrictly"  column="menu_check_strictly"   />
        <result property="deptCheckStrictly"  column="dept_check_strictly"   />
        <result property="status"             column="status"                />
        <result property="delFlag"            column="del_flag"              />
        <result property="createBy"           column="create_by"             />
@@ -22,8 +19,8 @@
    </resultMap>
    
    <sql id="selectRoleVo">
        select distinct r.role_id, r.role_name, r.role_key, r.role_sort, r.data_scope, r.menu_check_strictly, r.dept_check_strictly,
            r.status, r.del_flag, r.create_time, r.remark ,r.carDataAuth,r.carTrainOperAuth,r.contractDataAuth
        select distinct r.role_id, r.role_name, r.role_key, r.data_scope,
            r.status, r.del_flag, r.create_time, r.remark
        from sys_role r
            left join sys_user_role ur on ur.role_id = r.role_id
            left join sys_user u on u.user_id = ur.user_id
@@ -53,7 +50,6 @@
        </if>
        <!-- 数据范围过滤 -->
        ${params.dataScope}
        order by r.role_sort
    </select>
    
    <select id="selectRolePermissionByUserId" parameterType="Long" resultMap="SysRoleResult">
@@ -167,9 +163,11 @@
    
    <select id="getSysRoleByIds" resultMap="SysRoleResult">
        <include refid="selectRoleVo"/>
        where id in
        <if test="null != ids and ids.size() > 0">
            where r.id in
        <foreach collection="ids" item="item" index="index" separator="," open="(" close=")">
            #{item}
        </foreach>
        </if>
    </select>
</mapper> 
ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml
@@ -43,7 +43,6 @@
        <id     property="roleId"       column="role_id"        />
        <result property="roleName"     column="role_name"      />
        <result property="roleKey"      column="role_key"       />
        <result property="roleSort"     column="role_sort"      />
        <result property="dataScope"     column="data_scope"    />
        <result property="status"       column="role_status"    />
    </resultMap>
@@ -51,7 +50,7 @@
    <sql id="selectUserVo">
        select u.user_id, u.dept_id, u.user_name, u.nick_name, u.email, u.avatar, u.phonenumber, u.password, u.sex, u.status, u.del_flag, u.login_ip, u.login_date, u.create_by, u.create_time, u.remark, 
        d.dept_id, d.parent_id, d.ancestors, d.dept_name, d.order_num, d.leader, d.status as dept_status,
        r.role_id, r.role_name, r.role_key, r.role_sort, r.data_scope, r.status as role_status ,u.roleType as roleType,u.objectId AS objectId
        r.role_id, r.role_name, r.role_key, r.data_scope, r.status as role_status ,u.roleType as roleType,u.objectId AS objectId
        from sys_user u
            left join sys_dept d on u.dept_id = d.dept_id
            left join sys_user_role ur on u.user_id = ur.user_id