You've already forked FrameTour-BE
feat(pricing): 添加快速设置商品价格功能并集成到模板服务
- 在 PricingManagementServiceImpl 中实现 quickSetupProductPrice 方法,用于快速设置商品价格 - 在 IPricingManagementService 接口中添加 quickSetupProductPrice 方法的声明 - 在 TemplateServiceImpl 中调用 quickSetupProductPrice 方法,为模板设置价格
This commit is contained in:
@@ -2,6 +2,8 @@ package com.ycwl.basic.pricing.service;
|
||||
|
||||
import com.ycwl.basic.pricing.entity.*;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
|
||||
/**
|
||||
* 价格管理服务接口(用于配置管理,手动处理时间字段)
|
||||
*/
|
||||
@@ -90,4 +92,21 @@ public interface IPricingManagementService {
|
||||
* 删除一口价配置
|
||||
*/
|
||||
boolean deleteBundleConfig(Long id);
|
||||
|
||||
// ==================== 快速设置价格 ====================
|
||||
|
||||
/**
|
||||
* 快速设置商品基础价格(内部方法,如果存在则更新,不存在则新增)
|
||||
* @param productType 商品类型
|
||||
* @param productId 商品ID
|
||||
* @param scenicId 景区ID
|
||||
* @param productName 商品名称
|
||||
* @param basePrice 基础价格
|
||||
* @param originalPrice 原价(可选,可为null)
|
||||
* @param unit 价格单位(可选,可为null,默认为"元")
|
||||
* @return 配置的ID
|
||||
*/
|
||||
Long quickSetupProductPrice(String productType, String productId, String scenicId,
|
||||
String productName, BigDecimal basePrice,
|
||||
BigDecimal originalPrice, String unit);
|
||||
}
|
@@ -8,6 +8,7 @@ import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.Date;
|
||||
|
||||
/**
|
||||
@@ -165,4 +166,49 @@ public class PricingManagementServiceImpl implements IPricingManagementService {
|
||||
log.info("删除一口价配置: id={}", id);
|
||||
return bundleConfigMapper.deleteById(id) > 0;
|
||||
}
|
||||
|
||||
// ==================== 快速设置价格 ====================
|
||||
|
||||
@Override
|
||||
@Transactional
|
||||
public Long quickSetupProductPrice(String productType, String productId, String scenicId,
|
||||
String productName, BigDecimal basePrice,
|
||||
BigDecimal originalPrice, String unit) {
|
||||
log.info("快速设置商品价格: productType={}, productId={}, scenicId={}, basePrice={}",
|
||||
productType, productId, scenicId, basePrice);
|
||||
|
||||
// 查询是否已存在配置
|
||||
PriceProductConfig existingConfig = productConfigMapper.selectByProductTypeAndId(productType, productId);
|
||||
|
||||
if (existingConfig != null) {
|
||||
// 存在则更新
|
||||
existingConfig.setScenicId(scenicId);
|
||||
existingConfig.setProductName(productName);
|
||||
existingConfig.setBasePrice(basePrice);
|
||||
existingConfig.setOriginalPrice(originalPrice);
|
||||
existingConfig.setUnit(unit != null ? unit : "元");
|
||||
existingConfig.setUpdateTime(new Date());
|
||||
|
||||
productConfigMapper.updateProductConfig(existingConfig);
|
||||
log.info("更新商品价格配置: id={}", existingConfig.getId());
|
||||
return existingConfig.getId();
|
||||
} else {
|
||||
// 不存在则新增
|
||||
PriceProductConfig newConfig = new PriceProductConfig();
|
||||
newConfig.setProductType(productType);
|
||||
newConfig.setProductId(productId);
|
||||
newConfig.setScenicId(scenicId);
|
||||
newConfig.setProductName(productName);
|
||||
newConfig.setBasePrice(basePrice);
|
||||
newConfig.setOriginalPrice(originalPrice);
|
||||
newConfig.setUnit(unit != null ? unit : "元");
|
||||
newConfig.setIsActive(true);
|
||||
newConfig.setCreateTime(new Date());
|
||||
newConfig.setUpdateTime(new Date());
|
||||
|
||||
productConfigMapper.insertProductConfig(newConfig);
|
||||
log.info("创建新商品价格配置: id={}", newConfig.getId());
|
||||
return newConfig.getId();
|
||||
}
|
||||
}
|
||||
}
|
@@ -7,6 +7,8 @@ import com.ycwl.basic.model.pc.template.entity.TemplateConfigEntity;
|
||||
import com.ycwl.basic.model.pc.template.entity.TemplateEntity;
|
||||
import com.ycwl.basic.model.pc.template.req.TemplateReqQuery;
|
||||
import com.ycwl.basic.model.pc.template.resp.TemplateRespVO;
|
||||
import com.ycwl.basic.pricing.enums.ProductType;
|
||||
import com.ycwl.basic.pricing.service.IPricingManagementService;
|
||||
import com.ycwl.basic.service.pc.TemplateService;
|
||||
import com.ycwl.basic.repository.TemplateRepository;
|
||||
import com.ycwl.basic.utils.ApiResponse;
|
||||
@@ -30,6 +32,8 @@ public class TemplateServiceImpl implements TemplateService {
|
||||
private TemplateMapper templateMapper;
|
||||
@Autowired
|
||||
private TemplateRepository templateRepository;
|
||||
@Autowired
|
||||
private IPricingManagementService pricingManagementService;
|
||||
|
||||
@Override
|
||||
public ApiResponse<PageInfo<TemplateRespVO>> pageQuery(TemplateReqQuery templateReqQuery) {
|
||||
@@ -75,6 +79,7 @@ public class TemplateServiceImpl implements TemplateService {
|
||||
templateMapper.add(item);
|
||||
});
|
||||
}
|
||||
pricingManagementService.quickSetupProductPrice(ProductType.VLOG_VIDEO.getCode(), template.getId().toString(), template.getScenicId().toString(), template.getName(), template.getPrice(), template.getSlashPrice(), "个");
|
||||
if (i > 0) {
|
||||
return ApiResponse.success(true);
|
||||
}else {
|
||||
@@ -112,6 +117,7 @@ public class TemplateServiceImpl implements TemplateService {
|
||||
});
|
||||
}
|
||||
templateRepository.clearTemplateCache(template.getId());
|
||||
pricingManagementService.quickSetupProductPrice(ProductType.VLOG_VIDEO.getCode(), template.getId().toString(), template.getScenicId().toString(), template.getName(), template.getPrice(), template.getSlashPrice(), "个");
|
||||
if (i > 0) {
|
||||
return ApiResponse.success(true);
|
||||
}else {
|
||||
|
Reference in New Issue
Block a user