mirror of
				https://gitee.com/hhyykk/ipms-sjy.git
				synced 2025-11-04 12:18:42 +08:00 
			
		
		
		
	Merge remote-tracking branch 'yudao/develop' into develop
This commit is contained in:
		@@ -82,6 +82,7 @@ public class DiyTemplateController {
 | 
			
		||||
        return success(DiyTemplateConvert.INSTANCE.convertPage(pageResult));
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    // TODO @疯狂:这个要不和 getDiyTemplate 合并,然后 DiyTemplateRespVO 里面直接把 DiyPagePropertyRespVO 也加上。减少 VO 好了,管理后台 get 多返回点数据,也问题不大的。目的,还是想尽可能降低大家的理解成本哈;
 | 
			
		||||
    @GetMapping("/get-property")
 | 
			
		||||
    @Operation(summary = "获得装修模板属性")
 | 
			
		||||
    @Parameter(name = "id", description = "编号", required = true, example = "1024")
 | 
			
		||||
@@ -92,6 +93,7 @@ public class DiyTemplateController {
 | 
			
		||||
        return success(DiyTemplateConvert.INSTANCE.convertPropertyVo(diyTemplate, pages));
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    // TODO @疯狂:这个接口,要不和 useDiyTemplate 合并成一个,然后 VO 改成我们新的 VO 规范。不改的字段,就不传递。
 | 
			
		||||
    @PutMapping("/update-property")
 | 
			
		||||
    @Operation(summary = "更新装修模板属性")
 | 
			
		||||
    @PreAuthorize("@ss.hasPermission('promotion:diy-template:update')")
 | 
			
		||||
 
 | 
			
		||||
@@ -25,6 +25,7 @@ import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
 | 
			
		||||
@RestController
 | 
			
		||||
@RequestMapping("/promotion/decorate")
 | 
			
		||||
@Validated
 | 
			
		||||
@Deprecated // 废弃
 | 
			
		||||
public class AppDecorateController {
 | 
			
		||||
 | 
			
		||||
    @Resource
 | 
			
		||||
 
 | 
			
		||||
@@ -33,6 +33,7 @@ public class AppDiyTemplateController {
 | 
			
		||||
    @Resource
 | 
			
		||||
    private DiyPageService diyPageService;
 | 
			
		||||
 | 
			
		||||
    // TODO @疯狂:要不要把 used 和 get 接口合并哈;不传递 id,直接拿默认;
 | 
			
		||||
    @GetMapping("/used")
 | 
			
		||||
    @Operation(summary = "使用中的装修模板")
 | 
			
		||||
    public CommonResult<AppDiyTemplatePropertyRespVO> getUsedDiyTemplate() {
 | 
			
		||||
@@ -54,6 +55,7 @@ public class AppDiyTemplateController {
 | 
			
		||||
        }
 | 
			
		||||
        // 查询模板下的页面
 | 
			
		||||
        List<DiyPageDO> pages = diyPageService.getDiyPageByTemplateId(diyTemplate.getId());
 | 
			
		||||
        // TODO @疯狂:首页、我的,要不枚举到 DiyPageDO 例如说 NAME_USER,NAME_HOME 类似这种哈;
 | 
			
		||||
        String home = findFirst(pages, page -> "首页".equals(page.getName()), DiyPageDO::getProperty);
 | 
			
		||||
        String user = findFirst(pages, page -> "我的".equals(page.getName()), DiyPageDO::getProperty);
 | 
			
		||||
        // 拼接返回
 | 
			
		||||
 
 | 
			
		||||
@@ -44,6 +44,7 @@ public class DiyPageDO extends BaseDO {
 | 
			
		||||
     * 备注
 | 
			
		||||
     */
 | 
			
		||||
    private String remark;
 | 
			
		||||
    // TODO @疯狂:这个字段要不改成 previewPicUrls,和别的模块一样用 pic 作为图片哇?
 | 
			
		||||
    /**
 | 
			
		||||
     * 预览图,多个逗号分隔
 | 
			
		||||
     */
 | 
			
		||||
 
 | 
			
		||||
@@ -50,13 +50,14 @@ public class DiyTemplateDO extends BaseDO {
 | 
			
		||||
     * 备注
 | 
			
		||||
     */
 | 
			
		||||
    private String remark;
 | 
			
		||||
    // TODO @疯狂:这个字段要不改成 previewPicUrls,和别的模块一样用 pic 作为图片哇?
 | 
			
		||||
    /**
 | 
			
		||||
     * 预览图
 | 
			
		||||
     */
 | 
			
		||||
    @TableField(typeHandler = StringListTypeHandler.class)
 | 
			
		||||
    private List<String> previewImageUrls;
 | 
			
		||||
    /**
 | 
			
		||||
     * 底部导航属性,JSON 格式
 | 
			
		||||
     * uni-app 底部导航属性,JSON 格式
 | 
			
		||||
     */
 | 
			
		||||
    private String property;
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -61,9 +61,8 @@ public class AppTradeOrderController {
 | 
			
		||||
    @PostMapping("/create")
 | 
			
		||||
    @Operation(summary = "创建订单")
 | 
			
		||||
    @PreAuthenticated
 | 
			
		||||
    public CommonResult<AppTradeOrderCreateRespVO> createOrder(@Valid @RequestBody AppTradeOrderCreateReqVO createReqVO,
 | 
			
		||||
                                                               @RequestHeader Integer terminal) {
 | 
			
		||||
        TradeOrderDO order = tradeOrderUpdateService.createOrder(getLoginUserId(), getClientIP(), createReqVO, terminal);
 | 
			
		||||
    public CommonResult<AppTradeOrderCreateRespVO> createOrder(@Valid @RequestBody AppTradeOrderCreateReqVO createReqVO) {
 | 
			
		||||
        TradeOrderDO order = tradeOrderUpdateService.createOrder(getLoginUserId(), createReqVO);
 | 
			
		||||
        return success(new AppTradeOrderCreateRespVO().setId(order.getId()).setPayOrderId(order.getPayOrderId()));
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -69,8 +69,7 @@ public interface TradeOrderConvert {
 | 
			
		||||
            @Mapping(source = "calculateRespBO.price.vipPrice", target = "vipPrice"),
 | 
			
		||||
            @Mapping(source = "calculateRespBO.price.payPrice", target = "payPrice")
 | 
			
		||||
    })
 | 
			
		||||
    TradeOrderDO convert(Long userId, String userIp, AppTradeOrderCreateReqVO createReqVO,
 | 
			
		||||
                         TradePriceCalculateRespBO calculateRespBO);
 | 
			
		||||
    TradeOrderDO convert(Long userId, AppTradeOrderCreateReqVO createReqVO, TradePriceCalculateRespBO calculateRespBO);
 | 
			
		||||
 | 
			
		||||
    TradeOrderRespDTO convert(TradeOrderDO orderDO);
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -36,12 +36,10 @@ public interface TradeOrderUpdateService {
 | 
			
		||||
     * 【会员】创建交易订单
 | 
			
		||||
     *
 | 
			
		||||
     * @param userId      登录用户
 | 
			
		||||
     * @param userIp      用户 IP 地址
 | 
			
		||||
     * @param createReqVO 创建交易订单请求模型
 | 
			
		||||
     * @param terminal    终端 {@link TerminalEnum}
 | 
			
		||||
     * @return 交易订单的
 | 
			
		||||
     */
 | 
			
		||||
    TradeOrderDO createOrder(Long userId, String userIp, AppTradeOrderCreateReqVO createReqVO, Integer terminal);
 | 
			
		||||
    TradeOrderDO createOrder(Long userId, AppTradeOrderCreateReqVO createReqVO);
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 更新交易订单已支付
 | 
			
		||||
 
 | 
			
		||||
@@ -64,6 +64,8 @@ import java.util.Set;
 | 
			
		||||
import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
 | 
			
		||||
import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.*;
 | 
			
		||||
import static cn.iocoder.yudao.framework.common.util.date.LocalDateTimeUtils.minusTime;
 | 
			
		||||
import static cn.iocoder.yudao.framework.common.util.servlet.ServletUtils.getClientIP;
 | 
			
		||||
import static cn.iocoder.yudao.framework.web.core.util.WebFrameworkUtils.getTerminal;
 | 
			
		||||
import static cn.iocoder.yudao.module.trade.enums.ErrorCodeConstants.*;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
@@ -158,11 +160,11 @@ public class TradeOrderUpdateServiceImpl implements TradeOrderUpdateService {
 | 
			
		||||
    @Override
 | 
			
		||||
    @Transactional(rollbackFor = Exception.class)
 | 
			
		||||
    @TradeOrderLog(operateType = TradeOrderOperateTypeEnum.MEMBER_CREATE)
 | 
			
		||||
    public TradeOrderDO createOrder(Long userId, String userIp, AppTradeOrderCreateReqVO createReqVO, Integer terminal) {
 | 
			
		||||
    public TradeOrderDO createOrder(Long userId, AppTradeOrderCreateReqVO createReqVO) {
 | 
			
		||||
        // 1.1 价格计算
 | 
			
		||||
        TradePriceCalculateRespBO calculateRespBO = calculatePrice(userId, createReqVO);
 | 
			
		||||
        // 1.2 构建订单
 | 
			
		||||
        TradeOrderDO order = buildTradeOrder(userId, userIp, createReqVO, calculateRespBO, terminal);
 | 
			
		||||
        TradeOrderDO order = buildTradeOrder(userId, createReqVO, calculateRespBO);
 | 
			
		||||
        List<TradeOrderItemDO> orderItems = buildTradeOrderItems(order, calculateRespBO);
 | 
			
		||||
 | 
			
		||||
        // 2. 订单创建前的逻辑
 | 
			
		||||
@@ -178,15 +180,15 @@ public class TradeOrderUpdateServiceImpl implements TradeOrderUpdateService {
 | 
			
		||||
        return order;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    private TradeOrderDO buildTradeOrder(Long userId, String clientIp, AppTradeOrderCreateReqVO createReqVO,
 | 
			
		||||
                                         TradePriceCalculateRespBO calculateRespBO, Integer terminal) {
 | 
			
		||||
        TradeOrderDO order = TradeOrderConvert.INSTANCE.convert(userId, clientIp, createReqVO, calculateRespBO);
 | 
			
		||||
    private TradeOrderDO buildTradeOrder(Long userId, AppTradeOrderCreateReqVO createReqVO,
 | 
			
		||||
                                         TradePriceCalculateRespBO calculateRespBO) {
 | 
			
		||||
        TradeOrderDO order = TradeOrderConvert.INSTANCE.convert(userId, createReqVO, calculateRespBO);
 | 
			
		||||
        order.setType(calculateRespBO.getType());
 | 
			
		||||
        order.setNo(tradeNoRedisDAO.generate(TradeNoRedisDAO.TRADE_ORDER_NO_PREFIX));
 | 
			
		||||
        order.setStatus(TradeOrderStatusEnum.UNPAID.getStatus());
 | 
			
		||||
        order.setRefundStatus(TradeOrderRefundStatusEnum.NONE.getStatus());
 | 
			
		||||
        order.setProductCount(getSumValue(calculateRespBO.getItems(), TradePriceCalculateRespBO.OrderItem::getCount, Integer::sum));
 | 
			
		||||
        order.setTerminal(terminal);
 | 
			
		||||
        order.setUserIp(getClientIP()).setTerminal(getTerminal());
 | 
			
		||||
        // 支付 + 退款信息
 | 
			
		||||
        order.setAdjustPrice(0).setPayStatus(false);
 | 
			
		||||
        order.setRefundStatus(TradeOrderRefundStatusEnum.NONE.getStatus()).setRefundPrice(0);
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user