/** * @Date: 2020年6月28日 下午7:05:00 * @Author: ZhengMeng * @Description: */ package com.product.org.admin.service; import java.util.ArrayList; import java.util.Date; import java.util.List; import com.product.core.entity.FieldMetaEntity; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import com.product.common.lang.StringUtils; import com.product.admin.config.CmnConst; import com.product.core.dao.BaseDao; import com.product.core.entity.DataTableEntity; import com.product.core.entity.FieldSetEntity; import com.product.core.exception.BaseException; import com.product.core.service.support.AbstractBaseService; import com.product.core.spring.context.SpringMVCContextHolder; import com.product.core.transfer.Transactional; import com.product.org.admin.service.idel.ICompanyLanguageTimeZoneService; import com.product.util.BaseUtil; /** * Copyright LX-BASE * * @Title: * @Project: LX-BASE-SERVER * @Date: 2020年6月28日 下午7:05:00 * @Author: 郑盟 * @Description:CompanyLanguageTimeZoneService */ @Component public class CompanyLanguageTimeZoneService extends AbstractBaseService implements ICompanyLanguageTimeZoneService { @Autowired public BaseDao baseDao; /** * 单位时区语言新增 * * @param : fs * @return :FieldSetEntity 两个表 新增 参数全部装在fs 详情看showdoc */ @Transactional public String addLanguageTimeZone(FieldSetEntity fs) throws BaseException { fs.setValue(CmnConst.IS_DEFAULT, 1); fs.setValue(CmnConst.CREATED_BY, SpringMVCContextHolder.getCurrentUser().getUser_id()); fs.setValue(CmnConst.CREATED_UTC_DATETIME, new Date()); String add = baseDao.add(fs); if (add == null) return null; String language_arr = fs.getString(CmnConst.LANGUAGE_ARR); if (!StringUtils.isEmpty(language_arr)) { String[] language_arrs = language_arr.split(","); for (int i = 0; i < language_arrs.length; i++) { String language = language_arrs[i]; fs.remove("uuid"); fs.setValue(CmnConst.LANGUAGE_CODE, language); fs.setValue(CmnConst.IS_DEFAULT, 0); fs.setValue(CmnConst.CREATED_BY, SpringMVCContextHolder.getCurrentUser().getUser_id()); fs.setValue(CmnConst.CREATED_UTC_DATETIME, new Date()); String adds = baseDao.add(fs); if (adds == null) return null; } } String zone_uuid = fs.getString(CmnConst.ZONE_UUID); String org_level_uuid = fs.getString(CmnConst.ORG_LEVEL_UUID); FieldSetEntity timeZoneFs = new FieldSetEntity(); FieldMetaEntity f = new FieldMetaEntity(); f.setTableName(new Object[] { CmnConst.PRODUCT_SYS_COMPANY_TIME_ZONE }); timeZoneFs.setMeta(f); timeZoneFs.setValue(CmnConst.ZONE_UUID, zone_uuid); timeZoneFs.setValue(CmnConst.ORG_LEVEL_UUID, org_level_uuid); timeZoneFs.setValue(CmnConst.CREATED_BY, SpringMVCContextHolder.getCurrentUser().getUser_id()); timeZoneFs.setValue(CmnConst.CREATED_UTC_DATETIME, new Date()); return baseDao.add(timeZoneFs); } /** * 单位时区语言更新 * * @param : fs 参数org_level_uuid * @return :FieldSetEntity 两个表 time_zone_uuid为 时区表主键 uuid为语言表主键 */ @Transactional public boolean updateLanguageTimeZone(FieldSetEntity fs) throws BaseException { String org_level_uuid = fs.getString(CmnConst.ORG_LEVEL_UUID); boolean delete = baseDao.delete(CmnConst.PRODUCT_SYS_COMPANY_LANGUAGE, "org_level_uuid=? ", new String[] { org_level_uuid }); if (!delete) return delete; fs.setValue(CmnConst.IS_DEFAULT, 1); fs.setValue(CmnConst.CREATED_BY, SpringMVCContextHolder.getCurrentUser().getUser_id()); fs.setValue(CmnConst.CREATED_UTC_DATETIME, new Date()); fs.remove("uuid"); String adds = baseDao.add(fs); if (adds == null) return false; String language_arr = fs.getString(CmnConst.LANGUAGE_ARR); if (!StringUtils.isEmpty(language_arr)) { String[] language_arrs = language_arr.split(","); for (int i = 0; i < language_arrs.length; i++) { String language = language_arrs[i]; fs.remove("uuid"); fs.setValue(CmnConst.LANGUAGE_CODE, language); fs.setValue(CmnConst.IS_DEFAULT, 0); fs.setValue(CmnConst.CREATED_BY, SpringMVCContextHolder.getCurrentUser().getUser_id()); fs.setValue(CmnConst.CREATED_UTC_DATETIME, new Date()); baseDao.add(fs); } } String zone_uuid = fs.getString(CmnConst.ZONE_UUID); FieldSetEntity timeZoneFs = new FieldSetEntity(); timeZoneFs.setTableName(CmnConst.PRODUCT_SYS_COMPANY_TIME_ZONE); String time_zone_uuid = fs.getString(CmnConst.TIME_ZONE_UUID); timeZoneFs.setValue("uuid", time_zone_uuid); timeZoneFs.setValue(CmnConst.ZONE_UUID, zone_uuid); timeZoneFs.setValue(CmnConst.ORG_LEVEL_UUID, org_level_uuid); timeZoneFs.setValue(CmnConst.CREATED_BY, SpringMVCContextHolder.getCurrentUser().getUser_id()); timeZoneFs.setValue(CmnConst.CREATED_UTC_DATETIME, new Date()); if (BaseUtil.strIsNull(time_zone_uuid)) { return baseDao.add(timeZoneFs) != null; } return baseDao.update(timeZoneFs); } /** * 单位时区语言详情 * * @param : fs 参数org_level_uuid * @return :FieldSetEntity */ public FieldSetEntity findLanguageTimeZone(FieldSetEntity fs) throws BaseException { String org_level_uuid = fs.getString(CmnConst.ORG_LEVEL_UUID); DataTableEntity listTable = baseDao.listTable(CmnConst.PRODUCT_SYS_COMPANY_LANGUAGE, "org_level_uuid=?", new String[] { org_level_uuid }); FieldSetEntity timeZoneFs = new FieldSetEntity(); FieldMetaEntity f = new FieldMetaEntity(); f.setTableName(new Object[] { CmnConst.PRODUCT_SYS_COMPANY_LANGUAGE }); timeZoneFs.setMeta(f); List list = new ArrayList<>(); for (int i = 0; i < listTable.getRows(); i++) { FieldSetEntity languageFs = listTable.getFieldSetEntity(i); if ("1".equals(languageFs.getString(CmnConst.IS_DEFAULT))) { timeZoneFs.setValue(CmnConst.LANGUAGE_CODE, languageFs.getString(CmnConst.LANGUAGE_CODE)); timeZoneFs.setValue("uuid", languageFs.getString("uuid")); FieldSetEntity timeFs = baseDao.getFieldSetEntityByFilter(CmnConst.PRODUCT_SYS_COMPANY_TIME_ZONE, "org_level_uuid=?", new String[] { org_level_uuid }, false); if (timeFs != null) { timeZoneFs.setValue(CmnConst.ZONE_UUID, timeFs.getString(CmnConst.ZONE_UUID)); timeZoneFs.setValue(CmnConst.TIME_ZONE_UUID, timeFs.getString("uuid")); } } else { list.add(languageFs.getString(CmnConst.LANGUAGE_CODE)); } } String join = org.apache.commons.lang3.StringUtils.join(list, ","); timeZoneFs.setValue(CmnConst.LANGUAGE_ARR, join); return timeZoneFs; } @Transactional public boolean delectLanguageTimeZone(FieldSetEntity fs) throws BaseException { String org_level_uuid = fs.getString(CmnConst.ORG_LEVEL_UUID); boolean delete = baseDao.delete(CmnConst.PRODUCT_SYS_COMPANY_LANGUAGE, " org_level_uuid=?", new String[] { org_level_uuid }); if (!delete) return delete; return baseDao.delete(CmnConst.PRODUCT_SYS_COMPANY_TIME_ZONE, " org_level_uuid=?", new String[] { org_level_uuid }); } }