package com.yeshi.fanli.service.impl.customerservice; import java.util.Collections; import java.util.Comparator; import java.util.Date; import java.util.List; import javax.annotation.Resource; import org.springframework.stereotype.Service; import org.yeshi.utils.StringUtil; import com.yeshi.fanli.dao.mybatis.customerservice.CustomerServiceCommonQuestionMapper; import com.yeshi.fanli.entity.customerservice.CustomerServiceCommonQuestion; import com.yeshi.fanli.exception.CustomerServiceCommonQuestionException; import com.yeshi.fanli.service.inter.customerservice.CustomerServiceCommonQuestionService; @Service public class CustomerServiceCommonQuestionServiceImpl implements CustomerServiceCommonQuestionService { @Resource private CustomerServiceCommonQuestionMapper customerServiceCommonQuestionMapper; @Override public CustomerServiceCommonQuestion searchByKey(String key) { List list = customerServiceCommonQuestionMapper.selectByKey(key); if (list == null || list.size() == 0) return null; Comparator cm = new Comparator() { @Override public int compare(CustomerServiceCommonQuestion o1, CustomerServiceCommonQuestion o2) { return o1.getKey().replace(key, "").length() - o2.getKey().replace(key, "").length(); } }; Collections.sort(list, cm); return list.get(0); } @Override public CustomerServiceCommonQuestion searchByKeyCache(String key) { return searchByKey(key); } @Override public void addCustomerServiceCommonQuestion(CustomerServiceCommonQuestion question) throws CustomerServiceCommonQuestionException { if (question == null || StringUtil.isNullOrEmpty(question.getKey()) || StringUtil.isNullOrEmpty(question.getContent()) || StringUtil.isNullOrEmpty(question.getContentType())) throw new CustomerServiceCommonQuestionException(1, "问题信息不完整"); CustomerServiceCommonQuestion oldQuestion = searchByKey(question.getKey()); if (oldQuestion != null && oldQuestion.getKey().equalsIgnoreCase(question.getKey())) throw new CustomerServiceCommonQuestionException(2, "已有该问题"); customerServiceCommonQuestionMapper.insertSelective(question); } @Override public void updateCustomerServiceCommonQuestion(CustomerServiceCommonQuestion question) throws CustomerServiceCommonQuestionException { if (question == null || question.getId() == null) return; customerServiceCommonQuestionMapper.updateByPrimaryKeySelective(question); } @Override public void deleteCustomerServiceCommonQuestion(Long id) { customerServiceCommonQuestionMapper.deleteByPrimaryKey(id); } @Override public List listKeysCache() { return customerServiceCommonQuestionMapper.selectKeys(); } @Override public List listCustomerServiceCommonQuestion(int page, int pageSize) { return customerServiceCommonQuestionMapper.selectOrderByUpdateTime((page - 1) * pageSize, pageSize); } @Override public Long countCustomerServiceCommonQuestion() { return customerServiceCommonQuestionMapper.selectCount(); } @Override public List listQuery(long start, int count, String key, String type, Integer state, Integer sort){ return customerServiceCommonQuestionMapper.listQuery(start, count, key, type, state, sort); } @Override public long countQuery(String key, String type, Integer state) { return customerServiceCommonQuestionMapper.countQuery(key, type, state); } @Override public int deleteBatchByPrimaryKey(List list) { return customerServiceCommonQuestionMapper.deleteBatchByPrimaryKey(list); } @Override public int insert(CustomerServiceCommonQuestion record) { return customerServiceCommonQuestionMapper.insert(record); } @Override public int insertSelective(CustomerServiceCommonQuestion record) { return customerServiceCommonQuestionMapper.insertSelective(record); } @Override public int updateByPrimaryKeySelective(CustomerServiceCommonQuestion record) { return customerServiceCommonQuestionMapper.updateByPrimaryKeySelective(record); } @Override public int updateByPrimaryKey(CustomerServiceCommonQuestion record) { return customerServiceCommonQuestionMapper.updateByPrimaryKey(record); } @Override public CustomerServiceCommonQuestion selectByPrimaryKey(Long id) { return customerServiceCommonQuestionMapper.selectByPrimaryKey(id); } @Override public void save(CustomerServiceCommonQuestion record) throws Exception, CustomerServiceCommonQuestionException { if (record == null) { throw new CustomerServiceCommonQuestionException(1, "参数不能为空"); } String key = record.getKey(); String content = record.getContent(); String contentType = record.getContentType(); if (key == null || key.trim().length() == 0 || content == null || content.trim().length() == 0 || contentType == null || contentType.trim().length() == 0) { throw new CustomerServiceCommonQuestionException(1, "编辑内容不能为空"); } Long id = record.getId(); if (id == null) { // 新增 record.setWeight(0); record.setCreateTime(new Date()); record.setUpdateTime(new Date()); customerServiceCommonQuestionMapper.insert(record); } else { CustomerServiceCommonQuestion commonQuestion = customerServiceCommonQuestionMapper.selectByPrimaryKey(id); if (commonQuestion == null) { throw new CustomerServiceCommonQuestionException(1, "数据已不存在"); } // 修改 record.setUpdateTime(new Date()); // 保存之前的状态 record.setState(commonQuestion.isState()); customerServiceCommonQuestionMapper.updateByPrimaryKeySelective(record); } } }