package com.lxzn.ucenter.service.impl; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.additional.query.impl.LambdaQueryChainWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.lxzn.framework.domain.ucenter.Button; import com.lxzn.framework.domain.ucenter.ObjectBase; import com.lxzn.framework.domain.ucenter.ObjectButton; import com.lxzn.framework.domain.ucenter.ObjectButtonPermission; import com.lxzn.framework.domain.ucenter.request.ObjectBaseRequest; import com.lxzn.framework.domain.ucenter.response.ObjectCode; import com.lxzn.framework.exception.ExceptionCast; import com.lxzn.framework.model.response.CommonCode; import com.lxzn.framework.model.response.QueryPageResponseResult; import com.lxzn.framework.utils.ValidateUtil; import com.lxzn.ucenter.dao.ObjectMapper; import com.lxzn.ucenter.service.IButtonService; import com.lxzn.ucenter.service.IObjectButtonPermissionService; import com.lxzn.ucenter.service.IObjectButtonService; import com.lxzn.ucenter.service.IObjectService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; 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