package com.gustz.dove.api.reply.service.impl; import java.util.Date; import java.util.List; import com.gustz.dove.api.service.util.CommConstants; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import com.sinovatech.fw.api.vo.Order; import com.sinovatech.fw.dao.HqlDao; import com.sinovatech.fw.query.util.QueryInfo; import com.sinovatech.fw.query.util.QueryInfoBuilder; import com.sinovatech.fw.service.impl.AbstractDataService; import com.sinovatech.rd.wcsb.api.reply.service.ReplyWordService; import com.sinovatech.rd.wcsb.api.reply.vo.ReplyWordVo; import com.sinovatech.rd.wcsb.repo.dict.DictConstants; import com.sinovatech.rd.wcsb.repo.reply.dao.ReplyWordDao; import com.sinovatech.rd.wcsb.repo.reply.po.ReplyWordPo; /** * * TODO: 回复语服务接口的实现 * * @author ZHENFENG ZHANG * @since [Jan 19, 2015] */ @Service public class ReplyWordServiceImpl extends AbstractDataService<ReplyWordVo, ReplyWordPo, String> implements ReplyWordService { @Autowired private HqlDao hqlDao; private ReplyWordDao dao; @Autowired public void needDao(ReplyWordDao dao) { super.setDao(dao); this.dao = dao; } @Override public String getId(ReplyWordVo vo) { return vo.getId(); } /** * 保存 * * @param vo * @return */ @Override public String save(ReplyWordVo vo) { ReplyWordPo _po = this.vo2Po(vo); _po.setIsDelete(CommConstants.NO); _po.setCreateTime(new Date()); _po.setStatus(DictConstants.RunStateGc.S1.name()); return this.dao.save(_po); } /** * 更新 * * @param vo */ @Override public void update(ReplyWordVo vo) { ReplyWordPo _newPo = this.vo2Po(vo); // 页面新值 ReplyWordPo _oldPo = this.dao.get(vo.getId()); // 数据库旧值 //不能改变的值 _newPo.setCreateTime(_oldPo.getCreateTime()); _newPo.setIsDelete(CommConstants.NO); _newPo.setWordCode(_oldPo.getWordCode()); this.dao.update(_newPo); } /** * 批量删除字典组别 * * @param ids */ @Override public void batchDelete(Iterable<String> ids) { for (String _id : ids) { ReplyWordPo _po = this.dao.get(_id); _po.setIsDelete(CommConstants.YES); this.dao.update(_po); } } /** * 查询全部 * * @param search * @return */ @Override public List<ReplyWordVo> listAll(ReplyWordVo search) { return this.ecList(search, 1, CommConstants.LIMIT_MAX, null); } /** * 分页查询 * * @param search * @param start * @param limit * @param orders * @return */ @Override public List<ReplyWordVo> ecList(ReplyWordVo search, int start, int limit, List<Order> orders) { QueryInfo queryInfo = prepareQuery(search).order(orders).build(); List<ReplyWordPo> _list = hqlDao.list(queryInfo.getSql(), start, limit, queryInfo.getParArr()); return this.po2Vo(_list); } /** * 查询总记录数 * * @param search * @return */ @Override public int ecCount(ReplyWordVo search) { QueryInfo queryInfo = prepareQuery(search).build(); return hqlDao.count(queryInfo.getCountSql(), queryInfo.getParArr()); } private QueryInfoBuilder prepareQuery(ReplyWordVo search) { String hql = "from ReplyWordPo t where 1=1 "; QueryInfoBuilder builder = QueryInfoBuilder.ins(hql) // .andEq("t.isDelete", CommConstants.NO) // .andEq("t.wordCode", search.getWordCode()) // 编码 .andContains("t.wordName", search.getWordName()) // 名称 .andEq("t.wordType", search.getWordType()) // 类型 .andEq("t.status", search.getStatus()) // 状态 .andIn("t.status", search.getStatusIn()) // 状态多个 // order .orderDesc("t.createTime"); return builder; } }