package cc.mrbird.febs; import cc.mrbird.febs.common.contants.AppContants; import cc.mrbird.febs.dapp.dto.SystemConstants; import cc.mrbird.febs.dapp.dto.SystemConstantsAddress; import cc.mrbird.febs.dapp.entity.DataDictionaryCustom; import cc.mrbird.febs.dapp.enumerate.DataDictionaryEnum; import cc.mrbird.febs.dapp.mapper.DataDictionaryCustomMapper; import cn.hutool.core.util.StrUtil; import org.mybatis.spring.annotation.MapperScan; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.WebApplicationType; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.builder.SpringApplicationBuilder; import org.springframework.scheduling.annotation.EnableAsync; import org.springframework.scheduling.annotation.EnableScheduling; import org.springframework.transaction.annotation.EnableTransactionManagement; import javax.annotation.PostConstruct; import java.lang.reflect.Field; /** * @author MrBird */ @EnableAsync @EnableScheduling @SpringBootApplication @EnableTransactionManagement @MapperScan("cc.mrbird.febs.*.mapper") public class FebsShiroApplication { @Autowired private DataDictionaryCustomMapper dataDictionaryCustomMapper; @Autowired private SystemConstants systemConstants; @Autowired private SystemConstantsAddress systemConstantsAddress; public static void main(String[] args) { new SpringApplicationBuilder(FebsShiroApplication.class) .web(WebApplicationType.SERVLET) .run(args); } @PostConstruct public void systemConstantsInit() { DataDictionaryCustom dataDictionaryCustom = dataDictionaryCustomMapper.selectDicDataByTypeAndCode( DataDictionaryEnum.FEE_ADDRESS_KEY.getType(), DataDictionaryEnum.FEE_ADDRESS_KEY.getCode()); String key = dataDictionaryCustom.getCode(); key = StrUtil.toCamelCase(key); String value = dataDictionaryCustom.getValue(); try { Field field = systemConstants.getClass().getDeclaredField(key); field.set(systemConstants, value); AppContants.FEE_ADDRESS_KEY.put("feeAddressKey",systemConstants.getFeeAddressKey()); dataDictionaryCustom.setValue("isReady"); dataDictionaryCustomMapper.updateById(dataDictionaryCustom); } catch (Exception e) { e.printStackTrace(); } DataDictionaryCustom addressDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode( DataDictionaryEnum.FEE_ADDRESS.getType(), DataDictionaryEnum.FEE_ADDRESS.getCode()); String addressKey = addressDic.getCode(); addressKey = StrUtil.toCamelCase(addressKey); String valueAddress = addressDic.getValue(); try { Field field = systemConstantsAddress.getClass().getDeclaredField(addressKey); field.set(systemConstantsAddress, valueAddress); AppContants.FEE_ADDRESS.put("feeAddress",systemConstantsAddress.getFeeAddress()); addressDic.setValue("isReady"); dataDictionaryCustomMapper.updateById(addressDic); } catch (Exception e) { e.printStackTrace(); } } }