package cn.hanghui.outapi.platform.tenant.typehandle;

import cn.hanghui.outapi.platform.tenant.entity.dto.ZoloConfigDto;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil;
import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.extension.handlers.AbstractJsonTypeHandler;
import com.fasterxml.jackson.databind.ObjectMapper;
import org.apache.ibatis.type.JdbcType;
import org.apache.ibatis.type.MappedJdbcTypes;
import org.apache.ibatis.type.MappedTypes;

import java.io.IOException;

@MappedTypes({Object.class})
@MappedJdbcTypes({JdbcType.VARCHAR})
public class ZoloConfigDtoHandler extends AbstractJsonTypeHandler<ZoloConfigDto> {


    protected ZoloConfigDto parse(String json) {
        if(StrUtil.isBlank(json)){
            return null;
        }
        // 这里进行了json解析，同样在这里也可以进行字段查询后的处理，如对象内部的手机号字段的加密展示等
        return JSON.parseObject(json, ZoloConfigDto.class);
    }

    @Override
    protected String toJson(ZoloConfigDto obj) {
        if(ObjectUtil.isNull(obj)){
            return "";
        }
        return JSON.toJSONString(obj);
    }
}
