...
|
...
|
@@ -11,6 +11,7 @@ import com.yoho.ufo.coupon.model.CouponAndProductConditions; |
|
|
import com.yoho.ufo.coupon.model.ProductCondition;
|
|
|
import com.yoho.ufo.coupon.model.ProductLimitType;
|
|
|
import com.yoho.ufo.coupon.service.ICouponService;
|
|
|
import com.yoho.ufo.coupon.service.ProductServiceCaller;
|
|
|
import com.yoho.ufo.coupon.service.builder.CouponAndProductConditionsBuilder;
|
|
|
import com.yoho.ufo.coupon.util.Strings;
|
|
|
import com.yoho.ufo.dal.CouponDisplayMapper;
|
...
|
...
|
@@ -85,6 +86,9 @@ public class CouponServiceImpl implements ICouponService,IBusinessExportService{ |
|
|
@Autowired
|
|
|
private ServiceCaller serviceCaller;
|
|
|
|
|
|
@Autowired
|
|
|
private ProductServiceCaller productServiceCaller;
|
|
|
|
|
|
@Override
|
|
|
public Class getDataClass() {
|
|
|
return (Class)request.getAttribute("exportClassType");
|
...
|
...
|
@@ -371,13 +375,7 @@ public class CouponServiceImpl implements ICouponService,IBusinessExportService{ |
|
|
}
|
|
|
}
|
|
|
|
|
|
ProductLimitType limitType = ProductLimitType.find(coupon.getProductLimitType());
|
|
|
if (limitType == ProductLimitType.Specific_Product) {
|
|
|
coupon.setProductLimitValue(Strings.listToDelimitedString(findProductIds(limitType.getLimitType(), productLimitList)));
|
|
|
} else if (limitType == ProductLimitType.Exclude_Product) {
|
|
|
//兼容老版本,coupon.productLimitType == Exclude_Product,设置为 ALL
|
|
|
coupon.setProductLimitType(ProductLimitType.ALL.getLimitType());
|
|
|
}
|
|
|
wrapProductLimitTypeAndValueIfNeed(coupon,productLimitList);
|
|
|
|
|
|
JSONObject jsonObject = new JSONObject();
|
|
|
jsonObject.put("coupon",coupon);
|
...
|
...
|
@@ -388,6 +386,30 @@ public class CouponServiceImpl implements ICouponService,IBusinessExportService{ |
|
|
return new ApiResponse.ApiResponseBuilder().data(jsonObject).build();
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 品类,系列 比较特殊,便于编辑定位,需要查询父id
|
|
|
*
|
|
|
* @param coupon
|
|
|
* @param productLimitList
|
|
|
*/
|
|
|
private void wrapProductLimitTypeAndValueIfNeed(Coupon coupon, List<CouponProductLimit> productLimitList) {
|
|
|
ProductLimitType limitType = ProductLimitType.find(coupon.getProductLimitType());
|
|
|
if (limitType == ProductLimitType.Specific_Product) {
|
|
|
coupon.setProductLimitValue(Strings.listToDelimitedString(findProductIds(limitType.getLimitType(), productLimitList)));
|
|
|
} else if (limitType == ProductLimitType.Exclude_Product) {
|
|
|
//兼容老版本,coupon.productLimitType == Exclude_Product,设置为 ALL
|
|
|
coupon.setProductLimitType(ProductLimitType.ALL.getLimitType());
|
|
|
} else if (limitType == ProductLimitType.Specific_Category) {
|
|
|
List<Integer> subCategoryIds = Strings.split(coupon.getProductLimitValue());
|
|
|
//返回全路径
|
|
|
coupon.setProductLimitValue(Strings.listToDelimitedString(productServiceCaller.getFullCategoryIdsBySubIds(subCategoryIds)));
|
|
|
} else if (limitType == ProductLimitType.Specific_Series) {
|
|
|
List<Integer> subSeriesIds = Strings.split(coupon.getProductLimitValue());
|
|
|
//返回全路径
|
|
|
coupon.setProductLimitValue(Strings.listToDelimitedString(productServiceCaller.getFullSeriesIdsBySubIds(subSeriesIds)));
|
|
|
}
|
|
|
}
|
|
|
|
|
|
private List<Integer> findProductIds(int limitType, List<CouponProductLimit> productLimitList) {
|
|
|
if (CollectionUtils.isNotEmpty(productLimitList)) {
|
|
|
return productLimitList.stream().filter(item -> item.getLimitType() == limitType).map(item -> item.getProductId()).collect(Collectors.toList());
|
...
|
...
|
|