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)); }