商品模块代码提交

This commit is contained in:
Tankaikai
2025-03-04 09:33:02 +08:00
parent 6e2e73fdcd
commit 23f4e36bda
8 changed files with 190 additions and 10 deletions

View File

@@ -1,15 +1,18 @@
package com.czg.controller.admin;
import com.czg.account.dto.points.OrderDeductionPointsDTO;
import com.czg.account.entity.MemberPoints;
import com.czg.account.param.ConsumeAwardPointsParam;
import com.czg.account.param.MemberPointsParam;
import com.czg.account.param.PayedDeductPointsParam;
import com.czg.account.service.MemberPointsService;
import com.czg.log.annotation.OperationLog;
import com.czg.resp.CzgResult;
import com.mybatisflex.core.paginate.Page;
import lombok.AllArgsConstructor;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.bind.annotation.*;
import java.math.BigDecimal;
/**
@@ -36,4 +39,65 @@ public class MemberPointsController {
return CzgResult.success(page);
}
/**
* 001-会员积分账户信息
*/
@GetMapping("user-points")
public CzgResult<MemberPoints> getMemberPoints(@RequestParam Long userId) {
MemberPoints data = memberPointsService.getMemberPoints(userId);
return CzgResult.success(data);
}
/**
* 002-获取订单可用积分及抵扣金额(支付页面使用)
*
* @param userId 用户id
* @param orderAmount 订单金额
*/
@GetMapping("calc-usable-points")
public CzgResult<OrderDeductionPointsDTO> getMemberUsablePoints(@RequestParam Long userId, @RequestParam BigDecimal orderAmount) {
OrderDeductionPointsDTO usablePoints = memberPointsService.getMemberUsablePoints(userId, orderAmount);
return CzgResult.success(usablePoints);
}
/**
* 004-根据抵扣金额计算所需积分
*
* @param userId 用户id
* @param orderAmount 订单金额
* @param deductionAmount 抵扣金额
*/
@GetMapping("calc-used-points")
public CzgResult<Integer> calcUsedPoints(@RequestParam Long userId, @RequestParam BigDecimal orderAmount, @RequestParam BigDecimal deductionAmount) {
int points = memberPointsService.calcUsedPoints(userId, orderAmount, deductionAmount);
return CzgResult.success(points);
}
/**
* 003-根据积分计算可抵扣金额
*/
@GetMapping("calc-deduction-amount")
public CzgResult<BigDecimal> calcDeductionAmount(@RequestParam Long userId, @RequestParam BigDecimal orderAmount, @RequestParam Integer points) {
BigDecimal deductionAmount = memberPointsService.calcDeductionAmount(userId, orderAmount, points);
return CzgResult.success(deductionAmount);
}
/**
* 005-支付完成扣减积分(支付成功回调中使用)
*/
@PostMapping("payed-deduct-points")
public CzgResult<Boolean> deductPoints(@RequestBody PayedDeductPointsParam param) {
boolean ret = memberPointsService.deductPoints(param.getUserId(), param.getPoints(), param.getContent(), param.getOrderId());
return CzgResult.success(ret);
}
/**
* 006-消费赠送积分(支付成功回调中使用)
*/
@PostMapping("consume-award-points")
public CzgResult<Void> consumeAwardPoints(@RequestBody ConsumeAwardPointsParam param) {
memberPointsService.consumeAwardPoints(param.getUserId(), param.getOrderId());
return CzgResult.success();
}
}

View File

@@ -62,10 +62,13 @@ public class UMemberPointsController {
/**
* 003-根据积分计算可抵扣金额
* @param userId 用户id
* @param orderAmount 订单金额
* @param points 使用积分
*/
@GetMapping("calc-deduction-amount")
public CzgResult<BigDecimal> calcDeductionAmount(@RequestParam Long memberId, @RequestParam BigDecimal orderAmount, @RequestParam Integer points) {
BigDecimal deductionAmount = memberPointsService.calcDeductionAmount(memberId, orderAmount, points);
public CzgResult<BigDecimal> calcDeductionAmount(@RequestParam Long userId, @RequestParam BigDecimal orderAmount, @RequestParam Integer points) {
BigDecimal deductionAmount = memberPointsService.calcDeductionAmount(userId, orderAmount, points);
return CzgResult.success(deductionAmount);
}

View File

@@ -2,6 +2,8 @@ package com.czg.mq;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.exceptions.ExceptionUtil;
import com.alibaba.fastjson2.JSON;
import com.alibaba.fastjson2.JSONObject;
import com.czg.config.RabbitConstants;
import com.czg.order.entity.MqLog;
import com.czg.order.service.MqLogService;
@@ -58,4 +60,24 @@ public class OrderMqListener {
mqLogService.save(mqLog);
}
}
@RabbitListener(queues = {"${spring.profiles.active}-" + RabbitConstants.Queue.ORDER_REFUND_QUEUE})
public void orderStockReturn(String jsonObjStr) {
long startTime = DateUtil.date().getTime();
log.info("接收到订单退款返还库存消息:{}", jsonObjStr);
MqLog mqLog = new MqLog().setQueue(RabbitConstants.Queue.ORDER_REFUND_QUEUE).setMsg(jsonObjStr).setType("orderStockReturn").setPlat("java.order").setCreateTime(DateUtil.date().toLocalDateTime());
try {
JSONObject data = JSON.parseObject(jsonObjStr);
orderInfoRpcService.orderRefundCallback(data);
} catch (Exception e) {
log.error("订单退款返还库存失败", e);
String errorInfo = ExceptionUtil.stacktraceToString(e);
mqLog.setErrInfo(errorInfo);
mqLog.setDuration(DateUtil.date().getTime() - startTime);
mqLog.setFailTime(DateUtil.date().toLocalDateTime());
mqLogService.save(mqLog);
}
}
}