Browse Source

feat(goods): 添加商品分类规则默认设置功能

muti_db
Yen 8 months ago
parent
commit
b3543b4ec5
  1. 5
      src/main/java/com/qs/serve/modules/goods/controller/GoodsCategoryRuleController.java
  2. 3
      src/main/java/com/qs/serve/modules/goods/entity/bo/GoodsCategoryRuleBo.java
  3. 49
      src/main/java/com/qs/serve/modules/goods/service/impl/GoodsAccreditServiceImpl.java
  4. 4
      src/main/java/com/qs/serve/modules/goods/service/impl/GoodsCategoryRuleServiceImpl.java
  5. 12
      src/main/java/com/qs/serve/modules/oms/service/impl/OmsOrderServiceImpl.java

5
src/main/java/com/qs/serve/modules/goods/controller/GoodsCategoryRuleController.java

@ -112,12 +112,11 @@ public class GoodsCategoryRuleController {
/**
* 设置默认
* @param id
* @return
*/
@GetMapping("/getDefaultRule/{id}")
@GetMapping("/getDefaultRule")
@SysLog(module = SystemModule.GOODS, title = "品牌规则", biz = BizType.INSERT)
public R<GoodsCategoryRule> getDefaultRule(@PathVariable("id") String id){
public R<GoodsCategoryRule> getDefaultRule(){
GoodsCategoryRule rule = goodsCategoryRuleService.getOne(new LambdaQueryWrapper<GoodsCategoryRule>().
eq(GoodsCategoryRule::getDefaultFlag,1),false);
return R.ok(rule);

3
src/main/java/com/qs/serve/modules/goods/entity/bo/GoodsCategoryRuleBo.java

@ -27,6 +27,9 @@ public class GoodsCategoryRuleBo {
/** 排除品牌id */
private String[] ignoreBrandIds;
/** 是否默认规则 */
private Integer defaultFlag;
/** 启用状态 */
private Integer enableFlag;

49
src/main/java/com/qs/serve/modules/goods/service/impl/GoodsAccreditServiceImpl.java

@ -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);
}

4
src/main/java/com/qs/serve/modules/goods/service/impl/GoodsCategoryRuleServiceImpl.java

@ -78,6 +78,10 @@ public class GoodsCategoryRuleServiceImpl extends ServiceImpl<GoodsCategoryRuleM
}else {
this.save(entity);
}
// 设置默认
if(param.getDefaultFlag()!=null&&param.getDefaultFlag().equals(1)){
this.doSetDefault(entity.getId().toString());
}
return entity;
}
}

12
src/main/java/com/qs/serve/modules/oms/service/impl/OmsOrderServiceImpl.java

@ -1066,18 +1066,6 @@ public class OmsOrderServiceImpl extends ServiceImpl<OmsOrderMapper, OmsOrder> i
this.handleCategoryRule(categoryRule, orderItemList);
String brands = Arrays.stream(categoryRule.getBrandNames()).collect(Collectors.joining(","));
//List<Long> spuIds = orderItemList.stream().map(OmsOrderItem::getSpuId).collect(Collectors.toList());
//更新设置sku后的信息
//omsOrderItemService.updateBatchById(orderItemList);
//直接调用U8接口生成
//SysUser sysUser = sysUserService.getById(userId);
//SysDept dept = sysDeptService.getById(sysUser.getDeptId());
//this.toU8Api(omsOrder, sysUser, dept, orderItemList);
//客户校验
BmsSupplierAddress supplierAddress = bmsSupplierAddressService.getById(omsOrder.getSupplierAddrId());
BmsSupplier supplier = bmsSupplierMapper.selectById(omsOrder.getSupplierId());

Loading…
Cancel
Save