package com.nanometer.smartlab.service; import com.nanometer.smartlab.dao.OpeApplyOrderDao; import com.nanometer.smartlab.entity.OpeApplyOrder; import com.nanometer.smartlab.exception.AlarmCode; import com.nanometer.smartlab.exception.AlarmException; import com.nanometer.smartlab.exception.BusinessException; import com.nanometer.smartlab.exception.ExceptionEnumCode; import com.nanometer.smartlab.util.IDUtils; import com.nanometer.smartlab.util.MessageUtil; import org.apache.log4j.Logger; import org.springframework.dao.DataAccessException; import org.springframework.dao.DataIntegrityViolationException; import org.springframework.dao.DuplicateKeyException; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Propagation; import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; import java.util.HashMap; import java.util.List; import java.util.Map; /** * Created by johnny on 17/12/15. */ @Service("opeApplyOrderService") public class OpeApplyOrderServiceImpl implements OpeApplyOrderService { private static Logger logger = Logger.getLogger(OpeApplyOrderService.class); @Resource(name = "opeApplyOrderDao") OpeApplyOrderDao opeApplyOrderDao; @Transactional(propagation = Propagation.REQUIRED) public List getOpeApplyOrderList(String opeOrderId, String opeApplyId) { try { Map params = new HashMap(); params.put("opeOrderId", opeOrderId); params.put("opeApplyId", opeApplyId); return this.opeApplyOrderDao.getOpeApplyOrderList(params); } catch (DataAccessException e) { logger.error(e.getMessage(), e); throw new BusinessException(ExceptionEnumCode.DB_ERR, MessageUtil.getMessageByCode(ExceptionEnumCode.DB_ERR.getCode()), e); } } @Transactional(propagation = Propagation.REQUIRED) public int getOpeApplyOrderTotalCount(String opeOrderId, String opeApplyId) { try { Map params = new HashMap(); params.put("opeOrderId", opeOrderId); params.put("opeApplyId", opeApplyId); return this.opeApplyOrderDao.getOpeApplyOrderTotalCount(params); } catch (DataAccessException e) { logger.error(e.getMessage(), e); throw new BusinessException(ExceptionEnumCode.DB_ERR, MessageUtil.getMessageByCode(ExceptionEnumCode.DB_ERR.getCode()), e); } } @Transactional(propagation = Propagation.REQUIRED) public OpeApplyOrder insertOpeApplyOrder(OpeApplyOrder opeApplyOrder) { try { opeApplyOrder.setId(IDUtils.uuid()); this.opeApplyOrderDao.insertOpeApplyOrder(opeApplyOrder); return opeApplyOrder; } catch (DuplicateKeyException ex) { logger.warn(ex.getMessage(), ex); throw new AlarmException(AlarmCode.DATA_DUPLICATE, MessageUtil.getMessage(AlarmCode.DATA_DUPLICATE.getCode())); } catch (DataIntegrityViolationException ex) { logger.warn(ex.getMessage(), ex); throw new AlarmException(AlarmCode.DATA_CONFICT, MessageUtil.getMessage(AlarmCode.DATA_CONFICT.getCode())); } catch (DataAccessException ex) { logger.error(ex.getMessage(), ex); throw new BusinessException(ExceptionEnumCode.DB_ERR, MessageUtil.getMessageByCode(ExceptionEnumCode.DB_ERR.getCode()), ex); } } }