peng
2025-10-13 4735bf93cce99c4cb22c14d52dba12ae6023642f
buyer-api/src/main/java/cn/lili/controller/order/OrderBuyerController.java
@@ -9,9 +9,16 @@
import cn.lili.common.security.context.UserContext;
import cn.lili.common.utils.StringUtils;
import cn.lili.common.vo.ResultMessage;
import cn.lili.modules.lmk.domain.entity.UserCheckTemplate;
import cn.lili.modules.lmk.enums.general.AdminRoleEnum;
import cn.lili.modules.lmk.enums.general.TemplateContentTypeEnum;
import cn.lili.modules.lmk.service.UserCheckTemplateService;
import cn.lili.modules.member.entity.dto.MemberAddressDTO;
import cn.lili.modules.order.order.entity.dos.Order;
import cn.lili.modules.order.order.entity.dos.OrderPackage;
import cn.lili.modules.order.order.entity.dto.OrderSearchParams;
import cn.lili.modules.order.order.entity.dto.OrderSearchXcxParams;
import cn.lili.modules.order.order.entity.enums.ModifyAddressEnums;
import cn.lili.modules.order.order.entity.enums.OrderStatusEnum;
import cn.lili.modules.order.order.entity.vo.OrderDetailVO;
import cn.lili.modules.order.order.entity.vo.OrderSimpleVO;
@@ -19,17 +26,23 @@
import cn.lili.modules.order.order.service.OrderItemService;
import cn.lili.modules.order.order.service.OrderPackageService;
import cn.lili.modules.order.order.service.OrderService;
import cn.lili.modules.permission.service.AdminUserService;
import cn.lili.modules.system.entity.vo.Traces;
import cn.lili.utils.COSUtil;
import cn.lili.utils.CommonUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import springfox.documentation.annotations.ApiIgnore;
import javax.validation.Valid;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.util.ArrayList;
@@ -42,6 +55,7 @@
 * @author Chopper
 * @since 2020/11/16 10:08 下午
 */
@Slf4j
@RestController
@Api(tags = "买家端,订单接口")
@RequestMapping("/buyer/order/order")
@@ -58,13 +72,19 @@
    @Autowired
    private COSUtil cosUtil;
    @Autowired
    private AdminUserService adminUserService;
    @Autowired
    private UserCheckTemplateService userCheckTemplateService;
    @ApiOperation(value = "查询会员订单列表")
    @GetMapping
    public ResultMessage<IPage<OrderSimpleVO>> queryMineOrder(OrderSearchParams orderSearchParams) {
        AuthUser currentUser = Objects.requireNonNull(UserContext.getCurrentUser());
        orderSearchParams.setMemberId(currentUser.getId());
        IPage<OrderSimpleVO> t = orderService.queryByParams(orderSearchParams);
        Boolean needHide = false;
        IPage<OrderSimpleVO> t = orderService.queryByParams(orderSearchParams,needHide);
        t.getRecords().forEach(orderSimpleVO -> {
            String groupImages = orderSimpleVO.getGroupImages();
            if (StringUtils.isNotBlank(groupImages)) {
@@ -85,10 +105,25 @@
    @ApiOperation(value = "查询会员订单列表")
    @GetMapping("/xcx")
    public ResultMessage<IPage<OrderSimpleXcxVO>> queryXcxMineOrder(OrderSearchParams orderSearchParams) {
    public ResultMessage<IPage<OrderSimpleXcxVO>> queryXcxMineOrder(OrderSearchXcxParams orderSearchParams) {
        AuthUser currentUser = Objects.requireNonNull(UserContext.getCurrentUser());
        orderSearchParams.setMemberId(currentUser.getId());
        return ResultUtil.data(orderService.queryByXcxParams(orderSearchParams));
    }
    @ApiOperation(value = "根据订单号查询定制模板填写信息")
    @GetMapping("/customize/{sn}")
    public ResultMessage<List<UserCheckTemplate>> customize(@PathVariable @NotBlank String sn) {
        LambdaQueryWrapper<UserCheckTemplate> eq = Wrappers.<UserCheckTemplate>lambdaQuery().eq(UserCheckTemplate::getOrderSn, sn);
        List<UserCheckTemplate> list = userCheckTemplateService.list(eq);
        for (UserCheckTemplate userCheckTemplate : list) {
            if (TemplateContentTypeEnum.IMAGE.name().equals(userCheckTemplate.getContentType())) {
                String content = userCheckTemplate.getContent();
                if (StringUtils.isNotBlank(content)&&!content.contains("http")) {
                    userCheckTemplate.setContent(cosUtil.getPreviewUrl(content));
                }
            }
        }
        return ResultUtil.data(list);
    }
    @ApiOperation(value = "订单明细")
@@ -107,7 +142,37 @@
        });
        return ResultUtil.data(orderDetailVO);
    }
    @ApiOperation(value = "订单明细")
    @ApiImplicitParams({
            @ApiImplicitParam(name = "orderSn", value = "订单编号", required = true, paramType = "path")
    })
    @GetMapping(value = "/editAddress/{orderSn}")
    public ResultMessage<OrderDetailVO> editAddress(@NotNull(message = "订单编号不能为空") @PathVariable("orderSn") String orderSn) {
        OrderDetailVO orderDetailVO = orderService.queryEditAddressDetail(orderSn);
        Order order = orderDetailVO.getOrder();
        if (!OrderStatusEnum.UNDELIVERED.name().equals(order.getOrderStatus())) {
            log.error("订单号为{}------------------->状态异常为{}",orderSn,order.getOrderStatus());
            throw new ServiceException("订单状态异常无法领取");
        }
        String modifyAddressFlag = order.getModifyAddressFlag();
        if (ModifyAddressEnums.USED.name().equals(modifyAddressFlag)) {
            throw new ServiceException("订单已被领取");
        }
        orderDetailVO.getOrderItems().forEach(orderItem -> {
            String image = orderItem.getImage();
            if (StringUtils.isNotBlank(image)&&!image.contains("http")) {
                orderItem.setImage(cosUtil.getPreviewUrl(image));
            }
        });
        return ResultUtil.data(orderDetailVO);
    }
    @ApiOperation(value = "修改收货人信息")
    @ApiImplicitParam(name = "orderSn", value = "订单sn", required = true, dataType = "String", paramType = "path")
    @PostMapping(value = "/update/editAddress/{orderSn}/consignee")
    public ResultMessage<Object> consignee(@NotNull(message = "参数非法") @PathVariable String orderSn,
                                           @Valid @RequestBody MemberAddressDTO memberAddressDTO) {
        return ResultUtil.data(orderService.updateAddressConsignee(orderSn, memberAddressDTO));
    }
    @PreventDuplicateSubmissions
    @ApiOperation(value = "确认收货")
    @ApiImplicitParams({