|  | @@ -0,0 +1,72 @@
 | 
	
		
			
				|  |  | +package com.xunmei.core.reminder.service.impl;
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +import com.baomidou.mybatisplus.core.toolkit.IdWorker;
 | 
	
		
			
				|  |  | +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 | 
	
		
			
				|  |  | +import com.xunmei.common.core.constant.SecurityConstants;
 | 
	
		
			
				|  |  | +import com.xunmei.common.core.domain.reminder.domain.CoreReminderConfiguration;
 | 
	
		
			
				|  |  | +import com.xunmei.common.core.domain.reminder.domain.CoreReminderConfigurationRole;
 | 
	
		
			
				|  |  | +import com.xunmei.common.core.domain.reminder.dto.ReminderConfigEditDto;
 | 
	
		
			
				|  |  | +import com.xunmei.common.core.vo.IdNameVo;
 | 
	
		
			
				|  |  | +import com.xunmei.core.reminder.mapper.CoreReminderConfigurationMapper;
 | 
	
		
			
				|  |  | +import com.xunmei.core.reminder.mapper.CoreReminderConfigurationRoleMapper;
 | 
	
		
			
				|  |  | +import com.xunmei.core.reminder.service.ICoreReminderConfigurationService;
 | 
	
		
			
				|  |  | +import com.xunmei.system.api.Eto.RoleConditionEto;
 | 
	
		
			
				|  |  | +import com.xunmei.system.api.RemoteOrgService;
 | 
	
		
			
				|  |  | +import com.xunmei.system.api.RemoteRoleService;
 | 
	
		
			
				|  |  | +import com.xunmei.system.api.domain.SysOrg;
 | 
	
		
			
				|  |  | +import org.springframework.beans.factory.annotation.Autowired;
 | 
	
		
			
				|  |  | +import org.springframework.stereotype.Service;
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +import java.util.List;
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +/**
 | 
	
		
			
				|  |  | + * <p>
 | 
	
		
			
				|  |  | + * 服务实现类
 | 
	
		
			
				|  |  | + * </p>
 | 
	
		
			
				|  |  | + *
 | 
	
		
			
				|  |  | + * @author jingYuanChao
 | 
	
		
			
				|  |  | + * @since 2024-04-12
 | 
	
		
			
				|  |  | + */
 | 
	
		
			
				|  |  | +@Service
 | 
	
		
			
				|  |  | +public class CoreReminderConfigurationServiceImpl extends ServiceImpl<CoreReminderConfigurationMapper, CoreReminderConfiguration> implements ICoreReminderConfigurationService {
 | 
	
		
			
				|  |  | +    @Autowired
 | 
	
		
			
				|  |  | +    private RemoteOrgService orgService;
 | 
	
		
			
				|  |  | +    @Autowired
 | 
	
		
			
				|  |  | +    private RemoteRoleService roleService;
 | 
	
		
			
				|  |  | +    @Autowired
 | 
	
		
			
				|  |  | +    private CoreReminderConfigurationRoleMapper configurationRoleMapper;
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    @Override
 | 
	
		
			
				|  |  | +    public void editConfig(ReminderConfigEditDto editDto) {
 | 
	
		
			
				|  |  | +        SysOrg sysOrg = orgService.selectOrgById(editDto.getOrgId(), SecurityConstants.INNER);
 | 
	
		
			
				|  |  | +        List<IdNameVo> names = roleService.getNames(new RoleConditionEto(editDto.getRoleIdList()));
 | 
	
		
			
				|  |  | +        if (editDto.getConfigId() == null) {
 | 
	
		
			
				|  |  | +            CoreReminderConfiguration config = new CoreReminderConfiguration();
 | 
	
		
			
				|  |  | +            //生成config所有字段的set方法
 | 
	
		
			
				|  |  | +            config.setConfigId(IdWorker.getId());
 | 
	
		
			
				|  |  | +            config.setReminderType(editDto.getReminderType());
 | 
	
		
			
				|  |  | +            config.setSendModule(editDto.getSendModule());
 | 
	
		
			
				|  |  | +            config.setOrgId(editDto.getOrgId());
 | 
	
		
			
				|  |  | +            config.setOrgName(sysOrg.getName());
 | 
	
		
			
				|  |  | +            config.setOrgPath(sysOrg.getPath());
 | 
	
		
			
				|  |  | +            config.setOrgType(sysOrg.getType());
 | 
	
		
			
				|  |  | +            if (editDto.getReminderType() == 0) {
 | 
	
		
			
				|  |  | +                config.setOverdueNoticePeriod(editDto.getDay());
 | 
	
		
			
				|  |  | +            } else {
 | 
	
		
			
				|  |  | +                config.setAdvanceNoticePeriod(editDto.getDay());
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +            config.setEnabled(editDto.getEnabled());
 | 
	
		
			
				|  |  | +            save(config);
 | 
	
		
			
				|  |  | +            for (Long roleId : editDto.getRoleIdList()) {
 | 
	
		
			
				|  |  | +                CoreReminderConfigurationRole configurationRole = new CoreReminderConfigurationRole();
 | 
	
		
			
				|  |  | +                configurationRole.setTargetRoleId(roleId);
 | 
	
		
			
				|  |  | +                names.stream().filter(idNameVo -> idNameVo.getId().equals(roleId)).findAny().ifPresent(idNameVo -> {
 | 
	
		
			
				|  |  | +                    configurationRole.setTargetRoleName(idNameVo.getName());
 | 
	
		
			
				|  |  | +                });
 | 
	
		
			
				|  |  | +                configurationRole.setConfigId(config.getConfigId());
 | 
	
		
			
				|  |  | +                configurationRoleMapper.insert(configurationRole);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +}
 |