package com.unis.framework.common.util.business;

import com.unis.framework.common.enums.CommonNumberEnum;

/**
 * @author qingsong.han
 * @description: 业务权限工具类
 * @create 2025-02-06 9:03
 */
public class PermissionUtils {
    // 特殊行政等级编码
    private static final String BJ_CODE = "110000"; // 北京
    private static final String TJ_CODE = "120000"; // 天津
    private static final String CQ_CODE = "500000"; // 重庆市
    private static final String SH_CODE = "310000"; // 上海市
    private static final String XJJSBT_CODE = "650091"; // 新疆建设兵团

    /**
     * 获取行政区划编码 拼接查询条件
     *
     * @param areaLevel  行政等级
     * @param areaCode   行政编码
     * @param parentCode 父级编码
     * @return sting
     */
    public static String jointAreaCode(Integer areaLevel, String areaCode, String parentCode) {
        // 行政区划编码规则 610926 -> 61 省, 09 市, 26 县
        if (CommonNumberEnum.ONE.ordinal() == areaLevel) { // 省级
            areaCode = String.format("%s%s", areaCode.substring(0, 2), "%");
        } else if (CommonNumberEnum.TWO.ordinal() == areaLevel) { // 市
            // 北京市 110000,天津市 120000 ,重庆市 500000, 新疆建设兵团 650091
            if (BJ_CODE.equals(parentCode) || TJ_CODE.equals(parentCode) || CQ_CODE.equals(parentCode) || XJJSBT_CODE.equals(parentCode) ||SH_CODE.equals(parentCode)) {
                return areaCode;
            } else {
                areaCode = String.format("%s%s", areaCode.substring(0, 4), "%");
            }
        } else if (CommonNumberEnum.ZERO.ordinal() == areaLevel) { // 国家交易中心
            return null;
        }
        return areaCode;
    }

}
