EntityCounterTypeManagerImpl.java

package com.mycim.server.pms.manager.impl;

import com.mycim.server.base.manager.NamedObjectManager;
import com.mycim.server.base.manager.TransactionLogManager;
import com.mycim.server.pms.dao.EntityCounterTypeDao;
import com.mycim.server.pms.manager.EntityCounterTypeManager;
import com.mycim.valueobject.bas.TransactionLog;
import com.mycim.valueobject.consts.TransactionNames;
import com.mycim.valueobject.ems.EntityCounterType;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import java.util.List;

/**
 * EntityCounterTypeManager Impl
 *
 * @author pinyan.song
 * @version 6.0.0
 * @date 2019-11-15
 **/
@Service
@Transactional
public class EntityCounterTypeManagerImpl implements EntityCounterTypeManager {
    @Autowired
    EntityCounterTypeDao entityCounterTypeDao;

    @Autowired
    private NamedObjectManager namedObjectManager;

    @Autowired
    private TransactionLogManager transactionLogManager;

    @Override
    public List<EntityCounterType> getEntityCounterTypesOfEntity(long entityRrn) {
        List<EntityCounterType> data = entityCounterTypeDao.getEntityCounterTypesOfEntity(entityRrn);

        for (EntityCounterType e : data) {
            e.setEventId(namedObjectManager.getInstanceId(e.getEventRrn()));
            e.setRecipeId(namedObjectManager.getInstanceId(e.getRecipeRrn()));
        }

        return data;
    }

    @Override
    public long insertEntityCounterType(EntityCounterType entityCounterType) {
        TransactionLog transactionLog = transactionLogManager
                .startTransactionLog(entityCounterType.getTransPerformedBy(), TransactionNames.CREATE_KEY);
        long instanceRrn = entityCounterTypeDao.insertEntityCounterType(entityCounterType, transactionLog);
        transactionLogManager.markTransactionLog(transactionLog);
        return instanceRrn;
    }

    @Override
    public void updateEntityCounterType(EntityCounterType entityCounterType) {
        TransactionLog transactionLog = transactionLogManager
                .startTransactionLog(entityCounterType.getTransPerformedBy(), TransactionNames.MODIFY_KEY);
        entityCounterTypeDao.updateEntityCounterType(entityCounterType, transactionLog);
        transactionLogManager.markTransactionLog(transactionLog);
    }

    @Override
    public void deleteEntityCounterType(EntityCounterType entityCounterType) {
        TransactionLog transactionLog = transactionLogManager
                .startTransactionLog(entityCounterType.getTransPerformedBy(), TransactionNames.DELETE_KEY);
        entityCounterTypeDao.deleteEntityCounterType(entityCounterType, transactionLog);
        transactionLogManager.markTransactionLog(transactionLog);
    }

}