From 294f9b6690701f80b525305f6ee70a8e49abe582 Mon Sep 17 00:00:00 2001 From: Jerry Yan <792602257@qq.com> Date: Sun, 5 Jan 2025 16:18:35 +0800 Subject: [PATCH] =?UTF-8?q?=E8=AE=A2=E5=8D=95=E6=94=B9=E6=94=B9=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/ycwl/basic/biz/OrderBiz.java | 6 +- .../controller/mobile/AppOrderController.java | 8 +- .../com/ycwl/basic/mapper/OrderMapper.java | 2 +- .../model/pc/order/entity/OrderEntity.java | 1 + .../model/pc/order/req/CreateOrderReqVO.java | 12 ++ .../com/ycwl/basic/model/wx/WxPayRespVO.java | 1 + .../service/impl/mobile/WxPayServiceImpl.java | 78 +++++----- .../service/impl/pc/OrderServiceImpl.java | 142 +++++++++--------- .../basic/service/mobile/WxPayService.java | 2 + .../ycwl/basic/service/pc/OrderService.java | 5 +- src/main/resources/mapper/OrderMapper.xml | 25 +-- 11 files changed, 147 insertions(+), 135 deletions(-) create mode 100644 src/main/java/com/ycwl/basic/model/pc/order/req/CreateOrderReqVO.java diff --git a/src/main/java/com/ycwl/basic/biz/OrderBiz.java b/src/main/java/com/ycwl/basic/biz/OrderBiz.java index fd9c706..dc2181d 100644 --- a/src/main/java/com/ycwl/basic/biz/OrderBiz.java +++ b/src/main/java/com/ycwl/basic/biz/OrderBiz.java @@ -30,14 +30,14 @@ public class OrderBiz { public PriceObj queryPrice(int goodsType, Long goodsId) { PriceObj priceObj = new PriceObj(); + priceObj.setGoodsType(goodsType); + priceObj.setGoodsId(goodsId); switch (goodsType) { case 0: // video VideoRespVO video = videoMapper.getById(goodsId); if (video == null) { return null; } - priceObj.setGoodsId(goodsId); - priceObj.setGoodsType(goodsType); TemplateRespVO template = templateRepository.getTemplate(video.getTemplateId()); if (template == null) { return priceObj; @@ -85,6 +85,8 @@ public class OrderBiz { if (priceObj == null) { return respVO; } + respVO.setGoodsType(goodsType); + respVO.setGoodsId(goodsId); respVO.setPrice(priceObj.getPrice()); respVO.setSlashPrice(priceObj.getSlashPrice()); } diff --git a/src/main/java/com/ycwl/basic/controller/mobile/AppOrderController.java b/src/main/java/com/ycwl/basic/controller/mobile/AppOrderController.java index ad4a305..3c6ee5d 100644 --- a/src/main/java/com/ycwl/basic/controller/mobile/AppOrderController.java +++ b/src/main/java/com/ycwl/basic/controller/mobile/AppOrderController.java @@ -3,10 +3,12 @@ package com.ycwl.basic.controller.mobile; import com.github.pagehelper.PageInfo; import com.ycwl.basic.biz.OrderBiz; import com.ycwl.basic.constant.BaseContextHandler; +import com.ycwl.basic.model.jwt.JwtInfo; import com.ycwl.basic.model.mobile.goods.GoodsPriceQueryReq; import com.ycwl.basic.model.mobile.order.IsBuyRespVO; import com.ycwl.basic.model.mobile.order.OrderAppPageReq; import com.ycwl.basic.model.mobile.order.RefundOrderReq; +import com.ycwl.basic.model.pc.order.req.CreateOrderReqVO; import com.ycwl.basic.model.pc.order.req.OrderAddReq; import com.ycwl.basic.model.pc.order.resp.OrderAppRespVO; import com.ycwl.basic.model.wx.WxPayRespVO; @@ -14,6 +16,7 @@ import com.ycwl.basic.repository.OrderRepository; import com.ycwl.basic.service.mobile.GoodsService; import com.ycwl.basic.service.pc.OrderService; import com.ycwl.basic.utils.ApiResponse; +import com.ycwl.basic.utils.JwtTokenUtil; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.beans.factory.annotation.Autowired; @@ -51,8 +54,9 @@ public class AppOrderController { @ApiOperation("用户端订单新增") @PostMapping("/addOrder") - public ApiResponse addOrder(@RequestBody OrderAddReq orderAddReq) throws Exception { - return orderService.add(orderAddReq); + public ApiResponse addOrder(@RequestBody CreateOrderReqVO orderAddReq) throws Exception { + JwtInfo worker = JwtTokenUtil.getWorker(); + return orderService.createOrder(worker.getUserId(), orderAddReq); } diff --git a/src/main/java/com/ycwl/basic/mapper/OrderMapper.java b/src/main/java/com/ycwl/basic/mapper/OrderMapper.java index 8ee9c32..5330e4c 100644 --- a/src/main/java/com/ycwl/basic/mapper/OrderMapper.java +++ b/src/main/java/com/ycwl/basic/mapper/OrderMapper.java @@ -21,7 +21,7 @@ import java.util.List; public interface OrderMapper { List list(OrderReqQuery orderReqQuery); OrderRespVO getById(Long id); - int add(OrderAddReq order); + int add(OrderEntity order); // int deleteById(Long id); int update(OrderUpdateReq order); diff --git a/src/main/java/com/ycwl/basic/model/pc/order/entity/OrderEntity.java b/src/main/java/com/ycwl/basic/model/pc/order/entity/OrderEntity.java index d76b2ba..6aaa50b 100644 --- a/src/main/java/com/ycwl/basic/model/pc/order/entity/OrderEntity.java +++ b/src/main/java/com/ycwl/basic/model/pc/order/entity/OrderEntity.java @@ -16,6 +16,7 @@ import java.util.Date; public class OrderEntity { @TableId private Long id; + private Long scenicId; /** * 用户id */ diff --git a/src/main/java/com/ycwl/basic/model/pc/order/req/CreateOrderReqVO.java b/src/main/java/com/ycwl/basic/model/pc/order/req/CreateOrderReqVO.java new file mode 100644 index 0000000..bc41fd3 --- /dev/null +++ b/src/main/java/com/ycwl/basic/model/pc/order/req/CreateOrderReqVO.java @@ -0,0 +1,12 @@ +package com.ycwl.basic.model.pc.order.req; + +import lombok.Data; + +@Data +public class CreateOrderReqVO { + private Long scenicId; + private Integer goodsType; + private Long goodsId; + private String brokerCode; + private Long couponId; +} diff --git a/src/main/java/com/ycwl/basic/model/wx/WxPayRespVO.java b/src/main/java/com/ycwl/basic/model/wx/WxPayRespVO.java index da2cc0b..94b6ea3 100644 --- a/src/main/java/com/ycwl/basic/model/wx/WxPayRespVO.java +++ b/src/main/java/com/ycwl/basic/model/wx/WxPayRespVO.java @@ -18,6 +18,7 @@ import java.io.Serializable; public class WxPayRespVO implements Serializable { private static final long serialVersionUID = 1L; + private boolean needPay = true; /** * 预支付交易会话标识小程序下单接口返回的prepay_id参数值 */ diff --git a/src/main/java/com/ycwl/basic/service/impl/mobile/WxPayServiceImpl.java b/src/main/java/com/ycwl/basic/service/impl/mobile/WxPayServiceImpl.java index c8b1be0..c119ac6 100644 --- a/src/main/java/com/ycwl/basic/service/impl/mobile/WxPayServiceImpl.java +++ b/src/main/java/com/ycwl/basic/service/impl/mobile/WxPayServiceImpl.java @@ -6,7 +6,6 @@ import com.aliyuncs.utils.StringUtils; import com.wechat.pay.java.core.Config; import com.wechat.pay.java.core.RSAAutoCertificateConfig; import com.wechat.pay.java.core.exception.ServiceException; -import com.wechat.pay.java.core.http.HttpMethod; import com.wechat.pay.java.core.notification.NotificationConfig; import com.wechat.pay.java.core.notification.NotificationParser; import com.wechat.pay.java.core.notification.RequestParam; @@ -46,7 +45,6 @@ import com.ycwl.basic.service.HttpService; import com.ycwl.basic.service.mobile.WxPayService; import com.ycwl.basic.service.pc.OrderService; import com.ycwl.basic.utils.ApiResponse; -import com.ycwl.basic.utils.DateUtils; import com.ycwl.basic.utils.SnowFlakeUtil; import com.ycwl.basic.utils.WXPayUtil; import lombok.extern.slf4j.Slf4j; @@ -204,42 +202,7 @@ public class WxPayServiceImpl implements WxPayService { } if (Objects.nonNull(OrderStateEnum)) { long orderId = Long.parseLong(parse.getOutTradeNo()); - try { - orderService.updateOrderState(orderId, OrderStateEnum, null); - // 添加统计数据 - statisticsHandler(orderId); - }catch (Exception e) { - log.error("[微信支付回调]更新订单状态失败", e); - } - OrderRespVO byId = orderMapper.getById(orderId); - List orderItemList = orderMapper.listOrderItemByOrderId(orderId); - orderItemList.forEach(orderItemVO -> { - orderRepository.clearUserBuyItemCache(byId.getMemberId(), orderItemVO.getGoodsType(), orderItemVO.getGoodsId()); - switch (orderItemVO.getGoodsType()) { - case 0: // 成片 - MemberVideoEntity memberVideoEntity = new MemberVideoEntity(); - memberVideoEntity.setMemberId(byId.getMemberId()); - memberVideoEntity.setVideoId(orderItemVO.getGoodsId()); - memberVideoEntity.setIsBuy(1); - memberVideoEntity.setOrderId(orderId); - videoMapper.updateRelation(memberVideoEntity); - break; - case 1: // 源视频 - case 2: // 源素材 - MemberSourceEntity memberSourceEntity = new MemberSourceEntity(); - memberSourceEntity.setMemberId(byId.getMemberId()); - // 源素材的goodsId是人脸ID - memberSourceEntity.setFaceId(orderItemVO.getGoodsId()); - memberSourceEntity.setType(orderItemVO.getGoodsType()); - memberSourceEntity.setIsBuy(1); - memberSourceEntity.setOrderId(orderId); - sourceMapper.updateRelation(memberSourceEntity); - break; - default: - break; - } - }); - + notifyOrderSuccess(orderId); } }).start(); } catch (Exception e) { @@ -247,6 +210,45 @@ public class WxPayServiceImpl implements WxPayService { } } + @Override + public void notifyOrderSuccess(Long orderId) { + try { + orderService.updateOrderState(orderId, OrderStateEnum.PAID, null); + // 添加统计数据 + statisticsHandler(orderId); + }catch (Exception e) { + log.error("[微信支付回调]更新订单状态失败", e); + } + OrderRespVO byId = orderMapper.getById(orderId); + List orderItemList = orderMapper.listOrderItemByOrderId(orderId); + orderItemList.forEach(orderItemVO -> { + orderRepository.clearUserBuyItemCache(byId.getMemberId(), orderItemVO.getGoodsType(), orderItemVO.getGoodsId()); + switch (orderItemVO.getGoodsType()) { + case 0: // 成片 + MemberVideoEntity memberVideoEntity = new MemberVideoEntity(); + memberVideoEntity.setMemberId(byId.getMemberId()); + memberVideoEntity.setVideoId(orderItemVO.getGoodsId()); + memberVideoEntity.setIsBuy(1); + memberVideoEntity.setOrderId(orderId); + videoMapper.updateRelation(memberVideoEntity); + break; + case 1: // 源视频 + case 2: // 源素材 + MemberSourceEntity memberSourceEntity = new MemberSourceEntity(); + memberSourceEntity.setMemberId(byId.getMemberId()); + // 源素材的goodsId是人脸ID + memberSourceEntity.setFaceId(orderItemVO.getGoodsId()); + memberSourceEntity.setType(orderItemVO.getGoodsType()); + memberSourceEntity.setIsBuy(1); + memberSourceEntity.setOrderId(orderId); + sourceMapper.updateRelation(memberSourceEntity); + break; + default: + break; + } + }); + } + // private void statisticsHandler(Long orderId) { ApiResponse orderDetail = orderService.detail(orderId); diff --git a/src/main/java/com/ycwl/basic/service/impl/pc/OrderServiceImpl.java b/src/main/java/com/ycwl/basic/service/impl/pc/OrderServiceImpl.java index 25195aa..4e8cd60 100644 --- a/src/main/java/com/ycwl/basic/service/impl/pc/OrderServiceImpl.java +++ b/src/main/java/com/ycwl/basic/service/impl/pc/OrderServiceImpl.java @@ -2,6 +2,7 @@ package com.ycwl.basic.service.impl.pc; import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; +import com.ycwl.basic.biz.OrderBiz; import com.ycwl.basic.constant.BaseContextHandler; import com.ycwl.basic.constant.NumberConstant; import com.ycwl.basic.enums.*; @@ -11,11 +12,13 @@ import com.ycwl.basic.model.jwt.JwtInfo; import com.ycwl.basic.model.mobile.goods.GoodsDetailVO; import com.ycwl.basic.model.mobile.goods.GoodsPriceQueryReq; import com.ycwl.basic.model.mobile.order.OrderAppPageReq; +import com.ycwl.basic.model.mobile.order.PriceObj; import com.ycwl.basic.model.mobile.order.RefundOrderReq; import com.ycwl.basic.model.mobile.statistic.req.StatisticsRecordAddReq; import com.ycwl.basic.model.pc.member.resp.MemberRespVO; import com.ycwl.basic.model.pc.order.entity.OrderEntity; import com.ycwl.basic.model.pc.order.entity.OrderItemEntity; +import com.ycwl.basic.model.pc.order.req.CreateOrderReqVO; import com.ycwl.basic.model.pc.order.req.OrderUpdateReq; import com.ycwl.basic.model.pc.order.req.OrderAddReq; import com.ycwl.basic.model.pc.order.req.OrderReqQuery; @@ -70,6 +73,8 @@ public class OrderServiceImpl implements OrderService { private OrderOperationMapper orderOperationMapper; @Autowired private StatisticsMapper statisticsMapper; + @Autowired + private OrderBiz orderBiz; @Override public ApiResponse> pageQuery(OrderReqQuery query) { @@ -89,92 +94,39 @@ public class OrderServiceImpl implements OrderService { return ApiResponse.success(orderMapper.getById(orderId)); } - @Override - @Transactional(rollbackFor = Exception.class) - public ApiResponse add(OrderAddReq order) throws Exception { - Long orderId = SnowFlakeUtil.getLongId(); - order.setId(orderId); - JwtInfo worker = JwtTokenUtil.getWorker(); - Long userId = worker.getUserId(); - MemberRespVO memberRespVO = memberMapper.getById(userId); - order.setMemberId(userId); - order.setOpenid(memberRespVO.getOpenId()); - - /* 成片的时候子订单只会有一个,素材的时候 子订单多个且价格与子订单数量无关,只与子订单商品对应景区定义的价格相同*/ - List goodsItemList = order.getGoodsItemList(); - GoodsDetailVO goodsDetailVO = goodsItemList.get(NumberConstant.ZERO); - if (order.getGoodsType() == null) { - order.setGoodsType(goodsDetailVO.getGoodsType()); - } - GoodsPriceQueryReq goodsPriceQueryReq = new GoodsPriceQueryReq(); - goodsPriceQueryReq.setGoodsId(goodsDetailVO.getGoodsId()); - goodsPriceQueryReq.setGoodsType(order.getGoodsType()); - goodsPriceQueryReq.setScenicId(order.getScenicId()); - BigDecimal price = goodsService.queryPrice(goodsPriceQueryReq).getData(); - order.setPrice(price); - order.setPayPrice(price); - - int add = orderMapper.add(order); - if (add == NumberConstant.ZERO) { - return ApiResponse.fail("订单添加失败"); - } else { - Integer goodsType = order.getGoodsType(); - List orderItems = new ArrayList<>(); - goodsItemList.forEach(goodsDto -> { - Long goodsId = goodsDto.getGoodsId(); - OrderItemEntity orderItemEntity = new OrderItemEntity(); - orderItemEntity.setId(SnowFlakeUtil.getLongId()); - orderItemEntity.setOrderId(orderId); - orderItemEntity.setGoodsType(goodsType); - orderItemEntity.setGoodsId(goodsId); - orderItems.add(orderItemEntity); - }); - int addOrderItems = orderMapper.addOrderItems(orderItems); - if (addOrderItems == NumberConstant.ZERO) { - log.error("订单明细添加失败"); - return ApiResponse.fail("订单添加失败"); - } - //点击支付按钮统计 - OrderRespVO orderRespVO = orderMapper.getById(orderId); - StatisticsRecordAddReq statisticsRecordAddReq = new StatisticsRecordAddReq(); - statisticsRecordAddReq.setMemberId(orderRespVO.getMemberId()); - statisticsRecordAddReq.setType(StatisticEnum.CLICK_ON_PAYMENT.code); - statisticsRecordAddReq.setScenicId(orderRespVO.getScenicId()); - statisticsRecordAddReq.setMorphId(orderId); - statisticsMapper.addStatisticsRecord(statisticsRecordAddReq); - - - WxPayRespVO wxPayRespVO = initiatePayment(order, goodsDetailVO); - return ApiResponse.success(wxPayRespVO); - - - } - } - /** * 发起支付 * @param order 订单 - * @param goodsDetailVO 商品详情 + * @param orderItems 商品详情 * @return 支付请求结果 */ - private WxPayRespVO initiatePayment(OrderAddReq order,GoodsDetailVO goodsDetailVO) throws Exception { + private WxPayRespVO initiatePayment(OrderEntity order, List orderItems) throws Exception { WXPayOrderReqVO wxPayOrderReqVO = new WXPayOrderReqVO(); - Integer goodsType = order.getGoodsType(); - String goodsName = null; - if (goodsType == NumberConstant.ONE) { - goodsName = goodsDetailVO.getGoodsName(); - } else if (goodsType == NumberConstant.TWO) { - Integer sourceType = goodsDetailVO.getSourceType(); - goodsName = SourceTypeNameEnum.getRemark(sourceType); + if (orderItems.size() > 1) { + goodsName = "多项景区VLOG商品"; + } else { + int type = orderItems.get(NumberConstant.ZERO).getGoodsType(); + if (type == NumberConstant.ZERO) { + goodsName = "景区VLog视频"; + } else if (type == NumberConstant.ONE) { + goodsName = "景区原片包"; + } else if (type == NumberConstant.TWO) { + goodsName = "景区照片包"; + } } - - wxPayOrderReqVO.setOpenId(order.getOpenid()) + if (order.getPayPrice().equals(BigDecimal.ZERO)) { + // 0元支付 + WxPayRespVO wxPayRespVO = new WxPayRespVO(); + wxPayRespVO.setNeedPay(false); + return wxPayRespVO; + } + wxPayOrderReqVO.setOpenId(order.getOpenId()) .setMemberId(order.getMemberId()) .setOrderSn(order.getId()) .setTotalPrice(BigDecimalUtil.convertToCents(order.getPrice())) .setGoodsName(goodsName) - .setDescription("VLOG视频支付"); + .setDescription(goodsName); return wxPayService.createOrder(wxPayOrderReqVO); } @@ -319,4 +271,46 @@ public class OrderServiceImpl implements OrderService { return ApiResponse.success(pageInfo); } + @Override + @Transactional(rollbackFor = Exception.class) + public ApiResponse createOrder(Long userId, CreateOrderReqVO createOrderReqVO) throws Exception { + OrderEntity order = new OrderEntity(); + Long orderId = SnowFlakeUtil.getLongId(); + order.setId(orderId); + order.setMemberId(userId); + MemberRespVO member = memberMapper.getById(userId); + order.setOpenId(member.getOpenId()); + order.setScenicId(createOrderReqVO.getScenicId()); + List orderItems = new ArrayList<>(); + OrderItemEntity orderItem = new OrderItemEntity(); + orderItem.setGoodsId(createOrderReqVO.getGoodsId()); + orderItem.setGoodsType(createOrderReqVO.getGoodsType()); + orderItem.setOrderId(orderId); + orderItems.add(orderItem); + PriceObj priceObj = orderBiz.queryPrice(createOrderReqVO.getGoodsType(), createOrderReqVO.getGoodsId()); + order.setPrice(priceObj.getPrice()); + // promo code + // coupon + order.setPayPrice(priceObj.getPrice()); + order.setStatus(OrderStateEnum.UNPAID.getState()); + orderMapper.add(order); + int addOrderItems = orderMapper.addOrderItems(orderItems); + if (addOrderItems == NumberConstant.ZERO) { + log.error("订单明细添加失败"); + return ApiResponse.fail("订单添加失败"); + } + //点击支付按钮统计 + OrderRespVO orderRespVO = orderMapper.getById(orderId); + StatisticsRecordAddReq statisticsRecordAddReq = new StatisticsRecordAddReq(); + statisticsRecordAddReq.setMemberId(orderRespVO.getMemberId()); + statisticsRecordAddReq.setType(StatisticEnum.CLICK_ON_PAYMENT.code); + statisticsRecordAddReq.setScenicId(orderRespVO.getScenicId()); + statisticsRecordAddReq.setMorphId(orderId); + statisticsMapper.addStatisticsRecord(statisticsRecordAddReq); + + + WxPayRespVO wxPayRespVO = initiatePayment(order, orderItems); + return ApiResponse.success(wxPayRespVO); + } + } diff --git a/src/main/java/com/ycwl/basic/service/mobile/WxPayService.java b/src/main/java/com/ycwl/basic/service/mobile/WxPayService.java index a6cf16e..56ca11a 100644 --- a/src/main/java/com/ycwl/basic/service/mobile/WxPayService.java +++ b/src/main/java/com/ycwl/basic/service/mobile/WxPayService.java @@ -20,6 +20,8 @@ public interface WxPayService { */ void payNotify(HttpServletRequest xml); + void notifyOrderSuccess(Long orderId); + /** * 微信支付结果查询 */ diff --git a/src/main/java/com/ycwl/basic/service/pc/OrderService.java b/src/main/java/com/ycwl/basic/service/pc/OrderService.java index dbc4a79..e567d6a 100644 --- a/src/main/java/com/ycwl/basic/service/pc/OrderService.java +++ b/src/main/java/com/ycwl/basic/service/pc/OrderService.java @@ -5,6 +5,7 @@ import com.ycwl.basic.enums.OrderStateEnum; import com.ycwl.basic.model.mobile.order.OrderAppPageReq; import com.ycwl.basic.model.mobile.order.RefundOrderReq; import com.ycwl.basic.model.pc.order.entity.OrderEntity; +import com.ycwl.basic.model.pc.order.req.CreateOrderReqVO; import com.ycwl.basic.model.pc.order.req.OrderUpdateReq; import com.ycwl.basic.model.pc.order.req.OrderAddReq; import com.ycwl.basic.model.pc.order.req.OrderReqQuery; @@ -26,7 +27,7 @@ public interface OrderService { ApiResponse detail(Long orderId); - ApiResponse add(OrderAddReq query) throws Exception; +// ApiResponse add(OrderAddReq query) throws Exception; ApiResponse update(OrderUpdateReq query); @@ -59,4 +60,6 @@ public interface OrderService { void remarkOrder(Long orderId, OrderEntity query); ApiResponse> refundPageQuery(OrderReqQuery query); + + ApiResponse createOrder(Long userId, CreateOrderReqVO orderAddReq) throws Exception; } diff --git a/src/main/resources/mapper/OrderMapper.xml b/src/main/resources/mapper/OrderMapper.xml index 7ec4a60..d3d9ed2 100644 --- a/src/main/resources/mapper/OrderMapper.xml +++ b/src/main/resources/mapper/OrderMapper.xml @@ -14,7 +14,6 @@ - @@ -40,7 +39,6 @@ - @@ -113,13 +111,13 @@ - insert into `order`(id, member_id, openid,price, pay_price, remark, broker_id, promo_code,goods_type,scenic_id) - VALUES (#{id}, #{memberId}, #{openid},#{price}, #{payPrice}, #{remark}, #{brokerId}, #{promoCode},#{goodsType},#{scenicId}) + insert into `order`(id, member_id, openid, price, pay_price, remark, broker_id, promo_code, scenic_id) + VALUES (#{id}, #{memberId}, #{openId}, #{price}, #{payPrice}, #{remark}, #{brokerId}, #{promoCode}, #{scenicId}) - insert into order_item(id, order_id,goods_type, goods_id) VALUES + insert into order_item(order_id,goods_type, goods_id) VALUES - (#{item.id}, #{item.orderId}, #{item.goodsType},#{item.goodsId}) + (#{item.orderId}, #{item.goodsType},#{item.goodsId}) @@ -160,13 +158,11 @@