|
|
@ -7,10 +7,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; |
|
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; |
|
|
|
import com.qs.serve.common.model.dto.PageVo; |
|
|
|
import com.qs.serve.common.model.dto.R; |
|
|
|
import com.qs.serve.common.util.Assert; |
|
|
|
import com.qs.serve.common.util.CopierUtil; |
|
|
|
import com.qs.serve.common.util.PageUtil; |
|
|
|
import com.qs.serve.common.util.StringUtils; |
|
|
|
import com.qs.serve.common.util.*; |
|
|
|
import com.qs.serve.modules.bms.entity.BmsRegion; |
|
|
|
import com.qs.serve.modules.bms.entity.BmsRegion2; |
|
|
|
import com.qs.serve.modules.bms.entity.BmsSupplier; |
|
|
@ -221,10 +218,12 @@ public class GoodsAccreditServiceImpl extends ServiceImpl<GoodsAccreditMapper,Go |
|
|
|
|
|
|
|
private List<GoodsAccreditResult> getGoodsAccreditResults(List<GoodsAccreditExt> list) { |
|
|
|
List<GoodsAccreditResult> results = list.stream().map(ext->{ |
|
|
|
// 根据unionType判断是商品授权还是客户授权
|
|
|
|
if (ext.getUnionType().equals("accredit")){ |
|
|
|
GoodsAccreditResult result = new GoodsAccreditResult(); |
|
|
|
result.setId("goods"+ext.getId()); |
|
|
|
result.setRuleType("goods"); |
|
|
|
// 根据categoryId、spuId判断商品类型
|
|
|
|
if(ext.getCategoryId()!=null){ |
|
|
|
result.setGoodType("category"); |
|
|
|
}else if (ext.getSpuId()!=null){ |
|
|
@ -234,16 +233,22 @@ public class GoodsAccreditServiceImpl extends ServiceImpl<GoodsAccreditMapper,Go |
|
|
|
} |
|
|
|
result.setCode(ext.getCode()); |
|
|
|
result.setName(ext.getName()); |
|
|
|
// 根据accType设置授权类型
|
|
|
|
result.setAccType(ext.getAccType().equals(0)?"in":"notIn"); |
|
|
|
if(ext.getTargetType().equals("0")){ |
|
|
|
result.setTargetType("supplier"); |
|
|
|
}else if (ext.getTargetType().equals("1")){ |
|
|
|
result.setTargetType("bizRegion"); |
|
|
|
}else if (ext.getTargetType().equals("2")){ |
|
|
|
result.setTargetType("saleRegion"); |
|
|
|
}else { |
|
|
|
result.setTargetType(ext.getTargetType()); |
|
|
|
} |
|
|
|
// 根据targetType设置目标类型
|
|
|
|
// if(ext.getTargetType().equals("0")){
|
|
|
|
// result.setTargetType("supplier");
|
|
|
|
// }else if (ext.getTargetType().equals("1")){
|
|
|
|
// result.setTargetType("bizRegion");
|
|
|
|
// }else if (ext.getTargetType().equals("2")){
|
|
|
|
// result.setTargetType("saleRegion");
|
|
|
|
// }else if (ext.getTargetType().equals("3")){
|
|
|
|
// result.setTargetType("user");
|
|
|
|
// }else {
|
|
|
|
// result.setTargetType(ext.getTargetType());
|
|
|
|
// }
|
|
|
|
result.setTargetType(ext.getTargetType()); |
|
|
|
|
|
|
|
result.setTargetCode(ext.getTargetCode()); |
|
|
|
result.setTargetName(ext.getTargetName()); |
|
|
|
result.setTargetId(ext.getTargetId()); |
|
|
@ -811,29 +816,36 @@ public class GoodsAccreditServiceImpl extends ServiceImpl<GoodsAccreditMapper,Go |
|
|
|
|
|
|
|
@Override |
|
|
|
public GoodsAccrIdsDto listIgnoreAcc2(String supplierId, List<String> bizRegionIds, List<String> saleRegionIds) { |
|
|
|
//当前业务id
|
|
|
|
String userId = AuthContextUtils.getSysUserId(); |
|
|
|
//查询自身所有
|
|
|
|
LambdaQueryWrapper<GoodsAccreditItem> lqw = new LambdaQueryWrapper<>(); |
|
|
|
lqw.select(GoodsAccreditItem::getId,GoodsAccreditItem::getAccType,GoodsAccreditItem::getAccId) |
|
|
|
.or(a->a.eq(GoodsAccreditItem::getTargetType,"user").eq(GoodsAccreditItem::getTargetId,userId)) |
|
|
|
.or(a->a.eq(GoodsAccreditItem::getTargetType,"supplier").eq(GoodsAccreditItem::getTargetId,supplierId)) |
|
|
|
.or(a->a.eq(GoodsAccreditItem::getTargetType,"saleRegion").in(GoodsAccreditItem::getTargetId,saleRegionIds)) |
|
|
|
.or(a->a.eq(GoodsAccreditItem::getTargetType,"bizRegion").in(GoodsAccreditItem::getTargetId,bizRegionIds)); |
|
|
|
|
|
|
|
List<Long> selfNotInIds = goodsAccreditItemService.list(lqw).stream() |
|
|
|
List<GoodsAccreditItem> goodsAccreditItems = goodsAccreditItemService.list(lqw); |
|
|
|
//过滤出不包含的商品ID
|
|
|
|
List<Long> selfNotInIds = goodsAccreditItems.stream() |
|
|
|
.filter(a->a.getAccType().equals(1)).map(GoodsAccreditItem::getAccId).collect(Collectors.toList()); |
|
|
|
List<Long> selfInIds = goodsAccreditItemService.list(lqw).stream() |
|
|
|
//过滤出包含的商品ID
|
|
|
|
List<Long> selfInIds = goodsAccreditItems.stream() |
|
|
|
.filter(a->a.getAccType().equals(0)).map(GoodsAccreditItem::getAccId).collect(Collectors.toList()); |
|
|
|
|
|
|
|
|
|
|
|
//查询其它维度所有in
|
|
|
|
LambdaQueryWrapper<GoodsAccreditItem> lqw2 = new LambdaQueryWrapper<>(); |
|
|
|
lqw2.select(GoodsAccreditItem::getAccId) |
|
|
|
.eq(GoodsAccreditItem::getAccType,0).and( |
|
|
|
qw->{ |
|
|
|
qw.or(a->a.eq(GoodsAccreditItem::getTargetType,"supplier").ne(GoodsAccreditItem::getTargetId,supplierId)) |
|
|
|
qw |
|
|
|
.or(a->a.eq(GoodsAccreditItem::getTargetType,"user").ne(GoodsAccreditItem::getTargetId,userId)) |
|
|
|
.or(a->a.eq(GoodsAccreditItem::getTargetType,"supplier").ne(GoodsAccreditItem::getTargetId,supplierId)) |
|
|
|
.or(a->a.eq(GoodsAccreditItem::getTargetType,"saleRegion").notIn(GoodsAccreditItem::getTargetId,saleRegionIds)) |
|
|
|
.or(a->a.eq(GoodsAccreditItem::getTargetType,"bizRegion").notIn(GoodsAccreditItem::getTargetId,bizRegionIds)); |
|
|
|
} |
|
|
|
); |
|
|
|
//获取其他维度包含的商品ID
|
|
|
|
List<Long> otherInIds = goodsAccreditItemService.list(lqw2) |
|
|
|
.stream().map(GoodsAccreditItem::getAccId).collect(Collectors.toList()); |
|
|
|
selfNotInIds.addAll(otherInIds); |
|
|
@ -882,6 +894,7 @@ public class GoodsAccreditServiceImpl extends ServiceImpl<GoodsAccreditMapper,Go |
|
|
|
&&cateNotInIds.size()==1){ |
|
|
|
return null; |
|
|
|
} |
|
|
|
//返回包含商品ID、SPU ID和类别ID的DTO对象
|
|
|
|
return new GoodsAccrIdsDto(skuIds,spuIds,cateIds,skuNotInIds,spuNotInIds,cateNotInIds); |
|
|
|
} |
|
|
|
|
|
|
|