1、优化产品属性、规格唯一性

2、修复佣金获取数值计算不争取的问题
This commit is contained in:
张乐
2020-08-24 15:25:23 +08:00
parent fabfc348ba
commit b9b49f6e85
6 changed files with 65 additions and 28 deletions

View File

@@ -162,8 +162,7 @@ public class ProductServiceImpl implements ProductService {
}
storeInfo.setUserLike(false);
storeInfo.setUserCollect(false);
productDetailResponse.setPriceName("0");
productDetailResponse.setStoreInfo(storeInfo);
productDetailResponse.setStoreInfo(storeInfo);
// 根据制式设置attr属性
setSkuAttr(id, productDetailResponse, productResponse);
@@ -310,28 +309,28 @@ public class ProductServiceImpl implements ProductService {
BigDecimal maxPrice = null;
BigDecimal minPrice = null;
// 获取佣金比例区间 todo 这里的对象更换为map后需要重新计算
// if(storeProductResponse.getIsSub()){ // 是否单独分拥
// maxPrice = storeProductResponse.getAttrValue().stream().map(e->e.getBrokerage()).reduce(BigDecimal.ZERO,BigDecimal::max);
// minPrice = storeProductResponse.getAttrValue().stream().map(e->e.getBrokerage()).reduce(BigDecimal.ZERO,BigDecimal::min);
//
if(storeProductResponse.getIsSub()){ // 是否单独分拥
maxPrice = storeProductResponse.getAttrValue().stream().map(e->e.getBrokerage()).reduce(BigDecimal.ZERO,BigDecimal::max);
minPrice = storeProductResponse.getAttrValue().stream().map(e->e.getBrokerage()).reduce(BigDecimal.ZERO,BigDecimal::min);
// storeProductResponse.getAttrValues().
// }else{
// BigDecimal _maxPrice = storeProductResponse.getAttrValue().stream().map(e->e.getBrokerage()).reduce(BigDecimal.ZERO,BigDecimal::max);
// BigDecimal _minPrice = storeProductResponse.getAttrValue().stream().map(e->e.getBrokerage()).reduce(BigDecimal.ZERO,BigDecimal::min);
// maxPrice = BrokerRatio.multiply(_maxPrice);
// minPrice = BrokerRatio.multiply((_minPrice));
// }
// if(minPrice.compareTo(BigDecimal.ZERO) == 0 && maxPrice.compareTo(BigDecimal.ZERO) == 0){
// priceName = "0";
// }else if(minPrice.compareTo(BigDecimal.ZERO) == 0 && maxPrice.compareTo(BigDecimal.ZERO) == 1){
// priceName = maxPrice.toString();
// }else if(minPrice.compareTo(BigDecimal.ZERO) == 1 && maxPrice.compareTo(BigDecimal.ZERO) == 1){
// priceName = minPrice.toString();
// }else if(minPrice.compareTo(maxPrice) == 0 && minPrice.compareTo(BigDecimal.ZERO) == 0){
// priceName = maxPrice.toString();
// }else{
// priceName = minPrice.toString() + "~" + maxPrice.toString();
// }
}else{
BigDecimal _maxPrice = storeProductResponse.getAttrValue().stream().map(e->e.getBrokerage()).reduce(BigDecimal.ZERO,BigDecimal::max);
BigDecimal _minPrice = storeProductResponse.getAttrValue().stream().map(e->e.getBrokerage()).reduce(BigDecimal.ZERO,BigDecimal::min);
maxPrice = BrokerRatio.multiply(_maxPrice);
minPrice = BrokerRatio.multiply((_minPrice));
}
if(minPrice.compareTo(BigDecimal.ZERO) == 0 && maxPrice.compareTo(BigDecimal.ZERO) == 0){
priceName = "0";
}else if(minPrice.compareTo(BigDecimal.ZERO) == 0 && maxPrice.compareTo(BigDecimal.ZERO) == 1){
priceName = maxPrice.toString();
}else if(minPrice.compareTo(BigDecimal.ZERO) == 1 && maxPrice.compareTo(BigDecimal.ZERO) == 1){
priceName = minPrice.toString();
}else if(minPrice.compareTo(maxPrice) == 0 && minPrice.compareTo(BigDecimal.ZERO) == 0){
priceName = maxPrice.toString();
}else{
priceName = minPrice.toString() + "~" + maxPrice.toString();
}
return priceName;
}
}

