|
|
@@ -7,11 +7,14 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
import com.xunmei.common.core.domain.notice.CoreNoticeRule;
|
|
|
import com.xunmei.common.core.domain.notice.CoreNoticeRuleItem;
|
|
|
+import com.xunmei.common.core.domain.notice.CoreNoticeRuleItemUser;
|
|
|
import com.xunmei.common.core.web.page.TableDataInfo;
|
|
|
import com.xunmei.core.notice.dto.CoreNoticeRuleDto;
|
|
|
import com.xunmei.core.notice.dto.NoticeRuleUserItem;
|
|
|
+import com.xunmei.core.notice.mapper.CoreNoticeRuleItemUserMapper;
|
|
|
import com.xunmei.core.notice.mapper.CoreNoticeRuleMapper;
|
|
|
import com.xunmei.core.notice.service.ICoreNoticeRuleItemService;
|
|
|
+import com.xunmei.core.notice.service.ICoreNoticeRuleItemUserService;
|
|
|
import com.xunmei.core.notice.service.ICoreNoticeRuleService;
|
|
|
import com.xunmei.core.notice.vo.*;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
@@ -39,6 +42,9 @@ public class CoreNoticeRuleServiceImpl extends ServiceImpl<CoreNoticeRuleMapper,
|
|
|
@Resource
|
|
|
private ICoreNoticeRuleItemService itemService;
|
|
|
|
|
|
+ @Resource
|
|
|
+ private ICoreNoticeRuleItemUserService itemUserService;
|
|
|
+
|
|
|
@Override
|
|
|
public TableDataInfo selectPage(CoreNoticeRuleDto dto) {
|
|
|
Page<CoreNoticeRuleVo> page = baseMapper.selectPageData(dto.getPageRequest(), dto);
|
|
|
@@ -72,6 +78,11 @@ public class CoreNoticeRuleServiceImpl extends ServiceImpl<CoreNoticeRuleMapper,
|
|
|
QueryWrapper<CoreNoticeRuleItem> wrapper = new QueryWrapper<>();
|
|
|
wrapper.lambda().eq(CoreNoticeRuleItem::getRuleId, dto.getId());
|
|
|
itemService.remove(wrapper);
|
|
|
+
|
|
|
+ QueryWrapper<CoreNoticeRuleItemUser> itemUserQueryWrapper = new QueryWrapper<>();
|
|
|
+ itemUserQueryWrapper.lambda().eq(CoreNoticeRuleItemUser::getRuleId, dto.getId());
|
|
|
+ itemUserService.remove(itemUserQueryWrapper);
|
|
|
+
|
|
|
//处理关联表数据
|
|
|
saveOrUpdateItem(dto, noticeRule.getId());
|
|
|
}else {
|
|
|
@@ -116,6 +127,7 @@ public class CoreNoticeRuleServiceImpl extends ServiceImpl<CoreNoticeRuleMapper,
|
|
|
|
|
|
private void saveOrUpdateItem(CoreNoticeRuleDto dto, Long ruleId) {
|
|
|
List<CoreNoticeRuleItem> items = new ArrayList<>();
|
|
|
+ List<CoreNoticeRuleItemUser> itemUsers = new ArrayList<>();
|
|
|
if (dto.getItems() != null && dto.getItems().size() > 0) {
|
|
|
List<NoticeRuleUserItem> itemList = dto.getItems();
|
|
|
for (NoticeRuleUserItem item : itemList) {
|
|
|
@@ -123,27 +135,36 @@ public class CoreNoticeRuleServiceImpl extends ServiceImpl<CoreNoticeRuleMapper,
|
|
|
List<String> productTypes = item.getProductTypes();
|
|
|
//有具体人员,角色就不生效
|
|
|
if (userIds != null && userIds.size() > 0) {
|
|
|
- for(String userId : userIds){
|
|
|
- for (String productType : productTypes) {
|
|
|
- CoreNoticeRuleItem coreNoticeRuleItem = new CoreNoticeRuleItem();
|
|
|
- coreNoticeRuleItem.setRuleId(ruleId);
|
|
|
- coreNoticeRuleItem.setRoleId(null);
|
|
|
- coreNoticeRuleItem.setOrgId(item.getOrgId());
|
|
|
- coreNoticeRuleItem.setUserId(Long.valueOf(userId));
|
|
|
- coreNoticeRuleItem.setProductType(productType);
|
|
|
- coreNoticeRuleItem.setAllRoleUser(0);
|
|
|
- coreNoticeRuleItem.setSendSms(item.getSendSms());
|
|
|
- coreNoticeRuleItem.setIsDeleted(0);
|
|
|
- items.add(coreNoticeRuleItem);
|
|
|
+ for (String productType : productTypes) {
|
|
|
+ CoreNoticeRuleItem coreNoticeRuleItem = new CoreNoticeRuleItem();
|
|
|
+ Long ruleItemId = IdWorker.getId();
|
|
|
+ coreNoticeRuleItem.setId(ruleItemId);
|
|
|
+ coreNoticeRuleItem.setRuleId(ruleId);
|
|
|
+ coreNoticeRuleItem.setRoleId(null);
|
|
|
+ coreNoticeRuleItem.setUserIds(String.join(",", userIds));
|
|
|
+ coreNoticeRuleItem.setOrgId(item.getOrgId());
|
|
|
+ coreNoticeRuleItem.setProductType(productType);
|
|
|
+ coreNoticeRuleItem.setAllRoleUser(0);
|
|
|
+ coreNoticeRuleItem.setSendSms(item.getSendSms());
|
|
|
+ coreNoticeRuleItem.setIsDeleted(0);
|
|
|
+ items.add(coreNoticeRuleItem);
|
|
|
+
|
|
|
+ for (String userId : userIds) {
|
|
|
+ CoreNoticeRuleItemUser ruleItemUser = new CoreNoticeRuleItemUser();
|
|
|
+ ruleItemUser.setUserId(Long.valueOf(userId));
|
|
|
+ ruleItemUser.setRuleItemId(ruleItemId);
|
|
|
+ ruleItemUser.setRuleId(ruleId);
|
|
|
+ itemUsers.add(ruleItemUser);
|
|
|
}
|
|
|
}
|
|
|
}else {
|
|
|
for (String productType : productTypes) {
|
|
|
CoreNoticeRuleItem coreNoticeRuleItem = new CoreNoticeRuleItem();
|
|
|
+ coreNoticeRuleItem.setId(IdWorker.getId());
|
|
|
coreNoticeRuleItem.setRuleId(ruleId);
|
|
|
coreNoticeRuleItem.setRoleId(item.getRoleId());
|
|
|
+ coreNoticeRuleItem.setUserIds(null);
|
|
|
coreNoticeRuleItem.setOrgId(item.getOrgId());
|
|
|
- coreNoticeRuleItem.setUserId(null);
|
|
|
coreNoticeRuleItem.setProductType(productType);
|
|
|
coreNoticeRuleItem.setAllRoleUser(1);
|
|
|
coreNoticeRuleItem.setSendSms(item.getSendSms());
|
|
|
@@ -154,11 +175,12 @@ public class CoreNoticeRuleServiceImpl extends ServiceImpl<CoreNoticeRuleMapper,
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- //删除相同数据
|
|
|
if(items.size() > 0){
|
|
|
- List<CoreNoticeRuleItem> distinctList = items.stream().distinct().collect(Collectors.toList());
|
|
|
+ itemService.saveBatch(items);
|
|
|
+ }
|
|
|
|
|
|
- itemService.saveBatch(distinctList);
|
|
|
+ if (itemUsers.size() > 0){
|
|
|
+ itemUserService.saveBatch(itemUsers);
|
|
|
}
|
|
|
}
|
|
|
}
|