package platform.common.base.service; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.*; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; import platform.common.Constant; import platform.common.base.dao.DictionaryItemDao; import platform.common.base.model.DictionaryItem; import platform.common.base.model.DictionaryType; import platform.common.util.DateUtil; import platform.common.util.WebUtil; import platform.modules.build.entity.ContractProperty; import tk.mybatis.mapper.entity.Example; @Service @Transactional public class DictionaryItemService extends BaseService { @Autowired private DictionaryItemDao dictionaryItemDao; @Autowired private DictionaryTypeService dictionaryTypeService; public PageInfo findPage(Integer pageNum, Integer pageSize, String keyword) { Example example = new Example(DictionaryItem.class); Example.Criteria criteria = example.createCriteria(); Example.Criteria criteria2 = example.createCriteria(); if (StringUtils.isNotBlank(keyword)) { criteria.andLike("name", "%" + WebUtil.covertData(keyword) + "%"); } criteria2.andEqualTo("del_flag", 0); //倒序 example.and(criteria2); example.setOrderByClause("create_time desc"); PageHelper.startPage(pageNum, pageSize); List items = this.selectByExample(example); return new PageInfo(items); } public PageInfo findPageByType(Integer pageNum, Integer pageSize, String keyword, Integer typeId) { Example example = new Example(DictionaryItem.class); Example.Criteria criteria = example.createCriteria(); Example.Criteria criteria2 = example.createCriteria(); if (StringUtils.isNotBlank(keyword)) { criteria.andLike("name", "%" + WebUtil.covertData(keyword) + "%"); } if (null != typeId) { criteria.andEqualTo("tid", typeId); } criteria2.andEqualTo("del_flag", 0); //倒序 example.and(criteria2); example.setOrderByClause("create_time desc"); PageHelper.startPage(pageNum, pageSize); List items = this.selectByExample(example); return new PageInfo(items); } public DictionaryItem getDictionaryItem(String name, String value, Integer typeId) { return dictionaryItemDao.getDictionaryItem(name, value, typeId); } public Boolean saveDictionaryItem(DictionaryItem item) { if (this.saveSelective(item) > 0) { return true; } return false; } public Boolean updateDictionaryItem(DictionaryItem item) { if (this.updateSelective(item) > 0) { return true; } return false; } public String getNameById(Integer itemId) { DictionaryItem item = this.findById(itemId); if (null == item) { return ""; } else { return item.getName(); } } @Transactional(readOnly = true) public List findListByTypeName(String typeName) { List items = new ArrayList(); DictionaryType type = dictionaryTypeService.getDictionaryType(typeName); if (null != type) { Example example = new Example(DictionaryItem.class); Example.Criteria criteria = example.createCriteria(); criteria.andEqualTo("tid", type.getId()); criteria.andEqualTo("del_flag", 0); criteria.andEqualTo("is_active", 1); example.setOrderByClause("sort"); items = this.selectByExample(example); } return items; } //根据类型和值(value)查找item public DictionaryItem findByTypeAndValue(String typeName, String value) { DictionaryItem condition = new DictionaryItem(); condition.setValue(value); DictionaryItem item = dictionaryItemDao.findByTypeAndCondition(typeName, condition); return item == null ? new DictionaryItem() : item; } //根据类型和值(value)查找名称(name) public String findNameByTypeAndValue(String typeName, String value) { if (StringUtils.isNotBlank(typeName) && StringUtils.isNotBlank(value)) { DictionaryItem condition = new DictionaryItem(); condition.setValue(value); DictionaryItem item = dictionaryItemDao.findByTypeAndCondition(typeName, condition); if (null != item) { return item.getName(); } } return ""; } //根据类型和值(value)查找名称(name) public String findValueByTypeAndName(String typeName, String name) { if (StringUtils.isNotBlank(typeName) && StringUtils.isNotBlank(name)) { DictionaryItem condition = new DictionaryItem(); condition.setName(name); DictionaryItem item = dictionaryItemDao.findByTypeAndCondition(typeName, condition); if (null != item) { return item.getValue(); } } return ""; } //根据类型和名称(name)查找Id public Integer findIdByTypeAndName(String typeName, String name) { DictionaryItem condition = new DictionaryItem(); condition.setName(name); DictionaryItem item = dictionaryItemDao.findByTypeAndCondition(typeName, condition); if (null != item) { return item.getId(); } return null; } //根据类型和名称(name)查找Id 离自己申请时间最近 public Integer findIdByTypeAndNameRecent(String typeName, String name, String time) { DictionaryType type = dictionaryTypeService.getDictionaryType(typeName); // Example example = new Example(DictionaryItem.class); // Example.Criteria criteria = example.createCriteria(); // criteria.andEqualTo("tid", type.getId()); // criteria.andEqualTo("name", name); DictionaryItem condition = new DictionaryItem(); condition.setTid(type.getId()); condition.setName(name); List dictionaryItemList =this.findListByWhere(condition); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss"); try { Date date1 = sdf.parse(time); Calendar cal = Calendar.getInstance(); cal.setTime(date1); cal.add(Calendar.DATE, 1); date1 = cal.getTime(); Iterator it = dictionaryItemList.iterator(); while (it.hasNext()) { DictionaryItem item = it.next(); Date date2 = sdf.parse(item.getCreate_time()); if (date1.before(date2)){ it.remove(); } } } catch (ParseException e) { e.printStackTrace(); } DictionaryItem item = dictionaryItemList.get(dictionaryItemList.size() - 1); if (null != item) { return item.getId(); } return 0; } //根据类型和名称(name)查找Id 仅激活 public Integer findIdByTypeAndNameActive(String typeName, String name) { DictionaryItem condition = new DictionaryItem(); condition.setName(name); condition.setIs_active(true); DictionaryItem item = dictionaryItemDao.findByTypeAndCondition(typeName, condition); if (null != item) { return item.getId(); } return null; } //根据id查找item public DictionaryItem findByItemId(Integer id) { Example example = new Example(DictionaryItem.class); Example.Criteria criteria = example.createCriteria(); criteria.andEqualTo("id", id); criteria.andEqualTo("del_flag", 0); List itemList = this.selectByExample(example); DictionaryItem item = null; if (itemList != null && itemList.size() > 0) { item = itemList.get(0); } return item; } }