¶Ô±ÈÐÂÎļþ |
| | |
| | | package org.jeecg.modules.dnc.service.impl; |
| | | |
| | | import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
| | | import com.baomidou.mybatisplus.core.toolkit.Wrappers; |
| | | import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; |
| | | import org.jeecg.modules.dnc.entity.*; |
| | | import org.jeecg.modules.dnc.exception.ExceptionCast; |
| | | import org.jeecg.modules.dnc.mapper.ProductPermissionMapper; |
| | | import org.jeecg.modules.dnc.response.CommonCode; |
| | | import org.jeecg.modules.dnc.service.*; |
| | | import org.jeecg.modules.dnc.ucenter.UserDepartExt; |
| | | import org.jeecg.modules.dnc.utils.ValidateUtil; |
| | | import org.jeecg.modules.system.entity.SysUser; |
| | | import org.jeecg.modules.system.service.ISysUserService; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.stereotype.Service; |
| | | import org.springframework.transaction.annotation.Transactional; |
| | | |
| | | import javax.annotation.Resource; |
| | | import java.util.ArrayList; |
| | | import java.util.Collections; |
| | | import java.util.List; |
| | | |
| | | @Service |
| | | public class ProductPermissionServiceImpl extends ServiceImpl<ProductPermissionMapper, ProductPermission> implements IProductPermissionService { |
| | | @Autowired |
| | | private IComponentPermissionService componentPermissionService; |
| | | @Autowired |
| | | private IPartsPermissionService partsPermissionService; |
| | | @Resource |
| | | private IProcessSpecVersionPermissionService processSpecVersionPermissionService; |
| | | @Autowired |
| | | private IProcessStreamPermissionService processStreamPermissionService; |
| | | @Autowired |
| | | private IWorkStepPermissionService workStepPermissionService; |
| | | @Autowired |
| | | private ISysUserService sysUserService; |
| | | @Override |
| | | public ProductPermission getByProductIdAndUserId(String productId, String userId) { |
| | | if(!ValidateUtil.validateString(productId) || !ValidateUtil.validateString(userId)) |
| | | return null; |
| | | List<ProductPermission> permissions = super.lambdaQuery().eq(ProductPermission::getProductId, productId).eq(ProductPermission::getUserId, userId).list(); |
| | | if(permissions == null || permissions.isEmpty()) |
| | | return null; |
| | | return permissions.get(0); |
| | | } |
| | | |
| | | @Override |
| | | @Transactional(rollbackFor = {Exception.class}) |
| | | public boolean deleteByProductId(String productId) { |
| | | if(!ValidateUtil.validateString(productId)) |
| | | return false; |
| | | LambdaQueryWrapper<ProductPermission> lambdaQueryWrapper = Wrappers.lambdaQuery(); |
| | | lambdaQueryWrapper.eq(ProductPermission::getProductId, productId); |
| | | return super.remove(lambdaQueryWrapper); |
| | | } |
| | | |
| | | @Override |
| | | public List<UserDepartExt> getUserPermsByProductId(String productId) { |
| | | return super.getBaseMapper().getUserPermsByProductId(productId); |
| | | } |
| | | |
| | | @Override |
| | | public List<SysUser> getUserNonPermsByProductId(String productId) { |
| | | return super.getBaseMapper().getUserNonPermsByProductId(productId); |
| | | } |
| | | |
| | | @Override |
| | | public boolean removeByCollection(List<ProductPermission> permissionList) { |
| | | if(permissionList == null || permissionList.isEmpty()) |
| | | return false; |
| | | if(permissionList.size() == 1) { |
| | | return super.removeById(permissionList.get(0).getId()); |
| | | } |
| | | List<String> ids = new ArrayList<>(); |
| | | permissionList.forEach(item -> { |
| | | ids.add(item.getId()); |
| | | }); |
| | | return super.removeByIds(ids); |
| | | } |
| | | |
| | | @Override |
| | | public List<ProductPermission> getByProductId(String productId) { |
| | | List<ProductPermission> list = super.lambdaQuery().eq(ProductPermission::getProductId, productId).list(); |
| | | if(list == null) |
| | | list = Collections.emptyList(); |
| | | return list; |
| | | } |
| | | |
| | | /** |
| | | * æ°å¢æéæ°æ® |
| | | * @param id |
| | | * @param userId |
| | | * @param type |
| | | * @return |
| | | */ |
| | | @Override |
| | | public boolean add(String id, String userId, String type) { |
| | | // éªè¯åæ°æææ§ |
| | | if (!ValidateUtil.validateString(userId) || !ValidateUtil.validateString(id) || !ValidateUtil.validateString(type)) { |
| | | return false; |
| | | } |
| | | // è·å管çåç¨æ· |
| | | SysUser adminUser = sysUserService.getUserByName("admin"); |
| | | try { |
| | | boolean isAdmin = userId.equals(adminUser.getId()); |
| | | savePermission(id, userId, type); |
| | | if (!isAdmin) { |
| | | savePermission(id, adminUser.getId(), type); |
| | | } |
| | | return true; |
| | | } catch (Exception e) { |
| | | ExceptionCast.cast(CommonCode.INVALID_PARAM); |
| | | return false; |
| | | } |
| | | } |
| | | |
| | | private void savePermission(String id, String userId, String type) { |
| | | switch (type) { |
| | | case "1": |
| | | // ç»ä»¶æé |
| | | super.save(new ProductPermission(id, userId)); |
| | | break; |
| | | case "2": |
| | | // é¨ä»¶æé |
| | | componentPermissionService.save(new ComponentPermission(id, userId)); |
| | | break; |
| | | case "3": |
| | | // é¶ä»¶æé |
| | | partsPermissionService.save(new PartsPermission(id, userId)); |
| | | break; |
| | | case "4": |
| | | //å·¥èºè§ç¨çæ¬å· |
| | | processSpecVersionPermissionService.save(new ProcessSpecVersionPermission(id, userId)); |
| | | break; |
| | | case "5": |
| | | // å·¥åºæé |
| | | processStreamPermissionService.save(new ProcessionPermission(id, userId)); |
| | | break; |
| | | case "6": |
| | | // å·¥åºæ¥éª¤æé |
| | | workStepPermissionService.save(new WorkStepPermission(id, userId)); |
| | | break; |
| | | default: |
| | | // å¤çæªç¥ç±»å |
| | | throw new IllegalArgumentException("Unknown permission treeType: " + type); |
| | | } |
| | | } |
| | | |
| | | } |