调整框架及订单模块

This commit is contained in:
2025-11-03 17:36:17 +08:00
parent 4f9b9c29a3
commit 323cae015f
67 changed files with 202 additions and 216 deletions

View File

@@ -3,7 +3,7 @@ package com.tashow.cloud.trade.controller.admin.aftersale;
import cn.hutool.core.collection.CollUtil;
import com.tashow.cloud.common.pojo.CommonResult;
import com.tashow.cloud.common.pojo.PageResult;
import com.tashow.cloud.memberapi.api.user.MemberUserApi;
import com.tashow.cloud.userapi.api.user.UserMemberApi;
import com.tashow.cloud.payapi.api.notify.dto.PayRefundNotifyReqDTO;
import com.tashow.cloud.trade.controller.admin.aftersale.vo.*;
import com.tashow.cloud.trade.convert.aftersale.AfterSaleConvert;
@@ -43,7 +43,7 @@ public class AfterSaleController {
@Resource
private AfterSaleLogService afterSaleLogService;
@Resource
private MemberUserApi memberUserApi;
private UserMemberApi memberUserApi;
// 获得售后订单分页
@GetMapping("/page")

View File

@@ -3,7 +3,8 @@ package com.tashow.cloud.trade.controller.admin.order;
import cn.hutool.core.collection.CollUtil;
import com.tashow.cloud.common.pojo.CommonResult;
import com.tashow.cloud.common.pojo.PageResult;
import com.tashow.cloud.memberapi.api.user.MemberUserApi;
import com.tashow.cloud.userapi.api.user.UserMemberApi;
import com.tashow.cloud.userapi.api.user.dto.UserMemberRespDTO;
import com.tashow.cloud.productapi.api.product.ProdApi;
import com.tashow.cloud.productapi.api.product.dto.ProdDO;
import com.tashow.cloud.trade.controller.admin.order.vo.*;
@@ -23,8 +24,10 @@ import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import java.util.List;
import java.util.Map;
import static com.tashow.cloud.common.pojo.CommonResult.success;
import static com.tashow.cloud.common.util.collection.CollectionUtils.convertList;
import static com.tashow.cloud.common.util.collection.CollectionUtils.convertSet;
@@ -45,7 +48,7 @@ public class TradeOrderController {
private TradeOrderLogService tradeOrderLogService;
@Resource
private MemberUserApi memberUserApi;
private UserMemberApi memberUserApi;
@Resource
private ProdApi prodApi;
@@ -67,8 +70,10 @@ public class TradeOrderController {
// 查询订单项
List<TradeOrderItemDO> orderItems = tradeOrderQueryService.getOrderItemListByOrderId(
convertSet(pageResult.getList(), TradeOrderDO::getId));
//查询用户信息
Map<Long, UserMemberRespDTO> userMap = memberUserApi.getUserMap(convertList(pageResult.getList(), TradeOrderDO::getUserId));
// 最终组合
return success(TradeOrderConvert.INSTANCE.convertPage(pageResult, orderItems));
return success(TradeOrderConvert.INSTANCE.convertPage(pageResult, orderItems,userMap));
}
/**

View File

@@ -5,7 +5,6 @@ package com.tashow.cloud.trade.controller.admin.order.vo;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.tashow.cloud.common.enums.TerminalEnum;
import com.tashow.cloud.common.util.json.databind.StringLocalDateTimeSerializer;
import com.tashow.cloud.common.validation.InEnum;
import com.tashow.cloud.tradeapi.enums.order.TradeOrderStatusEnum;
import com.tashow.cloud.tradeapi.enums.order.TradeOrderTypeEnum;
import lombok.Data;
@@ -34,13 +33,11 @@ public class TradeOrderBaseVO {
* 订单来源
* {@link TerminalEnum#getTerminal()}
*/
@InEnum(TerminalEnum.class)
private Integer orderTerminal;
/**
* 订单状态
* {@link TradeOrderStatusEnum#getStatus()}
*/
@InEnum(TradeOrderStatusEnum.class)
private Integer orderStatus;
// 用户编号

View File

@@ -18,12 +18,18 @@ public class TradeOrderPageRespVO extends TradeOrderBaseVO {
private String shopName;
//店铺log
private String shopLogo;
//支付剩余时间
private String payLastTime;
//客服备注
private String merchantRemark;
//取消备注
private String cancelRemark;
//支付剩余时间 单位秒
private Long payLastTime;
//财务状态
private Integer financeStatus;
//售后状态
private Integer afterSaleStatus;
//订单类目
private String orderCategoryName;
//用户备注
private String userRemark;
//支付方式
private Integer payType;
@Data
@@ -38,7 +44,7 @@ public class TradeOrderPageRespVO extends TradeOrderBaseVO {
private Integer count;
// 订单总价
private Integer price;
// 订单总价
// 订单优惠金额
private Integer discountPrice;
//到手价
private Integer handedPrice;

View File

@@ -1,7 +1,7 @@
package com.tashow.cloud.trade.convert.aftersale;
import com.tashow.cloud.common.pojo.PageResult;
import com.tashow.cloud.memberapi.api.user.dto.MemberUserRespDTO;
import com.tashow.cloud.userapi.api.user.dto.UserMemberRespDTO;
import com.tashow.cloud.payapi.api.refund.dto.PayRefundCreateReqDTO;
import com.tashow.cloud.trade.controller.admin.aftersale.vo.AfterSaleDetailRespVO;
import com.tashow.cloud.trade.controller.admin.aftersale.vo.AfterSaleRespPageItemVO;
@@ -47,12 +47,12 @@ public interface AfterSaleConvert {
})
PayRefundCreateReqDTO convert(String userIp, AfterSaleDO afterSale, TradeOrderProperties orderProperties);
MemberUserRespVO convert(MemberUserRespDTO bean);
MemberUserRespVO convert(UserMemberRespDTO bean);
PageResult<AfterSaleRespPageItemVO> convertPage(PageResult<AfterSaleDO> page);
default PageResult<AfterSaleRespPageItemVO> convertPage(PageResult<AfterSaleDO> pageResult,
Map<Long, MemberUserRespDTO> memberUsers) {
Map<Long, UserMemberRespDTO> memberUsers) {
PageResult<AfterSaleRespPageItemVO> voPageResult = convertPage(pageResult);
// 处理会员
voPageResult.getList().forEach(afterSale -> afterSale.setUser(
@@ -65,7 +65,7 @@ public interface AfterSaleConvert {
PageResult<AppAfterSaleRespVO> convertPage02(PageResult<AfterSaleDO> page);
default AfterSaleDetailRespVO convert(AfterSaleDO afterSale, TradeOrderDO order, TradeOrderItemDO orderItem,
MemberUserRespDTO user, List<AfterSaleLogDO> logs) {
UserMemberRespDTO user, List<AfterSaleLogDO> logs) {
AfterSaleDetailRespVO respVO = convert02(afterSale);
// 处理用户信息
respVO.setUser(convert(user));

View File

@@ -9,8 +9,8 @@ import com.tashow.cloud.common.util.date.LocalDateTimeUtils;
import com.tashow.cloud.common.util.ip.AreaUtils;
import com.tashow.cloud.common.util.string.StrUtils;
import com.tashow.cloud.excel.dict.core.DictFrameworkUtils;
import com.tashow.cloud.memberapi.api.address.dto.MemberAddressRespDTO;
import com.tashow.cloud.memberapi.api.user.dto.MemberUserRespDTO;
import com.tashow.cloud.userapi.api.address.dto.MemberAddressRespDTO;
import com.tashow.cloud.userapi.api.user.dto.UserMemberRespDTO;
import com.tashow.cloud.payapi.api.order.dto.PayOrderCreateReqDTO;
import com.tashow.cloud.payapi.enums.DictTypeConstants;
import com.tashow.cloud.productapi.api.product.dto.ProdDO;
@@ -55,15 +55,26 @@ public interface TradeOrderConvert {
TradeOrderConvert INSTANCE = Mappers.getMapper(TradeOrderConvert.class);
//region 分页结果
default PageResult<TradeOrderPageRespVO> convertPage(PageResult<TradeOrderDO> pageResult, List<TradeOrderItemDO> orderItems) {
default PageResult<TradeOrderPageRespVO> convertPage(PageResult<TradeOrderDO> pageResult, List<TradeOrderItemDO> orderItems,Map<Long, UserMemberRespDTO> userMap) {
Map<Long, List<TradeOrderItemDO>> orderItemMap = convertMultiMap(orderItems, TradeOrderItemDO::getOrderId);
// 转化 List
List<TradeOrderPageRespVO> orderVOs = CollectionUtils.convertList(pageResult.getList(), order -> {
TradeOrderPageRespVO orderPageRespVO = convertOrder(order,userMap.get(order.getUserId()));
List<TradeOrderPageRespVO.Item> items = new ArrayList<>();
List<TradeOrderItemDO> itemDO = orderItemMap.get(order.getId());
TradeOrderPageRespVO orderPageRespVO = convert(order, itemDO);
orderPageRespVO.getItems().stream().forEach(item -> {
item.setHandedPrice(item.getPrice() - item.getDiscountPrice());
});
for (TradeOrderItemDO tradeOrderItemDO : itemDO) {
TradeOrderPageRespVO.Item item = convertItem(tradeOrderItemDO);
item.setHandedPrice(tradeOrderItemDO.getPrice() - tradeOrderItemDO.getDiscountPrice());
orderPageRespVO.setShopName(tradeOrderItemDO.getShopName());
orderPageRespVO.setShopLogo(tradeOrderItemDO.getShopLogo());
orderPageRespVO.setOrderCategoryName(tradeOrderItemDO.getOrderCategoryName());
//支付剩余时间 单位miao
orderPageRespVO.setPayLastTime(LocalDateTimeUtils.betweenWithNow(order.getPayTime()));
items.add(item);
}
orderPageRespVO.setItems(items);
return orderPageRespVO;
});
return new PageResult<>(orderVOs, pageResult.getTotal());
@@ -72,9 +83,13 @@ public interface TradeOrderConvert {
@Mappings({
@Mapping(source = "order.id", target = "id"),
@Mapping(source = "order.userId", target = "userId"),
@Mapping(source = "order.merchantRemark", target = "merchantRemark"),
@Mapping(source = "order.createTime", target = "createTime"),
@Mapping(source = "user.nickname", target = "userNickName"),
@Mapping(source = "user.avatar", target = "userAvatar"),
})
TradeOrderPageRespVO convert(TradeOrderDO order, List<TradeOrderItemDO> items);
TradeOrderPageRespVO convertOrder(TradeOrderDO order,UserMemberRespDTO user);
TradeOrderPageRespVO.Item convertItem(TradeOrderItemDO item);
//endregion
//region 订单详情
@@ -174,7 +189,7 @@ public interface TradeOrderConvert {
return createReqDTO;
}
MemberUserRespVO convert(MemberUserRespDTO bean);
MemberUserRespVO convert(UserMemberRespDTO bean);
default PageResult<AppTradeOrderPageItemRespVO> convertPage02(PageResult<TradeOrderDO> pageResult,
List<TradeOrderItemDO> orderItems) {
@@ -274,7 +289,7 @@ public interface TradeOrderConvert {
default BrokerageAddReqBO convert(MemberUserRespDTO user, TradeOrderItemDO item,
default BrokerageAddReqBO convert(UserMemberRespDTO user, TradeOrderItemDO item,
ProductSpuRespDTO spu, ProductSkuRespDTO sku) {
BrokerageAddReqBO bo = new BrokerageAddReqBO().setBizId(String.valueOf(item.getId())).setSourceUserId(item.getUserId())
.setBasePrice(item.getPayPrice())

View File

@@ -68,6 +68,10 @@ public class TradeOrderItemDO extends BaseDO {
* 店铺名称
*/
private String shopName;
/**
* 店铺logo
*/
private String shopLogo;
/**
* 订单类目id
*/

View File

@@ -1,7 +1,7 @@
package com.tashow.cloud.trade.framework.rpc.config;
import com.tashow.cloud.memberapi.api.address.MemberAddressApi;
import com.tashow.cloud.memberapi.api.user.MemberUserApi;
import com.tashow.cloud.userapi.api.address.MemberAddressApi;
import com.tashow.cloud.userapi.api.user.UserMemberApi;
import com.tashow.cloud.payapi.api.order.PayOrderApi;
import com.tashow.cloud.payapi.api.refund.PayRefundApi;
import com.tashow.cloud.payapi.api.transfer.PayTransferApi;
@@ -16,7 +16,7 @@ import org.springframework.context.annotation.Configuration;
@Configuration(proxyBeanMethods = false)
@EnableFeignClients(clients = {
MemberUserApi.class, MemberAddressApi.class,
UserMemberApi.class, MemberAddressApi.class,
ProdApi.class,
PayOrderApi.class, PayRefundApi.class, PayTransferApi.class, PayWalletApi.class,
AdminUserApi.class, NotifyMessageSendApi.class, SocialClientApi.class, SocialUserApi.class

View File

@@ -11,8 +11,8 @@ import cn.hutool.extra.spring.SpringUtil;
import com.tashow.cloud.common.enums.UserTypeEnum;
import com.tashow.cloud.common.util.json.JsonUtils;
import com.tashow.cloud.common.util.number.MoneyUtils;
import com.tashow.cloud.memberapi.api.address.MemberAddressApi;
import com.tashow.cloud.memberapi.api.address.dto.MemberAddressRespDTO;
import com.tashow.cloud.userapi.api.address.MemberAddressApi;
import com.tashow.cloud.userapi.api.address.dto.MemberAddressRespDTO;
import com.tashow.cloud.payapi.api.order.PayOrderApi;
import com.tashow.cloud.payapi.api.order.dto.PayOrderCreateReqDTO;
import com.tashow.cloud.payapi.api.refund.PayRefundApi;