| package cn.stylefeng.roses.kernel.system.modular.theme.service.impl; | 
|   | 
| import cn.stylefeng.roses.kernel.rule.enums.YesOrNotEnum; | 
| import cn.stylefeng.roses.kernel.system.api.exception.SystemModularException; | 
| import cn.stylefeng.roses.kernel.system.api.exception.enums.theme.SysThemeTemplateExceptionEnum; | 
| import cn.stylefeng.roses.kernel.system.api.pojo.theme.SysThemeTemplateRelRequest; | 
| import cn.stylefeng.roses.kernel.system.modular.theme.entity.SysThemeTemplate; | 
| import cn.stylefeng.roses.kernel.system.modular.theme.entity.SysThemeTemplateRel; | 
| import cn.stylefeng.roses.kernel.system.modular.theme.mapper.SysThemeTemplateRelMapper; | 
| import cn.stylefeng.roses.kernel.system.modular.theme.service.SysThemeTemplateRelService; | 
| import cn.stylefeng.roses.kernel.system.modular.theme.service.SysThemeTemplateService; | 
| import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; | 
| import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; | 
| import org.springframework.stereotype.Service; | 
| import org.springframework.transaction.annotation.Transactional; | 
|   | 
| import javax.annotation.Resource; | 
| import java.util.ArrayList; | 
| import java.util.List; | 
|   | 
| /** | 
|  * 系统主题模板属性关系service接口实现类 | 
|  * | 
|  * @author xixiaowei | 
|  * @date 2021/12/17 16:14 | 
|  */ | 
| @Service | 
| public class SysThemeTemplateRelServiceImpl extends ServiceImpl<SysThemeTemplateRelMapper, SysThemeTemplateRel> implements SysThemeTemplateRelService { | 
|   | 
|     @Resource | 
|     private SysThemeTemplateService sysThemeTemplateService; | 
|   | 
|     @Override | 
|     public void add(SysThemeTemplateRelRequest sysThemeTemplateRelRequest) { | 
|         // 校验模板状态 | 
|         this.checkTemplateStatus(sysThemeTemplateRelRequest); | 
|   | 
|         // 获取请求中的所有属性编码 | 
|         String[] fieldCodes = sysThemeTemplateRelRequest.getFieldCodes(); | 
|   | 
|         List<SysThemeTemplateRel> sysThemeTemplateRels = new ArrayList<>(); | 
|   | 
|         // 填充对象 | 
|         for (String fieldCode : fieldCodes) { | 
|             SysThemeTemplateRel sysThemeTemplateRel = new SysThemeTemplateRel(); | 
|             sysThemeTemplateRel.setTemplateId(sysThemeTemplateRelRequest.getTemplateId()); | 
|             sysThemeTemplateRel.setFieldCode(fieldCode); | 
|   | 
|             sysThemeTemplateRels.add(sysThemeTemplateRel); | 
|         } | 
|   | 
|         // 保存关系 | 
|         this.saveBatch(sysThemeTemplateRels); | 
|     } | 
|   | 
|     /** | 
|      * 校验模板使用状态 | 
|      * | 
|      * @author xixiaowei | 
|      * @date 2021/12/30 17:28 | 
|      */ | 
|     private void checkTemplateStatus(SysThemeTemplateRelRequest sysThemeTemplateRelRequest) { | 
|         // 判断当前模板是否被使用 | 
|         LambdaQueryWrapper<SysThemeTemplate> queryWrapper = new LambdaQueryWrapper<>(); | 
|         queryWrapper.eq(SysThemeTemplate::getTemplateId, sysThemeTemplateRelRequest.getTemplateId()); | 
|         SysThemeTemplate sysThemeTemplate = sysThemeTemplateService.getOne(queryWrapper, true); | 
|         // 判断状态,如果是启用则禁止操作 | 
|         if (YesOrNotEnum.Y.getCode().equals(sysThemeTemplate.getStatusFlag().toString())) { | 
|             throw new SystemModularException(SysThemeTemplateExceptionEnum.TEMPLATE_IS_USED); | 
|         } | 
|     } | 
|   | 
|     @Override | 
|     @Transactional(rollbackFor = Exception.class) | 
|     public void del(SysThemeTemplateRelRequest sysThemeTemplateRelRequest) { | 
|         // 校验模板状态 | 
|         this.checkTemplateStatus(sysThemeTemplateRelRequest); | 
|   | 
|         // 获取请求中的所有属性编码 | 
|         String[] fieldCodes = sysThemeTemplateRelRequest.getFieldCodes(); | 
|   | 
|         // 构建删除条件 | 
|         LambdaQueryWrapper<SysThemeTemplateRel> queryWrapper = new LambdaQueryWrapper<>(); | 
|         queryWrapper.in(SysThemeTemplateRel::getFieldCode, fieldCodes); | 
|   | 
|         this.remove(queryWrapper); | 
|     } | 
| } |