You've already forked FrameTour-BE
feat(printer): 新增样品使用功能并优化打印流程
- 在AppPrinterController中新增/useSample接口用于使用样品- PrinterServiceImpl中实现生成微信小程序二维码逻辑 - 更新setUserIsBuyItem方法签名以支持异常抛出- 添加useSample方法占位实现 - 引入相关依赖类如MpConfigEntity、OrderRepository和WxMpUtil
This commit is contained in:
@@ -36,6 +36,12 @@ public class AppPrinterController {
|
||||
return ApiResponse.success(printerService.listByScenicId(scenicId));
|
||||
}
|
||||
|
||||
@PostMapping("/useSample/{sampleId}")
|
||||
public ApiResponse<?> useSample(@PathVariable("sampleId") Long sampleId) throws IOException {
|
||||
JwtInfo worker = JwtTokenUtil.getWorker();
|
||||
return ApiResponse.success(printerService.useSample(worker.getUserId(), sampleId));
|
||||
}
|
||||
|
||||
@GetMapping("/getListFor/{scenicId}")
|
||||
public ApiResponse<List<MemberPrintResp>> getListFor(@PathVariable("scenicId") Long scenicId, @RequestParam(required = false) String faceId) {
|
||||
JwtInfo worker = JwtTokenUtil.getWorker();
|
||||
|
||||
@@ -55,4 +55,6 @@ public interface PrinterService {
|
||||
void batchSetUserPhotoListToPrinter(Long memberId, Long scenicId, Integer printerId);
|
||||
|
||||
void setUserIsBuyItem(Long memberId, Long id, Long orderId);
|
||||
|
||||
Object useSample(Long userId, Long sampleId);
|
||||
}
|
||||
@@ -18,6 +18,7 @@ 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.mp.MpConfigEntity;
|
||||
import com.ycwl.basic.model.pc.order.entity.OrderEntity;
|
||||
import com.ycwl.basic.model.pc.order.entity.OrderItemEntity;
|
||||
import com.ycwl.basic.pricing.dto.PriceCalculationRequest;
|
||||
@@ -36,6 +37,7 @@ 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.OrderRepository;
|
||||
import com.ycwl.basic.repository.ScenicRepository;
|
||||
import com.ycwl.basic.service.mobile.WxPayService;
|
||||
import com.ycwl.basic.service.printer.PrinterService;
|
||||
@@ -46,6 +48,7 @@ import com.ycwl.basic.utils.ApiResponse;
|
||||
import com.ycwl.basic.utils.ImageUtils;
|
||||
import com.ycwl.basic.utils.JacksonUtil;
|
||||
import com.ycwl.basic.utils.SnowFlakeUtil;
|
||||
import com.ycwl.basic.utils.WxMpUtil;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.apache.commons.lang3.Strings;
|
||||
@@ -92,6 +95,8 @@ public class PrinterServiceImpl implements PrinterService {
|
||||
private IPriceCalculationService priceCalculationService;
|
||||
@Autowired
|
||||
private ScenicRepository scenicRepository;
|
||||
@Autowired
|
||||
private OrderRepository orderRepository;
|
||||
|
||||
@Override
|
||||
public List<PrinterResp> listByScenicId(Long scenicId) {
|
||||
@@ -571,6 +576,14 @@ public class PrinterServiceImpl implements PrinterService {
|
||||
printerMapper.setUserIsBuyItem(memberId, id, orderId);
|
||||
// 创建打印任务
|
||||
List<MemberPrintResp> userPhotoListByOrderId = getUserPhotoListByOrderId(orderId);
|
||||
File qrCodeFile = new File("qrCodeFile" + orderId + ".png");
|
||||
OrderEntity order = orderRepository.getOrder(orderId);
|
||||
MpConfigEntity scenicMpConfig = scenicRepository.getScenicMpConfig(order.getScenicId());
|
||||
try {
|
||||
WxMpUtil.generateWXAQRCode(scenicMpConfig.getAppId(), scenicMpConfig.getAppSecret(), scenicMpConfig.getState(), "pages/my/orderDetailNew?id="+orderId, "qrCodeFile" + orderId + ".png");
|
||||
} catch (Exception e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
userPhotoListByOrderId.forEach(item -> {
|
||||
PrinterEntity printer = printerMapper.getById(item.getPrinterId());
|
||||
|
||||
@@ -627,6 +640,9 @@ public class PrinterServiceImpl implements PrinterService {
|
||||
WatermarkInfo watermarkInfo = new WatermarkInfo();
|
||||
watermarkInfo.setOriginalFile(needRotation ? rotatedOriginalFile : originalFile);
|
||||
watermarkInfo.setWatermarkedFile(watermarkedFile);
|
||||
watermarkInfo.setQrcodeFile(qrCodeFile);
|
||||
watermarkInfo.setDatetime(new Date());
|
||||
watermarkInfo.setDtFormat("yyyy-MM-dd");
|
||||
|
||||
operator.process(watermarkInfo);
|
||||
|
||||
@@ -698,6 +714,11 @@ public class PrinterServiceImpl implements PrinterService {
|
||||
});
|
||||
}
|
||||
|
||||
@Override
|
||||
public Object useSample(Long userId, Long sampleId) {
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取下一个要使用的打印机名称(轮询逻辑)
|
||||
*
|
||||
|
||||
Reference in New Issue
Block a user