调整订单模块
This commit is contained in:
@@ -10,7 +10,7 @@ import com.tashow.cloud.productapi.enums.ApiConstants;
|
||||
import jakarta.annotation.security.PermitAll;
|
||||
import org.springframework.cloud.openfeign.FeignClient;
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
import org.springframework.web.bind.annotation.PutMapping;
|
||||
import org.springframework.web.bind.annotation.PostMapping;
|
||||
import org.springframework.web.bind.annotation.RequestParam;
|
||||
|
||||
@FeignClient(name = ApiConstants.NAME) // TODO 芋艿:fallbackFactory =
|
||||
@@ -52,15 +52,18 @@ public interface ProdApi {
|
||||
* @param skuId 单品ID
|
||||
* @param stocksNum 扣减数量
|
||||
*/
|
||||
@GetMapping(PREFIX + "/reduceStocks")
|
||||
CommonResult<Boolean> reduceStocks(Long skuId, Integer stocksNum) ;
|
||||
@PostMapping(PREFIX + "/reduceStocks")
|
||||
CommonResult<Boolean> reduceStocks(@RequestParam(value = "skuId", required = false)Long skuId
|
||||
,@RequestParam(value = "stocksNum", required = false) Integer stocksNum
|
||||
) ;
|
||||
/**
|
||||
* 增加库存
|
||||
* @param skuId 单品ID
|
||||
* @param stocksNum 增加数量
|
||||
*/
|
||||
@GetMapping(PREFIX + "/increaseStocks")
|
||||
CommonResult<Boolean> increaseStocks(Long skuId, Integer stocksNum);
|
||||
@PostMapping(PREFIX + "/increaseStocks")
|
||||
CommonResult<Boolean> increaseStocks(@RequestParam(value = "skuId", required = false)Long skuId
|
||||
,@RequestParam(value = "stocksNum", required = false) Integer stocksNum);
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -53,8 +53,10 @@ public class WebAutoConfiguration implements WebMvcConfigurer {
|
||||
*/
|
||||
private void configurePathMatch(PathMatchConfigurer configurer, WebProperties.Api api) {
|
||||
AntPathMatcher antPathMatcher = new AntPathMatcher(".");
|
||||
configurer.addPathPrefix(api.getPrefix(), clazz -> clazz.isAnnotationPresent(RestController.class)
|
||||
&& antPathMatcher.match(api.getController(), clazz.getPackage().getName())); // 仅仅匹配 controller 包
|
||||
configurer.addPathPrefix(api.getPrefix(),
|
||||
clazz -> clazz.isAnnotationPresent(RestController.class)
|
||||
&& antPathMatcher.match(api.getController(), clazz.getPackage().getName())
|
||||
); // 仅仅匹配 controller 包
|
||||
}
|
||||
|
||||
@Bean
|
||||
|
||||
@@ -70,9 +70,8 @@ public class DictDataController {
|
||||
/**
|
||||
* 获得全部字典数据列表", description = "一般用于管理后台缓存字典数据在本地
|
||||
*/
|
||||
@GetMapping(value = {"/list-all-simple", "simple-list"})
|
||||
|
||||
// 无需添加权限认证,因为前端全局都需要
|
||||
@GetMapping(value = {"/list-all-simple", "simple-list"})
|
||||
public CommonResult<List<DictDataSimpleRespVO>> getSimpleDictDataList() {
|
||||
List<DictDataDO> list =
|
||||
dictDataService.getDictDataList(CommonStatusEnum.ENABLE.getStatus(), null);
|
||||
|
||||
@@ -113,15 +113,15 @@ public class TradeOrderController {
|
||||
@PutMapping("/cancel")
|
||||
@PermitAll
|
||||
// @PreAuthorize("@ss.hasPermission('trade:order:query')")
|
||||
public CommonResult<Boolean> cancel(@RequestParam("id") Long id) {
|
||||
return success(tradeOrderUpdateService.cancelOrderByAdmin(id));
|
||||
public CommonResult<Boolean> cancel(@RequestBody TradeOrderCancelReqVo reqVO) {
|
||||
return success(tradeOrderUpdateService.cancelOrderByAdmin(reqVO));
|
||||
}
|
||||
|
||||
/**
|
||||
* 接单确认
|
||||
*
|
||||
* @return
|
||||
*,
|
||||
*/
|
||||
|
||||
@PutMapping("/acceptConfirm")
|
||||
@PermitAll
|
||||
// @PreAuthorize("@ss.hasPermission('trade:order:query')")
|
||||
@@ -147,7 +147,7 @@ public class TradeOrderController {
|
||||
@PutMapping("/update-remark")
|
||||
@PermitAll
|
||||
// @PreAuthorize("@ss.hasPermission('trade:order:update')")
|
||||
public CommonResult<Boolean> updateOrderRemark(@RequestBody TradeOrderRemarkReqVO reqVO) {
|
||||
public CommonResult<Boolean> updateOrderRemark(@Valid @RequestBody TradeOrderRemarkReqVO reqVO) {
|
||||
tradeOrderUpdateService.updateOrderRemark(reqVO);
|
||||
return success(true);
|
||||
}
|
||||
|
||||
@@ -0,0 +1,17 @@
|
||||
package com.tashow.cloud.trade.controller.admin.order.vo;
|
||||
|
||||
import jakarta.validation.constraints.NotNull;
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
public class TradeOrderCancelReqVo {
|
||||
|
||||
//订单id
|
||||
@NotNull(message = "订单编号不能为空")
|
||||
private Long id;
|
||||
//取消原因
|
||||
private String cancelReason;
|
||||
//取消备注
|
||||
private String cancelRemark;
|
||||
|
||||
}
|
||||
@@ -24,6 +24,8 @@ public class TradeOrderDetailRespVO extends TradeOrderBaseVO{
|
||||
|
||||
//取消原因
|
||||
private String cancelReason;
|
||||
//取消备注
|
||||
private String cancelRemark;
|
||||
//商家备注
|
||||
private String merchantRemark;
|
||||
//退款时间
|
||||
|
||||
@@ -20,6 +20,10 @@ public class TradeOrderPageRespVO extends TradeOrderBaseVO {
|
||||
private String shopLogo;
|
||||
//支付剩余时间
|
||||
private String payLastTime;
|
||||
//客服备注
|
||||
private String merchantRemark;
|
||||
//取消备注
|
||||
private String cancelRemark;
|
||||
|
||||
|
||||
@Data
|
||||
|
||||
@@ -14,7 +14,6 @@ import com.tashow.cloud.memberapi.api.user.dto.MemberUserRespDTO;
|
||||
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;
|
||||
import com.tashow.cloud.productapi.api.product.vo.prod.ProdRespVO;
|
||||
import com.tashow.cloud.trade.controller.admin.base.member.user.MemberUserRespVO;
|
||||
import com.tashow.cloud.trade.controller.admin.order.vo.*;
|
||||
import com.tashow.cloud.trade.controller.app.order.vo.*;
|
||||
@@ -73,6 +72,7 @@ public interface TradeOrderConvert {
|
||||
@Mappings({
|
||||
@Mapping(source = "order.id", target = "id"),
|
||||
@Mapping(source = "order.userId", target = "userId"),
|
||||
@Mapping(source = "order.merchantRemark", target = "merchantRemark"),
|
||||
})
|
||||
TradeOrderPageRespVO convert(TradeOrderDO order, List<TradeOrderItemDO> items);
|
||||
//endregion
|
||||
@@ -112,6 +112,9 @@ public interface TradeOrderConvert {
|
||||
|
||||
|
||||
//region修改订单
|
||||
@Mappings({
|
||||
@Mapping(target = "merchantRemark",source = "remark")
|
||||
})
|
||||
TradeOrderDO convert(TradeOrderRemarkReqVO reqVO);
|
||||
//endregion
|
||||
|
||||
|
||||
@@ -1,9 +1,6 @@
|
||||
package com.tashow.cloud.trade.service.order;
|
||||
|
||||
import com.tashow.cloud.trade.controller.admin.order.vo.TradeOrderDeliveryReqVO;
|
||||
import com.tashow.cloud.trade.controller.admin.order.vo.TradeOrderRemarkReqVO;
|
||||
import com.tashow.cloud.trade.controller.admin.order.vo.TradeOrderUpdateAddressReqVO;
|
||||
import com.tashow.cloud.trade.controller.admin.order.vo.TradeOrderUpdatePriceReqVO;
|
||||
import com.tashow.cloud.trade.controller.admin.order.vo.*;
|
||||
import com.tashow.cloud.trade.controller.app.order.vo.AppTradeOrderCreateReqVO;
|
||||
import com.tashow.cloud.trade.controller.app.order.vo.AppTradeOrderSettlementReqVO;
|
||||
import com.tashow.cloud.trade.controller.app.order.vo.AppTradeOrderSettlementRespVO;
|
||||
@@ -107,7 +104,7 @@ public interface TradeOrderUpdateService {
|
||||
*
|
||||
* @param id 订单编号
|
||||
*/
|
||||
boolean cancelOrderByAdmin(Long id);
|
||||
boolean cancelOrderByAdmin(TradeOrderCancelReqVo reqVo);
|
||||
|
||||
/**
|
||||
* 【系统】自动取消订单
|
||||
|
||||
@@ -21,10 +21,7 @@ import com.tashow.cloud.payapi.enums.order.PayOrderStatusEnum;
|
||||
import com.tashow.cloud.sdk.payment.dto.order.PayOrderRespDTO;
|
||||
import com.tashow.cloud.systemapi.api.social.SocialClientApi;
|
||||
import com.tashow.cloud.systemapi.api.social.dto.SocialWxaSubscribeMessageSendReqDTO;
|
||||
import com.tashow.cloud.trade.controller.admin.order.vo.TradeOrderDeliveryReqVO;
|
||||
import com.tashow.cloud.trade.controller.admin.order.vo.TradeOrderRemarkReqVO;
|
||||
import com.tashow.cloud.trade.controller.admin.order.vo.TradeOrderUpdateAddressReqVO;
|
||||
import com.tashow.cloud.trade.controller.admin.order.vo.TradeOrderUpdatePriceReqVO;
|
||||
import com.tashow.cloud.trade.controller.admin.order.vo.*;
|
||||
import com.tashow.cloud.trade.controller.app.order.vo.AppTradeOrderCreateReqVO;
|
||||
import com.tashow.cloud.trade.controller.app.order.vo.AppTradeOrderSettlementReqVO;
|
||||
import com.tashow.cloud.trade.controller.app.order.vo.AppTradeOrderSettlementRespVO;
|
||||
@@ -547,9 +544,9 @@ public class TradeOrderUpdateServiceImpl implements TradeOrderUpdateService {
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
@TradeOrderLog(operateType = TradeOrderOperateTypeEnum.ADMIN_CANCEL)
|
||||
public boolean cancelOrderByAdmin(Long id) {
|
||||
public boolean cancelOrderByAdmin(TradeOrderCancelReqVo reqVo) {
|
||||
// 1.1 校验存在
|
||||
TradeOrderDO order = tradeOrderMapper.selectById(id);
|
||||
TradeOrderDO order = tradeOrderMapper.selectById(reqVo.getId());
|
||||
if (order == null) {
|
||||
throw exception(ORDER_NOT_FOUND);
|
||||
}
|
||||
@@ -558,6 +555,8 @@ public class TradeOrderUpdateServiceImpl implements TradeOrderUpdateService {
|
||||
throw exception(ORDER_CANCEL_FAIL_STATUS_NOT_UNPAID);
|
||||
}
|
||||
|
||||
order.setCancelReason(reqVo.getCancelReason());
|
||||
order.setMerchantRemark(reqVo.getCancelRemark());
|
||||
// 2. 取消订单
|
||||
cancelOrder0(order, TradeOrderCancelTypeEnum.MEMBER_CANCEL);
|
||||
return true;
|
||||
@@ -607,7 +606,10 @@ public class TradeOrderUpdateServiceImpl implements TradeOrderUpdateService {
|
||||
// 1. 更新 TradeOrderDO 状态为已取消
|
||||
int updateCount = tradeOrderMapper.updateByIdAndStatus(order.getId(), order.getOrderStatus(),
|
||||
new TradeOrderDO().setOrderStatus(TradeOrderStatusEnum.CANCELED.getStatus())
|
||||
.setCancelType(cancelType.getType()).setCancelTime(LocalDateTime.now()));
|
||||
.setCancelType(cancelType.getType()).setCancelTime(LocalDateTime.now())
|
||||
.setCancelReason(order.getCancelReason())
|
||||
.setMerchantRemark(order.getMerchantRemark())
|
||||
);
|
||||
if (updateCount == 0) {
|
||||
throw exception(ORDER_CANCEL_FAIL_STATUS_NOT_UNPAID);
|
||||
}
|
||||
|
||||
@@ -1,8 +1,10 @@
|
||||
package com.tashow.cloud.trade.service.order.handler;
|
||||
|
||||
import cn.hutool.core.collection.CollUtil;
|
||||
import com.tashow.cloud.productapi.api.product.ProdApi;
|
||||
import com.tashow.cloud.trade.dal.dataobject.order.TradeOrderDO;
|
||||
import com.tashow.cloud.trade.dal.dataobject.order.TradeOrderItemDO;
|
||||
import jakarta.annotation.Resource;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import java.util.List;
|
||||
@@ -15,12 +17,14 @@ import java.util.List;
|
||||
@Component
|
||||
public class TradeProductSkuOrderHandler implements TradeOrderHandler {
|
||||
|
||||
// @Resource
|
||||
// private ProductSkuApi productSkuApi;
|
||||
@Resource
|
||||
private ProdApi prodApi;
|
||||
|
||||
@Override
|
||||
public void beforeOrderCreate(TradeOrderDO order, List<TradeOrderItemDO> orderItems) {
|
||||
// productSkuApi.updateSkuStock(TradeOrderConvert.INSTANCE.convertNegative(orderItems)).checkError();
|
||||
for (TradeOrderItemDO orderItem : orderItems) {
|
||||
prodApi.increaseStocks(orderItem.getSkuId(),orderItem.getCount()).checkError();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -30,7 +34,9 @@ public class TradeProductSkuOrderHandler implements TradeOrderHandler {
|
||||
if (CollUtil.isEmpty(orderItems)) {
|
||||
return;
|
||||
}
|
||||
// productSkuApi.updateSkuStock(TradeOrderConvert.INSTANCE.convert(orderItems)).checkError();
|
||||
for (TradeOrderItemDO orderItem : orderItems) {
|
||||
prodApi.reduceStocks(orderItem.getSkuId(),orderItem.getCount()).checkError();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
Reference in New Issue
Block a user