10个文件已修改
129 ■■■■ 已修改文件
buyer-api/src/main/java/cn/lili/controller/lmk/VideoCommentController.java 37 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
buyer-api/src/main/java/cn/lili/controller/order/OrderBuyerController.java 9 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
framework/src/main/java/cn/lili/modules/lmk/service/impl/VideoCommentServiceImpl.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
framework/src/main/java/cn/lili/modules/order/order/entity/vo/OrderSimpleVO.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
framework/src/main/java/cn/lili/modules/order/order/mapper/OrderMapper.java 5 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
framework/src/main/java/cn/lili/modules/order/order/service/OrderService.java 5 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
framework/src/main/java/cn/lili/modules/order/order/serviceimpl/OrderServiceImpl.java 42 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
framework/src/main/java/cn/lili/modules/permission/serviceimpl/AdminUserServiceImpl.java 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
manager-api/src/main/java/cn/lili/controller/order/OrderManagerController.java 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
seller-api/src/main/java/cn/lili/controller/order/OrderStoreController.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
buyer-api/src/main/java/cn/lili/controller/lmk/VideoCommentController.java
@@ -3,11 +3,18 @@
import cn.lili.group.Update;
import cn.lili.group.Add;
import cn.lili.modules.lmk.domain.form.ThumbsUpRecordForm;
import com.fasterxml.jackson.databind.ObjectMapper;
import org.springframework.validation.annotation.Validated;
import org.springframework.security.access.prepost.PreAuthorize;
import lombok.RequiredArgsConstructor;
import java.io.BufferedReader;
import java.io.IOException;
import java.nio.charset.StandardCharsets;
import java.util.List;
import org.springframework.validation.annotation.Validated;
import javax.servlet.http.HttpServletRequest;
import javax.validation.constraints.NotEmpty;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
@@ -32,7 +39,8 @@
public class VideoCommentController {
    private final VideoCommentService videoCommentService;
    // Jackson 实例(用于手动解析 JSON)
    private final ObjectMapper objectMapper = new ObjectMapper();
    @PostMapping("/thumbs_up")
    @ApiOperation(value = "点赞评论", notes = "点赞评论")
    public Result thumbsUp(@RequestBody @Validated(Add.class) ThumbsUpRecordForm form) {
@@ -45,9 +53,34 @@
        return videoCommentService.cancelThumbsUp(form);
    }
//    @PostMapping("/comment")
//    @ApiOperation(value = "评论", notes = "评论")
//    public Result comment(@RequestBody @Validated(Add.class) VideoCommentForm form) {
//        System.out.println("打印出:" + form.getCommentContent());
//        String content = EmojiParser.parseToAliases(form.getCommentContent());
//        System.out.println("解析后:" + content);
//        return videoCommentService.comment(form);
//    }
    @PostMapping("/comment")
    @ApiOperation(value = "评论", notes = "评论")
    public Result comment(@RequestBody @Validated(Add.class) VideoCommentForm form) {
    public Result comment(HttpServletRequest request)throws IOException {
        BufferedReader reader = request.getReader();
        StringBuilder jsonStr = new StringBuilder();
        String line;
        while ((line = reader.readLine()) != null) {
            jsonStr.append(line);
        }
        String requestBody = jsonStr.toString();
        System.out.println("后端接收的 JSON 字符串:" + requestBody);
        // 正常输出:{"commentContent":"我\uD83E\uDD26\u200D\u2642\uFE0F...",...}
        // 2. 手动解析 JSON 字符串(显式使用 UTF-8 编码)
        VideoCommentForm form = objectMapper.readValue(
                requestBody.getBytes(StandardCharsets.UTF_8), // 转为 UTF-8 字节数组
                VideoCommentForm.class // 目标实体类
        );
        return videoCommentService.comment(form);
    }
buyer-api/src/main/java/cn/lili/controller/order/OrderBuyerController.java
@@ -9,6 +9,7 @@
import cn.lili.common.security.context.UserContext;
import cn.lili.common.utils.StringUtils;
import cn.lili.common.vo.ResultMessage;
import cn.lili.modules.lmk.enums.general.AdminRoleEnum;
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;
@@ -20,8 +21,10 @@
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.metadata.IPage;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
@@ -59,13 +62,17 @@
    @Autowired
    private COSUtil cosUtil;
    @Autowired
    private AdminUserService adminUserService;
    @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)) {
framework/src/main/java/cn/lili/modules/lmk/service/impl/VideoCommentServiceImpl.java
@@ -78,6 +78,8 @@
     */
    @Override
    public Result comment(VideoCommentForm form) {
        System.out.println("打印评论:"+form);
        // 监测内容是否包含敏感词
        if (SensitiveWordsFilter.includeSentenceWord(form.getCommentContent())) {
            return Result.error("评论含敏感内容");
framework/src/main/java/cn/lili/modules/order/order/entity/vo/OrderSimpleVO.java
@@ -156,9 +156,15 @@
    /**
     * 敏感信息
     */
    private String consigneeName;
    private String consigneeMobile;
    private String memberId;
    @Setter
    private String nickName;
    public List<OrderItemVO> getOrderItems() {
        if (CharSequenceUtil.isEmpty(groupGoodsId)) {
            return new ArrayList<>();
framework/src/main/java/cn/lili/modules/order/order/mapper/OrderMapper.java
@@ -85,6 +85,7 @@
            "store_name,o.store_id as store_id,o.client_type,o.order_type,o.deliver_status,o.order_promotion_type,o.seller_remark, " +
            "o.consignee_name AS consigneeName," +
            "o.consignee_mobile AS consigneeMobile," +
            "o.member_id AS memberId," +
            " GROUP_CONCAT(oi.goods_id) as group_goods_id," +
            " GROUP_CONCAT(oi.sku_id) as group_sku_id," +
            " GROUP_CONCAT(oi.num) as group_num" +
@@ -97,7 +98,9 @@
            ",GROUP_CONCAT(oi.goods_price) as group_goods_price " +
            ",GROUP_CONCAT(oi.is_refund) as group_is_refund " +
            ",GROUP_CONCAT(oi.refund_price) as group_refund_price " +
            " FROM li_order o LEFT JOIN li_order_item AS oi on o.sn = oi.order_sn ${ew.customSqlSegment} ")
            " FROM li_order o LEFT JOIN li_order_item AS oi on o.sn = oi.order_sn " +
            "${ew.customSqlSegment}")
    IPage<OrderSimpleVO> queryByParams(IPage<OrderSimpleVO> page, @Param(Constants.WRAPPER) Wrapper<OrderSimpleVO> queryWrapper);
    /**
     * 查询订单简短信息分页
framework/src/main/java/cn/lili/modules/order/order/service/OrderService.java
@@ -1,5 +1,6 @@
package cn.lili.modules.order.order.service;
import cn.lili.common.vo.ResultMessage;
import cn.lili.modules.member.entity.dto.MemberAddressDTO;
import cn.lili.modules.order.cart.entity.dto.TradeDTO;
import cn.lili.modules.order.order.entity.dos.Order;
@@ -12,6 +13,7 @@
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletResponse;
@@ -50,7 +52,7 @@
     * @param orderSearchParams 查询参数
     * @return 简短订单分页
     */
    IPage<OrderSimpleVO> queryByParams(OrderSearchParams orderSearchParams);
    IPage<OrderSimpleVO> queryByParams(OrderSearchParams orderSearchParams,Boolean needHide);
    /**
     * 订单查询
     *
@@ -117,6 +119,7 @@
     */
    OrderDetailVO queryDetail(String orderSn);
    String sendMqMessage(String  snNo);
    /**
     * 创建订单
     * 1.检查交易信息
framework/src/main/java/cn/lili/modules/order/order/serviceimpl/OrderServiceImpl.java
@@ -23,11 +23,14 @@
import cn.lili.common.utils.CurrencyUtil;
import cn.lili.common.utils.SnowFlake;
import cn.lili.common.utils.StringUtils;
import cn.lili.common.vo.ResultMessage;
import cn.lili.modules.goods.entity.dos.Goods;
import cn.lili.modules.goods.entity.dto.GoodsCompleteMessage;
import cn.lili.modules.goods.service.GoodsService;
import cn.lili.modules.lmk.enums.general.AdminRoleEnum;
import cn.lili.modules.member.entity.dos.Member;
import cn.lili.modules.member.entity.dto.MemberAddressDTO;
import cn.lili.modules.member.mapper.MemberMapper;
import cn.lili.modules.order.cart.entity.dto.TradeDTO;
import cn.lili.modules.order.cart.entity.enums.DeliveryMethodEnum;
import cn.lili.modules.order.order.aop.OrderLogPoint;
@@ -107,6 +110,8 @@
    private static final String ORDER_SN_COLUMN = "order_sn";
    @Autowired
    private MemberMapper memberMapperMapper;
    /**
     * 延时任务
     */
@@ -239,16 +244,24 @@
    }
    @Override
    public IPage<OrderSimpleVO> queryByParams(OrderSearchParams orderSearchParams) {
    public IPage<OrderSimpleVO> queryByParams(OrderSearchParams orderSearchParams,Boolean needHide) {
        QueryWrapper queryWrapper = orderSearchParams.queryWrapper();
        queryWrapper.groupBy("o.id");
        queryWrapper.orderByDesc("o.id");
        IPage<OrderSimpleVO> page =  this.baseMapper.queryByParams(PageUtil.initPage(orderSearchParams), queryWrapper);
        if (needHide){
            if (!adminUserService.havePermissionRole(AdminRoleEnum.ORDER_INFO_PERMISSION)){
                for (OrderSimpleVO vo : page.getRecords()){
                    vo.setConsigneeName(CommonUtil.maskName(vo.getConsigneeName()));
                    vo.setConsigneeMobile(CommonUtil.maskMobile(vo.getConsigneeMobile()));
                }
            }
        }
        if (!adminUserService.havePermissionRole(AdminRoleEnum.ORDER_INFO_PERMISSION)){
            for (OrderSimpleVO vo : page.getRecords()){
                vo.setConsigneeName(CommonUtil.maskName(vo.getConsigneeName()));
                vo.setConsigneeMobile(CommonUtil.maskMobile(vo.getConsigneeMobile()));
        for (OrderSimpleVO vo : page.getRecords()){
            Member member = memberMapperMapper.selectById(vo.getMemberId());
            if (member != null){
                vo.setNickName(member.getNickName());
            }
        }
        return page;
@@ -443,6 +456,25 @@
    }
    @Override
    @Transactional
    public String sendMqMessage(String snNo) {
        Order order = this.getBySn(snNo);
        if (order == null) {
            throw new ServiceException(ResultCode.ORDER_NOT_EXIST);
        }
        if (!OrderStatusEnum.PAID.name().equals(order.getOrderStatus())) {
            throw new ServiceException("订单状态不是已支付状态");
        }
        OrderMessage orderMessage = new OrderMessage();
        //发送订单已付款消息
        orderMessage.setOrderSn(order.getSn());
        orderMessage.setPaymentMethod(order.getPaymentMethod());
        orderMessage.setNewStatus(OrderStatusEnum.PAID);
        this.sendUpdateStatusMessage(orderMessage);
        return null;
    }
    @Override
    @OrderLogPoint(description = "'订单['+#orderSn+']取消,原因为:'+#reason", orderSn = "#orderSn")
    @Transactional(rollbackFor = Exception.class)
    public Order cancel(String orderSn, String reason) {
framework/src/main/java/cn/lili/modules/permission/serviceimpl/AdminUserServiceImpl.java
@@ -179,7 +179,17 @@
            }else {
                if (StringUtils.isNotBlank(currentUser.getId())){
                    AdminUser adminUser = this.findByUserById(currentUser.getId());
                    String[] roleIds = adminUser.getRoleIds().split(",");
                    if (adminUser == null){
                        //查询到用户为空
                        return false;
                    }
                    String roleIdsStr = adminUser.getRoleIds();
                    if (StringUtils.isBlank(roleIdsStr)){
                        //判断角色id是否为null
                        return false;
                    }
                    String[] roleIds = roleIdsStr.split(",");
                    List<Role> list = roleService.findRoles(Arrays.asList(roleIds));
                    for (Role item: list){
                        if (adminRoleEnum.getValue().equals(item.getName())){
manager-api/src/main/java/cn/lili/controller/order/OrderManagerController.java
@@ -61,7 +61,13 @@
    @ApiOperation(value = "查询订单列表分页")
    @GetMapping
    public ResultMessage<IPage<OrderSimpleVO>> queryMineOrder(OrderSearchParams orderSearchParams) {
        return ResultUtil.data(orderService.queryByParams(orderSearchParams));
        Boolean needHide = true;
        return ResultUtil.data(orderService.queryByParams(orderSearchParams,needHide));
    }
    @ApiOperation(value = "更新订单状态")
    @GetMapping("/sendMessage/{snNo}")
    public ResultMessage<String> sendMqMessage(@PathVariable String  snNo) {
        return ResultUtil.data(orderService.sendMqMessage(snNo));
    }
    @ApiOperation(value = "查询订单导出列表")
seller-api/src/main/java/cn/lili/controller/order/OrderStoreController.java
@@ -81,7 +81,8 @@
    @ApiOperation(value = "查询订单列表")
    @GetMapping
    public ResultMessage<IPage<OrderSimpleVO>> queryMineOrder(OrderSearchParams orderSearchParams) {
        return ResultUtil.data(orderService.queryByParams(orderSearchParams));
        Boolean needHide = true;
        return ResultUtil.data(orderService.queryByParams(orderSearchParams,needHide));
    }