package com.yuchen.saas.park.service.service.impl;

import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.yuchen.saas.park.api.entity.park.PmgConfigParkSpaceInfo;
import com.yuchen.saas.park.service.mapper.PmgConfigParkSpaceInfoMapper;
import com.yuchen.saas.park.service.service.PmgConfigParkSpaceInfoService;
import org.nest.springwrap.core.mp.base.BaseServiceImpl;
import org.nest.springwrap.core.tool.utils.Func;
import org.springframework.stereotype.Service;


/**
 * @author 刘通
 * @date 2020/12/11 14:24
 */
@Service
public class PmgConfigParkSpaceInfoServiceImpl
        extends BaseServiceImpl<PmgConfigParkSpaceInfoMapper, PmgConfigParkSpaceInfo>
        implements PmgConfigParkSpaceInfoService {
    /**
     * 新增或修改
     * @param pmgConfigParkSpaceInfo 园区空间主题类型
     * @return
     */
    @Override
    public boolean submit(PmgConfigParkSpaceInfo pmgConfigParkSpaceInfo) {
        LambdaQueryWrapper<PmgConfigParkSpaceInfo> parkSpaceWrapper = Wrappers.lambdaQuery();
        // 判断ID是否存在
        if (Func.isEmpty(pmgConfigParkSpaceInfo.getId())) { // 不存在
            // 通过name查询
            parkSpaceWrapper.eq(PmgConfigParkSpaceInfo::getName, pmgConfigParkSpaceInfo.getName());
        } else {
            // 查询非该对象ID，且与该对象同名的数数据
            parkSpaceWrapper.ne(PmgConfigParkSpaceInfo::getId,
                    pmgConfigParkSpaceInfo.getId()).eq(PmgConfigParkSpaceInfo::getName, pmgConfigParkSpaceInfo.getName());
        }
        Integer cnt = baseMapper.selectCount(parkSpaceWrapper);
        if (cnt > 0) {
            throw new RuntimeException("已存在["+pmgConfigParkSpaceInfo.getName()+"]!");
        }
        return saveOrUpdate(pmgConfigParkSpaceInfo);
    }

}
