package com.huatek.busi.service.impl;

import com.alibaba.dubbo.config.annotation.Service;
import com.huatek.busi.entity.SimulateInputDataItem;
import com.huatek.busi.mapper.SimulateInputDataItemMapper;
import com.huatek.busi.service.ISimulateInputDataItemService;
import com.huatek.torch.sql.beans.LocalUser;
import com.huatek.torch.sql.dao.impl.BaseDao;
import com.huatek.torch.util.uuid.Uuid;
import org.apache.commons.lang.StringEscapeUtils;
import org.springframework.stereotype.Component;
import org.springframework.transaction.annotation.Transactional;

import javax.annotation.Resource;
import java.time.LocalDateTime;

@Component
@Service(interfaceClass = ISimulateInputDataItemService.class)
@Transactional(rollbackFor = Exception.class)
public class SimulateInputDataItemServiceImpl extends BaseDao<SimulateInputDataItem, String> implements ISimulateInputDataItemService {

    @Resource
    private SimulateInputDataItemMapper simulateInputDataItemMapper;

    @Override
    public SimulateInputDataItem selectByDataItemJson(String dataItemJson, LocalUser user){
        SimulateInputDataItem simulateInputDataItem = simulateInputDataItemMapper.findByDataItemJson(dataItemJson);
        if(simulateInputDataItem == null){
            simulateInputDataItem = new SimulateInputDataItem();
            simulateInputDataItem.setId(Uuid.getUUID());
            // 去掉json转义符号
            dataItemJson = StringEscapeUtils.unescapeJava(dataItemJson);
            simulateInputDataItem.setDataItemJson(dataItemJson);
            simulateInputDataItem.setCreateUser(user.getUid());
            simulateInputDataItem.setCreateTime(LocalDateTime.now());
            this.add(simulateInputDataItem);
        }
        return simulateInputDataItem;
    }
}
