diff --git a/src/main/java/com/ycwl/basic/biz/OrderBiz.java b/src/main/java/com/ycwl/basic/biz/OrderBiz.java index 7b8eed2..0683ff8 100644 --- a/src/main/java/com/ycwl/basic/biz/OrderBiz.java +++ b/src/main/java/com/ycwl/basic/biz/OrderBiz.java @@ -32,8 +32,10 @@ import com.ycwl.basic.repository.SourceRepository; import com.ycwl.basic.repository.TemplateRepository; import com.ycwl.basic.repository.VideoRepository; import com.ycwl.basic.repository.VideoTaskRepository; +import com.ycwl.basic.service.printer.PrinterService; import com.ycwl.basic.utils.ApiResponse; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.Lazy; import org.springframework.stereotype.Component; import java.math.BigDecimal; @@ -74,6 +76,9 @@ public class OrderBiz { private BrokerBiz brokerBiz; @Autowired private CouponBiz couponBiz; + @Autowired + @Lazy + private PrinterService printerService; public PriceObj queryPrice(Long scenicId, int goodsType, Long goodsId) { PriceObj priceObj = new PriceObj(); @@ -237,6 +242,8 @@ public class OrderBiz { case 1: // 视频原素材 case 2: // 照片原素材 sourceRepository.setUserIsBuyItem(order.getMemberId(), item.getGoodsType(), item.getGoodsId(), order.getId()); + case 3: + printerService.setUserIsBuyItem(order.getMemberId(), item.getGoodsId(), order.getId()); } }); orderRepository.clearOrderCache(orderId); // 更新完了,清理下 diff --git a/src/main/java/com/ycwl/basic/controller/mobile/AppPrinterController.java b/src/main/java/com/ycwl/basic/controller/mobile/AppPrinterController.java index bdaf0b9..3d9daf1 100644 --- a/src/main/java/com/ycwl/basic/controller/mobile/AppPrinterController.java +++ b/src/main/java/com/ycwl/basic/controller/mobile/AppPrinterController.java @@ -3,6 +3,7 @@ package com.ycwl.basic.controller.mobile; import com.ycwl.basic.annotation.IgnoreToken; import com.ycwl.basic.model.jwt.JwtInfo; import com.ycwl.basic.model.pc.printer.resp.MemberPrintResp; +import com.ycwl.basic.model.printer.req.FromSourceReq; import com.ycwl.basic.service.printer.PrinterService; import com.ycwl.basic.storage.StorageFactory; import com.ycwl.basic.utils.ApiResponse; @@ -11,6 +12,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; @@ -18,6 +20,7 @@ import org.springframework.web.multipart.MultipartFile; import java.io.IOException; import java.util.List; +import java.util.Map; import java.util.UUID; @RestController @@ -69,6 +72,12 @@ public class AppPrinterController { printerService.setPhotoCropped(JwtTokenUtil.getWorker().getUserId(), scenicId, id, url); return ApiResponse.success(url); } + @PostMapping("/uploadTo/{scenicId}/formSource") + public ApiResponse uploadFromSource(@PathVariable("scenicId") Long scenicId, @RequestBody FromSourceReq req) throws IOException { + printerService.addUserPhotoFromSource(JwtTokenUtil.getWorker().getUserId(), scenicId, req); + return ApiResponse.success(null); + } + @PostMapping("/setQuantity/{scenicId}/{id}") public ApiResponse setQuantity(@PathVariable("scenicId") Long scenicId, @PathVariable("id") Long id, @RequestParam("quantity") Integer quantity) { if (quantity == null) { @@ -84,4 +93,13 @@ public class AppPrinterController { public ApiResponse queryPrice(@PathVariable("scenicId") Long scenicId) { return ApiResponse.success(printerService.queryPrice(JwtTokenUtil.getWorker().getUserId(), scenicId)); } + + @PostMapping("/order/{scenicId}") + public ApiResponse> createOrder(@PathVariable("scenicId") Long scenicId) { + return ApiResponse.success(printerService.createOrder(JwtTokenUtil.getWorker().getUserId(), scenicId, null)); + } + @PostMapping("/order/{scenicId}/toPrinter/{printerId}") + public ApiResponse> createOrderToPrinter(@PathVariable("scenicId") Long scenicId, @PathVariable("printerId") Integer printerId) { + return ApiResponse.success(printerService.createOrder(JwtTokenUtil.getWorker().getUserId(), scenicId, printerId)); + } } diff --git a/src/main/java/com/ycwl/basic/mapper/PrintTaskMapper.java b/src/main/java/com/ycwl/basic/mapper/PrintTaskMapper.java new file mode 100644 index 0000000..85330d4 --- /dev/null +++ b/src/main/java/com/ycwl/basic/mapper/PrintTaskMapper.java @@ -0,0 +1,10 @@ +package com.ycwl.basic.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.ycwl.basic.model.pc.printer.entity.PrintTaskEntity; +import org.apache.ibatis.annotations.Mapper; + +@Mapper +public interface PrintTaskMapper extends BaseMapper { + int insertTask(PrintTaskEntity entity); +} diff --git a/src/main/java/com/ycwl/basic/mapper/PrinterMapper.java b/src/main/java/com/ycwl/basic/mapper/PrinterMapper.java index 338afb5..6e17a61 100644 --- a/src/main/java/com/ycwl/basic/mapper/PrinterMapper.java +++ b/src/main/java/com/ycwl/basic/mapper/PrinterMapper.java @@ -42,4 +42,12 @@ public interface PrinterMapper { int setPhotoCropped(Long memberId, Long scenicId, Long id, String url); int setPhotoQuantity(Long memberId, Long scenicId, Long id, Integer quantity); + + List getUserPhotoByIds(List ids); + + int setUserIsBuyItem(Long memberId, Long id, Long orderId); + + void updateUserPhotoListToPrinter(Long memberId, Long scenicId, Integer printerId); + + List listRelationByOrderId(Long orderId); } \ No newline at end of file diff --git a/src/main/java/com/ycwl/basic/model/pc/printer/resp/MemberPrintResp.java b/src/main/java/com/ycwl/basic/model/pc/printer/resp/MemberPrintResp.java index 652de59..25f1070 100644 --- a/src/main/java/com/ycwl/basic/model/pc/printer/resp/MemberPrintResp.java +++ b/src/main/java/com/ycwl/basic/model/pc/printer/resp/MemberPrintResp.java @@ -13,6 +13,7 @@ public class MemberPrintResp { private String origUrl; private String cropUrl; private Integer quantity; + private Integer printerId; private Long orderId; private Integer status; private Date createTime; diff --git a/src/main/java/com/ycwl/basic/model/printer/req/FromSourceReq.java b/src/main/java/com/ycwl/basic/model/printer/req/FromSourceReq.java new file mode 100644 index 0000000..891a524 --- /dev/null +++ b/src/main/java/com/ycwl/basic/model/printer/req/FromSourceReq.java @@ -0,0 +1,10 @@ +package com.ycwl.basic.model.printer.req; + +import lombok.Data; + +import java.util.List; + +@Data +public class FromSourceReq { + List ids; +} diff --git a/src/main/java/com/ycwl/basic/service/pc/impl/OrderServiceImpl.java b/src/main/java/com/ycwl/basic/service/pc/impl/OrderServiceImpl.java index d7e1c60..3bf5b25 100644 --- a/src/main/java/com/ycwl/basic/service/pc/impl/OrderServiceImpl.java +++ b/src/main/java/com/ycwl/basic/service/pc/impl/OrderServiceImpl.java @@ -32,6 +32,7 @@ import com.ycwl.basic.model.pc.order.resp.OrderRespVO; import com.ycwl.basic.model.pc.orderOp.entity.OrderOperationEntity; import com.ycwl.basic.model.pc.price.entity.PriceConfigEntity; import com.ycwl.basic.model.pc.price.resp.GoodsListRespVO; +import com.ycwl.basic.model.pc.printer.resp.MemberPrintResp; import com.ycwl.basic.model.pc.source.entity.SourceEntity; import com.ycwl.basic.model.pc.task.entity.TaskEntity; import com.ycwl.basic.model.pc.template.resp.TemplateRespVO; @@ -101,6 +102,8 @@ public class OrderServiceImpl implements OrderService { private TemplateRepository templateRepository; @Autowired private TaskTaskServiceImpl taskTaskService; + @Autowired + private PrinterMapper printerMapper; @Override public ApiResponse> pageQuery(OrderReqQuery query) { @@ -204,6 +207,26 @@ public class OrderServiceImpl implements OrderService { item.setShootingTime(memberVideoEntityList.get(0).getCreateTime()); } } + } else if (Integer.valueOf(3).equals(item.getGoodsType())) { // 打印照片 goodsId就是memberPrintId + List list = printerMapper.getUserPhotoByIds(orderItemList.stream().map(OrderItemVO::getGoodsId).collect(Collectors.toList())); + item.setCoverList(orderItemList.stream().map(OrderItemVO::getCoverUrl).collect(Collectors.toList())); + if (!_f.contains(3)) { + _f.add(3); + if (!list.isEmpty()) { + for (MemberPrintResp sourceEntity : list) { + GoodsDetailVO goods = new GoodsDetailVO(); + goods.setGoodsId(Long.valueOf(sourceEntity.getId())); + goods.setGoodsName("打印照片("+sourceEntity.getQuantity()+"张)"); + goods.setUrl(sourceEntity.getCropUrl()); + goods.setGoodsType(3); + goods.setScenicId(sourceEntity.getScenicId()); + goods.setTemplateCoverUrl(sourceEntity.getCropUrl()); + goods.setScenicId(sourceEntity.getScenicId()); + goods.setCreateTime(sourceEntity.getCreateTime()); + goodsList.add(goods); + } + } + } } else { item.setCoverList(Collections.singletonList(item.getCoverUrl())); VideoEntity videoMapperById = videoRepository.getVideo(item.getGoodsId()); @@ -342,12 +365,16 @@ public class OrderServiceImpl implements OrderService { if (!memberVideoEntityList.isEmpty()) { item.setShootingTime(memberVideoEntityList.get(0).getCreateTime()); } - } else { + } else if (Integer.valueOf(0).equals(item.getGoodsType())) { item.setCoverList(Collections.singletonList(item.getCoverUrl())); VideoEntity video = videoRepository.getVideo(item.getGoodsId()); if (video != null) { item.setShootingTime(videoTaskRepository.getTaskShotDate(video.getTaskId())); } + } else if (Integer.valueOf(3).equals(item.getGoodsType())) { + // 打印订单 + List photo = printerMapper.getUserPhotoByIds(orderItemList.stream().map(OrderItemVO::getGoodsId).collect(Collectors.toList())); + item.setCoverList(photo.stream().map(MemberPrintResp::getCropUrl).collect(Collectors.toList())); } }); }); diff --git a/src/main/java/com/ycwl/basic/service/printer/PrinterService.java b/src/main/java/com/ycwl/basic/service/printer/PrinterService.java index 7dd09e5..f176da3 100644 --- a/src/main/java/com/ycwl/basic/service/printer/PrinterService.java +++ b/src/main/java/com/ycwl/basic/service/printer/PrinterService.java @@ -4,12 +4,14 @@ import com.ycwl.basic.model.mobile.order.PriceObj; import com.ycwl.basic.model.pc.printer.entity.PrinterEntity; import com.ycwl.basic.model.pc.printer.resp.MemberPrintResp; import com.ycwl.basic.model.pc.printer.resp.PrinterResp; +import com.ycwl.basic.model.printer.req.FromSourceReq; import com.ycwl.basic.model.printer.req.PrinterSyncReq; import com.ycwl.basic.model.printer.resp.PrintTaskResp; import com.ycwl.basic.model.printer.req.WorkerAuthReqVo; import com.ycwl.basic.utils.ApiResponse; import java.util.List; +import java.util.Map; public interface PrinterService { List listByScenicId(Long scenicId); @@ -32,6 +34,8 @@ public interface PrinterService { List getUserPhotoList(Long userId, Long scenicId); + List getUserPhotoListByOrderId(Long orderId); + boolean deleteUserPhoto(Long memberId, Long scenicId, Long relationId); boolean addUserPhoto(Long memberId, Long scenicId, String url); @@ -43,4 +47,12 @@ public interface PrinterService { int setPhotoQuantity(Long memberId, Long scenicId, Long id, Integer quantity); PriceObj queryPrice(Long memberId, Long scenicId); + + boolean addUserPhotoFromSource(Long memberId, Long scenicId, FromSourceReq req); + + Map createOrder(Long memberId, Long scenicId, Integer printerId); + + void batchSetUserPhotoListToPrinter(Long memberId, Long scenicId, Integer printerId); + + void setUserIsBuyItem(Long memberId, Long id, Long orderId); } \ No newline at end of file diff --git a/src/main/java/com/ycwl/basic/service/printer/impl/PrinterServiceImpl.java b/src/main/java/com/ycwl/basic/service/printer/impl/PrinterServiceImpl.java index 7d85faa..4bc85e0 100644 --- a/src/main/java/com/ycwl/basic/service/printer/impl/PrinterServiceImpl.java +++ b/src/main/java/com/ycwl/basic/service/printer/impl/PrinterServiceImpl.java @@ -1,32 +1,70 @@ package com.ycwl.basic.service.printer.impl; +import com.ycwl.basic.biz.OrderBiz; +import com.ycwl.basic.constant.NumberConstant; +import com.ycwl.basic.enums.OrderStateEnum; +import com.ycwl.basic.exception.BaseException; +import com.ycwl.basic.mapper.MemberMapper; +import com.ycwl.basic.mapper.OrderMapper; +import com.ycwl.basic.mapper.PrintTaskMapper; import com.ycwl.basic.mapper.PrinterMapper; +import com.ycwl.basic.mapper.SourceMapper; import com.ycwl.basic.model.mobile.order.PriceObj; +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.price.entity.PriceConfigEntity; import com.ycwl.basic.model.pc.printer.entity.PrintTaskEntity; import com.ycwl.basic.model.pc.printer.entity.PrinterEntity; import com.ycwl.basic.model.pc.printer.resp.MemberPrintResp; import com.ycwl.basic.model.pc.printer.resp.PrinterResp; +import com.ycwl.basic.model.pc.source.resp.SourceRespVO; +import com.ycwl.basic.model.printer.req.FromSourceReq; import com.ycwl.basic.model.printer.req.PrinterSyncReq; import com.ycwl.basic.model.printer.req.WorkerAuthReqVo; import com.ycwl.basic.model.printer.resp.PrintTaskResp; +import com.ycwl.basic.model.wx.WXPayOrderReqVO; import com.ycwl.basic.repository.PriceRepository; +import com.ycwl.basic.service.mobile.WxPayService; import com.ycwl.basic.service.printer.PrinterService; import com.ycwl.basic.utils.ApiResponse; +import com.ycwl.basic.utils.SnowFlakeUtil; +import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.Lazy; import org.springframework.stereotype.Service; import java.math.BigDecimal; +import java.math.RoundingMode; import java.util.Collections; +import java.util.Date; +import java.util.HashMap; import java.util.List; +import java.util.Map; +import java.util.Objects; +import java.util.stream.Collectors; +@Slf4j @Service public class PrinterServiceImpl implements PrinterService { @Autowired private PrinterMapper printerMapper; @Autowired private PriceRepository priceRepository; + @Autowired + private SourceMapper sourceMapper; + @Autowired + private MemberMapper memberMapper; + @Autowired + private OrderMapper orderMapper; + @Autowired + @Lazy + private OrderBiz orderBiz; + @Autowired + private WxPayService wxPayService; + @Autowired + private PrintTaskMapper printTaskMapper; @Override public List listByScenicId(Long scenicId) { @@ -131,6 +169,11 @@ public class PrinterServiceImpl implements PrinterService { return list; } + @Override + public List getUserPhotoListByOrderId(Long orderId) { + return printerMapper.listRelationByOrderId(orderId); + } + @Override public boolean deleteUserPhoto(Long memberId, Long scenicId, Long relationId) { int record = printerMapper.deleteUserPhoto(memberId, scenicId, relationId); @@ -164,11 +207,133 @@ public class PrinterServiceImpl implements PrinterService { // 判断几张 PriceConfigEntity priceConfig = priceRepository.getPriceConfigByScenicTypeGoods(scenicId, 3, null); PriceObj obj = new PriceObj(); - obj.setPrice(priceConfig.getPrice().multiply(BigDecimal.valueOf(userPhotoList.size()))); - obj.setSlashPrice(priceConfig.getSlashPrice().multiply(BigDecimal.valueOf(userPhotoList.size()))); + long count = userPhotoList.stream().filter(item -> Objects.nonNull(item.getQuantity())).mapToInt(MemberPrintResp::getQuantity).sum(); + obj.setPrice(priceConfig.getPrice().multiply(BigDecimal.valueOf(count))); + obj.setSlashPrice(priceConfig.getSlashPrice().multiply(BigDecimal.valueOf(count))); obj.setGoodsType(3); obj.setFree(false); obj.setScenicId(scenicId); return obj; } + + @Override + public boolean addUserPhotoFromSource(Long memberId, Long scenicId, FromSourceReq req) { + req.getIds().forEach(id -> { + SourceRespVO byId = sourceMapper.getById(id); + if (byId == null) { + return; + } + printerMapper.addUserPhoto(memberId, scenicId, byId.getUrl()); + }); + return false; + } + + @Override + public Map createOrder(Long memberId, Long scenicId, Integer printerId) { + if (printerId == null) { + List printerList = printerMapper.listByScenicId(scenicId); + if (printerList.size() != 1) { + throw new BaseException("请选择打印机"); + } else { + printerId = printerList.get(0).getId(); + } + } else { + PrinterEntity printer = printerMapper.getById(printerId); + if (printer == null) { + throw new BaseException("打印机不存在"); + } + if (printer.getStatus() != 1) { + throw new BaseException("打印机已停用"); + } + if (!printer.getScenicId().equals(scenicId)) { + throw new BaseException("打印机不属于该景区"); + } + } + PriceConfigEntity priceConfig = priceRepository.getPriceConfigByScenicTypeGoods(scenicId, 3, null); + if (priceConfig == null) { + throw new BaseException("该套餐暂未开放购买"); + } + log.info("创建打印订单,价格配置:{}", priceConfig); + OrderEntity order = new OrderEntity(); + Long orderId = SnowFlakeUtil.getLongId(); + order.setId(orderId); + order.setMemberId(memberId); + MemberRespVO member = memberMapper.getById(memberId); + order.setOpenId(member.getOpenId()); + order.setScenicId(scenicId); + order.setType(priceConfig.getType()); + batchSetUserPhotoListToPrinter(memberId, scenicId, printerId); + List userPhotoList = getUserPhotoList(memberId, scenicId); + List orderItems = userPhotoList.stream().map(goods -> { + OrderItemEntity orderItem = new OrderItemEntity(); + orderItem.setOrderId(orderId); + // member_print + orderItem.setGoodsId(Long.valueOf(goods.getId())); + orderItem.setGoodsType(3); + return orderItem; + }).collect(Collectors.toList()); + long count = userPhotoList.stream().filter(item -> Objects.nonNull(item.getQuantity())).mapToInt(MemberPrintResp::getQuantity).sum(); + order.setPrice(priceConfig.getPrice().multiply(BigDecimal.valueOf(count))); + order.setSlashPrice(priceConfig.getSlashPrice().multiply(BigDecimal.valueOf(count))); + order.setPayPrice(priceConfig.getPrice().multiply(BigDecimal.valueOf(count))); +// order.setFaceId(); + if (order.getPayPrice().equals(BigDecimal.ZERO)) { + order.setStatus(OrderStateEnum.PAID.getState()); + order.setPayAt(new Date()); + } else { + order.setStatus(OrderStateEnum.UNPAID.getState()); + } + orderMapper.add(order); + int addOrderItems = orderMapper.addOrderItems(orderItems); + if (addOrderItems == NumberConstant.ZERO) { + log.error("订单明细添加失败"); + throw new BaseException("订单添加失败"); + } + Map data = new HashMap<>(); + if (order.getPayPrice().equals(BigDecimal.ZERO)) { + orderBiz.paidOrder(order.getId()); + data.put("needPay", false); + return data; + } else { + WXPayOrderReqVO wxPayOrderReqVO = new WXPayOrderReqVO(); + wxPayOrderReqVO.setOpenId(order.getOpenId()) + .setMemberId(order.getMemberId()) + .setOrderSn(order.getId()) + .setTotalPrice(order.getPayPrice().setScale(2, RoundingMode.HALF_UP).multiply(new BigDecimal(100)).intValueExact()) + .setGoodsName("照片打印") + .setDescription("照片打印"); + try { + data = wxPayService.createOrder(order.getScenicId(), wxPayOrderReqVO); + } catch (Exception e) { + throw new BaseException(e); + } + data.put("orderId", orderId); + return data; + } + } + + @Override + public void batchSetUserPhotoListToPrinter(Long memberId, Long scenicId, Integer printerId) { + printerMapper.updateUserPhotoListToPrinter(memberId, scenicId, printerId); + } + + @Override + public void setUserIsBuyItem(Long memberId, Long id, Long orderId) { + printerMapper.setUserIsBuyItem(memberId, id, orderId); + // 创建打印任务 + List userPhotoListByOrderId = getUserPhotoListByOrderId(orderId); + userPhotoListByOrderId.forEach(item -> { + PrinterEntity printer = printerMapper.getById(item.getPrinterId()); + PrintTaskEntity task = new PrintTaskEntity(); + task.setPrinterId(printer.getId()); + task.setStatus(0); + task.setUrl(item.getCropUrl()); + task.setPrinterName(printer.getUsePrinter()); + task.setHeight(printer.getPreferH()); + task.setWidth(printer.getPreferW()); + task.setCreateTime(new Date()); + task.setUpdateTime(new Date()); + printTaskMapper.insertTask(task); + }); + } } \ No newline at end of file diff --git a/src/main/resources/mapper/OrderMapper.xml b/src/main/resources/mapper/OrderMapper.xml index b9895a0..66d67f1 100644 --- a/src/main/resources/mapper/OrderMapper.xml +++ b/src/main/resources/mapper/OrderMapper.xml @@ -99,7 +99,11 @@ FROM member_source ms LEFT JOIN face f ON ms.face_id = f.id LEFT JOIN source s ON ms.source_id = s.id - ) + ), + member_photo_data AS ( + SELECT mp.member_id, 3 as type, mp.id, mp.crop_url as url, mp.quantity, mp.status, mp.create_time + FROM member_print mp + ) SELECT oi.id AS oiId, oi.order_id AS orderId, @@ -109,12 +113,14 @@ sc.name AS scenic_name, CASE oi.goods_type WHEN '0' THEN mvd.cover_url + WHEN '3' THEN mpd.url END AS coverUrl, oi.goods_type, CASE oi.goods_type WHEN '0' THEN mvd.name WHEN '1' THEN '录像集' WHEN '2' THEN '照片集' + WHEN '3' THEN '照片打印' ELSE '其他' END AS goods_name, CASE oi.goods_type @@ -134,12 +140,14 @@ CASE oi.goods_type WHEN '1' THEN msd.url WHEN '2' THEN msd.url + WHEN '3' THEN mpd.url END AS imgUrl FROM order_item oi LEFT JOIN `order` o ON oi.order_id = o.id LEFT JOIN scenic sc ON o.scenic_id = sc.id LEFT JOIN member_video_data mvd ON o.face_id = mvd.face_id AND oi.goods_id = mvd.video_id LEFT JOIN member_source_data msd ON o.face_id = msd.face_id AND oi.goods_id = msd.face_id AND msd.type = oi.goods_type + LEFT JOIN member_photo_data mpd ON oi.goods_id = mpd.id AND mpd.type = oi.goods_type WHERE oi.order_id = #{id}; diff --git a/src/main/resources/mapper/PrintTaskMapper.xml b/src/main/resources/mapper/PrintTaskMapper.xml new file mode 100644 index 0000000..40e2051 --- /dev/null +++ b/src/main/resources/mapper/PrintTaskMapper.xml @@ -0,0 +1,8 @@ + + + + + insert into print_task(printer_id, status, printer_name, url, width, height, create_time) + values (#{printerId}, 0, #{printerName}, #{url}, #{width}, #{height}, NOW()) + + \ No newline at end of file diff --git a/src/main/resources/mapper/PrinterMapper.xml b/src/main/resources/mapper/PrinterMapper.xml index 0960cbf..2017e56 100644 --- a/src/main/resources/mapper/PrinterMapper.xml +++ b/src/main/resources/mapper/PrinterMapper.xml @@ -41,19 +41,38 @@ + + @@ -121,6 +140,12 @@ UPDATE member_print SET quantity = #{quantity}, update_time = NOW() WHERE id = #{id} + + UPDATE member_print SET order_id = #{orderId}, status = 1, update_time = NOW() WHERE member_id = #{memberId} AND id = #{id} + + + UPDATE member_print SET printer_id = #{printerId}, update_time = NOW() WHERE member_id = #{memberId} AND scenic_id = #{scenicId} AND status = 0 AND printer_id is null +