|
|
@@ -9,12 +9,11 @@ import com.xunmei.common.core.domain.notice.CoreNoticeRule;
|
|
|
import com.xunmei.common.core.domain.notice.CoreNoticeRuleItem;
|
|
|
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.CoreNoticeRuleMapper;
|
|
|
import com.xunmei.core.notice.service.ICoreNoticeRuleItemService;
|
|
|
import com.xunmei.core.notice.service.ICoreNoticeRuleService;
|
|
|
-import com.xunmei.core.notice.vo.CoreNoticeRuleVo;
|
|
|
-import com.xunmei.core.notice.vo.SelectProductVo;
|
|
|
-import com.xunmei.core.notice.vo.SelectUserVo;
|
|
|
+import com.xunmei.core.notice.vo.*;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
|
|
|
@@ -23,6 +22,7 @@ import java.io.Serializable;
|
|
|
import java.util.ArrayList;
|
|
|
import java.util.Date;
|
|
|
import java.util.List;
|
|
|
+import java.util.stream.Collectors;
|
|
|
|
|
|
/**
|
|
|
* <p>
|
|
|
@@ -46,14 +46,6 @@ public class CoreNoticeRuleServiceImpl extends ServiceImpl<CoreNoticeRuleMapper,
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
- public List<SelectUserVo> selectUserList(CoreNoticeRuleDto dto) {
|
|
|
- if (dto != null && dto.getOrgIds() != null && dto.getOrgIds().size() > 0) {
|
|
|
- return baseMapper.selectUserList(dto.getOrgIds());
|
|
|
- }
|
|
|
- return null;
|
|
|
- }
|
|
|
-
|
|
|
- @Override
|
|
|
public List<SelectUserVo> selectUserListByOrgId(Long orgId) {
|
|
|
return baseMapper.selectUserListByOrgId(orgId);
|
|
|
}
|
|
|
@@ -70,7 +62,7 @@ public class CoreNoticeRuleServiceImpl extends ServiceImpl<CoreNoticeRuleMapper,
|
|
|
noticeRule.setName(dto.getName());
|
|
|
noticeRule.setRemark(dto.getRemark());
|
|
|
noticeRule.setEnable(dto.getEnable() ? 1 : 0);
|
|
|
- noticeRule.setSendSms(dto.getSendSms() ? 1 : 0);
|
|
|
+ noticeRule.setOrgId(dto.getOrgId());
|
|
|
|
|
|
if (dto.getId() != null){
|
|
|
noticeRule.setId(dto.getId());
|
|
|
@@ -101,38 +93,72 @@ public class CoreNoticeRuleServiceImpl extends ServiceImpl<CoreNoticeRuleMapper,
|
|
|
itemService.remove(wrapper);
|
|
|
}
|
|
|
|
|
|
+ @Override
|
|
|
+ public CoreNoticeRuleDetailVo getDetailById(Long id) {
|
|
|
+ CoreNoticeRuleDetailVo detailVo = new CoreNoticeRuleDetailVo();
|
|
|
+ CoreNoticeRule noticeRule = getById(id);
|
|
|
+ if (noticeRule != null){
|
|
|
+ detailVo.setId(noticeRule.getId());
|
|
|
+ detailVo.setName(noticeRule.getName());
|
|
|
+ detailVo.setRemark(noticeRule.getRemark());
|
|
|
+ detailVo.setEnable(noticeRule.getEnable());
|
|
|
+ detailVo.setOrgId(noticeRule.getOrgId());
|
|
|
+ List<NoticeRuleUserItem> itemList = itemService.getByRuleId(id);
|
|
|
+ detailVo.setItems(itemList);
|
|
|
+ }
|
|
|
+ return detailVo;
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public List<SysRoleVo> getOrgRules(Long orgId) {
|
|
|
+ return baseMapper.getOrgRules(orgId);
|
|
|
+ }
|
|
|
+
|
|
|
private void saveOrUpdateItem(CoreNoticeRuleDto dto, Long ruleId) {
|
|
|
- ArrayList<CoreNoticeRuleItem> items = new ArrayList<>();
|
|
|
- String userId = handStr(dto.getUserIds());
|
|
|
- String roleId = handStr(dto.getRoleIds());
|
|
|
- //String productType = handStr(dto.getProductTypes());
|
|
|
-
|
|
|
- for (Long orgId : dto.getOrgIds()) {
|
|
|
- for (String productType : dto.getProductTypes()) {
|
|
|
- CoreNoticeRuleItem item = new CoreNoticeRuleItem();
|
|
|
- item.setRuleId(ruleId);
|
|
|
- item.setOrgId(orgId);
|
|
|
- item.setUserIds(userId);
|
|
|
- item.setRoleIds(roleId);
|
|
|
- item.setAllRoleUser(0);
|
|
|
- if (ObjectUtil.isEmpty(userId)){
|
|
|
- item.setAllRoleUser(1);
|
|
|
+ List<CoreNoticeRuleItem> items = new ArrayList<>();
|
|
|
+ if (dto.getItems() != null && dto.getItems().size() > 0) {
|
|
|
+ List<NoticeRuleUserItem> itemList = dto.getItems();
|
|
|
+ for (NoticeRuleUserItem item : itemList) {
|
|
|
+ List<String> userIds = item.getUserIds();
|
|
|
+ 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);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }else {
|
|
|
+ for (String productType : productTypes) {
|
|
|
+ CoreNoticeRuleItem coreNoticeRuleItem = new CoreNoticeRuleItem();
|
|
|
+ coreNoticeRuleItem.setRuleId(ruleId);
|
|
|
+ coreNoticeRuleItem.setRoleId(item.getRoleId());
|
|
|
+ coreNoticeRuleItem.setOrgId(item.getOrgId());
|
|
|
+ coreNoticeRuleItem.setUserId(null);
|
|
|
+ coreNoticeRuleItem.setProductType(productType);
|
|
|
+ coreNoticeRuleItem.setAllRoleUser(1);
|
|
|
+ coreNoticeRuleItem.setSendSms(item.getSendSms());
|
|
|
+ coreNoticeRuleItem.setIsDeleted(0);
|
|
|
+ items.add(coreNoticeRuleItem);
|
|
|
+ }
|
|
|
}
|
|
|
- item.setProductType(productType);
|
|
|
- items.add(item);
|
|
|
}
|
|
|
}
|
|
|
- itemService.saveBatch(items);
|
|
|
- }
|
|
|
|
|
|
- private String handStr(List<String> list){
|
|
|
- StringBuilder sb = new StringBuilder();
|
|
|
- for (int i = 0; i < list.size(); i++) {
|
|
|
- sb.append(list.get(i));
|
|
|
- if (i < list.size() - 1) {
|
|
|
- sb.append(",");
|
|
|
- }
|
|
|
+ //删除相同数据
|
|
|
+ if(items.size() > 0){
|
|
|
+ List<CoreNoticeRuleItem> distinctList = items.stream().distinct().collect(Collectors.toList());
|
|
|
+
|
|
|
+ itemService.saveBatch(distinctList);
|
|
|
}
|
|
|
- return sb.toString();
|
|
|
}
|
|
|
}
|