package org.jeecg.modules.dnc.service.impl; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import org.jeecg.modules.dnc.entity.Button; import org.jeecg.modules.dnc.entity.ObjectBase; import org.jeecg.modules.dnc.entity.ObjectButton; import org.jeecg.modules.dnc.entity.ObjectButtonPermission; import org.jeecg.modules.dnc.exception.ExceptionCast; import org.jeecg.modules.dnc.mapper.DncObjectMapper; import org.jeecg.modules.dnc.request.ObjectBaseRequest; import org.jeecg.modules.dnc.response.CommonCode; import org.jeecg.modules.dnc.response.ObjectCode; import org.jeecg.modules.dnc.response.QueryPageResponseResult; import org.jeecg.modules.dnc.service.IButtonService; import org.jeecg.modules.dnc.service.IObjectButtonPermissionService; import org.jeecg.modules.dnc.service.IObjectButtonService; import org.jeecg.modules.dnc.service.IObjectService; import org.jeecg.modules.dnc.utils.ValidateUtil; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import java.util.ArrayList; import java.util.Collection; import java.util.List; @Service public class ObjectServiceImpl extends ServiceImpl implements IObjectService { @Autowired private IObjectButtonService objectButtonService; @Autowired private IButtonService buttonService; @Autowired private IObjectButtonPermissionService objectButtonPermissionService; @Override @Transactional(rollbackFor = {Exception.class}) public boolean addObject(ObjectBase objectBase) { if(objectBase == null) ExceptionCast.cast(CommonCode.INVALID_PARAM); if(!ValidateUtil.validateString(objectBase.getObjectPerm())) ExceptionCast.cast(ObjectCode.OBJ_PERM_CODE_NONE); if(!ValidateUtil.validateString(objectBase.getObjectName())) ExceptionCast.cast(ObjectCode.OBJ_NAME_NONE); ObjectBase en = getByPermCode(objectBase.getObjectPerm()); if(en != null) ExceptionCast.cast(ObjectCode.OBJ_PERM_CODE_EXIST); return super.save(objectBase); } @Override public ObjectBase getByPermCode(String permCode) { if(!ValidateUtil.validateString(permCode)) return null; List list = super.lambdaQuery().eq(ObjectBase::getObjectPerm, permCode).list(); if(list == null || list.isEmpty()) return null; return list.get(0); } @Override @Transactional(rollbackFor = {Exception.class}) public boolean assignButton(String objectId, List