View File

@@ -55,9 +55,7 @@ public class StoreProductRuleController {
@ApiOperation(value = "新增")
@RequestMapping(value = "/save", method = RequestMethod.POST)
public CommonResult<String> save(@RequestBody @Validated StoreProductRuleRequest storeProductRuleRequest){
StoreProductRule storeProductRule = new StoreProductRule();
BeanUtils.copyProperties(storeProductRuleRequest, storeProductRule);
if(storeProductRuleService.save(storeProductRule)){
if(storeProductRuleService.save(storeProductRuleRequest)){
return CommonResult.success();
}else{
return CommonResult.failed();

View File

@@ -3,6 +3,7 @@ package com.zbkj.crmeb.store.service;
import com.common.PageParamRequest;
import com.baomidou.mybatisplus.extension.service.IService;
import com.zbkj.crmeb.store.model.StoreProductRule;
import com.zbkj.crmeb.store.request.StoreProductRuleRequest;
import com.zbkj.crmeb.store.request.StoreProductRuleSearchRequest;
import java.util.List;
@@ -15,4 +16,11 @@ import java.util.List;
public interface StoreProductRuleService extends IService<StoreProductRule> {
List<StoreProductRule> getList(StoreProductRuleSearchRequest request, PageParamRequest pageParamRequest);
/**
* 新增商品规格
* @param storeProductRuleRequest 规格参数
* @return 新增结果
*/
boolean save(StoreProductRuleRequest storeProductRuleRequest);
}

View File

@@ -132,7 +132,7 @@ public class OrderTaskServiceImpl implements OrderTaskService {
}
/**
* 用户完成订单
* 用户已收货
* @author Mr.Zhang
* @since 2020-07-09
*/

View File

@@ -1,18 +1,22 @@
package com.zbkj.crmeb.store.service.impl;
import com.common.PageParamRequest;
import com.exception.CrmebException;
import com.github.pagehelper.PageHelper;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.zbkj.crmeb.store.dao.StoreProductRuleDao;
import com.zbkj.crmeb.store.model.StoreProductRule;
import com.zbkj.crmeb.store.request.StoreProductRuleRequest;
import com.zbkj.crmeb.store.request.StoreProductRuleSearchRequest;
import com.zbkj.crmeb.store.service.StoreProductRuleService;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.List;
/**
@@ -45,8 +49,37 @@ public class StoreProductRuleServiceImpl extends ServiceImpl<StoreProductRuleDao
lambdaQueryWrapper.like(StoreProductRule::getRuleName, request.getKeywords());
lambdaQueryWrapper.or().like(StoreProductRule::getRuleValue, request.getKeywords());
}
lambdaQueryWrapper.orderByDesc(StoreProductRule::getId);
return dao.selectList(lambdaQueryWrapper);
}
/**
* 新增商品规格
* @param storeProductRuleRequest 规格参数
* @return 新增结果
*/
@Override
public boolean save(StoreProductRuleRequest storeProductRuleRequest) {
if(getListByRuleName(storeProductRuleRequest.getRuleName()).size() > 0){
throw new CrmebException("此规格值已经存在");
}
StoreProductRule storeProductRule = new StoreProductRule();
BeanUtils.copyProperties(storeProductRuleRequest, storeProductRule);
return save(storeProductRule);
}
/**
* 根据规格名称查询同名规格
* @param ruleName 规格名称
* @return 查询到的数据
*/
private List<StoreProductRule> getListByRuleName(String ruleName){
LambdaQueryWrapper<StoreProductRule> lambdaQueryWrapper = new LambdaQueryWrapper<>();
if(StringUtils.isBlank(ruleName)){
return new ArrayList<>();
}
lambdaQueryWrapper.eq(StoreProductRule::getRuleName, ruleName);
return dao.selectList(lambdaQueryWrapper);
}
}

View File

@@ -121,7 +121,6 @@ public class OrderUtils {
// 组装数据给前端使用
public OrderAgainVo tidyOrder(StoreOrder storeOrder, boolean detail, boolean isPic){
// User currentUser = userService.getInfo();
OrderAgainVo orderAgainVoResult = new OrderAgainVo();
orderAgainVoResult.setStoreOrder(storeOrder);
List<StoreOrderInfoVo> existOrderList = null;