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 com.ycwl.basic.pricing.entity.*;
|
||||||
|
|
||||||
|
import java.math.BigDecimal;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 价格管理服务接口(用于配置管理,手动处理时间字段)
|
* 价格管理服务接口(用于配置管理,手动处理时间字段)
|
||||||
*/
|
*/
|
||||||
@@ -90,4 +92,21 @@ public interface IPricingManagementService {
|
|||||||
* 删除一口价配置
|
* 删除一口价配置
|
||||||
*/
|
*/
|
||||||
boolean deleteBundleConfig(Long id);
|
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.stereotype.Service;
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
|
||||||
|
import java.math.BigDecimal;
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -165,4 +166,49 @@ public class PricingManagementServiceImpl implements IPricingManagementService {
|
|||||||
log.info("删除一口价配置: id={}", id);
|
log.info("删除一口价配置: id={}", id);
|
||||||
return bundleConfigMapper.deleteById(id) > 0;
|
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.entity.TemplateEntity;
|
||||||
import com.ycwl.basic.model.pc.template.req.TemplateReqQuery;
|
import com.ycwl.basic.model.pc.template.req.TemplateReqQuery;
|
||||||
import com.ycwl.basic.model.pc.template.resp.TemplateRespVO;
|
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.service.pc.TemplateService;
|
||||||
import com.ycwl.basic.repository.TemplateRepository;
|
import com.ycwl.basic.repository.TemplateRepository;
|
||||||
import com.ycwl.basic.utils.ApiResponse;
|
import com.ycwl.basic.utils.ApiResponse;
|
||||||
@@ -30,6 +32,8 @@ public class TemplateServiceImpl implements TemplateService {
|
|||||||
private TemplateMapper templateMapper;
|
private TemplateMapper templateMapper;
|
||||||
@Autowired
|
@Autowired
|
||||||
private TemplateRepository templateRepository;
|
private TemplateRepository templateRepository;
|
||||||
|
@Autowired
|
||||||
|
private IPricingManagementService pricingManagementService;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public ApiResponse<PageInfo<TemplateRespVO>> pageQuery(TemplateReqQuery templateReqQuery) {
|
public ApiResponse<PageInfo<TemplateRespVO>> pageQuery(TemplateReqQuery templateReqQuery) {
|
||||||
@@ -75,6 +79,7 @@ public class TemplateServiceImpl implements TemplateService {
|
|||||||
templateMapper.add(item);
|
templateMapper.add(item);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
pricingManagementService.quickSetupProductPrice(ProductType.VLOG_VIDEO.getCode(), template.getId().toString(), template.getScenicId().toString(), template.getName(), template.getPrice(), template.getSlashPrice(), "个");
|
||||||
if (i > 0) {
|
if (i > 0) {
|
||||||
return ApiResponse.success(true);
|
return ApiResponse.success(true);
|
||||||
}else {
|
}else {
|
||||||
@@ -112,6 +117,7 @@ public class TemplateServiceImpl implements TemplateService {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
templateRepository.clearTemplateCache(template.getId());
|
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) {
|
if (i > 0) {
|
||||||
return ApiResponse.success(true);
|
return ApiResponse.success(true);
|
||||||
}else {
|
}else {
|
||||||
|
Reference in New Issue
Block a user