| | |
| | | import com.dy.common.util.ConfigXml4Springboot; |
| | | import com.dy.common.util.MD5; |
| | | import com.dy.pipIrrGlobal.daoBa.*; |
| | | import com.dy.pipIrrGlobal.daoOp.OpeTaskTypeMapper; |
| | | import com.dy.pipIrrGlobal.daoPr.PrWaterPriceMapper; |
| | | import com.dy.pipIrrGlobal.daoRm.RmIrrigateProfileMapper; |
| | | import com.dy.pipIrrGlobal.daoSe.SePaymentMethodMapper; |
| | | import com.dy.pipIrrGlobal.daoSe.SeRechargeProfileMapper; |
| | | import com.dy.pipIrrGlobal.daoSe.SeWaterTypeMapper; |
| | | import com.dy.pipIrrGlobal.pojoBa.*; |
| | | import com.dy.pipIrrGlobal.pojoOp.OpeTaskType; |
| | | import com.dy.pipIrrGlobal.pojoPr.PrWaterPrice; |
| | | import com.dy.pipIrrGlobal.pojoRm.RmIrrigateProfile; |
| | | import com.dy.pipIrrGlobal.pojoSe.SePaymentMethod; |
| | | import com.dy.pipIrrGlobal.pojoSe.SeRechargeProfile; |
| | | import com.dy.pipIrrGlobal.pojoSe.SeWaterType; |
| | | import com.dy.pipIrrGlobal.util.DistrictLevel; |
| | | import lombok.extern.slf4j.Slf4j; |
| | | import org.jdom2.Document; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.boot.context.event.ApplicationReadyEvent; |
| | |
| | | * Spring容器并没有创建完,而本类中用了Spring容器中的Bean,即distriDao, userDao。 |
| | | * 所以采用了Spring事件监听器来实现 |
| | | */ |
| | | @Slf4j |
| | | @Component |
| | | public class InitListener implements ApplicationListener<ApplicationReadyEvent> { |
| | | |
| | |
| | | private PrWaterPriceMapper prWaterPriceDao; |
| | | private BaDictMapper baDictDao; |
| | | private BaDictItemMapper baDictItemDao; |
| | | private SeRechargeProfileMapper seRechargeProfileDao; |
| | | private OpeTaskTypeMapper taskTypeDao; |
| | | |
| | | @Autowired |
| | | public void setResourceLoader(ResourceLoader resourceLoader){ |
| | |
| | | this.baDictItemDao = baDictItemDao; |
| | | } |
| | | |
| | | @Autowired |
| | | public void setSeRechargeProfileDao(SeRechargeProfileMapper seRechargeProfileDao) { |
| | | this.seRechargeProfileDao = seRechargeProfileDao; |
| | | } |
| | | |
| | | @Autowired |
| | | public void setOpeTaskTypeDao(OpeTaskTypeMapper taskTypeDao) { |
| | | this.taskTypeDao = taskTypeDao; |
| | | } |
| | | |
| | | /** |
| | | * SpringBoot容器已经准备好了 |
| | | * @param event 事件 |
| | |
| | | Document doc = configXml.createDom(this.resourceLoader, "init-config.xml") ; |
| | | this.doInit(configXml, doc); |
| | | } catch (Exception e) { |
| | | System.out.println("系统启动时,初始化配置出错 !"); |
| | | System.out.println(e.getMessage()); |
| | | log.error("系统启动时,初始化配置出错 !"); |
| | | log.error(e.getMessage()); |
| | | e.printStackTrace(); |
| | | } |
| | | } |
| | | private void doInit(ConfigXml4Springboot configXml, Document doc) throws Exception{ |
| | | //Check if configXml and doc are not null |
| | | if(configXml != null && doc != null){ |
| | | //Loop through 10000 orgs |
| | | for(int num = 1; num <= 10000; num++){ |
| | | //Check if the org exists |
| | | if(configXml.existElement(doc, "config.orgs.org" + num)){ |
| | | //Get the tag and enable value of the org |
| | | String orgTag = configXml.getSetAttrTxt(doc, "config.orgs.org" + num,"tag", null, false, null) ; |
| | | Boolean enable = configXml.getSetAttrBoolean(doc, "config.orgs.org" + num, "enable", null, null); |
| | | //If the org is enabled |
| | | if(enable != null && enable.booleanValue()){ |
| | | //设置数据源 |
| | | DataSourceContext.set(orgTag); |
| | |
| | | } |
| | | } |
| | | } |
| | | |
| | | if(!this.existRechargeProfile()){ |
| | | if(configXml.existElement(doc, "config.orgs.org" + num + ".rechargeProfile")){ |
| | | for(int i = 1 ; i < 10000; i++){ |
| | | if(configXml.existElement(doc, "config.orgs.org" + num + ".rechargeProfile.item" + i)){ |
| | | String rechargeAmount = configXml.getSetAttrTxt(doc, "config.orgs.org" + num + ".rechargeProfile.item" + i,"rechargeAmount", null, false, null) ; |
| | | String sort = configXml.getSetAttrTxt(doc, "config.orgs.org" + num + ".rechargeProfile.item" + i,"sort", null, false, null) ; |
| | | this.saveRechargeProfile(orgTag, rechargeAmount, sort); |
| | | }else{ |
| | | break ; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | if(!this.existWaterTypes()){ |
| | | if(configXml.existElement(doc, "config.orgs.org" + num + ".waterTypes")){ |
| | | for(int i = 1 ; i < 10000; i++){ |
| | |
| | | } |
| | | } |
| | | } |
| | | |
| | | if(!this.existTaskType()){ |
| | | if(configXml.existElement(doc, "config.orgs.org" + num + ".taskType")){ |
| | | for(int i = 1 ; i < 10000; i++){ |
| | | if(configXml.existElement(doc, "config.orgs.org" + num + ".taskType.item" + i)){ |
| | | String taskType = configXml.getSetAttrTxt(doc, "config.orgs.org" + num + ".taskType.item" + i,"typeName", null, false, null) ; |
| | | this.saveTaskType(orgTag, taskType); |
| | | }else{ |
| | | break ; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | } |
| | | }else{ |
| | | break ; |
| | |
| | | } |
| | | |
| | | /** |
| | | * 数据库中是否存在虚拟常用充值金额配置 |
| | | * @return |
| | | */ |
| | | private boolean existRechargeProfile() { |
| | | Long total = this.seRechargeProfileDao.selectCount(null); |
| | | return (total != null && total > 0); |
| | | } |
| | | |
| | | /** |
| | | * 数据库中是否存在水价 |
| | | * @return |
| | | */ |
| | |
| | | private boolean existDict() { |
| | | Long total = this.baDictDao.selectCount(null); |
| | | return (total != null && total > 0) ; |
| | | } |
| | | |
| | | /** |
| | | * 数据库中是否存在工单任务类型 |
| | | * @return |
| | | */ |
| | | private boolean existTaskType() { |
| | | Long total = this.taskTypeDao.selectCount(null); |
| | | return (total != null && total > 0); |
| | | } |
| | | |
| | | /** |
| | |
| | | } |
| | | |
| | | /** |
| | | * 保存虚拟卡常用充值金额配置 |
| | | * @param orgTag |
| | | * @param recharge_amount |
| | | * @param sort |
| | | */ |
| | | private void saveRechargeProfile(String orgTag, String recharge_amount, String sort) { |
| | | if((recharge_amount != null && !recharge_amount.trim().equals("")) && (sort != null && !sort.trim().equals(""))) { |
| | | SeRechargeProfile po = new SeRechargeProfile(); |
| | | po.setRechargeAmount(Integer.parseInt(recharge_amount)); |
| | | po.setSort(Integer.parseInt(sort)); |
| | | this.seRechargeProfileDao.insert(po); |
| | | |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * 保存水价 |
| | | * @param price |
| | | */ |
| | |
| | | po.setDeleted(0L); |
| | | this.baDictItemDao.insert(po); |
| | | } |
| | | |
| | | } |
| | | |
| | | |
| | | /** |
| | | * 保存工单任务类型 |
| | | * @param orgTag |
| | | * @param task_type |
| | | */ |
| | | private void saveTaskType(String orgTag, String task_type) { |
| | | if(task_type != null && !task_type.trim().equals("")) { |
| | | OpeTaskType po = new OpeTaskType(); |
| | | po.setTaskType(task_type); |
| | | po.setDeleted(0L); |
| | | this.taskTypeDao.insert(po); |
| | | } |
| | | } |
| | | |
| | | } |