diff --git a/yudao-module-mall/yudao-module-product-api/src/main/java/cn/iocoder/yudao/module/product/api/spu/dto/ProductSpuRespDTO.java b/yudao-module-mall/yudao-module-product-api/src/main/java/cn/iocoder/yudao/module/product/api/spu/dto/ProductSpuRespDTO.java
index cad6bfcb2..cd7a62eea 100644
--- a/yudao-module-mall/yudao-module-product-api/src/main/java/cn/iocoder/yudao/module/product/api/spu/dto/ProductSpuRespDTO.java
+++ b/yudao-module-mall/yudao-module-product-api/src/main/java/cn/iocoder/yudao/module/product/api/spu/dto/ProductSpuRespDTO.java
@@ -110,11 +110,6 @@ public class ProductSpuRespDTO {
 
     // ========== 物流相关字段 =========
 
-    /**
-     * 赠送积分
-     */
-    private Integer giveIntegral;
-
     /**
      * 物流配置模板编号
      *
@@ -122,6 +117,13 @@ public class ProductSpuRespDTO {
      */
     private Long deliveryTemplateId;
 
+    // ========== 营销相关字段 =========
+
+    /**
+     * 赠送积分
+     */
+    private Integer giveIntegral;
+
     // ========== 统计相关字段 =========
 
     /**
diff --git a/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/dal/dataobject/order/TradeOrderItemDO.java b/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/dal/dataobject/order/TradeOrderItemDO.java
index 4849aad0b..deb895eef 100644
--- a/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/dal/dataobject/order/TradeOrderItemDO.java
+++ b/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/dal/dataobject/order/TradeOrderItemDO.java
@@ -146,18 +146,20 @@ public class TradeOrderItemDO extends BaseDO {
     private Integer pointPrice;
     /**
      * 使用的积分
+     *
+     * 目的:用于后续取消或者售后订单时,需要归还赠送
      */
     private Integer usePoint;
     /**
      * 赠送的积分
+     *
+     * 目的:用于后续取消或者售后订单时,需要扣减赠送
      */
     private Integer givePoint;
     /**
      * VIP 减免金额,单位:分
      */
     private Integer vipPrice;
-    // TODO @芋艿:如果商品 vip 折扣时,到底是新增一个 vipPrice 记录优惠记录,还是 vipDiscountPrice,记录 vip 的优惠;还是直接使用 vipPrice;
-    // 目前 crmeb 的选择,单独一个 vipPrice 记录优惠价格;感觉不一定合理,可以在看看有赞的;
 
     // ========== 售后基本信息 ==========
 
diff --git a/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/service/order/TradeOrderUpdateServiceImpl.java b/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/service/order/TradeOrderUpdateServiceImpl.java
index b5eb0479b..8377fef15 100644
--- a/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/service/order/TradeOrderUpdateServiceImpl.java
+++ b/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/service/order/TradeOrderUpdateServiceImpl.java
@@ -348,7 +348,7 @@ public class TradeOrderUpdateServiceImpl implements TradeOrderUpdateService {
         // TODO 芋艿:OrderLog
 
         // 增加用户积分(赠送)
-        addUserPoint(order.getUserId(), order.getGivePoint(), MemberPointBizTypeEnum.ORDER_REWARD, order.getId());
+        addUserPoint(order.getUserId(), order.getGivePoint(), MemberPointBizTypeEnum.ORDER_GIVE, order.getId());
         // 增加用户经验
         getSelf().addUserExperienceAsync(order.getUserId(), order.getPayPrice(), order.getId());
         // 增加用户佣金
diff --git a/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/service/price/calculator/TradePointGiveCalculator.java b/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/service/price/calculator/TradePointGiveCalculator.java
index 4fb2b2d7b..ea9faaec9 100644
--- a/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/service/price/calculator/TradePointGiveCalculator.java
+++ b/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/service/price/calculator/TradePointGiveCalculator.java
@@ -16,6 +16,7 @@ import java.util.Optional;
 
 import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.filterList;
 
+// TODO @疯狂:这个可以搞个单测;
 /**
  * 赠送积分的 {@link TradePriceCalculator} 实现类
  *
@@ -25,6 +26,7 @@ import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.
 @Order(TradePriceCalculator.ORDER_POINT_GIVE)
 @Slf4j
 public class TradePointGiveCalculator implements TradePriceCalculator {
+
     @Resource
     private MemberPointApi memberPointApi;
 
@@ -54,9 +56,10 @@ public class TradePointGiveCalculator implements TradePriceCalculator {
             TradePriceCalculateRespBO.OrderItem orderItem = orderItems.get(i);
             // 商品可能赠送了积分,所以这里要加上
             orderItem.setGivePoint(orderItem.getGivePoint() + dividePoints.get(i));
-            TradePriceCalculatorHelper.recountPayPrice(orderItem);
+            TradePriceCalculatorHelper.recountPayPrice(orderItem); // TODO @疯狂:这个应该不用调用哇?不影响支付金额
         }
         // 3.3 更新订单赠送积分
         TradePriceCalculatorHelper.recountAllGivePoint(result);
     }
+
 }
diff --git a/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/service/price/calculator/TradePointUsePriceCalculator.java b/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/service/price/calculator/TradePointUsePriceCalculator.java
index b2fd10572..8436eaa2d 100644
--- a/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/service/price/calculator/TradePointUsePriceCalculator.java
+++ b/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/service/price/calculator/TradePointUsePriceCalculator.java
@@ -20,6 +20,7 @@ import java.util.List;
 
 import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.filterList;
 
+// TODO @疯狂:搞个单测,嘿嘿;
 /**
  * 使用积分的 {@link TradePriceCalculator} 实现类
  *
@@ -29,6 +30,7 @@ import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.
 @Order(TradePriceCalculator.ORDER_POINT_USE)
 @Slf4j
 public class TradePointUsePriceCalculator implements TradePriceCalculator {
+
     @Resource
     private MemberPointApi memberPointApi;
     @Resource
@@ -48,13 +50,14 @@ public class TradePointUsePriceCalculator implements TradePriceCalculator {
         }
         // 1.3 校验用户积分余额
         MemberUserRespDTO user = memberUserApi.getUser(param.getUserId());
-        if (user.getPoint() == null || user.getPoint() < 0) {
+        if (user.getPoint() == null || user.getPoint() <= 0) {
             return;
         }
 
         // 2.1 计算积分优惠金额
+        // TODO @疯狂:如果计算出来,优惠金额为 0,那是不是不用执行后续逻辑哈
         int pointPrice = calculatePointPrice(config, user.getPoint(), result);
-        // 2.1 计算分摊的积分、抵扣金额
+        // 2.2 计算分摊的积分、抵扣金额
         List<TradePriceCalculateRespBO.OrderItem> orderItems = filterList(result.getItems(), TradePriceCalculateRespBO.OrderItem::getSelected);
         List<Integer> dividePointPrices = TradePriceCalculatorHelper.dividePrice(orderItems, pointPrice);
         List<Integer> divideUsePoints = TradePriceCalculatorHelper.dividePrice(orderItems, result.getUsePoint());
@@ -74,7 +77,9 @@ public class TradePointUsePriceCalculator implements TradePriceCalculator {
         TradePriceCalculatorHelper.recountAllPrice(result);
     }
 
+    // TODO @疯狂:这个最好是 is 开头;因为 check 或者 validator,更多失败,会抛出异常;
     private boolean checkDeductPointEnable(MemberPointConfigRespDTO config) {
+        // TODO @疯狂:这个要不直接写成 return config != null && config .... 多行这样一个形式;
         if (config == null) {
             return false;
         }
@@ -93,7 +98,7 @@ public class TradePointUsePriceCalculator implements TradePriceCalculator {
         }
         // 积分优惠金额(分)
         int pointPrice = usePoint * config.getTradeDeductUnitPrice();
-        // 0元购!!!:用户积分比较多时,积分可以抵扣的金额要大于支付金额, 这时需要根据支付金额反推使用多少积分
+        // 0 元购!!!:用户积分比较多时,积分可以抵扣的金额要大于支付金额,这时需要根据支付金额反推使用多少积分
         if (result.getPrice().getPayPrice() < pointPrice) {
             pointPrice = result.getPrice().getPayPrice();
             // 反推需要扣除的积分
@@ -103,7 +108,7 @@ public class TradePointUsePriceCalculator implements TradePriceCalculator {
         }
         // 记录使用的积分
         result.setUsePoint(usePoint);
-
         return pointPrice;
     }
+
 }
diff --git a/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/service/price/calculator/TradePriceCalculator.java b/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/service/price/calculator/TradePriceCalculator.java
index 620c3e13f..bff2ac291 100644
--- a/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/service/price/calculator/TradePriceCalculator.java
+++ b/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/service/price/calculator/TradePriceCalculator.java
@@ -21,11 +21,13 @@ public interface TradePriceCalculator {
     /**
      * 快递运费的计算
      *
-     * 放在各种营销活动、优惠劵后面 TODO
+     * 放在各种营销活动、优惠劵后面
      */
     int ORDER_DELIVERY = 50;
     /**
      * 赠送积分,放最后
+     *
+     * 放在 {@link #ORDER_DELIVERY} 后面的原因,是运费也会产生费用,需要赠送对应积分
      */
     int ORDER_POINT_GIVE = 999;
 
diff --git a/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/service/price/calculator/TradePriceCalculatorHelper.java b/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/service/price/calculator/TradePriceCalculatorHelper.java
index 812ce5591..d80eddfab 100644
--- a/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/service/price/calculator/TradePriceCalculatorHelper.java
+++ b/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/service/price/calculator/TradePriceCalculatorHelper.java
@@ -199,6 +199,8 @@ public class TradePriceCalculatorHelper {
     /**
      * 按照支付金额,返回每个订单项的分摊金额数组
      *
+     * 实际上 price 不仅仅可以传递的是金额,也可以是积分。因为它的实现逻辑,就是根据 payPrice 做分摊而已
+     *
      * @param orderItems 订单项数组
      * @param price      金额
      * @return 分摊金额数组,和传入的 orderItems 一一对应
diff --git a/yudao-module-member/yudao-module-member-api/src/main/java/cn/iocoder/yudao/module/member/api/point/MemberPointApi.java b/yudao-module-member/yudao-module-member-api/src/main/java/cn/iocoder/yudao/module/member/api/point/MemberPointApi.java
index c6df95f7c..9cfbda0a1 100644
--- a/yudao-module-member/yudao-module-member-api/src/main/java/cn/iocoder/yudao/module/member/api/point/MemberPointApi.java
+++ b/yudao-module-member/yudao-module-member-api/src/main/java/cn/iocoder/yudao/module/member/api/point/MemberPointApi.java
@@ -12,6 +12,7 @@ import javax.validation.constraints.Min;
  */
 public interface MemberPointApi {
 
+    // TODO @疯狂:这个我们要不要搞成通用的会员配置?MemberConfig?
     /**
      * 获得积分配置
      *
diff --git a/yudao-module-member/yudao-module-member-api/src/main/java/cn/iocoder/yudao/module/member/api/point/dto/MemberPointConfigRespDTO.java b/yudao-module-member/yudao-module-member-api/src/main/java/cn/iocoder/yudao/module/member/api/point/dto/MemberPointConfigRespDTO.java
index a9783352a..aaa9a3fcf 100644
--- a/yudao-module-member/yudao-module-member-api/src/main/java/cn/iocoder/yudao/module/member/api/point/dto/MemberPointConfigRespDTO.java
+++ b/yudao-module-member/yudao-module-member-api/src/main/java/cn/iocoder/yudao/module/member/api/point/dto/MemberPointConfigRespDTO.java
@@ -9,6 +9,7 @@ import lombok.Data;
  */
 @Data
 public class MemberPointConfigRespDTO {
+
     /**
      * 积分抵扣开关
      */
@@ -27,4 +28,5 @@ public class MemberPointConfigRespDTO {
      * 1 元赠送多少分
      */
     private Integer tradeGivePoint;
+
 }
diff --git a/yudao-module-member/yudao-module-member-api/src/main/java/cn/iocoder/yudao/module/member/api/user/dto/MemberUserRespDTO.java b/yudao-module-member/yudao-module-member-api/src/main/java/cn/iocoder/yudao/module/member/api/user/dto/MemberUserRespDTO.java
index e55eda154..50548f935 100644
--- a/yudao-module-member/yudao-module-member-api/src/main/java/cn/iocoder/yudao/module/member/api/user/dto/MemberUserRespDTO.java
+++ b/yudao-module-member/yudao-module-member-api/src/main/java/cn/iocoder/yudao/module/member/api/user/dto/MemberUserRespDTO.java
@@ -51,4 +51,5 @@ public class MemberUserRespDTO {
      * 积分
      */
     private Integer point;
+
 }
diff --git a/yudao-module-member/yudao-module-member-api/src/main/java/cn/iocoder/yudao/module/member/enums/point/MemberPointBizTypeEnum.java b/yudao-module-member/yudao-module-member-api/src/main/java/cn/iocoder/yudao/module/member/enums/point/MemberPointBizTypeEnum.java
index 68e61cc9f..931b09de3 100644
--- a/yudao-module-member/yudao-module-member-api/src/main/java/cn/iocoder/yudao/module/member/enums/point/MemberPointBizTypeEnum.java
+++ b/yudao-module-member/yudao-module-member-api/src/main/java/cn/iocoder/yudao/module/member/enums/point/MemberPointBizTypeEnum.java
@@ -17,11 +17,11 @@ import java.util.Objects;
 public enum MemberPointBizTypeEnum implements IntArrayValuable {
 
     SIGN(1, "签到", "签到获得 {} 积分", true),
-    ORDER_REWARD(10, "订单奖励", "下单获得 {} 积分", true),
-    ORDER_CANCEL(11, "订单取消", "订单取消,退还 {} 积分", true), // 退回积分
-    ORDER_USE(12, "订单使用", "下单使用 {} 积分", false), // 扣减积分
-    AFTER_SALE_REFUND_USED(13, "订单退款", "订单退款,退还 {} 积分", true), // 退回积分
-    AFTER_SALE_DEDUCT_GIVE(14, "订单退款", "订单退款,扣除赠送的 {} 积分", false), // 扣减积分
+    ORDER_GIVE(10, "订单奖励", "下单获得 {} 积分", true), // 支付订单时,赠送积分
+    ORDER_CANCEL(11, "订单取消", "订单取消,退还 {} 积分", true), // 取消订单时,退回积分
+    ORDER_USE(12, "订单使用", "下单使用 {} 积分", false), // 下单时,扣减积分
+    AFTER_SALE_REFUND_USED(13, "订单退款", "订单退款,退还 {} 积分", true), // 售后订单成功时,退回积分(对应 ORDER_USE 操作)
+    AFTER_SALE_DEDUCT_GIVE(14, "订单退款", "订单退款,扣除赠送的 {} 积分", false), // 售后订单成功时,扣减积分(对应 ORDER_GIVE 操作)
     ;
 
     /**