com.heimaide.server.service.sys.DictService.java Source code

Java tutorial

Introduction

Here is the source code for com.heimaide.server.service.sys.DictService.java

Source

/**
 * Copyright &copy; 2012-2013 <a href="https://github.com/free lance/infosys">infosys</a> All rights reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 */
package com.heimaide.server.service.sys;

import java.util.List;

import org.apache.commons.lang3.StringUtils;
import org.hibernate.criterion.DetachedCriteria;
import org.hibernate.criterion.Order;
import org.hibernate.criterion.Restrictions;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import com.heimaide.server.common.persistence.Page;
import com.heimaide.server.common.persistence.Parameter;
import com.heimaide.server.common.utils.CacheUtils;
import com.heimaide.server.common.utils.DictUtils;
import com.heimaide.server.entity.sys.Dict;
import com.heimaide.server.repository.hibernate.sys.DictDao;
import com.heimaide.server.service.BaseService;

/**
 * Service
 * 
 * @author free lance
 * @version 2013-5-29
 */
@Service
@Transactional(readOnly = true)
public class DictService extends BaseService {

    @Autowired
    private DictDao dictDao;

    public Dict get(String id) {
        // Hibernate 
        return dictDao.get(id);
    }

    public Page<Dict> find(Page<Dict> page, Dict dict) {
        // MyBatis 
        // dict.setPage(page);
        // page.setList(myBatisDictDao.find(dict));
        // return page;

        // Hibernate 
        DetachedCriteria dc = dictDao.createDetachedCriteria();
        if (StringUtils.isNotEmpty(dict.getType())) {
            dc.add(Restrictions.eq("type", dict.getType()));
        }
        if (StringUtils.isNotEmpty(dict.getDescription())) {
            dc.add(Restrictions.like("description", "%" + dict.getDescription() + "%"));
        }
        dc.add(Restrictions.eq(Dict.FIELD_DEL_FLAG, Dict.DEL_FLAG_NORMAL));
        dc.addOrder(Order.asc("type")).addOrder(Order.asc("sort")).addOrder(Order.desc("id"));
        return dictDao.find(page, dc);
    }

    public List<String> findTypeList() {
        return dictDao.findTypeList();

    }

    public List<Dict> findAllDictBusinessLevel(String value) {
        String sql = "from Dict where type='business_level' ";
        if (StringUtils.isNotEmpty(value) && null != value) {
            sql += " and label like '%" + value + "%'";
        }
        return dictDao.find(sql);
    }

    public List<Dict> getSysNoticNameByType(String type) {
        return dictDao.find("FROM Dict where type='sys_notice_type' " + "and value='" + type + "'");
    }

    @Transactional(readOnly = false)
    public void save(Dict dict) {
        dictDao.save(dict);
        CacheUtils.remove(DictUtils.CACHE_DICT_MAP);
    }

    @Transactional(readOnly = false)
    public void delete(String id) {
        dictDao.deleteById(id);
        CacheUtils.remove(DictUtils.CACHE_DICT_MAP);
    }

}