Merge remote-tracking branch 'yudao/develop' into develop

This commit is contained in:
puhui999
2023-12-24 00:32:47 +08:00
37 changed files with 217 additions and 105 deletions

View File

@ -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')")

View File

@ -25,6 +25,7 @@ import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
@RestController
@RequestMapping("/promotion/decorate")
@Validated
@Deprecated // 废弃
public class AppDecorateController {
@Resource

View File

@ -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_USERNAME_HOME 类似这种哈;
String home = findFirst(pages, page -> "首页".equals(page.getName()), DiyPageDO::getProperty);
String user = findFirst(pages, page -> "我的".equals(page.getName()), DiyPageDO::getProperty);
// 拼接返回

View File

@ -44,6 +44,7 @@ public class DiyPageDO extends BaseDO {
* 备注
*/
private String remark;
// TODO @疯狂:这个字段要不改成 previewPicUrls和别的模块一样用 pic 作为图片哇?
/**
* 预览图,多个逗号分隔
*/

View File

@ -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;

View File

@ -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()));
}

View File

@ -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);

View File

@ -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);
/**
* 更新交易订单已支付

View File

@ -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);