forked from wangziqi/ruoyi-vue-pro
chore(project): rebranded project as 恭学教育 (GongXue Education)
- Updated pom.xml project name, description, and URL to 恭学教育. - Changed LICENSE copyright holder to 恭学教育 (GongXue Education). - Rebranded README.md with new project title and tagline. - Replaced @author 芋道源码 with @author 恭学教育 across all Java source files. - Updated Swagger metadata with 恭学教育 API title and admin@gongxue.com. - Added Gitea Actions CI pipeline for automated build and deployment.
This commit is contained in:
@@ -10,7 +10,7 @@ public class MemberUserRespVO {
|
||||
@Schema(description = "用户 ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
|
||||
private Long id;
|
||||
|
||||
@Schema(description = "用户昵称", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋道源码")
|
||||
@Schema(description = "用户昵称", requiredMode = Schema.RequiredMode.REQUIRED, example = "恭学教育")
|
||||
private String nickname;
|
||||
|
||||
@Schema(description = "用户头像", example = "https://www.iocoder.cn/xxx.png")
|
||||
|
||||
@@ -10,7 +10,7 @@ public class UserSimpleBaseVO {
|
||||
@Schema(description = "用户编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
|
||||
private Long id;
|
||||
|
||||
@Schema(description = "用户昵称", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋艿")
|
||||
@Schema(description = "用户昵称", requiredMode = Schema.RequiredMode.REQUIRED, example = "管理员")
|
||||
private String nickname;
|
||||
|
||||
@Schema(description = "用户头像", example = "https://www.iocoder.cn/1.png")
|
||||
|
||||
@@ -15,7 +15,7 @@ public class BrokerageWithdrawRespVO {
|
||||
@Schema(description = "用户编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "11436")
|
||||
private Long userId;
|
||||
|
||||
@Schema(description = "用户昵称", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋艿")
|
||||
@Schema(description = "用户昵称", requiredMode = Schema.RequiredMode.REQUIRED, example = "管理员")
|
||||
private String userNickname;
|
||||
|
||||
@Schema(description = "提现金额", requiredMode = Schema.RequiredMode.REQUIRED, example = "18781")
|
||||
|
||||
@@ -26,7 +26,7 @@ public class TradeOrderItemBaseVO {
|
||||
@Schema(description = "商品 SPU 编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
|
||||
private Long spuId;
|
||||
|
||||
@Schema(description = "商品 SPU 名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋道源码")
|
||||
@Schema(description = "商品 SPU 名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "恭学教育")
|
||||
private String spuName;
|
||||
|
||||
@Schema(description = "商品 SKU 编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
|
||||
@@ -57,7 +57,7 @@ public class TradeOrderItemBaseVO {
|
||||
|
||||
// ========== 营销基本信息 ==========
|
||||
|
||||
// TODO 芋艿:在捉摸一下
|
||||
// TODO 管理员:在捉摸一下
|
||||
|
||||
// ========== 售后基本信息 ==========
|
||||
|
||||
|
||||
@@ -9,7 +9,7 @@ import java.util.List;
|
||||
/**
|
||||
* 商品 SKU 基础 Response VO
|
||||
*
|
||||
* @author 芋道源码
|
||||
* @author 恭学教育
|
||||
*/
|
||||
@Data
|
||||
public class AppProductSkuBaseRespVO {
|
||||
|
||||
@@ -6,7 +6,7 @@ import lombok.Data;
|
||||
/**
|
||||
* 商品 SPU 基础 Response VO
|
||||
*
|
||||
* @author 芋道源码
|
||||
* @author 恭学教育
|
||||
*/
|
||||
@Data
|
||||
public class AppProductSpuBaseRespVO {
|
||||
@@ -14,7 +14,7 @@ public class AppProductSpuBaseRespVO {
|
||||
@Schema(description = "主键", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024")
|
||||
private Long id;
|
||||
|
||||
@Schema(description = "商品 SPU 名字", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋道")
|
||||
@Schema(description = "商品 SPU 名字", requiredMode = Schema.RequiredMode.REQUIRED, example = "恭学")
|
||||
private String name;
|
||||
|
||||
@Schema(description = "商品主图地址", example = "https://www.iocoder.cn/xx.png")
|
||||
|
||||
@@ -53,7 +53,7 @@ public class AppCartDetailRespVO {
|
||||
|
||||
// ========== 价格相关的字段,对应 PriceCalculateRespDTO.OrderItem 的属性 ==========
|
||||
|
||||
// TODO 芋艿:后续可以去除一些无用的字段
|
||||
// TODO 管理员:后续可以去除一些无用的字段
|
||||
|
||||
@Schema(description = "商品原价(单)", requiredMode = Schema.RequiredMode.REQUIRED, example = "100")
|
||||
private Integer originalPrice;
|
||||
@@ -80,7 +80,7 @@ public class AppCartDetailRespVO {
|
||||
@Data
|
||||
public static class Order {
|
||||
|
||||
// TODO 芋艿:后续可以去除一些无用的字段
|
||||
// TODO 管理员:后续可以去除一些无用的字段
|
||||
|
||||
@Schema(description = "商品原价(总)", requiredMode = Schema.RequiredMode.REQUIRED, example = "100")
|
||||
private Integer skuOriginalPrice;
|
||||
|
||||
@@ -3,7 +3,7 @@ package cn.iocoder.yudao.module.trade.controller.app.delivery.vo.config;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.Data;
|
||||
|
||||
// TODO 芋艿:后续要实现下,配送配置;后续融合到 AppTradeConfigRespVO 中
|
||||
// TODO 管理员:后续要实现下,配送配置;后续融合到 AppTradeConfigRespVO 中
|
||||
@Schema(description = "用户 App - 配送配置 Response VO")
|
||||
@Data
|
||||
public class AppDeliveryConfigRespVO {
|
||||
|
||||
@@ -41,7 +41,7 @@ public class AppTradeOrderSettlementReqVO {
|
||||
|
||||
@Schema(description = "自提门店编号", example = "1088")
|
||||
private Long pickUpStoreId;
|
||||
@Schema(description = "收件人名称", example = "芋艿") // 选择门店自提时,该字段为联系人名
|
||||
@Schema(description = "收件人名称", example = "管理员") // 选择门店自提时,该字段为联系人名
|
||||
private String receiverName;
|
||||
@Schema(description = "收件人手机", example = "15601691300") // 选择门店自提时,该字段为联系人手机
|
||||
@Mobile(message = "收件人手机格式不正确")
|
||||
|
||||
@@ -18,7 +18,7 @@ public class AppTradeOrderItemRespVO {
|
||||
|
||||
@Schema(description = "商品 SPU 编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
|
||||
private Long spuId;
|
||||
@Schema(description = "商品 SPU 名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋道源码")
|
||||
@Schema(description = "商品 SPU 名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "恭学教育")
|
||||
private String spuName;
|
||||
|
||||
@Schema(description = "商品 SKU 编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
|
||||
@@ -48,7 +48,7 @@ public class AppTradeOrderItemRespVO {
|
||||
|
||||
// ========== 营销基本信息 ==========
|
||||
|
||||
// TODO 芋艿:在捉摸一下
|
||||
// TODO 管理员:在捉摸一下
|
||||
|
||||
// ========== 售后基本信息 ==========
|
||||
|
||||
|
||||
@@ -14,7 +14,7 @@ import java.util.Optional;
|
||||
/**
|
||||
* 佣金提现 Convert
|
||||
*
|
||||
* @author 芋道源码
|
||||
* @author 恭学教育
|
||||
*/
|
||||
@Mapper
|
||||
public interface BrokerageWithdrawConvert {
|
||||
|
||||
@@ -110,7 +110,7 @@ public interface TradeOrderConvert {
|
||||
String subject = orderItems.get(0).getSpuName();
|
||||
subject = StrUtils.maxLength(subject, PayOrderCreateReqDTO.SUBJECT_MAX_LENGTH); // 避免超过 32 位
|
||||
createReqDTO.setSubject(subject);
|
||||
createReqDTO.setBody(subject); // TODO 芋艿:临时写死
|
||||
createReqDTO.setBody(subject); // TODO 管理员:临时写死
|
||||
// 订单相关字段
|
||||
createReqDTO.setPrice(order.getPayPrice()).setExpireTime(addTime(orderProperties.getPayExpireTime()));
|
||||
return createReqDTO;
|
||||
|
||||
@@ -18,7 +18,7 @@ import java.util.List;
|
||||
/**
|
||||
* 售后订单,用于处理 {@link TradeOrderDO} 交易订单的退款退货流程
|
||||
*
|
||||
* @author 芋道源码
|
||||
* @author 恭学教育
|
||||
*/
|
||||
@TableName(value = "trade_after_sale", autoResultMap = true)
|
||||
@KeySequence("trade_after_sale_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。
|
||||
|
||||
@@ -11,7 +11,7 @@ import lombok.*;
|
||||
/**
|
||||
* 交易售后日志 DO
|
||||
*
|
||||
* @author 芋道源码
|
||||
* @author 恭学教育
|
||||
*/
|
||||
@TableName("trade_after_sale_log")
|
||||
@KeySequence("trade_after_sale_log_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。
|
||||
|
||||
@@ -13,7 +13,7 @@ import java.time.LocalDateTime;
|
||||
/**
|
||||
* 佣金提现 DO
|
||||
*
|
||||
* @author 芋道源码
|
||||
* @author 恭学教育
|
||||
*/
|
||||
@TableName("trade_brokerage_withdraw")
|
||||
@KeySequence("trade_brokerage_withdraw_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。
|
||||
|
||||
@@ -10,7 +10,7 @@ import lombok.Data;
|
||||
*
|
||||
* 每个商品,对应一条记录,通过 {@link #spuId} 和 {@link #skuId} 关联
|
||||
*
|
||||
* @author 芋道源码
|
||||
* @author 恭学教育
|
||||
*/
|
||||
@TableName("trade_cart")
|
||||
@KeySequence("trade_cart_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。
|
||||
|
||||
@@ -50,7 +50,7 @@ public class DeliveryExpressDO extends BaseDO {
|
||||
*/
|
||||
private Integer status;
|
||||
|
||||
// TODO 芋艿:c 和结算相关的字段,后续在看
|
||||
// TODO 管理员:c 和结算相关的字段,后续在看
|
||||
// partnerId 是否需要月结账号
|
||||
// partnerKey 是否需要月结密码
|
||||
// net 是否需要取件网店
|
||||
|
||||
@@ -25,7 +25,7 @@ import java.util.Map;
|
||||
/**
|
||||
* 交易订单 DO
|
||||
*
|
||||
* @author 芋道源码
|
||||
* @author 恭学教育
|
||||
*/
|
||||
@TableName(value = "trade_order", autoResultMap = true)
|
||||
@KeySequence("trade_order_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。
|
||||
|
||||
@@ -16,7 +16,7 @@ import java.util.List;
|
||||
/**
|
||||
* 交易订单项 DO
|
||||
*
|
||||
* @author 芋道源码
|
||||
* @author 恭学教育
|
||||
*/
|
||||
@TableName(value = "trade_order_item", autoResultMap = true)
|
||||
@KeySequence("trade_order_item_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。
|
||||
|
||||
@@ -87,7 +87,7 @@ public interface BrokerageRecordMapper extends BaseMapperX<BrokerageRecordDO> {
|
||||
@Param("beginTime") LocalDateTime beginTime,
|
||||
@Param("endTime") LocalDateTime endTime);
|
||||
|
||||
// TODO @芋艿:收敛掉 @Select 注解操作,统一成 MyBatis-Plus 的方式,或者 xml
|
||||
// TODO @管理员:收敛掉 @Select 注解操作,统一成 MyBatis-Plus 的方式,或者 xml
|
||||
@Select("SELECT user_id AS id, SUM(price) AS brokeragePrice FROM trade_brokerage_record " +
|
||||
"WHERE biz_type = #{bizType} AND status = #{status} AND deleted = FALSE " +
|
||||
"AND unfreeze_time BETWEEN #{beginTime} AND #{endTime} " +
|
||||
|
||||
@@ -18,7 +18,7 @@ import java.util.Map;
|
||||
/**
|
||||
* 佣金提现 Mapper
|
||||
*
|
||||
* @author 芋道源码
|
||||
* @author 恭学教育
|
||||
*/
|
||||
@Mapper
|
||||
public interface BrokerageWithdrawMapper extends BaseMapperX<BrokerageWithdrawDO> {
|
||||
|
||||
@@ -71,7 +71,7 @@ public interface TradeOrderMapper extends BaseMapperX<TradeOrderDO> {
|
||||
.eq(TradeOrderDO::getUserId, userId)
|
||||
.eqIfPresent(TradeOrderDO::getStatus, reqVO.getStatus())
|
||||
.eqIfPresent(TradeOrderDO::getCommentStatus, reqVO.getCommentStatus())
|
||||
.orderByDesc(TradeOrderDO::getId)); // TODO 芋艿:未来不同的 status,不同的排序
|
||||
.orderByDesc(TradeOrderDO::getId)); // TODO 管理员:未来不同的 status,不同的排序
|
||||
}
|
||||
|
||||
default Long selectCountByUserIdAndStatus(Long userId, Integer status, Boolean commentStatus) {
|
||||
|
||||
@@ -3,7 +3,7 @@ package cn.iocoder.yudao.module.trade.dal.redis;
|
||||
/**
|
||||
* 交易 Redis Key 枚举类
|
||||
*
|
||||
* @author 芋道源码
|
||||
* @author 恭学教育
|
||||
*/
|
||||
public interface RedisKeyConstants {
|
||||
|
||||
|
||||
@@ -10,7 +10,7 @@ import java.util.Map;
|
||||
* 操作日志工具类
|
||||
* 目前主要的作用,是提供给业务代码,记录操作明细和拓展字段
|
||||
*
|
||||
* @author 芋道源码
|
||||
* @author 恭学教育
|
||||
*/
|
||||
public class AfterSaleLogUtils {
|
||||
|
||||
|
||||
@@ -9,7 +9,7 @@ import org.springframework.validation.annotation.Validated;
|
||||
import jakarta.validation.Valid;
|
||||
import jakarta.validation.constraints.NotEmpty;
|
||||
|
||||
// TODO @芋艿:未来要不要放数据库中?考虑 saas 多租户时,不同租户使用不同的配置?
|
||||
// TODO @管理员:未来要不要放数据库中?考虑 saas 多租户时,不同租户使用不同的配置?
|
||||
/**
|
||||
* 交易运费快递的配置项
|
||||
*
|
||||
|
||||
@@ -7,7 +7,7 @@ import java.util.Map;
|
||||
/**
|
||||
* 交易订单的操作日志 Utils
|
||||
*
|
||||
* @author 芋道源码
|
||||
* @author 恭学教育
|
||||
*/
|
||||
public class TradeOrderLogUtils {
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
/**
|
||||
* 属于 trade 模块的 framework 封装
|
||||
*
|
||||
* @author 芋道源码
|
||||
* @author 恭学教育
|
||||
*/
|
||||
package cn.iocoder.yudao.module.trade.framework;
|
||||
|
||||
@@ -8,7 +8,7 @@ import org.springframework.context.annotation.Configuration;
|
||||
/**
|
||||
* trade 模块的 web 组件的 Configuration
|
||||
*
|
||||
* @author 芋道源码
|
||||
* @author 恭学教育
|
||||
*/
|
||||
@Configuration(proxyBeanMethods = false)
|
||||
public class TradeWebConfiguration {
|
||||
|
||||
@@ -10,7 +10,7 @@ import jakarta.annotation.Resource;
|
||||
/**
|
||||
* 交易订单的自动过期 Job
|
||||
*
|
||||
* @author 芋道源码
|
||||
* @author 恭学教育
|
||||
*/
|
||||
@Component
|
||||
public class TradeOrderAutoCancelJob implements JobHandler {
|
||||
|
||||
@@ -10,7 +10,7 @@ import jakarta.annotation.Resource;
|
||||
/**
|
||||
* 交易订单的自动评论 Job
|
||||
*
|
||||
* @author 芋道源码
|
||||
* @author 恭学教育
|
||||
*/
|
||||
@Component
|
||||
public class TradeOrderAutoCommentJob implements JobHandler {
|
||||
|
||||
@@ -10,7 +10,7 @@ import jakarta.annotation.Resource;
|
||||
/**
|
||||
* 交易订单的自动收货 Job
|
||||
*
|
||||
* @author 芋道源码
|
||||
* @author 恭学教育
|
||||
*/
|
||||
@Component
|
||||
public class TradeOrderAutoReceiveJob implements JobHandler {
|
||||
|
||||
@@ -13,7 +13,7 @@ import java.util.List;
|
||||
/**
|
||||
* 交易售后日志 Service 实现类
|
||||
*
|
||||
* @author 芋道源码
|
||||
* @author 恭学教育
|
||||
*/
|
||||
@Service
|
||||
@Validated
|
||||
|
||||
@@ -12,7 +12,7 @@ import cn.iocoder.yudao.module.trade.dal.dataobject.aftersale.AfterSaleDO;
|
||||
/**
|
||||
* 售后订单 Service 接口
|
||||
*
|
||||
* @author 芋道源码
|
||||
* @author 恭学教育
|
||||
*/
|
||||
public interface AfterSaleService {
|
||||
|
||||
|
||||
@@ -56,7 +56,7 @@ import static cn.iocoder.yudao.module.trade.enums.ErrorCodeConstants.*;
|
||||
/**
|
||||
* 售后订单 Service 实现类
|
||||
*
|
||||
* @author 芋道源码
|
||||
* @author 恭学教育
|
||||
*/
|
||||
@Slf4j
|
||||
@Service
|
||||
@@ -143,7 +143,7 @@ public class AfterSaleServiceImpl implements AfterSaleService {
|
||||
if (order == null) {
|
||||
throw exception(ORDER_NOT_FOUND);
|
||||
}
|
||||
// TODO 芋艿:超过一定时间,不允许售后
|
||||
// TODO 管理员:超过一定时间,不允许售后
|
||||
// 已取消,无法发起售后
|
||||
if (TradeOrderStatusEnum.isCanceled(order.getStatus())) {
|
||||
throw exception(AFTER_SALE_CREATE_FAIL_ORDER_STATUS_CANCELED);
|
||||
|
||||
@@ -17,7 +17,7 @@ import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.
|
||||
/**
|
||||
* 佣金提现 Service 接口
|
||||
*
|
||||
* @author 芋道源码
|
||||
* @author 恭学教育
|
||||
*/
|
||||
public interface BrokerageWithdrawService {
|
||||
|
||||
|
||||
@@ -51,7 +51,7 @@ import static cn.iocoder.yudao.module.trade.enums.ErrorCodeConstants.*;
|
||||
/**
|
||||
* 佣金提现 Service 实现类
|
||||
*
|
||||
* @author 芋道源码
|
||||
* @author 恭学教育
|
||||
*/
|
||||
@Service
|
||||
@Validated
|
||||
|
||||
@@ -11,7 +11,7 @@ import java.util.Set;
|
||||
/**
|
||||
* 购物车 Service 接口
|
||||
*
|
||||
* @author 芋道源码
|
||||
* @author 恭学教育
|
||||
*/
|
||||
public interface CartService {
|
||||
|
||||
|
||||
@@ -26,9 +26,9 @@ import static java.util.Collections.emptyList;
|
||||
/**
|
||||
* 购物车 Service 实现类
|
||||
*
|
||||
* // TODO 芋艿:未来优化:购物车的价格计算,支持营销信息;目前不支持的原因,前端界面需要前端 pr 支持下;例如说:会员价格;
|
||||
* // TODO 管理员:未来优化:购物车的价格计算,支持营销信息;目前不支持的原因,前端界面需要前端 pr 支持下;例如说:会员价格;
|
||||
*
|
||||
* @author 芋道源码
|
||||
* @author 恭学教育
|
||||
*/
|
||||
@Service
|
||||
@Validated
|
||||
@@ -126,7 +126,7 @@ public class CartServiceImpl implements CartService {
|
||||
|
||||
@Override
|
||||
public Integer getCartCount(Long userId) {
|
||||
// TODO 芋艿:需要算上 selected
|
||||
// TODO 管理员:需要算上 selected
|
||||
return cartMapper.selectSumByUserId(userId);
|
||||
}
|
||||
|
||||
|
||||
@@ -32,7 +32,7 @@ public class TradeMessageServiceImpl implements TradeMessageService {
|
||||
Map<String, Object> msgMap = new HashMap<>(2);
|
||||
msgMap.put("orderId", reqBO.getOrderId());
|
||||
msgMap.put("deliveryMessage", reqBO.getMessage());
|
||||
// TODO 芋艿:看下模版
|
||||
// TODO 管理员:看下模版
|
||||
// 2、发送站内信
|
||||
notifyMessageSendApi.sendSingleMessageToMember(
|
||||
new NotifySendSingleToUserReqDTO()
|
||||
|
||||
@@ -17,7 +17,7 @@ import static java.util.Collections.singleton;
|
||||
/**
|
||||
* 交易订单【读】 Service 接口
|
||||
*
|
||||
* @author 芋道源码
|
||||
* @author 恭学教育
|
||||
*/
|
||||
public interface TradeOrderQueryService {
|
||||
|
||||
|
||||
@@ -38,7 +38,7 @@ import static cn.iocoder.yudao.module.trade.enums.ErrorCodeConstants.ORDER_NOT_F
|
||||
/**
|
||||
* 交易订单【读】 Service 实现类
|
||||
*
|
||||
* @author 芋道源码
|
||||
* @author 恭学教育
|
||||
*/
|
||||
@Service
|
||||
public class TradeOrderQueryServiceImpl implements TradeOrderQueryService {
|
||||
|
||||
@@ -27,7 +27,7 @@ import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.
|
||||
/**
|
||||
* 订单分销的 {@link TradeOrderHandler} 实现类
|
||||
*
|
||||
* @author 芋道源码
|
||||
* @author 恭学教育
|
||||
*/
|
||||
@Component
|
||||
public class TradeBrokerageOrderHandler implements TradeOrderHandler {
|
||||
|
||||
@@ -17,7 +17,7 @@ import java.util.List;
|
||||
/**
|
||||
* 优惠劵的 {@link TradeOrderHandler} 实现类
|
||||
*
|
||||
* @author 芋道源码
|
||||
* @author 恭学教育
|
||||
*/
|
||||
@Component
|
||||
@Slf4j
|
||||
|
||||
@@ -15,7 +15,7 @@ import static java.util.Collections.singletonList;
|
||||
/**
|
||||
* 商品 SKU 库存的 {@link TradeOrderHandler} 实现类
|
||||
*
|
||||
* @author 芋道源码
|
||||
* @author 恭学教育
|
||||
*/
|
||||
@Component
|
||||
public class TradeProductSkuOrderHandler implements TradeOrderHandler {
|
||||
|
||||
@@ -98,6 +98,6 @@ public class TradeStatusSyncToWxaOrderHandler implements TradeOrderHandler {
|
||||
}
|
||||
}
|
||||
|
||||
// TODO @芋艿:【设置路径】 https://developers.weixin.qq.com/miniprogram/dev/platform-capabilities/business-capabilities/order-shipping/order-shipping.html#%E5%85%AD%E3%80%81%E6%B6%88%E6%81%AF%E8%B7%B3%E8%BD%AC%E8%B7%AF%E5%BE%84%E8%AE%BE%E7%BD%AE%E6%8E%A5%E5%8F%A3
|
||||
// TODO @管理员:【设置路径】 https://developers.weixin.qq.com/miniprogram/dev/platform-capabilities/business-capabilities/order-shipping/order-shipping.html#%E5%85%AD%E3%80%81%E6%B6%88%E6%81%AF%E8%B7%B3%E8%BD%AC%E8%B7%AF%E5%BE%84%E8%AE%BE%E7%BD%AE%E6%8E%A5%E5%8F%A3
|
||||
|
||||
}
|
||||
|
||||
@@ -10,7 +10,7 @@ import java.util.List;
|
||||
/**
|
||||
* 价格计算 Service 接口
|
||||
*
|
||||
* @author 芋道源码
|
||||
* @author 恭学教育
|
||||
*/
|
||||
public interface TradePriceService {
|
||||
|
||||
|
||||
@@ -35,7 +35,7 @@ import static cn.iocoder.yudao.module.trade.enums.ErrorCodeConstants.PRICE_CALCU
|
||||
/**
|
||||
* 价格计算 Service 实现类
|
||||
*
|
||||
* @author 芋道源码
|
||||
* @author 恭学教育
|
||||
*/
|
||||
@Service
|
||||
@Validated
|
||||
|
||||
@@ -16,7 +16,7 @@ import java.util.Map;
|
||||
* 1. <a href="https://developer.alibaba.com/docs/doc.htm?treeId=1&articleId=1029&docType=1">订单管理</a>
|
||||
* 2. <a href="https://open.taobao.com/docV3.htm?docId=108471&docType=1">常用订单金额说明</a>
|
||||
*
|
||||
* @author 芋道源码
|
||||
* @author 恭学教育
|
||||
*/
|
||||
@Data
|
||||
public class TradePriceCalculateRespBO {
|
||||
|
||||
@@ -17,7 +17,7 @@ import jakarta.annotation.Resource;
|
||||
/**
|
||||
* 砍价活动的 {@link TradePriceCalculator} 实现类
|
||||
*
|
||||
* @author 芋道源码
|
||||
* @author 恭学教育
|
||||
*/
|
||||
@Component
|
||||
@Order(TradePriceCalculator.ORDER_BARGAIN_ACTIVITY)
|
||||
@@ -41,7 +41,7 @@ public class TradeBargainActivityPriceCalculator implements TradePriceCalculator
|
||||
|
||||
// 3.1 记录优惠明细
|
||||
Integer discountPrice = orderItem.getPayPrice() - bargainActivity.getBargainPrice() * orderItem.getCount();
|
||||
// TODO 芋艿:极端情况,优惠金额为负数,需要处理
|
||||
// TODO 管理员:极端情况,优惠金额为负数,需要处理
|
||||
TradePriceCalculatorHelper.addPromotion(result, orderItem,
|
||||
bargainActivity.getActivityId(), bargainActivity.getName(), PromotionTypeEnum.BARGAIN_ACTIVITY.getType(),
|
||||
StrUtil.format("砍价活动:省 {} 元", TradePriceCalculatorHelper.formatPrice(discountPrice)),
|
||||
|
||||
@@ -30,7 +30,7 @@ import static cn.iocoder.yudao.module.trade.enums.ErrorCodeConstants.PRICE_CALCU
|
||||
/**
|
||||
* 优惠劵的 {@link TradePriceCalculator} 实现类
|
||||
*
|
||||
* @author 芋道源码
|
||||
* @author 恭学教育
|
||||
*/
|
||||
@Component
|
||||
@Order(TradePriceCalculator.ORDER_COUPON)
|
||||
|
||||
@@ -31,7 +31,7 @@ import static cn.iocoder.yudao.module.trade.service.price.calculator.TradePriceC
|
||||
*
|
||||
* 由于“会员折扣”和“限时折扣”是冲突,需要选择优惠金额多的,所以也放在这里计算
|
||||
*
|
||||
* @author 芋道源码
|
||||
* @author 恭学教育
|
||||
*/
|
||||
@Component
|
||||
@Order(TradePriceCalculator.ORDER_DISCOUNT_ACTIVITY)
|
||||
|
||||
@@ -9,7 +9,7 @@ import cn.iocoder.yudao.module.trade.service.price.bo.TradePriceCalculateRespBO;
|
||||
* 优惠计算顺序:
|
||||
* 1. <a href="https://help.youzan.com/displaylist/detail_4_4-1-53316">积分抵现、会员价、优惠券、粉丝专享价、满减送哪个优先计算?</>
|
||||
*
|
||||
* @author 芋道源码
|
||||
* @author 恭学教育
|
||||
*/
|
||||
public interface TradePriceCalculator {
|
||||
|
||||
|
||||
@@ -25,7 +25,7 @@ import static java.util.Collections.singletonList;
|
||||
*
|
||||
* 主要实现对 {@link TradePriceCalculateRespBO} 计算结果的操作
|
||||
*
|
||||
* @author 芋道源码
|
||||
* @author 恭学教育
|
||||
*/
|
||||
public class TradePriceCalculatorHelper {
|
||||
|
||||
|
||||
@@ -26,7 +26,7 @@ import static cn.iocoder.yudao.module.trade.service.price.calculator.TradePriceC
|
||||
/**
|
||||
* 满减送活动的 {@link TradePriceCalculator} 实现类
|
||||
*
|
||||
* @author 芋道源码
|
||||
* @author 恭学教育
|
||||
*/
|
||||
@Component
|
||||
@Order(TradePriceCalculator.ORDER_REWARD_ACTIVITY)
|
||||
|
||||
@@ -40,9 +40,9 @@ import static org.mockito.Mockito.when;
|
||||
/**
|
||||
* {@link AfterSaleService} 的单元测试
|
||||
*
|
||||
* @author 芋道源码
|
||||
* @author 恭学教育
|
||||
*/
|
||||
@Disabled // TODO 芋艿:后续 fix 补充的单测
|
||||
@Disabled // TODO 管理员:后续 fix 补充的单测
|
||||
@Import(AfterSaleServiceImpl.class)
|
||||
public class AfterSaleServiceTest extends BaseDbUnitTest {
|
||||
|
||||
@@ -120,7 +120,7 @@ public class AfterSaleServiceTest extends BaseDbUnitTest {
|
||||
o.setWay(AfterSaleWayEnum.RETURN_AND_REFUND.getWay());
|
||||
o.setType(AfterSaleTypeEnum.IN_SALE.getType());
|
||||
o.setOrderNo("202211190847450020500011");
|
||||
o.setSpuName("芋艿");
|
||||
o.setSpuName("管理员");
|
||||
o.setCreateTime(buildTime(2022, 1, 15));
|
||||
});
|
||||
tradeAfterSaleMapper.insert(dbAfterSale);
|
||||
|
||||
@@ -17,13 +17,13 @@ import static cn.iocoder.yudao.framework.test.core.util.AssertUtils.assertPojoEq
|
||||
import static cn.iocoder.yudao.framework.test.core.util.RandomUtils.randomPojo;
|
||||
import static org.junit.jupiter.api.Assertions.assertEquals;
|
||||
|
||||
// TODO @芋艿:单测后续看看
|
||||
// TODO @管理员:单测后续看看
|
||||
/**
|
||||
* {@link BrokerageUserServiceImpl} 的单元测试类
|
||||
*
|
||||
* @author owen
|
||||
*/
|
||||
@Disabled // TODO 芋艿:后续 fix 补充的单测
|
||||
@Disabled // TODO 管理员:后续 fix 补充的单测
|
||||
@Import(BrokerageUserServiceImpl.class)
|
||||
public class BrokerageUserServiceImplTest extends BaseDbUnitTest {
|
||||
|
||||
|
||||
@@ -20,13 +20,13 @@ import static cn.iocoder.yudao.framework.test.core.util.AssertUtils.assertPojoEq
|
||||
import static cn.iocoder.yudao.framework.test.core.util.RandomUtils.randomPojo;
|
||||
import static org.junit.jupiter.api.Assertions.assertEquals;
|
||||
|
||||
// TODO 芋艿:后续 review
|
||||
// TODO 管理员:后续 review
|
||||
/**
|
||||
* {@link BrokerageWithdrawServiceImpl} 的单元测试类
|
||||
*
|
||||
* @author 芋道源码
|
||||
* @author 恭学教育
|
||||
*/
|
||||
@Disabled // TODO 芋艿:后续 fix 补充的单测
|
||||
@Disabled // TODO 管理员:后续 fix 补充的单测
|
||||
@Import(BrokerageWithdrawServiceImpl.class)
|
||||
public class BrokerageWithdrawServiceImplTest extends BaseDbUnitTest {
|
||||
|
||||
|
||||
@@ -53,7 +53,7 @@ import static org.mockito.Mockito.when;
|
||||
* @author LeeYan9
|
||||
* @since 2022-09-07
|
||||
*/
|
||||
@Disabled // TODO 芋艿:后续 fix 补充的单测
|
||||
@Disabled // TODO 管理员:后续 fix 补充的单测
|
||||
@Import({TradeOrderUpdateServiceImpl.class, TradeOrderConfig.class, CartServiceImpl.class, TradePriceServiceImpl.class,
|
||||
DeliveryExpressServiceImpl.class, TradeMessageServiceImpl.class
|
||||
})
|
||||
@@ -114,7 +114,7 @@ public class TradeOrderUpdateServiceTest extends BaseDbUnitTest {
|
||||
//// .setItems(Arrays.asList(new AppTradeOrderCreateReqVO.Item().setSkuId(1L).setCount(3),
|
||||
//// new AppTradeOrderCreateReqVO.Item().setSkuId(2L).setCount(4)));
|
||||
// AppTradeOrderCreateReqVO reqVO = null;
|
||||
// // TODO 芋艿:重新高下
|
||||
// // TODO 管理员:重新高下
|
||||
// // mock 方法(商品 SKU 检查)
|
||||
// ProductSkuRespDTO sku01 = randomPojo(ProductSkuRespDTO.class, o -> o.setId(1L).setSpuId(11L)
|
||||
// .setPrice(50).setStock(100)
|
||||
@@ -130,7 +130,7 @@ public class TradeOrderUpdateServiceTest extends BaseDbUnitTest {
|
||||
// .setStatus(ProductSpuStatusEnum.ENABLE.getStatus()));
|
||||
// when(productSpuApi.getSpuList(eq(asSet(11L, 21L)))).thenReturn(Arrays.asList(spu01, spu02));
|
||||
// // mock 方法(用户收件地址的校验)
|
||||
// MemberAddressRespDTO addressRespDTO = new MemberAddressRespDTO().setId(10L).setUserId(userId).setName("芋艿")
|
||||
// MemberAddressRespDTO addressRespDTO = new MemberAddressRespDTO().setId(10L).setUserId(userId).setName("管理员")
|
||||
// .setMobile("15601691300").setAreaId(3306).setDetailAddress("土豆村");
|
||||
// when(addressApi.getAddress(eq(10L), eq(userId))).thenReturn(addressRespDTO);
|
||||
// // mock 方法(价格计算)
|
||||
@@ -195,7 +195,7 @@ public class TradeOrderUpdateServiceTest extends BaseDbUnitTest {
|
||||
// assertNull(tradeOrderDO.getLogisticsId());
|
||||
// assertNull(tradeOrderDO.getDeliveryTime());
|
||||
// assertNull(tradeOrderDO.getReceiveTime());
|
||||
// assertEquals(tradeOrderDO.getReceiverName(), "芋艿");
|
||||
// assertEquals(tradeOrderDO.getReceiverName(), "管理员");
|
||||
// assertEquals(tradeOrderDO.getReceiverMobile(), "15601691300");
|
||||
// assertEquals(tradeOrderDO.getReceiverAreaId(), 3306);
|
||||
// assertEquals(tradeOrderDO.getReceiverDetailAddress(), "土豆村");
|
||||
|
||||
@@ -26,7 +26,7 @@ import static org.mockito.Mockito.when;
|
||||
/**
|
||||
* {@link TradePriceServiceImpl} 的单元测试
|
||||
*
|
||||
* @author 芋道源码
|
||||
* @author 恭学教育
|
||||
*/
|
||||
public class TradePriceServiceImplTest extends BaseMockitoUnitTest {
|
||||
|
||||
|
||||
@@ -22,7 +22,7 @@ import static org.mockito.Mockito.when;
|
||||
/**
|
||||
* {@link TradeBargainActivityPriceCalculator} 的单元测试
|
||||
*
|
||||
* @author 芋道源码
|
||||
* @author 恭学教育
|
||||
*/
|
||||
public class TradeBargainActivityPriceCalculatorTest extends BaseMockitoUnitTest {
|
||||
|
||||
|
||||
@@ -29,7 +29,7 @@ import static org.mockito.Mockito.when;
|
||||
/**
|
||||
* {@link TradeCouponPriceCalculator} 的单元测试类
|
||||
*
|
||||
* @author 芋道源码
|
||||
* @author 恭学教育
|
||||
*/
|
||||
public class TradeCouponPriceCalculatorTest extends BaseMockitoUnitTest {
|
||||
|
||||
|
||||
@@ -26,7 +26,7 @@ import static org.mockito.Mockito.when;
|
||||
/**
|
||||
* {@link TradeDiscountActivityPriceCalculator} 的单元测试类
|
||||
*
|
||||
* @author 芋道源码
|
||||
* @author 恭学教育
|
||||
*/
|
||||
public class TradeDiscountActivityPriceCalculatorTest extends BaseMockitoUnitTest {
|
||||
|
||||
|
||||
@@ -17,7 +17,7 @@ import static java.util.Arrays.asList;
|
||||
import static org.junit.jupiter.api.Assertions.assertEquals;
|
||||
import static org.mockito.Mockito.when;
|
||||
|
||||
// TODO 芋艿:晚点 review
|
||||
// TODO 管理员:晚点 review
|
||||
/**
|
||||
* {@link TradePointGiveCalculator} 的单元测试类
|
||||
*
|
||||
|
||||
@@ -28,7 +28,7 @@ import static org.mockito.Mockito.when;
|
||||
/**
|
||||
* {@link TradeRewardActivityPriceCalculator} 的单元测试类
|
||||
*
|
||||
* @author 芋道源码
|
||||
* @author 恭学教育
|
||||
*/
|
||||
public class TradeRewardActivityPriceCalculatorTest extends BaseMockitoUnitTest {
|
||||
|
||||
|
||||
@@ -40,9 +40,9 @@ mybatis:
|
||||
|
||||
--- #################### 监控相关配置 ####################
|
||||
|
||||
--- #################### 芋道相关配置 ####################
|
||||
--- #################### 恭学相关配置 ####################
|
||||
|
||||
# 芋道配置项,设置当前项目所有自定义的配置
|
||||
# 恭学配置项,设置当前项目所有自定义的配置
|
||||
yudao:
|
||||
info:
|
||||
base-package: cn.iocoder.yudao.module
|
||||
|
||||
Reference in New Issue
Block a user