/**
|
* @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<String> 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 });
|
}
|
}
|