【功能新增】商城:核销订单时,增加校验是否门店核销员的校验
This commit is contained in:
parent
6bfe628503
commit
fd5af249b9
|
@ -36,6 +36,7 @@ public interface ErrorCodeConstants {
|
|||
ErrorCode ORDER_UPDATE_ADDRESS_FAIL_STATUS_NOT_DELIVERED = new ErrorCode(1_011_000_031, "交易订单修改收货地址失败,原因:订单不是【待发货】状态");
|
||||
ErrorCode ORDER_CREATE_FAIL_EXIST_UNPAID = new ErrorCode(1_011_000_032, "交易订单创建失败,原因:存在未付款订单");
|
||||
ErrorCode ORDER_CANCEL_PAID_FAIL = new ErrorCode(1_011_000_033, "交易订单取消支付失败,原因:订单不是【{}】状态");
|
||||
ErrorCode ORDER_PICK_UP_FAIL_NOT_VERIFY_USER = new ErrorCode(1_011_000_034, "交易订单自提失败,原因:你没有核销该门店订单的权限");
|
||||
|
||||
// ========== After Sale 模块 1-011-000-100 ==========
|
||||
ErrorCode AFTER_SALE_NOT_FOUND = new ErrorCode(1_011_000_100, "售后单不存在");
|
||||
|
|
|
@ -10,19 +10,18 @@ import cn.iocoder.yudao.module.trade.convert.order.TradeOrderConvert;
|
|||
import cn.iocoder.yudao.module.trade.dal.dataobject.order.TradeOrderDO;
|
||||
import cn.iocoder.yudao.module.trade.dal.dataobject.order.TradeOrderItemDO;
|
||||
import cn.iocoder.yudao.module.trade.dal.dataobject.order.TradeOrderLogDO;
|
||||
import cn.iocoder.yudao.module.trade.service.aftersale.AfterSaleService;
|
||||
import cn.iocoder.yudao.module.trade.service.order.TradeOrderLogService;
|
||||
import cn.iocoder.yudao.module.trade.service.order.TradeOrderQueryService;
|
||||
import cn.iocoder.yudao.module.trade.service.order.TradeOrderUpdateService;
|
||||
import io.swagger.v3.oas.annotations.Operation;
|
||||
import io.swagger.v3.oas.annotations.Parameter;
|
||||
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||
import jakarta.annotation.Resource;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.security.access.prepost.PreAuthorize;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import jakarta.annotation.Resource;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Objects;
|
||||
|
@ -31,6 +30,7 @@ import java.util.Set;
|
|||
import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
|
||||
import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertList;
|
||||
import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertSet;
|
||||
import static cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils.getLoginUserId;
|
||||
|
||||
@Tag(name = "管理后台 - 交易订单")
|
||||
@RestController
|
||||
|
@ -144,7 +144,7 @@ public class TradeOrderController {
|
|||
@Parameter(name = "id", description = "交易订单编号")
|
||||
@PreAuthorize("@ss.hasPermission('trade:order:pick-up')")
|
||||
public CommonResult<Boolean> pickUpOrderById(@RequestParam("id") Long id) {
|
||||
tradeOrderUpdateService.pickUpOrderByAdmin(id);
|
||||
tradeOrderUpdateService.pickUpOrderByAdmin(getLoginUserId(), id);
|
||||
return success(true);
|
||||
}
|
||||
|
||||
|
@ -153,7 +153,7 @@ public class TradeOrderController {
|
|||
@Parameter(name = "pickUpVerifyCode", description = "自提核销码")
|
||||
@PreAuthorize("@ss.hasPermission('trade:order:pick-up')")
|
||||
public CommonResult<Boolean> pickUpOrderByVerifyCode(@RequestParam("pickUpVerifyCode") String pickUpVerifyCode) {
|
||||
tradeOrderUpdateService.pickUpOrderByAdmin(pickUpVerifyCode);
|
||||
tradeOrderUpdateService.pickUpOrderByAdmin(getLoginUserId(), pickUpVerifyCode);
|
||||
return success(true);
|
||||
}
|
||||
|
||||
|
|
|
@ -129,16 +129,18 @@ public interface TradeOrderUpdateService {
|
|||
/**
|
||||
* 【管理员】核销订单
|
||||
*
|
||||
* @param userId 管理员编号
|
||||
* @param id 订单编号
|
||||
*/
|
||||
void pickUpOrderByAdmin(Long id);
|
||||
void pickUpOrderByAdmin(Long userId, Long id);
|
||||
|
||||
/**
|
||||
* 【管理员】核销订单
|
||||
*
|
||||
* @param userId 管理员编号
|
||||
* @param pickUpVerifyCode 自提核销码
|
||||
*/
|
||||
void pickUpOrderByAdmin(String pickUpVerifyCode);
|
||||
void pickUpOrderByAdmin(Long userId, String pickUpVerifyCode);
|
||||
|
||||
/**
|
||||
* 【管理员】根据自提核销码,查询订单
|
||||
|
|
|
@ -35,6 +35,7 @@ import cn.iocoder.yudao.module.trade.controller.app.order.vo.item.AppTradeOrderI
|
|||
import cn.iocoder.yudao.module.trade.convert.order.TradeOrderConvert;
|
||||
import cn.iocoder.yudao.module.trade.dal.dataobject.cart.CartDO;
|
||||
import cn.iocoder.yudao.module.trade.dal.dataobject.delivery.DeliveryExpressDO;
|
||||
import cn.iocoder.yudao.module.trade.dal.dataobject.delivery.DeliveryPickUpStoreDO;
|
||||
import cn.iocoder.yudao.module.trade.dal.dataobject.order.TradeOrderDO;
|
||||
import cn.iocoder.yudao.module.trade.dal.dataobject.order.TradeOrderItemDO;
|
||||
import cn.iocoder.yudao.module.trade.dal.mysql.order.TradeOrderItemMapper;
|
||||
|
@ -47,6 +48,7 @@ import cn.iocoder.yudao.module.trade.framework.order.core.annotations.TradeOrder
|
|||
import cn.iocoder.yudao.module.trade.framework.order.core.utils.TradeOrderLogUtils;
|
||||
import cn.iocoder.yudao.module.trade.service.cart.CartService;
|
||||
import cn.iocoder.yudao.module.trade.service.delivery.DeliveryExpressService;
|
||||
import cn.iocoder.yudao.module.trade.service.delivery.DeliveryPickUpStoreService;
|
||||
import cn.iocoder.yudao.module.trade.service.message.TradeMessageService;
|
||||
import cn.iocoder.yudao.module.trade.service.message.bo.TradeOrderMessageWhenDeliveryOrderReqBO;
|
||||
import cn.iocoder.yudao.module.trade.service.order.handler.TradeOrderHandler;
|
||||
|
@ -103,6 +105,8 @@ public class TradeOrderUpdateServiceImpl implements TradeOrderUpdateService {
|
|||
private DeliveryExpressService deliveryExpressService;
|
||||
@Resource
|
||||
private TradeMessageService tradeMessageService;
|
||||
@Resource
|
||||
private DeliveryPickUpStoreService pickUpStoreService;
|
||||
|
||||
@Resource
|
||||
private PayOrderApi payOrderApi;
|
||||
|
@ -717,14 +721,14 @@ public class TradeOrderUpdateServiceImpl implements TradeOrderUpdateService {
|
|||
|
||||
@Override
|
||||
@TradeOrderLog(operateType = TradeOrderOperateTypeEnum.ADMIN_PICK_UP_RECEIVE)
|
||||
public void pickUpOrderByAdmin(Long id) {
|
||||
getSelf().pickUpOrder(tradeOrderMapper.selectById(id));
|
||||
public void pickUpOrderByAdmin(Long userId, Long id) {
|
||||
getSelf().pickUpOrder(userId, tradeOrderMapper.selectById(id));
|
||||
}
|
||||
|
||||
@Override
|
||||
@TradeOrderLog(operateType = TradeOrderOperateTypeEnum.ADMIN_PICK_UP_RECEIVE)
|
||||
public void pickUpOrderByAdmin(String pickUpVerifyCode) {
|
||||
getSelf().pickUpOrder(tradeOrderMapper.selectOneByPickUpVerifyCode(pickUpVerifyCode));
|
||||
public void pickUpOrderByAdmin(Long userId, String pickUpVerifyCode) {
|
||||
getSelf().pickUpOrder(userId, tradeOrderMapper.selectOneByPickUpVerifyCode(pickUpVerifyCode));
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -733,13 +737,19 @@ public class TradeOrderUpdateServiceImpl implements TradeOrderUpdateService {
|
|||
}
|
||||
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public void pickUpOrder(TradeOrderDO order) {
|
||||
public void pickUpOrder(Long userId, TradeOrderDO order) {
|
||||
if (order == null) {
|
||||
throw exception(ORDER_NOT_FOUND);
|
||||
}
|
||||
if (ObjUtil.notEqual(DeliveryTypeEnum.PICK_UP.getType(), order.getDeliveryType())) {
|
||||
throw exception(ORDER_RECEIVE_FAIL_DELIVERY_TYPE_NOT_PICK_UP);
|
||||
}
|
||||
DeliveryPickUpStoreDO deliveryPickUpStore = pickUpStoreService.getDeliveryPickUpStore(order.getPickUpStoreId());
|
||||
if (deliveryPickUpStore == null
|
||||
|| !CollUtil.contains(deliveryPickUpStore.getVerifyUserIds(), userId)) {
|
||||
throw exception(ORDER_PICK_UP_FAIL_NOT_VERIFY_USER);
|
||||
}
|
||||
|
||||
receiveOrder0(order);
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue