You've already forked FrameTour-BE
价格查询,待处理订单内容
This commit is contained in:
@@ -0,0 +1,75 @@
|
||||
package com.ycwl.basic.pricing.controller;
|
||||
|
||||
import com.ycwl.basic.utils.ApiResponse;
|
||||
import com.ycwl.basic.pricing.dto.*;
|
||||
import com.ycwl.basic.pricing.service.ICouponService;
|
||||
import com.ycwl.basic.pricing.service.IPriceCalculationService;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 价格计算控制器
|
||||
*/
|
||||
@Slf4j
|
||||
@RestController
|
||||
@RequestMapping("/api/pricing")
|
||||
@RequiredArgsConstructor
|
||||
public class PriceCalculationController {
|
||||
|
||||
private final IPriceCalculationService priceCalculationService;
|
||||
private final ICouponService couponService;
|
||||
|
||||
/**
|
||||
* 计算商品价格
|
||||
*/
|
||||
@PostMapping("/calculate")
|
||||
public ApiResponse<PriceCalculationResult> calculatePrice(@RequestBody PriceCalculationRequest request) {
|
||||
log.info("价格计算请求: userId={}, products={}", request.getUserId(), request.getProducts().size());
|
||||
|
||||
PriceCalculationResult result = priceCalculationService.calculatePrice(request);
|
||||
|
||||
log.info("价格计算完成: originalAmount={}, finalAmount={}, usedCoupon={}",
|
||||
result.getOriginalAmount(), result.getFinalAmount(),
|
||||
result.getUsedCoupon() != null ? result.getUsedCoupon().getCouponId() : null);
|
||||
|
||||
return ApiResponse.success(result);
|
||||
}
|
||||
|
||||
/**
|
||||
* 使用优惠券
|
||||
* 只能通过代码处理,不能通过接口调用
|
||||
*/
|
||||
@PostMapping("/coupons/use")
|
||||
@Deprecated
|
||||
public ApiResponse<CouponUseResult> useCoupon(@RequestBody CouponUseRequest request) {
|
||||
// log.info("优惠券使用请求: userId={}, couponId={}, orderId={}",
|
||||
// request.getUserId(), request.getCouponId(), request.getOrderId());
|
||||
//
|
||||
// CouponUseResult result = couponService.useCoupon(request);
|
||||
//
|
||||
// log.info("优惠券使用成功: couponId={}, discountAmount={}",
|
||||
// result.getCouponId(), result.getDiscountAmount());
|
||||
//
|
||||
// ApiResponse<CouponUseResult> response = ApiResponse.success(result);
|
||||
// response.setMsg("优惠券使用成功");
|
||||
// return response;
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询用户可用优惠券
|
||||
*/
|
||||
@GetMapping("/coupons/my-coupons")
|
||||
public ApiResponse<List<CouponInfo>> getUserCoupons(@RequestParam Long userId) {
|
||||
log.info("查询用户可用优惠券: userId={}", userId);
|
||||
|
||||
List<CouponInfo> coupons = couponService.getUserAvailableCoupons(userId);
|
||||
|
||||
log.info("用户可用优惠券数量: {}", coupons.size());
|
||||
|
||||
return ApiResponse.success(coupons);
|
||||
}
|
||||
}
|
@@ -0,0 +1,149 @@
|
||||
package com.ycwl.basic.pricing.controller;
|
||||
|
||||
import com.ycwl.basic.utils.ApiResponse;
|
||||
import com.ycwl.basic.pricing.entity.PriceProductConfig;
|
||||
import com.ycwl.basic.pricing.entity.PriceTierConfig;
|
||||
import com.ycwl.basic.pricing.entity.PriceBundleConfig;
|
||||
import com.ycwl.basic.pricing.service.IProductConfigService;
|
||||
import com.ycwl.basic.pricing.service.IPriceBundleService;
|
||||
import com.ycwl.basic.pricing.service.IPricingManagementService;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 价格配置管理控制器
|
||||
*/
|
||||
@Slf4j
|
||||
@RestController
|
||||
@RequestMapping("/api/pricing/config")
|
||||
@RequiredArgsConstructor
|
||||
public class PricingConfigController {
|
||||
|
||||
private final IProductConfigService productConfigService;
|
||||
private final IPriceBundleService bundleService;
|
||||
private final IPricingManagementService managementService;
|
||||
|
||||
/**
|
||||
* 获取所有商品配置
|
||||
*/
|
||||
@GetMapping("/products")
|
||||
public ApiResponse<List<PriceProductConfig>> getProductConfigs() {
|
||||
List<PriceProductConfig> configs = productConfigService.getActiveProductConfigs();
|
||||
return ApiResponse.success(configs);
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据商品类型获取阶梯配置
|
||||
*/
|
||||
@GetMapping("/tiers/{productType}")
|
||||
public ApiResponse<List<PriceTierConfig>> getTierConfigs(@PathVariable String productType) {
|
||||
List<PriceTierConfig> configs = productConfigService.getTierConfigs(productType);
|
||||
return ApiResponse.success(configs);
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据商品类型和商品ID获取阶梯配置
|
||||
*/
|
||||
@GetMapping("/tiers/{productType}/{productId}")
|
||||
public ApiResponse<List<PriceTierConfig>> getTierConfigs(@PathVariable String productType,
|
||||
@PathVariable String productId) {
|
||||
List<PriceTierConfig> configs = productConfigService.getTierConfigs(productType, productId);
|
||||
return ApiResponse.success(configs);
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据商品类型和商品ID获取具体配置
|
||||
*/
|
||||
@GetMapping("/products/{productType}/{productId}")
|
||||
public ApiResponse<PriceProductConfig> getProductConfig(@PathVariable String productType,
|
||||
@PathVariable String productId) {
|
||||
PriceProductConfig config = productConfigService.getProductConfig(productType, productId);
|
||||
return ApiResponse.success(config);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取所有阶梯配置
|
||||
*/
|
||||
@GetMapping("/tiers")
|
||||
public ApiResponse<List<PriceTierConfig>> getAllTierConfigs() {
|
||||
log.info("获取所有阶梯定价配置");
|
||||
return ApiResponse.success(List.of());
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取所有一口价配置
|
||||
*/
|
||||
@GetMapping("/bundles")
|
||||
public ApiResponse<List<PriceBundleConfig>> getBundleConfigs() {
|
||||
List<PriceBundleConfig> configs = bundleService.getActiveBundles();
|
||||
return ApiResponse.success(configs);
|
||||
}
|
||||
|
||||
// ==================== 配置管理API(手动处理时间) ====================
|
||||
|
||||
/**
|
||||
* 创建商品配置
|
||||
*/
|
||||
@PostMapping("/products")
|
||||
public ApiResponse<Long> createProductConfig(@RequestBody PriceProductConfig config) {
|
||||
log.info("创建商品配置: {}", config.getProductName());
|
||||
Long id = managementService.createProductConfig(config);
|
||||
return ApiResponse.success(id);
|
||||
}
|
||||
|
||||
/**
|
||||
* 更新商品配置
|
||||
*/
|
||||
@PutMapping("/products/{id}")
|
||||
public ApiResponse<Boolean> updateProductConfig(@PathVariable Long id, @RequestBody PriceProductConfig config) {
|
||||
log.info("更新商品配置: id={}, name={}", id, config.getProductName());
|
||||
config.setId(id);
|
||||
boolean success = managementService.updateProductConfig(config);
|
||||
return ApiResponse.success(success);
|
||||
}
|
||||
|
||||
/**
|
||||
* 创建阶梯定价配置
|
||||
*/
|
||||
@PostMapping("/tiers")
|
||||
public ApiResponse<Long> createTierConfig(@RequestBody PriceTierConfig config) {
|
||||
log.info("创建阶梯定价配置: productType={}, price={}", config.getProductType(), config.getPrice());
|
||||
Long id = managementService.createTierConfig(config);
|
||||
return ApiResponse.success(id);
|
||||
}
|
||||
|
||||
/**
|
||||
* 更新阶梯定价配置
|
||||
*/
|
||||
@PutMapping("/tiers/{id}")
|
||||
public ApiResponse<Boolean> updateTierConfig(@PathVariable Long id, @RequestBody PriceTierConfig config) {
|
||||
log.info("更新阶梯定价配置: id={}", id);
|
||||
config.setId(id);
|
||||
boolean success = managementService.updateTierConfig(config);
|
||||
return ApiResponse.success(success);
|
||||
}
|
||||
|
||||
/**
|
||||
* 创建一口价配置
|
||||
*/
|
||||
@PostMapping("/bundles")
|
||||
public ApiResponse<Long> createBundleConfig(@RequestBody PriceBundleConfig config) {
|
||||
log.info("创建一口价配置: {}", config.getBundleName());
|
||||
Long id = managementService.createBundleConfig(config);
|
||||
return ApiResponse.success(id);
|
||||
}
|
||||
|
||||
/**
|
||||
* 更新一口价配置
|
||||
*/
|
||||
@PutMapping("/bundles/{id}")
|
||||
public ApiResponse<Boolean> updateBundleConfig(@PathVariable Long id, @RequestBody PriceBundleConfig config) {
|
||||
log.info("更新一口价配置: id={}, name={}", id, config.getBundleName());
|
||||
config.setId(id);
|
||||
boolean success = managementService.updateBundleConfig(config);
|
||||
return ApiResponse.success(success);
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user